(57)【特許請求の範囲】
【請求項１】
マシンツーマシン（Ｍ２Ｍ）ノードであって、前記Ｍ２Ｍノードは、
プロセッサと、
前記プロセッサに結合されているメモリと
を備え、
前記メモリは、実行可能な命令が記憶されており、前記命令は、前記プロセッサによって実行されると、
Ｍ２Ｍデバイスに関連付けられたクローラメタデータを受信することと、
前記受信されたクローラメタデータに従って、１つ以上のリソースに対して前記Ｍ２Ｍデバイスをクローリングすることであって、前記クローラメタデータは、前記１つ以上のリソースと、前記１つ以上のリソースがクローリングされる順序または前記１つ以上のリソースをクローリングするためのクローリングするスケジュールのうちの少なくとも１つとを示し、前記順序は、前記リソースの優先度に基づいて決定され、前記クローリングするスケジュールは、前記Ｍ２Ｍデバイスの遅延情報に基づいて決定される、ことと、
前記１つ以上のリソースが、ウェブクローラ、サービス、または、アプリケーションのうちの少なくとも１つによって発見されることができるように、前記１つ以上のリソースを公開することと
を含む動作を前記プロセッサに行わせる、Ｍ２Ｍノード。
【請求項２】
前記動作は、
前記クローラメタデータを要求するためにクエリを前記Ｍ２Ｍデバイスに送信することと、
前記クエリに応答して、前記クローラメタデータを受信することと
をさらに含む、請求項１に記載のＭ２Ｍノード。
【請求項３】
前記動作は、加入要求を前記Ｍ２Ｍデバイスに送信することをさらに含み、前記加入要求は、クローライベントに関連付けられたトリガ条件を含み、前記Ｍ２Ｍデバイスは、前記加入要求に従って構成されている、請求項１に記載のＭ２Ｍノード。
【請求項４】
前記動作は、
前記トリガ条件が満たされた場合、前記クローライベントの通知を受信することと、
前記通知を受信することに応答して、前記１つ以上のリソースのうちの選択リソースに対して前記Ｍ２Ｍデバイスを再クローリングすることであって、前記選択リソースは、前記加入要求において定義されている、ことと
をさらに含む、請求項３に記載のＭ２Ｍノード。
【請求項５】
前記動作は、
前記トリガ条件が満たされた場合、前記クローライベントの通知を受信することと、
前記通知を受信することに応答して、１つ以上のウェブクローラのために第２の通知を生成することと
をさらに含む、請求項３に記載のＭ２Ｍノード。
【請求項６】
前記動作は、
クエリメッセージを少なくとも１つのウェブクローラ、サービス、または、アプリケーションから受信することと、
前記クエリメッセージを受信することに応答して、前記１つ以上のリソースを公開することと
をさらに含む、請求項１に記載のＭ２Ｍノード。
【請求項７】
前記１つ以上のリソースを公開することは、１つ以上のサイトマップファイルを少なくとも１つのウェブクローラ、サービス、または、アプリケーションに直接送信することを含む、請求項１に記載のＭ２Ｍノード。
【請求項８】
前記１つ以上のリソースを公開することは、１つ以上のサイトマップファイルをあるアドレスにおいて利用可能にすることを含み、それによって、前記１つ以上のサイトマップファイルは、少なくとも１つのウェブクローラ、サービス、または、アプリケーションによって、前記アドレスにおいて読み出されることができる、請求項１に記載のＭ２Ｍノード。
【請求項９】
前記動作は、前記Ｍ２Ｍデバイスに関連付けられたクローラメタデータを含む制約されたＲＥＳＴｆｕｌ環境（ＣｏＲＥ）リソースディレクトリ登録要求を受信することをさらに含む、請求項１に記載のＭ２Ｍノード。
【請求項１０】
１つ以上のリソースに対して前記Ｍ２Ｍデバイスをクローリングすることは、前記Ｍ２ＭデバイスからＣｏＲＥリンクフォーマット記述を受信することをさらに含み、前記ＣｏＲＥリンクフォーマット記述は、前記１つ以上のリソースを含む、請求項９に記載のＭ２Ｍノード。
【請求項１１】
前記動作は、
加入要求をウェブクローラから受信することであって、前記加入要求は、クローライベントに関連付けられたトリガ条件を含む、ことと、
前記加入要求に従って、クローライベント加入を作成することと
をさらに含む、請求項１に記載のＭ２Ｍノード。
【請求項１２】
前記動作は、前記トリガ条件が満たされた場合、前記クローライベントの通知を前記ウェブクローラに送信することをさらに含み、前記通知は、前記トリガ条件に関連付けられた１つ以上のリソースのリストを含む、請求項１１に記載のＭ２Ｍノード。
【請求項１３】
第１のノードと複数のＭ２Ｍデバイスとを備えている複数のマシンツーマシン（Ｍ２Ｍ）ノードを備えているシステムにおいて、前記第１のノードによって行われる方法であって、前記複数のＭ２Ｍノードは、ネットワークを介して通信し、前記方法は、
前記複数のＭ２Ｍデバイスのうちの少なくとも１つに関連付けられたクローラメタデータを受信することと、
前記受信されたクローラメタデータに従って、１つ以上のリソースに対して前記少なくとも１つのＭ２Ｍデバイスをクローリングすることであって、前記クローラメタデータは、前記１つ以上のリソースと、前記１つ以上のリソースがクローリングされる順序または前記１つ以上のリソースをクローリングするためのクローリングするスケジュールのうちの少なくとも１つとを示し、前記順序は、前記リソースの優先度に基づいて決定され、前記クローリングするスケジュールは、前記Ｍ２Ｍデバイスの遅延情報に基づいて決定される、ことと、
前記１つ以上のリソースが、ウェブクローラ、サービス、または、アプリケーションのうちの少なくとも１つによって発見されることができるように、前記１つ以上のリソースを公開することと
を含む、方法。
【請求項１４】
前記方法は、
前記クローラメタデータを要求するためにクエリを前記少なくとも１つのＭ２Ｍデバイスに送信することと、
前記クエリに応答して、前記クローラメタデータを受信することと
をさらに含む、請求項１３に記載の方法。
【請求項１５】
前記方法は、加入要求を前記少なくとも１つのＭ２Ｍデバイスに送信することをさらに含み、前記加入要求は、クローライベントに関連付けられたトリガ条件を含み、前記Ｍ２Ｍデバイスは、前記加入要求に従って構成されている、請求項１３に記載の方法。
【請求項１６】
前記方法は、
前記トリガ条件が満たされた場合、前記クローライベントの通知を受信することと、
前記通知を受信することに応答して、前記１つ以上のリソースのうちの選択リソースに対して前記少なくとも１つのＭ２Ｍデバイスを再クローリングすることであって、前記選択リソースは、前記加入要求において定義されている、ことと
をさらに含む、請求項１５に記載の方法。
【請求項１７】
前記方法は、
前記トリガ条件が満たされた場合、前記クローライベントの通知を受信することと、
前記通知を受信することに応答して、１つ以上のウェブクローラのために第２の通知を生成することと
をさらに含む、請求項１５に記載の方法。
【請求項１８】
前記方法は、
クエリメッセージを少なくとも１つのウェブクローラ、サービス、または、アプリケーションから受信することと、
前記クエリメッセージを受信することに応答して、前記１つ以上のリソースを公開することと
をさらに含む、請求項１３に記載の方法。
【請求項１９】
前記１つ以上のリソースを公開することは、１つ以上のサイトマップファイルを少なくとも１つのウェブクローラ、サービス、または、アプリケーションに直接送信することを含む、請求項１３に記載の方法。
【請求項２０】
前記１つ以上のリソースを公開することは、１つ以上のサイトマップファイルをあるアドレスにおいて利用可能にすることを含み、それによって、前記１つ以上のサイトマップファイルは、少なくとも１つのウェブクローラ、サービス、または、アプリケーションによって、前記アドレスにおいて読み出されることができる、請求項１３に記載の方法。
【請求項２１】
前記方法は、
加入要求をウェブクローラから受信することであって、前記加入要求は、クローライベントに関連付けられたトリガ条件を含む、ことと、
前記加入要求に従って、クローライベント加入を作成することと
をさらに含む、請求項１３に記載の方法。
【請求項２２】
前記方法は、
前記トリガ条件が満たされた場合、前記クローライベントの通知を前記ウェブクローラに送信することをさらに含み、前記通知は、前記トリガ条件に関連付けられた１つ以上のリソースのリストを含む、請求項２１に記載の方法。
【請求項２３】
前記１つ以上のリソースは、前記ネットワーク内の第２のノード上にホストされているＭ２Ｍクローラサービスのインスタンスに公開される、請求項１３に記載の方法。
【請求項２４】
前記複数のＭ２Ｍデバイスのうちの少なくとも１つに関連付けられたクローラメタデータは、前記ネットワーク内の第２のノード上にホストされているＭ２Ｍクローラサービスのインスタンスから受信される、請求項１３に記載の方法。
【請求項２５】
前記方法は、
前記少なくとも１つのＭ２Ｍデバイスを標的にする１つ以上の要求を監視することと、
前記監視に基づいて、前記少なくとも１つのＭ２Ｍデバイスに関連付けられたコンテキスト情報を決定することと、
前記コンテキスト情報に基づいて、前記少なくとも１つのＭ２Ｍデバイスがクローリングされることができるように、前記少なくとも１つのＭ２Ｍデバイスに関連付けられたクローラメタデータを構成することと
をさらに含む、請求項１３に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
（関連出願の引用）
本願は、米国仮特許出願第６１／８９３，５７３号（２０１３年１０月２１日出願）の利益を主張し、該出願の開示は、その全体が記載されているかのように参照により本明細書に引用される。
【０００２】
（背景）
ウェブユーザは、ウェブページ、ドキュメント等の利用可能なウェブコンテンツを積極的に発見するために、ウェブクローラ、インデクサ、および検索エンジンに多いに依拠している。したがって、ユーザは、一般的に好まれるそのウェブブラウザおよび検索エンジンによって、クエリし、タイムリーかつ効果的様式において、探しているウェブコンテンツを見つけ得る。
【０００３】
検索エンジン（例えば、Ｇｏｏｇｌｅ）によってウェブサイトを見つけることが可能である人々のために、ウェブサイトは、最初に、検索エンジンのウェブクローラ（例えば、Ｇｏｏｇｌｅｂｏｔ）によってクローリングされ、ウェブサイトのコンテンツは、索引を付けられ、検索エンジンの索引データベース（例えば、Ｇｏｏｇｌｅの索引データベース）に追加される。一例として、図１を参照すると、ウェブクローラ１０２は、ウェブサーバ、ＦＴＰサーバ等をクローリングすることができる。ウェブインデクサ１０４は、例えば、ＵＲＬまたはキーワードを使用して、クローリングされたコンテンツに索引を付けることができ、ウェブ検索エンジン１０６は、検索結果として表示され得る、索引を付けられたコンテンツを発見することができる。これらのクローリングおよび索引をつけるアクションは、ウェブ検索エンジン１０６によって使用され得る情報の検索可能データベースを作成するために、積極的な様式で行われることができる。そうすることによって、ウェブ検索は、ウェブ検索エンジンにクリエを打ち込むことと、を得ることとの間に遅延がほとんどなく、タイムリーな様式で行われることができる。ウェブクローラ１０２、ウェブインデクサ１０４、およびウェブ検索エンジン１０６は、図１では、別個に示されるが、図示は、単に、例示的目的のためのものであり、ウェブクローラ、ウェブインデクサ、およびウェブ検索エンジンは、互に統合されることができることを理解されるであろう。
【０００４】
したがって、ウェブクローラは、概して、ウェブサイトからウェブサイトへと進み（クローリングし）、それが索引を付ける新しいまたは更新されたウェブページおよびドキュメントを見つけるウェブクライアントを指す。ウェブクローラはまた、ウェブロボットまたはボットとも称され得る。前述のように、ウェブに索引を付けることは、ウェブページまたはドキュメントを走査し、検索エンジンの索引データベースに追加され得るキーワードおよび／または情報を要約するプロセスを指す。ウェブ検索エンジンは、概して、ウェブをクローリングおよび索引を付けることによって提供される情報を使用して、ウェブ上で利用可能な情報に関するクエリにサービス提供するように設計されるソフトウェアを指す。ウェブサイトは、典型的には、概して、ウェブサイトを管理および維持することに責任を有する人物である、ウェブマスタによって維持および管理される。前述のように、ウェブクローラは、ウェブサーバ、ＦＴＰサーバ等をクローリングすることができるが、現在のウェブは、能力を欠いている。例えば、現在のウェブは、例えば、種々のマシンツーマシン（Ｍ２Ｍ）デバイス等のリソース制約デバイスを効率的かつ効果的にクローリングすることができない。したがって、種々のＭ２Ｍデバイスは、ウェブ検索エンジンによって、効果的に索引付け、または検索されない。
【発明の概要】
【課題を解決するための手段】
【０００５】
（要約）
本明細書に説明されるのは、マシンツーマシン（Ｍ２Ｍ）デバイスをクローリングするための方法、デバイス、およびシステムである。例えば、一実施形態では、サービスは、自動化されたウェブマスタのような機能性を従来のヒトウェブマスタを有していないＭ２Ｍデバイスに提供する。別の例示的実施形態によると、Ｍ２Ｍノードは、プロセッサと、プロセッサと結合されるメモリとを備え、メモリは、プロセッサによって実行されると、プロセッサに動作を達成させる、その上に記憶される実行可能命令を有する。動作は、Ｍ２Ｍデバイスに関連付けられたクローラメタデータを受信することを含み得る。Ｍ２Ｍノードは、Ｍ２Ｍクローラサービスをホストし得る。Ｍ２Ｍノードは、受信されたクローラメタデータに従って、１つ以上のリソースに対してＭ２Ｍデバイスをクローリングし得る。さらに、Ｍ２Ｍノードは、１つ以上のリソースが、ウェブクローラ、サービス、またはアプリケーションのうちの少なくとも１つによって発見されることができるように、１つ以上のリソースを公開し得る。例えば、Ｍ２Ｍノードは、クローラメタデータに対してクエリをＭ２Ｍデバイスに送信し得、クローラメタデータが、クエリに応答して、受信され得る。別の例示的実施形態によると、Ｍ２Ｍノードは、加入要求をＭ２Ｍデバイスに送信し得る。加入要求は、クローライベントに関連付けられたトリガ条件を含み得、Ｍ２Ｍデバイスは、加入要求に従って構成される。トリガ条件が満たされた場合、Ｍ２Ｍノードは、クローライベントの通知を受信し得る。通知を受信することに応答して、Ｍ２Ｍノードは、１つ以上のリソースのうちの選択リソースに対してＭ２Ｍデバイスを再クローリングし得、選択リソースは、加入要求において定義されている。代替として、または加えて、通知を受信することに応答して、Ｍ２Ｍノードは、１つ以上のウェブクローラのために第２の通知を生成し得る。
【０００６】
本概要は、発明を実施するための形態において以下でさらに説明される、簡略化形態の概念の選択を導入するように提供される。本概要は、請求された主題の主要な特徴または不可欠な特徴を識別することを目的としておらず、また、請求された主題の範囲を限定するために使用されることも目的としていない。さらに、請求された主題は、本開示の任意の部分で記述されるいずれかまたは全ての不利点を解決する制限に限定されない。
本発明はさらに、例えば、以下を提供する。
（項目１）
マシンツーマシン（Ｍ２Ｍ）ノードであって、
プロセッサと、
前記プロセッサと結合されているメモリと
を備え、
前記メモリは、実行可能命令を記憶しており、前記命令は、前記プロセッサによって実行されると、
Ｍ２Ｍデバイスに関連付けられたクローラメタデータを受信することと、
前記受信されたクローラメタデータに従って、１つ以上のリソースに対して前記Ｍ２Ｍデバイスをクローリングすることと、
前記１つ以上のリソースが、ウェブクローラ、サービス、またはアプリケーションのうちの少なくとも１つによって発見されることができるように、前記１つ以上のリソースを公開することと
を含む動作を前記プロセッサに達成させる、Ｍ２Ｍノード。
（項目２）
前記動作は、
前記クローラメタデータに対してクエリを前記Ｍ２Ｍデバイスに送信することと、
前記クエリに応答して、前記クローラメタデータを受信することと
をさらに含む、項目１に記載のＭ２Ｍノード。
（項目３）
前記動作は、加入要求を前記Ｍ２Ｍデバイスに送信することをさらに含み、前記加入要求は、クローライベントに関連付けられたトリガ条件を含み、前記Ｍ２Ｍデバイスは、前記加入要求に従って構成される、項目１に記載のＭ２Ｍノード。
（項目４）
前記動作は、
前記トリガ条件が満たされた場合、前記クローライベントの通知を受信することと、
前記通知を受信することに応答して、前記１つ以上のリソースのうちの選択リソースに対して前記Ｍ２Ｍデバイスを再クローリングすることであって、前記選択リソースは、前記加入要求において定義されている、ことと
をさらに含む、項目３に記載のＭ２Ｍノード。
（項目５）
前記動作は、
前記トリガ条件が満たされた場合、前記クローライベントの通知を受信することと、
前記通知を受信することに応答して、１つ以上のウェブクローラのために第２の通知を生成することと
をさらに含む、項目３に記載のＭ２Ｍノード。
（項目６）
前記動作は、
クエリメッセージを少なくとも１つのウェブクローラ、サービス、またはアプリケーションから受信することと、
前記クエリメッセージを受信することに応答して、前記１つ以上のリソースを公開することと
をさらに含む、項目１に記載のＭ２Ｍノード。
（項目７）
前記１つ以上のリソースを公開することは、１つ以上のサイトマップファイルを少なくとも１つのウェブクローラ、サービス、またはアプリケーションに直接送信することを含む、項目１に記載のＭ２Ｍノード。
（項目８）
前記１つ以上のリソースを公開することは、１つ以上のサイトマップファイルをあるアドレスにおいて利用可能にすることを含み、それによって、前記１つ以上のサイトマップファイルは、少なくとも１つのウェブクローラ、サービス、またはアプリケーションによって、前記アドレスにおいて読み出されることができる、項目１に記載のＭ２Ｍノード。
（項目９）
前記動作は、
加入要求をウェブクローラから受信することであって、前記加入要求は、クローライベントに関連付けられたトリガ条件を含む、ことと、
前記加入要求に従って、クローライベント加入を作成することと
をさらに含む、項目１に記載のＭ２Ｍノード。
（項目１０）
前記動作は、前記トリガ条件が満たされた場合、前記クローライベントの通知を前記ウェブクローラに送信することをさらに含み、前記通知は、前記トリガ条件に関連付けられた１つ以上のリソースのリストを含む、項目９に記載のＭ２Ｍノード。
（項目１１）
第１のノードと複数のＭ２Ｍデバイスとを備えている複数のマシンツーマシン（Ｍ２Ｍ）ノードを備えているシステムにおいて、前記第１のノードによって行われる方法であって、前記複数のＭ２Ｍノードは、ネットワークを介して通信し、前記方法は、
前記複数のＭ２Ｍデバイスのうちの少なくとも１つに関連付けられたクローラメタデータを受信することと、
前記受信されたクローラメタデータに従って、１つ以上のリソースに対して前記少なくとも１つのＭ２Ｍデバイスをクローリングすることと、
前記１つ以上のリソースが、ウェブクローラ、サービス、またはアプリケーションのうちの少なくとも１つによって発見されることができるように、前記１つ以上のリソースを公開することと
を含む、方法。
（項目１２）
前記方法は、
前記クローラメタデータに対してクエリを前記少なくとも１つのＭ２Ｍデバイスに送信することと、
前記クエリに応答して、前記クローラメタデータを受信することと
をさらに含む、項目１１に記載の方法。
（項目１３）
前記方法は、加入要求を前記少なくとも１つのＭ２Ｍデバイスに送信することをさらに含み、前記加入要求は、クローライベントに関連付けられたトリガ条件を含み、前記Ｍ２Ｍデバイスは、前記加入要求に従って構成される、項目１１に記載の方法。
（項目１４）
前記方法は、
前記トリガ条件が満たされた場合、前記クローライベントの通知を受信することと、
前記通知を受信することに応答して、前記１つ以上のリソースのうちの選択リソースに対して前記少なくとも１つのＭ２Ｍデバイスを再クローリングすることであって、前記選択リソースは、前記加入要求において定義されている、ことと
をさらに含む、項目１３に記載の方法。
（項目１５）
前記方法は、
前記トリガ条件が満たされた場合、前記クローライベントの通知を受信することと、
前記通知を受信することに応答して、１つ以上のウェブクローラのために第２の通知を生成することと
をさらに含む、項目１３に記載の方法。
（項目１６）
前記方法は、
クエリメッセージを少なくとも１つのウェブクローラ、サービス、またはアプリケーションから受信することと、
前記クエリメッセージを受信することに応答して、前記１つ以上のリソースを公開することと
をさらに含む、項目１１に記載の方法。
（項目１７）
前記１つ以上のリソースを公開することは、１つ以上のサイトマップファイルを少なくとも１つのウェブクローラ、サービス、またはアプリケーションに直接送信することを含む、項目１１に記載の方法。
（項目１８）
前記１つ以上のリソースを公開することは、１つ以上のサイトマップファイルをあるアドレスにおいて利用可能にすることを含み、それによって、前記１つ以上のサイトマップファイルは、少なくとも１つのウェブクローラ、サービス、またはアプリケーションによって、前記アドレスにおいて読み出されることができる、項目１１に記載の方法。
（項目１９）
前記方法は、
加入要求をウェブクローラから受信することであって、前記加入要求は、クローライベントに関連付けられたトリガ条件を含む、ことと、
前記加入要求に従って、クローライベント加入を作成することと
をさらに含む、項目１１に記載の方法。
（項目２０）
前記方法は、
前記トリガ条件が満たされた場合、前記クローライベントの通知を前記ウェブクローラに送信することをさらに含み、前記通知は、前記トリガ条件に関連付けられた１つ以上のリソースのリストを含む、項目１９に記載の方法。
（項目２１）
前記１つ以上のリソースは、前記ネットワーク内の第２のノード上にホストされているＭ２Ｍクローラサービスのインスタンスに公開される、項目１１に記載の方法。
（項目２２）
前記複数のＭ２Ｍデバイスのうちの少なくとも１つに関連付けられたクローラメタデータは、前記ネットワーク内の第２のノード上にホストされているＭ２Ｍクローラサービスのインスタンスから受信される、項目１１に記載の方法。
（項目２３）
前記方法は、
前記少なくとも１つのＭ２Ｍデバイスを標的にする１つ以上の要求を監視することと、
前記監視に基づいて、前記少なくとも１つのＭ２Ｍデバイスに関連付けられたコンテキスト情報を決定することと、
前記コンテキスト情報に基づいて、前記少なくとも１つのＭ２Ｍデバイスがクローリングされることができるように、前記少なくとも１つのＭ２Ｍデバイスに関連付けられたクローラメタデータを構成することと
をさらに含む、項目１１に記載の方法。
【０００７】
より詳細な理解は、付随の図面と併せて、一例として与えられる、以下の説明から得られ得る。
【図面の簡単な説明】
【０００８】
【図１】図１は、ウェブクローリング、索引付け、および検索の実施例を示す、略図である。
【図２】図２は、クローラが回避すべきウェブページのリストを定義する例示的ファイルを示す、表である。
【図３】図３は、Ｍ２Ｍサービス層を含む、例示的プロトコルスタックの描写である。
【図４】図４は、例示的実施形態による、Ｍ２Ｍクローラ、Ｍ２Ｍインデクサ、および検索サービスを図示する、系統図である。
【図５】図５は、例示的実施形態による、分散型Ｍ２Ｍクローラサービスアーキテクチャを図示する、系統図である。
【図６】図６は、例示的実施形態による、集中型Ｍ２Ｍクローラサービスアーキテクチャを図示する、系統図である。
【図７】図７は、例示的実施形態による、Ｍ２Ｍデバイスをクローリングするための流れ図である。
【図８】図８は、種々の例示的実施形態による、Ｍ２Ｍクローラメタデータが公開されることを示す、コールフローである。
【図９】図９は、例示的実施形態による、Ｍ２Ｍクローラメタデータに対してＭ２Ｍデバイスにクエリするためのコールフローである。
【図１０】図１０は、例示的実施形態による、クローラメタデータを自動生成するためのＭ２Ｍクローラサービス監視要求を示す、コールフローである。
【図１１】図１１は、別の例示的実施形態による、Ｍ２Ｍクローラサービスがイベントに加入し、クローラメタデータを受信することを示す、コールフローである。
【図１２】図１２は、例示的実施形態による、Ｍ２Ｍクローリングのための流れ図である。
【図１３】図１３は、別の例示的実施形態による、クローラメタデータを用いずに、Ｍ２Ｍデバイスリソースをクローリングするためのコールフローである。
【図１４】図１４は、例示的実施形態による、例示的サイトマップファイルのＭ２Ｍクローラ拡張の描写である。
【図１５】図１５は、例示的実施形態による、受動的かつ積極的なＭ２Ｍクローラメタデータの公開を図示する、コールフローである。
【図１６】図１６は、例示的実施形態による、クローライベント発生をサポートするＭ２Ｍクローラサービスを図示する、コールフローである。
【図１７】図１７は、例示的実施形態による、ｏｎｅＭ２Ｍクローラ能力サービス機能（ＣＳＦ）を図示する、ブロック図である。
【図１８Ａ】図１８Ａは、１つ以上の開示される実施形態が実装され得る、例示的マシンツーマシン（Ｍ２Ｍ）またはモノのインターネット（ＩｏＴ）通信システムの系統図である。
【図１８Ｂ】図１８Ｂは、図１８Ａに例証されるＭ２Ｍ／ＩｏＴ通信システム内で使用され得る、例示的アーキテクスチャの系統図である。
【図１８Ｃ】図１８Ｃは、図１８Ａに例証される通信システム内で使用され得る、例示的Ｍ２Ｍ／ＩｏＴ端末またはゲートウェイデバイスの系統図である。
【図１８Ｄ】図１８Ｄは、図１８Ａの通信システムの側面が具現化され得る、例示的コンピューティングシステムのブロック図である。
【発明を実施するための形態】
【０００９】
続く発明を実施するための形態は、例示的実施形態を例証するために提供され、本発明の範囲、可用性、または構成を限定することを意図するものではない。種々の変化が、本発明の精神および範囲から逸脱することなく、要素およびステップの機能および配列において行われ得る。
【００１０】
概して、以下により詳細に説明される、図１８Ａおよび１８Ｂを参照すると、例示的マシンツーマシン（Ｍ２Ｍ）、モノのインターネット（ＩｏＴ）、またはモノのウェブ（ＷｏＴ）通信システム１０は、例えば、複数のマシンツーマシン（Ｍ２Ｍ）デバイス等の複数のデバイスと、通信ネットワーク１２を介してＭ２Ｍデバイスと通信することができる、サービス層２２とを含むことができる。本明細書で使用される場合、Ｍ２Ｍデバイスは、例えば、ゲートウェイデバイス１４または端末（エンドポイント）デバイス１８等、ネットワーク内で通信する任意のデバイスを指し得る。Ｍ２Ｍゲートウェイデバイス１４およびＭ２Ｍ端末デバイス１８の各々は、通信ネットワーク１２または直接無線リンクを介して、信号を伝送し受信するように構成され得る。Ｍ２Ｍデバイス１８はまた、Ｍ２Ｍアプリケーション２０または別のＭ２Ｍデバイス１８からデータを受信し得る。さらに、データおよび信号は、Ｍ２Ｍサービス層２２を介して、Ｍ２Ｍアプリケーション２０に送信され、そこから受信され得る。Ｍ２Ｍサービス層２２は、所望に応じて、任意の数のＭ２Ｍアプリケーション、Ｍ２Ｍゲートウェイデバイス、Ｍ２Ｍ端末デバイス、および通信ネットワークと通信し得ることを理解されるであろう。Ｍ２Ｍサービス層２２は、１つ以上のサーバ、コンピュータ等によって実装され得る。サービス層２２は、種々のサービスおよび能力をＭ２Ｍアプリケーション２０、Ｍ２Ｍゲートウェイデバイス１４、およびＭ２Ｍデバイス１８に提供することができる。さらに、Ｍ２Ｍサービス層は、種々のサーバ、ゲートウェイ、およびデバイス上に展開されることができる。本明細書で使用される場合、別様に規定されない限り、Ｍ２Ｍノードは、例えば、Ｍ２Ｍシステム１０等のＭ２Ｍネットワーク内の任意のデバイス、ゲートウェイ、またはサーバを指す。Ｍ２Ｍサービス層２２は、アプリケーションプログラミングインターフェース（ＡＰＩ）および下層ネットワーキングインターフェースのセットを通してＭ２Ｍアプリケーションおよびデバイスのための付加価値サービスをサポートする、（ＩＰスタックの上方の）ソフトウェアミドルウェア層として実装され得る。例示的実施形態に従って展開され得る、例示的Ｍ２Ｍサービスは、以下に詳細に説明される、Ｍ２Ｍクローラサービス４００である。
【００１１】
ウェブサイトのクローリング、索引付け、および検索に関するさらなる背景として、ウェブマスタは、概して、ウェブサイトの維持に責任がある。特に、ウェブマスタは、ウェブサイトのサイトマップおよびｒｏｂｏｔｓ．ｔｘｔファイルを維持し得る。ウェブサイトのサイトマップは、クローラがクローリングすべきウェブページへのリンクと、クローラを支援するための属性（例えば、ページをクローリングすべき頻度）とのリストを定義する。表１は、サポートされるサイトマップＸＭＬプロトコル属性の例を列挙する。ウェブマスタは、ウェブサイトが気付かれるように、所与のウェブサイトのサイトマップを人気のある検索エンジンに手動で提出し得る。例示的検索エンジンとして、限定ではないが、Ｇｏｏｇｌｅ、Ｂｉｎｇ、およびＹａｈｏｏ！を含み、例示的特殊検索エンジンは、Ｂｉｎｇ  Ｈｅａｌｔｈ、ＷｅｂＭＤ、およびＹａｈｏｏ！Ｎｅｗｓを含む。
【表１】
0006463768.tif 000002
【００１２】
ウェブサイトのｒｏｂｏｔｓ．ｔｘｔは、図２に描写される実施例に示されるように、クローラがウェブサイトをクローリングするときに除外すべきウェブページ、再クローリング間の遅延、およびウェブサイトのサイトマップの場所のリストを定義し得る。
【００１３】
ウェブサイトをクローリングし、サイトのウェブページおよびリンクをトラバースするために、ウェブクローラは、典型的には、ウェブサイトのウェブマスタによって提供される、ウェブサイトのサイトマップおよびｒｏｂｏｔｓ．ｔｘｔファイルに依拠する。ウェブクローラはまた、ウェブクローラが他のウェブサイトをクローリングする間に遭遇するウェブサイトへのハイパーリンクに依拠し得る。ウェブクローラは、ウェブサイトからウェブサイトに進み、それによって、新しい／更新されたウェブページを見つけ、これらのスナップショットをドキュメント化および記憶し、次いで、それらは、索引を付けられ得る。ウェブサイトは、反復ベースかつ非調整様式において、多くの独立ウェブクローラによってクローリングされることができる。所与のウェブクローラのアルゴリズムおよびポリシーに基づいて、ウェブクローラは、ウェブサイトを再クローリングし、そのサイトのウェブページ／ドキュメントに再び索引を付けるべきかどうか／それをすべきときを決定し得る。ウェブインデクサは、ウェブクローラによって発見されるウェブコンテンツに索引を付ける。ウェブインデクサは、ウェブクローラと統合されることも、されないこともある。索引付けは、ウェブページ／ドキュメントを走査し、検索エンジンの索引データベースに追加される、キーワードおよび情報を要約することを含み得る。ウェブインデクサは、テキストベース（例えば、．ｔｘｔ、．ｈｔｍｌ、．ｄｏｃ、．ｘｌｓ、．ｐｐｔ、．ｐｄｆ等）のコンテンツに索引を付けることをサポートし得る。ウェブ検索エンジンは、検索エンジンクエリにサービス提供するために、ウェブクローラおよびウェブインデクサから利用可能にされた索引を付けられた情報に依拠し得る。ウェブ検索エンジンは、クローリングされ、索引を付けられた、種々のウェブサイト上にホストされる情報に対するキーワード検索をサポートする。ウェブ検索エンジンは、検索要求内に規定されたキーワードに一致するエントリに対して索引データベースにクエリをし得、クエリ要求内に規定されたキーワードに一致するコンテンツを含むウェブページおよびウェブドキュメントを参照する一致するリンク（例えば、ＵＲＬ）のリストから成る検索結果を作成し得る。
【００１４】
再び、概して、図１８Ａおよび１８Ｂを参照すると、Ｍ２Ｍサービス層は、アプリケーションプログラミングインターフェース（ＡＰＩ）をサポートし得、ＡＰＩは、サービス層によってサポートされるＭ２Ｍ中心能力の集合へのアプリケーションおよびデバイスのアクセスを提供する。いくつかの実施例として、限定として提示されるわけではないが、セキュリティ、課金、データ管理、デバイス管理、プロビジョニング、および接続管理が挙げられる。これらの能力は、Ｍ２Ｍサービス層によって定義されるメッセージフォーマット、リソース構造、およびリソース表現を利用するＡＰＩによって、アプリケーションに利用可能にされ得る。
【００１５】
草案ＥＴＳＩ  ＴＳ１０２６９０１．１．１（２０１１−１０）に論じられる欧州電気通信標準化機構（ＥＴＳＩ）Ｍ２Ｍサービス層、草案バージョン１．０−１４（２０１３年３月）に論じられるオープンモバイルアライアンス（ＯＭＡ）軽量Ｍ２Ｍサービス層、およびｏｎｅＭ２Ｍ−ＴＳ−０００１ｏｎｅＭ２Ｍ機能アーキテクチャ−Ｖ−０．１．２．Ｍ２Ｍサービス層アーキテクチャ（例えば、ＥＴＳＩ  Ｍ２Ｍ、ＯＭＡ  ＬＷＭ２Ｍ、およびｏｎｅＭ２Ｍ）に論じられるｏｎｅＭ２Ｍサービス層等、サービス層を伴う複数のＭ２Ｍアーキテクチャが存在する。図３は、典型的である、例示的ネットワーク化プロトコルスタック３００を図示し、したがって、図３は、Ｍ２Ｍサービス層が典型的ネットワーク化プロトコルスタック内に常駐する場所を示す。
【００１６】
ここで図４−６を参照すると、種々の例示的実施形態によると、以下に説明されるＭ２Ｍクローラサービス４００は、種々のＭ２Ｍサービス層内の特定のタイプのサービス／能力として実装されることができる。一実施形態では、クローラサービス４００は、ｏｎｅＭ２Ｍに従って実装される。別の実施形態では、クローラサービス４００は、ＥＴＳＩ  Ｍ２Ｍに従って実装される。さらに、Ｍ２Ｍクローラサービス４００は、Ｍ２Ｍサービス層内に実装されることに限定されないことを理解されるであろう。例えば、Ｍ２Ｍクローラサービス４００は、さらに別の例示的実施形態によると、独立型ウェブサービスとして実装されることができる。
【００１７】
本明細書では、ウェブクローラ、インデクサ、および検索エンジンの拡張バージョンは、Ｍ２ＭデバイスがＩｏＴ／ＷｏＴに完全に統合され得るように、ウェブユーザが、今日、ウェブコンテンツを見つけるのと類似方式において、利用可能なＭ２Ｍデバイスを見つけることを可能にし得ることを認識されたい。一例として、拡張型ウェブクローラ、インデクサ、および検索エンジンは、公共空間（例えば、ショッピングモール、都市、スタジアム、空港、美術館等）に展開されるセンサを見つけ得る。本明細書では、Ｍ２Ｍデバイスをこのように検索可能にすることは、無料公共サービス（例えば、天気、交通等）として利用可能なＭ２Ｍデバイス、ならびに有料で利用可能なＭ２Ｍデバイスの認知を増加させ得ることが認識された。本開示では、いくつかの使用例に関して、Ｍ２Ｍデバイスを検索可能にすることは、所望されない、および／または適用可能ではない場合があることを認識されたい。例えば、プライバシーまたはセキュリティが懸念される場合（例えば、医療用センサデバイス、セキュリティデバイス等）、Ｍ２Ｍデバイスを検索可能にすることは、望ましくない場合がある。
【００１８】
本開示が対処するものと類似する問題に対処する試みも存在し得る（但し、本明細書に説明されるアプローチを使用していない）。例えば、本明細書に説明される例示的実施形態は、ＩＭＳネットワーク構成要素を活用せず、さらに、検索エンジン要求のリアルタイム処理にも、ソーシャルネットワークからの情報の活用にも基づいていない。代わりに、例えば、本明細書に説明される実施形態は、既存のウェブクローラがＭ２Ｍデバイスを効果的かつ効率的にクローリングすることを可能にするためのサービスを定義する。
【００１９】
前述のように、現在のウェブは、Ｍ２Ｍデバイスを効率的かつ効果的にクローリングする能力を欠いている。その結果、Ｍ２Ｍデバイスは、ウェブ検索エンジン（例えば、Ｇｏｏｇｌｅ、Ｙａｈｏｏ！等）によって、したがって、ウェブユーザによって、効果的に索引を付けること、および検索されることが不可能である。
【００２０】
例えば、現在のＭ２Ｍデバイスは、現在のウェブクローラフレームワークをサポートする能力を欠き得る。現在のウェブでは、ウェブサイトは、典型的には、ウェブクローラに登録し、その独自のウェブクローラトラフィックにサービス提供することに責任がある。しかし、Ｍ２Ｍデバイスは、多くの場合、性質上、制約され、ウェブクローラに登録し、ウェブクローラ要求にサービス提供するためのリソースおよび知能を欠いている。従来のウェブサイトと異なり、Ｍ２Ｍデバイスは、典型的には、ウェブマスタ（ヒト）によって能動的に管理されない。その結果、Ｍ２Ｍデバイスは、例えば、ウェブ上の異なる検索エンジンにそれら自身を登録すること等の種々のアクションを行うことが不可能であり得る。さらに、Ｍ２Ｍデバイスは、多数のウェブクローラからの要求にサービス提供する能力を有していない場合がある。
【００２１】
別の例として、現在のウェブフレームワークは、Ｍ２Ｍデバイスが効果的にクローリングされ得るように、Ｍ２Ｍデバイスを補助するためのサービスを欠いている。例えば、前述の既存のＭ２Ｍサービス層（例えば、ＥＴＳＩ  Ｍ２Ｍ、ＯＭＡ  ＬＷＭ２Ｍ、ｏｎｅＭ２Ｍ）は、Ｍ２Ｍデバイスクローラメタデータを積極的に発見し、それをウェブクローラが理解するフォーマット（例えば、サイトマッププロトコル）においてウェブクローラに公開するための適切なサポートを欠いている場合がある。その結果、既存のウェブクローラは、Ｍ２Ｍデバイス、Ｍ２Ｍデバイスがサポートするリソース、およびそれらのリソースに関する属性に気づいていない場合がある。既存のＭ２Ｍサービス層はまた、クローライベント（例えば、Ｍ２Ｍデバイスがクローリング／再クローリングを要求することを示すイベント）を生成する能力を欠いている場合がある。Ｍ２Ｍサービス層はまた、これらのイベントをウェブクローラに転送し、１つ以上のＭ２Ｍデバイスがデバイスリソースの作成、修正、または削除に起因して再クローリングされる必要がある場合／そのときを通知するためのサポートを欠いている場合がある。これは、現在のＭ２Ｍサービス層が、Ｍ２Ｍデバイスに関して主に受動的様式において動作していることに起因し得る。現在のＭ２Ｍサービス層は、サービス層との相互作用（例えば、サービス層への登録、サービス層内へのデータの記憶等）を開始するデバイスに依拠している。したがって、既存のＭ２Ｍサービス層は、Ｍ２Ｍデバイスとの相互作用を積極的に開始する能力を欠いている場合がある。例えば、現在のＭ２Ｍサービス層は、Ｍ２ＭデバイスまたはＭ２Ｍデバイス上にホストされるリソースを積極的に発見するか、またはデバイスリソースが作成／修正／削除されたる場合／そのときに生成され得るクローライベントに関連付けられた通知等の通知に加入し、それをデバイスから受信するための能力を欠いている場合がある。現在のＭ２Ｍサービスは、繰り返しベースでＭ２Ｍデバイスリソースを積極的にクローリングし（例えば、周期的に、またはイベントに基づいてのいずれかにおいて、デバイスのリソースを読み出し）、リソースのローカルコピーを記憶／キャッシュするための能力も欠いている。その結果、現在のＭ２Ｍサービス層は、新しい、修正された、または削除されたリソースを追跡および検出するための能力を欠いており、したがって、ウェブクローラが、再クローリングが正当であることを通知されるべきかどうかを決定する能力を欠いている場合がある。
【００２２】
さらに別の例として、ウェブクローラは、現在のウェブにおいてイベントベースのクローリングのためのサポートを欠いている場合がある。例えば、ウェブクローラは、典型的には、行き当たりばったり方式で（例えば、別のウェブサーバからあるウェブサーバへのリンクに遭遇するとき）、またはそのクローリングされるコンテンツをリフレッシュするための周期的方式で（例えば、そのサイトマップまたはＲｏｂｏｔｓ．ｔｘｔファイル内にウェブサーバによって規定された、ある好ましい頻度に基づいて）、ウェブサーバを再クローリングする。これらのタイプのクローリングは、例えば、ウェブサーバの再クローリングが、ウェブサーバのコンテンツが更新されていないときでも行われ得るため、非効率的であり得る。加えて、多くのＭ２Ｍデバイスは、ウェブクローラがそれらのクローリングを試みるとき、利用可能ではない場合がある（例えば、スリープ中であり得る）。多くのＭ２Ｍデバイスは、予測不能かつイベントベースの様式において変化するので、本明細書では、イベントベースのクローリングの欠如は、Ｍ２Ｍデバイスの非効率的および／または不必要なクローリングおよび再クローリングにつながり得、これは、リソースが制約されたＭ２Ｍデバイスおよびネットワークに悪影響を及ぼし得ることが認識される。
【００２３】
本明細書に説明されるように、Ｍ２Ｍクローラサービス４００は、とりわけ、前述の問題に対処し得る。Ｍ２Ｍクローラサービス４００は、Ｍ２Ｍデバイスが、ウェブクローラによって効率的かつ効果的にクローリングされることを可能にし得る。その結果、Ｍ２Ｍデバイスは、ウェブ検索エンジン（例えば、Ｇｏｏｇｌｅ、Ｙａｈｏｏ！等）によって、したがって、ウェブ検索エンジンを使用するウェブユーザによって、効果的に索引を付けられること、および検索されることが可能である。したがって、Ｍ２Ｍクローラサービス４００は、インターネット／モノのウェブへのＭ２Ｍデバイスの統合のための主な実現要素としての役割を果たし得る。
【００２４】
Ｍ２Ｍクローラサービス４００は、リソースが制約されたＭ２Ｍデバイスがウェブクローラに登録するのを補助するための能力を提供し得る。例示的実施形態によると、Ｍ２Ｍクローラサービス４００はまた、Ｍ２Ｍデバイスと積極的に相互作用し、デバイス上にホストされるリソースを発見およびクローリングし、かつデバイスによって生成されるクローライベントを構成し、それに加入することをサポートする。加えて、Ｍ２Ｍクローラサービス４００は、Ｍ２Ｍデバイスが過負荷とならないように、Ｍ２Ｍデバイスの代わりに、ウェブクローラ要求にサービス提供し得る。
【００２５】
一実施形態では、Ｍ２Ｍクローラサービス４００は、ウェブクローラがＭ２Ｍデバイスをクローリングするのを補助する。Ｍ２Ｍクローラサービスは、積極的にクローリングし、クローリングされたＭ２Ｍデバイスリソースを記憶し、これらの結果をウェブクローラに利用可能にすることをサポートする。そうすることによって、例えば、ウェブクローラは、特に、長時間および予測不能スリープサイクルを有するＭ２Ｍデバイスに関して問題となり得る、Ｍ２Ｍデバイスリソースの直接クローリングを行う必要はない。代わりに、ウェブクローラは、Ｍ２Ｍクローラサービス４００によって事前に積極的にクローリングされたＭ２Ｍデバイスリソースのキャッシュ／記憶されたバージョンをクローリングすることができる。Ｍ２Ｍクローラサービス４００はまた、例えば、クローリングしたデバイスリソースの状態における検出された変化に基づいて、クローライベントを生成し得る。Ｍ２Ｍクローラサービス４００は、これらのイベントをウェブクローラに公開し得る。
【００２６】
ここで図４を参照すると、例示的Ｍ２Ｍシステム４０１は、Ｍ２Ｍ／ウェブサーバ４０２、検索エンジンサーバ４０４、ウェブプロキシ１４とも称され得る、Ｍ２Ｍゲートウェイ１４等の複数のデバイスを含む。図示されるデバイスは、ウェブまたはインターネット４０６を介して、互に通信することができる。Ｍ２Ｍシステム４０１はさらに、アプリケーション２０およびＭ２Ｍクローリングサービス４００を含む。図示されるデバイスは、概して、ノードと称され得る。したがって、示されるように、Ｍ２Ｍクローラサービス４００は、例えば、Ｍ２Ｍゲートウェイ１８、Ｍ２Ｍサーバ４０２、ウェブプロキシ１４、およびウェブサーバ４０２内等のネットワーク内の種々のノードに展開されることができる。既存のウェブクローラサービス４０３は、例えば、ＧｏｏｇｌｅまたはＭｉｃｒｏｓｏｆｔ等の検索エンジン会社によって提供および運営される、検索エンジンサーバ４０４上に展開されることができる。Ｍ２Ｍクローラサービス４００は、例えば、サービス層２２等の水平サービス層内の能力として展開されることができ、サービス層は、サービス能力サーバ（ＳＣＳ）、Ｍ２Ｍサーバ、ｏｎｅＭ２Ｍサーバ等を含み得る。したがって、Ｍ２Ｍクローラサービスは、例えば、ＥＴＳＩ  Ｍ２Ｍ、ｏｎｅＭ２Ｍ、またはＯＭＡ  ＬＷＭ２Ｍ等の種々のサービス層内に展開されることができる。代替として、Ｍ２Ｍクローラサービス４００は、独立型ウェブサービスとして展開されることができ、かつウェブアプリケーションおよび／または他のウェブサービスに利用可能にされることができる。したがって、Ｍ２Ｍクローリングサービスは、既存のウェブクローラを補完するために使用されることができるか、または独立して、別個の専用Ｍ２Ｍクローラとして展開されることができる。
【００２７】
本明細書に説明される種々の実施形態は、便宜上、システム４０１を指す。例示的システム４０１は、開示される主題の説明を促進するために簡略化されるが、本開示の範囲を限定することを意図するものではないことを理解されるであろう。他のデバイス、システム、および構成も、システム４０１等のシステムに加え、またはその代わりに、本明細書に開示される実施形態を実装するために使用され得、そのような実施形態は全て、本開示の範囲内と見なされる。
【００２８】
Ｍ２Ｍクローラサービス４００の種々の機能性の紹介のために、Ｍ２Ｍセンサ会社が、ショッピングモールと契約をし、その無線ネットワークセンサをモールの駐車場、店舗、および公共エリア内に展開させる、例示的使用例を検討する。センサは、客層（例えば、年齢、性別等）、購入物、購入額、買物時間、駐車場内の車両の種類等の買物客についての統計を追跡する。したがって、センサは、買物客を監視し、関連する種々のリソースを含む。Ｍ２Ｍセンサ会社は、モール全体を通してそのセンサを展開させるために、モールに料金を支払うことに合意する。代わりに、Ｍ２Ｍセンサ会社は、そのセンサデータ（リソース）を、例えば、小売店所有者、小売商品製造業者、および広告主等の多様な見込みクライアントのセットに利用可能にすることを計画する（有料で）。これらのクライアントは、より知的な販売促進、製品配置、および製品展開決定を行うことができるように、この情報を得ることに関心があり得る。例えば、近傍の電子広告用掲示板の所有者は、１日、１週間、または１年のどの時間にどの広告を表示すべきかをより知的に選択することができるように、これらのＭ２Ｍセンサデバイスを発見し、そのセンサフィードに接続することを所望し得る。
【００２９】
前述の例示的使用例を継続すると、Ｍ２Ｍセンサ会社は、モール内のそのセンサからストリーミングされた情報を発見し、それにアクセスすることができる、クライアントの数を最大限にすることを所望し得る。これを促進するために、例示的シナリオに従って、Ｍ２Ｍセンサ会社は、そのセンサをネットワーク化し、それらをインターネット／ウェブを介してアクセス可能にすることができ、Ｍ２Ｍクローラサービス４００を使用して、そのセンサが、一般に使用されるウェブ検索エンジン（例えば、Ｇｏｏｇｌｅ、Ｙａｈｏｏ！、Ｂｉｎｇ等）によって見出され得ることを確実にすることができる。
【００３０】
前述の例示的使用例を引き続き参照すると、例示的実施形態によると、Ｍ２Ｍクローラサービス４００は、Ｍ２Ｍセンサデバイスのためのクローラプロキシとして機能し得る。Ｍ２Ｍクローラサービスは、センサによって生成されるクローライベントおよび各センサのスリープ状態に基づいて、各Ｍ２Ｍデバイスを積極的に、かつ知的にクローリングすることができる。クローラサービス４００は、イベントベースの様式における個々のセンサの再クローリングをサポートすることができる。一例として、クローラサービス４００は、センサがその状態変化をクローラサービス４００に信号伝達すると、所与のセンサの再クローリングをサポートすることができる。クローリングされたセンサ毎に、クローラサービス４００は、センサデータを記述するために使用されるメタデータとともに、センサ読み取り値をキャッシュ／記憶することができる。例示的メタデータは、限定ではないが、センサ場所、センサのタイプ、センサデータのフォーマット、センサデータ更新以降の時間等を示すことができる。クローラサービス４００は、次いで、これらのキャッシュ／記憶されたセンサ読み取り値（リソース）へのリンク（例えば、ＵＲＩ）を積極的に公開し得る。クローラサービス４００はまた、例えば、センサの記述および各センサを再クローリングすべきときを示すイベント等、センサに関連付けられたメタデータを公開し得る。情報は、種々のウェブ検索エンジン（例えば、Ｇｏｏｇｌｅ、Ｙａｈｏｏ！、Ｂｉｎｇ等）に公開され得る。この公開された情報を使用して、ウェブ検索エンジンは、キャッシュ／記憶されたセンサ読み取り値をクローリングおよび索引付けし得、このキャッシュ／記憶されたセンサ読み取り値は、概して、リソースまたはリソース表現と称され得、従来のウェブサイトを見つけるために使用する、同じウェブ検索エンジンを使用して、クライアントによってセンサが効果的に検索されることを可能にし得る。以下にさらに説明されるように、これは、例えば、種々のウェブ検索エンジンが、直接、センサにアクセスしていないため、センサに大量のオーバーヘッドをもたらすことなく、行われることができる。代わりに、ウェブ検索エンジンは、センサの代わりに、ウェブクローラサービスによって記憶されたクローリングされたリソース表現のキャッシュ／記憶されたバージョンにアクセスし得る。加えて、例示的実施形態によると、クローラサービス４００は、クローリングしたセンサリソースに対する変化（例えば、新しい／更新されたリソース）を検出し得る。そのような検出に基づいて、クローラサービス４００は、周期的方式ではなく、イベントベースの様式において、センサリソースのクローリングを行い得るように、センサを効率的に再クローリングし、ウェブ検索エンジンへのクローライベントを生成することができる。
【００３１】
センサリソースが、ウェブ検索エンジンによって正常にクローリングされ、索引を付けられると、ウェブユーザは、ウェブ検索エンジンを使用して、着目センサを見つけることができる。ウェブユーザが、記憶／キャッシュされたセンサデータにアクセスすると、ウェブクローラはまた、例えば、Ｍ２Ｍセンサ会社が情報へのアクセスに関してユーザに課金することを可能にする、課金／請求サービス等の種々のサービスを提供することができる。前述の例示的使用例は、Ｍ２Ｍセンサの文脈において提示されるが、センサは、使用される例示的目的のために使用され、したがって、Ｍ２Ｍクローリングサービス４００は、所望に応じて、任意のＭ２Ｍデバイスにサービスを提供することができることを理解されるであろう。
【００３２】
図５を参照すると、例示的実施形態によると、Ｍ２Ｍクローラサービス４００は、例示的分散型アーキテクチャ５００等、分散型アーキテクチャによって実装されることができる。代替として、図６を参照すると、別の例示的実施形態によると、Ｍ２Ｍクローラサービス４００は、集中型アーキテクチャによって実装されることができ、したがって、集中型Ｍ２Ｍクローラサービス４００ａと称され得る。図６は、集中型Ｍ２Ｍクローラサービス４００ａを含む、例示的集中型アーキテクチャ６００を描写する。分散型アーキテクチャ５００は、Ｍ２Ｍクローラサービス４００の複数のインスタンスを定義し得る。示されるように、インスタンスは、例えば、Ｍ２Ｍサーバ４０２、Ｍ２Ｍゲートウェイ１４、およびＭ２Ｍデバイス１８等、システム４０１を通して、種々のＭ２Ｍノード上にホストされることができる。図６を参照すると、図示される実施形態によると、集中型アーキテクチャ６００は、中心に位置するＭ２Ｍノード、例えば、Ｍ２Ｍサーバ４０２ａ上にホストされる、単一Ｍ２Ｍクローラサービスインスタンスを定義する。分散型アーキテクチャ５００は、集中型アーキテクチャ６００と比較して、クローリングがより平行様式で行われることを可能にし得、かつより大きなスケーラビリティを可能にし得る。集中型アーキテクチャ６００は、例えば、クローラサービス４００が集中型サーバまたはサーバファーム上にホストされ得るため、クローラサービス４００の管理を単純化し得る。
【００３３】
再び、図５を参照すると、分散型アーキテクチャ５００内のＭ２Ｍクローラサービス４００のインスタンスは、１つ以上のＭ２Ｍサービスプロバイダによって所有、運営され、および／またはそれに属し、Ｍ２Ｍリソースをホストする、Ｍ２Ｍサーバ４０２、Ｍ２Ｍゲートウェイ／プロキシ１４、Ｍ２Ｍデバイス１８、およびＭ２Ｍアプリケーション２０が、クローリング、索引付け、および検索されることを可能にすることができる。図５に示されるように、Ｍ２Ｍクローラサービス４００は、ネットワーク内の１つ以上のＭ２Ｍサーバ４０２、１つ以上のＭ２Ｍゲートウェイ／プロキシ１４、および／または１つ以上のＭ２Ｍデバイス１８上にホストされることができる。したがって、Ｍ２Ｍクローラサービスインスタンスは、分散型様式に従って、ネットワーク内のＭ２ＭノードによってホストされるＭ２Ｍリソースを効率的にクローリングするために使用されることができる。Ｍ２Ｍクローラサービス４００のインスタンスは、以下にさらに説明されるように、互に協働し得る。
【００３４】
再び、図６を参照すると、集中型Ｍ２Ｍクローラサービス４００ａは、１つ以上のＭ２Ｍサービスプロバイダによって所有、運営され、および／またはそれに属し、種々のＭ２Ｍリソースをホストする、Ｍ２Ｍサーバ４０２、Ｍ２Ｍゲートウェイ／プロキシ１４、Ｍ２Ｍデバイス１８、およびＭ２Ｍアプリケーション２０が、クローリングされることを可能にすることができる。集中型Ｍ２Ｍクローラサービス４００ａは、Ｍ２Ｍクローラサービス４００ａがネットワーク内の種々のＭ２Ｍリソースを効率的にクローリングするために使用され得るように、ネットワーク内で集中型方式でホストされる。
【００３５】
ここで図５および６を参照すると、いくつかのインターフェースが、ここで説明される。第１のインターフェース５０２が、Ｍ２Ｍデバイス１８と、集中型Ｍ２Ｍクローラサービス４００ａまたは分散型Ｍ２Ｍクローラサービスのインスタンスのいずれかを指す、Ｍ２Ｍクローラサービス４００との間に定義される。第１のインターフェース５０２は、Ｍ２Ｍクローラサービス４００が、Ｍ２Ｍデバイス１８およびＭ２Ｍデバイス１８に関連付けられたリソースを発見およびクローリングすることを可能にすることができる。第２のインターフェース５０４が、Ｍ２Ｍクローラサービス５０４のインスタンス間に定義される。第２のインターフェース５０４は、以下にさらに説明されるように、Ｍ２Ｍクローラサービス４００の分散型インスタンス間の協働が、クローラメタデータおよび結果をサービスインスタンスのグループまたは階層にわたり分散されることを可能にすることができる。第３のインターフェース５０６が、従来のウェブクローラを含み得る、ウェブ検索エンジンサーバ４０４と、Ｍ２Ｍクローラサービス４００との間に定義される。第３のインターフェース５０６は、ウェブ検索エンジンが、Ｍ２Ｍクローラサービスと相互作用することを可能にすることができる。第４のインターフェース５０８が、Ｍ２Ｍアプリケーション２０とＭ２Ｍクローラサービス４００との間に定義される。第４のインターフェース５０８は、Ｍ２Ｍアプリケーション２０が、Ｍ２Ｍクローラサービス４００と相互作用することを可能にすることができる。第５のインターフェース５１０が、アプリケーション２０と検索エンジンサーバ４０４上にホストされるウェブクローラとの間に定義される。第５のインターフェース５１０は、アプリケーション２０が、Ｍ２Ｍクローラサービスによって可能にされるウェブ検索エンジンを使用して、Ｍ２Ｍデバイスを間接的に検索し、見つけることを可能にすることができる。
【００３６】
以下にさらに説明されるように、Ｍ２Ｍクローラサービス４００は、種々のＭ２Ｍデバイスが、第１のインターフェース５０２を経由してＭ２Ｍクローラメタデータを公開することを可能にする能力をサポートし得る。例示的実施形態によると、種々のＭ２Ｍデバイスは、例えば、所与のＭ２Ｍデバイスが、クローラメタデータをホストするが、第１のインターフェース５０２を経由してそれを公開することが可能でない場合、Ｍ２Ｍクローラメタデータを得るために積極的にクエリされることができる。Ｍ２Ｍクローラメタデータは、例えば、所与のＭ２ＭデバイスがＭ２Ｍクローラメタデータをホストしていないシナリオ、またはＭ２Ｍクローラサービス４００が追加し得る追加のクローラメタデータを有するシナリオにおいて、自動生成および／または強化されることができる。第１のインターフェース５０２を介して、所与のＭ２Ｍデバイス上にホストされるクローラメタデータは、例えば、Ｍ２Ｍデバイスによって生成されるクローライベントを制御するように構成され得る。Ｍ２Ｍサービス４００は、Ｍ２Ｍクローラメタデータを使用して、第１のインターフェース５０２を経由して、Ｍ２Ｍデバイスを積極的に、かつ自律的にクローリングし得る。したがって、新しい／更新されたリソース表現は、デバイスに過負荷をかけずに知的かつ効率的様式において読み出され得る（例えば、デバイス状態の変化に基づくイベントベースのクローリング）。ある場合には、Ｍ２Ｍクローラサービス４００は、ウェブクローラが、Ｍ２Ｍデバイスを認知しているが、デバイスをクローラトラフィックで圧倒しないように、第３のインターフェース５０６を経由して、Ｍ２Ｍデバイスの代わりに、ウェブクローラと相互作用することができる。例えば、Ｍ２Ｍサービス４００は、ウェブクローラがＭ２Ｍデバイスを認知するように、Ｍ２Ｍデバイスクローラメタデータをウェブクローラと共有し得る。Ｍ２Ｍサービス４００は、クローリングされたＭ２Ｍデバイスリソース表現（現在または過去）を共有し、これらの表現を使用して、所与のＭ２Ｍデバイスのリソース状態の変化を検出し得る。リソース表現はさらに、Ｍ２Ｍデバイスの代わりに、ウェブクローラ要求にサービス提供するために使用され得る。例えば、クローラ要求は、Ｍ２Ｍデバイスからオフロードされ得る。クローライベントが、ウェブクローラが、周期的再クローリングの代わりに、またはそれに加え、イベントに基づく再クローリングをサポートすることができるように、ウェブクローラに生成され得る。Ｍ２Ｍクローリングサービス４００は、ウェブクローラが、Ｍ２Ｍクローラサービス４００によって生成されるクローライベントを制御するようにＭ２Ｍクローラサービス４００によってホストされるクローラメタデータを構成することを可能にし得る。別の実施形態によると、ネットワーク内のＭ２Ｍクローラサービスの複数のインスタンスは、第２のインターフェース５０４を経由して互に協働することができる。Ｍ２Ｍクローラサービスは、互に協働し、Ｍ２Ｍクローラメタデータを共有すること、クローリングリソース表現を共有すること、クローライベントに加入または生成すること等を行い得る。さらに、例示的実施形態では、Ｍ２Ｍアプリケーション２０は、インターフェース５０８を経由してＭ２Ｍデバイスクローラメタデータにアクセスし得、Ｍ２Ｍアプリケーション２０は、リソース表現とも称され得る、クローリングされたＭ２Ｍデバイスリソースにアクセスし得る。別の例示的実施形態によると、Ｍ２Ｍアプリケーションは、以下にさらに説明されるように、クローライベントに加入し得る。
【００３７】
Ｍ２Ｍクローラメタデータが、ここでより詳細に説明される。ある場合には、所与のＭ２Ｍデバイスが効率的かつ効果的にクローリングされるために、デバイスおよびそのリソースについてのあるタイプの情報が、把握されることが必要であり得る。そのような情報は、Ｍ２Ｍクローラメタデータと称され得る。表２は、Ｍ２Ｍクローリングサービス４００によって使用され得る、Ｍ２Ｍクローラメタデータの例示的リストを定義するが、追加のまたは代替クローラメタデータが、所望に応じて、Ｍ２Ｍクローラサービスによって使用され得ることを理解されるであろう。メタデータは、概して、Ｍ２Ｍデバイス上にホストされるＭ２Ｍリソースの効率的かつ効果的クローリングをサポートする。Ｍ２Ｍクローラメタデータは、Ｍ２Ｍデバイスおよび／またはＭ２Ｍクローラサービス４００によって生成またはホストされることができる。Ｍ２Ｍクローラメタデータはまた、ウェブクローラおよび／またはアプリケーション等のネットワーク内の他のエンティティと共有されることができる。
【表２−１】
0006463768.tif 000003
【表２−２】
0006463768.tif 000004
【００３８】
図７を参照すると、クローラサービス４００を使用して行われ得る、例示的方法が、描写される。７０２において、本方法は、例えば、限定ではないが、新しいデバイスがクローラサービス４００に登録することによって、またはクローライベントの通知がクローラサービス４００によって受信されることによって、トリガされ得る。７０４において、図示される実施形態に従って、クローラサービス４００は、所与のデバイスに関連付けられた公開されたクローラメタデータが利用可能であるかどうかを決定し得る。例示的実施形態によると、Ｍ２Ｍデバイスは、第１のインターフェース５０２を経由して、Ｍ２Ｍクローラメタデータ（例えば、表２参照）をＭ２Ｍクローラサービス４００に明示的に公開することができる。したがって、Ｍ２Ｍクローラサービス４００は、第１のインターフェース５０２を経由して、Ｍ２Ｍデバイス１８がそのＭ２Ｍクローラメタデータを直接Ｍ２Ｍクローラサービス５０２に公開することを可能にする能力をサポートすることができる。代替として、Ｍ２Ｍクローラサービス４００が協働する他のサービスが、Ｍ２Ｍデバイス１８からの公開されたＭ２Ｍクローラメタデータの受信をサポートし得る。ある場合には、例えば、表２に描写されるメタデータ等のＭ２Ｍクローラメタデータは、Ｍ２ＭデバイスがＭ２Ｍクローラサービス４００に登録するとき、またはＭ２ＭデバイスがＭ２Ｍクローラサービス４００が協働する別のサービスに登録するときに、Ｍ２Ｍデバイスによって公開されることができる。
【００３９】
一例として、本明細書に説明されるＭ２Ｍクローラメタデータ公開能力を使用して、モバイルＭ２Ｍデバイス（例えば、車内のテレメトリセンサ）は、移動性（例えば、Ｍ２Ｍデバイスの場所の変化）に起因してそれらが変化する場合／そのとき、そのリソースリンクに関する更新をＭ２Ｍクローラサービス４００に提供することができる。例えば、Ｍ２Ｍデバイスは、デバイスがネットワークドメインを変化させると、新しいＩＰアドレスが割り当てられ得るため、そのＵＲＩの「ホスト」構成要素もまた、変化し得る。例えば、Ｍ２Ｍデバイスに関連付けられたＵＲＩが変化する場合、Ｍ２Ｍデバイスは、Ｍ２Ｍクローラメタデータ公開能力を使用して、Ｍ２Ｍクローラサービス４００を更新し、したがって、その変化に関してウェブクローラを更新することができる。
【００４０】
図８を参照すると、例示的実施形態が、示されており、Ｍ２Ｍデバイス１８が、Ｍ２Ｍクローラメタデータを、表象状態転送（ＲＥＳＴｆｕｌ）アーキテクチャに従って、Ｍ２Ｍクローラサービス４００に第１のインターフェース５０２を経由して公開する。追加の文脈に関して、ＲＥＳＴｆｕｌアーキテクチャは、使用される物理的構成要素実装または通信プロトコルの観点からではなく、アーキテクチャにおいて使用される構成要素、エンティティ、コネクタ、およびデータ要素に適用される制約の観点から説明される。したがって、構成要素、エンティティ、コネクタ、およびデータ要素の役割および機能が、説明されるであろう。ＲＥＳＴｆｕｌアーキテクチャでは、一意のアドレス指定可能リソースの表現が、エンティティ間において転送される。ＲＥＳＴｆｕｌアーキテクチャにおいてリソースを取り扱うとき、作成（子リソースを作成する）、読み出し（リソースのコンテンツを読み取る）、更新（リソースのコンテンツを書き込む）、または削除（リソースを削除する）等、リソースに適用され得る基本方法が存在する。当業者は、本実施形態の実装が、本開示の範囲内に留まりながら、変動し得ることを認識するであろう。当業者はまた、開示される実施形態が、例示的実施形態を説明するために本明細書で使用されるｏｎｅＭ２Ｍを使用する実装に限定されないことを認識するであろう。開示される実施形態は、ＥＴＳＩ  Ｍ２Ｍ、およびＯＭＡ  ＬＷＭ２Ｍ、ならびに他の関連Ｍ２Ｍシステムおよびアーキテクチャ等のアーキテクチャおよびシステム内に実装され得る。図８を継続して参照すると、制約されたＲＥＳＴｆｕｌ環境（ＣｏＲＥ）リソースディレクトリ（ＲＤ）登録インターフェースプロトコルの拡張バージョンが、例えば、表２に定義されるそれらの属性等、Ｍ２Ｍクローラメタデータ属性の拡張をサポートするために使用されることができる。
【００４１】
例えば、図示される実施例によると、８０２において、Ｍ２Ｍデバイス１８は、ＣｏＲＥ  ＲＤ登録要求をＭ２Ｍクローラサービス４００に送信する。１つの図示される実施形態によると、ＣｏＲＥ  ＲＤ登録要求は、ＣｏＲＥ  ＲＤ登録要求内の新しいＵＲＩクエリストリングパラメータ内に表２に定義されるデバイス中心のＭ２Ｍクローラメタデータを搬送する。メタデータの実施例として、限定として提示されるわけではないが、デバイスのタイプ（ｄｔ＝センサ）、デバイスがクローラプロキシを要求するかどうか（ｃｐ＝真）、連続クローラ要求間の最小遅延（ｍｉｎ＿ｄｃｄ＝３６００）、およびデバイスの場所（ｌｏｃ＝１０．５２３、−７８．３２４）が挙げられる。８０４において、Ｍ２Ｍクローラサービスは、Ｍ２Ｍデバイスに関連付けられた公開されたクローラメタデータを受信する。代替として、８０３を参照すると、デバイス特有のクローラメタデータをＵＲＩクエリストリングパラメータ内で搬送するのではなく、メタデータは、代わりに、同様に、新しい拡張をサポートし、クローラメタデータをサポートする、ＣｏＲＥ  ＲＤ登録要求ペイロード内で搬送されることができる。８０４において、図８に示される図示される実施例の両方によると、Ｍ２Ｍクローラサービスは、Ｍ２Ｍデバイス１８に関連付けられた公開されたクローラメタデータを受信する。８０６において、公開されたクローラメタデータの受信に応じて、Ｍ２Ｍクローラサービス４００は、受信されたメタデータを解析し、例えば、限定ではないが、デバイスのタイプ、デバイスがクローラプロキシを要求するかどうか、連続クローラ要求間の最小遅延、クローラ優先度、およびデバイスの場所等のＭ２Ｍデバイス１８についての情報を発見することができる。Ｍ２Ｍクローラサービス４００は、この情報を記憶することができ、この情報を使用して、将来、Ｍ２Ｍデバイス１８のクローリングを行う方法および／またはときを決定することができる。
【００４２】
したがって、例えば、Ｍ２Ｍクローラサービス４００をホストし得る、第１の、すなわち、Ｍ２Ｍノードは、Ｍ２Ｍデバイスに関連付けられたクローラメタデータを受信し得る。Ｍ２Ｍノードは、受信されたクローラメタデータに従って、１つ以上のリソースに対してＭ２Ｍデバイスをクローリングし得る。さらに、Ｍ２Ｍノードは、１つ以上のリソースが、ウェブクローラ、サービス、またはアプリケーションのうちの少なくとも１つによって発見されることができるように、１つ以上のリソースを公開し得る。
【００４３】
図８に示されるように、表２に定義されるリソース特有のＭ２Ｍクローラメタデータは、新しい拡張をサポートし、クローラメタデータをサポートする、ＣｏＲＥ  ＲＤ登録要求ペイロード内で搬送されることができる。既存のＣｏＲＥ  ＲＤ登録要求は、リソースを記述するためのＣｏＲＥリンクフォーマット記述構文の使用をサポートする。例示的実施形態によると、個々のリソースに特有のＭ２Ｍクローラメタデータは、新しいコアリンクフォーマット属性内で搬送されることができる。いくつかの実施例として、限定として提示されるわけではないが、クローリング優先度（ｐ＝０．８）、再クローリング試行間の最大遅延（ｍａｘ＿ｒｃｄ＝８６４００）、リソース単位（ｒｕ＝”摂氏”）、およびサポートされるリソース動作（ｒｏ＝”ＲＯ”）が挙げられる。
【００４４】
再び、図７を参照すると、７０４において、例えば、所与のＭ２Ｍデバイスが、Ｍ２Ｍクローラサービス４００へのＭ２Ｍクローラメタデータの公開をサポートしないため、公開されたメタデータが利用可能でないことが決定される場合、プロセスは、７０８に進むことができ、そこで、Ｍ２Ｍクローラサービス４００は、第１のインターフェース５０２を経由して、Ｍ２Ｍデバイスにクエリすることができる。Ｍ２Ｍデバイスは、Ｍ２Ｍデバイスに関連付けられたＭ２Ｍクローラメタデータを発見するためにクエリされることができる。クエリは、所与のＭ２Ｍデバイスを検出すると（例えば、デバイスがクローラサービス４００を呼び出すとき、および／またはＭ２Ｍクローラサービス４００に登録するとき）、Ｍ２Ｍクローラサービス４００によって、積極的な自律的様式（例えば、アプリケーションによって呼び出されずに）で行われることができる。
【００４５】
図９は、第１のインターフェース５０２を経由してＭ２Ｍデバイス１８にクエリするＭ２Ｍクローラサービス４００の実施例を描写する。９０２において、図示される実施形態によると、Ｍ２Ｍクローラサービス４００は、‘．ｗｅｌｌ−ｋｎｏｗｎ／ｃｏｒｅ’リソースとして定義されるＣｏＲＥリンクフォーマットの拡張バージョンを、表３に定義されるＭ２Ｍクローラメタデータ拡張をサポートするＭ２Ｍデバイス１８に送信する。したがって、Ｍ２Ｍクローラサービス４００は、その‘．ｗｅｌｌ−ｋｎｏｗｎ／ｃｏｒｅ’リソースを読み出すことによって、Ｍ２Ｍデバイス１８にクエリし得る。９０４において、Ｍ２Ｍデバイス１８は、Ｍ２Ｍクローラメタデータ拡張を含む、そのＣｏＲＥリンクフォーマット記述で応答する。したがって、９０６において、Ｍ２Ｍクローラサービス４００は、クエリされたクローラメタデータをＭ２Ｍデバイス１８から受信する。
【００４６】
したがって、前述のように、例えば、Ｍ２Ｍクローラサービス４００をホストし得る、Ｍ２Ｍノードは、Ｍ２Ｍデバイスに関連付けられたクローラメタデータを受信し得る。Ｍ２Ｍノードは、受信されたクローラメタデータに従って、１つ以上のリソースに対してＭ２Ｍデバイスをクローリングし得る。さらに、Ｍ２Ｍノードは、１つ以上のリソースが、ウェブクローラ、サービス、またはアプリケーションのうちの少なくとも１つによって発見されることができるように、１つ以上のリソースを公開し得る。Ｍ２Ｍノードは、クローラメタデータに関してＭ２Ｍデバイスにクエリを送信し得、Ｍ２Ｍノードは、クエリに応答して、クローラメタデータを受信し得る。
【００４７】
図８および９に図示されるステップを行うエンティティは、図１８Ｃまたは図１８Ｄに図示されるもの等のデバイス、サーバ、またはコンピュータシステムのメモリ内に記憶され、そのプロセッサ上で実行するソフトウェア（例えば、コンピュータ実行可能命令）の形態で実装され得る、論理エンティティであることを理解されるであろう。すなわち、図８および９に図示される方法は、図１８Ｃまたは１８Ｄに図示されるデバイスまたはコンピュータシステム等のコンピューティングデバイスのメモリ内に記憶されるソフトウェア（例えば、コンピュータ実行可能命令）の形態で実装され得、そのコンピュータ実行可能命令は、コンピューティングデバイスのプロセッサによって実行されると、図８および９に図示されるステップを行う。
【００４８】
Ｍ２Ｍデバイスに関連付けられたＭ２Ｍクローラメタデータは、デバイス特有のクローラメタデータと称され得る。そのようなメタデータは、例えば、限定ではないが、デバイスのタイプ（ｄｔ＝センサ）、デバイスがクローラプロキシを要求するかどうか（ｃｐ＝真）、連続クローラ要求間の最小遅延（ｍｉｎ＿ｄｃｄ＝３６００）、およびデバイスの場所（ｌｏｃ＝１０．５２３、−７８．３２４）等のデバイス特有のリソース（例えば、／ｄｅｖ）の属性として規定されることができる。ある場合には、所与のＭ２Ｍデバイス上にホストされる個々のリソースに特有のＭ２Ｍクローラメタデータは、例えば、限定ではないが、クローリング優先度（ｐ＝０．８）、再クローリング試行間の最大遅延（ｍａｘ＿ｒｃｄ＝８６４００）、リソースユニット（ｒｕ＝”摂氏”）、およびサポートされるリソース動作（ｒｏ＝”ＲＯ”）等の個々のリソースの属性として規定されることができる。再び、図７を参照すると、７１０において、Ｍ２Ｍクローリングサービスは、クエリされたメタデータが所与のＭ２Ｍデバイスをクローリングするために十分であるかどうかを決定し得る。例えば、Ｍ２Ｍデバイスは、Ｍ２ＭクローラメタデータをＭ２Ｍクローラサービス４００に公開し、Ｍ２Ｍクローラサービス４００がＭ２Ｍクローラメタデータにクエリおよび発見することを可能にするための機構をサポートしていない場合がある。したがって、プロセスは、ステップ７１２に進むことができ、そこで、Ｍ２Ｍサービスは、Ｍ２Ｍデバイスが、クローラメタデータの自動生成をサポートするかどうかを決定する。デバイスが、クローラメタデータの自動生成をサポートしない場合、図示される実施例によると、プロセスは、７３０に進み、そこで終了する。Ｍ２Ｍデバイスが、クローラメタデータの自動生成をサポートする場合、図示される実施例によると、プロセスは、ステップ７１４に進み、そこで、クローラメタデータが、自動生成される。
【００４９】
例えば、図１０を参照すると、クローラメタデータは、インターフェース５０２を経由してＭ２Ｍデバイス１８を標的とするＭ２Ｍクローラサービス４００監視要求を介して自動生成されることができる。Ｍ２Ｍクローラサービスは、監視される要求の標的であるリソースのリストを抽出する。示されるように、Ｍ２Ｍクローラサービス４００は、それを通してＭ２Ｍデバイス１８を標的にするトランザクションがフローする、Ｍ２Ｍゲートウェイ１４上にホストされるサービス層２２の一部であり得る。示されるように、Ｍ２Ｍクローラサービス４００は、例えば、アプリケーション２０からの１つ以上の要求１００２を、その要求をＭ２Ｍデバイス１８に送信する前に、検査することができる。示されるように、５つの要求が、監視される（要求１００２ａ、１００２ｂ、１００２ｃ、１００２ｄ、および１００２ｅ）が、任意の数の要求が、所望に応じて、監視および検査されることができることを理解されるであろう。さらに、Ｍ２Ｍクローラサービス４００は、Ｍ２Ｍデバイス１８からの応答を検査し得る。さらなる例示的実施形態によると、Ｍ２Ｍクローラサービス４００は、要求１００２によって標的にされるリソースのリストを維持し得る。このリストは、Ｍ２Ｍクローラメタデータとしての役割を果たすことができ、Ｍ２Ｍデバイス１８の将来的クローリングを行うために使用され得る。したがって、Ｍ２Ｍクローラサービス４００は、Ｍ２Ｍデバイスへの要求を監視し得、Ｍ２Ｍクローラサービス４００は、Ｍ２Ｍデバイスの種々のリソースを標的としたクローラメタデータを自動生成し得る。
【００５０】
同様に、別の例示的実施形態によると、Ｍ２Ｍクローラサービスは、Ｍ２Ｍデバイスによって開始される要求を監視し、監視される情報を使用して、クローラメタデータを生成することができる。例えば、ある場合には、Ｍ２Ｍデバイスは、そのリソースをプロキシまたはゲートウェイノードに反映させるための要求を開始し得る。そのようなＭ２Ｍデバイスは、周期的またはイベントベースの様式でノードを更新し得る。要求および／またはこれらの要求によって標的とされるリソースを監視することによって、Ｍ２Ｍクローラサービス４００は、Ｍ２Ｍデバイスによってサポートされるリソースのリストを自動生成することができる。このリストはまた、Ｍ２Ｍクローラメタデータとしての役割を果たすことができ、Ｍ２Ｍデバイスの将来的クローリングを行うために使用され得る。
【００５１】
したがって、第１のノード（Ｍ２Ｍサービス４００をホストし得る）と複数のＭ２Ｍデバイスとを備えている複数のマシンツーマシン（Ｍ２Ｍ）ノードを備えているシステムにおいて、複数のＭ２Ｍノードは、ネットワークを介して通信し、第１のノードは、複数のＭ２Ｍデバイスのうちの少なくとも１つに関連付けられたクローラメタデータを受信し得る。第１のノードは、受信されたクローラメタデータに従って、１つ以上のリソースに対して少なくとも１つのＭ２Ｍデバイスをクローリングし得る。さらに、第１のノードは、１つ以上のリソースが、ウェブクローラ、サービス、またはアプリケーションのうちの少なくとも１つによって発見されることができるように、１つ以上のリソースを公開し得る。本明細書に説明されるように、第１のノードは、少なくとも１つのＭ２Ｍデバイスを標的とする１つ以上の要求を監視し得る。監視に基づいて、第１のノードは、少なくとも１つのＭ２Ｍデバイスに関連付けられたコンテキスト情報を決定し得る。さらに、コンテキスト情報に基づいて、第１のノードは、少なくとも１つのＭ２Ｍデバイスがクローリングされることができるように、少なくとも１つのＭ２Ｍデバイスに関連付けられたクローラメタデータを構成し得る。
【００５２】
加えて、別の例示的実施形態によると、Ｍ２Ｍクローラサービス４００はまた、Ｍ２Ｍサービス層内の背景サービスとして（またはＭ２Ｍサービス層と協働して）起動し、Ｍ２Ｍサービス層リソースを定期的に探索し、これらのリソースからクローラメタデータを抽出し得る。そのような実施形態は、そのデータをＭ２Ｍサービス層リソース内に記憶する、Ｍ２Ｍ−タイプデバイスに有用であり得る。
【００５３】
別の実施例では、Ｍ２Ｍクローラサービス４００は、Ｍ２Ｍデバイスのタイプに基づいて、Ｍ２Ｍデバイスに関連付けられたクローラメタデータの生成をサポートすることができる。例えば、Ｍ２Ｍクローラサービス４００を呼び出し／それに登録すると、Ｍ２Ｍデバイスは、そのデバイスタイプ（例えば、ＡＣＭＥブランドの温度センサ）を公開し得る。代替として、Ｍ２Ｍクローラサービス４００は、デバイスにクエリすることによって、タイプを発見し得る。種々の例示的シナリオでは、デバイスのタイプを把握することは、Ｍ２Ｍクローラサービス４００が、デバイスのリソースのサポートセットを推測することを可能にし得る。なぜなら、例えば、デバイスのいくつかのタイプが、それらがサポートするリソースの標準化セットを有し得るからである、ある場合には、Ｍ２Ｍクローラサービス４００は、異なるＭ２Ｍデバイスタイプに対してＭ２Ｍクローラメタデータの内部ライブラリを含み得るか、またはＭ２Ｍクローラサービス４００は、外部ルックアップディレクトリ／サービスを活用し、そのような情報を発見し得る。
【００５４】
再び、図７を参照すると、７１６において、Ｍ２Ｍクローラサービス４００は、所与のＭ２Ｍデバイスが、クローラメタデータ強化をサポートすることができるかどうかを決定し得る。７０６または７１０において、クローラメタデータが、所与のＭ２Ｍデバイスをクローリングするために十分であることが決定される場合、プロセスは、ステップ７１６に進み得る。したがって、Ｍ２Ｍクローラサービス４００は、公開、クエリ、または自動生成されたＭ２Ｍデバイスクローラメタデータを強化すべき状況にある。例示的実施形態による、強化は、以下にさらに説明されるように、Ｍ２Ｍクローラサービス４００が収集するコンテキストまたは状態を活用することによって、サポートされる。
【００５５】
７１８において、Ｍ２Ｍクローラサービス４００は、クローラメタデータを強化することができる。例えば、Ｍ２Ｍクローラサービス４００は、インターフェース５０２を経由してフローする要求および／または応答を観察することによって、コンテキスト情報を収集することができる。強化のための例示的属性は、一例として提示され、限定ではない、以下の表３に列挙される。他の属性も、所望に応じて、メタデータを強化し得ることを理解されるであろう。
【表３】
0006463768.tif 000005
【００５６】
表３を参照すると、Ｍ２Ｍクローラサービス４００は、種々の実施形態によると、異なる機構を使用して、この情報を観察することができる。例えば、Ｍ２Ｍクローラサービス４００は、インターフェース５０２を経由して、所与のＭ２Ｍデバイスへ／そこからフローするトランザクションを能動的に監視し、監視された情報を要約することができる。監視および要約は大量のオーバーヘッドおよび複雑性が追加されることなく、達成され得る。例えば、要求内の標的アドレス（例えば、ＵＲＩ）、要求のタイムスタンプ、所与のＭ２Ｍデバイスが要求に応答するかどうか、および対応する応答コードを監視することによって、Ｍ２Ｍクローラサービス４００は、前述のコンテキスト情報等のコンテキスト情報を観察することができる。代替として、Ｍ２Ｍクローラサービス４００は、ネットワーク内の他のサービスと協働し、この情報を収集することができる（例えば、インターフェース５０４を経由して、他のＭ２Ｍクローラサービスと協働することによって）。
【００５７】
例えば、監視された情報を使用して、Ｍ２Ｍクローラサービス４００は、より高いレベルのコンテキスト情報を推測（決定）し、そのような情報を使用して、例えば、限定ではないが、例えば、所与のＭ２Ｍデバイスが、その代わりに、クローラ要求にサービス提供するために、クローラプロキシを要求するかどうか、および、例えば、クローラが所与のＭ２Ｍデバイスを再クローリングすべきときを決定するときに使用すべき最小／最大遅延またはスケジュール等のクローリングポリシーの定義等、クローラメタデータを構成することができる。したがって、Ｍ２Ｍデバイスに関連付けられたコンテキスト情報に基づいて、Ｍ２Ｍクローラサービス４００は、Ｍ２Ｍデバイスがクローリングされ得るように、Ｍ２Ｍデバイスに関連付けられたクローラメタデータを構成することができる。
【００５８】
Ｍ２Ｍクローラサービス４００は、種々の実施形態に従って、異なる機構を実装し、このより高いレベルコンテキストを推測することができる。例えば、Ｍ２Ｍクローラサービス４００は、Ｍ２Ｍクローラサービス４００がこのタイプのコンテキストを推測するために使用し得る、アルゴリズムおよび／またはポリシーのネイティブセットをサポートすることができる。Ｍ２Ｍクローラサービス４００はまた、アルゴリズムおよび／またはポリシーの構成可能ならびに／もしくはプログラム可能なセットをサポートし、コンテキストを推測することができる。例えば、Ｍ２Ｍクローラサービス４００が、所与のＭ２Ｍデバイスが、第１のインターフェース５０２を経由して、クローラ要求に応答していない、または例えば、再試行ステータス等のエラー応答コードで応答していることを検出する場合、Ｍ２Ｍクローラサービス４００は、Ｍ２Ｍデバイスがクローラ要求の処理に対応できないと推測し得る。そのようなシナリオでは、Ｍ２Ｍクローラサービス４００は、クローラメタデータを強化し、適宜、最小／最大クローラ遅延を調整することができる。したがって、Ｍ２Ｍデバイスに関連付けられたコンテキスト情報に基づいて、Ｍ２Ｍクローラサービス４００は、Ｍ２Ｍデバイスがクローリングされることができるように、Ｍ２Ｍデバイスに関連付けられたクローラメタデータを構成することができる。代替として、Ｍ２Ｍクローラサービスは、Ｍ２Ｍデバイスの代わりに、クローラプロキシとして機能することを積極的に決定することができる。
【００５９】
再び、図７を参照すると、７２０において、クローラメタデータが強化された後、またはメタデータ強化がサポートされていないことを決定後のいずれかにおいて、Ｍ２Ｍクローラサービス４００は、メタデータがＭ２Ｍデバイスをクローリングするために十分であるかどうかを決定し得る。メタデータが十分ではない場合、プロセスは、７３０に進み得、そこで終了する。メタデータが十分である場合、Ｍ２Ｍクローラサービス４００は、Ｍ２Ｍデバイスがクローリングされることができるかどうかを決定し得る。Ｍ２Ｍデバイスが、クローリングされることができる場合、Ｍ２Ｍデバイスは、７２４においてクローリングされる。Ｍ２Ｍデバイスがクローリングされた後、またはＭ２Ｍデバイスがクローリングをサポートしないと決定された後のいずれかにおいて、Ｍ２Ｍクローラサービス４００は、他のサービスと協働し、メタデータおよび／またはクローリング結果を公開することができるかどうかが決定される。Ｍ２Ｍクローラサービス４００が、協働しない場合、プロセスは、ステップ７３０に進み、そこで、終了する。Ｍ２Ｍクローラサービスが協働することができる場合、プロセスは、ステップ７２８に進み、そこで、Ｍ２Ｍクローラサービス４００は、他のサービスと協働し、メタデータおよび／またはクローリングする結果を公開する。
【００６０】
例示的実施形態では、Ｍ２Ｍデバイスの効率的イベントベースのクローリングをサポートするために（周期的またはランダムクローリングではなく）、Ｍ２Ｍクローラサービス４００は、Ｍ２Ｍデバイスを構成すること、Ｍ２Ｍデバイスに加入すること、およびＭ２Ｍデバイスからのクローライベントの通知を受信することをサポートする。例えば、Ｍ２Ｍクローラサービス４００は、Ｍ２Ｍクローラサービス４００が、特定のイベントが生じると通知されるように、Ｍ２Ｍデバイスに関するトリガ条件を構成し得る。Ｍ２Ｍクローラサービスはまた、Ｍ２Ｍデバイスのネイティブ（固定）トリガ条件をサポートすることができる。セマンティクスの例示的セットが、本明細書では、構成可能クローライベントトリガ条件をサポートするために定義される。表４は、例示的実施形態による、ＪＳＯＮベースのセマンティクスの例示的セットを図示する。他の代替フォーマットもまた、所望に応じて、使用されることができ、追加のまたは代替セマンティクスは、所望に応じて、Ｍ２Ｍクローラサービス４００によって使用されることができることを理解されるであろう。
【表４】
0006463768.tif 000006
【００６１】
ここで図１１を参照すると、第１のインターフェース５０２を経由したＭ２Ｍデバイスからのクローライベントの通知の受信をサポートするために、Ｍ２Ｍクローラサービス４００は、Ｍ２Ｍデバイスに加入し、クローライベント通知を受信することができる。加入の一部として、Ｍ２Ｍクローラサービス４００は、クローライベントがデバイスによって生成される場合／そのとき、制御すべきトリガ条件を構成することができる。図１１を参照すると、図示される実施形態によると、Ｍ２Ｍクローラサービス４００は、Ｍ２Ｍデバイス１８によって生成されるクローライベントに加入する。１１０２において、Ｍ２Ｍクローラサービス４００は、加入要求をＭ２Ｍデバイス１８に送信する。図示されるＭ２Ｍデバイス１８は、Ｍ２Ｍクローラサービス４００がＲＥＳＴｆｕｌ  ＰＯＳＴ動作を使用してクローライベントに加入することを可能にする、デバイスクローライベント加入リソース（例えば、‘／ｄｅｖｉｃｅ／ｄｃｅ／ｓｕｂｓｃｒｉｐｔｉｏｎｓ’）をサポートする。例示的加入要求のペイロード内に含まれるのは、表４に規定された図示されるＪＳＯＮフォーマットの意味論的記述を使用する、クローライベントに対するトリガ条件である。さらに、例示的加入要求内に含まれるのは、トリガ条件が満たされる場合／そのとき、Ｍ２Ｍデバイス１８が、クローライベントをＭ２Ｍクローラサービス４００に送信するために使用することができる、コールバックＵＲＩである。例えば、１１０４において、要求に応答して、クローライベント加入が、Ｍ２Ｍデバイス１８において作成され、トリガが、Ｍ２Ｍデバイス１８において構成される。１１０６において、クローライベントが、トリガされる。１１０８において、クローライベントまたはクローライベントの通知が、Ｍ２Ｍクローラサービス４００に送信される。図示される実施例によると、クローライベントは、ＲＥＳＴｆｕｌ  ＰＯＳＴ要求を使用して、Ｍ２Ｍクローラサービス４００に送信される。この要求は、そのペイロード内にイベント情報を含むことができる。イベント情報は、例えば、クローリングする／再クローリングするリソースに対するＵＲＩのリストを含み得る。クローライベントの受信に応じて、１１１０において、Ｍ２Ｍクローラサービス４００は、本明細書に説明されるように、Ｍ２Ｍデバイス１８のクローリングを行うかどうか、および／または本明細書に説明されるように、１つ以上のウェブクローラへのクローライベントを生成するかどうかを決定し得る。例えば、１１１２において、Ｍ２Ｍクローラサービス４００は、クローライベントに関連付けられた通知の受信に基づいて、Ｍ２Ｍデバイス１８の１つ以上のリソースをクローリングし得る。
【００６２】
したがって、例えば、Ｍ２Ｍクローラサービス４００をホストし得る、第１の、すなわち、Ｍ２Ｍノードは、Ｍ２Ｍデバイスに関連付けられたクローラメタデータを受信し得る。Ｍ２Ｍノードは、受信されたクローラメタデータに従って、１つ以上のリソースに対してＭ２Ｍデバイスをクローリングし得る。さらに、Ｍ２Ｍノードは、１つ以上のリソースが、ウェブクローラ、サービス、またはアプリケーションのうちの少なくとも１つによって発見されることができるように、１つ以上のリソースを公開し得る。前述のように、Ｍ２Ｍノードは、加入要求をＭ２Ｍデバイスに送信し得る。加入要求は、クローライベントに関連付けられたトリガ条件を含み得、Ｍ２Ｍデバイスは、加入要求に従って構成され得る。トリガ条件が満たされた場合、Ｍ２Ｍノードは、クローライベントの通知を受信し得る。通知を受信することに応答して、Ｍ２Ｍノードは、１つ以上のリソースのうちの選択リソースに対してＭ２Ｍデバイスを再クローリングし得、選択リソースは、加入要求において定義されている。代替として、または加えて、通知を受信することに応答して、Ｍ２Ｍノードは、１つ以上のウェブクローラのための第２の通知を生成し得る。
【００６３】
前述のように、Ｍ２Ｍクローラサービス４００は、例えば、クローリングされたリソースの表現の記憶／キャッシュ等、クローラプロキシサービスをＭ２Ｍデバイスに提供することができる。そのようなサービスは、Ｍ２Ｍサービス層に登録していない、および／またはそのリソース表現をＭ２Ｍサービス層リソース内に記憶していない、Ｍ２Ｍデバイス等の種々のデバイスに有用であり得る。Ｍ２Ｍクローラサービス４００は、クローリングを開始することによって、自律的／積極的な様式でこのクローリングを行うことができるか、またはＭ２Ｍクローラサービス４００はまた、所与のＭ２Ｍデバイスからの明示的イベントおよび／または要求に基づいて、クローリングすることができる。Ｍ２Ｍデバイスをクローリング後、Ｍ２Ｍクローラサービス４００は、クローリングされた情報を使用して、種々のサービスを提供することができる。例えば、Ｍ２Ｍクローラサービス４００は、従来のウェブクローラによって使用される、その独自のクローライベントを生成することができる。生成されたクローライベントは、例えば、新しく追加、作成、または削除されたデバイスリソースの検出に基づき得る。Ｍ２Ｍクローラサービス４００はまた、クローリングされたＭ２Ｍデバイスリソースのキャッシュ／記憶された表現を使用して、Ｍ２Ｍデバイスの代わりに、ウェブクローラ要求にサービス提供することができる。そうすることによって、Ｍ２Ｍデバイスは、潜在的に多数のクローラ要求にサービス提供する必要から解放（オフロード）されることができる。
【００６４】
ここで図１２を参照すると、Ｍ２Ｍクローラサービス４００は、Ｍ２Ｍクローラメタデータを解析し、Ｍ２Ｍデバイス上にホストされる各リソースおよびリソースに対応するクローラ属性を識別し得る。Ｍ２Ｍデバイス上の各リソースのクローラ属性に基づいて、Ｍ２Ｍクローラサービス４００は、どのリソースをクローリングすべきか（例えば、‘ｄｏ  ｎｏｔ  ｃｒａｗｌ’属性に基づいて）、リソースをクローリングすべき順序（例えば、‘ｐｅｒｓｉｓｔｅｎｔ’属性に基づいて）、およびリソースをクローリングすべきとき（例えば、‘ｄｅｖｉｃｅ  ｃｒａｗｌｅｒ  ｄｅｌａｙ’および／または‘ｒｅｓｏｕｒｃｅ  ｃｒａｗｌｅｒ  ｄｅｌａｙ’および／または‘ｎｅｘｔ  ｕｐｄａｔｅ  ｔｉｍｅ’属性に基づいて）を決定することができる。
【００６５】
図１２を参照すると、図示される実施例によると、Ｍ２Ｍクローラサービスは、１２０２において、所与のＭ２Ｍデバイス１８のクローリングを開始する。１２０４において、Ｍ２Ｍクローラサービス４００は、所与のＭ２Ｍデバイスに関連付けられたクローラデータが利用可能であるかどうかを決定する。クローラメタデータが利用可能である場合、クローラサービス４００は、例えば、‘Ｄｏ  Ｎｏｔ  Ｃｒａｗｌ’メタデータ等のメタデータに基づいて、クローリングすべきリソースを識別する。１２０８において、クローラサービス４００は、Ｍ２Ｍデバイスに関連付けられたメタデータに基づいて、例えば、‘Ｒｅｓｏｕｒｃｅ  Ｃｒａｗｌｉｎｇ  Ｐｒｉｏｒｉｔｙ’メタデータに基づいて、クローリング順序を決定する。１２１０において、クローラサービス４００は、Ｍ２Ｍデバイスに関連付けられたメタデータに基づいて、例えば、‘Ｃｒａｌｉｎｇ  Ｄｅｌａｙ’メタデータに基づいて、クローリングするスケジュールを決定する。１２１２において、クローラサービス４００は、まだフェッチされていない最高優先度に関連付けられたリソースをフェッチし得る。フェッチされるリソースは、メタデータによって定義されるクローラスケジューリング要件も満たし得る。１２１４において、図示される実施例によると、クローラサービス４００は、クローリングされたリソース表現、クローラメタデータ、コンテキスト情報、状態情報等のクローリングに関連付けられた種々の情報を記憶し得る。１２１６において、クローラサービス４００は、依然としてクローリングされる必要があるリソースが存在するかどうかを決定する。クローリングされる必要があるリソースが存在する場合、プロセスは、ステップ１２１２に戻る。クローリングされる必要があるリソースがもう存在しない場合、クローリングは、１２２８において終了する。
【００６６】
したがって、前述のように、クローリングされる各リソースに対して、Ｍ２Ｍクローラサービス４００は、以下にさらに図１３を参照して説明されるように、Ｍ２Ｍデバイスからリソース表現をフェッチし、リソース表現を記憶／キャッシュ（例えば、ローカルに、またはネットワーク記憶エリア内のいずれかに）することができる。クローリングは、積極的な／自律的な方式、またはイベントベースの方式で行われることができる。例えば、Ｍ２Ｍデバイスは、１２０２において、クローリングを開始するために、Ｍ２Ｍクローラサービスへのイベントをトリガすることができる。クローライベントに対するトリガ条件は、前述のように、Ｍ２Ｍクローラサービス４００によって、Ｍ２Ｍデバイス上に構成されることができる。Ｍ２Ｍクローラサービス４００はまた、リソースとともに追加の情報を記憶することができる。例えば、Ｍ２Ｍクローラメタデータ内に含まれる情報は、クローリングされたリソース表現（例えば、表現が生じたデバイスタイプまたはリソースタイプ、表現のコンテンツタイプ、リソース単位、およびそれに索引を付けるとき、表現から抽出するキーワード、関連親／子／兄弟リソース表現へのリンク等）とともに記憶されることができる。さらに、１２１４において、Ｍ２Ｍクローラサービス４００が観察／収集する、コンテキストおよび／または状態情報もまた、クローリングされたリソース表現とともに記憶されることができる（例えば、タイムスタンプ、場所、クローリングをトリガしたイベント、このリソースとの関係を有する他のリソースへの表現および／またはリンク等）。
【００６７】
図１２を継続して参照すると、１２０４において、クローラメタデータが利用可能でないことが決定される場合、クローラサービス４００は、１２１８において、別の、例えば、階層内の次のＭ２Ｍデバイスリソースを読み出し得る。１２２０において、クローリングされたリソース表現は、記憶され、他の情報も、クローリングされたリソース表現とともに記憶され得る。１２２２において、クローラサービス４００は、クローリングされたリソースに関連付けられたクローラメタデータを生成する。１２２４において、クローラサービス４００は、クローリングされるべきサブリソースへのリンクに対して、クローリングされたリソース表現をチェックする。１２２６において、クローラサービス４００は、サブリソースが存在するかどうかを決定する。サブリソースが存在する場合、プロセスは、サブリソースがクローリングされ得るように、ステップ１２１８に戻る。サブリソースが存在しない場合、クローリングは、１２２８において完了する。
【００６８】
図１２に図示されるステップを行うエンティティは、図１８Ｃまたは図１８Ｄに図示されるもの等のデバイス、サーバ、またはコンピュータシステムのメモリ内に記憶され、そのプロセッサ上で実行するソフトウェア（例えば、コンピュータ実行可能命令）の形態で実装され得る、論理エンティティであることを理解されるであろう。すなわち、図１２に図示される方法は、図１８Ｃまたは１８Ｄに図示されるデバイスまたはコンピュータシステム等のコンピューティングデバイスのメモリ内に記憶されるソフトウェア（例えば、コンピュータ実行可能命令）の形態で実装され得、そのコンピュータ実行可能命令は、コンピューティングデバイスのプロセッサによって実行されると、図１２に図示されるステップを行う。
【００６９】
図１３も参照すると、Ｍ２Ｍクローラサービス４００は、例示的実施形態によると、Ｍ２Ｍクローラメタデータを使用せずに、クローリングをサポートすることができる。例えば、Ｍ２Ｍクローラサービス４００は、最初に、デバイスのベースリソース表現を読み出し、記憶し、次いで、それを調査し、リソース表現が、任意のサブリソースへのリンクを含むかどうかを確認することによって、所与のＭ２Ｍデバイスを再帰的に‘ウォーク’することができる。例えば、１３０２において、Ｍ２Ｍクローラサービス４００は、クローライベントを通知される。１３０４において、Ｍ２Ｍクローラサービス４００は、前述のように、公開されたメタデータ、クエリから受信されたメタデータ、または自動生成されたメタデータを使用して、１つ以上のクローラ要求を構築し得る。１３０６において、Ｍ２Ｍクローラサービス４００は、第１のクローラ要求を第１のＭ２Ｍデバイス１８に送信する。要求に応答して、１３０８において、第１のＭ２Ｍデバイス１８は、Ｍ２Ｍクローラサービス４００に応答を送信し得る。応答は、要求に関連付けられたリソース表現を含み得る。１３１０において、図示される実施例によると、Ｍ２Ｍクローラサービス４００は、クローリングされたリソース表現、クローラメタデータ、およびコンテキスト情報を記憶する。１３１２において、Ｍ２Ｍクローラサービス４００は、第２のクローラ要求を第２のＭ２Ｍデバイス１８に送信する。要求に応答して、１３１４において、第２のＭ２Ｍデバイス１８は、応答をＭ２Ｍクローラサービス４００に送信し得る。応答は、第２の要求に関連付けられたリソース表現を含み得る。１３１６において、図示される実施例によると、Ｍ２Ｍクローラサービス４００は、クローリングされたリソース表現、クローラメタデータ、およびコンテキスト情報を記憶する。１３１８において、Ｍ２Ｍクローラサービス４００は、第３のクローラ要求を第３のＭ２Ｍデバイス１８に送信する。要求に応答して、１３２０において、第３のＭ２Ｍデバイス１８は、第３の応答をＭ２Ｍクローラサービス４００に送信し得る。第３の応答は、第３の要求に関連付けられたリソース表現を含み得る。１３２２において、図示される実施例によると、Ｍ２Ｍクローラサービス４００は、クローリングされたリソース表現、クローラメタデータ、およびコンテキスト情報を記憶する。３つの応答および要求が、図１３に図示されるが、例証は、例示目的のためであり、任意の数の要求が、任意の数のＭ２Ｍデバイスに送信され得ることを理解されるであろう。
【００７０】
応答に基づいて、前述のように、Ｍ２Ｍクローラサービスは、同様に、サブリソース表現を読み出し、記憶し、サブリソース内のリンクをチェックすることができる。例示的実施形態では、本プロセスは、サブリソースへのリンクが見つからなくなるまで継続することができる。これらの動作を行うことによって、Ｍ２Ｍクローラサービス４００は、所与のＭ２Ｍデバイスをクローリングすることができ、Ｍ２Ｍクローラサービス４００は、Ｍ２Ｍクローラサービス４００、または、例えば、Ｍ２Ｍクローラメタデータが共有され得る、ネットワーク内の他のクローラによって、Ｍ２Ｍデバイスの後続再クローリングのために使用され得る、Ｍ２Ｍデバイスに関するＭ２Ｍクローラメタデータを自動生成することができる。
【００７１】
前述のように、所与のＭ２Ｍクローラサービスは、Ｍ２Ｍクローラサービスの他のインスタンスと協働し得る。例えば、一実施形態では、Ｍ２Ｍクローラサービス４００は、第２のインターフェース５０４を経由して、Ｍ２Ｍクローラサービス４００の他のインスタンスと協働する。Ｍ２Ｍクローラサービス４００はまた、それぞれ、第３および第４のインターフェース５０６および５０８を経由して、ネットワーク内の他のタイプのサービスおよび／またはアプリケーションと協働し得る。協働として、例えば、限定ではないが、クローラメタデータの共有、クローリングされたリソース表現の共有、クローラベースのイベントへの加入、クローラベースのイベントの構成、クローラベースのイベントの生成等が挙げられ得る。
【００７２】
したがって、例えば、Ｍ２Ｍクローラサービス４００をホストする、第１の、すなわち、Ｍ２Ｍノードは、少なくとも１つのウェブクローラ、サービス、またはアプリケーションからクエリメッセージを受信し得る。Ｍ２Ｍノードは、クエリメッセージを受信することに応答して、１つ以上のリソースを公開し得る。Ｍ２Ｍノードは、１つ以上のリソースを、ネットワーク内の別の、すなわち、第２のノード上にホストされているＭ２Ｍクローラサービスのインスタンスに公開し得る。さらに、Ｍ２Ｍデバイスに関連付けられたクローラメタデータは、ネットワーク内の別の、すなわち、第２のノード上にホストされているＭ２Ｍクローラサービス４００のインスタンスから受信され得る。
【００７３】
例示的実施形態では、Ｍ２Ｍクローラサービス４００は、Ｍ２Ｍクローラメタデータ拡張および自動化された公開をサポートする、サイトマッププロトコルの拡張バージョンを使用して、Ｍ２Ｍクローラメタデータおよび／またはクローリングされたリソース表現を公開することができる。例えば、Ｍ２Ｍクローラサービス４００は、サイトマップファイルを本明細書に説明される異なるタイプのクローラメタデータおよびコンテキスト情報で強化することができる。例えば、新しいサイトマップＸＭＬタグ定義が、例えば、表２に図示されるクローラメタデータ等の種々のＭ２Ｍクローラメタデータ、および、例えば、表３に図示されるコンテキスト情報等の種々のコンテキスト情報をサポートするように定義される。図１４は、クローラメタデータ拡張（太字）をサポートする、例示的サイトマップＸＭＬファイルを示すが、他のクローラメタデータ拡張も、所望に応じて、本明細書に説明される実施形態によって使用され得ることを理解されるであろう。
【００７４】
Ｍ２Ｍクローラサービスは、積極的にクローリングされたＭ２Ｍデバイスリソースのクローリングされたバージョンに対して、クローラメタデータを１つ以上のサイトマップファイルにおいて公開することができる。例えば、これらの拡張サイトマップファイルは、インターフェースである第３のインターフェース５０６を経由して、ウェブクローラに公開されることができる。これは、クローラ要求が、Ｍ２Ｍデバイス上にホストされるリソースの代わりに、ネットワーク内に記憶されるＭ２Ｍデバイスリソース表現のクローリングされたバージョンに標的を定められる結果をもたらし得る。代替として、Ｍ２Ｍクローラサービスは、Ｍ２Ｍデバイス上にホストされるリソースに対して、クローラメタデータを１つ以上のサイトマップファイルにおいて公開することができる（例えば、Ｍ２Ｍデバイスがリソースが制約されていない場合）。これは、クローラ要求が、Ｍ２Ｍクローラサービス４００ではなく、Ｍ２Ｍデバイス自体に標的を定められる結果をもたらし得る。
【００７５】
Ｍ２Ｍクローラサービスは、種々の実施形態によると、サイトマップファイルを介して、クローラメタデータを公開するための異なる方法をサポートすることができる。一実施形態では、Ｍ２Ｍクローラサービスは、クローラサービスを提供している複数のＭ２Ｍデバイスに対して単一のサイトマップファイルを維持することができる。例えば、本方法を使用して、Ｍ２Ｍクローラサービスは、単一サイトマップファイル内に複数のＭ２Ｍデバイスに対するＭ２Ｍクローラメタデータを集約することができる。これは、各Ｍ２Ｍデバイスに対しての別個の＜ｄｅｖｉｃｅ＞…＜／ｄｅｖｉｃｅ＞セクションをサイトマップＸＭＬ内に含むことによって行われることができる。単一サイトマップファイルを維持する利点は、Ｍ２Ｍクローラメタデータを他のウェブクローラ、サービス、アプリケーション等に公開するためにＭ２Ｍクローラサービスに対して要求される要求の数の減少であり得る。本実施形態による例示的コールフローは、図１６に示される。
【００７６】
代替として、Ｍ２Ｍクローラサービスは、Ｍ２Ｍクローラサービス４００がサービスを提供する各Ｍ２Ｍデバイスに対して、個々のサイトマップファイルを維持することができる。これらの個々のサイトマップファイルは、独立して、ネットワーク内の種々のウェブクローラ、サービス、および／またはアプリケーションに公開されることができる。加えて、Ｍ２Ｍクローラサービス４００は、各Ｍ２Ｍデバイスに対する個々のサイトマップファイルの各々への参照（例えば、リンク）を含む、サイトマップインデックスファイルを維持することができる。このサイトマップインデックスファイルおよび個々のサイトマップファイルは、Ｍ２Ｍクローラサービス４００によって公開されることができる。したがって、クローラメタデータは、ネットワーク内のウェブクローラ、サービス、および／またはアプリケーションを選択するために、選択Ｍ２Ｍデバイスに対して公開されることができる。
【００７７】
Ｍ２Ｍクローラサービス４００が単一サイトマップファイルまたは複数のサイトマップファイルを維持するかどうかにかかわらず、Ｍ２Ｍクローラサービスは、種々の例示的実施形態による、積極的な公開または受動的公開をサポートすることができる。ここで図１５を参照すると、積極的な公開は、Ｍ２Ｍクローラサービス４００が、サイトマップファイルをネットワーク内の１つ以上のウェブクローラ４０４、サービス２２、および／またはアプリケーション２０に送信することを含み得る（１５０３参照）。応答して、１５０５において、ウェブクローラ、サービス、および／またはアプリケーションは、公開要求が正常に行われたことを示す応答をＭ２Ｍクローラサービス４００に送信し得る。代替として、１５０４において、Ｍ２Ｍクローラサービス４００は、サイトマップファイル（例えば、／Ｓｉｔｅｍａｐ．ｘｍｌ）をローカルの周知のパスにおいて利用可能にし得、ファイルは、Ｍ２Ｍクローラサービス４００にアクセスし／それを呼び出し／それをクローリングする、ネットワーク内のウェブクローラ、サービス、アプリケーションによって見出され得る。これは、受動的公開と称され得、クローラサービス４００は、クエリメッセージに応答して、１つ以上のサイトマップファイルを受動的に公開し得る（１５０２参照）。
【００７８】
したがって、Ｍ２Ｍクローラサービスのサイトマップファイルは、Ｍ２Ｍクローラメタデータおよびコンテキスト情報を公開するために使用されることができる。加えて、前述のように、Ｍ２Ｍクローラサービス４００が、クローリングされたリソース表現をローカルに記憶し得るか、またはクローラサービス４００が、Ｍ２Ｍクローラメタデータを収集し公開することのみ行う場合がある。Ｍ２Ｍクローラサービス４００がクローリングされたリソース表現を記憶する例示的シナリオでは、ネットワーク内のウェブクローラ、サービス、およびアプリケーションからのクローラ要求（１５０６参照）は、Ｍ２Ｍデバイス１８のためのクローラプロキシとして機能することができるＭ２Ｍクローラサービス４００に標的を定められ得る。したがって、１５０８に示されるように、Ｍ２Ｍクローラサービス４００は、直接、要求に応答することができる。Ｍ２Ｍクローラサービス４００が、クローリングされたリソース表現を記憶しない例示的シナリオでは、ネットワーク内のウェブクローラ、サービス、およびアプリケーションからの要求（１５１０参照）は、Ｍ２Ｍクローラサービス４００ではなく、Ｍ２Ｍデバイス１８に標的を定められ得る。したがって、１５１２に示されるように、Ｍ２Ｍデバイス１８が、要求に応答し得る。
【００７９】
したがって、前述のように、例えば、Ｍ２Ｍクローラサービス４００をホストし得る、Ｍ２Ｍノードは、Ｍ２Ｍデバイスに関連付けられたクローラメタデータを受信し得る。Ｍ２Ｍノードは、受信されたクローラメタデータに従って、１つ以上のリソースに対してＭ２Ｍデバイスをクローリングし得る。さらに、Ｍ２Ｍノードは、１つ以上のリソースが、ウェブクローラ、サービス、またはアプリケーションのうちの少なくとも１つによって発見されることができるように、１つ以上のリソースを公開し得る。１つ以上のリソースを公開することは、１つ以上のサイトマップファイルを直接少なくとも１つのウェブクローラ、サービス、またはアプリケーションに送信することを含み得る。代替として、または加えて、１つ以上のリソースを公開することは、１つ以上のサイトマップファイルが、少なくとも１つのウェブクローラ、サービス、またはアプリケーションによって、あるアドレスにおいて読み出され得るように、１つ以上のサイトマップファイルをアドレスにおいて利用可能にすることを含み得る。
【００８０】
ここで図１６を参照すると、Ｍ２Ｍクローラサービス４００はまた、クローライベントを生成すること、例えば、クローライベントを生成し、第３のインターフェース５０６を経由して、それを第１のウェブクローラ１６００等の１つ以上のウェブクローラへ送信することをサポートすることができる。さらに、Ｍ２Ｍクローラサービス４００は、インターフェース５０４を経由して、Ｍ２Ｍクローラサービスの他のインスタンスのためのクローライベントを生成することができる。さらに、Ｍ２Ｍクローラサービス４００は、インターフェース５０８を経由して、Ｍ２Ｍアプリケーション２０、例えば、Ｍ２Ｍデバイス１８をクローリングするＭ２Ｍアプリケーション２０のためのクローライベントを生成することができる。クローライベント生成は、前述のように、任意のＭ２Ｍデバイスクローライベントの受信によってトリガされることができる。イベント生成はまた、Ｍ２Ｍクローラサービス４００によって自律的かつネイティブにトリガされることができる。例えば、Ｍ２Ｍクローラサービス４００は、Ｍ２Ｍクローラサービス４００がＭ２Ｍデバイス１８をクローリングする間に生成される、クローライベントをトリガすることができる。例えば、クローリングの間、Ｍ２Ｍクローラサービス４００は、Ｍ２Ｍクローラサービス４００によって維持されるリソース状態の以前のバージョンと比較して、１つ以上のデバイスリソースの追加、削除、または状態変化等、ある条件を検出し得、これは、クローライベントが生成されることをトリガする。Ｍ２Ｍクローラサービス４００はまた、ウェブクローラ、Ｍ２Ｍサービス、および／またはＭ２Ｍアプリケーションに提供される、イベントトリガを構成し得る。さらに、Ｍ２Ｍクローラサービス４００は、例えば、表４に図示されるもの等の種々のクローラトリガ条件セマンティクスを使用してサポートされる、クローライベントを構成し得る。
【００８１】
図１６を継続して参照すると、図示されるＭ２Ｍクローラサービス４００は、ウェブクローラ、Ｍ２Ｍサービス、およびＭ２Ｍアプリケーションが、ＲＥＳＴｆｕｌ  ＰＯＳＴ動作を使用して、クローライベントに加入することを可能にする、クローライベント加入リソース（‘ｃｒａｗｌｅｒ／ｄｃｅ／ｓｕｂｓｃｒｉｐｔｉｏｎｓ’）をサポートする。１６０２において、ウェブクローラは、加入要求をＭ２Ｍクローラサービス４００に送信する。例示的加入要求のペイロード内に含まれるのは、表４に規定された例示的ＪＳＯＮフォーマット意味論的記述を使用する、クローライベントのためのトリガ条件である。本実施例では、ウェブクローラ１６００は、クローラサービス４００がそのＭ２Ｍデバイスの全てにわたり観察する作成、更新、または削除動作の総数が、１０００を上回る場合／そのとき、クローライベントを生成するようにＭ２Ｍクローラサービス４００を構成する。また、実施例に含まれるのは、トリガ条件が満たされる場合／そのとき、Ｍ２Ｍクローラサービス４００がクローライベントをウェブクローラ１６００に送信するために使用され得る、コールバックＵＲＩである。したがって、１６０４において、Ｍ２Ｍクローラサービス４００は、クローライベント加入を作成し、応答に従って、トリガを構成する。１６０６において、規定されたクローライベントが、トリガされる。１６０８において、イベントペイロードが、ウェブクローラ１６００に送信される。例示的イベントペイロードに含まれるのは、その状態の変化に起因してクローリングを要求する、リソースのＵＲＩのリストである。例えば、６１０において、クローライベントを受信すると、ウェブクローラ１６００は、イベントペイロードに従って、Ｍ２Ｍデバイスリソースのクローリングを行うかどうかを決定することができる。１６１２において、ウェブクローラ１６００は、選択Ｍ２Ｍデバイスリソースをクローリングし得る。
【００８２】
したがって、前述のように、例えば、Ｍ２Ｍクローラサービス４００をホストし得る、Ｍ２Ｍノードは、加入要求をウェブクローラから受信し得る。加入要求は、クローライベントに関連付けられたトリガ条件を含み得る。Ｍ２Ｍノードは、加入要求に従ってクローライベント加入を作成し得る。トリガ条件が満たされた場合、Ｍ２Ｍノードは、クローライベントの通知をウェブクローラに送信し得る。通知は、トリガ条件に関連付けられた１つ以上のリソースのリストを含み得る。
【００８３】
図１５および１６に図示されるステップを行うエンティティは、図１８Ｃまたは図１８Ｄに図示されるもの等のデバイス、サーバ、またはコンピュータシステムのメモリ内に記憶され、そのプロセッサ上で実行するソフトウェア（例えば、コンピュータ実行可能命令）の形態で実装され得る、論理エンティティであることを理解されるであろう。すなわち、図１５および１６に図示される方法は、図１８Ｃまたは１８Ｄに図示されるデバイスまたはコンピュータシステム等のコンピューティングデバイスのメモリ内に記憶されるソフトウェア（例えば、コンピュータ実行可能命令）の形態で実装され得、そのコンピュータ実行可能命令は、コンピューティングデバイスのプロセッサによって実行されると、図１５および１６に図示されるステップを行う。
【００８４】
図５を参照して説明されるように、Ｍ２Ｍクローラサービスインスタンスは、Ｍ２Ｍデバイスのネットワーク（例えば、Ｍ２Ｍサーバ、Ｍ２Ｍゲートウェイ、Ｍ２Ｍデバイス等）にわたり分散されることができる。そのようなサービスインスタンスは、分散および／または階層様式において協働し、クローラ要求を分散させ、クローラメタデータおよびクローリングされたリソース表現を互に共有し得る。例えば、Ｍ２Ｍゲートウェイデバイス上にホストされるＭ２Ｍクローラサービスインスタンスは、ゲートウェイに登録される、Ｍ２Ｍデバイスをクローリングすることができる。Ｍ２Ｍクローラサービスは、次いで、（例えば、インターフェース５０４を経由して）これらのクローリングされたリソース表現およびクローラメタデータを、Ｍ２Ｍゲートウェイが登録される、Ｍ２Ｍサーバ上にホストされるＭ２Ｍクローラサービスインスタンスに公開することができる。同様に、このＭ２Ｍクローラサービスは、これらのクローラ結果をネットワーク内の他のＭ２Ｍサーバ上にホストされる他のＭ２Ｍクローラサービスインスタンスに公開することができる。
【００８５】
例示的実施形態では、Ｍ２Ｍクローラサービス協働は、前述のサイトマップ公開機構に基づき、各Ｍ２Ｍクローラサービスインスタンスは、そのサイトマップを階層内のより高い他のＭ２Ｍクローラサービスインスタンスに公開する。そうすることによって、ネットワーク全体を通したＭ２Ｍデバイスのクローリングが、現在のウェブクローラがウェブをクローリングする様式と比較して、より協調した様式において行われることができる。例えば、クローラメタデータおよび結果を階層様式で公開することによって、Ｍ２Ｍクローラサービス協働は、クローラ結果が、階層内のより上層におけるＭ２Ｍクローラサービスインスタンスまで及び得るため、個々のＭ２Ｍデバイスがクローリングされる時間量を短縮することができる。他のＭ２Ｍクローラサービスインスタンスと比較して、階層内のより上層に常駐するＭ２Ｍクローラサービスインスタンスは、次いで、より下層のＭ２Ｍクローラサービスインスタンスの前に、クローラ要求にサービス提供するために使用されることができる。特定のＭ２Ｍクローラサービスインスタンスが、要求にサービス提供することができない（例えば、有効クローラ結果を有していない）場合、要求を階層内のより下層のＭ２Ｍクローラサービスインスタンスに転送するかどうかを決定することができる。本形態の階層Ｍ２Ｍクローラサービス協働をサポートすることによって、Ｍ２Ｍネットワーク内のクローラトラフィックの量ならびにリソースが制約されたＭ２Ｍデバイス上のクローラトラフィックの負荷が、大幅に低減されることができる。
【００８６】
ここで図１７を参照すると、ｏｎｅＭ２Ｍは、能力サービス機能（ＣＳＦ）１７０２と称される、ｏｎｅＭ２Ｍサービス層によってサポートされる能力を定義する。ｏｎｅＭ２Ｍサービス層は、能力サービスエンティティ（ＣＳＥ）１７０４と称される。一実施形態では、Ｍ２Ｍクローラサービス４００は、ｏｎｅＭ２Ｍ  ＣＳＦとしてサポートされることができ、したがって、Ｍ２ＭクローラＣＳＦ４００と称され得る。例えば、クローラＣＳＦ４００がクローリングするＭ２Ｍデバイスは、アプリケーションおよび／またはＣＳＥそれら自体をホストする、Ｍ２Ｍデバイス、ゲートウェイ、およびサーバであり得る。アプリケーションおよびＣＳＥ１７０４は、Ｍ２ＭクローラＣＳＦ４００がメタデータをクローリングおよび収集し得る、リソースをサポートすることができる。このクローリングは、ｏｎｅＭ２Ｍ定義‘Ｘ’および‘Ｙ’基準点を介して行われることができる。Ｍ２Ｍクローラサービス４００インターフェース５０２、５０６、および５０８の本明細書に説明される機能性は、ｏｎｅＭ２Ｍ‘Ｘ’基準点上の対応する機能性を定義することによって、サポートされることができる。同様に、Ｍ２Ｍクローラサービス４００インターフェース５０４の本明細書に説明される機能性は、ｏｎｅＭ２Ｍ‘Ｙ’基準点上の動作を定義することによって、サポートされることができる。
【００８７】
例えば、クローラＣＳＦ４００は、クローラ結果をネットワーク内の他のクローラＣＳＦインスタンスと共有することができる。クローラＣＳＦ４００はまた、クローラ結果をネットワーク内の他のタイプのＣＳＦならびに他の非ｏｎｅＭ２Ｍサービスおよびアプリケーション（例えば、ウェブクローラ）と共有することができる。
【００８８】
例示的実施形態によると、表２に図示されるＭ２Ｍクローラメタデータ、表３に図示されるＭ２Ｍクローラコンテキスト情報、ならびに前述のＭ２Ｍクローライベント加入およびセマンティクスは、ｏｎｅＭ２Ｍアーキテクチャ内に新しいリソースおよび属性として定義されることができる。同様に、本明細書に説明されるＭ２Ｍクローラ方法は、ｏｎｅＭ２Ｍアーキテクチャ内のＭ２ＭクローラＣＳＦプロシージャとして定義されることができる。
【００８９】
ＥＴＳＩ  Ｍ２Ｍは、サービス能力（ＳＣ）と称される、ＥＴＳＩ  Ｍ２Ｍサービス層によってサポートされる能力を定義する。ＥＴＳＩ  Ｍ２Ｍサービス層は、サービス能力層（ＳＣＬ）と称される。一実施形態では、本明細書に説明されるＭ２Ｍクローラサービス４００は、ＥＴＳＩ  Ｍ２Ｍ  ＳＣとしてサポートされる。クローラＳＣがクローリングするＭ２Ｍデバイスは、アプリケーションおよび／またはＳＣＬそれら自体をホストする、Ｍ２Ｍデバイス、ゲートウェイ、およびサーバであり得る。アプリケーションおよびＳＣＬは、Ｍ２ＭクローラＳＣがメタデータをクローリングおよび収集し得る、リソースをサポートすることができる。このクローリングは、‘ｄＩａ’、‘ｍＩａ’および‘ｍＩｄ’基準点を介して行われることができ、本明細書に説明されるＭ２Ｍクローラサービス４００のインターフェース５０２は、‘ｄＩａ’基準点上の動作を定義することによってサポートされることができ、本明細書に説明されるインターフェース５０６および５０８は、‘ｍＩａ’基準点上の動作を定義することによってサポートされることができ、本明細書に説明されるインターフェース５０４は、‘ｍＩｄ’基準点上の動作を定義することによってサポートされることができ。
【００９０】
例えば、クローラＳＣは、クローラ結果をネットワーク内の他のクローラＳＣインスタンスと共有することができる。クローラＳＣはまた、クローラ結果をネットワーク内の他のタイプのＳＣならびに他の非ＥＴＳＩ  Ｍ２Ｍサービスおよびアプリケーション（例えば、ウェブクローラ）と共有することができる。
【００９１】
表２に図示される例示的Ｍ２Ｍクローラメタデータ、表３に図示されるＭ２Ｍクローラコンテキスト情報、ならびに前述のＭ２Ｍクローライベント加入およびセマンティクスは、例示的実施形態によると、ＥＴＳＩ  Ｍ２Ｍリソース構造内の新しいリソースおよび属性として定義されることができる。同様に、本明細書に説明されるＭ２Ｍクローラ方法は、ＥＴＳＩ  Ｍ２Ｍアーキテクチャ内のＭ２ＭクローラＳＣプロシージャとして定義されることができる。例えば、一実施形態によると、Ｍ２ＭクローラＳＣは、背景タスクとして起動し、Ｍ２Ｍサービス層内に記憶されるＭ２Ｍデバイスリソースをクローリングし、クローラメタデータを生成することができる。そうすることによって、このメタデータは、順に、ウェブクローラに利用可能にされることができる（例えば、拡張サイトマップ方法を介して）。したがって、例えば、Ｍ２ＭクローラＳＣは、クローラメタデータを人々がより容易に見つけ得るウェブ検索エンジンに広告することによって、サービスをローカルＳＣＬならびにＳＣＬに登録されたＭ２Ｍデバイスに提供する。
【００９２】
前述のように、実施形態は、拡張ＩｏＴウェブブラウジングを可能にする。例えば、Ｍ２Ｍデバイスは、ウェブ検索エンジンを使用して検索されることができる。種々のクエリが、ユーザによって検索エンジンに打ち込まれ、Ｍ２Ｍデバイスに関連付けられた情報を読み出すことができる。例示的クエリとして、例えば、限定ではないが、Ｍ２Ｍデバイスのタイプ、Ｍ２Ｍデバイスの物理的場所、Ｍ２Ｍデバイスに関連付けられたコンテンツタイプ、Ｍ２Ｍデバイスに関連付けられた測定単位等に関連するクエリが挙げられる。加えて、前述の実施形態を使用して、例えば、所与のＭ２Ｍデバイスの到達可能性ステータス、Ｍ２Ｍデバイスに関連付けられたコンテンツの可用性（例えば、過去または現在）等、Ｍ２Ｍデバイスに関連付けられた種々の情報を含む、検索エンジン結果が、ユーザのコンピューティングデバイス上に表示されることができる。
【００９３】
図１８Ａは、１つ以上の開示された実施形態が実装され得る、例示的マシンツーマシン（Ｍ２Ｍ）、モノのインターネット（ＩｏＴ）、またはモノのウェブ（ＷｏＴ）通信システム１０の略図である。概して、Ｍ２Ｍ技術は、ＩｏＴ／ＷｏＴのための構成要素を提供し、任意のＭ２Ｍデバイス、Ｍ２Ｍゲートウェイ、またはＭ２Ｍサービスプラットフォームは、ＩｏＴ／ＷｏＴの構成要素ならびにＩｏＴ／ＷｏＴサービス層等であり得る。
【００９４】
図１８Ａに示されるように、Ｍ２Ｍ／ＩｏＴ／ＷｏＴ通信システム１０は、通信ネットワーク１２を含む。通信ネットワーク１２は、固定ネットワーク（例えば、イーサネット（登録商標）、ファイバ、ＩＳＤＮ、ＰＬＣ等）、または無線ネットワーク（例えば、ＷＬＡＮ、セルラー等）、もしくは異種ネットワークのネットワークであり得る。例えば、通信ネットワーク１２は、音声、データ、ビデオ、メッセージング、ブロードキャスト等のコンテンツを複数のユーザに提供する、複数のアクセスネットワークから成り得る。例えば、通信ネットワーク１２は、符号分割多重アクセス（ＣＤＭＡ）、時分割多重アクセス（ＴＤＭＡ）、周波数分割多重アクセス（ＦＤＭＡ）、直交ＦＤＭＡ（ＯＦＤＭＡ）、単一キャリアＦＤＭＡ（ＳＣ−ＦＤＭＡ）等の１つ以上のチャネルアクセス方法を採用し得る。さらに、通信ネットワーク１２は、例えば、コアネットワーク、インターネット、センサネットワーク、工業制御ネットワーク、パーソナルエリアネットワーク、融合個人ネットワーク、衛星ネットワーク、ホームネットワーク、または企業ネットワーク等の他のネットワークを備え得る。
【００９５】
図１８Ａに示されるように、Ｍ２Ｍ／ＩｏＴ／ＷｏＴ通信システム１０は、インフラストラクチャドメインおよびフィールドドメインを含み得る。インフラストラクチャドメインは、エンドツーエンドＭ２Ｍ展開のネットワーク側を指し、フィールドドメインは、通常はＭ２Ｍゲートウェイの背後にある、エリアネットワークを指す。フィールドドメインは、Ｍ２Ｍゲートウェイ１４と、端末デバイス１８とを含む。任意の数のＭ２Ｍゲートウェイデバイス１４およびＭ２Ｍ端末デバイス１８が、所望に応じてＭ２Ｍ／ＩｏＴ／ＷｏＴ通信システム１０に含まれ得ることが理解されるであろう。Ｍ２Ｍゲートウェイデバイス１４およびＭ２Ｍ端末デバイス１８の各々は、通信ネットワーク１２または直接無線リンクを介して、信号を伝送および受信するように構成される。Ｍ２Ｍゲートウェイデバイス１４は、無線Ｍ２Ｍデバイス（例えば、セルラーおよび非セルラー）ならびに固定ネットワークＭ２Ｍデバイス（例えば、ＰＬＣ）が、通信ネットワーク１２等のオペレータネットワークを通して、または直接無線リンクを通してのいずれかで、通信することを可能にする。例えば、Ｍ２Ｍデバイス１８は、データを収集し、通信ネットワーク１２または直接無線リンクを介して、データをＭ２Ｍアプリケーション２０またはＭ２Ｍデバイス１８に送信し得る。Ｍ２Ｍデバイス１８はまた、Ｍ２Ｍアプリケーション２０またはＭ２Ｍデバイス１８からデータを受信し得る。さらに、データおよび信号は、以下で説明されるように、Ｍ２Ｍサービス層２２を介して、Ｍ２Ｍアプリケーション２０に送信され、そこから受信され得る。Ｍ２Ｍデバイス１８およびゲートウェイ１４は、例えば、セルラー、ＷＬＡＮ、ＷＰＡＮ（例えば、Ｚｉｇｂｅｅ（登録商標）、６ＬｏＷＰＡＮ、Ｂｌｕｅｔｏｏｔｈ（登録商標））、直接無線リンク、および有線を含む、種々のネットワークを介して通信し得る。
【００９６】
図１８Ｂを参照すると、フィールドドメイン内の図示したＭ２Ｍサービス層２２は、Ｍ２Ｍアプリケーション２０、Ｍ２Ｍゲートウェイデバイス１４、Ｍ２Ｍ端末デバイス１８、および通信ネットワーク１２のためのサービスを提供する。Ｍ２Ｍサービス層２２は、所望に応じて、任意の数のＭ２Ｍアプリケーション、Ｍ２Ｍゲートウェイデバイス１４、Ｍ２Ｍ端末デバイス１８、および通信ネットワーク１２と通信し得ることが理解されるであろう。Ｍ２Ｍサービス層２２は、１つ以上のサーバ、コンピュータ等によって実装され得る。Ｍ２Ｍサービス層２２は、Ｍ２Ｍ端末デバイス１８、Ｍ２Ｍゲートウェイデバイス１４、およびＭ２Ｍアプリケーション２０に適用される、サービス能力を提供する。Ｍ２Ｍサービス層２２の機能は、例えば、ウェブサーバとして、セルラーコアネットワークで、クラウドで等、種々の方法で実装され得る。
【００９７】
図示したＭ２Ｍサービス層２２と同様に、インフラストラクチャドメイン内にＭ２Ｍサービス層２２’が存在する。Ｍ２Ｍサービス層２２’は、インフラストラクチャドメイン内のＭ２Ｍアプリケーション２０’および下層通信ネットワーク１２’のためのサービスを提供する。Ｍ２Ｍサービス層２２’はまた、フィールドドメイン内のＭ２Ｍゲートウェイデバイス１４およびＭ２Ｍ端末デバイス１８のためのサービスも提供する。Ｍ２Ｍサービス層２２’は、任意の数のＭ２Ｍアプリケーション、Ｍ２Ｍゲートウェイデバイス、およびＭ２Ｍ端末デバイスと通信し得ることが理解されるであろう。Ｍ２Ｍサービス層２２’は、異なるサービスプロバイダによるサービス層と相互作用し得る。Ｍ２Ｍサービス層２２’は、１つ以上のサーバ、コンピュータ、仮想マシン（例えば、クラウド／計算／記憶ファーム等）等によって実装され得る。
【００９８】
また、図１８Ｂを参照すると、Ｍ２Ｍサービス層２２および２２’は、多様なアプリケーションおよび垂直線が活用することができる、サービス配布能力のコアセットを提供する。これらのサービス能力は、Ｍ２Ｍアプリケーション２０および２０’がデバイスと相互作用し、データ収集、データ分析、デバイス管理、セキュリティ、課金、サービス／デバイス発見等の機能を果たすことを可能にする。本質的に、これらのサービス能力は、これらの機能性を実装する負担をアプリケーションから取り除き、したがって、アプリケーション開発を単純化し、市場に出す費用および時間を削減する。サービス層２２および２２’はまた、Ｍ２Ｍアプリケーション２０および２０’が、サービス層２２および２２’が提供するサービスと関連して、種々のネットワーク１２および１２’を通して通信することも可能にする。
【００９９】
いくつかの実施形態では、Ｍ２Ｍアプリケーション２０および２０’は、本明細書に論じられるように、セッション証明書を使用して通信する所望のアプリケーションを含み得る。Ｍ２Ｍアプリケーション２０および２０’は、限定ではないが、輸送、健康およびウェルネス、コネクテッドホーム、エネルギー管理、資産追跡、ならびにセキュリティおよび監視等、種々の産業におけるアプリケーションを含み得る。前述のように、デバイス、ゲートウェイ、および他のシステムのサーバにわたり起動するＭ２Ｍサービス層は、例えば、データ収集、デバイス管理、セキュリティ、課金、場所追跡／ジオフェンシング、デバイス／サービスの発見、および従来のシステムの統合等の機能をサポートし、サービスとしてのこれらの機能に、Ｍ２Ｍアプリケーション２０および２０’を提供する。
【０１００】
本願のＭ２Ｍクローリングサービス４００は、任意のサービス層の一部として実装され得る。サービス層は、一組のアプリケーションプログラミングインターフェース（ＡＰＩ）および下層ネットワーキングインターフェースを通して付加価値サービス能力をサポートする、ソフトウェアミドルウェア層である。Ｍ２Ｍエンティティ（例えば、ハードウェアおよびソフトウェアの組み合わせによって実装され得る、デバイス、ゲートウェイ、またはサービス／プラットフォーム等のＭ２Ｍ機能的エンティティ）は、アプリケーションまたはサービスを提供し得る。ＥＴＳＩ  Ｍ２ＭおよびｏｎｅＭ２Ｍは両方とも、Ｅ２Ｅ  Ｍ２Ｍサービス層セッション管理および本発明の他のものを含み得る、サービス層を使用する。ＥＴＳＩ  Ｍ２Ｍのサービス層は、サービス能力層（ＳＣＬ）と称される。ＳＣＬは、Ｍ２Ｍデバイス（デバイスＳＣＬ（ＤＳＣＬ）と称される）、ゲートウェイ（ゲートウェイＳＣＬ（ＧＳＣＬ）と称される）、および／またはネットワークノード（ネットワークＳＣＬ（ＮＳＣＬ）と称される）内に実装され得る。ｏｎｅＭ２Ｍサービス層は、一組の共通サービス機能（ＣＳＦ）（すなわち、サービス能力）をサポートする。一組の１つ以上の特定のタイプのＣＳＦのインスタンス化は、共通サービスエンティティ（ＣＳＥ）と称され、異なるタイプのネットワークノード（例えば、インフラストラクチャノード、ミドルノード、特定用途向けノード）上にホストされ得る。さらに、Ｅ２Ｅ  Ｍ２Ｍサービス層セッション管理および本願の他のものは、本願の中でもとりわけ、セッションエンドポイント、セッションマネージャ、およびセッション証明書機能等、サービスにアクセスするためにサービス指向アーキテクチャ（ＳＯＡ）および／またはリソース指向アーキテクチャ（ＲＯＡ）を使用する、Ｍ２Ｍネットワークの一部として実装されることができる。
【０１０１】
図１８Ｃは、例えば、Ｍ２Ｍ端末デバイス１８またはＭ２Ｍゲートウェイデバイス１４等の例示的Ｍ２Ｍデバイス３０の系統図である。図１８Ｃに示されるように、Ｍ２Ｍデバイス３０は、プロセッサ３２と、送受信機３４と、伝送／受信要素３６と、スピーカ／マイクロホン３８と、キーパッド４０と、ディスプレイ／タッチパッド４２と、非取り外し可能なメモリ４４と、取り外し可能なメモリ４６と、電源４８と、全地球測位システム（ＧＰＳ）チップセット５０と、他の周辺機器５２とを含み得る。Ｍ２Ｍデバイス３０は、実施形態と一致したままで、先述の要素の任意の副次的組み合わせを含み得ることが理解されるであろう。本デバイスは、Ｍ２Ｍクローリングサービス４００を含む、開示されるシステムおよび方法を使用するデバイスであり得る。
【０１０２】
プロセッサ３２は、汎用プロセッサ、特殊用途プロセッサ、従来のプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、複数のマイクロプロセッサ、ＤＳＰコアと関連する１つ以上のマイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）回路、任意の他のタイプの集積回路（ＩＣ）、状態マシン等であり得る。プロセッサ３２は、信号符号化、データ処理、電力制御、入出力処理、および／またはＭ２Ｍデバイス３０が無線環境で動作することを可能にする任意の他の機能性を果たし得る。プロセッサ３２は、伝送／受信要素３６に連結され得る、送受信機３４に連結され得る。図１８Ｃは、プロセッサ３２および送受信機３４を別個の構成要素として描写するが、プロセッサ３２および送受信機３４は、電子パッケージまたはチップにともに組み込まれ得ることが理解されるであろう。プロセッサ３２は、アプリケーション層プログラム（例えば、ブラウザ）および／または無線アクセス層（ＲＡＮ）プログラムならびに／もしくは通信を行い得る。プロセッサ３２は、例えば、アクセス層および／またはアプリケーション層等で、認証、セキュリティキー一致、および／または暗号化動作等のセキュリティ動作を行い得る。
【０１０３】
伝送／受信要素３６は、信号をＭ２Ｍサービスプラットフォーム２２に伝送し、またはＭ２Ｍサービスプラットフォーム２２から信号を受信するように構成され得る。例えば、実施形態では、伝送／受信要素３６は、ＲＦ信号を伝送および／または受信するように構成されるアンテナであり得る。伝送／受信要素３６は、ＷＬＡＮ、ＷＰＡＮ、セルラー等の種々のネットワークおよびエアインターフェースをサポートし得る。実施形態では、伝送／受信要素３６は、例えば、ＩＲ、ＵＶ、または可視光信号を伝送および／または受信するように構成されるエミッタ／検出器であり得る。さらに別の実施形態では、伝送／受信要素３６は、ＲＦおよび光信号の両方を伝送および受信するように構成され得る。伝送／受信要素３６は、無線または有線信号の任意の組み合わせを伝送および／または受信するように構成され得ることが理解されるであろう。
【０１０４】
加えて、伝送／受信要素３６は、単一の要素として図１８Ｃで描写されているが、Ｍ２Ｍデバイス３０は、任意の数の伝送／受信要素３６を含み得る。より具体的には、Ｍ２Ｍデバイス３０は、ＭＩＭＯ技術を採用し得る。したがって、実施形態では、Ｍ２Ｍデバイス３０は、無線信号を伝送および受信するための２つまたはそれを上回る伝送／受信要素３６（例えば、複数のアンテナ）を含み得る。
【０１０５】
送受信機３４は、伝送／受信要素３６によって伝送される信号を変調するように、および伝送／受信要素３６によって受信される信号を復調するように構成され得る。上記のように、Ｍ２Ｍデバイス３０は、マルチモード能力を有し得る。したがって、送受信機３４は、Ｍ２Ｍデバイス３０が、例えば、ＵＴＲＡおよびＩＥＥＥ８０２．１１等の複数のＲＡＴを介して通信することを可能にするための複数の送受信機を含み得る。
【０１０６】
プロセッサ３２は、非取り外し可能なメモリ４４および／または取り外し可能なメモリ４６等の任意のタイプの好適なメモリから情報にアクセスし、そこにデータを記憶し得る。非取り外し可能なメモリ４４は、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、ハードディスク、または任意の他のタイプのメモリ記憶デバイスを含み得る。取り外し可能なメモリ４６は、加入者識別モジュール（ＳＩＭ）カード、メモリスティック、セキュアデジタル（ＳＤ）メモリカード等を含み得る。他の実施形態では、プロセッサ３２は、サーバまたはホームコンピュータ上等のＭ２Ｍデバイス３０上に物理的に位置しないメモリから情報にアクセスし、そこにデータを記憶し得る。プロセッサ３２は、本明細書に説明される実施形態のうちのいくつかにおけるＭ２Ｍクローリングサービス４００（例えば、クローリング、公開、協働）が成功または非成功であるかどうかに応答して、ディスプレイまたはインジケータ４２上の照明パターン、画像、または色を制御するか、または別様に、Ｍ２Ｍクローリングサービス４００性能のステータスを示すように構成され得る。別の実施例では、ディスプレイは、本明細書に説明される、クローリングするイベントに関する情報を示し得る。ディスプレイ上に示され得る、グラフィカルユーザインターフェースは、ＡＰＩの上に層化され、ユーザが、本明細書に説明される下層Ｍ２Ｍクローリングサービス４００を介して、Ｍ２Ｍデバイスのウェブ検索を双方向に確立および管理することを可能にし得る。例えば、所与のＭ２Ｍデバイスの到達可能性ステータス、Ｍ２Ｍデバイスに関連付けられたコンテンツの可用性（例えば、過去または現在）等、Ｍ２Ｍデバイスに関連付けられた種々の情報を含む、検索エンジン結果が、例えば、ユーザのコンピューティングデバイス上に表示されることができる。
【０１０７】
プロセッサ３２は、電源４８から電力を受け取り得、Ｍ２Ｍデバイス３０内の他の構成要素への電力を配信および／または制御するように構成され得る。電源４８は、Ｍ２Ｍデバイス３０に電力供給するための任意の好適なデバイスであり得る。例えば、電源４８は、１つ以上の乾電池バッテリ（例えば、ニッケルカドミウム（ＮｉＣｄ）、ニッケル亜鉛（ＮｉＺｎ）、ニッケル水素（ＮｉＭＨ）、リチウムイオン（Ｌｉ−ｉｏｎ）等）、太陽電池、燃料電池等を含み得る。
【０１０８】
プロセッサ３２はまた、Ｍ２Ｍデバイス３０の現在の場所に関する場所情報（例えば、経度および緯度）を提供するように構成される、ＧＰＳチップセット５０に連結され得る。Ｍ２Ｍデバイス３０は、実施形態と一致したままで、任意の公的な場所決定方法を介して場所情報を獲得し得ることが理解されるであろう。
【０１０９】
プロセッサ３２はさらに、追加の特徴、機能性、および／または有線もしくは無線接続を提供する、１つ以上のソフトウェアおよび／またはハードウェアモジュールを含み得る、他の周辺機器５２に連結され得る。例えば、周辺機器５２は、加速度計、ｅ−コンパス、衛星送受信機、センサ、デジタルカメラ（写真またはビデオ用）、ユニバーサルシリアルバス（ＵＳＢ）ポート、振動デバイス、テレビ送受信機、ハンズフリーヘッドセット、Ｂｌｕｅｔｏｏｔｈ（登録商標）モジュール、周波数変調（ＦＭ）ラジオユニット、デジタル音楽プレーヤ、メディアプレーヤ、ビデオゲームプレーヤモジュール、インターネットブラウザ等を含み得る。
【０１１０】
図１８Ｄは、例えば、図１８Ａおよび１８ＢのＭ２Ｍサービスプラットフォーム２２が実装され得る、例示的コンピュータシステム９０のブロック図である。コンピュータシステム９０は、コンピュータまたはサーバを備え得、主に、ソフトウェアの形態であり得るコンピュータ読み取り可能な命令によって制御され得、どこでも、またはどのような手段を用いても、そのようなソフトウェアが記憶もしくはアクセスされる。そのようなコンピュータ読み取り可能な命令は、コンピュータシステム９０を起動させるように、中央処理装置（ＣＰＵ）９１内で実行され得る。多くの既知のワークステーション、サーバ、および周辺コンピュータでは、中央処理装置９１は、マイクロプロセッサと呼ばれる単一チップＣＰＵによって実装される。他のマシンでは、中央処理装置９１は、複数のプロセッサを備え得る。コプロセッサ８１は、追加の機能を果たすか、またはＣＰＵ９１を支援する、主要ＣＰＵ９１とは明確に異なる、随意的なプロセッサである。ＣＰＵ９１および／またはコプロセッサ８１は、セッション証明書の受信またはセッション証明書に基づく認証等、Ｅ２Ｅ  Ｍ２Ｍサービス層セッションのための開示されるシステムおよび方法に関連するデータを受信、生成、および処理し得る。
【０１１１】
動作時、ＣＰＵ９１は、命令をフェッチ、復号、および実行し、コンピュータの主要データ転送パスであるシステムバス８０を介して、情報を他のリソースへ、およびそこから転送する。そのようなシステムバスは、コンピュータシステム９０内の構成要素を接続し、データ交換のための媒体を定義する。システムバス８０は、典型的には、データを送信するためのデータライン、アドレスを送信するためのアドレスライン、ならびに割り込みを送信するため、およびシステムバスを動作するための制御ラインを含む。そのようなシステムバス８０の実施例は、ＰＣＩ（周辺構成要素相互接続）バスである。
【０１１２】
システムバス８０に連結されるメモリデバイスは、ランダムアクセスメモリ（ＲＡＭ）８２および読み取り専用メモリ（ＲＯＭ）９３を含む。そのようなメモリは、情報が記憶されて取り出されることを可能にする回路を含む。ＲＯＭ９３は、概して、容易に修正することができない、記憶されたデータを含む。ＲＡＭ８２に記憶されたデータは、ＣＰＵ９１または他のハードウェアデバイスによって読み取られ、または変化され得る。ＲＡＭ８２および／またはＲＯＭ９３へのアクセスは、メモリコントローラ９２によって制御され得る。メモリコントローラ９２は、命令が実行されると、仮想アドレスを物理的アドレスに変換する、アドレス変換機能を提供し得る。メモリコントローラ９２はまた、システム内のプロセスを単離し、ユーザプロセスからシステムプロセスを単離する、メモリ保護機能を提供し得る。したがって、第１のモードで作動するプログラムは、独自のプロセス仮想アドレス空間によってマップされるメモリのみにアクセスすることができ、プロセス間のメモリ共有が設定されていない限り、別のプロセスの仮想アドレス空間内のメモリにアクセスすることができない。
【０１１３】
加えて、コンピュータシステム９０は、ＣＰＵ９１からプリンタ９４、キーボード８４、マウス９５、およびディスクドライブ８５等の周辺機器に命令を伝達する責任がある、周辺機器コントローラ８３を含み得る。
【０１１４】
ディスプレイコントローラ９６によって制御されるディスプレイ８６は、コンピュータシステム９０によって生成される視覚出力を表示するために使用される。そのような視覚出力は、テキスト、グラフィックス、動画グラフィックス、およびビデオを含み得る。ディスプレイ８６は、ＣＲＴベースのビデオディスプレイ、ＬＣＤベースのフラットパネルディスプレイ、ガスプラズマベースのフラットパネルディスプレイ、またはタッチパネルを伴って実装され得る。ディスプレイコントローラ９６は、ディスプレイ８６に送信されるビデオ信号を生成するために必要とされる、電子構成要素を含む。
【０１１５】
さらに、コンピュータシステム９０は、図１８Ａおよび１８Ｂのネットワーク１２等の外部通信ネットワークにコンピュータシステム９０を接続するために使用され得る、ネットワークアダプタ９７を含み得る。
【０１１６】
本明細書で説明されるシステム、方法、およびプロセスのうちのいずれかまたは全ては、命令が、コンピュータ、サーバ、Ｍ２Ｍ端末デバイス、Ｍ２Ｍゲートウェイデバイス等のマシンによって実行されたときに、本明細書で説明されるシステム、方法、およびプロセスを行うおよび／または実装される、コンピュータ読み取り可能な記憶媒体上に記憶されたコンピュータ実行可能命令（すなわち、プログラムコード）の形態で具現化され得ることが理解される。具体的には、上記で説明されるステップ、動作、または機能のうちのいずれかは、そのようなコンピュータ実行可能命令の形態で実装され得る。コンピュータ読み取り可能な記憶媒体は、情報の記憶のための任意の方法または技術で実装される、揮発性および不揮発性、取り外し可能なおよび非取り外し可能な媒体の両方を含むが、そのようなコンピュータ読み取り可能な記憶媒体は、信号を含まない。コンピュータ読み取り可能な記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは所望の情報を記憶するために使用することができ、コンピュータによってアクセスすることができる任意の他の物理的媒体を含むが、それらに限定されない。
【０１１７】
図で図示されるような本開示の主題の好ましい実施形態を説明する際に、明確にするために、特定の用語が採用される。しかしながら、請求された主題は、そのように選択された特定の用語に限定されることを目的としておらず、各特定の要素は、類似目的を達成するように同様に動作する、全ての技術的均等物を含むことを理解されたい。
【０１１８】
本明細書は、最良の様態を含む、本発明を開示するために、また、当業者が、任意のデバイスまたはシステムを作製して使用すること、および任意の組み込まれた方法を行うことを含む、本発明を実践することを可能にするために、実施例を使用する。本発明の特許性のある範囲は、請求項によって定義され、当業者に想起される他の実施例を含み得る。そのような他の実施例は、請求項の文字通りの言葉とは異ならない構造要素を有する場合に、または請求項の文字通りの言葉とのごくわずかな差異を伴う同等の構造要素を含む場合に、請求項の範囲内であることを目的としている。
【図１】
0006463768.tif 000007
【図２】
0006463768.tif 000008
【図３】
0006463768.tif 000009
【図４】
0006463768.tif 000010
【図５】
0006463768.tif 000011
【図６】
0006463768.tif 000012
【図７】
0006463768.tif 000013
【図８】
0006463768.tif 000014
【図９】
0006463768.tif 000015
【図１０】
0006463768.tif 000016
【図１１】
0006463768.tif 000017
【図１２】
0006463768.tif 000018
【図１３】
0006463768.tif 000019
【図１４】
0006463768.tif 000020
【図１５】
0006463768.tif 000021
【図１６】
0006463768.tif 000022
【図１７】
0006463768.tif 000023
【図１８Ａ】
0006463768.tif 000024
【図１８Ｂ】
0006463768.tif 000025
【図１８Ｃ】
0006463768.tif 000026
【図１８Ｄ】
0006463768.tif 000027