(57)【要約】【課題】プロキシサーバを適当に配置し、ネットワークの使用効率を向上させる。【解決手段】情報保持装置及び情報参照要求装置にネットワークを介して接続されたノード装置は、第１の情報参照要求装置からの情報保持装置が保持するコンテンツのコンテンツ識別情報及び第１の情報参照要求装置の識別情報を含む要求による情報検索を通じて取得された、コンテンツ識別情報、第１の情報参照要求装置の識別情報、及び情報保持装置の識別情報を記憶する記憶部と、記憶部に記憶された情報に基づく所定の条件が満たされた場合に、情報保持装置からコンテンツを取得し、情報保持装置に代わって、コンテンツ識別情報を含む要求に応答する処理部と、を備える。【選択図】図１３
2015115014.tif 000002
【特許請求の範囲】
【請求項１】
情報保持装置及び情報参照要求装置にネットワークを介して接続されたノード装置であって、
第１の情報参照要求装置からの前記情報保持装置が保持するコンテンツのコンテンツ識別情報及び前記第１の情報参照要求装置の識別情報を含む要求による情報検索を通じて取得された、前記コンテンツ識別情報、前記第１の情報参照要求装置の識別情報、及び前記情報保持装置の識別情報を記憶する記憶部と、
前記記憶部に記憶された情報に基づく所定の条件が満たされた場合に、前記情報保持装置から前記コンテンツを取得し、前記情報保持装置に代わって、前記コンテンツ識別情報を含む要求に応答する処理部と、
を備えるノード装置。
【請求項２】
前記コンテンツを保持する第２の記憶部をさらに備え、
前記処理部は、前記所定の条件が満たされた場合に、前記情報保持装置から取得した前記コンテンツを前記第２の記憶部に格納し、前記第２の記憶部に格納されるコンテンツを更新する更新部を起動する、
請求項１に記載のノード装置。
【請求項３】
前記処理部は、前記所定の条件として、前記第１の情報参照要求装置とは異なる第２の情報参照要求装置から前記コンテンツ識別情報を含むコンテンツの取得要求を受信した場合に、前記情報保持装置から前記コンテンツを取得し、前記第２の情報参照要求装置からの前記取得要求に応答する、
請求項１又は２に記載のノード装置。
【請求項４】
前記第２の情報参照要求装置から前記コンテンツ識別情報を含む検索要求を受信した場合に、自装置を前記第２の情報参照要求装置に前記コンテンツの情報保持装置とする通知を送信する検索部、
をさらに備える請求項３に記載のノード装置。
【請求項５】
前記処理部は、前記第２の記憶部に前記コンテンツを格納した場合に、自装置を前記コンテンツの情報保持装置とする更新通知を前記第１の情報参照要求装置に送信する、
請求項４に記載のノード装置。
【請求項６】
前記処理部は、前記コンテンツの取得要求に制御情報が含まれる場合には、前記更新部を前記制御情報に従って起動する、
請求項２から５のいずれか一項に記載のノード装置。
【請求項７】
情報保持装置、情報参照要求装置、及び前記情報保持装置と前記情報参照要求装置とにネットワークを介して接続するノード装置を含む情報処理システムであって、
前記ノード装置は、
第１の情報参照要求装置からの前記情報保持装置が保持するコンテンツのコンテンツ識別情報及び前記第１の情報参照要求装置の識別情報を含む要求による情報検索を通じて取得された、前記コンテンツ識別情報、前記第１の情報参照要求装置の識別情報、及び前記情報保持装置の識別情報を記憶する記憶部と、
前記記憶部に記憶された情報に基づく所定の条件が満たされた場合に、前記情報保持装置から前記コンテンツを取得し、前記情報保持装置に代わって、前記コンテンツ識別情報を含む要求に応答する処理部と、
を備える情報処理システム。
【請求項８】
情報保持装置及び情報参照要求装置にネットワークを介して接続されたノード装置が、
第１の情報参照要求装置からの前記情報保持装置が保持するコンテンツのコンテンツ識別情報及び前記第１の情報参照要求装置の識別情報を含む要求による情報検索を通じて取得された、前記コンテンツ識別情報、前記第１の情報参照要求装置の識別情報、及び前記情報保持装置の識別情報を記憶部に記憶し、
前記記憶部に記憶された情報に基づく所定の条件が満たされた場合に、前記情報保持装置から前記コンテンツを取得し、前記情報保持装置に代わって、前記コンテンツ識別情報を含む要求に応答する、
情報処理方法。
【請求項９】
情報保持装置及び情報参照要求装置にネットワークを介して接続されたノード装置に、
第１の情報参照要求装置からの前記情報保持装置が保持するコンテンツのコンテンツ識別情報及び前記第１の情報参照要求装置の識別情報を含む要求による情報検索を通じて取得された、前記コンテンツ識別情報、前記第１の情報参照要求装置の識別情報、及び前記情報保持装置の識別情報を記憶部に記憶させ、
前記記憶部に記憶された情報に基づく所定の条件が満たされた場合に、前記情報保持装置から前記コンテンツを取得し、前記情報保持装置に代わって、前記コンテンツ識別情報を含む要求に応答させる、
ための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ノード装置、情報処理システム、情報処理方法、および情報処理プログラムに関する。
【背景技術】
【０００２】
ＷＥＢサービスと検索エンジンの普及により、近年、ネットワークは、単なる通信手段としてではなく、多様な情報が蓄積された巨大なデータベースとしても利用されている。ネットワークに蓄積される情報には、例えば、テキスト情報，静止画，オーディオ,動画
等があり、蓄積される情報量は年々増している。
【０００３】
また、Ｍ２Ｍ（Machine-to-Machine）やＩＯＴ（Internet of Things）といったサービスでは、ネットワークに接続された機器同士が相互にリアルタイムに情報を流通させる。Ｍ２ＭやＩＯＴ等のサービスを提供するネットワークでは、全ての通信ピアによって双方向且つフラットに情報の交換が行われる。そのため、ネットワークのトラフィック量は、増え続けている。
【０００４】
図１は、情報参照システムの一例を示す図である。図１に示される情報参照システムＰ１００は、１つの情報生成元装置Ｐ９から、６台の情報参照装置Ｐ１〜Ｐ６が情報を参照するシステムである。情報参照装置Ｐ１〜Ｐ６は、例えば、ＤＮＳ（Domain Name Server）で情報生成元装置Ｐ９を特定し、個々に情報生成元装置Ｐ９とコネクションを張り、個々にアプリケーションインタフェースとプロトコルで通信を行う。したがって、図１に示される情報参照システムＰ１００では、６つのコネクションが張られている。この場合、情報生成元装置Ｐ９に近付くにつれ、トラフィックが輻輳する可能性が高い。
【０００５】
図２は、情報参照システムの一例である。図２の情報参照システムＰ２００は、図１に示される情報参照システムＰ１００と同様に、１つの情報生成元装置Ｐ９から、６台の情報参照装置Ｐ１〜Ｐ６が情報を参照するシステムである。
【０００６】
図２に示される情報参照システムＰ２００では、各情報参照装置の近くにプロキシサーバＰ１１〜Ｐ１３が配置されている。例えば、プロキシサーバＰ１１は、情報参照装置Ｐ１のプロキシ処理として情報生成元装置Ｐ９から参照対象の情報を取得し、該参照対象の情報をキャッシュに保持する。その後、他の情報参照装置Ｐ２から該参照対象の情報の参照を受け付けた場合には、プロキシサーバ１１が情報参照装置Ｐ２に応答する。また、他のプロキシサーバＰ１２，Ｐ１３は、配下の情報参照装置から情報生成元装置Ｐ９への情報要求を受信した場合には、情報生成元装置Ｐ９からではなく、プロキシサーバＰ１１から参照対象の情報を取得することが可能である。
【０００７】
したがって、プロキシを情報参照装置の近くに配置することによって、トラフィックを分散することができ、輻輳を発生することを低減することができる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平０３−２７８１６０号公報
【特許文献２】特表２００１−５１２６０４号公報
【特許文献３】特開２００６−１３５８１１号公報
【特許文献４】特開平１１−６８７４４号公報
【特許文献５】特開２０１０−１６０６１０号公報
【特許文献６】特開２００９−２７７２３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、Ｍ２ＭやＩＯＴのシステムのように、全ての通信ピアによって双方向且つフラットに情報の交換が行われるシステムでは、以下のような問題があった。
【００１０】
全ての通信ピアによって双方向且つフラットに情報の交換が行われるシステムでは、情報の参照状況が動的に変化し、情報要求の発生やトラフィックが集中する箇所を予測することが困難である。そのため、あらかじめ決められた場所にプロキシサーバ又はキャッシュサーバを配置しても、トラフィックの分散等の期待する効果が得られない可能性がある。
【００１１】
また、Ｍ２ＭやＩＯＴのシステムには、例えば、情報生成元装置としての温度センサが生成する温度情報を取り扱うシステムがあり、Ｍ２ＭやＩＯＴのシステムでは、参照対象のコンテンツの内容が動的に変化することが想定される。コンテンツの内容が動的に変化する場合には、該コンテンツの内容の更新に伴う情報生成元装置からプロキシサーバ又はキャッシュサーバに向けてキャッシュの更新が発生する。しかしながら、上述のように、Ｍ２ＭやＩＯＴのシステムではトラフィックを予想することが困難なため、プロキシサーバ又はキャッシュサーバの配置を決定することはさらに困難であった。
【００１２】
ネットワークを効率よく使用可能なノード装置，情報処理システム，情報処理方法，および情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
一側面によれば、本発明は、情報保持装置及び情報参照要求装置にネットワークを介して接続されたノード装置であって、第１の情報参照要求装置からの前記情報保持装置が保持するコンテンツのコンテンツ識別情報及び前記第１の情報参照要求装置の識別情報を含む要求による情報検索を通じて取得された、前記コンテンツ識別情報、前記第１の情報参照要求装置の識別情報、及び前記情報保持装置の識別情報を記憶する記憶部と、前記記憶部に記憶された情報に基づく所定の条件が満たされた場合に、前記情報保持装置から前記コンテンツを取得し、前記情報保持装置に代わって、前記コンテンツ識別情報を含む要求に応答する処理部と、
を備えるノード装置である。
【００１４】
本発明の他の態様の一つは、情報保持装置、情報参照要求装置、上述のノード装置を含む情報処理システムである。また、本発明の他の態様は、ノード装置が上述した処理を実行する情報処理方法である。また、本発明の他の態様は、コンピュータを上述したノード装置として機能させるプログラム、及び当該プログラムを記録したコンピュータ読み取り可能であり非一時的な記録媒体を含むことができる。コンピュータ等が読み取り可能な一時的でない記録媒体には、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。
【発明の効果】
【００１５】
開示のノード装置、情報処理システム、情報処理方法、及び情報処理プログラムによれば、プロキシサーバを適当な位置に配置し、ネットワークの使用効率を向上させることができる。
【図面の簡単な説明】
【００１６】
【図１】情報参照システムの一例を示す図である。
【図２】情報参照システムの一例を示す図である。
【図３】第１実施形態に係る情報処理システムにおいて情報参照に係る一連の処理の一例を示す図である。
【図４】第１実施形態に係る情報処理システムにおいて情報参照に係る一連の処理の一例を示す図である。
【図５】第１実施形態に係る情報処理システムにおいて情報参照に係る一連の処理の一例を示す図である。
【図６】第１実施形態に係る情報処理システムにおいて情報参照に係る一連の処理の一例を示す図である。
【図７】第１実施形態に係る情報処理システムにおいて情報参照に係る一連の処理の一例を示す図である。
【図８】第１実施形態に係る情報処理システムにおいて情報参照に係る一連の処理の一例を示す図である。
【図９】情報処理システムの構成例を示す図である。
【図１０】ＴＣＰのデータグラムのフォーマットを示す図である。
【図１１】メッセージの種類と設定情報の一部の一例を示す図である。
【図１２】ＧＷ装置（ＤＰ−ＧＷ）のハードウェア構成の一例を示す図である。
【図１３】第１実施形態におけるＧＷ装置（ＤＰ−ＧＷ）の機能構成の一例を示す図である。
【図１４】処理保留リストの一例を示す図である。
【図１５】プロキシ情報の一例を示す図である。
【図１６】プロキシ管理リストの一例を示す図である。
【図１７】クエリリストの一例を示す図である。
【図１８】リンク情報の一例を示す図である。
【図１９】ＩＤキャッシュの一例を示す図である。
【図２０】情報処理端末のハードウェア構成の一例を示す図である。
【図２１】情報処理端末またはＧＷ装置（Ｍ２Ｍ−ＧＷ）の機能構成の一例を示す図である。
【図２２】命名規則リストの一例を示す図である。
【図２３】情報処理モジュールの通信制御部の処理のフローチャートの一例である。
【図２４】情報処理モジュールの情報参照プロキシ部の処理のフローチャートの一例である。
【図２５】情報参照プロキシ部のプロキシ実行処理のフローチャートの一例である。
【図２６Ａ】情報処理モジュールの情報検索部の処理のフローチャートの一例である。
【図２６Ｂ】情報処理モジュールの情報検索部の処理のフローチャートの一例である。
【図２６Ｃ】情報処理モジュールの情報検索部の処理のフローチャートの一例である。
【図２７】情報参照モジュールの情報参照部の処理のフローチャートの一例である。
【図２８】情報処理システムの処理シーケンスの一例である。
【図２９】情報処理システムの処理シーケンスの一例である。
【図３０】情報処理システムの処理シーケンスの一例である。
【発明を実施するための形態】
【００１７】
以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
【００１８】
＜第１実施形態＞
＜情報処理システムにおける処理の流れ＞
図３，図４，図５，図６，図７，図８は、第１実施形態に係る情報処理システムにおいて情報参照に係る一連の処理の一例を示す図である。図３〜図８に示される情報処理システムは、いずれも同一のシステムを示しており、情報生成元装置と、複数の情報参照装置と、複数の中継装置と、を含む。図中では、各装置には、ＩＰアドレスの下位１６ケタの１０進数表記の値が付されており、図３〜図８の説明においては、各装置は、ＩＰアドレスの下位１６ケタの１０進数表記の値で識別される。
【００１９】
図３は、コンテンツの登録と検索の処理の一例を示す図である。（１）例えば、情報生成元装置１０．２は、温度センサであり“ｔｅｍｐＬｏｃＡ”という名前のコンテンツをコンテンツ公開用のキャッシュに登録する。“ｔｅｍｐＬｏｃＡ”という名前のコンテンツは温度の情報であり、その値は不定である。
【００２０】
（２）次に、情報参照装置４０．３が“ｔｅｍｐＬｏｃＡ”という名前のコンテンツの検索要求であるＱＵＥＲＹメッセージを送信する。ＱＵＥＲＹメッセージは、例えば、ブロードキャストで情報参照装置４０．３から送信される。
【００２１】
（３）ＱＵＥＲＹメッセージは、まず、情報参照装置４０．３が接続するＮＷの中継装置４０．１に届く。その後、検索対象のコンテンツ“ｔｅｍｐＬｏｃＡ”を保持する装置（情報生成元装置１０．２）に到達するまで、ＱＵＥＲＹメッセージは、隣接する中継装置間で中継される。
【００２２】
なお各中継装置は、ＱＵＥＲＹメッセージによって要求されるコンテンツ“ｔｅｍｐＬｏｃＡ”を保持する装置の所在（ＩＰアドレス）について、この時点では知らない。そのため、ＱＵＥＲＹメッセージは、隣接するすべての装置に中継される。ＱＵＥＲＹメッセージは、中継される度に、各装置によって宛先ＩＰアドレス及び送信元ＩＰアドレスが書き換えられる。ＱＵＥＲＹメッセージの宛先ＩＰアドレスは、隣接の装置のＩＰアドレスに、送信元ＩＰアドレスは自装置のＩＰアドレスに書き換えられる。例えば、中継装置４０．１から隣接の中継装置３０．１に中継される場合には、ＱＵＥＲＹメッセージの送信先ＩＰアドレスは中継装置３０．１のＩＰアドレスに、送信元ＩＰアドレスは中継装置４０．１のＩＰアドレスに書き換えられる。
【００２３】
図４は、クエリリストの生成処理の一例を示す図である。クエリリストは各装置に備えられており、各装置が受信、送信、または中継したＱＵＥＲＹメッセージの情報が格納される。クエリリストには、例えば、クエリ対象コンテンツ、クエリＩＤ、要求元装置のＩＰアドレス、送信先のＩＰアドレス、情報保持装置のＩＰアドレスが格納される。
【００２４】
クエリリストのクエリ対象コンテンツ、クエリＩＤ、要求元装置のＩＰアドレス、送信先のＩＰアドレスは、ＱＵＥＲＹメッセージを中継する際に取得され、クエリリストに格納される。すなわち、各装置において、ＱＵＥＲＹメッセージを受信または中継した時点では、クエリリスト内の情報保持装置のＩＰアドレスは空である。
【００２５】
（４）情報生成元装置１０．２にＱＵＥＲＹメッセージが到達すると、情報生成元装置１０．２は、ＱＵＥＲＹメッセージによって要求されているコンテンツ“ｔｅｍｐＬｏｃＡ”を持っていること通知するＮＯＴＩＦＹメッセージを送信する。ＮＯＴＩＦＹメッセージには、ＱＵＥＲＹメッセージによって要求されたコンテンツ“ｔｅｍｐＬｏｃＡ”の情報保持装置である情報生成元装置１０．２の情報が含まれる。情報生成元装置１０．２は、ＮＯＴＩＦＹメッセージの宛先ＩＰアドレスを受信したＱＵＥＲＹメッセージの送信元ＩＰアドレス、すなわち、中継装置１０．１のＩＰアドレスに設定して送信する。
【００２６】
各装置において、ＮＯＴＩＦＹメッセージは、ＱＵＥＲＹメッセージと同様に、中継の度に、宛先及び送信元ＩＰアドレスが書き換えられる。ＮＯＴＩＦＹメッセージの宛先ＩＰアドレスは、クエリリストから得られるＱＵＥＲＹメッセージの要求元装置のＩＰアドレスに設定される。また、ＮＯＴＩＦＹメッセージの送信元ＩＰアドレスは、自装置のＩＰアドレスに設定される。
【００２７】
したがって、ＮＯＴＩＦＹメッセージは、ＱＵＥＲＹメッセージが送信された逆の経路をたどって情報参照装置４０．３に返されることになる。各装置は、ＮＯＴＩＦＹメッセージを中継または受信することによって、ＱＵＥＲＹメッセージによって要求されたコンテンツ“ｔｅｍｐＬｏｃＡ”の情報保持装置のＩＰアドレスを取得し、クエリリストに記録する。ＱＵＥＲＹメッセージに対応するＮＯＴＩＦＹメッセージを受信することによって、各装置においてコンテンツの検索が完了する。すなわち、コンテンツの検索が完了すると、クエリリストのすべての項目の値が格納される。図４では、検索が完了した時点の、各装置のクエリリストの一例が示されている。
【００２８】
図５は、情報参照装置のコンテンツ取得処理の一例を示す図である。（５）情報参照装置４０．３は、ＮＯＴＩＦＹメッセージで通知された情報生成元装置１０．２のＩＰアドレスを宛先ＩＰアドレスとしてコンテンツ“ｔｅｍｐＬｏｃＡ”の取得要求であるＲＥＱＵＥＳＴメッセージを送信する。このＲＥＱＵＥＳＴメッセージは、各中継装置によって、宛先である情報生成元装置１０．２まで転送される。
【００２９】
（６）情報生成元装置１０．２は、ＲＥＱＵＥＳＴメッセージを受信すると、ＲＥＱＵＥＳＴメッセージで要求されるコンテンツ“ｔｅｍｐＬｏｃＡ”の値を含むＤＡＴＡメッセージを、ＲＥＱＵＥＳＴメッセージの送信元である情報参照装置４０．３に送信する。その後、コンテンツ“ｔｅｍｐＬｏｃＡ”は値が不定であるため、情報参照装置４０．３は、定期的に情報生成元装置１０．２にコンテンツ“ｔｅｍｐＬｏｃＡ”の取得要求であるＲＥＱＵＥＳＴメッセージを送信して、コンテンツ“ｔｅｍｐＬｏｃＡ”を取得する。
【００３０】
図６は、新たな情報参照装置によるコンテンツ検索の処理の一例を示す図である。図６では、（７）新たに情報参照装置４０．２によるコンテンツ“ｔｅｍｐＬｏｃＡ”の検索が発生する。（８）情報参照装置４０．２は、コンテンツ“ｔｅｍｐＬｏｃＡ”の検索要求であるＱＵＥＲＹメッセージを送信する。
【００３１】
（９）情報参照装置４０．２から送信されたＱＵＥＲＹメッセージは、中継装置４０．１に届く。中継装置４０．１は、過去に同一の名前のコンテンツ“ｔｅｍｐＬｏｃＡ”の検索を処理しており、クエリリスト内にコンテンツ“ｔｅｍｐＬｏｃＡ”の情報保持装置のＩＰアドレスを記録している。そのため、中継装置４０．１は、ＱＵＥＲＹメッセージを隣接の中継装置に中継せずに、コンテンツ“ｔｅｍｐＬｏｃＡ”の情報保持装置である情報生成元装置１０．２のＩＰアドレスをＮＯＴＩＦＹメッセージに設定して、情報参照装置４０．２に送信する。これによって、情報参照装置４０．２は、コンテンツ“ｔｅｍｐＬｏｃＡ”の情報保持装置として情報生成元装置１０．２のＩＰアドレスを取得し、クエリリストに記録する。
【００３２】
１回目の検索要求（ＱＵＥＲＹメッセージ）の処理を通じて、ＱＵＥＲＹメッセージ及びＮＯＴＩＦＹメッセージの経路上の各装置には動的にクエリリストが生成される。これによって、同じ名前のコンテンツに対して新たな装置からの検索要求が発生した場合には、クエリリストに従って、該コンテンツの情報保持装置のＩＰアドレスが検索結果として返される。これによって、情報生成元装置の移動等に対して、柔軟に対応することができ、コンテンツの検索処理を効率化することができる。
【００３３】
なお、（９）の処理において、中継装置４０．１は、コンテンツ“ｔｅｍｐＬｏｃＡ”の情報保持装置として情報生成元装置１０．２の代わりに、自分自身のＩＰアドレスをＮＯＴＩＦＹメッセージに設定して、情報参照装置４０．２に送信してもよい。例えば、中継装置４０．１のプロキシサーバとしての機能が有効になっている場合には、中継装置４０．１は、（９）の処理において、自分自身のＩＰアドレスをＮＯＴＩＦＹメッセージに設定して、情報参照装置４０．２に送信する。中継装置４０．１のプロキシサーバとしての機能が有効である状態を、以降、プロキシモードと称する。図６では、中継装置４０．１がプロキシモードで動作しており、情報参照装置４０．２は、コンテンツ“ｔｅｍｐＬｏｃＡ”の情報保持装置として中継装置４０．１を認識しているクエリリストが示されている。
【００３４】
図７は、新たな情報参照装置４０．２のコンテンツ取得の処理の一例を示す図である。図７では、中継装置４０．１がプロキシモードで動作しており、情報参照装置４０．２は、コンテンツ“ｔｅｍｐＬｏｃＡ”の情報保持装置として中継装置４０．１を認識している場合の例が示される。
【００３５】
（１０）情報参照装置４０．２は、ＮＯＴＩＦＹメッセージを受信すると、コンテンツの取得要求であるＲＥＱＵＥＳＴメッセージを、ＮＯＴＩＦＹで通知された情報保持装置としての中継装置４０．１に送信する。
【００３６】
（１１）中継装置４０．１はＲＥＱＵＥＳＴメッセージを受信すると、情報生成元装置１０．２のプロキシサーバとしての動作を行う。具体的には、中継装置４０．１は、コンテンツ“ｔｅｍｐＬｏｃＡ”のＲＥＱＵＥＳＴメッセージを情報生成元装置１０．２に送信する。（１２）情報生成元装置１０．２は、ＲＥＱＵＥＳＴメッセージを受信すると、コンテンツ“ｔｅｍｐＬｏｃＡ”を含むＤＡＴＡメッセージを、中継装置４０．１を宛先に設定して送信する。
【００３７】
（１３）中継装置４０．１は、ＤＡＴＡメッセージを受信すると、コンテンツ“ｔｅｍｐＬｏｃＡ”をキャッシュに保存し、コンテンツ“ｔｅｍｐＬｏｃＡ”を含むＤＡＴＡメッセージを情報参照装置４０．２に送信する。
【００３８】
以降、中継装置４０．１は、所定の周期で、コンテンツ“ｔｅｍｐＬｏｃＡ”のＲＥＱＵＥＳＴメッセージを情報生成元装置１０．２に送信して、コンテンツ“ｔｅｍｐＬｏｃＡ”を取得し、キャッシュに保存する。また、情報参照装置４０．２は、中継装置４０．１から、コンテンツ“ｔｅｍｐＬｏｃＡ”を取得する。
【００３９】
以上より、クエリリストに登録されていない装置からのコンテンツの検索要求を受信する装置は、ネットワークトポロジにおいて情報配信の分岐ポイントである可能性が高い。そのため、該装置にプロキシ機能を動的に実行可能にする事で、ネットワークの使用効率を向上させるように、プロキシ機能を配置することができる。ネットワークの使用効率が上がるとは、ネットワーク全体のトラフィックが低減されることや、メモリ等のリソースの使用が低減されることを含む。
【００４０】
図８は、情報保持装置の移動を通知する処理の一例である。中継装置４０．１は、図７の（１２）の処理において、コンテンツ“ｔｅｍｐＬｏｃＡ”を取得し、情報参照装置４０．２に対してプロキシサーバとして動作を開始した。
【００４１】
（１３）コンテンツ“ｔｅｍｐＬｏｃＡ”の情報参照装置として、クエリリストには情報参照装置４０．２の他に情報参照装置４０．３が登録されている。そのため、中継装置４０．１は、情報参照装置４０．３にコンテンツ“ｔｅｍｐＬｏｃＡ”の情報保持装置が
情報生成元装置１０．２から中継装置４０．１に変更になったことを通知するＲＥＤＩＲＥＣＴメッセージを送信する。
【００４２】
情報参照装置４０．３は、ＲＥＤＩＲＥＣＴメッセージを受信すると、クエリリスト内の該当エントリの情報保持装置のＩＰアドレスを、ＲＥＤＩＲＥＣＴメッセージで通知された中継装置４０．１のＩＰアドレスに書き換える。以降、情報参照装置４０．２と情報参照装置４０．３とは、中継装置４０．１に対してコンテンツ“ｔｅｍｐＬｏｃＡ”の取得要求であるＲＥＱＵＥＳＴメッセージを送信し、中継装置４０．２からコンテンツ“ｔｅｍｐＬｏｃＡ”を取得する。
【００４３】
これにより、情報生成元装置１０．２から情報参照装置４０．２及び情報参照装置４０．３に向けたコンテンツのトラフィックを集約することができる。
【００４４】
例えば、情報参照装置４０．２又は情報参照装置４０．３のいずれかが、情報の参照を停止した場合、中継装置４０．１は、動的に設置したプロキシ機能を停止し、情報参照装置が現在参照している情報“ｔｅｍｐＬｏｃＡ"の情報保持装置１０．２のアドレス情報
を、情報の参照を停止していない情報参照装置４０．２又は情報参照装置４０．３のいずれかにＲＥＤＩＲＥＣＴメッセージで送信する。これによって、各装置のクエリリストが、図４の状態に戻る。情報の参照の停止は、情報参照装置からの明示的な停止メッセージ又は、プロキシ機能の有効期間を示すタイマによって行われてもよい。
【００４５】
＜情報処理システムの構成例＞
図９は、情報処理システムの構成例を示す図である。以降、第１実施形態では、図９に示されるシステムを想定して、説明が行われる。情報処理システム１００では、温度、湿度、気圧等の各種センサを備えた気象情報観測装置を高密度に配置したセンサネットワークから、利用者がスマートフォンから任意の位置を指定する事で、各地域の詳細な気象データを入手できる詳細気象情報サービスのシステムである。このようなセンサを高密度に配置し情報提供を行うようなサービスは、広範囲にセンサインフラを構築するのが困難なため、サービス提供地域を限定した複数のサービス提供事業者が現れ、それらが相互に連携する事で、ユーザがあらゆる地域の情報を入手できるようになる。
【００４６】
図９に示される情報処理システム１００では、詳細気象情報サービスネットワークＡ,
Ｂ,Ｃ,Ｄの４つの異なるサービスプロバイダのネットワークが相互に連携してサービスが提供される例が示されている。各サービスプロバイダのネットワークは、気象情報観測装置（センサ）２を含むセンサネットワーク（ＳＮＷ＃１〜＃４）と、センサ情報を取集し情報公開を行うゲートウェイ（ＧＷ）装置(Ｍ２Ｍ−ＧＷ＃１〜＃４)と、他のサービスプロバイダのネットワークとの連携を行うＧＷ装置（ＤＰ−ＧＷ＃１〜＃４）を備える。各詳細気象情報サービスネットワークＡ,Ｂ,Ｃ,Ｄ間は、基幹網(ＮＷ＃１〜＃４)で接続さ
れる。図中の各ＧＷ装置間を結ぶ線は、基幹網上に構築された論理的なコネクションを示している。
【００４７】
ユーザは気象情報サービスの利用のためのアプリケーションを搭載する情報処理端末３をＤＰ−ＧＷ＃１〜＃４のいずれかに接続することで、気象情報サービスを利用する事ができる。情報処理端末３は、例えば、スマートフォン、携帯電話端末、タブレット端末、ＰＣ等の取得した情報の表示とＧＷ装置との通信が可能な装置である。また、情報処理端末３は、携帯型の装置に限定されず、据え置き型の装置であってもよい。図９に示される例では、ユーザが利用する情報処理端末３はスマートフォンであると想定する。
【００４８】
また、情報処理端末３とＧＷ装置間の通信は、Ｗｉ−Ｆｉ（Wireless Fidelity）等の
近距離無線による直接接続、又は、３Ｇ（第３世代移動通信システム）やＬＴＥ（Long T
erm Evolution）のような通信キャリア経由の通信のいずれであってもよい。
【００４９】
以降、Ｍ２Ｍ−ＧＷ＃１〜＃４は、センサネットワークと基幹網とを相互接続するものであり、ＧＷ装置であるものの、第１実施形態においてその機能はＤＰ−ＧＷ＃１〜＃４とは異なるため、役割としては、情報処理端末３と同等に取り扱う。そのため、以降、ＧＷ装置１と表記する場合には、ＤＰ−ＧＷ＃１〜＃４を指し、ＧＷ装置３と表記する場合にはＭ２Ｍ−ＧＷ＃１〜＃４を指す。また、以降、情報処理端末３と表記する場合にも、Ｍ２Ｍ−ＧＷ＃１〜＃４が含まれる。
【００５０】
＜メッセージの種類＞
情報処理システム１００では、各装置間で複数のメッセージが用いられる。これらのメッセージは、例えば、ＴＣＰ（Transmission Control Protocol）を用いた高位層（例え
ばアプリケーションレイヤ）のプロトコルによって通信される。
【００５１】
図１０は、ＴＣＰのデータグラムのフォーマットを示す図である。ＴＣＰのデータグラムのフォーマットの詳細についての説明は、周知であるため、省略する。第１実施形態で利用されるメッセージは、ＴＣＰデータグラムのデータ内に格納されて送受信される。
【００５２】
図１１は、メッセージの種類と設定情報の一部の一例を示す図である。第１実施形態で用いられるメッセージには、ＰＵＢＬＩＳＨメッセージ，ＱＵＥＲＹメッセージ，ＮＯＴＩＦＹメッセージ，ＲＥＤＩＲＥＣＴメッセージ，ＲＥＱＵＥＳＴメッセージ，ＤＡＴＡメッセージがある。
【００５３】
ＰＵＢＬＩＳＨメッセージは、コンテンツを公開するために用いられるメッセージである。ＰＵＢＬＩＳＨメッセージの送信元ＩＰアドレスには、メッセージの生成元装置のＩＰアドレスが設定される。ＰＵＢＬＩＳＨメッセージの宛先ＩＰアドレスには、隣接ＧＷ装置（ＤＰ−ＧＷ）のＩＰアドレスが設定される。ＰＵＢＬＩＳＨメッセージのデータ部分には、公開するコンテンツ名と、該コンテンツの値とが格納される。
【００５４】
ＱＵＥＲＹメッセージは、コンテンツの検索要求のメッセージである。ＱＵＥＲＹメッセージの送信元ＩＰアドレスには、メッセージの生成元装置のＩＰアドレスが設定される。ＱＵＥＲＹメッセージの宛先ＩＰアドレスには、後述のリンク情報に登録されているＩＰアドレスが設定される。ＱＵＥＲＹメッセージのデータ部分には、検索要求の対象のコンテンツ名と、クエリＩＤと、該ＱＵＥＲＹメッセージの経路履歴とが格納される。クエリＩＤは、ＱＵＥＲＹメッセージの生成元装置によって、情報処理システム１００内で唯一の値が付与される。ＱＵＥＲＹメッセージの経路履歴には、中継される度に、ＱＵＥＲＹメッセージを中継する装置によって、該装置のＩＰアドレスが追記されていく。
【００５５】
ＮＯＴＩＦＹメッセージは、ＱＵＥＲＹメッセージの検索対象のコンテンツの情報保持装置を通知するために用いられるメッセージである。ＮＯＴＩＦＹメッセージの送信元ＩＰアドレスには、メッセージの生成元装置のＩＰアドレスが設定される。ＮＯＴＩＦＹメッセージの宛先ＩＰアドレスには、対応するＱＵＥＲＹメッセージの送信元ＩＰアドレスが設定される。ＮＯＴＩＦＹメッセージのデータ部分には、検索対象のコンテンツ名と、対応するクエリＩＤと、検索対象のコンテンツの情報保持装置のＩＰアドレスとが格納される。
【００５６】
ＲＥＤＩＲＥＣＴメッセージは、情報保持装置の移動を通知するために用いられるメッセージである。ＲＥＤＩＲＥＣＴメッセージの送信元ＩＰアドレスには、メッセージの生成元装置のＩＰアドレスが設定される。ＲＥＤＩＲＥＣＴメッセージの宛先ＩＰアドレスには、クエリリストで示されるクエリ要求元装置（ＱＵＥＲＹメッセージの生成元装置）
ＩＰアドレスが設定される。ＲＥＤＩＲＥＣＴメッセージのデータ部分には、対象のコンテンツ名と、対応するクエリＩＤと、変更になった対象のコンテンツの情報保持装置のＩＰアドレスとが格納される。
【００５７】
ＲＥＱＵＥＳＴメッセージは、コンテンツの取得要求のメッセージである。ＲＥＱＵＥＳＴメッセージの送信元ＩＰアドレスには、メッセージの生成元装置のＩＰアドレスが設定される。ＲＥＱＵＥＳＴメッセージの宛先ＩＰアドレスには、クエリリストで示される情報保持装置のＩＰアドレスが設定される。ＲＥＱＵＥＳＴメッセージのデータ部分には、取得対象のコンテンツ名と、対応するクエリＩＤと、要求ＩＤと、プロキシ機能情報とが格納される。要求ＩＤは、ＲＥＱＵＥＳＴメッセージの生成元装置によって付与される。要求ＩＤは、クエリＩＤと同じ値であってもよい。また、クエリＩＤの値を要求ＩＤとして用いる場合には、要求ＩＤは、ＲＥＱＵＥＳＴメッセージに含まれなくてもよい。プロキシ機能情報は、ＲＥＱＵＥＳＴメッセージの生成元装置が情報保持装置（主にプロキシとして動作する装置）に対して指示する制御情報である。例えば、プロキシ機能情報は、プロキシ種別識別情報、プロキシプログラムのパラメータ情報等のプロキシサーバとして動作する際に参照される情報が含まれる。
【００５８】
ＤＡＴＡメッセージは、ＲＥＱＵＥＳＴメッセージの取得対象のコンテンツを通知するために用いられるメッセージである。ＤＡＴＡメッセージの送信元ＩＰアドレスには、メッセージの生成元装置のＩＰアドレスが設定される。ＤＡＴＡメッセージの宛先ＩＰアドレスには、対応するＲＥＱＵＥＳＴメッセージの送信元ＩＰアドレスが設定される。ＤＡＴＡメッセージのデータ部分には、対象のコンテンツ名と、対応するクエリＩＤと、要求ＩＤと、対象のコンテンツの値と、制御情報と、が格納される。要求ＩＤは、対応するＲＥＱＵＥＳＴメッセージから取得されるものである。なお、ＲＥＱＵＥＳＴメッセージに要求ＩＤが含まれていない場合には、ＲＥＱＵＥＳＴメッセージの生成元は、クエリＩＤの値を要求ＩＤの値として用いているので、ＤＡＴＡメッセージにも要求ＩＤは含まれなくてもよい。又は、要求ＩＤにクエリＩＤと同じ値を設定してもよい。制御情報は、ＤＡＴＡメッセージで通知されるコンテンツに対しての制御情報であって、例えば、該コンテンツの値の有効時間（生存時間）である。
【００５９】
＜装置構成＞
図１２は、ＧＷ装置１のハードウェア構成の一例を示す図である。ＧＷ装置１は、ＣＰＵ（Central Processing Unit）１０１、ＲＡＭ（Random Access Memory）１０２、ＲＯ
Ｍ（Read Only Memory）１０３、補助記憶装置１０４、通信インタフェース１０５を備え、これらはバス１０６によって電気的に接続される。
【００６０】
通信インタフェース１０５は、ネットワークとの情報の入出力を行うインタフェースである。通信インタフェース１０５は、基幹網インタフェース１０５Ａとローカル網インタフェース１０５Ｂとを含む。
【００６１】
基幹網インタフェース１０５Ａは、基幹網と接続しており、他のＧＷ装置１（ＤＰ−ＧＷ）とのインタフェースである。基幹網インタフェース１０５Ａは、例えば、光通信のインタフェースを備えたカードや、ＮＩＣ（Network Interface Card）等である。ローカル網インタフェース１０５Ｂは、ローカル網と接続しており、情報処理端末３やゲートウェイ装置３（Ｍ２Ｍ−ＧＷ）とのインタフェースである。ローカル網インタフェース１０５Ｂは，例えば、ＮＩＣである。または、ローカル網インタフェース１０５Ｂは、無線通信のカードであってもよい。
【００６２】
補助記憶装置１０４は、様々なプログラムや、各プログラムの実行に際してＣＰＵ  １０１が使用するデータを格納する。補助記憶装置１０４は、例えば、ＥＰＲＯＭ（Erasab
le Programmable ROM）、又はハードディスクドライブ（Hard Disc Drive）等の不揮発性のメモリである。補助記憶装置１０４は、例えば、オペレーティングシステム（ＯＳ），情報処理モジュール５，その他様々なアプリケーションプログラムを保持する。情報処理モジュール５は、クエリリストの作成、ＱＵＥＲＹメッセージ等の中継処理、プロキシサーバとして動作の制御等を行うためのプログラムである。
【００６３】
ＲＡＭ  １０２は、ＣＰＵ  １０１に、補助記憶装置１０４に格納されているプログラムをロードする記憶領域および作業領域を提供したり、バッファ、キャッシュとして用いられたりする半導体メモリである。ＲＡＭ  １０２は、揮発性及び不揮発性のものを含む。
【００６４】
ＣＰＵ  １０１は、補助記憶装置１０４に保持されたＯＳ、情報処理モジュール５等をＲＡＭ  １０２にロードして実行することによって、様々な処理を実行する。ＣＰＵ  １０１は、１つに限られず、複数備えられてもよい。
【００６５】
ＧＷ装置１のハードウェア構成は、図１２に示されるものに限られず、使用する製品によって適宜変更可能である。例えば、ＧＷ装置１は、可搬記録媒体駆動装置を備え、ＳＤカード等の可搬記録媒体からプログラムを読み込み実行してもよい。
【００６６】
図１３は、第１実施形態におけるＧＷ装置１の機能構成の一例を示す図である。ＧＷ装置１は、ＧＷ装置１は、情報参照プロキシ部５１，情報検索部５２，情報公開部５３，通信制御部５４，処理保留リスト５６−１，プロキシ情報５６−２，プロキシ管理リスト５６−３，クエリリスト５６−４，リンク情報５６−５，ＩＤキャッシュ５６−６を含む。情報参照プロキシ部５１，情報検索部５２，情報公開部５３，通信制御部５４は、ＣＰＵ
１０１が情報処理モジュール５を実行することによって実現される機能である。また、処理保留リスト５６−１，プロキシ情報５６−２，プロキシ管理リスト５６−３，クエリリスト５６−４，リンク情報５６−５，ＩＤキャッシュ５６−６は、情報処理モジュール５のインストール時に、または、情報処理モジュール５の実行を通じて、ＲＡＭ  １０２または補助記憶装置１０４の記憶領域に作成される。
【００６７】
通信制御部５４は、基幹網インタフェース１０５Ａ及びローカル網インタフェース１０５Ｂと、情報参照プロキシ部５１，情報検索部５２，情報公開部５３との間の通信を制御する。より具体的には、通信制御部５４には、ＲＡＭ  １０２上にメッセージ受信キューとメッセージ送信キューの領域が確保される（いずれも図示せず）。
【００６８】
メッセージ受信キューには、基幹網インタフェース１０５Ａ及びローカル網インタフェース１０５Ｂを通じて外部装置から受信される、宛先ＩＰアドレスが自装置のメッセージが格納される、メッセージ受信キューにメッセージが格納された場合には、通信制御部５４は、メッセージの種類に応じて、情報参照プロキシ部５１，情報検索部５２，情報公開部５３のいずれかにメッセージを振り分ける。
【００６９】
例えば、ＰＵＢＬＩＳＨメッセージは、情報公開部５３に振り分けられる。ＱＵＥＲＹメッセージ，ＮＯＴＩＦＹメッセージ，ＲＥＤＩＲＥＣＴメッセージは、情報検索部５２に振り分けられる。ＲＥＱＵＥＳＴメッセージ，ＤＡＴＡメッセージは情報参照プロキシ部５１に振り分けられる。
【００７０】
情報公開部５３は、ＰＵＢＬＩＳＨメッセージを受け取ると、後述のＩＤキャッシュ５６−６に公開するコンテンツのコンテンツ識別情報やコンテンツの値等を記録する。
【００７１】
情報検索部５２は、ＱＵＥＲＹメッセージ，ＮＯＴＩＦＹメッセージ，ＲＥＤＩＲＥＣ
Ｔメッセージ等の中継処理を行い、これらの中継処理を通じて、クエリリスト５６−４、リンク情報５６−５を管理する。情報検索部５２の処理の詳細については、後述される。
【００７２】
情報参照プロキシ部５１は、情報処理端末，ＧＷ装置１のプロキシサーバとしての処理を行う。また、情報参照プロキシ部５１は、処理保留リスト５６−１，プロキシ情報５６−２，プロキシ管理リスト５６−３を管理する。情報参照プロキシ部５１は、プロキシモードがオン（有効）になっている場合に起動する。プロキシモードの設定は、例えば、ＲＡＭ  １０２に格納されており、情報処理システム１００の管理者によって行われる。情報参照プロキシ部５１の処理の詳細については、後述される。
【００７３】
なお、情報処理モジュール５は、第１実施形態では、プログラムとして説明されたが、これに限られず、例えば、ＬＳＩ（Large Scale Integration），ＦＰＧＡ（Field-Programmable Gate Array）等のハードウェアで実現されてもよい。ＧＷ装置１は、「ノード装置」の一例である。
【００７４】
図１４は、処理保留リスト５６−１の一例を示す図である。処理保留リスト５６−１は、情報参照プロキシ部５１によって、コンテンツ取得要求であるＲＥＱＵＥＳＴメッセージに対して処理を行うために該ＲＥＱＵＥＳＴメッセージの内容を一時的に記録するために用いられる。処理保留リスト５６−１は、例えば、ＲＡＭ  １０２に格納されている。
【００７５】
処理保留リスト５６−１は、例えば、要求ＩＤと、要求元アドレスと、プロキシ機能情報と、を保持し、要求ＩＤで検索される。要求ＩＤは、ＲＥＱＵＥＳＴメッセージに含まれる要求ＩＤが用いられる。ＲＥＱＵＥＳＴメッセージの生成元装置が、要求ＩＤとしてクエリＩＤを用いており、ＲＥＱＵＥＳＴメッセージ内に要求ＩＤが含まれていない場合には、処理保留リスト５６−１の要求ＩＤにはＲＥＱＵＥＳＴメッセージのクエリＩＤが格納される。要求元アドレスには、ＲＥＱＵＥＳＴメッセージの送信元アドレスが格納される。プロキシ機能情報は、他の装置から受信したＲＥＱＵＥＳＴメッセージに含まれるプロキシ機能情報、または、自装置がＲＥＱＵＥＳＴメッセージを生成する際に、ＲＥＱＵＥＳＴメッセージに付与するプロキシ情報が格納される。
【００７６】
図１５は、プロキシ情報５６−２の一例を示す図である。プロキシ情報５６−２は、情報参照プロキシ部５１が、ＲＥＱＵＥＳＴメッセージに対して、プロキシサーバとしての処理を実行する場合に、プロキシサーバとしての設定条件等を参照するために用いられる。プロキシ情報５６−２は、例えば、補助記憶装置１０４に予め格納される。
【００７７】
プロキシ情報５６−２は、例えば、プロキシ種別情報，実行オブジェクト，基本パラメータを含み、プロキシ種別識別情報で検索される。プロキシ種別識別情報は、プロキシ機能の識別情報である。プロキシ種別情報は、予めシステムで取り決めた番号や、実行オブジェクトのプログラム名等である。実行オブジェクトは、プロキシ処理を行うプログラムの識別情報である。基本パラメータは、実行オブジェクトの引数である。実行オブジェクトは、「更新部」の一例である。
【００７８】
図１６は、プロキシ管理リスト５６−３の一例を示す図である。プロキシ管理リスト５６−３は、情報参照プロキシ部５１がプロキシサーバとして動作している場合に、プロキシサーバのプログラムを管理するために用いられる。すなわち、プロキシ管理リスト５６−３にエントリが存在するということは、自装置がいずれかの装置に対してプロキシサーバとして動作していることが示される。プロキシ管理リスト５６−３は、例えば、ＲＡＭ
１０２に格納されている。
【００７９】
プロキシ管理リスト５６−３は、例えば、プロキシＩＤ，実行オブジェクト，実行パラ
メータ，実行条件，実行状態を含み、プロキシＩＤで検索される。プロキシＩＤは装置内部で起動しているプロキシ機能の識別情報である。第１実施形態では、プロキシＩＤには、クエリ対象コンテンツ名が用いられる。プロキシＩＤとしてプロキシＩＤにクエリ対象コンテンツ名を用いることによって、クエリリスト５６−４とリンクを取ることができる。ただし、これに限られず、プロキシＩＤは、装置内で重複しないように付与されればよい。実行オブジェクトは、プロキシ処理を行うプログラムである。実行パラメータは、実行オブジェクトの引数である。実行条件は、実行オブジェクトの実行条件であって、予めプロキシ処理行うプログラムに対して設定されている。実行状態は、実行オブジェクトが実行中であるか否かを示す情報である。
【００８０】
図１７は、クエリリスト５６−４の一例を示す図である。クエリリスト５６−４は、情報検索部５２が、受信，送信，または中継したＱＵＥＲＹメッセージの情報を保持する。クエリリスト５６−４は、例えば、ＲＡＭ  １０２に格納される。
【００８１】
クエリリスト５６−４は、例えば、クエリ対象コンテンツ名，クエリＩＤ，クエリ要求元ＩＰアドレス，クエリ送信先ＩＰアドレス，情報保持装置ＩＰアドレスを含み、クエリ対象コンテンツ名で検索される。クエリ対象コンテンツ名、クエリＩＤは、ＱＵＥＲＹメッセージ内に含まれるものである。クエリ要求元ＩＰアドレスは、ＱＵＥＲＹメッセージの送信元ＩＰアドレスである。クエリ送信先ＩＰアドレスは、ＱＵＥＲＹメッセージの送信先のＩＰアドレスであり、後述のリンク情報から得られる。また、自装置がＱＵＥＲＹメッセージの検索対象のコンテンツを保持している場合には、クエリ送信先ＩＰアドレスは、自装置のＩＰアドレスとなる。情報保持装置のＩＰアドレスは、ＮＯＴＩＦＹメッセージまたはＲＥＤＩＲＥＣＴメッセージから取得される。ただし、自装置がＱＵＥＲＹメッセージの検索対象のコンテンツの生成元装置である場合には、情報保持装置のＩＰアドレスには、自装置のＩＰアドレスが格納される。
【００８２】
クエリリスト５６−４のエントリは、例えば、クエリＩＤが合致するＲＥＱＵＥＳＴメッセージを情報検索部５２が受信せずに所定時間経過した場合、又は、クエリ要求元装置からコネクションの切断要求を受信した場合に、情報検索部５２によって削除される。
【００８３】
図１８は、リンク情報５６−５の一例を示す図である。リンク情報５６−５は、隣接するＧＷ装置１のＩＰアドレスを保持しており、ＱＵＥＲＹメッセージをネットワークで接続されている隣接の装置に中継するために用いられる。リンク情報５６−５は、例えば、補助記憶装置１０４に格納される。
【００８４】
リンク情報５５は、リンクＩＤ，送信先ＩＰアドレスを含み、リンクＩＤで検索される。リンクＩＤは、接続するリンクの識別子である。送信先ＩＰアドレスは、接続するリンクの送信先のＩＰアドレスである。
【００８５】
例えば、ＧＷ装置１の場合には、リンク情報５６−５に、接続するネットワークのリンクＩＤと、該ネットワークを通じて隣接するＧＷ装置１のＩＰアドレスを送信先のＩＰアドレスとして保持する。また、ＧＷ装置１は、接続するローカル網のリンクＩＤ、該ローカル網のブロードキャストアドレスを送信先のＩＰアドレスとして保持する。また、情報処理端末３の場合には、リンク情報５６−５に、在圏するネットワークのリンクＩＤと、在圏するネットワークのブロードキャストアドレス、または、在圏するネットワークに接続するＧＷ装置１のＩＰアドレスを送信先のＩＰアドレスとして保持する。リンク情報に格納される情報は、例えば、ルーティング情報から取得される。
【００８６】
図１９は、ＩＤキャッシュ５６−６の一例を示す図である。ＩＤキャッシュ５６は、情報参照プロキシ部５１、情報検索部５２、情報公開部５１が、コンテンツを記録及び参照
するために用いられる。ＩＤキャッシュ５６−６は、例えば、補助記憶装置１０４に格納される。ＩＤキャッシュ５６−６に情報を保持することによって、ＧＷ装置１は、キャッシュサーバとしての機能を果たすことになる。ＩＤキャッシュ５６−６は、クエリ対象コンテンツ名，コンテンツの値，制御情報を含む。制御情報は、ＤＡＴＡメッセージに含まれる制御情報である。
【００８７】
図２０は、情報処理端末３のハードウェア構成の一例を示す図である。情報処理端末３は、ＣＰＵ  ３０１，ＲＡＭ  ３０２Ａ，入力装置３０３，出力装置３０４，補助記憶装置３０５，可搬記録媒体駆動装置３０６，ネットワークインタフェース３０７を備える。また、これらはバス３０９により互いに電気的に接続されている。
【００８８】
入力装置３０３は、例えば、タッチパネル，操作ボタン等である。入力装置３０３から入力されたデータは、ＣＰＵ  ３０１に出力される。
【００８９】
可搬記録媒体駆動装置３０６は、可搬記録媒体４１０に記録されるプログラムや各種データを読出し、ＣＰＵ  ３０１に出力する。可搬記録媒体４１０は、例えば、ＳＤカード，ｍｉｎｉＳＤカード，ｍｉｃｒｏＳＤカード，ＵＳＢ（Universal Serial Bus）フラッシュメモリのような記録媒体である。
【００９０】
ネットワークインタフェース３０７は、ネットワークとの情報の入出力を行うインタフェースである。ネットワークインタフェース３０７は、例えば、無線のネットワークと接続するインタフェースであって、アンテナを含む電気回路である。ネットワークインタフェースは、例えば、ＧＷ装置１（ＤＰ−ＧＷ）と接続する。ネットワークインタフェース３０７で受信されたデータ等は、ＣＰＵ  ３０１に出力される。
【００９１】
補助記憶装置３０５は、様々なプログラムや、各プログラムの実行に際してＣＰＵ  ３０１が使用するデータを格納する。補助記憶装置３０５は、例えば、ＥＰＲＯＭ、又はＨＤＤ等の不揮発性のメモリである。補助記憶装置３０５は、例えば、ＯＳ，情報処理モジュール５，情報参照モジュール６，情報登録モジュール７，その他様々なアプリケーションプログラムを保持する。情報参照モジュール６は、コンテンツの検索及び取得の処理を行うためのプログラムである。情報公開モジュール５は、コンテンツの公開処理を行うためのプログラムである。
【００９２】
ＲＡＭ  ３０２Ａは、ＣＰＵ  ３０１に、補助記憶装置３０５に格納されているプログラムをロードする記憶領域および作業領域を提供したり、バッファとして用いられたりする半導体メモリである。ＲＡＭ  ３０２Ａは、揮発性及び不揮発性のものを含む。
【００９３】
ＣＰＵ  ３０１は、補助記憶装置３０５又は可搬記録媒体４１０に保持されたＯＳや様々なプログラムをＲＡＭ  ３０２Ａにロードして実行することによって、様々な処理を実行する。ＣＰＵ  ３０１は、１つに限られず、複数備えられてもよい。
【００９４】
出力装置３０４は、ＣＰＵ  ３０１の処理の結果を出力する。出力装置３０４は、例えば、ディスプレイ、スピーカ等の音声出力装置を含む。
【００９５】
図２０に示される情報処理端末３のハードウェア構成は、スマートフォンを想定したものであって、情報処理端末３のハードウェア構成は、これに限定されない。情報処理端末３に採用される装置によって、例えば、可搬記録媒体は、ＣＤ（Compact Disc），ＤＶＤ(Digital Versatile Disc)，Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ，及びフラッシュメモリカードを含んでもよい。
【００９６】
また、ＧＷ装置３（Ｍ２Ｍ−ＧＷ）の場合には、入力装置３０３、出力装置３０４を備えなくともよい。ＧＷ装置３の場合には、ネットワークインタフェース１０７は、センサネットワークに接続するインタフェースと、ＧＷ装置１（ＤＰ−ＧＷ）が接続するネットワークに接続するインタフェースとが備えられる。
【００９７】
また、情報処理端末３は、情報の公開、参照の目的によって、情報処理モジュール５、情報参照モジュール６、情報登録モジュール７の内、任意のモジュールを選択的に備えるようにしてもよい。また各モジュールを実行するためのＣＰＵ、ＲＡＭ、補助記憶装置は、各モジュールに設けられてもよい。
【００９８】
図２１は、情報処理端末３またはＧＷ装置３の機能構成の一例を示す図である。情報処理端末３は、情報処理モジュール５，情報参照モジュール６，情報公開モジュール７を備える。情報処理モジュール５については、上述の通りであるので、説明を省略する。また、図２１において、情報処理モジュール５の機能構成は省略されている。
【００９９】
情報処理端末３は、ＣＰＵ  ３０１が情報参照モジュール６を実行することによって、情報参照部６１，アプリインタフェース部６２の機能を実現する。
【０１００】
情報参照部６１は、アプリケーションインタフェース部６２を管理し、情報処理モジュール５の通信制御部５４とメッセージ受信キュー及び、ＴＣＰ／ＩＰのソケット通信で通信を行う。アプリインタフェース部６２は、情報参照アプリケーション３５と通信するためのＡＰＩ（Application Programming Interface）である。情報参照アプリケーション
３５は、第１実施形態では、例えば、気象情報サービスの利用のためのアプリケーションである。
【０１０１】
情報参照部６１は、例えば、情報参照アプリケーション３５からの情報取得要求を受けて、ＱＵＥＲＹメッセージやＲＥＱＵＥＳＴメッセージを通信制御部５４のメッセージ受信キューに格納する。また、通信制御部５４から、ＱＵＥＲＹメッセージやＲＥＱＵＥＳＴメッセージの応答としてのＤＡＴＡメッセージ等を受信し、アプリインタフェース部６２を通じて情報参照アプリケーション３５に情報を返す。情報参照部６１の処理の詳細は、後述される。
【０１０２】
情報処理端末３は、ＣＰＵ  ３０１が情報公開モジュール７を実行することによって、情報生成部７１，アプリインタフェース部７３，センサ網インタフェース部７４の機能を実現する。また、情報公開モジュール７のインストールによって、補助記憶装置３０５の記憶領域に、命名規則リスト７２が格納される。
【０１０３】
情報生成部７１は、アプリケーションインタフェース部７３を管理し、情報処理モジュール５の通信制御部５４とメッセージ受信キュー及び、ＴＣＰ／ＩＰのソケット通信で通信を行う。アプリケーションインタフェース部７３は、情報登録アプリケーション３６と通信するためのＡＰＩである。情報登録アプリケーション３６は、例えば、ツイッター等のアプリケーションである。
【０１０４】
また、情報生成部７１は、センサ網インタフェース部７４を管理する。センサ網インタフェース部７４は、センサ２からコンテンツの値を受信する。情報生成部７１は、情報登録アプリケーション３６またはセンサ２から受信したデータに対して、命名規則リスト７２を参照して、ネットワークで一意な名前を付与し、ＰＵＢＬＩＳＨメッセージを生成して、情報処理モジュール５に通知する。
【０１０５】
図２２は、命名規則リスト７２の一例を示す図である。命名規則リスト７２は、情報登
録アプリケーション３６またはセンサ２から取得されたデータに対して、ネットワークに一意な識別情報（コンテンツ名）を付与するための命名規則が格納される。
【０１０６】
命名規則リスト７２は、命名規則種別，フォーマットを含み、命名規則ごとに、要素識別と規則とが格納される。例えば、温度センサからのデータにコンテンツ名を付与する場合には、命名規則リストのエントリは以下のようになる。
【０１０７】
命名規則種別には“温度センサ”が格納される。フォーマットには、＜情報識別プレフィックス＞+セパレータ＋＜ロケーション識別＞+セパレータ＋＜センサ識別＞が格納される。このフォーマットの場合の要素識別は、＜情報識別プレフィックス＞，＜ロケーション種別＞，＜センサ種別＞，セパレータである。各要素識別の規則は、＜情報識別プレフィックス＞＝“temp”、＜ロケーション種別＞＝“LocA”、＜センサ識別＞＝センサが通知してくるＩＤ、セパレータ＝“_”である。この場合、温度センサsensor001によって通知されるデータに対して、ネットワークで一意に公開される情報の名前は“tempLocA_LocA_sensor001”である。
【０１０８】
＜処理の流れ＞
図２３は、情報処理モジュール５の通信制御部５４の処理のフローチャートの一例である。図２３に示されるフローチャートは、情報処理モジュール５の起動とともに開始され、情報処理モジュール５の起動中繰り返し実行される。
【０１０９】
ＯＰ１１では、通信制御部５４は、定期的にメッセージ受信キューを監視する。メッセージ受信キューには、通信制御部５４によって、他の装置から受信した通信データから解析された、宛先が自装置のＩＰアドレスのメッセージが格納される。また、メッセージ受信キューには、自装置内のプログラムによって生成されたメッセージも格納される。メッセージ受信キューにメッセージが格納された場合には（ＯＰ１１：メッセージ有り）、処理がＯＰ１２に進む。メッセージ受信キューにメッセージが格納されていない場合には（ＯＰ１１：メッセージ無し）、処理がＯＰ１６に進む。
【０１１０】
ＯＰ１２では、通信制御部５４は、メッセージ受信キューに格納されるメッセージの種類を解析する。メッセージ受信キュー内のメッセージがＲＥＱＵＥＳＴメッセージ又はＤＡＴＡメッセージである場合には、処理がＯＰ１３に進む。ＯＰ１３では、通信制御部５４は、情報参照プロキシ部５１にメッセージを渡して、情報参照プロキシ部５４を起動する。次に処理がＯＰ１６に進む。
【０１１１】
メッセージ受信キュー内のメッセージがＱＵＥＲＹメッセージ、ＮＯＴＩＦＹメッセージ、またはＲＥＤＩＲＥＣＴメッセージである場合には、処理がＯＰ１４に進む。ＯＰ１４では、通信制御部５４は、情報検索部５２にメッセージを渡して、情報検索部５２を起動する。次に処理がＯＰ１６に進む。
【０１１２】
メッセージ受信キュー内のメッセージがＰＵＢＬＩＳＨメッセージである場合には、処理がＯＰ１５に進む。ＯＰ１５では、通信制御部５４は、情報公開５３にメッセージを渡して、情報公開部５３を起動する。次に処理がＯＰ１６に進む。
【０１１３】
ＯＰ１６では、通信制御部５４は、メッセージ送信キューに他の装置、又は装置内のプログラムによってメッセージが格納されているか確認する。メッセージ送信キューには、情報参照プロキシ部５１，情報検索部５２からメッセージが格納される。メッセージ送信キューにメッセージが格納されていない場合には（ＯＰ１６：メッセージ無し）、図２３に示される処理が終了する。
【０１１４】
メッセージ送信キューにメッセージが格納されている場合には（ＯＰ１６：メッセージ有り）、処理がＯＰ１７に進む。ＯＰ１７では、通信制御部５４は、メッセージの宛先ＩＰアドレスが示す宛先の装置にメッセージを送信する。メッセージの宛先ＩＰアドレスが内部プログラムである場合には、通信制御部５４は、対応するソケットにメッセージを送信する。その後、図２３に示される処理が終了する。
【０１１５】
図２４は、情報処理モジュール５の情報参照プロキシ部５１の処理のフローチャートの一例である。図２４に示される処理は、情報参照プロキシ部５１が、通信制御部５４から、ＲＥＱＵＥＳＴメッセージ又はＤＡＴＡメッセージを受信した場合に開始される。
【０１１６】
ＯＰ２１では、情報参照プロキシ部５１は、メッセージの種別を判別する。ＲＥＱＵＥＳＴメッセージの場合には、処理がＯＰ２２に進む。ＤＡＴＡメッセージの場合には、処理がＯＰ２９に進む。
【０１１７】
ＯＰ２２〜ＯＰ２９は、情報参照プロキシ部５１がＲＥＱＵＥＳＴメッセージを受信した場合の処理である。ＯＰ２２では、情報参照プロキシ部５１は、ＲＥＱＵＥＳＴメッセージに含まれている取得対象のコンテンツ名を抽出し、ＩＤキャッシュ５６−６を検索する。該当のコンテンツ名がＩＤキャッシュ５６−６に記録されている場合には（ＯＰ２２：ＹＥＳ）、情報参照プロキシ部５１が既に要求されるコンテンツを保持し、いずれかの装置に対するプロキシサーバとして動作していることが示される。次に処理がＯＰ２３に進む。
【０１１８】
ＯＰ２３では、情報参照プロキシ部５１は既に要求されるコンテンツを保持し、プロキシサーバとして動作しているので、受信したＲＥＱＵＥＳＴメッセージに対してプロキシサーバとして応答する処理を行う。具体的には、情報参照プロキシ部５１は、ＩＤキャッシュ５６−６より該当のコンテンツを取り出し、ＤＡＴＡメッセージを生成し、通信制御部５４のメッセージ送信キューに格納する。以後、該ＤＡＴＡメッセージは、受信したＲＥＱＵＥＳＴメッセージの送信元の装置に送信される。次に処理がＯＰ２４に進む。
【０１１９】
ＯＰ２４では、情報参照プロキシ部５１は、受信したＲＥＱＵＥＳＴメッセージからコンテンツ名を抽出し、プロキシ管理リスト５６−３を検索する。情報参照プロキシ部５１は、受信したＲＥＱＵＥＳＴメッセージに含まれるプロキシ情報と、プロキシ管理リスト５６−３の該当エントリのプロキシ実行パラメータとを比較し、変更がある場合には、プロキシ管理リスト５６−３の実行パラメータを更新する。その後、図２４に示される処理が終了する。
【０１２０】
ＯＰ２２において、受信したＲＥＱＵＥＳＴメッセージに含まれるコンテンツ名がＩＤキャッシュ５６−６に記録されていない場合には（ＯＰ２２：ＮＯ）、情報参照プロキシ部５１は、自身を対象コンテンツの情報保持装置として通知しているものの、該当のコンテンツを保持していないことが示される。次に処理がＯＰ２５に進む。
【０１２１】
ＯＰ２５〜ＯＰ２９は、情報参照プロキシ部５１が対象コンテンツについてプロキシサーバとして動作するための処理である。ＯＰ２５では、情報参照プロキシ部５１は、クエリリスト５６−４を、受信したＲＥＱＵＥＳＴメッセージから抽出したコンテンツ名で検索し、該当コンテンツの情報保持装置のＩＰアドレスを取得する。次に処理がＯＰ２６に進む。
【０１２２】
ＯＰ２６では、情報参照プロキシ部５１は、取得した情報保持装置のＩＰアドレスを宛先としたＲＥＱＵＥＳＴメッセージを生成し、通信制御部５４のメッセージ送信キューに格納する。このＲＥＱＵＥＳＴメッセージは、通信制御部５４によって、情報保持装置に
送信される。次に処理がＯＰ２７に進む。
【０１２３】
ＯＰ２７では、情報参照プロキシ部５１は、受信したＲＥＱＵＥＳＴメッセージに含まれるプロキシ機能情報からプロキシ種別識別情報を抽出し、プロキシ情報５６−２を検索し、プロキシ機能を特定する。次に処理がＯＰ２８に進む。
【０１２４】
ＯＰ２８では、情報参照プロキシ部５１は、受信したＲＥＱＵＥＳＴメッセージのプロキシ機能情報に含まれるパラメータ情報、または、プロキシ情報５６−２に含まれる基本パラメータから実行オブジェクトの実行パラメータをする。情報参照プロキシ部５１は、プロキシ情報５６−２から特定したプロキシ機能の実行オブジェクトと、管理のために付与したプロキシＩＤと共に、プロキシ管理リスト５３に登録する。次に処理がＯＰ２９に進む。
【０１２５】
ＯＰ２９では、情報参照プロキシ部５１は、処理保留リスト５６−１に、ＲＥＱＵＥＳＴメッセージから取得される要求ＩＤ、要求元アドレス、プロキシ情報を記録する。これによって、情報参照プロキシ部５１は、後続のＤＡＴＡメッセージ受信処理時に該ＲＥＱＵＥＳＴメッセージの処理を継続することができる。その後、図２４に示される処理が終了する。
【０１２６】
ＯＰ３０〜ＯＰ３４の処理は、情報参照プロキシ部５１がＤＡＴＡメッセージを受信した場合の処理である。ＯＰ３０では、情報参照プロキシ部５１は、ＤＡＴＡメッセージに含まれる要求ＩＤを抽出し、処理保留リスト５６−１を要求ＩＤで検索する。
【０１２７】
処理保留リスト５６−１に該当エントリが有る場合には（ＯＰ３０：ＹＥＳ）、ＲＥＱＵＥＳＴメッセージのオリジナルの送信元装置への応答が終了していないことが示される。次に、処理がＯＰ３１に進む。ＯＰ３１では、情報参照プロキシ部５１は、該当エントリの要求元ＩＰアドレスを宛先ＩＰアドレスとしてＤＡＴＡメッセージを生成し、通信制御部５４のメッセージ送信キューに格納する。これによって、ＲＥＱＵＥＳＴメッセージのオリジナルの送信元装置へ要求されていたコンテンツが送信される。次に処理がＯＰ３２に進む。
【０１２８】
ＯＰ３２では、情報参照プロキシ部５１は、ＤＡＴＡメッセージに含まれるコンテンツ名で、クエリリスト５６−４を検索する。同じコンテンツ名のエントリであり、且つ、情報保持装置のＩＰアドレスが設定されているエントリがある場合には、情報参照プロキシ部５１は、該エントリのクエリ要求元ＩＰアドレスを宛先としたＲＥＤＩＲＥＣＴメッセージを生成し、通信制御部５４のメッセージ送信キューに格納する。これによって、ＲＥＤＩＲＥＣＴメッセージの送信先の装置に、対象コンテンツの情報保持装置が自装置に変更になったことが通知される。同じコンテンツ名のエントリであり、且つ、情報保持装置のＩＰアドレスが設定されているエントリがない場合には、ＲＥＤＩＲＥＣＴメッセージは生成されない。次に処理がＯＰ３３に進む。
【０１２９】
ＯＰ３３では、情報参照プロキシ部５１は、処理保留リスト５６−１の該当エントリを削除する。次に、処理がＯＰ３４に進む。
【０１３０】
ＯＰ３４では、情報参照プロキシ部５１は、ＤＡＴＡメッセージに含まれるコンテンツ名と、制御情報とをＩＤキャッシュ５６−６に登録する。これによって、該装置は、該コンテンツのキャッシュサーバとして動作することになる。その後、図２４に示される処理が終了する。制御情報の一例は、このコンテンツの有効期間や参照権限等である。
【０１３１】
図２５は、情報参照プロキシ部５１のプロキシ実行処理のフローチャートの一例である
。情報参照プロキシ部５１は、図２２に示されるメッセージの処理と別に、周期的にプロキシの動作を管理する処理を行う。この処理は、具体的にはスケジューラによって起動される周期プログラムとして実装される。
【０１３２】
ＯＰ４１では、情報参照プロキシ部５１は、所定の周期でプロキシ管理リスト５６−３からエントリを取り出す。次に、処理がＯＰ４２に進む。
【０１３３】
ＯＰ４２では、情報参照プロキシ部５１は、該当エントリのプロキシ実行条件を確認する。実行条件は、例えば、該当エントリのプロキシＩＤ（第１実施形態ではクエリ対象のコンテンツ名）と一致するクエリリスト５６−４のエントリ数が所定数であることや、コンテンツの取得周期等である。プロキシ実行条件が満たされた場合には（ＯＰ４２：一致）、処理がＯＰ４３に進む。
【０１３４】
ＯＰ４３では、情報参照プロキシ部５１は、該当エントリのプロキシ実行状態を確認する。該当エントリのプロキシ実行状態が未実行である場合には（ＯＰ４３：未実行）、処理がＯＰ４４に進む。
【０１３５】
ＯＰ４４では、情報参照プロキシ部５１は、プロキシ管理リスト５６−３の該当エントリに格納された実行オブジェクトを該当エントリに格納された実行パラメータで起動し、プロキシ管理リスト５６−３の該当エントリの実行状態を実行中に設定する。その後、図２５に示される処理が終了する。
【０１３６】
ＯＰ４３において、プロキシ管理リスト５６−３の該当エントリのプロキシ実行条件が満たされており、該当エントリのプロキシ実行状態が実行中である場合には（ＯＰ４３：実行中）、図２５に示される処理が終了する。
【０１３７】
ＯＰ４２において、プロキシ管理リスト５６−３の該当エントリのプロキシ実行条件が満たされていない場合は（ＯＰ４２：不一致）、処理がＯＰ４５に進む。ＯＰ４５では、情報参照プロキシ部５１は、該当エントリのプロキシ実行状態を確認する。該当エントリのプロキシ状態が実行中である場合には（ＯＰ４５：実行中）、処理がＯＰ４６に進む。該当エントリのプロキシ状態が未実行である場合には（ＯＰ４５：未実行）、図２５に示される処理が終了する。
【０１３８】
ＯＰ４６では、情報参照プロキシ部５１は、実行オブジェクトを停止・削除し、プロキシ管理リスト５６−３の該当エントリの実行状態を未実行に設定する。その後、図２５に示される処理が終了する。
【０１３９】
なお、プロキシ管理リスト５６−３において、実行状態が未実行となってから所定時間が経過すると、情報参照プロキシ部５１によって、プロキシ管理リスト５６−３から該当エントリが削除される。プロキシ管理リスト５６−３からエントリが削除されることによって、該当エントリの対象コンテンツに対するプロキシ処理が終了する。これに伴い、対象コンテンツのエントリがＩＤキャッシュ５６−６から削除される。また、この場合には、対象のコンテンツを参照する装置のクエリリスト５６−４のエントリがある場合には、情報検索部５２は、該装置に対してＲＥＤＩＲＥＣＴメッセージを送信する。
【０１４０】
例えば、プロキシ実行条件が、クエリリスト５６−４に、対象コンテンツを要求するエントリが所定数あること、である場合には、クエリリスト５６−４の該当エントリが所定数よりも少なくなると、プロキシ管理リスト５６−３から該当エントリが削除されて、該対象コンテンツのプロキシサーバとしての動作が終了する。また、対象コンテンツもＩＤキャッシュ５６−６から削除される。この場合、クエリリスト５６−４に対象コンテンツ
のエントリが残っている場合には、情報検索部５２は、クエリ要求元装置にＲＥＤＩＲＥＣＴメッセージを送信する。この場合に、ＲＥＤＩＲＥＣＴメッセージで通知される情報保持装置のＩＰアドレスは、例えば、対象コンテンツの生成元装置のＩＰアドレスである。
【０１４１】
図２６Ａ，図２６Ｂ，図２６Ｃは、情報処理モジュール５の情報検索部５２の処理のフローチャートの一例である。図２６Ａ，図２６Ｂ，図２６Ｃは、通信制御部５４から情報検索部５２が、ＱＵＥＲＹメッセージ、ＮＯＴＩＦＹメッセージ、ＲＥＤＩＲＥＣＴメッセージのいずれかを受信した場合に開始される。
【０１４２】
ＯＰ５１では、情報検索部５２は、受信したメッセージの種別を判定する。ＱＵＥＲＹメッセージの場合には、処理がＯＰ５２に進む。ＮＯＴＩＦＹメッセージの場合には、処理が図２６ＢのＯＰ６１に進む。ＲＥＤＩＲＥＣＴメッセージの場合には、処理が図２６ＣのＯＰ６４に進む。
【０１４３】
ＯＰ５２〜ＯＰ６０は、情報検索部５２がＱＵＥＲＹメッセージを受信した場合の処理である。ＯＰ５２では、情報検索部５２は、ＱＵＥＲＹメッセージからコンテンツ名を抽出し、ＩＤキャッシュ５６−６に該当エントリが有るか検索する。ＩＤキャッシュ５６−６に該当エントリが有る場合は（ＯＰ５２：ＹＥＳ）、自装置が情報保持装置であることが示され、処理がＯＰ６０に進む。ＯＰ６０では、情報検索部５２は、ＱＵＥＲＹメッセージの送信元ＩＰアドレスを宛先ＩＰアドレスとし、自装置のＩＰアドレスを情報保持装置のＩＰアドレスとして設定したＮＯＴＩＦＹメッセージを生成し、通信制御部５４のメッセージ送信キューに格納する。その後、図２６Ａの処理が終了する。
【０１４４】
ＩＤキャッシュ５６−６に該当エントリがない場合は（ＯＰ５２：ＮＯ）、処理がＯＰ５３に進む。ＯＰ５３では、情報検索部５２は、クエリリスト５６−４をＱＵＥＲＹメッセージから抽出したコンテンツ名で検索する。クエリリスト５６−４に該当のエントリがない場合には（ＯＰ５３：エントリ無し）、処理がＯＰ５４に進む。
【０１４５】
ＯＰ５４では、情報検索部５２は、受信したＱＵＥＲＹメッセージのエントリをクエリリスト５６−４に作成する。次に処理がＯＰ５９に進む。ＯＰ５９では、受信したＱＵＥＲＹメッセージを次の装置に送信するため、情報検索部５２は、リンク情報５６−５に登録されている全送信先ＩＰアドレスをＱＵＥＲＹメッセージの送信先として取得する。情報検索部５２は、リンク情報５６−５から取得した全送信先ＩＰアドレスに対して、受信したＱＵＥＲＹメッセージのコピーを生成する。各ＱＵＥＲＹの宛先は、リンク情報５６−５の各送信先ＩＰアドレスとなる。情報検索部５２は、該ＱＵＥＲＹメッセージを通信制御部５４のメッセージ送信キューに格納する。その後、図２６Ａに示される処理が終了する。
【０１４６】
ＯＰ５３において、クエリリスト５６−４にＱＵＥＲＹメッセージから抽出されたコンテンツ名に該当するエントリがある場合には（ＯＰ５３：エントリ有り）、処理がＯＰ５５に進む。
【０１４７】
ＯＰ５５では、情報検索部５２は、クエリリスト５６−４の該当エントリと受信したＱＵＥＲＹメッセージとで、コンテンツ名とクエリＩＤとの両方が一致するか否かを判定する。クエリリスト５６−４の該当エントリと受信したＱＵＥＲＹメッセージとで、コンテンツ名とクエリＩＤとの両方が一致する場合には（ＯＰ５５：ＹＥＳ）、該ＱＵＥＲＹメッセージは、既に処理中なので、そのまま何もせずに図２６Ａに示される処理が終了する。これによって、ＱＵＥＲＹメッセージのループを回避することができる。
【０１４８】
クエリリスト５６−４の該当エントリと受信したＱＵＥＲＹメッセージとで、コンテンツ名は一致するものの、クエリＩＤが一致しない場合には（ＯＰ５５：ＮＯ）、該ＱＵＥＲＹメッセージは未処理であることが示される。次に処理がＯＰ５６に進む。
【０１４９】
ＯＰ５６では、情報検索部５２は、クエリリスト５６−４の該当エントリに情報保持装置のＩＰアドレスが設定されているか判定する。クエリリスト５６−４の該当エントリに情報保持装置のＩＰアドレスが設定されている場合には（ＯＰ５６：ＹＥＳ）、処理がＯＰ５７に進む。
【０１５０】
ＯＰ５７では、情報検索部５２は、プロキシモードが設定されているか否かを判定する。プロキシモードが設定されている場合には（ＯＰ５７：ＹＥＳ）、処理がＯＰ６０に進む。ＯＰ６０では、情報検索部５２は、ＱＵＥＲＹメッセージの送信元ＩＰアドレスを宛先ＩＰアドレスとし、自装置のＩＰアドレスを情報保持装置のＩＰアドレスとして設定したＮＯＴＩＦＹメッセージを生成し、通信制御部５４のメッセージ送信キューに格納する。その後、図２６Ａの処理が終了する。
【０１５１】
プロキシモードが設定されていない場合には（ＯＰ５７：ＮＯ）、処理がＯＰ５８に進む。ＯＰ５８では、情報検索部５２は、クエリリスト５６−４の該当エントリに基づいて、ＮＯＴＩＦＹメッセージを生成し、通信制御部５４のメッセージ送信キューに格納する。その後、図２６Ａに示される処理が終了する。
【０１５２】
ＯＰ５６において、クエリリスト５６−４の該当エントリに情報保持装置のＩＰアドレスが設定されていない場合には（ＯＰ５６：ＮＯ）、クエリリスト５６−４の該当エントリに情報保持装置のＩＰアドレスを取得するために、処理がＯＰ５９に進む。ＯＰ５９では、情報検索部５２は、ＱＵＥＲＹメッセージのコピーをリンク情報５６−５に登録される全送信先ＩＰアドレスを宛先として送信する。その後、図２６Ａに示される処理が終了する。
【０１５３】
図２６ＢのＯＰ６１〜ＯＰ６３の処理は、情報検索部５２が受信したメッセージがＮＯＴＩＦＹメッセージである場合の処理である。
【０１５４】
ＯＰ６１では、情報検索部５２は、クエリＩＤが同一のＱＵＥＲＹメッセージに対応するＮＯＴＩＦＹメッセージを受信済みか判定する。この判定は、受信したＮＯＴＩＦＹメッセージに含まれるクエリＩＤとクエリリスト５６−４のエントリに、情報保持装置のＩＰアドレスが設定されているか否かによって判定される。
【０１５５】
クエリＩＤが同一のＱＵＥＲＹメッセージに対応するＮＯＴＩＦＹメッセージを受信済みである場合には（ＯＰ６１：ＹＥＳ）、図２６Ｂに示される処理が終了する。これは、例えば、図２６ＡのＯＰ５９の処理のように、ＱＵＥＲＹメッセージのコピーを複数の装置に送信することにより、同一クエリＩＤを有するＮＯＴＩＦＹメッセージを複数受信することが想定されるための処置である。第１実施形態では最初に受信したＮＯＴＩＦＹメッセージを有効としているが、受信したＮＯＴＩＦＹメッセージを一定時間キャッシュし、例えば、最もホップ数の少ないものを選択し、他のＮＯＴＩＦＹメッセージを棄却するようにしてもよい。
【０１５６】
クエリＩＤが同一のＱＵＥＲＹメッセージに対応するＮＯＴＩＦＹメッセージを初めて受信する場合には（ＯＰ６１：ＮＯ）、処理がＯＰ６２に進む。
【０１５７】
ＯＰ６２では、受信したＮＯＴＩＦＹメッセージに含まれるコンテンツ名で、クエリリスト５６−４を検索する。情報検索部５２は、クエリリスト５６−４の該当エントリの情
報保持装置のＩＰアドレスに、受信したＮＯＴＩＦＹメッセージに含まれる情報保持装置のＩＰアドレスを設定する。次に、処理がＯＰ６３に進む。
【０１５８】
ＯＰ６３では、情報検索部５２は、ＯＰ６２で抽出したクエリリスト５６−４の該当エントリのクエリ要求元アドレスを抽出し、クエリ要求元アドレスを宛先としたＮＯＴＩＦＹメッセージを生成し、通信制御部５４のメッセージ送信キューに格納する。その後、図２６Ｂに示される処理が終了する。
【０１５９】
図２６ＣのＯＰ６４〜ＯＰ６６の処理は、情報検索部５２が受信したメッセージがＲＥＤＩＲＥＣＴメッセージである場合の処理である。
【０１６０】
ＯＰ６４では、情報検索部５２は、受信したＲＥＤＩＲＥＣＴメッセージに含まれるコンテンツ名で、クエリリスト５６−４を検索する。情報検索部５２は、クエリリスト５６−４の該当エントリの情報保持装置のＩＰアドレスを、受信したＲＥＤＩＲＥＣＴメッセージに含まれる情報保持装置のＩＰアドレスに書き換える。次に処理がＯＰ６５に進む。
【０１６１】
ＯＰ６５では、情報検索部５２は、ＩＤキャッシュ５６−６を受信したＲＥＤＩＲＥＣＴメッセージに含まれるコンテンツ名で検索する。ＩＤキャッシュ５６−６に該当エントリがある場合には、受信したＲＥＤＩＲＥＣＴメッセージに含まれるコンテンツを自装置が保持しており、ＯＰ６４におけるクエリリスト５６−４の該当エントリのプロキシとして動作中であることが示される（ＯＰ６５：ＹＥＳ）。この場合には、ＯＰ６４におけるクエリリスト５６−４の該当エントリのクエリ要求元ＩＰアドレスの装置にとっては、情報保持装置に変更はないので、情報検索部５２はＲＥＤＩＲＥＣＴメッセージを送信することなく、図２６Ｃに示される処理が終了する。
【０１６２】
ＯＰ６５において、ＩＤキャッシュ５６−６に受信したＲＥＤＩＲＥＣＴメッセージに含まれるコンテンツ名の該当エントリがない場合には、自装置が該コンテンツの情報保持装置でないことが示される。この場合には、自装置は、該コンテンツについて、いずれの装置に対してもプロキシサーバとして動作していないことが示される（ＯＰ６５：ＮＯ）。次に、処理がＯＰ６６に進む。
【０１６３】
ＯＰ６６では、情報検索部５２は、クエリリスト５６−４を受信したＲＥＤＩＲＥＣＴメッセージに含まれるコンテンツ名で検索する。情報検索部５２は、クエリリスト５６−４の該当エントリのクエリ要求元ＩＰアドレスを抽出し、該クエリ要求元ＩＰアドレスを宛先としたＲＥＤＩＲＥＣＴメッセージを生成し、通信制御部５４のメッセージ送信キューに格納する。その後、図２６Ｃの処理が終了する。
【０１６４】
図２７は、情報参照モジュール６の情報参照部６１の処理のフローチャートの一例である。情報参照部６１は、情報参照アプリケーション３５からのコンテンツ取得要求に従って、情報処理モジュール５にコンテンツの検索と取得の要求を行い、情報参照アプリケーション３５にコンテンツを応答として返す。図２７に示されるフローチャートは、情報参照部６１が、情報参照アプリケーション３５からコンテンツ取得要求、通信制御部５４からＮＯＴＩＦＹメッセージ又はＤＡＴＡメッセージを処理要求として受信すると開始される。
【０１６５】
ＯＰ７１では、情報参照部６１は、処理要求の種別を判定する。情報参照アプリケーション３５からのコンテンツ取得要求の場合には、処理がＯＰ７２に進む。ＯＰ７２では、情報参照部６１は、情報参照アプリケーション３５のコンテンツ取得要求から、コンテンツ名を抽出し、ＱＵＥＲＹメッセージを生成し、通信制御部５４のメッセージ送信キューに格納する。その後、図２７に示される処理が終了する。
【０１６６】
処理要求がＮＯＴＩＦＹメッセージの場合には、処理がＯＰ７３に進む。ＯＰ７３では、情報参照部６１は、ＮＯＴＩＦＹメッセージで通知された情報保持装置のＩＰアドレスを宛先としたＲＥＱＵＥＳＴメッセージを生成し、通信制御部５４のメッセージ送信キューに格納する。その後、図２７に示される処理が終了する。
【０１６７】
処理要求がＤＡＴＡメッセージの場合には、処理がＯＰ７４に進む。ＯＰ７４では、情報参照部６１は、ＤＡＴＡメッセージよりコンテンツを抽出し、情報参照アプリケーション３５からのコンテンツ取得要求の応答としてコンテンツを通知する。その後、図２７に示される処理が終了する。
【０１６８】
＜動作例＞
図２８、図２９、図３０は、情報処理システム１００の処理シーケンスの一例である。図２８、図２９、図３０では、センサ２によって取得された温度センサの情報を公開する例が示される。また、ＤＰ−ＧＷ＃１，ＤＰ−ＧＷ＃２，ＤＰ−ＧＷ＃３，ＤＰ−ＧＷ＃４は、いずれも、プロキシモードが有効になっているとする。
【０１６９】
Ｓ１では、所定の周期で、センサネットワークＳＮＷ＃１に接続されているセンサ２が、温度センサの値を取得し、例えば、センサの識別情報ｓｅｎｓｏｒ００１と２８という温度の値をＭ２Ｍ−ＧＷ＃１に送信する。
【０１７０】
Ｓ２では、Ｍ２Ｍ−ＧＷ＃１は、センサ２から受信した温度センサの値を、ＰＵＢＬＩＳＨメッセージでＤＰ−ＧＷ＃１へ通知する。センサ２から受信された温度センサの値には、命名規則リスト７２の命名規則に基づいて、Ｍ２Ｍ−ＧＷ＃１によってコンテンツ名が付与される。
【０１７１】
例えば、Ｍ２Ｍ−ＧＷ＃１が図２２に示される命名規則リスト７２を保持している場合には、センサ２から受信された温度センサの値には、“temp_LocA_sensor001”というコ
ンテンツ名が付与される。
【０１７２】
Ｓ２において生成されるＰＵＢＬＩＳＨメッセージは、送信元ＩＰアドレス＝Ｍ２Ｍ−ＧＷ＃１のＩＰアドレス、宛先ＩＰアドレス＝ＤＰ−ＧＷ＃１のＩＰアドレス、コンテンツ名＝“temp_LocA_sensor001”、コンテンツの値＝２８が設定される。
【０１７３】
ＤＰ−ＧＷ＃１は、Ｍ２Ｍ−ＧＷ＃１からＰＵＢＬＩＳＨメッセージを受信すると、ＩＤキャッシュ５６−６に情報を登録する。ＤＰ−ＧＷ＃１のＩＤキャッシュ５６−６に設定される情報は、例えば、コンテンツ名＝“temp_LocA_sensor001”、コンテンツの値＝
２８、制御情報＝“lifetime=300s”である。“lifetime=300s”は、このＩＤキャッシュ５６−６のエントリの有効時間は３００秒であり、該当コンテンツの参照がないまま３００秒経過すると該エントリが削除されることを示す。
【０１７４】
Ｓ３では、例えば、ＤＰ−ＧＷ＃４の通信インタフェース１０５に接続されたスマートフォン＃４のユーザが自宅の町内の温度を外出先から知りたい場合、情報参照アプリケーション３５から情報を参照する。便宜上、ユーザの所在地の町の識別は“ＬｏｃＡ”とする。スマートフォン＃４は、ＱＵＥＲＹメッセージを生成する（図２７、ＯＰ７２）。ＱＵＥＲＹメッセージは、送信元ＩＰアドレス＝スマートフォン＃４のＩＰアドレス、宛先ＩＰアドレス＝ＤＰ−ＧＷ＃４のＩＰアドレス、コンテンツ名＝“temp_LocA_*”、クエ
リＩＤ＝“sf100_query01”が設定される。ＱＵＥＲＹメッセージの経路履歴情報には、
スマートフォン＃４のＩＰアドレスが設定される。ＱＵＥＲＹメッセージに含まれるコンテンツ名はワイルドカードで示すことができる。コンテンツ名＝“temp_LocA_*”は、*以
下は任意の値である事が示される。
【０１７５】
Ｓ４では、スマートフォン＃４で生成されたＱＵＥＲＹメッセージは、ＤＰ−ＧＷ＃４に届き、ＤＰ−ＧＷ＃４によって、ＤＰ−ＧＷ＃４に隣接するＤＰ−ＧＷ＃２、ＤＰ―ＧＷ＃３に中継される。ＱＵＥＲＹメッセージは、情報保持装置（ＤＰ−ＧＷ＃１）に到達するまで、各装置によって中継が繰り返される。各装置で行われる処理は、図２６ＡのＯＰ５１〜ＯＰ５４、ＯＰ５９である。図２８に示される例においては、ＱＵＥＲＹメッセージは、に到達するとする。
【０１７６】
ＱＵＥＲＹメッセージの送信先はリンク情報５６−５に従う（図２６Ａ、ＯＰ５９）。ただし、ＱＵＥＲＹメッセージのループを避けるため、送信元へのＱＵＥＲＹの送信は禁止され、迂回経路の転送により重複受信したＱＵＥＲＹメッセージは、棄却される。
【０１７７】
Ｓ５では、ＤＰ−ＧＷ＃１にＱＵＥＲＹメッセージが到達すると、ＤＰ−ＧＷ＃１はＮＯＴＩＦＹメッセージを生成する（図２６Ｂ，ＯＰ６１〜ＯＰ６３）。生成されたＮＯＴＩＦＹメッセージは、各装置のクエリリスト５６−４に従って、でスマートフォン＃４に到達する。
【０１７８】
ＤＰ−ＧＷ＃１で生成されるＮＯＴＩＦＹメッセージは、送信元ＩＰアドレス＝ＤＰ−ＧＷ＃１のＩＰアドレス、宛先ＩＰアドレス＝ＤＰ−ＧＷ＃２のＩＰアドレス、コンテンツ名＝“temp_LocA_sensor001”、クエリＩＤ＝“sf100_query01”、情報保持装置のＩＰアドレス＝ＤＰ−ＧＷ＃１のＩＰアドレスが設定される。
【０１７９】
ＮＯＴＩＦＹメッセージが、ＱＵＥＲＹメッセージとは逆の経路、ＤＰ−ＧＷ＃１→ＤＰ−ＧＷ＃２→ＤＰ―ＧＷ＃４→スマートフォン＃４の経路で、スマートフォン＃４に到達する。これによって、ＮＯＴＩＦＹメッセージの経路上の各装置のクエリリスト５６−４には、コンテンツ名“temp_LocA_sensor001”の情報保持装置がＤＰ−ＧＷ＃１である
と記録される。
【０１８０】
Ｓ６では、スマートフォン＃４にＮＯＴＩＦＹメッセージが到達すると、スマートフォン＃４はＮＯＴＩＦＹメッセージで通知された情報保持装置ＤＰ−ＧＷ＃１へＲＥＱＵＥＳＴメッセージを送信する（図２７、ＯＰ７３）。生成されるＲＥＱＵＥＳＴメッセージは、送信元ＩＰアドレス＝スマートフォン＃４のＩＰアドレス、宛先ＩＰアドレス＝ＤＰ−ＧＷ＃１のアドレス、コンテンツ名＝“temp_LocA_sensor001”、クエリＩＤ＝“sf100_query01”、プロキシ機能情報＝“synchronize=300s”が設定される。プロキシ機能情報“synchronize=300s”は、３００秒ごとに情報の更新を行う場合の設定の一例である。なお、図２８に示される例では、要求ＩＤとしてクエリＩＤが用いられることを前提としており、ＲＥＱＵＥＳＴメッセージには要求ＩＤが含まれない。プロキシに関する具体的な情報は、情報参照アプリケーション３５により通知されるようにしてもよい。
【０１８１】
Ｓ７では、ＤＰ−ＧＷ＃１は、スマートフォン＃４よりＲＥＱＵＥＳＴメッセージを受信すると、ＲＥＱＵＥＳＴメッセージに含まれるコンテンツ名＝“temp_LocA_sensor001
”で、ＩＤキャッシュ５６−６を検索する。ＤＰ−ＧＷ＃１は、ＩＤキャッシュ５６−６の該当エントリからコンテンツの値＝２８を抽出し、ＤＡＴＡメッセージを生成し、スマートフォン＃４に送信する（図２４、ＯＰ２１〜ＯＰ２４）。生成されるＤＡＴＡメッセージは、送信元ＩＰアドレス＝ＤＰ−ＧＷ＃１のアドレス、宛先ＩＰアドレス＝スマートフォン＃４のＩＰアドレス、コンテンツ名＝“temp_LocA_sensor001”、クエリＩＤ＝“sf100_query01”、コンテンツの値＝２８、制御情報＝“lifetime=300s”が設定される。
なお、受信したＲＥＱＵＥＳＴメッセージに受信ＩＤが含まれていないため、生成されるＤＡＴＡメッセージにも要求ＩＤは含まれていない。
【０１８２】
以降、センサ２が温度センサの値を所定の周期で取得するたびに、Ｓ１、Ｓ２の処理が行われる。また、スマートフォン＃４は、定期的に、ＤＰ−ＧＷ＃１に対してＲＥＱＵＥＳＴメッセージを送信し、コンテンツ“temp_LocA_sensor001”の値を取得する。
【０１８３】
次に、図２９のＳ８では、ＤＰ−ＧＷ＃３の通信インタフェース１０５に無線接続されたスマートフォン＃３のユーザもスマートフォン＃４と同じ町内の温度を外出先から知りたい場合、同様に、情報参照アプリケーション３５から情報を参照する。スマートフォン＃３で生成されるＱＵＥＲＹメッセージは、送信元ＩＰアドレス＝スマートフォン＃３のＩＰアドレス、宛先ＩＰアドレス＝ＤＰ−ＧＷ＃３のＩＰアドレス、コンテンツ名＝“temp_LocA_*”、クエリＩＤ＝“sf200_query01”が設定される（図２７、ＯＰ７２）。
【０１８４】
Ｓ９では、スマートフォン＃３で生成されたＱＵＥＲＹメッセージは、スマートフォン＃４で生成されたＱＵＥＲＹメッセージと同様に情報保持装置ＤＰ−ＧＷ＃１に到達するまで、各装置によって中継が繰り返される。スマートフォン＃３で生成されたＱＵＥＲＹメッセージは、ＤＰ−ＧＷ＃３に到達し、ＤＰ―ＧＷ＃３から更に、隣接するＤＰ−ＧＷ＃２とＤＰ−ＧＷ＃４とに送信される。
【０１８５】
スマートフォン＃４の場合（Ｓ３）と異なり、ＤＰ−ＧＷ＃２とＤＰ−ＧＷ＃４は、既に、スマートフォン＃４からのコンテンツ名＝“temp_LocA_*”に関するＱＵＥＲＹメッ
セージの応答済みであり、コンテンツ名＝“temp_LocA_sensor001”の情報保持装置ＤＰ
−ＧＷ＃１のＩＰアドレスを取得している。そのため、Ｓ１０では、ＤＰ−ＧＷ＃２とＤＰ−ＧＷ＃４は、プロキシ機能を配置する候補となり、ＮＯＴＩＦＹメッセージの情報保持装置のＩＰアドレスに自装置のＩＰアドレスを設定して、ＤＰ−ＧＷ＃３に送信する（図２６Ａ、ＯＰ５１〜ＯＰ５３、ＯＰ５５〜ＯＰ５７、ＯＰ６０）。
【０１８６】
ＤＰ−ＧＷ＃２で生成されるＮＯＴＩＦＹメッセージは、送信元ＩＰアドレス＝ＤＰ−ＧＷ＃２のＩＰアドレス、宛先ＩＰアドレス＝ＤＰ−ＧＷ＃３のＩＰアドレス、コンテンツ名＝“temp_LocA_sensor001”、クエリＩＤ＝“sf200_query01”、情報保持装置のＩＰアドレス＝ＤＰ−ＧＷ＃２のＩＰアドレスが設定される。ＤＰ−ＧＷ＃４で生成されるＮＯＴＩＦＹメッセージは、送信元ＩＰアドレス＝ＤＰ−ＧＷ＃４のＩＰアドレス、宛先ＩＰアドレス＝ＤＰ−ＧＷ＃３のＩＰアドレス、コンテンツ名＝“temp_LocA_sensor001”
、クエリＩＤ=“sf200_query01”、情報保持装置のＩＰアドレス＝ＤＰ−ＧＷ＃４のＩＰアドレスが設定される。
【０１８７】
ＤＰ−ＧＷ＃３は、ＤＰ−ＧＷ＃２とＤＰ−ＧＷ＃４とから受信したＮＯＴＩＦＹメッセージの内、一つを選択する。第１実施形態では、先に受信したＮＯＴＩＦＹメッセージが有効となるため、後から受信したＮＯＴＩＦＹメッセージが棄却される（図２６Ｂ）。ここでは、ＤＰ−ＧＷ＃２からのＮＯＴＩＦＹメッセージが先に受信され、ＤＰ−ＧＷ＃４からのＮＯＴＩＦＹメッセージが棄却されたものとする。
【０１８８】
Ｓ１１では、ＤＰ−ＧＷ＃３は、スマートフォン＃３にＮＯＴＩＦＹメッセージを送信する（図２６Ｂ、ＯＰ６３）。ＤＰ−ＧＷ＃３で生成されるＮＯＴＩＦＹメッセージは、送信元ＩＰアドレス＝ＤＰ−ＧＷ＃３のＩＰアドレス、宛先ＩＰアドレス＝スマートフォン＃３のＩＰアドレス、コンテンツ名＝“temp_LocA_sensor001”、クエリＩＤ＝“sf200_query01”、情報保持装置のＩＰアドレス=ＤＰ−ＧＷ＃２のＩＰアドレスが設定される
。
【０１８９】
Ｓ１２では、スマートフォン＃３にＮＯＴＩＦＹメッセージが到達すると、スマートフォン２はＮＯＴＩＦＹメッセージで通知された情報保持装置ＤＰ−ＧＷ＃２へＲＥＱＵＥ
ＳＴメッセージを送信する（図２７、ＯＰ７３）。生成されるＲＥＱＵＥＳＴメッセージは、送信元ＩＰアドレス＝スマートフォン＃３のＩＰアドレス、宛先ＩＰアドレス＝ＤＰ−ＧＷ＃２のＩＰアドレス、コンテンツ名＝“temp_LocA_sensor001”、クエリＩＤ＝“sf200_query01”、プロキシ機能情報＝“synchronize=600s”が設定される。
【０１９０】
Ｓ１３では、ＤＰ−ＧＷ＃２は、スマートフォン＃３からＲＥＱＵＥＳＴメッセージを受信すると、プロキシサーバとしての処理を開始する（図２４、ＯＰ２１、ＯＰ２２、ＯＰ２５〜ＯＰ２９）。コンテンツ名＝“temp_LocA_sensor001”の情報保持装置は、ＤＰ
−ＧＷ＃１であり、この時点でＤＰ−ＧＷ＃２はコンテンツ名＝“temp_LocA_sensor001
”のコンテンツを保持していない。そのため、ＤＰ−ＧＷ＃２は、ＲＥＱＵＥＳＴメッセージのプロキシ機能情報＝“synchronize=600s”に従って、ＤＰ−ＧＷ＃１に６００秒ごとに、コンテンツ名＝“temp_LocA_sensor001”のコンテンツを取得するプログラムを起
動する（図２４、ＯＰ２７、ＯＰ２８）。
【０１９１】
また、スマートフォン＃３からのＲＥＱＵＥＳＴメッセージを処理するため、ＤＰ−ＧＷ＃２は、ＲＥＱＵＥＳＴメッセージをＤＰ−ＧＷ＃１に送信する（図２４、ＯＰ２６）。ＤＰ−ＧＷ＃２は、後続の処理のため処理保留リスト５６−１に、要求ＩＤ＝“sf200_query01”、要求元ＩＰアドレス＝スマートフォン＃３のＩＰアドレス、プロキシ機能情
報＝“synchronize=600s”を設定する（図２４、ＯＰ２９）。なお、スマートフォン＃３からのＲＥＱＵＥＳＴメッセージに要求ＩＤが含まれていないため、ＤＰ−ＧＷ＃２は、処理保留リスト５６−１の要求ＩＤにＲＥＱＵＥＳＴメッセージのクエリＩＤを設定している。
【０１９２】
ＤＰ−ＧＷ＃２が生成するＲＥＱＵＥＳＴメッセージは、送信元ＩＰアドレス＝ＤＰ−ＧＷ＃２のＩＰアドレス、宛先ＩＰアドレス＝ＤＰ−ＧＷ＃１のＩＰアドレス、コンテンツ名＝“temp_LocA_sensor001”、クエリＩＤ＝“sf200_query01”、プロキシ機能情報＝“synchronize=600s”が設定される。
【０１９３】
Ｓ１４では、ＤＰ−ＧＷ＃１は、ＤＰ−ＧＷ＃２よりＲＥＱＵＥＳＴメッセージを受信すると、ＲＥＱＵＥＳＴメッセージに含まれるコンテンツ名＝“temp_LocA_sensor001”
で、ＩＤキャッシュ５６−６を検索し、コンテンツの値＝２８を抽出し、ＤＡＴＡメッセージを生成し、ＤＰ−ＧＷ＃２に送信する（図２４、ＯＰ２１〜ＯＰ２４）。
【０１９４】
生成されるＤＡＴＡメッセージには、送信元ＩＰアドレス＝ＤＰ−ＧＷ＃１のＩＰアドレス、宛先ＩＰアドレス＝ＤＰ−ＧＷ＃２のＩＰアドレス、コンテンツ名＝“temp_LocA_sensor001”、クエリＩＤ＝“sf200_query01”、コンテンツの値＝２８、制御情報＝“lifetime=300s”が設定される。なお、ＤＰ−ＧＷ＃２からのＲＥＱＵＥＳＴメッセージに
要求ＩＤが含まれていないため、生成されるＤＡＴＡメッセージにも要求ＩＤは含まれていない。
【０１９５】
ＤＰ−ＧＷ＃２は、ＤＰ−ＧＷ＃１よりＤＡＴＡメッセージを受信すると、ＩＤキャッシュ５６−６にコンテンツ名＝“temp_LocA_sensor001”、コンテンツの値＝２８、制御
情報＝“lifetime=300s”を設定する（図２４、ＯＰ３４）。また、ＤＰ−ＧＷ＃２は、
処理保留リスト５６−１を、要求ＩＤ=“sf200_query01”で検索し、要求元ＩＰアドレスであるスマートフォン＃３のＩＰアドレスを抽出し、ＤＡＴＡメッセージを中継する(図
２４、ＯＰ３１)。なお、ＤＰ−ＧＷ＃１からのＤＡＴＡメッセージには要求ＩＤが含ま
れていないため、ＤＰ−ＧＷ＃２は、ＤＡＴＡメッセージのクエリＩＤを要求ＩＤとして用い、処理保留リスト５６−１を検索している。
【０１９６】
ＤＰ−ＧＷ＃２によって中継されるＤＡＴＡメッセージには、送信元ＩＰアドレス＝Ｄ
Ｐ−ＧＷ＃２のＩＰアドレス、宛先ＩＰアドレス＝スマートフォン＃３のＩＰアドレス、コンテンツ名＝“temp_LocA_sensor001”、クエリＩＤ＝“sf200_query01”、コンテンツの値＝２８、制御情報＝“lifetime=300s”が設定される。
【０１９７】
Ｓ１５では、ＤＰ−ＧＷ＃２は、クエリリスト５６−４をコンテンツ名＝“temp_LocA_sensor001”で検索し、スマートフォン＃４のエントリを抽出する。ＤＰ−ＧＷ＃２は、
抽出したエントリからクエリ要求元ＩＰアドレス＝スマートフォン＃４のＩＰアドレスを抽出し、ＲＥＤＩＲＥＣＴメッセージをスマートフォン＃４に送信する（図２４、ＯＰ３２）。生成されるＲＥＤＩＲＥＣＴメッセージには、送信元ＩＰアドレス＝ＤＰ−ＧＷ＃２のＩＰアドレス、宛先ＩＰアドレス＝スマートフォン＃４のＩＰアドレス、コンテンツ名＝“temp_LocA_sensor001”、クエリＩＤ＝“sf100_query01”、情報保持装置のＩＰアドレス＝ＤＰ−ＧＷ＃２のＩＰアドレスが設定される。
【０１９８】
Ｓ１６では、スマートフォン＃４は、ＲＥＤＩＲＥＣＴメッセージをＤＰ−ＧＷ＃２より受信すると、クエリリスト５６−４のコンテンツ名＝“temp_LocA_sensor001”、クエ
リＩＤ＝“sf100_query01”の情報保持装置のＩＰアドレスをＤＰ−ＧＷ＃１からＤＰ−
ＧＷ＃２に書き換える（図２６Ｃ，ＯＰ６４）。
【０１９９】
図３０のＳ１７では、ＤＰ−ＧＷ＃２は、プロキシサーバとしての処理により、自律的にＤＰ−ＧＷ＃１へＲＥＱＵＥＳＴメッセージを生成して、ＤＰ−ＧＷ＃１よりＤＡＴＡメッセージを受信してＩＤキャッシュ５６を更新する。Ｓ１７では、ＤＰ−ＧＷ＃２のプロキシプログラムは６００秒ごとの周期で、ＤＰ−ＧＷ＃１よりコンテンツ名＝“temp_LocA_sensor001”のコンテンツを取得している。
【０２００】
Ｓ１８では、スマートフォン＃３は、クエリリスト５６−４に従い、ＤＰ−ＧＷ＃２へＲＥＱＵＥＳＴメッセージを送信して、ＤＰ−ＧＷ＃２のＩＤキャッシュ５６−６よりコンテンツ名＝“temp_LocA_sensor001”のコンテンツを取得する。
【０２０１】
Ｓ１９では、スマートフォン＃４も、クエリリスト５６−４に従い、ＤＰ−ＧＷ＃２へＲＥＱＵＥＳＴメッセージを送信して、ＤＰ−ＧＷ＃２のＩＤキャッシュ５６−６よりコンテンツ名＝“temp_LocA_sensor001”のコンテンツを取得する。但し、スマートフォン
＃４のＲＥＱＵＥＳＴメッセージのプロキシ機能情報＝“synchronize=300s”であり、スマートフォン＃３のＲＥＱＵＥＳＴメッセージのプロキシ機能情報＝“synchronize=600s”より情報更新の頻度が高いため、ＤＰ−ＧＷ＃２は、実行中プロキシの制御パラメータを調整し、３００秒ごとの周期で、ＤＰ−ＧＷ＃１よりコンテンツ名＝“temp_LocA_sensor001”のコンテンツを取得するように変更する。
【０２０２】
＜第１実施形態の作用及び効果＞
第１実施形態では、情報処理システム１００内の各装置がクエリリスト５６−４を、ＱＥＲＹメッセージを受信、送信、又は中継することによって動的に生成する。クエリリスト５６−４には、検索対象のコンテンツの情報保持装置のＩＰアドレスが含まれている。そのため、クエリリスト５６−４にＱＵＥＲＹメッセージの検索対象のコンテンツ名のエントリが保持されている場合には、ＧＷ装置１は、他の装置からの該コンテンツ名を含むＱＵＥＲＹメッセージに対して、クエリリスト５６−４の該当エントリに基づいて、該コンテンツの情報保持装置のＩＰアドレスを返すことができる。
【０２０３】
また、ＧＷ装置１が、クエリリスト５６−４にクエリ要求元装置として記録されていない装置から、クエリリスト５６−４にエントリのあるコンテンツに対してＱＵＥＲＹメッセージを受信し、該装置にＮＯＴＩＦＹメッセージを送信後、該装置からＲＥＱＵＥＳＴメッセージを受信した場合には、該ＧＷ装置１は、対象のコンテンツのプロキシとして動
作を開始する。クエリリスト５６−４に記録されていない装置から、クエリリスト５６−４にエントリのあるコンテンツに対してＱＵＥＲＹメッセージを受信する場合には、該ＧＷ装置１は、情報配信の分岐点であることが示される。したがって、第１実施形態によれば、システム内の情報配信の分岐点に、動的にプロキシサーバを配置することができる。
【０２０４】
また、クエリリスト５６−４内のエントリの情報保持装置のＩＰアドレスが変更になった場合には、ＧＷ装置１は、コンテンツ名が同じエントリのクエリ要求元装置に対してＲＥＤＩＲＥＣＴメッセージを送信して、新しい情報保持装置のＩＰアドレスを通知する。これによって、該ＧＷ装置１をプロキシサーバとする情報参照装置のクエリリスト５６−４を更新することができ、クエリリスト５６−４の整合性を保つことができる。また、新しい情報保持装置がＧＷ装置１自身である場合には、該ＧＷ装置１がＲＥＤＩＲＥＣＴメッセージを通知した情報参照装置のプロキシサーバとなり、ネットワーク内の通信を集約することができ、ネットワークを効率よく使用することができる。
【０２０５】
また、第１実施形態では、情報参照元装置が、ＲＥＱＵＥＳＴメッセージ内に、プロキシのアルゴリズムに関する設定情報（プロキシ機能情報）を付加することで、プロキシサーバとして動作するＧＷ装置１に、情報参照元装置の設定を反映させることができる。例えば、ＲＥＱＵＥＳＴメッセージ内のプロキシ機能情報によってコンテンツの取得間隔が指定されることで、情報参照装置が所望する頻度で、コンテンツの更新が可能になる。
【０２０６】
また、プロキシ動作を開始するＧＷ装置１は、更に、複数の情報参照装置からのＲＥＱＵＥＳＴメッセージに含まれるプロキシ機能のアルゴリズムに関する設定情報（プロキシ機能情報）を統合的に調整する。これにより、例えば、或る情報参照装置が要求するコンテンツの取得間隔が６０秒で、他の情報参照装置が要求するコンテンツの取得間隔が３０秒の場合、プロキシとして動作するＧＷ装置１が情報生成元装置からコンテンツを取得する間隔を３０秒に設定することで、全ての情報参照装置の要求を満たすが可能になる。
【０２０７】
以上のように、第１実施形態によれば、ネットワーク内の各装置に対して、クエリリスト５６−４を用いたコンテンツの検索機能と、コンテンツの取得要求に対して動的にプロキシ機能を配置しクエリリストを修正する機能とを提供することで、キャシュサーバのような特殊な装置を静的に配置することなく、コンテンツへの要求が集中する箇所に自律的に通信データの中継機能のプロキシを配置可能になる。これによって、ネットワーク全体のトラフィックやキャッシュサーバとして使用されるメモリ量を低減することができる。
【０２０８】
また、第１実施形態では、ＧＷ装置１は、プロキシとしての動作を行う場合には、ＲＥＱＵＥＳＴメッセージに含まれるプロキシ制御情報で特定される実行オブジェクト（プロキシプログラム）を起動する。これによって、ＲＥＱＵＥＳＴメッセージが要求するコンテンツに応じた実行オブジェクトが起動される。そのため、コンテンツの値が頻繁に変化する場合にも、実行オブジェクトによって、定期的に最新のコンテンツの値が取得されるので、プロキシサーバとして動作する場合、ＧＷ装置１は、最新のコンテンツの値を保持し、情報参照装置に最新のコンテンツの値を提供することができる。
【０２０９】
＜その他＞
第１実施形態では、センサのような動的にコンテンツの値が変化する場合に、データを分散配置して同期するプロキシの例が示されたが、プロキシ動作は、データの同期制御に限定されない。プロキシとして動作する装置では、通信は一度アプリケーション層で終端されるため、キャッシュサーバのようなコンテンツの静的なキャッシュや、複数のコンテンツ保持装置と連携した負荷分散、アプリケーションレベルでのデータのフィルタリング等の、アプリケーション層での情報解析が必要なプロキシ動作が容易に実現できる。
【０２１０】
また、第１実施形態では、或るコンテンツに対して２台目の情報参照装置からＲＥＱＵＥＳＴメッセージを受信すると、ＧＷ装置１はプロキシサーバとしての動作を開始した（図７参照）が、ＧＷ装置１がプロキシサーバとしての動作を開始する条件は、これに限定されない。例えば、図４の(４)の処理のように、或るコンテンツに対して１台目の情報参照装置からのＱＵＥＲＹメッセージに対するＮＯＴＩＦＹメッセージを通知した時点で、ＧＷ装置１はプロキシサーバとしての動作を開始するようにしてもよい。
【０２１１】
すなわち、所定の開始条件を満たすことによって、ＧＷ装置１がプロキシサーバとしての動作を開始するようにすることができる。第１実施形態で説明された例の場合には、開始条件は、コンテンツに対して２台目の情報参照装置からのＲＥＱＵＥＳＴメッセージを受信すること、換言すると、クエリリスト５６−４に情報保持装置ＩＰアドレスが設定済みの該当コンテンツのエントリが２つ以上存在し、２台目の情報参照装置からＲＥＱＵＥＳＴメッセージを受信すること、である。
【０２１２】
或るコンテンツに対して１台目の情報参照装置からのＱＵＥＲＹメッセージに対するＮＯＴＩＦＹメッセージを通知した時点で、ＧＷ装置１はプロキシサーバとしての動作を開始場合には、開始条件は、クエリリスト５６−４に情報保持装置ＩＰアドレスが設定済みの該当コンテンツのエントリが１つ以上存在すること、である。
【０２１３】
すなわち、クエリリスト５６−４内の情報保持装置ＩＰアドレスが設定済みの該当コンテンツのエントリの数によって、開始条件を制御することができる。
【０２１４】
なお、開始条件は、コンテンツ種別ごとに異なっていてもよい。また、開始条件は、プロキシ実行条件とは、同じであってもよい。開始条件は、「所定の条件」の一例である。
【符号の説明】
【０２１５】
５        情報処理モジュール
６        情報参照モジュール
７        情報登録モジュール
５１      情報参照プロキシ部
５２      情報検索部
５３      情報公開部
５４      通信制御部
５６−１  処理保留リスト
５６−２  プロキシ情報
５６−３  プロキシ管理リスト
５６−４  クエリリスト
５６−５  リンク情報
５６−６  ＩＤキャッシュ
６１      情報参照部
７１      情報生成部
７２      命名規則リスト
【図１０】
2015115014.tif 000003
【図１１】
2015115014.tif 000004
【図１２】
2015115014.tif 000005
【図１３】
2015115014.tif 000006
【図１４】
2015115014.tif 000007
【図１５】
2015115014.tif 000008
【図１６】
2015115014.tif 000009
【図１７】
2015115014.tif 000010
【図１８】
2015115014.tif 000011
【図１９】
2015115014.tif 000012
【図２０】
2015115014.tif 000013
【図２１】
2015115014.tif 000014
【図２２】
2015115014.tif 000015
【図２３】
2015115014.tif 000016
【図２４】
2015115014.tif 000017
【図２５】
2015115014.tif 000018
【図２６Ａ】
2015115014.tif 000019
【図２６Ｂ】
2015115014.tif 000020
【図２６Ｃ】
2015115014.tif 000021
【図２７】
2015115014.tif 000022
【図２８】
2015115014.tif 000023
【図２９】
2015115014.tif 000024
【図３０】
2015115014.tif 000025
【図１】
2015115014.tif 000026
【図２】
2015115014.tif 000027
【図３】
2015115014.tif 000028
【図４】
2015115014.tif 000029
【図５】
2015115014.tif 000030
【図６】
2015115014.tif 000031
【図７】
2015115014.tif 000032
【図８】
2015115014.tif 000033
【図９】
2015115014.tif 000034