続く発明を実施するための形態は、例示的実施形態を例証するために提供され、本発明の範囲、可用性、または構成を限定することを意図するものではない。種々の変化が、本発明の精神および範囲から逸脱することなく、要素およびステップの機能および配列において行われ得る。
概して、以下により詳細に説明される、図18Aおよび18Bを参照すると、例示的マシンツーマシン(M2M)、モノのインターネット(IoT)、またはモノのウェブ(WoT)通信システム10は、例えば、複数のマシンツーマシン(M2M)デバイス等の複数のデバイスと、通信ネットワーク12を介してM2Mデバイスと通信することができる、サービス層22とを含むことができる。本明細書で使用される場合、M2Mデバイスは、例えば、ゲートウェイデバイス14または端末(エンドポイント)デバイス18等、ネットワーク内で通信する任意のデバイスを指し得る。M2Mゲートウェイデバイス14およびM2M端末デバイス18の各々は、通信ネットワーク12または直接無線リンクを介して、信号を伝送し受信するように構成され得る。M2Mデバイス18はまた、M2Mアプリケーション20または別のM2Mデバイス18からデータを受信し得る。さらに、データおよび信号は、M2Mサービス層22を介して、M2Mアプリケーション20に送信され、そこから受信され得る。M2Mサービス層22は、所望に応じて、任意の数のM2Mアプリケーション、M2Mゲートウェイデバイス、M2M端末デバイス、および通信ネットワークと通信し得ることを理解されるであろう。M2Mサービス層22は、1つ以上のサーバ、コンピュータ等によって実装され得る。サービス層22は、種々のサービスおよび能力をM2Mアプリケーション20、M2Mゲートウェイデバイス14、およびM2Mデバイス18に提供することができる。さらに、M2Mサービス層は、種々のサーバ、ゲートウェイ、およびデバイス上に展開されることができる。本明細書で使用される場合、別様に規定されない限り、M2Mノードは、例えば、M2Mシステム10等のM2Mネットワーク内の任意のデバイス、ゲートウェイ、またはサーバを指す。M2Mサービス層22は、アプリケーションプログラミングインターフェース(API)および下層ネットワーキングインターフェースのセットを通してM2Mアプリケーションおよびデバイスのための付加価値サービスをサポートする、(IPスタックの上方の)ソフトウェアミドルウェア層として実装され得る。例示的実施形態に従って展開され得る、例示的M2Mサービスは、以下に詳細に説明される、M2Mクローラサービス400である。
ウェブサイトのクローリング、索引付け、および検索に関するさらなる背景として、ウェブマスタは、概して、ウェブサイトの維持に責任がある。特に、ウェブマスタは、ウェブサイトのサイトマップおよびrobots.txtファイルを維持し得る。ウェブサイトのサイトマップは、クローラがクローリングすべきウェブページへのリンクと、クローラを支援するための属性(例えば、ページをクローリングすべき頻度)とのリストを定義する。表1は、サポートされるサイトマップXMLプロトコル属性の例を列挙する。ウェブマスタは、ウェブサイトが気付かれるように、所与のウェブサイトのサイトマップを人気のある検索エンジンに手動で提出し得る。例示的検索エンジンとして、限定ではないが、Google、Bing、およびYahoo!を含み、例示的特殊検索エンジンは、Bing Health、WebMD、およびYahoo!Newsを含む。
ウェブサイトのrobots.txtは、図2に描写される実施例に示されるように、クローラがウェブサイトをクローリングするときに除外すべきウェブページ、再クローリング間の遅延、およびウェブサイトのサイトマップの場所のリストを定義し得る。
ウェブサイトをクローリングし、サイトのウェブページおよびリンクをトラバースするために、ウェブクローラは、典型的には、ウェブサイトのウェブマスタによって提供される、ウェブサイトのサイトマップおよびrobots.txtファイルに依拠する。ウェブクローラはまた、ウェブクローラが他のウェブサイトをクローリングする間に遭遇するウェブサイトへのハイパーリンクに依拠し得る。ウェブクローラは、ウェブサイトからウェブサイトに進み、それによって、新しい/更新されたウェブページを見つけ、これらのスナップショットをドキュメント化および記憶し、次いで、それらは、索引を付けられ得る。ウェブサイトは、反復ベースかつ非調整様式において、多くの独立ウェブクローラによってクローリングされることができる。所与のウェブクローラのアルゴリズムおよびポリシーに基づいて、ウェブクローラは、ウェブサイトを再クローリングし、そのサイトのウェブページ/ドキュメントに再び索引を付けるべきかどうか/それをすべきときを決定し得る。ウェブインデクサは、ウェブクローラによって発見されるウェブコンテンツに索引を付ける。ウェブインデクサは、ウェブクローラと統合されることも、されないこともある。索引付けは、ウェブページ/ドキュメントを走査し、検索エンジンの索引データベースに追加される、キーワードおよび情報を要約することを含み得る。ウェブインデクサは、テキストベース(例えば、.txt、.html、.doc、.xls、.ppt、.pdf等)のコンテンツに索引を付けることをサポートし得る。ウェブ検索エンジンは、検索エンジンクエリにサービス提供するために、ウェブクローラおよびウェブインデクサから利用可能にされた索引を付けられた情報に依拠し得る。ウェブ検索エンジンは、クローリングされ、索引を付けられた、種々のウェブサイト上にホストされる情報に対するキーワード検索をサポートする。ウェブ検索エンジンは、検索要求内に規定されたキーワードに一致するエントリに対して索引データベースにクエリをし得、クエリ要求内に規定されたキーワードに一致するコンテンツを含むウェブページおよびウェブドキュメントを参照する一致するリンク(例えば、URL)のリストから成る検索結果を作成し得る。
再び、概して、図18Aおよび18Bを参照すると、M2Mサービス層は、アプリケーションプログラミングインターフェース(API)をサポートし得、APIは、サービス層によってサポートされるM2M中心能力の集合へのアプリケーションおよびデバイスのアクセスを提供する。いくつかの実施例として、限定として提示されるわけではないが、セキュリティ、課金、データ管理、デバイス管理、プロビジョニング、および接続管理が挙げられる。これらの能力は、M2Mサービス層によって定義されるメッセージフォーマット、リソース構造、およびリソース表現を利用するAPIによって、アプリケーションに利用可能にされ得る。
草案ETSI TS1026901.1.1(2011−10)に論じられる欧州電気通信標準化機構(ETSI)M2Mサービス層、草案バージョン1.0−14(2013年3月)に論じられるオープンモバイルアライアンス(OMA)軽量M2Mサービス層、およびoneM2M−TS−0001oneM2M機能アーキテクチャ−V−0.1.2.M2Mサービス層アーキテクチャ(例えば、ETSI M2M、OMA LWM2M、およびoneM2M)に論じられるoneM2Mサービス層等、サービス層を伴う複数のM2Mアーキテクチャが存在する。図3は、典型的である、例示的ネットワーク化プロトコルスタック300を図示し、したがって、図3は、M2Mサービス層が典型的ネットワーク化プロトコルスタック内に常駐する場所を示す。
ここで図4−6を参照すると、種々の例示的実施形態によると、以下に説明されるM2Mクローラサービス400は、種々のM2Mサービス層内の特定のタイプのサービス/能力として実装されることができる。一実施形態では、クローラサービス400は、oneM2Mに従って実装される。別の実施形態では、クローラサービス400は、ETSI M2Mに従って実装される。さらに、M2Mクローラサービス400は、M2Mサービス層内に実装されることに限定されないことを理解されるであろう。例えば、M2Mクローラサービス400は、さらに別の例示的実施形態によると、独立型ウェブサービスとして実装されることができる。
本明細書では、ウェブクローラ、インデクサ、および検索エンジンの拡張バージョンは、M2MデバイスがIoT/WoTに完全に統合され得るように、ウェブユーザが、今日、ウェブコンテンツを見つけるのと類似方式において、利用可能なM2Mデバイスを見つけることを可能にし得ることを認識されたい。一例として、拡張型ウェブクローラ、インデクサ、および検索エンジンは、公共空間(例えば、ショッピングモール、都市、スタジアム、空港、美術館等)に展開されるセンサを見つけ得る。本明細書では、M2Mデバイスをこのように検索可能にすることは、無料公共サービス(例えば、天気、交通等)として利用可能なM2Mデバイス、ならびに有料で利用可能なM2Mデバイスの認知を増加させ得ることが認識された。本開示では、いくつかの使用例に関して、M2Mデバイスを検索可能にすることは、所望されない、および/または適用可能ではない場合があることを認識されたい。例えば、プライバシーまたはセキュリティが懸念される場合(例えば、医療用センサデバイス、セキュリティデバイス等)、M2Mデバイスを検索可能にすることは、望ましくない場合がある。
本開示が対処するものと類似する問題に対処する試みも存在し得る(但し、本明細書に説明されるアプローチを使用していない)。例えば、本明細書に説明される例示的実施形態は、IMSネットワーク構成要素を活用せず、さらに、検索エンジン要求のリアルタイム処理にも、ソーシャルネットワークからの情報の活用にも基づいていない。代わりに、例えば、本明細書に説明される実施形態は、既存のウェブクローラがM2Mデバイスを効果的かつ効率的にクローリングすることを可能にするためのサービスを定義する。
前述のように、現在のウェブは、M2Mデバイスを効率的かつ効果的にクローリングする能力を欠いている。その結果、M2Mデバイスは、ウェブ検索エンジン(例えば、Google、Yahoo!等)によって、したがって、ウェブユーザによって、効果的に索引を付けること、および検索されることが不可能である。
例えば、現在のM2Mデバイスは、現在のウェブクローラフレームワークをサポートする能力を欠き得る。現在のウェブでは、ウェブサイトは、典型的には、ウェブクローラに登録し、その独自のウェブクローラトラフィックにサービス提供することに責任がある。しかし、M2Mデバイスは、多くの場合、性質上、制約され、ウェブクローラに登録し、ウェブクローラ要求にサービス提供するためのリソースおよび知能を欠いている。従来のウェブサイトと異なり、M2Mデバイスは、典型的には、ウェブマスタ(ヒト)によって能動的に管理されない。その結果、M2Mデバイスは、例えば、ウェブ上の異なる検索エンジンにそれら自身を登録すること等の種々のアクションを行うことが不可能であり得る。さらに、M2Mデバイスは、多数のウェブクローラからの要求にサービス提供する能力を有していない場合がある。
別の例として、現在のウェブフレームワークは、M2Mデバイスが効果的にクローリングされ得るように、M2Mデバイスを補助するためのサービスを欠いている。例えば、前述の既存のM2Mサービス層(例えば、ETSI M2M、OMA LWM2M、oneM2M)は、M2Mデバイスクローラメタデータを積極的に発見し、それをウェブクローラが理解するフォーマット(例えば、サイトマッププロトコル)においてウェブクローラに公開するための適切なサポートを欠いている場合がある。その結果、既存のウェブクローラは、M2Mデバイス、M2Mデバイスがサポートするリソース、およびそれらのリソースに関する属性に気づいていない場合がある。既存のM2Mサービス層はまた、クローライベント(例えば、M2Mデバイスがクローリング/再クローリングを要求することを示すイベント)を生成する能力を欠いている場合がある。M2Mサービス層はまた、これらのイベントをウェブクローラに転送し、1つ以上のM2Mデバイスがデバイスリソースの作成、修正、または削除に起因して再クローリングされる必要がある場合/そのときを通知するためのサポートを欠いている場合がある。これは、現在のM2Mサービス層が、M2Mデバイスに関して主に受動的様式において動作していることに起因し得る。現在のM2Mサービス層は、サービス層との相互作用(例えば、サービス層への登録、サービス層内へのデータの記憶等)を開始するデバイスに依拠している。したがって、既存のM2Mサービス層は、M2Mデバイスとの相互作用を積極的に開始する能力を欠いている場合がある。例えば、現在のM2Mサービス層は、M2MデバイスまたはM2Mデバイス上にホストされるリソースを積極的に発見するか、またはデバイスリソースが作成/修正/削除されたる場合/そのときに生成され得るクローライベントに関連付けられた通知等の通知に加入し、それをデバイスから受信するための能力を欠いている場合がある。現在のM2Mサービスは、繰り返しベースでM2Mデバイスリソースを積極的にクローリングし(例えば、周期的に、またはイベントに基づいてのいずれかにおいて、デバイスのリソースを読み出し)、リソースのローカルコピーを記憶/キャッシュするための能力も欠いている。その結果、現在のM2Mサービス層は、新しい、修正された、または削除されたリソースを追跡および検出するための能力を欠いており、したがって、ウェブクローラが、再クローリングが正当であることを通知されるべきかどうかを決定する能力を欠いている場合がある。
さらに別の例として、ウェブクローラは、現在のウェブにおいてイベントベースのクローリングのためのサポートを欠いている場合がある。例えば、ウェブクローラは、典型的には、行き当たりばったり方式で(例えば、別のウェブサーバからあるウェブサーバへのリンクに遭遇するとき)、またはそのクローリングされるコンテンツをリフレッシュするための周期的方式で(例えば、そのサイトマップまたはRobots.txtファイル内にウェブサーバによって規定された、ある好ましい頻度に基づいて)、ウェブサーバを再クローリングする。これらのタイプのクローリングは、例えば、ウェブサーバの再クローリングが、ウェブサーバのコンテンツが更新されていないときでも行われ得るため、非効率的であり得る。加えて、多くのM2Mデバイスは、ウェブクローラがそれらのクローリングを試みるとき、利用可能ではない場合がある(例えば、スリープ中であり得る)。多くのM2Mデバイスは、予測不能かつイベントベースの様式において変化するので、本明細書では、イベントベースのクローリングの欠如は、M2Mデバイスの非効率的および/または不必要なクローリングおよび再クローリングにつながり得、これは、リソースが制約されたM2Mデバイスおよびネットワークに悪影響を及ぼし得ることが認識される。
本明細書に説明されるように、M2Mクローラサービス400は、とりわけ、前述の問題に対処し得る。M2Mクローラサービス400は、M2Mデバイスが、ウェブクローラによって効率的かつ効果的にクローリングされることを可能にし得る。その結果、M2Mデバイスは、ウェブ検索エンジン(例えば、Google、Yahoo!等)によって、したがって、ウェブ検索エンジンを使用するウェブユーザによって、効果的に索引を付けられること、および検索されることが可能である。したがって、M2Mクローラサービス400は、インターネット/モノのウェブへのM2Mデバイスの統合のための主な実現要素としての役割を果たし得る。
M2Mクローラサービス400は、リソースが制約されたM2Mデバイスがウェブクローラに登録するのを補助するための能力を提供し得る。例示的実施形態によると、M2Mクローラサービス400はまた、M2Mデバイスと積極的に相互作用し、デバイス上にホストされるリソースを発見およびクローリングし、かつデバイスによって生成されるクローライベントを構成し、それに加入することをサポートする。加えて、M2Mクローラサービス400は、M2Mデバイスが過負荷とならないように、M2Mデバイスの代わりに、ウェブクローラ要求にサービス提供し得る。
一実施形態では、M2Mクローラサービス400は、ウェブクローラがM2Mデバイスをクローリングするのを補助する。M2Mクローラサービスは、積極的にクローリングし、クローリングされたM2Mデバイスリソースを記憶し、これらの結果をウェブクローラに利用可能にすることをサポートする。そうすることによって、例えば、ウェブクローラは、特に、長時間および予測不能スリープサイクルを有するM2Mデバイスに関して問題となり得る、M2Mデバイスリソースの直接クローリングを行う必要はない。代わりに、ウェブクローラは、M2Mクローラサービス400によって事前に積極的にクローリングされたM2Mデバイスリソースのキャッシュ/記憶されたバージョンをクローリングすることができる。M2Mクローラサービス400はまた、例えば、クローリングしたデバイスリソースの状態における検出された変化に基づいて、クローライベントを生成し得る。M2Mクローラサービス400は、これらのイベントをウェブクローラに公開し得る。
ここで図4を参照すると、例示的M2Mシステム401は、M2M/ウェブサーバ402、検索エンジンサーバ404、ウェブプロキシ14とも称され得る、M2Mゲートウェイ14等の複数のデバイスを含む。図示されるデバイスは、ウェブまたはインターネット406を介して、互に通信することができる。M2Mシステム401はさらに、アプリケーション20およびM2Mクローリングサービス400を含む。図示されるデバイスは、概して、ノードと称され得る。したがって、示されるように、M2Mクローラサービス400は、例えば、M2Mゲートウェイ18、M2Mサーバ402、ウェブプロキシ14、およびウェブサーバ402内等のネットワーク内の種々のノードに展開されることができる。既存のウェブクローラサービス403は、例えば、GoogleまたはMicrosoft等の検索エンジン会社によって提供および運営される、検索エンジンサーバ404上に展開されることができる。M2Mクローラサービス400は、例えば、サービス層22等の水平サービス層内の能力として展開されることができ、サービス層は、サービス能力サーバ(SCS)、M2Mサーバ、oneM2Mサーバ等を含み得る。したがって、M2Mクローラサービスは、例えば、ETSI M2M、oneM2M、またはOMA LWM2M等の種々のサービス層内に展開されることができる。代替として、M2Mクローラサービス400は、独立型ウェブサービスとして展開されることができ、かつウェブアプリケーションおよび/または他のウェブサービスに利用可能にされることができる。したがって、M2Mクローリングサービスは、既存のウェブクローラを補完するために使用されることができるか、または独立して、別個の専用M2Mクローラとして展開されることができる。
本明細書に説明される種々の実施形態は、便宜上、システム401を指す。例示的システム401は、開示される主題の説明を促進するために簡略化されるが、本開示の範囲を限定することを意図するものではないことを理解されるであろう。他のデバイス、システム、および構成も、システム401等のシステムに加え、またはその代わりに、本明細書に開示される実施形態を実装するために使用され得、そのような実施形態は全て、本開示の範囲内と見なされる。
M2Mクローラサービス400の種々の機能性の紹介のために、M2Mセンサ会社が、ショッピングモールと契約をし、その無線ネットワークセンサをモールの駐車場、店舗、および公共エリア内に展開させる、例示的使用例を検討する。センサは、客層(例えば、年齢、性別等)、購入物、購入額、買物時間、駐車場内の車両の種類等の買物客についての統計を追跡する。したがって、センサは、買物客を監視し、関連する種々のリソースを含む。M2Mセンサ会社は、モール全体を通してそのセンサを展開させるために、モールに料金を支払うことに合意する。代わりに、M2Mセンサ会社は、そのセンサデータ(リソース)を、例えば、小売店所有者、小売商品製造業者、および広告主等の多様な見込みクライアントのセットに利用可能にすることを計画する(有料で)。これらのクライアントは、より知的な販売促進、製品配置、および製品展開決定を行うことができるように、この情報を得ることに関心があり得る。例えば、近傍の電子広告用掲示板の所有者は、1日、1週間、または1年のどの時間にどの広告を表示すべきかをより知的に選択することができるように、これらのM2Mセンサデバイスを発見し、そのセンサフィードに接続することを所望し得る。
前述の例示的使用例を継続すると、M2Mセンサ会社は、モール内のそのセンサからストリーミングされた情報を発見し、それにアクセスすることができる、クライアントの数を最大限にすることを所望し得る。これを促進するために、例示的シナリオに従って、M2Mセンサ会社は、そのセンサをネットワーク化し、それらをインターネット/ウェブを介してアクセス可能にすることができ、M2Mクローラサービス400を使用して、そのセンサが、一般に使用されるウェブ検索エンジン(例えば、Google、Yahoo!、Bing等)によって見出され得ることを確実にすることができる。
前述の例示的使用例を引き続き参照すると、例示的実施形態によると、M2Mクローラサービス400は、M2Mセンサデバイスのためのクローラプロキシとして機能し得る。M2Mクローラサービスは、センサによって生成されるクローライベントおよび各センサのスリープ状態に基づいて、各M2Mデバイスを積極的に、かつ知的にクローリングすることができる。クローラサービス400は、イベントベースの様式における個々のセンサの再クローリングをサポートすることができる。一例として、クローラサービス400は、センサがその状態変化をクローラサービス400に信号伝達すると、所与のセンサの再クローリングをサポートすることができる。クローリングされたセンサ毎に、クローラサービス400は、センサデータを記述するために使用されるメタデータとともに、センサ読み取り値をキャッシュ/記憶することができる。例示的メタデータは、限定ではないが、センサ場所、センサのタイプ、センサデータのフォーマット、センサデータ更新以降の時間等を示すことができる。クローラサービス400は、次いで、これらのキャッシュ/記憶されたセンサ読み取り値(リソース)へのリンク(例えば、URI)を積極的に公開し得る。クローラサービス400はまた、例えば、センサの記述および各センサを再クローリングすべきときを示すイベント等、センサに関連付けられたメタデータを公開し得る。情報は、種々のウェブ検索エンジン(例えば、Google、Yahoo!、Bing等)に公開され得る。この公開された情報を使用して、ウェブ検索エンジンは、キャッシュ/記憶されたセンサ読み取り値をクローリングおよび索引付けし得、このキャッシュ/記憶されたセンサ読み取り値は、概して、リソースまたはリソース表現と称され得、従来のウェブサイトを見つけるために使用する、同じウェブ検索エンジンを使用して、クライアントによってセンサが効果的に検索されることを可能にし得る。以下にさらに説明されるように、これは、例えば、種々のウェブ検索エンジンが、直接、センサにアクセスしていないため、センサに大量のオーバーヘッドをもたらすことなく、行われることができる。代わりに、ウェブ検索エンジンは、センサの代わりに、ウェブクローラサービスによって記憶されたクローリングされたリソース表現のキャッシュ/記憶されたバージョンにアクセスし得る。加えて、例示的実施形態によると、クローラサービス400は、クローリングしたセンサリソースに対する変化(例えば、新しい/更新されたリソース)を検出し得る。そのような検出に基づいて、クローラサービス400は、周期的方式ではなく、イベントベースの様式において、センサリソースのクローリングを行い得るように、センサを効率的に再クローリングし、ウェブ検索エンジンへのクローライベントを生成することができる。
センサリソースが、ウェブ検索エンジンによって正常にクローリングされ、索引を付けられると、ウェブユーザは、ウェブ検索エンジンを使用して、着目センサを見つけることができる。ウェブユーザが、記憶/キャッシュされたセンサデータにアクセスすると、ウェブクローラはまた、例えば、M2Mセンサ会社が情報へのアクセスに関してユーザに課金することを可能にする、課金/請求サービス等の種々のサービスを提供することができる。前述の例示的使用例は、M2Mセンサの文脈において提示されるが、センサは、使用される例示的目的のために使用され、したがって、M2Mクローリングサービス400は、所望に応じて、任意のM2Mデバイスにサービスを提供することができることを理解されるであろう。
図5を参照すると、例示的実施形態によると、M2Mクローラサービス400は、例示的分散型アーキテクチャ500等、分散型アーキテクチャによって実装されることができる。代替として、図6を参照すると、別の例示的実施形態によると、M2Mクローラサービス400は、集中型アーキテクチャによって実装されることができ、したがって、集中型M2Mクローラサービス400aと称され得る。図6は、集中型M2Mクローラサービス400aを含む、例示的集中型アーキテクチャ600を描写する。分散型アーキテクチャ500は、M2Mクローラサービス400の複数のインスタンスを定義し得る。示されるように、インスタンスは、例えば、M2Mサーバ402、M2Mゲートウェイ14、およびM2Mデバイス18等、システム401を通して、種々のM2Mノード上にホストされることができる。図6を参照すると、図示される実施形態によると、集中型アーキテクチャ600は、中心に位置するM2Mノード、例えば、M2Mサーバ402a上にホストされる、単一M2Mクローラサービスインスタンスを定義する。分散型アーキテクチャ500は、集中型アーキテクチャ600と比較して、クローリングがより平行様式で行われることを可能にし得、かつより大きなスケーラビリティを可能にし得る。集中型アーキテクチャ600は、例えば、クローラサービス400が集中型サーバまたはサーバファーム上にホストされ得るため、クローラサービス400の管理を単純化し得る。
再び、図5を参照すると、分散型アーキテクチャ500内のM2Mクローラサービス400のインスタンスは、1つ以上のM2Mサービスプロバイダによって所有、運営され、および/またはそれに属し、M2Mリソースをホストする、M2Mサーバ402、M2Mゲートウェイ/プロキシ14、M2Mデバイス18、およびM2Mアプリケーション20が、クローリング、索引付け、および検索されることを可能にすることができる。図5に示されるように、M2Mクローラサービス400は、ネットワーク内の1つ以上のM2Mサーバ402、1つ以上のM2Mゲートウェイ/プロキシ14、および/または1つ以上のM2Mデバイス18上にホストされることができる。したがって、M2Mクローラサービスインスタンスは、分散型様式に従って、ネットワーク内のM2MノードによってホストされるM2Mリソースを効率的にクローリングするために使用されることができる。M2Mクローラサービス400のインスタンスは、以下にさらに説明されるように、互に協働し得る。
再び、図6を参照すると、集中型M2Mクローラサービス400aは、1つ以上のM2Mサービスプロバイダによって所有、運営され、および/またはそれに属し、種々のM2Mリソースをホストする、M2Mサーバ402、M2Mゲートウェイ/プロキシ14、M2Mデバイス18、およびM2Mアプリケーション20が、クローリングされることを可能にすることができる。集中型M2Mクローラサービス400aは、M2Mクローラサービス400aがネットワーク内の種々のM2Mリソースを効率的にクローリングするために使用され得るように、ネットワーク内で集中型方式でホストされる。
ここで図5および6を参照すると、いくつかのインターフェースが、ここで説明される。第1のインターフェース502が、M2Mデバイス18と、集中型M2Mクローラサービス400aまたは分散型M2Mクローラサービスのインスタンスのいずれかを指す、M2Mクローラサービス400との間に定義される。第1のインターフェース502は、M2Mクローラサービス400が、M2Mデバイス18およびM2Mデバイス18に関連付けられたリソースを発見およびクローリングすることを可能にすることができる。第2のインターフェース504が、M2Mクローラサービス504のインスタンス間に定義される。第2のインターフェース504は、以下にさらに説明されるように、M2Mクローラサービス400の分散型インスタンス間の協働が、クローラメタデータおよび結果をサービスインスタンスのグループまたは階層にわたり分散されることを可能にすることができる。第3のインターフェース506が、従来のウェブクローラを含み得る、ウェブ検索エンジンサーバ404と、M2Mクローラサービス400との間に定義される。第3のインターフェース506は、ウェブ検索エンジンが、M2Mクローラサービスと相互作用することを可能にすることができる。第4のインターフェース508が、M2Mアプリケーション20とM2Mクローラサービス400との間に定義される。第4のインターフェース508は、M2Mアプリケーション20が、M2Mクローラサービス400と相互作用することを可能にすることができる。第5のインターフェース510が、アプリケーション20と検索エンジンサーバ404上にホストされるウェブクローラとの間に定義される。第5のインターフェース510は、アプリケーション20が、M2Mクローラサービスによって可能にされるウェブ検索エンジンを使用して、M2Mデバイスを間接的に検索し、見つけることを可能にすることができる。
以下にさらに説明されるように、M2Mクローラサービス400は、種々のM2Mデバイスが、第1のインターフェース502を経由してM2Mクローラメタデータを公開することを可能にする能力をサポートし得る。例示的実施形態によると、種々のM2Mデバイスは、例えば、所与のM2Mデバイスが、クローラメタデータをホストするが、第1のインターフェース502を経由してそれを公開することが可能でない場合、M2Mクローラメタデータを得るために積極的にクエリされることができる。M2Mクローラメタデータは、例えば、所与のM2MデバイスがM2Mクローラメタデータをホストしていないシナリオ、またはM2Mクローラサービス400が追加し得る追加のクローラメタデータを有するシナリオにおいて、自動生成および/または強化されることができる。第1のインターフェース502を介して、所与のM2Mデバイス上にホストされるクローラメタデータは、例えば、M2Mデバイスによって生成されるクローライベントを制御するように構成され得る。M2Mサービス400は、M2Mクローラメタデータを使用して、第1のインターフェース502を経由して、M2Mデバイスを積極的に、かつ自律的にクローリングし得る。したがって、新しい/更新されたリソース表現は、デバイスに過負荷をかけずに知的かつ効率的様式において読み出され得る(例えば、デバイス状態の変化に基づくイベントベースのクローリング)。ある場合には、M2Mクローラサービス400は、ウェブクローラが、M2Mデバイスを認知しているが、デバイスをクローラトラフィックで圧倒しないように、第3のインターフェース506を経由して、M2Mデバイスの代わりに、ウェブクローラと相互作用することができる。例えば、M2Mサービス400は、ウェブクローラがM2Mデバイスを認知するように、M2Mデバイスクローラメタデータをウェブクローラと共有し得る。M2Mサービス400は、クローリングされたM2Mデバイスリソース表現(現在または過去)を共有し、これらの表現を使用して、所与のM2Mデバイスのリソース状態の変化を検出し得る。リソース表現はさらに、M2Mデバイスの代わりに、ウェブクローラ要求にサービス提供するために使用され得る。例えば、クローラ要求は、M2Mデバイスからオフロードされ得る。クローライベントが、ウェブクローラが、周期的再クローリングの代わりに、またはそれに加え、イベントに基づく再クローリングをサポートすることができるように、ウェブクローラに生成され得る。M2Mクローリングサービス400は、ウェブクローラが、M2Mクローラサービス400によって生成されるクローライベントを制御するようにM2Mクローラサービス400によってホストされるクローラメタデータを構成することを可能にし得る。別の実施形態によると、ネットワーク内のM2Mクローラサービスの複数のインスタンスは、第2のインターフェース504を経由して互に協働することができる。M2Mクローラサービスは、互に協働し、M2Mクローラメタデータを共有すること、クローリングリソース表現を共有すること、クローライベントに加入または生成すること等を行い得る。さらに、例示的実施形態では、M2Mアプリケーション20は、インターフェース508を経由してM2Mデバイスクローラメタデータにアクセスし得、M2Mアプリケーション20は、リソース表現とも称され得る、クローリングされたM2Mデバイスリソースにアクセスし得る。別の例示的実施形態によると、M2Mアプリケーションは、以下にさらに説明されるように、クローライベントに加入し得る。
M2Mクローラメタデータが、ここでより詳細に説明される。ある場合には、所与のM2Mデバイスが効率的かつ効果的にクローリングされるために、デバイスおよびそのリソースについてのあるタイプの情報が、把握されることが必要であり得る。そのような情報は、M2Mクローラメタデータと称され得る。表2は、M2Mクローリングサービス400によって使用され得る、M2Mクローラメタデータの例示的リストを定義するが、追加のまたは代替クローラメタデータが、所望に応じて、M2Mクローラサービスによって使用され得ることを理解されるであろう。メタデータは、概して、M2Mデバイス上にホストされるM2Mリソースの効率的かつ効果的クローリングをサポートする。M2Mクローラメタデータは、M2Mデバイスおよび/またはM2Mクローラサービス400によって生成またはホストされることができる。M2Mクローラメタデータはまた、ウェブクローラおよび/またはアプリケーション等のネットワーク内の他のエンティティと共有されることができる。
図7を参照すると、クローラサービス400を使用して行われ得る、例示的方法が、描写される。702において、本方法は、例えば、限定ではないが、新しいデバイスがクローラサービス400に登録することによって、またはクローライベントの通知がクローラサービス400によって受信されることによって、トリガされ得る。704において、図示される実施形態に従って、クローラサービス400は、所与のデバイスに関連付けられた公開されたクローラメタデータが利用可能であるかどうかを決定し得る。例示的実施形態によると、M2Mデバイスは、第1のインターフェース502を経由して、M2Mクローラメタデータ(例えば、表2参照)をM2Mクローラサービス400に明示的に公開することができる。したがって、M2Mクローラサービス400は、第1のインターフェース502を経由して、M2Mデバイス18がそのM2Mクローラメタデータを直接M2Mクローラサービス502に公開することを可能にする能力をサポートすることができる。代替として、M2Mクローラサービス400が協働する他のサービスが、M2Mデバイス18からの公開されたM2Mクローラメタデータの受信をサポートし得る。ある場合には、例えば、表2に描写されるメタデータ等のM2Mクローラメタデータは、M2MデバイスがM2Mクローラサービス400に登録するとき、またはM2MデバイスがM2Mクローラサービス400が協働する別のサービスに登録するときに、M2Mデバイスによって公開されることができる。
一例として、本明細書に説明されるM2Mクローラメタデータ公開能力を使用して、モバイルM2Mデバイス(例えば、車内のテレメトリセンサ)は、移動性(例えば、M2Mデバイスの場所の変化)に起因してそれらが変化する場合/そのとき、そのリソースリンクに関する更新をM2Mクローラサービス400に提供することができる。例えば、M2Mデバイスは、デバイスがネットワークドメインを変化させると、新しいIPアドレスが割り当てられ得るため、そのURIの「ホスト」構成要素もまた、変化し得る。例えば、M2Mデバイスに関連付けられたURIが変化する場合、M2Mデバイスは、M2Mクローラメタデータ公開能力を使用して、M2Mクローラサービス400を更新し、したがって、その変化に関してウェブクローラを更新することができる。
図8を参照すると、例示的実施形態が、示されており、M2Mデバイス18が、M2Mクローラメタデータを、表象状態転送(RESTful)アーキテクチャに従って、M2Mクローラサービス400に第1のインターフェース502を経由して公開する。追加の文脈に関して、RESTfulアーキテクチャは、使用される物理的構成要素実装または通信プロトコルの観点からではなく、アーキテクチャにおいて使用される構成要素、エンティティ、コネクタ、およびデータ要素に適用される制約の観点から説明される。したがって、構成要素、エンティティ、コネクタ、およびデータ要素の役割および機能が、説明されるであろう。RESTfulアーキテクチャでは、一意のアドレス指定可能リソースの表現が、エンティティ間において転送される。RESTfulアーキテクチャにおいてリソースを取り扱うとき、作成(子リソースを作成する)、読み出し(リソースのコンテンツを読み取る)、更新(リソースのコンテンツを書き込む)、または削除(リソースを削除する)等、リソースに適用され得る基本方法が存在する。当業者は、本実施形態の実装が、本開示の範囲内に留まりながら、変動し得ることを認識するであろう。当業者はまた、開示される実施形態が、例示的実施形態を説明するために本明細書で使用されるoneM2Mを使用する実装に限定されないことを認識するであろう。開示される実施形態は、ETSI M2M、およびOMA LWM2M、ならびに他の関連M2Mシステムおよびアーキテクチャ等のアーキテクチャおよびシステム内に実装され得る。図8を継続して参照すると、制約されたRESTful環境(CoRE)リソースディレクトリ(RD)登録インターフェースプロトコルの拡張バージョンが、例えば、表2に定義されるそれらの属性等、M2Mクローラメタデータ属性の拡張をサポートするために使用されることができる。
例えば、図示される実施例によると、802において、M2Mデバイス18は、CoRE RD登録要求をM2Mクローラサービス400に送信する。1つの図示される実施形態によると、CoRE RD登録要求は、CoRE RD登録要求内の新しいURIクエリストリングパラメータ内に表2に定義されるデバイス中心のM2Mクローラメタデータを搬送する。メタデータの実施例として、限定として提示されるわけではないが、デバイスのタイプ(dt=センサ)、デバイスがクローラプロキシを要求するかどうか(cp=真)、連続クローラ要求間の最小遅延(min_dcd=3600)、およびデバイスの場所(loc=10.523、−78.324)が挙げられる。804において、M2Mクローラサービスは、M2Mデバイスに関連付けられた公開されたクローラメタデータを受信する。代替として、803を参照すると、デバイス特有のクローラメタデータをURIクエリストリングパラメータ内で搬送するのではなく、メタデータは、代わりに、同様に、新しい拡張をサポートし、クローラメタデータをサポートする、CoRE RD登録要求ペイロード内で搬送されることができる。804において、図8に示される図示される実施例の両方によると、M2Mクローラサービスは、M2Mデバイス18に関連付けられた公開されたクローラメタデータを受信する。806において、公開されたクローラメタデータの受信に応じて、M2Mクローラサービス400は、受信されたメタデータを解析し、例えば、限定ではないが、デバイスのタイプ、デバイスがクローラプロキシを要求するかどうか、連続クローラ要求間の最小遅延、クローラ優先度、およびデバイスの場所等のM2Mデバイス18についての情報を発見することができる。M2Mクローラサービス400は、この情報を記憶することができ、この情報を使用して、将来、M2Mデバイス18のクローリングを行う方法および/またはときを決定することができる。
したがって、例えば、M2Mクローラサービス400をホストし得る、第1の、すなわち、M2Mノードは、M2Mデバイスに関連付けられたクローラメタデータを受信し得る。M2Mノードは、受信されたクローラメタデータに従って、1つ以上のリソースに対してM2Mデバイスをクローリングし得る。さらに、M2Mノードは、1つ以上のリソースが、ウェブクローラ、サービス、またはアプリケーションのうちの少なくとも1つによって発見されることができるように、1つ以上のリソースを公開し得る。
図8に示されるように、表2に定義されるリソース特有のM2Mクローラメタデータは、新しい拡張をサポートし、クローラメタデータをサポートする、CoRE RD登録要求ペイロード内で搬送されることができる。既存のCoRE RD登録要求は、リソースを記述するためのCoREリンクフォーマット記述構文の使用をサポートする。例示的実施形態によると、個々のリソースに特有のM2Mクローラメタデータは、新しいコアリンクフォーマット属性内で搬送されることができる。いくつかの実施例として、限定として提示されるわけではないが、クローリング優先度(p=0.8)、再クローリング試行間の最大遅延(max_rcd=86400)、リソース単位(ru=”摂氏”)、およびサポートされるリソース動作(ro=”RO”)が挙げられる。
再び、図7を参照すると、704において、例えば、所与のM2Mデバイスが、M2Mクローラサービス400へのM2Mクローラメタデータの公開をサポートしないため、公開されたメタデータが利用可能でないことが決定される場合、プロセスは、708に進むことができ、そこで、M2Mクローラサービス400は、第1のインターフェース502を経由して、M2Mデバイスにクエリすることができる。M2Mデバイスは、M2Mデバイスに関連付けられたM2Mクローラメタデータを発見するためにクエリされることができる。クエリは、所与のM2Mデバイスを検出すると(例えば、デバイスがクローラサービス400を呼び出すとき、および/またはM2Mクローラサービス400に登録するとき)、M2Mクローラサービス400によって、積極的な自律的様式(例えば、アプリケーションによって呼び出されずに)で行われることができる。
図9は、第1のインターフェース502を経由してM2Mデバイス18にクエリするM2Mクローラサービス400の実施例を描写する。902において、図示される実施形態によると、M2Mクローラサービス400は、‘.well−known/core’リソースとして定義されるCoREリンクフォーマットの拡張バージョンを、表3に定義されるM2Mクローラメタデータ拡張をサポートするM2Mデバイス18に送信する。したがって、M2Mクローラサービス400は、その‘.well−known/core’リソースを読み出すことによって、M2Mデバイス18にクエリし得る。904において、M2Mデバイス18は、M2Mクローラメタデータ拡張を含む、そのCoREリンクフォーマット記述で応答する。したがって、906において、M2Mクローラサービス400は、クエリされたクローラメタデータをM2Mデバイス18から受信する。
したがって、前述のように、例えば、M2Mクローラサービス400をホストし得る、M2Mノードは、M2Mデバイスに関連付けられたクローラメタデータを受信し得る。M2Mノードは、受信されたクローラメタデータに従って、1つ以上のリソースに対してM2Mデバイスをクローリングし得る。さらに、M2Mノードは、1つ以上のリソースが、ウェブクローラ、サービス、またはアプリケーションのうちの少なくとも1つによって発見されることができるように、1つ以上のリソースを公開し得る。M2Mノードは、クローラメタデータに関してM2Mデバイスにクエリを送信し得、M2Mノードは、クエリに応答して、クローラメタデータを受信し得る。
図8および9に図示されるステップを行うエンティティは、図18Cまたは図18Dに図示されるもの等のデバイス、サーバ、またはコンピュータシステムのメモリ内に記憶され、そのプロセッサ上で実行するソフトウェア(例えば、コンピュータ実行可能命令)の形態で実装され得る、論理エンティティであることを理解されるであろう。すなわち、図8および9に図示される方法は、図18Cまたは18Dに図示されるデバイスまたはコンピュータシステム等のコンピューティングデバイスのメモリ内に記憶されるソフトウェア(例えば、コンピュータ実行可能命令)の形態で実装され得、そのコンピュータ実行可能命令は、コンピューティングデバイスのプロセッサによって実行されると、図8および9に図示されるステップを行う。
M2Mデバイスに関連付けられたM2Mクローラメタデータは、デバイス特有のクローラメタデータと称され得る。そのようなメタデータは、例えば、限定ではないが、デバイスのタイプ(dt=センサ)、デバイスがクローラプロキシを要求するかどうか(cp=真)、連続クローラ要求間の最小遅延(min_dcd=3600)、およびデバイスの場所(loc=10.523、−78.324)等のデバイス特有のリソース(例えば、/dev)の属性として規定されることができる。ある場合には、所与のM2Mデバイス上にホストされる個々のリソースに特有のM2Mクローラメタデータは、例えば、限定ではないが、クローリング優先度(p=0.8)、再クローリング試行間の最大遅延(max_rcd=86400)、リソースユニット(ru=”摂氏”)、およびサポートされるリソース動作(ro=”RO”)等の個々のリソースの属性として規定されることができる。再び、図7を参照すると、710において、M2Mクローリングサービスは、クエリされたメタデータが所与のM2Mデバイスをクローリングするために十分であるかどうかを決定し得る。例えば、M2Mデバイスは、M2MクローラメタデータをM2Mクローラサービス400に公開し、M2Mクローラサービス400がM2Mクローラメタデータにクエリおよび発見することを可能にするための機構をサポートしていない場合がある。したがって、プロセスは、ステップ712に進むことができ、そこで、M2Mサービスは、M2Mデバイスが、クローラメタデータの自動生成をサポートするかどうかを決定する。デバイスが、クローラメタデータの自動生成をサポートしない場合、図示される実施例によると、プロセスは、730に進み、そこで終了する。M2Mデバイスが、クローラメタデータの自動生成をサポートする場合、図示される実施例によると、プロセスは、ステップ714に進み、そこで、クローラメタデータが、自動生成される。
例えば、図10を参照すると、クローラメタデータは、インターフェース502を経由してM2Mデバイス18を標的とするM2Mクローラサービス400監視要求を介して自動生成されることができる。M2Mクローラサービスは、監視される要求の標的であるリソースのリストを抽出する。示されるように、M2Mクローラサービス400は、それを通してM2Mデバイス18を標的にするトランザクションがフローする、M2Mゲートウェイ14上にホストされるサービス層22の一部であり得る。示されるように、M2Mクローラサービス400は、例えば、アプリケーション20からの1つ以上の要求1002を、その要求をM2Mデバイス18に送信する前に、検査することができる。示されるように、5つの要求が、監視される(要求1002a、1002b、1002c、1002d、および1002e)が、任意の数の要求が、所望に応じて、監視および検査されることができることを理解されるであろう。さらに、M2Mクローラサービス400は、M2Mデバイス18からの応答を検査し得る。さらなる例示的実施形態によると、M2Mクローラサービス400は、要求1002によって標的にされるリソースのリストを維持し得る。このリストは、M2Mクローラメタデータとしての役割を果たすことができ、M2Mデバイス18の将来的クローリングを行うために使用され得る。したがって、M2Mクローラサービス400は、M2Mデバイスへの要求を監視し得、M2Mクローラサービス400は、M2Mデバイスの種々のリソースを標的としたクローラメタデータを自動生成し得る。
同様に、別の例示的実施形態によると、M2Mクローラサービスは、M2Mデバイスによって開始される要求を監視し、監視される情報を使用して、クローラメタデータを生成することができる。例えば、ある場合には、M2Mデバイスは、そのリソースをプロキシまたはゲートウェイノードに反映させるための要求を開始し得る。そのようなM2Mデバイスは、周期的またはイベントベースの様式でノードを更新し得る。要求および/またはこれらの要求によって標的とされるリソースを監視することによって、M2Mクローラサービス400は、M2Mデバイスによってサポートされるリソースのリストを自動生成することができる。このリストはまた、M2Mクローラメタデータとしての役割を果たすことができ、M2Mデバイスの将来的クローリングを行うために使用され得る。
したがって、第1のノード(M2Mサービス400をホストし得る)と複数のM2Mデバイスとを備えている複数のマシンツーマシン(M2M)ノードを備えているシステムにおいて、複数のM2Mノードは、ネットワークを介して通信し、第1のノードは、複数のM2Mデバイスのうちの少なくとも1つに関連付けられたクローラメタデータを受信し得る。第1のノードは、受信されたクローラメタデータに従って、1つ以上のリソースに対して少なくとも1つのM2Mデバイスをクローリングし得る。さらに、第1のノードは、1つ以上のリソースが、ウェブクローラ、サービス、またはアプリケーションのうちの少なくとも1つによって発見されることができるように、1つ以上のリソースを公開し得る。本明細書に説明されるように、第1のノードは、少なくとも1つのM2Mデバイスを標的とする1つ以上の要求を監視し得る。監視に基づいて、第1のノードは、少なくとも1つのM2Mデバイスに関連付けられたコンテキスト情報を決定し得る。さらに、コンテキスト情報に基づいて、第1のノードは、少なくとも1つのM2Mデバイスがクローリングされることができるように、少なくとも1つのM2Mデバイスに関連付けられたクローラメタデータを構成し得る。
加えて、別の例示的実施形態によると、M2Mクローラサービス400はまた、M2Mサービス層内の背景サービスとして(またはM2Mサービス層と協働して)起動し、M2Mサービス層リソースを定期的に探索し、これらのリソースからクローラメタデータを抽出し得る。そのような実施形態は、そのデータをM2Mサービス層リソース内に記憶する、M2M−タイプデバイスに有用であり得る。
別の実施例では、M2Mクローラサービス400は、M2Mデバイスのタイプに基づいて、M2Mデバイスに関連付けられたクローラメタデータの生成をサポートすることができる。例えば、M2Mクローラサービス400を呼び出し/それに登録すると、M2Mデバイスは、そのデバイスタイプ(例えば、ACMEブランドの温度センサ)を公開し得る。代替として、M2Mクローラサービス400は、デバイスにクエリすることによって、タイプを発見し得る。種々の例示的シナリオでは、デバイスのタイプを把握することは、M2Mクローラサービス400が、デバイスのリソースのサポートセットを推測することを可能にし得る。なぜなら、例えば、デバイスのいくつかのタイプが、それらがサポートするリソースの標準化セットを有し得るからである、ある場合には、M2Mクローラサービス400は、異なるM2Mデバイスタイプに対してM2Mクローラメタデータの内部ライブラリを含み得るか、またはM2Mクローラサービス400は、外部ルックアップディレクトリ/サービスを活用し、そのような情報を発見し得る。
再び、図7を参照すると、716において、M2Mクローラサービス400は、所与のM2Mデバイスが、クローラメタデータ強化をサポートすることができるかどうかを決定し得る。706または710において、クローラメタデータが、所与のM2Mデバイスをクローリングするために十分であることが決定される場合、プロセスは、ステップ716に進み得る。したがって、M2Mクローラサービス400は、公開、クエリ、または自動生成されたM2Mデバイスクローラメタデータを強化すべき状況にある。例示的実施形態による、強化は、以下にさらに説明されるように、M2Mクローラサービス400が収集するコンテキストまたは状態を活用することによって、サポートされる。
718において、M2Mクローラサービス400は、クローラメタデータを強化することができる。例えば、M2Mクローラサービス400は、インターフェース502を経由してフローする要求および/または応答を観察することによって、コンテキスト情報を収集することができる。強化のための例示的属性は、一例として提示され、限定ではない、以下の表3に列挙される。他の属性も、所望に応じて、メタデータを強化し得ることを理解されるであろう。
表3を参照すると、M2Mクローラサービス400は、種々の実施形態によると、異なる機構を使用して、この情報を観察することができる。例えば、M2Mクローラサービス400は、インターフェース502を経由して、所与のM2Mデバイスへ/そこからフローするトランザクションを能動的に監視し、監視された情報を要約することができる。監視および要約は大量のオーバーヘッドおよび複雑性が追加されることなく、達成され得る。例えば、要求内の標的アドレス(例えば、URI)、要求のタイムスタンプ、所与のM2Mデバイスが要求に応答するかどうか、および対応する応答コードを監視することによって、M2Mクローラサービス400は、前述のコンテキスト情報等のコンテキスト情報を観察することができる。代替として、M2Mクローラサービス400は、ネットワーク内の他のサービスと協働し、この情報を収集することができる(例えば、インターフェース504を経由して、他のM2Mクローラサービスと協働することによって)。
例えば、監視された情報を使用して、M2Mクローラサービス400は、より高いレベルのコンテキスト情報を推測(決定)し、そのような情報を使用して、例えば、限定ではないが、例えば、所与のM2Mデバイスが、その代わりに、クローラ要求にサービス提供するために、クローラプロキシを要求するかどうか、および、例えば、クローラが所与のM2Mデバイスを再クローリングすべきときを決定するときに使用すべき最小/最大遅延またはスケジュール等のクローリングポリシーの定義等、クローラメタデータを構成することができる。したがって、M2Mデバイスに関連付けられたコンテキスト情報に基づいて、M2Mクローラサービス400は、M2Mデバイスがクローリングされ得るように、M2Mデバイスに関連付けられたクローラメタデータを構成することができる。
M2Mクローラサービス400は、種々の実施形態に従って、異なる機構を実装し、このより高いレベルコンテキストを推測することができる。例えば、M2Mクローラサービス400は、M2Mクローラサービス400がこのタイプのコンテキストを推測するために使用し得る、アルゴリズムおよび/またはポリシーのネイティブセットをサポートすることができる。M2Mクローラサービス400はまた、アルゴリズムおよび/またはポリシーの構成可能ならびに/もしくはプログラム可能なセットをサポートし、コンテキストを推測することができる。例えば、M2Mクローラサービス400が、所与のM2Mデバイスが、第1のインターフェース502を経由して、クローラ要求に応答していない、または例えば、再試行ステータス等のエラー応答コードで応答していることを検出する場合、M2Mクローラサービス400は、M2Mデバイスがクローラ要求の処理に対応できないと推測し得る。そのようなシナリオでは、M2Mクローラサービス400は、クローラメタデータを強化し、適宜、最小/最大クローラ遅延を調整することができる。したがって、M2Mデバイスに関連付けられたコンテキスト情報に基づいて、M2Mクローラサービス400は、M2Mデバイスがクローリングされることができるように、M2Mデバイスに関連付けられたクローラメタデータを構成することができる。代替として、M2Mクローラサービスは、M2Mデバイスの代わりに、クローラプロキシとして機能することを積極的に決定することができる。
再び、図7を参照すると、720において、クローラメタデータが強化された後、またはメタデータ強化がサポートされていないことを決定後のいずれかにおいて、M2Mクローラサービス400は、メタデータがM2Mデバイスをクローリングするために十分であるかどうかを決定し得る。メタデータが十分ではない場合、プロセスは、730に進み得、そこで終了する。メタデータが十分である場合、M2Mクローラサービス400は、M2Mデバイスがクローリングされることができるかどうかを決定し得る。M2Mデバイスが、クローリングされることができる場合、M2Mデバイスは、724においてクローリングされる。M2Mデバイスがクローリングされた後、またはM2Mデバイスがクローリングをサポートしないと決定された後のいずれかにおいて、M2Mクローラサービス400は、他のサービスと協働し、メタデータおよび/またはクローリング結果を公開することができるかどうかが決定される。M2Mクローラサービス400が、協働しない場合、プロセスは、ステップ730に進み、そこで、終了する。M2Mクローラサービスが協働することができる場合、プロセスは、ステップ728に進み、そこで、M2Mクローラサービス400は、他のサービスと協働し、メタデータおよび/またはクローリングする結果を公開する。
例示的実施形態では、M2Mデバイスの効率的イベントベースのクローリングをサポートするために(周期的またはランダムクローリングではなく)、M2Mクローラサービス400は、M2Mデバイスを構成すること、M2Mデバイスに加入すること、およびM2Mデバイスからのクローライベントの通知を受信することをサポートする。例えば、M2Mクローラサービス400は、M2Mクローラサービス400が、特定のイベントが生じると通知されるように、M2Mデバイスに関するトリガ条件を構成し得る。M2Mクローラサービスはまた、M2Mデバイスのネイティブ(固定)トリガ条件をサポートすることができる。セマンティクスの例示的セットが、本明細書では、構成可能クローライベントトリガ条件をサポートするために定義される。表4は、例示的実施形態による、JSONベースのセマンティクスの例示的セットを図示する。他の代替フォーマットもまた、所望に応じて、使用されることができ、追加のまたは代替セマンティクスは、所望に応じて、M2Mクローラサービス400によって使用されることができることを理解されるであろう。
ここで図11を参照すると、第1のインターフェース502を経由したM2Mデバイスからのクローライベントの通知の受信をサポートするために、M2Mクローラサービス400は、M2Mデバイスに加入し、クローライベント通知を受信することができる。加入の一部として、M2Mクローラサービス400は、クローライベントがデバイスによって生成される場合/そのとき、制御すべきトリガ条件を構成することができる。図11を参照すると、図示される実施形態によると、M2Mクローラサービス400は、M2Mデバイス18によって生成されるクローライベントに加入する。1102において、M2Mクローラサービス400は、加入要求をM2Mデバイス18に送信する。図示されるM2Mデバイス18は、M2Mクローラサービス400がRESTful POST動作を使用してクローライベントに加入することを可能にする、デバイスクローライベント加入リソース(例えば、‘/device/dce/subscriptions’)をサポートする。例示的加入要求のペイロード内に含まれるのは、表4に規定された図示されるJSONフォーマットの意味論的記述を使用する、クローライベントに対するトリガ条件である。さらに、例示的加入要求内に含まれるのは、トリガ条件が満たされる場合/そのとき、M2Mデバイス18が、クローライベントをM2Mクローラサービス400に送信するために使用することができる、コールバックURIである。例えば、1104において、要求に応答して、クローライベント加入が、M2Mデバイス18において作成され、トリガが、M2Mデバイス18において構成される。1106において、クローライベントが、トリガされる。1108において、クローライベントまたはクローライベントの通知が、M2Mクローラサービス400に送信される。図示される実施例によると、クローライベントは、RESTful POST要求を使用して、M2Mクローラサービス400に送信される。この要求は、そのペイロード内にイベント情報を含むことができる。イベント情報は、例えば、クローリングする/再クローリングするリソースに対するURIのリストを含み得る。クローライベントの受信に応じて、1110において、M2Mクローラサービス400は、本明細書に説明されるように、M2Mデバイス18のクローリングを行うかどうか、および/または本明細書に説明されるように、1つ以上のウェブクローラへのクローライベントを生成するかどうかを決定し得る。例えば、1112において、M2Mクローラサービス400は、クローライベントに関連付けられた通知の受信に基づいて、M2Mデバイス18の1つ以上のリソースをクローリングし得る。
したがって、例えば、M2Mクローラサービス400をホストし得る、第1の、すなわち、M2Mノードは、M2Mデバイスに関連付けられたクローラメタデータを受信し得る。M2Mノードは、受信されたクローラメタデータに従って、1つ以上のリソースに対してM2Mデバイスをクローリングし得る。さらに、M2Mノードは、1つ以上のリソースが、ウェブクローラ、サービス、またはアプリケーションのうちの少なくとも1つによって発見されることができるように、1つ以上のリソースを公開し得る。前述のように、M2Mノードは、加入要求をM2Mデバイスに送信し得る。加入要求は、クローライベントに関連付けられたトリガ条件を含み得、M2Mデバイスは、加入要求に従って構成され得る。トリガ条件が満たされた場合、M2Mノードは、クローライベントの通知を受信し得る。通知を受信することに応答して、M2Mノードは、1つ以上のリソースのうちの選択リソースに対してM2Mデバイスを再クローリングし得、選択リソースは、加入要求において定義されている。代替として、または加えて、通知を受信することに応答して、M2Mノードは、1つ以上のウェブクローラのための第2の通知を生成し得る。
前述のように、M2Mクローラサービス400は、例えば、クローリングされたリソースの表現の記憶/キャッシュ等、クローラプロキシサービスをM2Mデバイスに提供することができる。そのようなサービスは、M2Mサービス層に登録していない、および/またはそのリソース表現をM2Mサービス層リソース内に記憶していない、M2Mデバイス等の種々のデバイスに有用であり得る。M2Mクローラサービス400は、クローリングを開始することによって、自律的/積極的な様式でこのクローリングを行うことができるか、またはM2Mクローラサービス400はまた、所与のM2Mデバイスからの明示的イベントおよび/または要求に基づいて、クローリングすることができる。M2Mデバイスをクローリング後、M2Mクローラサービス400は、クローリングされた情報を使用して、種々のサービスを提供することができる。例えば、M2Mクローラサービス400は、従来のウェブクローラによって使用される、その独自のクローライベントを生成することができる。生成されたクローライベントは、例えば、新しく追加、作成、または削除されたデバイスリソースの検出に基づき得る。M2Mクローラサービス400はまた、クローリングされたM2Mデバイスリソースのキャッシュ/記憶された表現を使用して、M2Mデバイスの代わりに、ウェブクローラ要求にサービス提供することができる。そうすることによって、M2Mデバイスは、潜在的に多数のクローラ要求にサービス提供する必要から解放(オフロード)されることができる。
ここで図12を参照すると、M2Mクローラサービス400は、M2Mクローラメタデータを解析し、M2Mデバイス上にホストされる各リソースおよびリソースに対応するクローラ属性を識別し得る。M2Mデバイス上の各リソースのクローラ属性に基づいて、M2Mクローラサービス400は、どのリソースをクローリングすべきか(例えば、‘do not crawl’属性に基づいて)、リソースをクローリングすべき順序(例えば、‘persistent’属性に基づいて)、およびリソースをクローリングすべきとき(例えば、‘device crawler delay’および/または‘resource crawler delay’および/または‘next update time’属性に基づいて)を決定することができる。
図12を参照すると、図示される実施例によると、M2Mクローラサービスは、1202において、所与のM2Mデバイス18のクローリングを開始する。1204において、M2Mクローラサービス400は、所与のM2Mデバイスに関連付けられたクローラデータが利用可能であるかどうかを決定する。クローラメタデータが利用可能である場合、クローラサービス400は、例えば、‘Do Not Crawl’メタデータ等のメタデータに基づいて、クローリングすべきリソースを識別する。1208において、クローラサービス400は、M2Mデバイスに関連付けられたメタデータに基づいて、例えば、‘Resource Crawling Priority’メタデータに基づいて、クローリング順序を決定する。1210において、クローラサービス400は、M2Mデバイスに関連付けられたメタデータに基づいて、例えば、‘Craling Delay’メタデータに基づいて、クローリングするスケジュールを決定する。1212において、クローラサービス400は、まだフェッチされていない最高優先度に関連付けられたリソースをフェッチし得る。フェッチされるリソースは、メタデータによって定義されるクローラスケジューリング要件も満たし得る。1214において、図示される実施例によると、クローラサービス400は、クローリングされたリソース表現、クローラメタデータ、コンテキスト情報、状態情報等のクローリングに関連付けられた種々の情報を記憶し得る。1216において、クローラサービス400は、依然としてクローリングされる必要があるリソースが存在するかどうかを決定する。クローリングされる必要があるリソースが存在する場合、プロセスは、ステップ1212に戻る。クローリングされる必要があるリソースがもう存在しない場合、クローリングは、1228において終了する。
したがって、前述のように、クローリングされる各リソースに対して、M2Mクローラサービス400は、以下にさらに図13を参照して説明されるように、M2Mデバイスからリソース表現をフェッチし、リソース表現を記憶/キャッシュ(例えば、ローカルに、またはネットワーク記憶エリア内のいずれかに)することができる。クローリングは、積極的な/自律的な方式、またはイベントベースの方式で行われることができる。例えば、M2Mデバイスは、1202において、クローリングを開始するために、M2Mクローラサービスへのイベントをトリガすることができる。クローライベントに対するトリガ条件は、前述のように、M2Mクローラサービス400によって、M2Mデバイス上に構成されることができる。M2Mクローラサービス400はまた、リソースとともに追加の情報を記憶することができる。例えば、M2Mクローラメタデータ内に含まれる情報は、クローリングされたリソース表現(例えば、表現が生じたデバイスタイプまたはリソースタイプ、表現のコンテンツタイプ、リソース単位、およびそれに索引を付けるとき、表現から抽出するキーワード、関連親/子/兄弟リソース表現へのリンク等)とともに記憶されることができる。さらに、1214において、M2Mクローラサービス400が観察/収集する、コンテキストおよび/または状態情報もまた、クローリングされたリソース表現とともに記憶されることができる(例えば、タイムスタンプ、場所、クローリングをトリガしたイベント、このリソースとの関係を有する他のリソースへの表現および/またはリンク等)。
図12を継続して参照すると、1204において、クローラメタデータが利用可能でないことが決定される場合、クローラサービス400は、1218において、別の、例えば、階層内の次のM2Mデバイスリソースを読み出し得る。1220において、クローリングされたリソース表現は、記憶され、他の情報も、クローリングされたリソース表現とともに記憶され得る。1222において、クローラサービス400は、クローリングされたリソースに関連付けられたクローラメタデータを生成する。1224において、クローラサービス400は、クローリングされるべきサブリソースへのリンクに対して、クローリングされたリソース表現をチェックする。1226において、クローラサービス400は、サブリソースが存在するかどうかを決定する。サブリソースが存在する場合、プロセスは、サブリソースがクローリングされ得るように、ステップ1218に戻る。サブリソースが存在しない場合、クローリングは、1228において完了する。
図12に図示されるステップを行うエンティティは、図18Cまたは図18Dに図示されるもの等のデバイス、サーバ、またはコンピュータシステムのメモリ内に記憶され、そのプロセッサ上で実行するソフトウェア(例えば、コンピュータ実行可能命令)の形態で実装され得る、論理エンティティであることを理解されるであろう。すなわち、図12に図示される方法は、図18Cまたは18Dに図示されるデバイスまたはコンピュータシステム等のコンピューティングデバイスのメモリ内に記憶されるソフトウェア(例えば、コンピュータ実行可能命令)の形態で実装され得、そのコンピュータ実行可能命令は、コンピューティングデバイスのプロセッサによって実行されると、図12に図示されるステップを行う。
図13も参照すると、M2Mクローラサービス400は、例示的実施形態によると、M2Mクローラメタデータを使用せずに、クローリングをサポートすることができる。例えば、M2Mクローラサービス400は、最初に、デバイスのベースリソース表現を読み出し、記憶し、次いで、それを調査し、リソース表現が、任意のサブリソースへのリンクを含むかどうかを確認することによって、所与のM2Mデバイスを再帰的に‘ウォーク’することができる。例えば、1302において、M2Mクローラサービス400は、クローライベントを通知される。1304において、M2Mクローラサービス400は、前述のように、公開されたメタデータ、クエリから受信されたメタデータ、または自動生成されたメタデータを使用して、1つ以上のクローラ要求を構築し得る。1306において、M2Mクローラサービス400は、第1のクローラ要求を第1のM2Mデバイス18に送信する。要求に応答して、1308において、第1のM2Mデバイス18は、M2Mクローラサービス400に応答を送信し得る。応答は、要求に関連付けられたリソース表現を含み得る。1310において、図示される実施例によると、M2Mクローラサービス400は、クローリングされたリソース表現、クローラメタデータ、およびコンテキスト情報を記憶する。1312において、M2Mクローラサービス400は、第2のクローラ要求を第2のM2Mデバイス18に送信する。要求に応答して、1314において、第2のM2Mデバイス18は、応答をM2Mクローラサービス400に送信し得る。応答は、第2の要求に関連付けられたリソース表現を含み得る。1316において、図示される実施例によると、M2Mクローラサービス400は、クローリングされたリソース表現、クローラメタデータ、およびコンテキスト情報を記憶する。1318において、M2Mクローラサービス400は、第3のクローラ要求を第3のM2Mデバイス18に送信する。要求に応答して、1320において、第3のM2Mデバイス18は、第3の応答をM2Mクローラサービス400に送信し得る。第3の応答は、第3の要求に関連付けられたリソース表現を含み得る。1322において、図示される実施例によると、M2Mクローラサービス400は、クローリングされたリソース表現、クローラメタデータ、およびコンテキスト情報を記憶する。3つの応答および要求が、図13に図示されるが、例証は、例示目的のためであり、任意の数の要求が、任意の数のM2Mデバイスに送信され得ることを理解されるであろう。
応答に基づいて、前述のように、M2Mクローラサービスは、同様に、サブリソース表現を読み出し、記憶し、サブリソース内のリンクをチェックすることができる。例示的実施形態では、本プロセスは、サブリソースへのリンクが見つからなくなるまで継続することができる。これらの動作を行うことによって、M2Mクローラサービス400は、所与のM2Mデバイスをクローリングすることができ、M2Mクローラサービス400は、M2Mクローラサービス400、または、例えば、M2Mクローラメタデータが共有され得る、ネットワーク内の他のクローラによって、M2Mデバイスの後続再クローリングのために使用され得る、M2Mデバイスに関するM2Mクローラメタデータを自動生成することができる。
前述のように、所与のM2Mクローラサービスは、M2Mクローラサービスの他のインスタンスと協働し得る。例えば、一実施形態では、M2Mクローラサービス400は、第2のインターフェース504を経由して、M2Mクローラサービス400の他のインスタンスと協働する。M2Mクローラサービス400はまた、それぞれ、第3および第4のインターフェース506および508を経由して、ネットワーク内の他のタイプのサービスおよび/またはアプリケーションと協働し得る。協働として、例えば、限定ではないが、クローラメタデータの共有、クローリングされたリソース表現の共有、クローラベースのイベントへの加入、クローラベースのイベントの構成、クローラベースのイベントの生成等が挙げられ得る。
したがって、例えば、M2Mクローラサービス400をホストする、第1の、すなわち、M2Mノードは、少なくとも1つのウェブクローラ、サービス、またはアプリケーションからクエリメッセージを受信し得る。M2Mノードは、クエリメッセージを受信することに応答して、1つ以上のリソースを公開し得る。M2Mノードは、1つ以上のリソースを、ネットワーク内の別の、すなわち、第2のノード上にホストされているM2Mクローラサービスのインスタンスに公開し得る。さらに、M2Mデバイスに関連付けられたクローラメタデータは、ネットワーク内の別の、すなわち、第2のノード上にホストされているM2Mクローラサービス400のインスタンスから受信され得る。
例示的実施形態では、M2Mクローラサービス400は、M2Mクローラメタデータ拡張および自動化された公開をサポートする、サイトマッププロトコルの拡張バージョンを使用して、M2Mクローラメタデータおよび/またはクローリングされたリソース表現を公開することができる。例えば、M2Mクローラサービス400は、サイトマップファイルを本明細書に説明される異なるタイプのクローラメタデータおよびコンテキスト情報で強化することができる。例えば、新しいサイトマップXMLタグ定義が、例えば、表2に図示されるクローラメタデータ等の種々のM2Mクローラメタデータ、および、例えば、表3に図示されるコンテキスト情報等の種々のコンテキスト情報をサポートするように定義される。図14は、クローラメタデータ拡張(太字)をサポートする、例示的サイトマップXMLファイルを示すが、他のクローラメタデータ拡張も、所望に応じて、本明細書に説明される実施形態によって使用され得ることを理解されるであろう。
M2Mクローラサービスは、積極的にクローリングされたM2Mデバイスリソースのクローリングされたバージョンに対して、クローラメタデータを1つ以上のサイトマップファイルにおいて公開することができる。例えば、これらの拡張サイトマップファイルは、インターフェースである第3のインターフェース506を経由して、ウェブクローラに公開されることができる。これは、クローラ要求が、M2Mデバイス上にホストされるリソースの代わりに、ネットワーク内に記憶されるM2Mデバイスリソース表現のクローリングされたバージョンに標的を定められる結果をもたらし得る。代替として、M2Mクローラサービスは、M2Mデバイス上にホストされるリソースに対して、クローラメタデータを1つ以上のサイトマップファイルにおいて公開することができる(例えば、M2Mデバイスがリソースが制約されていない場合)。これは、クローラ要求が、M2Mクローラサービス400ではなく、M2Mデバイス自体に標的を定められる結果をもたらし得る。
M2Mクローラサービスは、種々の実施形態によると、サイトマップファイルを介して、クローラメタデータを公開するための異なる方法をサポートすることができる。一実施形態では、M2Mクローラサービスは、クローラサービスを提供している複数のM2Mデバイスに対して単一のサイトマップファイルを維持することができる。例えば、本方法を使用して、M2Mクローラサービスは、単一サイトマップファイル内に複数のM2Mデバイスに対するM2Mクローラメタデータを集約することができる。これは、各M2Mデバイスに対しての別個の<device>…</device>セクションをサイトマップXML内に含むことによって行われることができる。単一サイトマップファイルを維持する利点は、M2Mクローラメタデータを他のウェブクローラ、サービス、アプリケーション等に公開するためにM2Mクローラサービスに対して要求される要求の数の減少であり得る。本実施形態による例示的コールフローは、図16に示される。
代替として、M2Mクローラサービスは、M2Mクローラサービス400がサービスを提供する各M2Mデバイスに対して、個々のサイトマップファイルを維持することができる。これらの個々のサイトマップファイルは、独立して、ネットワーク内の種々のウェブクローラ、サービス、および/またはアプリケーションに公開されることができる。加えて、M2Mクローラサービス400は、各M2Mデバイスに対する個々のサイトマップファイルの各々への参照(例えば、リンク)を含む、サイトマップインデックスファイルを維持することができる。このサイトマップインデックスファイルおよび個々のサイトマップファイルは、M2Mクローラサービス400によって公開されることができる。したがって、クローラメタデータは、ネットワーク内のウェブクローラ、サービス、および/またはアプリケーションを選択するために、選択M2Mデバイスに対して公開されることができる。
M2Mクローラサービス400が単一サイトマップファイルまたは複数のサイトマップファイルを維持するかどうかにかかわらず、M2Mクローラサービスは、種々の例示的実施形態による、積極的な公開または受動的公開をサポートすることができる。ここで図15を参照すると、積極的な公開は、M2Mクローラサービス400が、サイトマップファイルをネットワーク内の1つ以上のウェブクローラ404、サービス22、および/またはアプリケーション20に送信することを含み得る(1503参照)。応答して、1505において、ウェブクローラ、サービス、および/またはアプリケーションは、公開要求が正常に行われたことを示す応答をM2Mクローラサービス400に送信し得る。代替として、1504において、M2Mクローラサービス400は、サイトマップファイル(例えば、/Sitemap.xml)をローカルの周知のパスにおいて利用可能にし得、ファイルは、M2Mクローラサービス400にアクセスし/それを呼び出し/それをクローリングする、ネットワーク内のウェブクローラ、サービス、アプリケーションによって見出され得る。これは、受動的公開と称され得、クローラサービス400は、クエリメッセージに応答して、1つ以上のサイトマップファイルを受動的に公開し得る(1502参照)。
したがって、M2Mクローラサービスのサイトマップファイルは、M2Mクローラメタデータおよびコンテキスト情報を公開するために使用されることができる。加えて、前述のように、M2Mクローラサービス400が、クローリングされたリソース表現をローカルに記憶し得るか、またはクローラサービス400が、M2Mクローラメタデータを収集し公開することのみ行う場合がある。M2Mクローラサービス400がクローリングされたリソース表現を記憶する例示的シナリオでは、ネットワーク内のウェブクローラ、サービス、およびアプリケーションからのクローラ要求(1506参照)は、M2Mデバイス18のためのクローラプロキシとして機能することができるM2Mクローラサービス400に標的を定められ得る。したがって、1508に示されるように、M2Mクローラサービス400は、直接、要求に応答することができる。M2Mクローラサービス400が、クローリングされたリソース表現を記憶しない例示的シナリオでは、ネットワーク内のウェブクローラ、サービス、およびアプリケーションからの要求(1510参照)は、M2Mクローラサービス400ではなく、M2Mデバイス18に標的を定められ得る。したがって、1512に示されるように、M2Mデバイス18が、要求に応答し得る。
したがって、前述のように、例えば、M2Mクローラサービス400をホストし得る、M2Mノードは、M2Mデバイスに関連付けられたクローラメタデータを受信し得る。M2Mノードは、受信されたクローラメタデータに従って、1つ以上のリソースに対してM2Mデバイスをクローリングし得る。さらに、M2Mノードは、1つ以上のリソースが、ウェブクローラ、サービス、またはアプリケーションのうちの少なくとも1つによって発見されることができるように、1つ以上のリソースを公開し得る。1つ以上のリソースを公開することは、1つ以上のサイトマップファイルを直接少なくとも1つのウェブクローラ、サービス、またはアプリケーションに送信することを含み得る。代替として、または加えて、1つ以上のリソースを公開することは、1つ以上のサイトマップファイルが、少なくとも1つのウェブクローラ、サービス、またはアプリケーションによって、あるアドレスにおいて読み出され得るように、1つ以上のサイトマップファイルをアドレスにおいて利用可能にすることを含み得る。
ここで図16を参照すると、M2Mクローラサービス400はまた、クローライベントを生成すること、例えば、クローライベントを生成し、第3のインターフェース506を経由して、それを第1のウェブクローラ1600等の1つ以上のウェブクローラへ送信することをサポートすることができる。さらに、M2Mクローラサービス400は、インターフェース504を経由して、M2Mクローラサービスの他のインスタンスのためのクローライベントを生成することができる。さらに、M2Mクローラサービス400は、インターフェース508を経由して、M2Mアプリケーション20、例えば、M2Mデバイス18をクローリングするM2Mアプリケーション20のためのクローライベントを生成することができる。クローライベント生成は、前述のように、任意のM2Mデバイスクローライベントの受信によってトリガされることができる。イベント生成はまた、M2Mクローラサービス400によって自律的かつネイティブにトリガされることができる。例えば、M2Mクローラサービス400は、M2Mクローラサービス400がM2Mデバイス18をクローリングする間に生成される、クローライベントをトリガすることができる。例えば、クローリングの間、M2Mクローラサービス400は、M2Mクローラサービス400によって維持されるリソース状態の以前のバージョンと比較して、1つ以上のデバイスリソースの追加、削除、または状態変化等、ある条件を検出し得、これは、クローライベントが生成されることをトリガする。M2Mクローラサービス400はまた、ウェブクローラ、M2Mサービス、および/またはM2Mアプリケーションに提供される、イベントトリガを構成し得る。さらに、M2Mクローラサービス400は、例えば、表4に図示されるもの等の種々のクローラトリガ条件セマンティクスを使用してサポートされる、クローライベントを構成し得る。
図16を継続して参照すると、図示されるM2Mクローラサービス400は、ウェブクローラ、M2Mサービス、およびM2Mアプリケーションが、RESTful POST動作を使用して、クローライベントに加入することを可能にする、クローライベント加入リソース(‘crawler/dce/subscriptions’)をサポートする。1602において、ウェブクローラは、加入要求をM2Mクローラサービス400に送信する。例示的加入要求のペイロード内に含まれるのは、表4に規定された例示的JSONフォーマット意味論的記述を使用する、クローライベントのためのトリガ条件である。本実施例では、ウェブクローラ1600は、クローラサービス400がそのM2Mデバイスの全てにわたり観察する作成、更新、または削除動作の総数が、1000を上回る場合/そのとき、クローライベントを生成するようにM2Mクローラサービス400を構成する。また、実施例に含まれるのは、トリガ条件が満たされる場合/そのとき、M2Mクローラサービス400がクローライベントをウェブクローラ1600に送信するために使用され得る、コールバックURIである。したがって、1604において、M2Mクローラサービス400は、クローライベント加入を作成し、応答に従って、トリガを構成する。1606において、規定されたクローライベントが、トリガされる。1608において、イベントペイロードが、ウェブクローラ1600に送信される。例示的イベントペイロードに含まれるのは、その状態の変化に起因してクローリングを要求する、リソースのURIのリストである。例えば、610において、クローライベントを受信すると、ウェブクローラ1600は、イベントペイロードに従って、M2Mデバイスリソースのクローリングを行うかどうかを決定することができる。1612において、ウェブクローラ1600は、選択M2Mデバイスリソースをクローリングし得る。
したがって、前述のように、例えば、M2Mクローラサービス400をホストし得る、M2Mノードは、加入要求をウェブクローラから受信し得る。加入要求は、クローライベントに関連付けられたトリガ条件を含み得る。M2Mノードは、加入要求に従ってクローライベント加入を作成し得る。トリガ条件が満たされた場合、M2Mノードは、クローライベントの通知をウェブクローラに送信し得る。通知は、トリガ条件に関連付けられた1つ以上のリソースのリストを含み得る。
図15および16に図示されるステップを行うエンティティは、図18Cまたは図18Dに図示されるもの等のデバイス、サーバ、またはコンピュータシステムのメモリ内に記憶され、そのプロセッサ上で実行するソフトウェア(例えば、コンピュータ実行可能命令)の形態で実装され得る、論理エンティティであることを理解されるであろう。すなわち、図15および16に図示される方法は、図18Cまたは18Dに図示されるデバイスまたはコンピュータシステム等のコンピューティングデバイスのメモリ内に記憶されるソフトウェア(例えば、コンピュータ実行可能命令)の形態で実装され得、そのコンピュータ実行可能命令は、コンピューティングデバイスのプロセッサによって実行されると、図15および16に図示されるステップを行う。
図5を参照して説明されるように、M2Mクローラサービスインスタンスは、M2Mデバイスのネットワーク(例えば、M2Mサーバ、M2Mゲートウェイ、M2Mデバイス等)にわたり分散されることができる。そのようなサービスインスタンスは、分散および/または階層様式において協働し、クローラ要求を分散させ、クローラメタデータおよびクローリングされたリソース表現を互に共有し得る。例えば、M2Mゲートウェイデバイス上にホストされるM2Mクローラサービスインスタンスは、ゲートウェイに登録される、M2Mデバイスをクローリングすることができる。M2Mクローラサービスは、次いで、(例えば、インターフェース504を経由して)これらのクローリングされたリソース表現およびクローラメタデータを、M2Mゲートウェイが登録される、M2Mサーバ上にホストされるM2Mクローラサービスインスタンスに公開することができる。同様に、このM2Mクローラサービスは、これらのクローラ結果をネットワーク内の他のM2Mサーバ上にホストされる他のM2Mクローラサービスインスタンスに公開することができる。
例示的実施形態では、M2Mクローラサービス協働は、前述のサイトマップ公開機構に基づき、各M2Mクローラサービスインスタンスは、そのサイトマップを階層内のより高い他のM2Mクローラサービスインスタンスに公開する。そうすることによって、ネットワーク全体を通したM2Mデバイスのクローリングが、現在のウェブクローラがウェブをクローリングする様式と比較して、より協調した様式において行われることができる。例えば、クローラメタデータおよび結果を階層様式で公開することによって、M2Mクローラサービス協働は、クローラ結果が、階層内のより上層におけるM2Mクローラサービスインスタンスまで及び得るため、個々のM2Mデバイスがクローリングされる時間量を短縮することができる。他のM2Mクローラサービスインスタンスと比較して、階層内のより上層に常駐するM2Mクローラサービスインスタンスは、次いで、より下層のM2Mクローラサービスインスタンスの前に、クローラ要求にサービス提供するために使用されることができる。特定のM2Mクローラサービスインスタンスが、要求にサービス提供することができない(例えば、有効クローラ結果を有していない)場合、要求を階層内のより下層のM2Mクローラサービスインスタンスに転送するかどうかを決定することができる。本形態の階層M2Mクローラサービス協働をサポートすることによって、M2Mネットワーク内のクローラトラフィックの量ならびにリソースが制約されたM2Mデバイス上のクローラトラフィックの負荷が、大幅に低減されることができる。
ここで図17を参照すると、oneM2Mは、能力サービス機能(CSF)1702と称される、oneM2Mサービス層によってサポートされる能力を定義する。oneM2Mサービス層は、能力サービスエンティティ(CSE)1704と称される。一実施形態では、M2Mクローラサービス400は、oneM2M CSFとしてサポートされることができ、したがって、M2MクローラCSF400と称され得る。例えば、クローラCSF400がクローリングするM2Mデバイスは、アプリケーションおよび/またはCSEそれら自体をホストする、M2Mデバイス、ゲートウェイ、およびサーバであり得る。アプリケーションおよびCSE1704は、M2MクローラCSF400がメタデータをクローリングおよび収集し得る、リソースをサポートすることができる。このクローリングは、oneM2M定義‘X’および‘Y’基準点を介して行われることができる。M2Mクローラサービス400インターフェース502、506、および508の本明細書に説明される機能性は、oneM2M‘X’基準点上の対応する機能性を定義することによって、サポートされることができる。同様に、M2Mクローラサービス400インターフェース504の本明細書に説明される機能性は、oneM2M‘Y’基準点上の動作を定義することによって、サポートされることができる。
例えば、クローラCSF400は、クローラ結果をネットワーク内の他のクローラCSFインスタンスと共有することができる。クローラCSF400はまた、クローラ結果をネットワーク内の他のタイプのCSFならびに他の非oneM2Mサービスおよびアプリケーション(例えば、ウェブクローラ)と共有することができる。
例示的実施形態によると、表2に図示されるM2Mクローラメタデータ、表3に図示されるM2Mクローラコンテキスト情報、ならびに前述のM2Mクローライベント加入およびセマンティクスは、oneM2Mアーキテクチャ内に新しいリソースおよび属性として定義されることができる。同様に、本明細書に説明されるM2Mクローラ方法は、oneM2Mアーキテクチャ内のM2MクローラCSFプロシージャとして定義されることができる。
ETSI M2Mは、サービス能力(SC)と称される、ETSI M2Mサービス層によってサポートされる能力を定義する。ETSI M2Mサービス層は、サービス能力層(SCL)と称される。一実施形態では、本明細書に説明されるM2Mクローラサービス400は、ETSI M2M SCとしてサポートされる。クローラSCがクローリングするM2Mデバイスは、アプリケーションおよび/またはSCLそれら自体をホストする、M2Mデバイス、ゲートウェイ、およびサーバであり得る。アプリケーションおよびSCLは、M2MクローラSCがメタデータをクローリングおよび収集し得る、リソースをサポートすることができる。このクローリングは、‘dIa’、‘mIa’および‘mId’基準点を介して行われることができ、本明細書に説明されるM2Mクローラサービス400のインターフェース502は、‘dIa’基準点上の動作を定義することによってサポートされることができ、本明細書に説明されるインターフェース506および508は、‘mIa’基準点上の動作を定義することによってサポートされることができ、本明細書に説明されるインターフェース504は、‘mId’基準点上の動作を定義することによってサポートされることができ。
例えば、クローラSCは、クローラ結果をネットワーク内の他のクローラSCインスタンスと共有することができる。クローラSCはまた、クローラ結果をネットワーク内の他のタイプのSCならびに他の非ETSI M2Mサービスおよびアプリケーション(例えば、ウェブクローラ)と共有することができる。
表2に図示される例示的M2Mクローラメタデータ、表3に図示されるM2Mクローラコンテキスト情報、ならびに前述のM2Mクローライベント加入およびセマンティクスは、例示的実施形態によると、ETSI M2Mリソース構造内の新しいリソースおよび属性として定義されることができる。同様に、本明細書に説明されるM2Mクローラ方法は、ETSI M2Mアーキテクチャ内のM2MクローラSCプロシージャとして定義されることができる。例えば、一実施形態によると、M2MクローラSCは、背景タスクとして起動し、M2Mサービス層内に記憶されるM2Mデバイスリソースをクローリングし、クローラメタデータを生成することができる。そうすることによって、このメタデータは、順に、ウェブクローラに利用可能にされることができる(例えば、拡張サイトマップ方法を介して)。したがって、例えば、M2MクローラSCは、クローラメタデータを人々がより容易に見つけ得るウェブ検索エンジンに広告することによって、サービスをローカルSCLならびにSCLに登録されたM2Mデバイスに提供する。
前述のように、実施形態は、拡張IoTウェブブラウジングを可能にする。例えば、M2Mデバイスは、ウェブ検索エンジンを使用して検索されることができる。種々のクエリが、ユーザによって検索エンジンに打ち込まれ、M2Mデバイスに関連付けられた情報を読み出すことができる。例示的クエリとして、例えば、限定ではないが、M2Mデバイスのタイプ、M2Mデバイスの物理的場所、M2Mデバイスに関連付けられたコンテンツタイプ、M2Mデバイスに関連付けられた測定単位等に関連するクエリが挙げられる。加えて、前述の実施形態を使用して、例えば、所与のM2Mデバイスの到達可能性ステータス、M2Mデバイスに関連付けられたコンテンツの可用性(例えば、過去または現在)等、M2Mデバイスに関連付けられた種々の情報を含む、検索エンジン結果が、ユーザのコンピューティングデバイス上に表示されることができる。
図18Aは、1つ以上の開示された実施形態が実装され得る、例示的マシンツーマシン(M2M)、モノのインターネット(IoT)、またはモノのウェブ(WoT)通信システム10の略図である。概して、M2M技術は、IoT/WoTのための構成要素を提供し、任意のM2Mデバイス、M2Mゲートウェイ、またはM2Mサービスプラットフォームは、IoT/WoTの構成要素ならびにIoT/WoTサービス層等であり得る。
図18Aに示されるように、M2M/IoT/WoT通信システム10は、通信ネットワーク12を含む。通信ネットワーク12は、固定ネットワーク(例えば、イーサネット(登録商標)、ファイバ、ISDN、PLC等)、または無線ネットワーク(例えば、WLAN、セルラー等)、もしくは異種ネットワークのネットワークであり得る。例えば、通信ネットワーク12は、音声、データ、ビデオ、メッセージング、ブロードキャスト等のコンテンツを複数のユーザに提供する、複数のアクセスネットワークから成り得る。例えば、通信ネットワーク12は、符号分割多重アクセス(CDMA)、時分割多重アクセス(TDMA)、周波数分割多重アクセス(FDMA)、直交FDMA(OFDMA)、単一キャリアFDMA(SC−FDMA)等の1つ以上のチャネルアクセス方法を採用し得る。さらに、通信ネットワーク12は、例えば、コアネットワーク、インターネット、センサネットワーク、工業制御ネットワーク、パーソナルエリアネットワーク、融合個人ネットワーク、衛星ネットワーク、ホームネットワーク、または企業ネットワーク等の他のネットワークを備え得る。
図18Aに示されるように、M2M/IoT/WoT通信システム10は、インフラストラクチャドメインおよびフィールドドメインを含み得る。インフラストラクチャドメインは、エンドツーエンドM2M展開のネットワーク側を指し、フィールドドメインは、通常はM2Mゲートウェイの背後にある、エリアネットワークを指す。フィールドドメインは、M2Mゲートウェイ14と、端末デバイス18とを含む。任意の数のM2Mゲートウェイデバイス14およびM2M端末デバイス18が、所望に応じてM2M/IoT/WoT通信システム10に含まれ得ることが理解されるであろう。M2Mゲートウェイデバイス14およびM2M端末デバイス18の各々は、通信ネットワーク12または直接無線リンクを介して、信号を伝送および受信するように構成される。M2Mゲートウェイデバイス14は、無線M2Mデバイス(例えば、セルラーおよび非セルラー)ならびに固定ネットワークM2Mデバイス(例えば、PLC)が、通信ネットワーク12等のオペレータネットワークを通して、または直接無線リンクを通してのいずれかで、通信することを可能にする。例えば、M2Mデバイス18は、データを収集し、通信ネットワーク12または直接無線リンクを介して、データをM2Mアプリケーション20またはM2Mデバイス18に送信し得る。M2Mデバイス18はまた、M2Mアプリケーション20またはM2Mデバイス18からデータを受信し得る。さらに、データおよび信号は、以下で説明されるように、M2Mサービス層22を介して、M2Mアプリケーション20に送信され、そこから受信され得る。M2Mデバイス18およびゲートウェイ14は、例えば、セルラー、WLAN、WPAN(例えば、Zigbee(登録商標)、6LoWPAN、Bluetooth(登録商標))、直接無線リンク、および有線を含む、種々のネットワークを介して通信し得る。
図18Bを参照すると、フィールドドメイン内の図示したM2Mサービス層22は、M2Mアプリケーション20、M2Mゲートウェイデバイス14、M2M端末デバイス18、および通信ネットワーク12のためのサービスを提供する。M2Mサービス層22は、所望に応じて、任意の数のM2Mアプリケーション、M2Mゲートウェイデバイス14、M2M端末デバイス18、および通信ネットワーク12と通信し得ることが理解されるであろう。M2Mサービス層22は、1つ以上のサーバ、コンピュータ等によって実装され得る。M2Mサービス層22は、M2M端末デバイス18、M2Mゲートウェイデバイス14、およびM2Mアプリケーション20に適用される、サービス能力を提供する。M2Mサービス層22の機能は、例えば、ウェブサーバとして、セルラーコアネットワークで、クラウドで等、種々の方法で実装され得る。
図示したM2Mサービス層22と同様に、インフラストラクチャドメイン内にM2Mサービス層22’が存在する。M2Mサービス層22’は、インフラストラクチャドメイン内のM2Mアプリケーション20’および下層通信ネットワーク12’のためのサービスを提供する。M2Mサービス層22’はまた、フィールドドメイン内のM2Mゲートウェイデバイス14およびM2M端末デバイス18のためのサービスも提供する。M2Mサービス層22’は、任意の数のM2Mアプリケーション、M2Mゲートウェイデバイス、およびM2M端末デバイスと通信し得ることが理解されるであろう。M2Mサービス層22’は、異なるサービスプロバイダによるサービス層と相互作用し得る。M2Mサービス層22’は、1つ以上のサーバ、コンピュータ、仮想マシン(例えば、クラウド/計算/記憶ファーム等)等によって実装され得る。
また、図18Bを参照すると、M2Mサービス層22および22’は、多様なアプリケーションおよび垂直線が活用することができる、サービス配布能力のコアセットを提供する。これらのサービス能力は、M2Mアプリケーション20および20’がデバイスと相互作用し、データ収集、データ分析、デバイス管理、セキュリティ、課金、サービス/デバイス発見等の機能を果たすことを可能にする。本質的に、これらのサービス能力は、これらの機能性を実装する負担をアプリケーションから取り除き、したがって、アプリケーション開発を単純化し、市場に出す費用および時間を削減する。サービス層22および22’はまた、M2Mアプリケーション20および20’が、サービス層22および22’が提供するサービスと関連して、種々のネットワーク12および12’を通して通信することも可能にする。
いくつかの実施形態では、M2Mアプリケーション20および20’は、本明細書に論じられるように、セッション証明書を使用して通信する所望のアプリケーションを含み得る。M2Mアプリケーション20および20’は、限定ではないが、輸送、健康およびウェルネス、コネクテッドホーム、エネルギー管理、資産追跡、ならびにセキュリティおよび監視等、種々の産業におけるアプリケーションを含み得る。前述のように、デバイス、ゲートウェイ、および他のシステムのサーバにわたり起動するM2Mサービス層は、例えば、データ収集、デバイス管理、セキュリティ、課金、場所追跡/ジオフェンシング、デバイス/サービスの発見、および従来のシステムの統合等の機能をサポートし、サービスとしてのこれらの機能に、M2Mアプリケーション20および20’を提供する。
本願のM2Mクローリングサービス400は、任意のサービス層の一部として実装され得る。サービス層は、一組のアプリケーションプログラミングインターフェース(API)および下層ネットワーキングインターフェースを通して付加価値サービス能力をサポートする、ソフトウェアミドルウェア層である。M2Mエンティティ(例えば、ハードウェアおよびソフトウェアの組み合わせによって実装され得る、デバイス、ゲートウェイ、またはサービス/プラットフォーム等のM2M機能的エンティティ)は、アプリケーションまたはサービスを提供し得る。ETSI M2MおよびoneM2Mは両方とも、E2E M2Mサービス層セッション管理および本発明の他のものを含み得る、サービス層を使用する。ETSI M2Mのサービス層は、サービス能力層(SCL)と称される。SCLは、M2Mデバイス(デバイスSCL(DSCL)と称される)、ゲートウェイ(ゲートウェイSCL(GSCL)と称される)、および/またはネットワークノード(ネットワークSCL(NSCL)と称される)内に実装され得る。oneM2Mサービス層は、一組の共通サービス機能(CSF)(すなわち、サービス能力)をサポートする。一組の1つ以上の特定のタイプのCSFのインスタンス化は、共通サービスエンティティ(CSE)と称され、異なるタイプのネットワークノード(例えば、インフラストラクチャノード、ミドルノード、特定用途向けノード)上にホストされ得る。さらに、E2E M2Mサービス層セッション管理および本願の他のものは、本願の中でもとりわけ、セッションエンドポイント、セッションマネージャ、およびセッション証明書機能等、サービスにアクセスするためにサービス指向アーキテクチャ(SOA)および/またはリソース指向アーキテクチャ(ROA)を使用する、M2Mネットワークの一部として実装されることができる。
図18Cは、例えば、M2M端末デバイス18またはM2Mゲートウェイデバイス14等の例示的M2Mデバイス30の系統図である。図18Cに示されるように、M2Mデバイス30は、プロセッサ32と、送受信機34と、伝送/受信要素36と、スピーカ/マイクロホン38と、キーパッド40と、ディスプレイ/タッチパッド42と、非取り外し可能なメモリ44と、取り外し可能なメモリ46と、電源48と、全地球測位システム(GPS)チップセット50と、他の周辺機器52とを含み得る。M2Mデバイス30は、実施形態と一致したままで、先述の要素の任意の副次的組み合わせを含み得ることが理解されるであろう。本デバイスは、M2Mクローリングサービス400を含む、開示されるシステムおよび方法を使用するデバイスであり得る。
プロセッサ32は、汎用プロセッサ、特殊用途プロセッサ、従来のプロセッサ、デジタル信号プロセッサ(DSP)、複数のマイクロプロセッサ、DSPコアと関連する1つ以上のマイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)回路、任意の他のタイプの集積回路(IC)、状態マシン等であり得る。プロセッサ32は、信号符号化、データ処理、電力制御、入出力処理、および/またはM2Mデバイス30が無線環境で動作することを可能にする任意の他の機能性を果たし得る。プロセッサ32は、伝送/受信要素36に連結され得る、送受信機34に連結され得る。図18Cは、プロセッサ32および送受信機34を別個の構成要素として描写するが、プロセッサ32および送受信機34は、電子パッケージまたはチップにともに組み込まれ得ることが理解されるであろう。プロセッサ32は、アプリケーション層プログラム(例えば、ブラウザ)および/または無線アクセス層(RAN)プログラムならびに/もしくは通信を行い得る。プロセッサ32は、例えば、アクセス層および/またはアプリケーション層等で、認証、セキュリティキー一致、および/または暗号化動作等のセキュリティ動作を行い得る。
伝送/受信要素36は、信号をM2Mサービスプラットフォーム22に伝送し、またはM2Mサービスプラットフォーム22から信号を受信するように構成され得る。例えば、実施形態では、伝送/受信要素36は、RF信号を伝送および/または受信するように構成されるアンテナであり得る。伝送/受信要素36は、WLAN、WPAN、セルラー等の種々のネットワークおよびエアインターフェースをサポートし得る。実施形態では、伝送/受信要素36は、例えば、IR、UV、または可視光信号を伝送および/または受信するように構成されるエミッタ/検出器であり得る。さらに別の実施形態では、伝送/受信要素36は、RFおよび光信号の両方を伝送および受信するように構成され得る。伝送/受信要素36は、無線または有線信号の任意の組み合わせを伝送および/または受信するように構成され得ることが理解されるであろう。
加えて、伝送/受信要素36は、単一の要素として図18Cで描写されているが、M2Mデバイス30は、任意の数の伝送/受信要素36を含み得る。より具体的には、M2Mデバイス30は、MIMO技術を採用し得る。したがって、実施形態では、M2Mデバイス30は、無線信号を伝送および受信するための2つまたはそれを上回る伝送/受信要素36(例えば、複数のアンテナ)を含み得る。
送受信機34は、伝送/受信要素36によって伝送される信号を変調するように、および伝送/受信要素36によって受信される信号を復調するように構成され得る。上記のように、M2Mデバイス30は、マルチモード能力を有し得る。したがって、送受信機34は、M2Mデバイス30が、例えば、UTRAおよびIEEE802.11等の複数のRATを介して通信することを可能にするための複数の送受信機を含み得る。
プロセッサ32は、非取り外し可能なメモリ44および/または取り外し可能なメモリ46等の任意のタイプの好適なメモリから情報にアクセスし、そこにデータを記憶し得る。非取り外し可能なメモリ44は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、ハードディスク、または任意の他のタイプのメモリ記憶デバイスを含み得る。取り外し可能なメモリ46は、加入者識別モジュール(SIM)カード、メモリスティック、セキュアデジタル(SD)メモリカード等を含み得る。他の実施形態では、プロセッサ32は、サーバまたはホームコンピュータ上等のM2Mデバイス30上に物理的に位置しないメモリから情報にアクセスし、そこにデータを記憶し得る。プロセッサ32は、本明細書に説明される実施形態のうちのいくつかにおけるM2Mクローリングサービス400(例えば、クローリング、公開、協働)が成功または非成功であるかどうかに応答して、ディスプレイまたはインジケータ42上の照明パターン、画像、または色を制御するか、または別様に、M2Mクローリングサービス400性能のステータスを示すように構成され得る。別の実施例では、ディスプレイは、本明細書に説明される、クローリングするイベントに関する情報を示し得る。ディスプレイ上に示され得る、グラフィカルユーザインターフェースは、APIの上に層化され、ユーザが、本明細書に説明される下層M2Mクローリングサービス400を介して、M2Mデバイスのウェブ検索を双方向に確立および管理することを可能にし得る。例えば、所与のM2Mデバイスの到達可能性ステータス、M2Mデバイスに関連付けられたコンテンツの可用性(例えば、過去または現在)等、M2Mデバイスに関連付けられた種々の情報を含む、検索エンジン結果が、例えば、ユーザのコンピューティングデバイス上に表示されることができる。
プロセッサ32は、電源48から電力を受け取り得、M2Mデバイス30内の他の構成要素への電力を配信および/または制御するように構成され得る。電源48は、M2Mデバイス30に電力供給するための任意の好適なデバイスであり得る。例えば、電源48は、1つ以上の乾電池バッテリ(例えば、ニッケルカドミウム(NiCd)、ニッケル亜鉛(NiZn)、ニッケル水素(NiMH)、リチウムイオン(Li−ion)等)、太陽電池、燃料電池等を含み得る。
プロセッサ32はまた、M2Mデバイス30の現在の場所に関する場所情報(例えば、経度および緯度)を提供するように構成される、GPSチップセット50に連結され得る。M2Mデバイス30は、実施形態と一致したままで、任意の公的な場所決定方法を介して場所情報を獲得し得ることが理解されるであろう。
プロセッサ32はさらに、追加の特徴、機能性、および/または有線もしくは無線接続を提供する、1つ以上のソフトウェアおよび/またはハードウェアモジュールを含み得る、他の周辺機器52に連結され得る。例えば、周辺機器52は、加速度計、e−コンパス、衛星送受信機、センサ、デジタルカメラ(写真またはビデオ用)、ユニバーサルシリアルバス(USB)ポート、振動デバイス、テレビ送受信機、ハンズフリーヘッドセット、Bluetooth(登録商標)モジュール、周波数変調(FM)ラジオユニット、デジタル音楽プレーヤ、メディアプレーヤ、ビデオゲームプレーヤモジュール、インターネットブラウザ等を含み得る。
図18Dは、例えば、図18Aおよび18BのM2Mサービスプラットフォーム22が実装され得る、例示的コンピュータシステム90のブロック図である。コンピュータシステム90は、コンピュータまたはサーバを備え得、主に、ソフトウェアの形態であり得るコンピュータ読み取り可能な命令によって制御され得、どこでも、またはどのような手段を用いても、そのようなソフトウェアが記憶もしくはアクセスされる。そのようなコンピュータ読み取り可能な命令は、コンピュータシステム90を起動させるように、中央処理装置(CPU)91内で実行され得る。多くの既知のワークステーション、サーバ、および周辺コンピュータでは、中央処理装置91は、マイクロプロセッサと呼ばれる単一チップCPUによって実装される。他のマシンでは、中央処理装置91は、複数のプロセッサを備え得る。コプロセッサ81は、追加の機能を果たすか、またはCPU91を支援する、主要CPU91とは明確に異なる、随意的なプロセッサである。CPU91および/またはコプロセッサ81は、セッション証明書の受信またはセッション証明書に基づく認証等、E2E M2Mサービス層セッションのための開示されるシステムおよび方法に関連するデータを受信、生成、および処理し得る。
動作時、CPU91は、命令をフェッチ、復号、および実行し、コンピュータの主要データ転送パスであるシステムバス80を介して、情報を他のリソースへ、およびそこから転送する。そのようなシステムバスは、コンピュータシステム90内の構成要素を接続し、データ交換のための媒体を定義する。システムバス80は、典型的には、データを送信するためのデータライン、アドレスを送信するためのアドレスライン、ならびに割り込みを送信するため、およびシステムバスを動作するための制御ラインを含む。そのようなシステムバス80の実施例は、PCI(周辺構成要素相互接続)バスである。
システムバス80に連結されるメモリデバイスは、ランダムアクセスメモリ(RAM)82および読み取り専用メモリ(ROM)93を含む。そのようなメモリは、情報が記憶されて取り出されることを可能にする回路を含む。ROM93は、概して、容易に修正することができない、記憶されたデータを含む。RAM82に記憶されたデータは、CPU91または他のハードウェアデバイスによって読み取られ、または変化され得る。RAM82および/またはROM93へのアクセスは、メモリコントローラ92によって制御され得る。メモリコントローラ92は、命令が実行されると、仮想アドレスを物理的アドレスに変換する、アドレス変換機能を提供し得る。メモリコントローラ92はまた、システム内のプロセスを単離し、ユーザプロセスからシステムプロセスを単離する、メモリ保護機能を提供し得る。したがって、第1のモードで作動するプログラムは、独自のプロセス仮想アドレス空間によってマップされるメモリのみにアクセスすることができ、プロセス間のメモリ共有が設定されていない限り、別のプロセスの仮想アドレス空間内のメモリにアクセスすることができない。
加えて、コンピュータシステム90は、CPU91からプリンタ94、キーボード84、マウス95、およびディスクドライブ85等の周辺機器に命令を伝達する責任がある、周辺機器コントローラ83を含み得る。
ディスプレイコントローラ96によって制御されるディスプレイ86は、コンピュータシステム90によって生成される視覚出力を表示するために使用される。そのような視覚出力は、テキスト、グラフィックス、動画グラフィックス、およびビデオを含み得る。ディスプレイ86は、CRTベースのビデオディスプレイ、LCDベースのフラットパネルディスプレイ、ガスプラズマベースのフラットパネルディスプレイ、またはタッチパネルを伴って実装され得る。ディスプレイコントローラ96は、ディスプレイ86に送信されるビデオ信号を生成するために必要とされる、電子構成要素を含む。
さらに、コンピュータシステム90は、図18Aおよび18Bのネットワーク12等の外部通信ネットワークにコンピュータシステム90を接続するために使用され得る、ネットワークアダプタ97を含み得る。
本明細書で説明されるシステム、方法、およびプロセスのうちのいずれかまたは全ては、命令が、コンピュータ、サーバ、M2M端末デバイス、M2Mゲートウェイデバイス等のマシンによって実行されたときに、本明細書で説明されるシステム、方法、およびプロセスを行うおよび/または実装される、コンピュータ読み取り可能な記憶媒体上に記憶されたコンピュータ実行可能命令(すなわち、プログラムコード)の形態で具現化され得ることが理解される。具体的には、上記で説明されるステップ、動作、または機能のうちのいずれかは、そのようなコンピュータ実行可能命令の形態で実装され得る。コンピュータ読み取り可能な記憶媒体は、情報の記憶のための任意の方法または技術で実装される、揮発性および不揮発性、取り外し可能なおよび非取り外し可能な媒体の両方を含むが、そのようなコンピュータ読み取り可能な記憶媒体は、信号を含まない。コンピュータ読み取り可能な記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは所望の情報を記憶するために使用することができ、コンピュータによってアクセスすることができる任意の他の物理的媒体を含むが、それらに限定されない。
図で図示されるような本開示の主題の好ましい実施形態を説明する際に、明確にするために、特定の用語が採用される。しかしながら、請求された主題は、そのように選択された特定の用語に限定されることを目的としておらず、各特定の要素は、類似目的を達成するように同様に動作する、全ての技術的均等物を含むことを理解されたい。
本明細書は、最良の様態を含む、本発明を開示するために、また、当業者が、任意のデバイスまたはシステムを作製して使用すること、および任意の組み込まれた方法を行うことを含む、本発明を実践することを可能にするために、実施例を使用する。本発明の特許性のある範囲は、請求項によって定義され、当業者に想起される他の実施例を含み得る。そのような他の実施例は、請求項の文字通りの言葉とは異ならない構造要素を有する場合に、または請求項の文字通りの言葉とのごくわずかな差異を伴う同等の構造要素を含む場合に、請求項の範囲内であることを目的としている。