(57)【要約】【課題】  リアルタイム性が高いデータを効果的にクライアント装置に提供することができる情報処理装置、データ提供システム、データ提供方法、及びデータ提供プログラムを提供する。【解決手段】  情報処理装置は、データと前記データを記憶した時刻を示す時刻情報を記憶する記憶部と、データに対応する識別子と、前記データに対応付けられた時刻に関する条件を含む要求メッセージを要求元装置から受信する受信部と、前記識別子に対応し、前記条件を満たす前記時刻情報が対応付けられた特定のデータを前記記憶部から検索する検索部と、検索した結果、前記記憶部に前記特定のデータが記憶されている場合には、前記記憶部から前記特定のデータを取得し、前記特定のデータが前記記憶部に記憶されていない場合には、前記特定のデータを他の装置から取得する取得部と、前記取得部が取得した前記特定のデータを前記要求元装置に送信する送信部とを有する。【選択図】図４
2017182665.tif 000002
【特許請求の範囲】
【請求項１】
データと前記データを記憶した時刻を示す時刻情報を記憶する記憶部と、
データに対応する識別子と、前記データに対応付けられた時刻に関する条件を含む要求メッセージを要求元装置から受信する受信部と、
前記識別子に対応し、前記条件を満たす前記時刻情報が対応付けられた特定のデータを前記記憶部から検索する検索部と、
検索した結果、前記記憶部に前記特定のデータが記憶されている場合には、前記記憶部から前記特定のデータを取得し、前記特定のデータが前記記憶部に記憶されていない場合には、前記特定のデータを他の装置から取得する取得部と、
前記取得部が取得した前記特定のデータを前記要求元装置に送信する送信部とを有することを特徴とする情報処理装置。
【請求項２】
前記取得部は、前記記憶部に記憶されたデータのうち、前記識別子に対応し、前記条件を満たさない前記時刻情報が対応付けられたデータについて、前記特定のデータを前記他の装置から取得することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記要求メッセージには、前記要求元装置に送信する前記特定のデータを制限する制限条件が含まれており、
前記送信部は、前記取得部が取得した前記特定のデータのうち、前記制限条件を満たすデータを前記要求元装置に送信することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記要求メッセージには、前記他の装置から前記特定のデータが取得されない場合の前記記憶部内のデータの送信の可否を示す制御情報が含まれており、
前記送信部は、前記取得部が前記他の装置から前記特定のデータを取得できない場合、前記制御情報に基づいて、前記記憶部に記憶されたデータのうち、前記識別子に対応し、前記条件を満たさない前記時刻情報が対応付けられたデータを前記要求元装置に送信することを特徴とする請求項１乃至３の何れかに記載の情報処理装置。
【請求項５】
情報処理装置と、
データに対応する識別子と、前記データに対応付けられた時刻に関する条件を含む要求メッセージを前記情報処理装置に送信する要求元装置とを有し、
前記情報処理装置は、
データと前記データを記憶した時刻を示す時刻情報を記憶する記憶部と、
前記要求メッセージを前記要求元装置から受信する受信部と、
前記識別子に対応し、前記条件を満たす前記時刻情報が対応付けられた特定のデータを前記記憶部から検索する検索部と、
検索した結果、前記記憶部に前記特定のデータが記憶されている場合には、前記記憶部から前記特定のデータを取得し、前記特定のデータが前記記憶部に記憶されていない場合には、前記特定のデータを他の装置から取得する取得部と、
前記取得部が取得した前記特定のデータを前記要求元装置に送信する送信部とを有することを特徴とするデータ提供システム。
【請求項６】
データに対応する識別子と、前記データに対応付けられた時刻に関する条件を含む要求メッセージを要求元装置から受信する工程と、
データと前記データを記憶した時刻を示す時刻情報を記憶する記憶部から、前記識別子に対応し、前記条件を満たす前記時刻情報が対応付けられた特定のデータを検索する工程と、
検索した結果、前記記憶部に前記特定のデータが記憶されている場合には、前記記憶部から前記特定のデータを取得し、前記特定のデータが前記記憶部に記憶されていない場合には、前記特定のデータを他の装置から取得する工程と、
取得した前記特定のデータを前記要求元装置に送信する工程とを、コンピュータが実行することを特徴とするデータ提供方法。
【請求項７】
データに対応する識別子と、前記データに対応付けられた時刻に関する条件を含む要求メッセージを要求元装置から受信し、
データと前記データを記憶した時刻を示す時刻情報を記憶する記憶部から、前記識別子に対応し、前記条件を満たす前記時刻情報が対応付けられた特定のデータを検索し、
検索した結果、前記記憶部に前記特定のデータが記憶されている場合には、前記記憶部から前記特定のデータを取得し、前記特定のデータが前記記憶部に記憶されていない場合には、前記特定のデータを他の装置から取得し、
取得した前記特定のデータを前記要求元装置に送信する、処理を、コンピュータに実行させることを特徴とするデータ提供プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、情報処理装置、データ提供システム、データ提供方法、及びデータ提供プログラムに関する。
【背景技術】
【０００２】
ＩｏＴ（Internet of Things）を実現するため、企業間で、例えば交通渋滞情報のようなリアルタイム性の高いデータを交換する企業間連携システムが検討されている。例えば、垂直統合型の企業間連携システムでは、複数の企業のアプリケーションが、個別のプラットフォームによりデバイスからデータを収集して各々のデータベースに蓄積し、ＡＰＩ（Application Programming Interface）を介して互いにデータベースを参照する。また、水平統合側の企業間連携システムでは、複数の企業のアプリケーションがプラットフォームを共有することにより、デバイスから収集されたデータが、メッシュ状のコネクションを介して様々なサーバに柔軟にルーティングされる。
【０００３】
このような企業間連携システムでは、情報を必要とするユーザが、個別にデータベースにアクセスして所望のデータを取得するため、キャッシュサーバを利用することができず、ユーザ間において情報を共有することができない。このため、企業間連携システムにおいて、ネットワークのトラフィック量を低減することは難しい。
【０００４】
また、インターネットにアクセスするユーザの端末に、所望のデータをキャッシュしておき、アクセス時にキャッシュを利用することが知られているが（例えば特許文献１）、ユーザ間でデータを共有することができないため、ネットワークのトラフィック量を効果的に低減することは難しい。
【０００５】
これに対し、ＩＰ（Internet Protocol）アドレスなどに基づく通信とは異なり、データの名称に基づき通信を行う技術であるＩＣＮ（Information Centric Networking）（例えば非特許文献１，２参照）を企業間連携システムなどのＩｏＴシステムに適用することが検討されている。ＩＣＮにおいて、クライアント装置から送信されたデータの要求メッセージは、ネットワーク内の各ノードの中継装置を経由して、そのデータを保有する最短距離のサーバまで転送される。
【０００６】
サーバは、要求対象データを含む応答メッセージを生成し、各ノードの中継装置を経由して、クライアント装置に送信する。このとき、各ノードの中継装置は、データをキャッシュしておき、その後、他のクライアント装置から要求メッセージが送信された場合、そのクライアント装置にキャッシュデータを送信する。
【０００７】
このため、ＩＣＮでは、クライアント装置間においてデータが共有され、最短距離のノードの中継装置からクライアント装置にデータを提供することが可能となるため、ネットワークのトラフィック量が効果的に低減される。なお、ＩＣＮの研究プロジェクトとしては、ＣＣＮ（Content Centric Networking）やＮＤＮ（Named Data Networking）などが知られている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０００−３５９３５号公報
【非特許文献】
【０００９】
【非特許文献１】L.Zhang et al., Named data networking (NDN) project, PARC Technical Report 2010-003, 2010
【非特許文献２】V.Jscobson et al., Networking named content, ACM CoNext, pp.1-12, 2009
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、ＩＣＮにおいて、中継装置からクライアント装置にキャッシュデータを送信した場合、そのキャッシュデータがキャッシュされたタイミングによっては、古いデータをクライアント装置に提供することになる。このため、ＩＣＮを例えば上記の企業間連携システムなどに適用しても、リアルタイム性が高いデータを交換する場合には、有効にシステムが機能しないおそれがある。
【００１１】
そこで本件は上記の課題に鑑みてなされたものであり、リアルタイム性が高いデータを効果的にクライアント装置に提供することができる情報処理装置、データ提供システム、データ提供方法、及びデータ提供プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本明細書に記載の情報処理装置は、データと前記データを記憶した時刻を示す時刻情報を記憶する記憶部と、データに対応する識別子と、前記データに対応付けられた時刻に関する条件を含む要求メッセージを要求元装置から受信する受信部と、前記識別子に対応し、前記条件を満たす前記時刻情報が対応付けられた特定のデータを前記記憶部から検索する検索部と、検索した結果、前記記憶部に前記特定のデータが記憶されている場合には、前記記憶部から前記特定のデータを取得し、前記特定のデータが前記記憶部に記憶されていない場合には、前記特定のデータを他の装置から取得する取得部と、前記取得部が取得した前記特定のデータを前記要求元装置に送信する送信部とを有する。
【００１３】
本明細書に記載のデータ提供システムは、情報処理装置と、データに対応する識別子と、前記データに対応付けられた時刻に関する条件を含む要求メッセージを前記情報処理装置に送信する要求元装置とを有し、前記情報処理装置は、データと前記データを記憶した時刻を示す時刻情報を記憶する記憶部と、前記要求メッセージを前記要求元装置から受信する受信部と、前記識別子に対応し、前記条件を満たす前記時刻情報が対応付けられた特定のデータを前記記憶部から検索する検索部と、検索した結果、前記記憶部に前記特定のデータが記憶されている場合には、前記記憶部から前記特定のデータを取得し、前記特定のデータが前記記憶部に記憶されていない場合には、前記特定のデータを他の装置から取得する取得部と、前記取得部が取得した前記特定のデータを前記要求元装置に送信する送信部とを有する。
【００１４】
本明細書に記載のデータ提供方法は、データに対応する識別子と、前記データに対応付けられた時刻に関する条件を含む要求メッセージを要求元装置から受信する工程と、データと前記データを記憶した時刻を示す時刻情報を記憶する記憶部から、前記識別子に対応し、前記条件を満たす前記時刻情報が対応付けられた特定のデータを検索する工程と、検索した結果、前記記憶部に前記特定のデータが記憶されている場合には、前記記憶部から前記特定のデータを取得し、前記特定のデータが前記記憶部に記憶されていない場合には、前記特定のデータを他の装置から取得する工程と、取得した前記特定のデータを前記要求元装置に送信する工程とを、コンピュータが実行する方法である。
【００１５】
本明細書に記載のデータ提供プログラムは、データに対応する識別子と、前記データに対応付けられた時刻に関する条件を含む要求メッセージを要求元装置から受信し、データと前記データを記憶した時刻を示す時刻情報を記憶する記憶部から、前記識別子に対応し、前記条件を満たす前記時刻情報が対応付けられた特定のデータを検索し、検索した結果、前記記憶部に前記特定のデータが記憶されている場合には、前記記憶部から前記特定のデータを取得し、前記特定のデータが前記記憶部に記憶されていない場合には、前記特定のデータを他の装置から取得し、取得した前記特定のデータを前記要求元装置に送信する、処理を、コンピュータに実行させるプログラムである。
【発明の効果】
【００１６】
リアルタイム性が高いデータを効果的にクライアント装置に提供することができる。
【図面の簡単な説明】
【００１７】
【図１】データ提供システムの一例を示す構成図である。
【図２】要求元装置の一例を示す構成図である。
【図３】中継装置の一例を示す構成図である。
【図４】中継装置の機能構成の一例を示す構成図である。
【図５】要求管理テーブル及びデータベースの一例を示す図である。
【図６】要求メッセージの受信処理の一例を示すフローチャートである。
【図７】要求メッセージの送信処理の一例を示すフローチャートである。
【図８】キャッシュデータを含む応答メッセージの送信処理の一例を示すフローチャートである。
【図９】応答メッセージの受信処理の一例を示すフローチャートである。
【図１０】データ提供装置から取得したデータを含む応答メッセージの送信処理の一例を示すフローチャートである。
【図１１】センサシステムの比較例を示す構成図である。
【図１２】センサシステムの他の比較例を示す構成図である。
【図１３】センサシステムの他の比較例を示す構成図である。
【図１４】センサシステムの実施例を示す構成図である。
【図１５】センサシステムの実施例を示す構成図である。
【図１６】センサシステムの実施例を示す構成図である。
【図１７】センサシステムにおける要求管理テーブルの例を示す図である。
【図１８】センサシステムの実施例を示す構成図である。
【図１９】センサシステムにおけるデータベースの例を示す図である。
【図２０】センサシステムにおける要求管理テーブルの他例を示す図である。
【図２１】センサシステムにおけるデータベースの他例を示す図である。
【図２２】交通情報システムの実施例を示す構成図である。
【図２３】中継装置に該当データがキャッシュされていない場合の交通情報システムの動作例を示すシーケンス図である。
【図２４】交通情報システムにおける要求管理テーブル及びデータベースの例を示す図である。
【図２５】中継装置に該当データがキャッシュされている場合の交通情報システムの動作例を示すシーケンス図である。
【図２６】交通情報システムにおける要求管理テーブル及びデータベースの他例を示す図である。
【図２７】データ提供サーバから応答メッセージの受信がない場合の交通情報システムの動作例を示すシーケンス図である。
【発明を実施するための形態】
【００１８】
図１は、データ提供システムの一例を示す構成図である。データ提供システムは、アプリケーションによりデータを要求する要求元装置ＲＱ＃１〜＃５と、データを提供するデータ提供装置ＰＶ＃１〜＃５と、要求元装置ＲＱ＃１〜＃５とデータ提供装置ＰＶ＃１〜＃５の間の通信を中継する中継装置ＴＲ＃１〜＃４とを有する。
【００１９】
要求元装置ＲＱ＃１〜＃５、データ提供装置ＰＶ＃１〜＃５、及び中継装置ＴＲ＃１〜＃４は、一例としてＩＣＮの技術に基づいて通信する。このため、要求元装置ＲＱ＃１〜＃５、データ提供装置ＰＶ＃１〜＃５、及び中継装置ＴＲ＃１〜＃４は、ＩＰアドレスではなく、データの名称に基づき通信を行う。
【００２０】
要求元装置ＲＱ＃１〜＃５としては、例えばスマートフォンやパーソナルコンピュータなどの端末またはサーバなどのクライアント装置が挙げられる。要求元装置ＲＱ＃１〜＃５は、例えば無線ＬＡＮ（Local Area Network）などネットワークＮＷ＃３，ＮＷ＃４を介して中継装置ＴＲ＃１，ＴＲ＃２と接続されている。
【００２１】
データ提供装置ＰＶ＃１〜＃５としては、例えばサーバやセンサ装置などが挙げられる。データ提供装置ＰＶ＃１〜＃５は、ＬＡＮなどのネットワークＮＷ＃１，ＮＷ＃２を介して中継装置ＴＲ＃３，ＴＲ＃４と接続されている。
【００２２】
中継装置ＴＲ＃１〜＃４は、ネットワークＮＷ＃５に設けられており、一例としてメッシュ状に接続されている。中継装置ＴＲ＃１〜＃４は、要求元装置ＲＱ＃１〜＃５から送信された要求メッセージ（要求ＭＳＧ）をデータ提供装置ＰＶ＃１〜＃５に中継し、データ提供装置ＰＶ＃１〜＃５から送信された応答メッセージ（応答ＭＳＧ）を要求元装置ＲＱ＃１〜＃５に中継する。
【００２３】
中継装置ＴＲ＃１〜＃４は、情報処理装置の一例であり、中継した応答メッセージに含まれる要求対象データをデータベースにキャッシュし、再度、要求メッセージを受信したとき、データベースを検索する。中継装置ＴＲ＃１〜＃４は、要求対象データがデータベースに存在する場合、該当するキャッシュデータを含む応答メッセージを要求元装置ＲＱ＃１〜＃５に送信する。
【００２４】
中継装置ＴＲ＃１〜＃４には、データ提供装置ＰＶ＃１〜＃５の応答メッセージを中継するたびにキャッシュデータが蓄積されるため、データ提供装置ＰＶ＃１〜＃５に代わって要求元装置ＲＱ＃１〜＃５にデータを提供することができる。このため、要求元装置ＲＱ＃１〜＃５は、要求メッセージの送信により最短距離の中継装置ＴＲ＃１〜＃４からデータを取得することができ、ネットワークＮＷ＃１，ＮＷ＃２のトラフィック量を低減することが可能となる。
【００２５】
符号Ｇ０は要求メッセージの一例を示す。要求メッセージは、名前空間内にスラッシュ（「／」）を介して複数の項目を挿入することにより構成されている。要求メッセージには、「機能ＩＤ」、「利用条件」、「処理情報」、及び「名称」が含まれている。「機能ＩＤ」は、後述する本実施例の機能の適用を示す識別子である。
【００２６】
「利用条件」は、要求元装置ＲＱ＃１〜＃５の要求対象データに対応付けられた時刻に関する条件の一例である。利用条件としては、例えば、要求対象データの生成後の経過時刻が挙げられるが、これに限定されない。
【００２７】
中継装置ＴＲ＃１〜＃４は、要求対象データをキャッシュするとき、要求対象データとともに現在時刻、つまりキャッシュした時刻（以下、「キャッシュ時刻」）をデータベースに登録する。中継装置ＴＲ＃１〜＃４は、要求メッセージを受信したとき、キャッシュ時刻が利用条件を満たすキャッシュデータを検索し、該当するキャッシュデータを応答メッセージに含めて要求元装置ＲＱ＃１〜＃５に送信する。このため、要求元装置ＲＱ＃１〜＃５は、利用条件を指定することにより、リアルタイム性の高いデータを有効に取得することができる。なお、利用条件は、一例として、変数「freshness」により指定される。
【００２８】
「処理情報」は、応答メッセージを要求元装置ＲＱ＃１〜＃５に出力する処理を指定する情報である。処理情報としては、例えば、要求元装置ＲＱ＃１〜＃５に送信するキャッシュデータを制限する制限条件（変数「value」で指定）や、データ提供装置ＰＶ＃１〜＃５からデータが取得されない場合のキャッシュデータの送信可否を示す制御情報（変数「use」で指定）が挙げられる。なお、処理情報に限定はなく、例えばデータの統計処理などが処理情報で指定されてもよい。
【００２９】
「名称」は、要求対象データを指定する情報であり、要求対象データに対応する識別子の一例である。中継装置ＴＲ＃１〜＃４は、名称に基づきキャッシュデータを検索する。
【００３０】
このように、要求メッセージには、要求対象データが名称により指定されるとともに、要求対象データが生成された時刻に関する利用条件が指定されている。また、要求メッセージには、要求元装置ＲＱ＃１〜＃５に送信するデータを制限する制限条件や、データ提供装置ＰＶ＃１〜＃５から要求対象データが取得されない場合のキャッシュデータの送信の可否を示す制御情報が、処理情報として指定されている。以下に、要求メッセージを送信する要求元装置ＲＱ＃１〜＃５と、要求メッセージを受信する中継装置ＴＲ＃１〜＃４について述べる。
【００３１】
図２は、要求元装置ＲＱ＃１〜＃５の一例を示す構成図である。要求元装置ＲＱ＃１〜＃５は、ＣＰＵ（Central Processing Unit）２０、ＲＯＭ（Read Only Memory）２１、ＲＡＭ（Random Access Memory）２２、記憶デバイス２３、通信ポート２４、入力装置２５、及び出力装置２６を有する。ＣＰＵ２０は、互いに信号の入出力ができるように、ＲＯＭ２１、ＲＡＭ２２、記憶デバイス２３、通信ポート２４、入力装置２５、及び出力装置２６と、バス２９を介して接続されている。
【００３２】
ＲＯＭ２１は、ＣＰＵ２０を駆動するプログラムが格納されている。ＲＡＭ２２は、ＣＰＵ２０のワーキングメモリとして機能する。通信ポート２４は、例えば無線ＬＡＮ（Local Area Network）カードやＮＩＣ（Network Interface Card）であり、他装置との通信を処理する。
【００３３】
入力装置２５は、要求元装置ＲＱ＃１〜＃５に情報を入力する装置である。入力装置２５としては、例えばキーボード、マウス、及びタッチパネルなどが挙げられる。入力装置２５は、入力された情報を、バス２９を介しＣＰＵ２０に出力する。
【００３４】
出力装置２６は、要求元装置ＲＱ＃１〜＃５の情報を出力する装置である。出力装置２６としては、例えばディスプレイ、タッチパネル、及びプリンタなどが挙げられる。出力装置２６は、ＣＰＵ２０からバス２９を介して情報を取得して出力する。
【００３５】
記憶デバイス２３は、例えば、ＨＤＤ（Hard Disk Drive）や、ＥＰＲＯＭ（Erasable Programmable ROM）などの不揮発性メモリなどである。記憶デバイス２３には、データ提供装置ＰＶ＃１〜＃５または中継装置ＴＲ＃１〜＃４から取得したデータなどが記憶される。
【００３６】
ＣＰＵ２０は、ＲＯＭ２１からプログラムを読み込むと、機能として、アプリケーション（ＡＰＬ）２００、要求処理部２０１、及び応答処理部２０２が形成される。アプリケーション２００は、データ提供装置ＰＶ＃１〜＃５またはデータ提供装置ＰＶ＃１〜＃５から取得したデータを利用することにより所定のサービスをユーザに提供するソフトウェアである。アプリケーション２００としては、後述するように会議室の使用状況を通知するものや、最短時間で到着するバスの情報を通知するものが挙げられるが、限定はない。
【００３７】
アプリケーション２００は、データ提供装置ＰＶ＃１〜＃５のデータの取得を要求処理部２０１に依頼する。要求処理部２０１は、アプリケーション２００から依頼を受けると、要求メッセージを生成し、通信ポート２４を介して送信する。応答処理部２０２は、データ提供装置ＰＶ＃１〜＃５または中継装置ＴＲ＃１〜＃４から応答メッセージを受信し、応答メッセージから要求対象データを取得する。応答処理部２０２は、要求対象データを記憶デバイス２３に格納し、その旨をアプリケーション２００に通知する。
【００３８】
このような構成により、要求元装置ＲＱ＃１〜＃５は、データ提供装置ＰＶ＃１〜＃５または中継装置ＴＲ＃１〜＃４からデータを取得して、ユーザに所定のサービスを提供する。
【００３９】
図３は、中継装置ＴＲ＃１〜＃４の一例を示す構成図である。中継装置ＴＲ＃１〜＃４は、ＣＰＵ１０、ＲＯＭ１１、ＲＡＭ１２、ＨＤＤや不揮発性メモリなどの記憶デバイス１３、及び複数の通信ポート１４を有する。ＣＰＵ１０は、互いに信号の入出力ができるように、ＲＯＭ１１、ＲＡＭ１２、記憶デバイス１３、及び複数の通信ポート１４と、バス１９を介して接続されている。
【００４０】
ＲＯＭ１１は、ＣＰＵ１０を駆動するプログラムが格納されている。ＲＯＭ１１内のプログラムには、実施例のデータ提供方法を実行するデータ提供プログラムが含まれる。
【００４１】
ＲＡＭ１２は、ＣＰＵ１０のワーキングメモリとして機能する。記憶部の一例である記憶デバイス１３には、キャッシュデータが登録されたデータベースなどが記憶されている。通信ポート１４は、例えばＰＨＹ（Physical Layer）／ＭＡＣ（Media Access Control）の通信処理機能を備えたデバイスである。通信ポート１４は、他の中継装置ＴＲ＃１〜＃４、要求元装置ＲＱ＃１〜＃５、及びデータ提供装置ＰＶ＃１〜＃５との通信を処理する。
【００４２】
ＣＰＵ１０は、プログラムを実行するコンピュータの一例であり、ＲＯＭ１１からプログラムを読み込むと、以下に述べるように、データ提供プログラムを実行するための各種の機能が形成される。
【００４３】
図４は、中継装置ＴＲ＃１〜＃４の機能構成の一例を示す構成図である。ＣＰＵ１０は、データ提供プログラムの機能として、要求受付部１００、検索部１０１、データ取得部１０２、キャッシュ処理部１０３、計時部１０４、及び応答部１０５とを有する。また、記憶デバイス１３には、要求管理テーブル１３０及びデータベース１３１（ＤＢ）が記憶されている。
【００４４】
要求受付部１００は、受信部の一例であり、要求元装置ＲＱ＃１〜＃５から通信ポート１４を介して、要求メッセージを受信する。要求受付部１００は、要求メッセージから機能ＩＤ、利用条件、処理情報、及び名称を取得して要求管理テーブル１３０に取得する。
【００４５】
要求受付部１００は、機能ＩＤを認識した場合、利用条件、処理情報、及び名称を要求管理テーブル１３０に登録する。これにより、実施例のデータ提供方法が実行される。なお、要求受付部１００により機能ＩＤが認識されない場合、利用条件及び処理情報を用いない、名称のみに基づくキャッシュデータの検索処理が実行される。要求受付部１００は、登録が完了すると、その旨を検索部１０１に通知する。
【００４６】
検索部１０１は、要求受付部１００からの通知を受けると、要求メッセージで指定された名称に該当し、キャッシュ時刻が利用条件を満たすキャッシュデータをデータベース１３１から検索する。つまり、検索部１０１は、キャッシュ時刻に基づいて、キャッシュデータが利用条件を満たすか否かを判定する。
【００４７】
図５には、要求管理テーブル１３０及びデータベース１３１の一例が示されている。データベース１３１には、キャッシュデータの名称であるデータ名、キャッシュデータの値であるデータ値、及びキャッシュデータのキャッシュ時刻が登録されている。すなわち、記憶デバイス１３には、データとそのキャッシュ時刻が記憶されている。ここで、キャッシュ時刻は、データを記憶した時刻を示す時刻情報の一例である。本例では、データ値として、後述する会議室の空き状況の検索システムにおいて使用される値（「on」：使用中、「off」：空き）を例示しているが、これに限定されない。
【００４８】
また、要求管理テーブル１３０には、要求ＩＤ、要求元アドレス、利用条件、処理情報、名称、データ名、要求フラグ、及び受信フラグが登録されている。
【００４９】
要求ＩＤは、要求メッセージの識別子であり、要求受付部１００により決定される。要求元アドレスは、要求メッセージの送信元の要求元装置ＲＱ＃１〜＃５のアドレスである。データ名は、要求対象データの名称に該当するデータ名である。要求フラグは、データ提供装置ＰＶ＃１〜＃５に対する要求メッセージの要否を示し、受信フラグは、データ提供装置ＰＶ＃１〜＃５からの応答メッセージの受信の有無を示す。
【００５０】
要求受付部１００は、要求メッセージを受けると、要求ＩＤを決定し、要求メッセージの送信元アドレスを要求管理テーブル１３０に登録する。また、要求受付部１００は、機能ＩＤを認識した場合、利用条件、処理情報、及び名称を要求管理テーブル１３０に登録する。
【００５１】
検索部１０１は、データベース１３１から名称に該当するデータ名を検索する。検索部１０１は、名称に該当するデータ名を要求管理テーブル１３０に登録する。例えば、名称が「msensor」である場合、検索部１０１は、データベース１３１から、「msensor」を含むデータ名「msensor/A」〜「msensor/E」を検索して、要求管理テーブル１３０に登録する。
【００５２】
また、検索部１０１は、データベース１３１のキャッシュ時刻を参照することにより、名称に該当するキャッシュデータが利用条件を満たすか否かを判定する。例えば、利用条件として、freshness=60(sec)が指定されている場合、検索部１０１は、キャッシュ時刻が現在時刻の６０秒前から現在時刻までの範囲内であるとき、そのキャッシュデータが利用条件を満たすと判定する。一方、キャッシュ時刻が現在時刻の６０秒前より古いとき、検索部１０１は、そのキャッシュデータが利用条件を満たさないと判定する。なお、名称に該当し、キャッシュ時刻が利用条件を満たすキャッシュデータ、すなわち要求対象データは、特定のデータの一例である。
【００５３】
検索部１０１は、利用条件を満たすキャッシュデータについて、要求管理テーブル１３０の要求フラグを「０」にセットし、利用条件を満たさないキャッシュデータについて、要求管理テーブル１３０の要求フラグを「１」にセットする。また、検索部１０１は、名称に該当するキャッシュデータがデータベース１３１に登録されていないとき、要求管理テーブル１３０のデータ名に名称自体を登録し、要求フラグを「１」にセットする。
【００５４】
再び図４を参照すると、検索部１０１は、全てのデータ名の要求フラグをセットすると、その旨をデータ取得部１０２及び応答部１０５に通知する。
【００５５】
データ取得部１０２は、取得部の一例であり、検索部１３１が検索した結果、データベース１３１に、名称に該当し、キャッシュ時刻が利用条件を満たすキャッシュデータが記憶されている場合には、データベース１３１からそのキャッシュデータを取得する。また、データ取得部１０２は、そのキャッシュデータがデータベース１３１に記憶されていない場合には、そのデータをデータ提供装置ＰＶ＃１〜＃５から取得する。
【００５６】
より具体的には、データ取得部１０２は、名称に該当し、キャッシュ時刻が利用条件を満たすキャッシュデータがデータベース１３１に登録されていないとき、利用条件を満たす要求対象データをデータ提供装置ＰＶ＃１〜＃５から取得する。また、データ取得部１０２は、名称に該当するキャッシュデータのうち、利用条件を満たさないデータについて、利用条件を満たす要求対象データをデータ提供装置ＰＶ＃１〜＃５から取得する。このとき、データ取得部１０２は、要求管理テーブル１３０の要求フラグに基づき、要求対象データの取得先を判定する。
【００５７】
より具体的には、データ取得部１０２は、要求メッセージを生成する要求生成部１０２ａ、要求メッセージに対する応答メッセージを受信するデータ受信部１０２ｂ、及び応答メッセージの受信を監視するための監視タイマ１０２ｃとを有する。なお、監視タイマ１０２ｃは、生成された各要求メッセージに対応して設けられる。
【００５８】
要求生成部１０２ａは、検索部１０１からの通知を受けると、要求管理テーブル１３０の要求フラグを参照し、要求フラグが「１」であるデータ名の名称を含む要求メッセージを生成する。要求生成部１０２ａは、要求メッセージを、通信ポート１４を介してデータ提供装置ＰＶ＃１〜＃５に送信する。
【００５９】
これにより、名称に該当するキャッシュデータがデータベース１３１に登録されていない場合、またはキャッシュ時刻が利用条件を満たすキャッシュデータがデータベース１３１に登録されていない場合、要求生成部１０２ａは、キャッシュ時刻が利用条件を満たす要求対象データをデータ提供装置ＰＶ＃１〜＃５に要求する。要求生成部１０２ａは、要求メッセージを送信すると、その要求メッセージに対応する応答メッセージの受信を監視するための監視タイマ１０２ｃを起動する。
【００６０】
データ受信部１０２ｂは、監視タイマ１０２ｃにより応答メッセージの受信を監視する。データ受信部１０２ｂは、監視タイマ１０２ｃが満了する前に応答メッセージを受信した場合、監視タイマ１０２ｃを停止し、要求管理テーブル１３０の受信フラグを「１」にセットする。また、データ受信部１０２ｂは、監視タイマ１０２ｃが満了した場合、監視タイマ１０２ｃを停止し、要求管理テーブル１３０の受信フラグを「０」にセットする。
【００６１】
データ受信部１０２ｂは、受信フラグを「１」にセットすると、受信した応答メッセージとともに、その旨をキャッシュ処理部１０３に通知する。また、データ受信部１０２ｂは、要求管理テーブル１３０の要求フラグを参照し、要求フラグが「０」であるデータ名のキャッシュデータをデータベース１３１から読み出し、キャッシュ処理部１０３を介し応答部１０５に出力する。
【００６２】
キャッシュ処理部１０３は、データ受信部１０２ｂから通知を受けると、データ提供装置ＰＶ＃１〜＃５から取得した要求対象データをデータベース１３１にキャッシュする。より具体的には、キャッシュ処理部１０３は、計時部１０４から現在の時刻を取得して、応答メッセージに含まれる要求対象データとともにデータベース１３１に登録する。計時部１０４は時刻を計時し、その時刻はキャッシュ処理部１０３によりキャッシュ時刻としてデータベース１３１に登録される。なお、計時部１０４は、通信ポート１４を介して他の中継装置ＴＲ＃１〜＃４及びデータ提供装置ＰＶ＃１〜＃５と時刻同期を行う。
【００６３】
キャッシュ処理部１０３は、全ての応答メッセージに含まれる要求対象データのキャッシュが完了すると、その旨を応答部１０５に通知する。
【００６４】
応答部１０５は、送信部の一例であり、データ取得部１０２が取得したデータを要求元装置ＲＱ＃１〜＃５に送信する。より具体的には、応答部１０５は、キャッシュ処理部１０３から通知を受けると、キャッシュ処理部１０３がキャッシュしたキャッシュデータをデータベース１３１から読み出す。応答部１０５は、そのキャッシュデータを含む応答メッセージを生成して、通信ポート１４を介して要求元装置ＲＱ＃１〜＃５に送信する。
【００６５】
また、応答部１０５は、データ受信部１０２ｂからキャッシュデータを受信すると、そのキャッシュデータを含む応答メッセージを生成して、通信ポート１４を介して要求元装置ＲＱ＃１〜＃５に送信する。
【００６６】
このように、検索部１０１は、要求メッセージが指定する名称に該当し、キャッシュ時刻が利用条件を満たすキャッシュデータをデータベースから検索する。すなわち、検索部１０１は、要求メッセージの名称に対応し、利用条件を満たす時刻情報が対応付けられたキャッシュデータをデータベース１３１から検索する。データ取得部１０２は、そのキャッシュデータをデータベース１３１から取得し、応答部１０５は、キャッシュデータを要求元装置ＲＱ＃１〜＃５に送信する。
【００６７】
また、データ取得部１０２は、要求メッセージが指定する名称に該当し、キャッシュ時刻が利用条件を満たすキャッシュデータがデータベース１３１に登録されていないとき、利用条件を満たす要求対象データをデータ提供装置ＰＶ＃１〜＃５から取得する。応答部１０５は、その要求対象データを要求元装置ＲＱ＃１〜＃５に送信する。
【００６８】
このため、中継装置ＴＲ＃１〜＃４は、要求元装置ＲＱ＃１〜＃５が設定する利用条件を満たす要求対象データを、データベース１３１から検索してキャッシュデータとして提供し、あるいはデータ提供装置ＰＶ＃１〜＃５から取得して提供することができる。したがって、中継装置ＴＲ＃１〜＃４は、リアルタイム性が高いデータを効果的に要求元装置ＲＱ＃１〜＃５に提供することができる。
【００６９】
また、データ取得部１０２は、名称に該当するキャッシュデータのうち、キャッシュ時刻が利用条件を満たさないデータについて、利用条件を満たす要求対象データをデータ提供装置ＰＶ＃１〜＃５から取得する。つまり、データ取得部１０２は、名称に対応し、利用条件を満たさないキャッシュ時刻が対応付けられたキャッシュデータについて、利用条件を満たす要求対象データをデータ提供装置ＰＶ＃１〜＃５から取得する。このため、データ取得部１０２は、要求対象データの不足分だけをデータ提供装置ＰＶ＃１〜＃５から取得して要求元装置ＲＱ＃１〜＃５に送信することができるため、ネットワークＮＷ＃１，ＮＷ＃２のトラフィック量を低減することができる。
【００７０】
応答部１０５は、データ取得部１０２が取得した要求対象データのうち、要求管理テーブル１３０の処理情報が示す制限条件を満たすデータを要求元装置ＲＱ＃１〜＃５に送信する。図５の例の場合、応答部１０５は、変数「value」の指定（「on」）に従い、データ値が「on」であるキャッシュデータ及びデータ取得部１０２が取得した要求対象データのみを送信する。このため、中継装置ＴＲ＃１〜＃４から送信される応答メッセージのトラフィック量が低減される。
【００７１】
また、応答部１０５は、データ取得部１０２がデータ提供装置ＰＶ＃１〜＃５から要求対象データを取得できない場合、要求管理テーブル１３０の処理情報が示す制御情報に基づいて、名称に該当し、利用条件を満たさないキャッシュ時刻が対応付けられたキャッシュデータを要求元装置ＲＱ＃１〜＃５に送信する。図５の例の場合、応答部１０５は、変数「use」の指定（「true」）に従い、受信フラグが「０」のデータ名「msensor/B」のキャッシュデータをデータベース１３１から読み出し、応答メッセージに含めて送信する。このため、要求元装置ＲＱ＃１〜＃５は、利用条件を満たさないが、要求メッセージの名称で指定したデータを取得することができる。
【００７２】
次に、中継装置ＴＲ＃１〜＃４の処理について述べる。
【００７３】
図６は、要求メッセージの受信処理の一例を示すフローチャートである。本処理は、例えば周期的に実行される。
【００７４】
要求受付部１００は、要求メッセージを受信したか否かを判定する（ステップＳｔ１）。要求受付部１００は、要求メッセージを受信していない場合（ステップＳｔ１のＮｏ）、処理を終了する。
【００７５】
要求受付部１００は、要求メッセージを受信した場合（ステップＳｔ１のＹｅｓ）、要求メッセージから機能ＩＤ、利用条件、処理情報、及び名称を取得する（ステップＳｔ２）。このとき、要求受付部１００は、要求メッセージ内のスラッシュを目印として、機能ＩＤ、利用条件、処理情報、及び名称を識別する。
【００７６】
次に、要求受付部１００は、例えば機能ＩＤを所定値と比較することにより、機能ＩＤを認識する（ステップＳｔ３）。次に、要求受付部１００は、利用条件、処理情報、及び名称を要求管理テーブル１３０に登録する（ステップＳｔ４）。このように、要求受付部１００は、要求元装置ＲＱ＃１〜＃５から要求メッセージを受信する。次に、検索部１０１は、名称に該当するキャッシュデータをデータベース１３１から検索する（ステップＳｔ５）。
【００７７】
次に、検索部１０１は、名称に該当するキャッシュデータの有無を判定する（ステップＳｔ６）。すなわち、検索部１０１は、名称に対応するデータ名のキャッシュデータの有無を判定する。
【００７８】
検索部１０１は、名称に該当するキャッシュデータがない場合（ステップＳｔ６のＮｏ）、要求管理テーブル１３０のデータ名に名称を登録する（ステップＳｔ１１）。次に、検索部１０１は、そのデータ名の要求フラグに「１」をセットする（ステップＳｔ１２）。これにより、名称に該当するキャッシュデータがない場合、データ提供装置ＰＶ＃１〜＃５に対し、その名称により要求対象データを指定した要求メッセージが送信される。
【００７９】
また、検索部１０１は、名称に該当するキャッシュデータがある場合（ステップＳｔ６のＹｅｓ）、そのキャッシュデータのデータ名を要求管理テーブル１３０のデータ名に登録する（ステップＳｔ７）。なお、検索部１０１は、名称に該当する全てのキャッシュデータのデータ名を登録する。
【００８０】
次に、検索部１０１は、データ名の１つを選択する（ステップＳｔ８）。次に、検索部１０１は、選択したデータ名のキャッシュデータのキャッシュ時刻が利用条件を満たすか否かを判定する（ステップＳｔ９）。このとき、検索部１０１は、選択したデータ名のキャッシュデータについて、データベース１３１のキャッシュ時刻を要求管理テーブル１３０の利用条件と比較することにより判定処理を行う。
【００８１】
検索部１０１は、キャッシュ時刻が利用条件を満たす場合（ステップＳｔ９のＹｅｓ）、要求フラグを「０」にセットする（ステップＳｔ１０）。このため、要求生成部１０２ａは、キャッシュ時刻が利用条件を満たすキャッシュデータのデータ名に該当するデータを、データ提供装置ＰＶ＃１〜＃５に要求することはない。
【００８２】
また、検索部１０１は、キャッシュ時刻が利用条件を満たさない場合（ステップＳｔ９のＮｏ）、要求フラグを「１」にセットする（ステップＳｔ１３）。このため、要求生成部１０２ａは、キャッシュ時刻が利用条件を満たさないキャッシュデータのデータ名に該当するデータを、データ提供装置ＰＶ＃１〜＃５に要求する。
【００８３】
このように、検索部１０１は、データベース１３１から、名称に対応し、利用条件を満たすキャッシュ時刻が対応付けられたキャッシュデータを検索する。
【００８４】
次に、検索部１０１は、未選択のデータ名の有無を判定する（ステップＳｔ１４）。検索部１０１は、未選択のデータ名がある場合（ステップＳｔ１４のＹｅｓ）、ステップＳｔ８において未選択のデータ名を選択し、再びステップＳｔ９の処理を実行する。また、検索部１０１は、未選択のデータ名がない場合（ステップＳｔ１４のＮｏ）、処理を終了する。このようにして、要求メッセージの受信処理は実行される。
【００８５】
図７は、要求メッセージの送信処理の一例を示すフローチャートである。本処理は、検索部１０１が全データ名の要求フラグのセットを完了した後に実行される。
【００８６】
要求生成部１０２ａは、要求管理テーブル１３０のデータ名の１つを選択する（ステップＳｔ２１）。次に、要求生成部１０２ａは、選択したデータ名の要求フラグが「１」であるか否かを判定する（ステップＳｔ２２）。要求生成部１０２ａは、要求フラグが「１」である場合（ステップＳｔ２２のＹｅｓ）、選択したデータ名を名称として指定した要求メッセージを生成し、通信ポート１４を介してデータ提供装置ＰＶ＃１〜＃５に送信する（ステップＳｔ２３）。
【００８７】
このように、データ取得部１０２は、要求メッセージで指定された名称に該当し、利用条件を満たすキャッシュ時刻が対応付けられたキャッシュデータがデータベース１３１に登録されていないとき、利用条件を満たす要求対象データをデータ提供装置ＰＶ＃１〜＃５から取得する。また、データ取得部１０２は、要求メッセージで指定された名称に該当し、利用条件を満たさないキャッシュ時刻のキャッシュデータについて、利用条件を満たす要求対象データをデータ提供装置ＰＶ＃１〜＃５から取得する。
【００８８】
次に、要求生成部１０２ａは、その要求メッセージに対する応答メッセージの受信を監視するための監視タイマ１０２ｃを起動する（ステップＳｔ２４）。また、要求生成部１０２ａは、要求フラグが「０」である場合（ステップＳｔ２２のＮｏ）、ステップＳｔ２３、Ｓｔ２４の各処理を実行しない。
【００８９】
これにより、名称に該当するキャッシュデータがない場合、または名称に該当するキャッシュデータはあるが、利用条件を満たすキャッシュデータがない場合、利用条件を満たす要求対象データをデータ提供装置ＰＶ＃１〜＃５に対し要求することができる。
【００９０】
次に、要求生成部１０２ａは、未選択のデータ名の有無を判定する（ステップＳｔ２５）。要求生成部１０２ａは、未選択のデータ名がある場合（ステップＳｔ２５のＹｅｓ）、ステップＳｔ２１において未選択のデータ名を選択し、再びステップＳｔ２２の処理を実行する。また、要求生成部１０２ａは、未選択のデータ名がない場合（ステップＳｔ２５のＮｏ）、処理を終了する。このようにして、要求メッセージの送信処理は実行される。
【００９１】
図８は、キャッシュデータを含む応答メッセージの送信処理の一例を示すフローチャートである。本処理は、検索部１０１が全データ名の要求フラグのセットを完了した後に実行される。
【００９２】
応答部１０５は、要求管理テーブル１３０のデータ名の１つを選択する（ステップＳｔ３１）。応答部１０５は、要求フラグが「０」であるか否かを判定する（ステップＳｔ３２）。応答部１０５は、要求フラグが「１」である場合（ステップＳｔ３２のＮｏ）、後述するステップＳｔ３５の処理を実行する。
【００９３】
次に、応答部１０５は、要求フラグが「０」である場合（ステップＳｔ３２のＹｅｓ）、要求管理テーブル１３０の変数「value」=「on」を参照し、選択したデータ名のデータ値が「on」であるか否かを判定する（ステップＳｔ３３）。応答部１０５は、データ値が「on」である場合（ステップＳｔ３３のＹｅｓ）、選択したデータ名のキャッシュデータを含む応答メッセージを生成し、通信ポート１４を介して要求元装置ＲＱ＃１〜＃５に送信する（ステップＳｔ３４）。このとき、応答メッセージに含めるキャッシュデータは、データ取得部１０２により取得されて、データ取得部１０２から応答部１０５に出力される。
【００９４】
このように、応答部１０５は、データ取得部１０２によりデータベース１３１から取得したキャッシュデータを要求元装置ＲＱ＃１〜＃５に送信する。このとき、応答部１０５は、検索されたキャッシュデータのうち、制限条件である変数「value」＝「on」を満たすデータを要求元装置ＲＱ＃１〜＃５に送信する。また、応答部１０５は、データ値が「off」である場合（ステップＳｔ３３のＮｏ）、ステップＳｔ３４の処理を実行しない。
【００９５】
ステップＳｔ３３の処理は、要求メッセージに、変数「value」により指定される制限条件が含まれる場合に実行される。制限条件が含まれない場合、応答部１０５は、要求フラグが「０」である場合（ステップＳｔ３２のＹｅｓ）、ステップＳｔ３４の処理を実行する。なお、仮に変数「value」=「off」の場合、ステップＳｔ３４の処理は、データ値が「off」であるときに実行され、データ値が「on」であるときには実行されない。
【００９６】
次に、応答部１０５は、未選択のデータ名の有無を判定する（ステップＳｔ３５）。応答部１０５は、未選択のデータ名がある場合（ステップＳｔ３５のＹｅｓ）、ステップＳｔ３１において未選択のデータ名を選択し、再びステップＳｔ３２の処理を実行する。また、応答部１０５は、未選択のデータ名がない場合（ステップＳｔ３５のＮｏ）、処理を終了する。このようにして、キャッシュデータを含む応答メッセージの送信処理は実行される。
【００９７】
図９は、応答メッセージの受信処理の一例を示すフローチャートである。本処理は、要求管理テーブル１３０の各データ名について、例えば周期的に実行される。
【００９８】
データ受信部１０２ｂは、要求管理テーブル１３０のデータ名の１つを選択する（ステップＳｔ４０）。このとき、データ名の選択の順序に限定はない。
【００９９】
次に、データ受信部１０２ｂは、選択したデータ名の要求フラグが「１」であるか否かを判定する（ステップＳｔ４１）。データ受信部１０２ｂは、要求フラグが「０」である場合（ステップＳｔ４１のＮｏ）、処理を終了する。
【０１００】
データ受信部１０２ｂは、要求フラグが「１」である場合（ステップＳｔ４１のＹｅｓ）、選択したデータ名の受信フラグがセット済みであるか否かを判定する（ステップＳｔ４２）。これにより、データ受信部１０２ｂは、選択したデータ名について、データ提供装置ＰＶ＃１〜＃５からの応答メッセージの有無が確定したか否かを判定する。
【０１０１】
データ受信部１０２ｂは、受信フラグがセット済みである場合（ステップＳｔ４２のＹｅｓ）、処理を終了する。また、データ受信部１０２ｂは、受信フラグがセットされていない場合（ステップＳｔ４２のＮｏ）、つまり図５の受信フラグが「−」の場合、応答メッセージが受信されたか否かを判定する（ステップＳｔ４３）。
【０１０２】
データ受信部１０２ｂは、応答メッセージを受信した場合（ステップＳｔ４３のＹｅｓ）、受信フラグを「１」にセットする（ステップＳｔ４４）。次に、データ受信部１０２ｂは、監視タイマ１０２ｃを停止する（ステップＳｔ４５）。次に、データ受信部１０２ｂは、計時部１０４から現在の時刻を取得する（ステップＳｔ４６）。次に、データ受信部１０２ｂは、応答メッセージに含まれる要求対象データと時刻（つまりキャッシュ時刻）をデータベース１３１に登録する（ステップＳｔ４７）。
【０１０３】
これにより、データベース１３１に、利用条件を満たす要求対象データがキャッシュされるとともに、そのキャッシュ時刻が登録される。
【０１０４】
また、データ受信部１０２ｂは、応答メッセージを受信していない場合（ステップＳｔ４３のＮｏ）、監視タイマ１０２ｃが満了したか否かを判定する（ステップＳｔ４８）。データ受信部１０２ｂは、監視タイマ１０２ｃが満了した場合（ステップＳｔ４８のＹｅｓ）、受信フラグを「０」にセットし（ステップＳｔ４９）、監視タイマ１０２ｃが満了していない場合（ステップＳｔ４８のＮｏ）、ステップＳｔ４９の処理を実行しない。
【０１０５】
このように、監視タイマ１０２ｃの満了により、データ提供装置ＰＶ＃１〜＃５から要求対象データの提供の可否が判定される。このようにして、応答メッセージの受信処理は実行される。
【０１０６】
図１０は、データ提供装置ＰＶ＃１〜＃５から取得したデータを含む応答メッセージの送信処理の一例を示すフローチャートである。応答部１０５は、要求管理テーブル１３０を監視することにより、要求フラグが「１」である全データ名の受信フラグがセット済みであるか否かを判定する（ステップＳｔ６１）。応答部１０５は、全データ名の受信フラグがセット済みではない場合（ステップＳｔ６１のＮｏ）、再びステップＳｔ６１の処理を実行する。
【０１０７】
応答部１０５は、全データ名の受信フラグがセット済みである場合（ステップＳｔ６１のＹｅｓ）、要求フラグが「１」であるデータ名の１つを選択する（ステップＳｔ６２）。次に、応答部１０５は、選択したデータ名の受信フラグが「１」であるか否かを判定する（ステップＳｔ６３）。
【０１０８】
応答部１０５は、受信フラグが「１」である場合（ステップＳｔ６３のＹｅｓ）、要求管理テーブル１３０の変数「value」=「on」を参照し、選択したデータ名のデータ値が「on」であるか否かを判定する（ステップＳｔ６４）。なお、ステップＳｔ６２の処理は、上記のステップＳｔ３３の処理と同様に、要求メッセージに、変数「value」により指定される制限条件が含まれる場合に実行される。
【０１０９】
応答部１０５は、データ値が「on」である場合（ステップＳｔ６４のＹｅｓ）、選択したデータ名のキャッシュデータを含む応答メッセージを生成する（ステップＳｔ６５）。また、応答部１０５は、データ値が「off」である場合（ステップＳｔ６４のＮｏ）、ステップＳｔ６５の処理を実行しない。
【０１１０】
また、応答部１０５は、受信フラグが「０」である場合（ステップＳｔ６３のＮｏ）、要求管理テーブル１３０の変数「use」が「true」であるか否かを判定する（ステップＳｔ６８）。応答部１０５は、変数「use」＝「true」の場合（ステップＳｔ６８のＹｅｓ）、データベース１３１から、利用条件を満たさないが、名称に該当するキャッシュデータを読み出し、そのキャッシュデータを含む応答メッセージを生成する（ステップＳｔ６９）。また、応答部１０５は、変数「use」＝「false」の場合（ステップＳｔ６８のＮｏ）、ステップＳｔ６９の処理を実行しない。
【０１１１】
ステップＳｔ６８の処理は、要求メッセージに、変数「use」により指定される制御情報が含まれる場合に実行される。制御情報が含まれない場合、応答部１０５は、受信フラグが「０」である場合（ステップＳｔ６３のＮｏ）、ステップＳｔ６６の処理を実行する。
【０１１２】
次に、応答部１０５は、要求フラグが「１」である未選択のデータ名の有無を判定する（ステップＳｔ６６）。応答部１０５は、未選択のデータ名がある場合（ステップＳｔ６６のＹｅｓ）、ステップＳｔ６２において未選択のデータ名を選択し、再びステップＳｔ６３の処理を実行する。また、応答部１０５は、未選択のデータ名がない場合（ステップＳｔ６６のＮｏ）、生成した応答メッセージを、通信ポート１４を介して要求元装置ＲＱ＃１〜＃５に送信する（ステップＳｔ６７）。
【０１１３】
これにより、応答部１０５は、データ取得部１０２によりデータ提供装置ＰＶ＃１〜＃５から取得された要求対象データを要求元装置ＲＱ＃１〜＃５に送信する。このとき、応答部１０５は、要求対象データのうち、制限条件である変数「value」＝「on」を満たすデータを要求元装置ＲＱ＃１〜＃５に送信する。
【０１１４】
また、応答部１０５は、データ取得部１０２がデータ提供装置ＰＶ＃１〜＃５から要求対象データを取得できない場合、変数「use」に基づいて、名称に該当し、利用条件を満たさないキャッシュデータを要求元装置ＲＱ＃１〜＃５に送信する。このようにして、データ提供装置ＰＶ＃１〜＃５から取得したデータを含む応答メッセージの送信処理は実行される。
【０１１５】
次に、実施例のデータ提供システムの適用例を説明する。
【０１１６】
（第１適用例）
データ提供システムは、様々なＩｏＴシステムに適用することができる。本例では、データ提供装置ＰＶ＃１〜＃５として、人感センサを備えたセンサ装置を用いることによりセンサシステムを構成し、要求元装置ＲＱ＃１〜＃５である端末から、センサ装置を設けた会議室の空き状況を検索する場合を挙げる。
【０１１７】
図１１は、センサシステムの比較例を示す構成図である。センサシステムは、ネットワークＮＷを介して互いにメッシュ状に接続された複数の端末（＃１〜＃５）２及び複数のセンサ装置３を有する。端末２は要求元装置ＲＱ＃１〜＃５として機能し、センサ装置３はデータ提供装置ＰＶ＃１〜＃５として機能する。
【０１１８】
端末（＃１〜＃５）２としては、スマートフォンやパーソナルコンピュータが挙げられるが、これに限定されない。なお、図１１では、端末＃１及びセンサ装置（Ａ）３の接続のみが示されているが、他の端末＃２〜＃５及びセンサ装置（Ｂ〜Ｅ）３も同様に接続される。
【０１１９】
センサ装置３は、例えば、会議室Ａ〜Ｅにそれぞれ配置され、会議室Ａ〜Ｅ内の人の有無を検知する。センサ装置３は、人を検知する人感センサ３０と、端末＃１〜＃５との通信を処理する通信ユニット３１とを有する。なお、通信ユニット３１としては、ＬＡＮカードなどが挙げられるが、これに限定されない。
【０１２０】
センサ装置３は、人感センサ３０の検知結果に基づき、会議室Ａ〜Ｅの空き状況を判定し、その判定結果を示すデータを生成する。データは、会議室Ａ〜Ｅが使用中である場合、「on」を示し、会議室Ａ〜Ｅが空きである場合、「off」を示す。端末２には、会議室Ａ〜Ｅの空き状況を確認するためのアプリケーションが実装されており、アプリケーションによりセンサ装置３に対しデータを要求する。
【０１２１】
各端末２は、センサ装置３に対して個別にデータを要求する。このため、各端末２間において、センサ装置３から受信したデータの共有が行われない。したがって、ネットワークＮＷのトラフィック量を低減することができない。
【０１２２】
そこで、このセンサシステムにＩＣＮを適用すると、ネットワークＮＷ内の中継装置にデータをキャッシュすることができるため、ネットワークＮＷのトラフィック量を低減することができる。
【０１２３】
図１２及び図１３は、センサシステムの他の比較例を示す構成図である。図１２及び図１３において、図１１と共通する構成については、同一の符号を付し、その説明を省略する。
【０１２４】
本例において、ネットワークＮＷには、比較例に係る中継装置ＴＲｃ＃１〜＃４が設けられている。中継装置ＴＲｃ＃１〜＃４は互いにメッシュ状に接続されている。中継装置ＴＲｃ＃１は端末（＃１，＃２）２に接続され、中継装置ＴＲｃ＃２は端末（＃３〜＃５）２に接続されている。また、中継装置ＴＲｃ＃３は会議室Ａ〜Ｃの各センサ装置３に接続され、中継装置ＴＲｃ＃４は会議室Ｄ，Ｅの各センサ装置３に接続されている。
【０１２５】
端末２、センサ装置３、及び中継装置ＴＲｃ＃１〜＃４は、ＩＣＮに基づき通信する。中継装置ＴＲｃ＃１〜＃４は、端末２からの要求メッセージをセンサ装置３に中継し、センサ装置３からの応答メッセージを端末２に中継する。中継装置ＴＲｃ＃１〜＃４は、中継した応答メッセージに含まれるデータをキャッシュし、端末２から新たに要求メッセージを受信したとき、そのキャッシュデータを応答メッセージに含めて端末２に送信する。
【０１２６】
端末（＃１）２は、図１２に示されるように、時刻ｔ１において、点線で示される経路に従い、会議室Ａ、Ｅの各センサ装置３からデータを取得する。ここで、会議室Ａのセンサ装置３のデータは「msensor/A」の名称で指定され、会議室Ｂのセンサ装置３のデータは「msensor/E」の名称で指定されると仮定する。
【０１２７】
符号Ｇ４は、時刻ごとの各センサ装置３のデータのデータ値を示す。時刻ｔ１において、会議室Ａ、Ｅの各センサ装置３のデータは「on」（使用中）を示す。
【０１２８】
中継装置ＴＲｃ＃１，＃３は、会議室Ａのセンサ装置３から「msensor/A」のデータを端末（＃１）２に中継する。また、中継装置ＴＲｃ＃１，＃４は、会議室Ｅのセンサ装置３から「msensor/E」のデータを端末（＃１）２に中継する。
【０１２９】
このため、中継装置ＴＲｃ＃１には、符号Ｇ１で示されるように、データ名「msensor/A」及びデータ値「on」のデータと、データ名「msensor/E」及びデータ値「on」のデータとがキャッシュされる。また、中継装置ＴＲｃ＃３には、符号Ｇ２で示されるように、データ名「msensor/A」及びデータ値「on」のデータがキャッシュされる。中継装置ＴＲｃ＃４には、符号Ｇ３で示されるように、データ名「msensor/E」及びデータ値「on」のデータがキャッシュされる。
【０１３０】
次に、端末（＃５）２は、図１３に示されるように、時刻ｔ２（＝ｔ１＋９０(sec)）において、会議室Ａ、Ｅの各センサ装置３のデータを要求する。このとき、端末（＃５）２から会議室Ａのセンサ装置３に至る経路上の中継装置ＴＲｃ＃１には、符号Ｇ２で示されるように、会議室Ａのセンサ装置３のデータがキャッシュされている。また、端末（＃５）２から会議室Ｅのセンサ装置３に至る経路上の中継装置ＴＲｃ＃４には、符号Ｇ３で示されるように、会議室Ａのセンサ装置３のデータがキャッシュされている。
【０１３１】
このため、端末（＃５）２は、点線で示される経路に従い、会議室Ａ、Ｅの各センサ装置３ではなく、中継装置ＴＲｃ＃３，＃４からデータを取得する。このとき、中継装置ＴＲｃ＃２は、中継装置ＴＲｃ＃３，＃４から「msensor/A」のデータ及び「msensor/E」のデータを端末（＃５）２に中継する。このため、中継装置ＴＲｃ＃２には、符号Ｇ５で示されるように、データ名「msensor/A」及びデータ値「on」のデータと、データ名「msensor/E」及びデータ値「on」のデータとがキャッシュされる。
【０１３２】
このようにして、端末（＃５）２は、データ名「msensor/A」及びデータ値「on」のデータと、データ名「msensor/E」及びデータ値「on」のデータを取得する。このため、端末（＃５）２のユーザは、会議室Ａ、Ｅはともに使用中であると認識する。
【０１３３】
しかし、符号Ｇ６で示されるように、時刻（ｔ１＋６０(sec)）において、会議室Ｅのセンサ装置３のデータは「on」（使用中）のままであるが、会議室Ａのセンサ装置３のデータは「off」（空き）となったとすると、ユーザは古いキャッシュデータにより会議室の使用状況を誤認することになる。
【０１３４】
したがって、本例によると、中継装置ＴＲｃ＃１〜＃４のキャッシュデータによりネットワークＮＷのトラフィック量を低減することができるが、データのリアルタイム性が高いため、キャッシュデータがキャッシュされた時刻によってはセンサシステムが有効に機能しない場合がある。
【０１３５】
これに対し、実施例の中継装置ＴＲ＃１〜＃４は、上述したように、データベース１３１にデータをキャッシュするだけでなく、そのキャッシュ時刻も登録するため、要求メッセージに指定された利用条件を満たすキャッシュデータを検索して送信することができる。
【０１３６】
図１４〜図１６は、センサシステムの実施例を示す構成図である。図１４〜図１６において、図１１と共通する構成については同一の符号を付し、その説明を省略する。
【０１３７】
本例において、実施例に係る中継装置ＴＲ＃１〜＃４は、ネットワークＮＷ内においてメッシュ状に接続されている。中継装置ＴＲ＃１は端末（＃１，＃２）２に接続され、中継装置ＴＲ＃２は端末（＃３〜＃５）２に接続されている。また、中継装置ＴＲ＃３は会議室Ａ〜Ｃの各センサ装置３に接続され、中継装置ＴＲ＃４は会議室Ｄ，Ｅの各センサ装置３に接続されている。
【０１３８】
図１４には、時刻ｔ１において、端末（＃１）２が、符号Ｇ１０で示される２つの要求メッセージを送信した場合の動作例が示されている。会議室Ａのセンサ装置３のデータを要求する要求メッセージには、機能ＩＤ「IotCacheControl」、利用条件「freshness=60(sec)」、処理情報「use=false」、及び名称「msensor/A」が含まれる。また、会議室Ｅのセンサ装置３のデータを要求する要求メッセージは、名称が「msensor/E」であり、他の項目は上記と同一である。
【０１３９】
時刻ｔ１において、各中継装置ＴＲ＃１〜＃４のデータベース１３１には、センサ装置３のデータがキャッシュされていない。このため、要求メッセージは、点線で示される経路に従い、会議室Ａ、Ｅのセンサ装置３に中継される。
【０１４０】
センサ装置３は、要求メッセージに応じて、データを格納した応答メッセージを送信する。符号Ｇ１４で示されるように、時刻ｔ１において、会議室Ａ、Ｅの各センサ装置３のデータは「on」を示す。応答メッセージは、要求メッセージと逆の経路をたどり、端末（＃１）２に中継される。
【０１４１】
このため、中継装置ＴＲ＃１，＃３は、会議室Ａのセンサ装置３から「msensor/A」のデータを端末（＃１）２に中継する。また、中継装置ＴＲ＃１，＃４は、会議室Ｅのセンサ装置３から「msensor/E」のデータを端末（＃１）２に中継する。
【０１４２】
このため、中継装置ＴＲ＃１は、符号Ｇ１１で示されるように、データ名「msensor/A」及びデータ値「on」のデータと、データ名「msensor/E」及びデータ値「on」のデータとをデータベース１３１にキャッシュする。中継装置ＴＲ＃１は、さらに各データのキャッシュ時刻ｔ１をデータベース１３１に登録する。
【０１４３】
また、中継装置ＴＲｃ＃３は、符号Ｇ１２で示されるように、データ名「msensor/A」及びデータ値「on」のデータをデータベース１３１にキャッシュする。中継装置ＴＲ＃３は、さらにデータのキャッシュ時刻ｔ１をデータベース１３１に登録する。
【０１４４】
また、中継装置ＴＲｃ＃４は、符号Ｇ１３で示されるように、データ名「msensor/E」及びデータ値「on」のデータをデータベース１３１にキャッシュする。中継装置ＴＲ＃４は、さらにデータのキャッシュ時刻ｔ１をデータベース１３１に登録する。
【０１４５】
図１７には、時刻ｔ１における中継装置ＴＲ＃１の要求管理テーブル１３０の例が示されている。時刻ｔ１において、中継装置ＴＲ＃１は、要求メッセージで指定された名称「msensor/A」、「msensor/E」に該当するキャッシュデータがないため、要求管理テーブル１３０のデータ名に「msensor/A」、「msensor/E」を登録し、その要求フラグに「１」をセットする。これにより、中継装置ＴＲ＃１は、会議室Ａ、Ｅの各センサ装置３に要求メッセージを送信する。
【０１４６】
図１５には、時刻ｔ２（＝ｔ１＋９０(sec)）において、端末（＃５）２が、会議室Ａ、Ｅの各センサ装置３のデータを要求する要求メッセージを送信した場合の動作例が示されている。なお、点線は、要求メッセージ及び応答メッセージの経路を示す。
【０１４７】
図１４の場合と同様に、一方の要求メッセージには、利用条件「freshness=60(sec)」及び名称「msensor/A」が指定され、他方の要求メッセージには、利用条件「freshness=60(sec)」及び名称「msensor/E」が指定されている。中継装置ＴＲ＃２は、データベース１３１にキャッシュデータがないため、名称「msensor/A」の要求メッセージを中継装置ＴＲ＃３に送信し、名称「msensor/E」の要求メッセージを中継装置ＴＲ＃４に送信する。
【０１４８】
中継装置ＴＲ＃３は、符号Ｇ１２で示されるように、データ名「msensor/A」のキャッシュデータがデータベース１３１にキャッシュされている。しかし、そのキャッシュデータは、キャッシュ時刻がｔ１であるため、要求メッセージの利用条件である「freshness=60(sec)」を満たさない。
【０１４９】
この利用条件「freshness=60(sec)」は、キャッシュデータのキャッシュ時刻の範囲として、現在時刻ｔ２の６０(sec)前から現在時刻ｔ２までと指定している。このため、キャッシュ時刻ｔ１は、現在時刻ｔ２から９０(sec)前であるため、利用条件の指定する範囲外となる。
【０１５０】
したがって、中継装置ＴＲ＃３は、キャッシュ時刻ｔ１のキャッシュデータを端末（＃５）２に送信することができない。このため、中継装置ＴＲ＃３は、要求メッセージを会議室Ａのセンサ装置３に送信することにより、会議室Ａのセンサ装置３から時刻ｔ２のデータを取得する。
【０１５１】
会議室Ａのセンサ装置３は、要求メッセージに応じて、データを格納した応答メッセージを送信する。符号Ｇ１４ａで示されるように、時刻（ｔ１＋６０(sec)）において、会議室Ａのセンサ装置３のデータは「off」（空き）を示す。応答メッセージは、中継装置ＴＲ＃３から要求メッセージと逆の経路をたどり、端末（＃５）２に中継される。
【０１５２】
このとき、中継装置ＴＲ＃３は、符号Ｇ１２ａで示されるように、データベース１３１にデータ名「msensor/A」及びデータ値「off」のデータをキャッシュするとともに、キャッシュ時刻ｔ２を登録する。これにより、中継装置ＴＲ＃３のキャッシュデータ及びキャッシュ時刻が更新される。
【０１５３】
一方、中継装置ＴＲ＃４は、符号Ｇ１３で示されるように、データ名「msensor/E」のキャッシュデータがデータベース１３１にキャッシュされている。しかし、そのキャッシュデータは、キャッシュ時刻がｔ１であるため、要求メッセージの利用条件である「freshness=60(sec)」を満たさない。
【０１５４】
したがって、中継装置ＴＲ＃４は、キャッシュ時刻ｔ１のキャッシュデータを端末（＃５）２に送信することができない。このため、中継装置ＴＲ＃４は、要求メッセージを会議室Ｅのセンサ装置３に送信することにより、会議室Ｅのセンサ装置３から時刻ｔ２のデータを取得する。
【０１５５】
会議室Ｅのセンサ装置３は、要求メッセージに応じて、データを格納した応答メッセージを送信する。符号Ｇ１４ａで示されるように、時刻（ｔ１＋６０(sec)）において、会議室Ｅのセンサ装置３のデータは「on」（使用中）を示す。応答メッセージは、中継装置ＴＲ＃４から要求メッセージと逆の経路をたどり、端末（＃５）２に中継される。
【０１５６】
このとき、中継装置ＴＲ＃４は、符号Ｇ１３ａで示されるように、データベース１３１にデータ名「msensor/E」及びデータ値「on」のデータをキャッシュするとともに、キャッシュ時刻ｔ２を登録する。これにより、中継装置ＴＲ＃４のキャッシュデータ及びキャッシュ時刻が更新される。
【０１５７】
また、中継装置ＴＲ＃２は、中継装置ＴＲ＃３，ＴＲ＃４から送信された各応答メッセージを端末（＃５）２に送信する。このとき、中継装置ＴＲ＃２は、符号Ｇ１５で示されるように、データベース１３１にデータ名「msensor/A」及びデータ値「off」のデータとデータ名「msensor/E」及びデータ値「on」のデータをキャッシュするとともに、キャッシュ時刻ｔ２を登録する。
【０１５８】
このように、中継装置ＴＲ＃２〜＃４は、要求メッセージに指定された利用条件「freshness=60(sec)」により時刻ｔ２における会議室Ａ、Ｅの各センサ装置３のデータを取得して端末（＃５）２に送信する。このため、端末（＃５）２のユーザは、図１３の比較例とは異なり、古い時刻ｔ１ではなく、現在の時刻ｔ２における会議室Ａ、Ｅの空き状況を正確に知ることができる。
【０１５９】
本例によると、中継装置ＴＲ＃１〜＃４は、利用条件に基づきリアルタイム性が高いデータを有効に端末２に提供することができるため、センサシステムを有効に機能させることができる。
【０１６０】
また、キャッシュ時刻が古いデータであっても、利用条件によっては有効なデータとして用いることができる。
【０１６１】
図１６には、端末（＃２〜＃４）２が、図１５に示された動作直後に、互いに異なる利用条件を指定して会議室Ａ、Ｅのセンサ装置３のデータを要求した場合の動作例が示されている。端末（＃３）２は、利用条件「freshness=120(sec)」を指定した要求メッセージを中継装置ＴＲ＃２に送信し、端末（＃４）２は、利用条件「freshness=60(sec)」を指定した要求メッセージを中継装置ＴＲ＃２に送信する。
【０１６２】
中継装置ＴＲ＃２のデータベース１３１には、符号Ｇ１５で示されるように、データ名「msensor/A」、「msensor/E」のキャッシュデータがキャッシュされており、そのキャッシュ時刻はｔ２である。したがって、中継装置ＴＲ＃２のキャッシュデータは利用条件を満たすため、中継装置ＴＲ＃２は、キャッシュデータを含む応答メッセージを端末（＃４）２及び端末（＃５）２にそれぞれ送信する。
【０１６３】
また、端末（＃２）２は、利用条件「freshness=300(sec)」を指定した要求メッセージを中継装置ＴＲ＃１に送信する。中継装置ＴＲ＃１のデータベース１３１には、符号Ｇ１１で示されるように、データ名「msensor/A」、「msensor/E」のキャッシュデータがキャッシュされており、そのキャッシュ時刻はｔ１である。
【０１６４】
利用条件「freshness=300(sec)」は、キャッシュデータのキャッシュ時刻の範囲として、現在時刻ｔ２の３００(sec)前から現在時刻ｔ２までと指定している。このため、キャッシュ時刻ｔ１は、現在時刻ｔ２から９０(sec)前であるため、利用条件の指定する範囲内となる。
【０１６５】
したがって、中継装置ＴＲ＃１のキャッシュデータは利用条件を満たすため、中継装置ＴＲ＃１は、キャッシュデータを含む応答メッセージを端末（＃１）２に送信する。
【０１６６】
図１７には、センサシステムにおける時刻ｔ２の中継装置ＴＲ＃２の要求管理テーブル１３０の例が示されている。時刻ｔ２において、中継装置ＴＲ＃１のデータベース１３１には、要求メッセージで指定された名称「msensor/A」、「msensor/E」に該当し、さらに利用条件を満たすキャッシュデータがキャッシュされている。
【０１６７】
このため、中継装置ＴＲ＃２は、要求管理テーブル１３０のデータ名に「msensor/A」、「msensor/E」を登録し、その要求フラグに「０」をセットする。これにより、中継装置ＴＲ＃１から会議室Ａ、Ｅの各センサ装置３には要求メッセージが送信されない。
【０１６８】
このように、中継装置ＴＲ＃１〜＃４は、要求メッセージに指定されたキャッシュ条件によっては、キャッシュデータを含む応答メッセージを生成して端末（＃１〜＃５）２に送信する。このため、本例によると、要求メッセージをセンサ装置３まで中継する処理、及びセンサ装置３が応答メッセージを送信する処理を省くことができ、ネットワークＮＷのトラフィック量を低減することができる。
【０１６９】
また、以下の例のように、要求メッセージの処理情報として、データの制限条件を変数「value」で指定することにより、中継装置ＴＲ＃１〜＃４から送信されるデータを制限することにより、ネットワークＮＷのトラフィック量をさらに低減することができる。
【０１７０】
図１８は、センサシステムの実施例を示す構成図である。端末（＃１）２は、時刻ｔ３（＝ｔ１＋６０(sec)）において、符号Ｇ２０で示される要求メッセージを送信する。なお、要求メッセージ及び応答メッセージの経路は点線で示されている。
【０１７１】
要求メッセージには、機能ＩＤ「IotCacheControl」、利用条件「freshness=60(sec)」、処理情報「value=on」、及び名称「msensor」が含まれる。この要求メッセージによると、名称「msensor」がプレフィックスで指定されているため、会議室Ａ〜Ｅの各センサ装置３のデータが要求されるが、処理情報「value=on」によりデータが制限されるため、データ値が「on」のデータだけが取得される。また、中継装置ＴＲ＃１〜＃４から取得可能なキャッシュデータのキャッシュ時刻は、利用条件により、現在の時刻ｔ３の６０（sec）前から現在の時刻ｔ３までの範囲内となる。
【０１７２】
図１９には、時刻ｔ３における中継装置ＴＲ＃１，ＴＲ＃３，ＴＲ＃４のデータベース１３１が示されている。中継装置ＴＲ＃１のデータベース１３１には、データ名「msensor/A」〜「msensor/E」のキャッシュデータが登録されている。データ名「msensor/A」〜「msensor/E」のうち、「msensor/D」のデータ値だけが「off」であり、他のデータ値は「on」である。また、データ名「msensor/A」〜「msensor/E」のうち、「msensor/B」及び「msensor/D」の各キャッシュ時刻はｔ２（ｔ１＋３０(sec)）であり、他のキャッシュ時刻はｔ１である。
【０１７３】
また、中継装置ＴＲ＃３のデータベース１３１には、データ名「msensor/A」〜「msensor/C」のキャッシュデータが登録されており、そのデータ値は全て「on」である。「msensor/A」及び「msensor/C」の各キャッシュ時刻はｔ１であり、「msensor/B」のキャッシュ時刻はｔ２である。
【０１７４】
また、中継装置ＴＲ＃４のデータベース１３１には、データ名「msensor/D」、「msensor/E」のキャッシュデータが登録されており、そのキャッシュ時刻は全てｔ２である。「msensor/D」のデータ値は「off」であり、「msensor/E」のデータ値は「on」である。
【０１７５】
再び図１８を参照すると、中継装置ＴＲ＃１のキャッシュデータのうち、「msensor/B」及び「msensor/D」の各キャッシュデータのキャッシュ時刻ｔ２が利用条件を満たすが、「msensor/D」のデータ値は「off」であるため、処理情報「value=on」により送信が制限される。このため、中継装置ＴＲ＃１は、「msensor/B」のキャッシュデータを含む応答メッセージを生成して端末（＃１）２に送信する。
【０１７６】
また、中継装置ＴＲ＃１は、利用条件を満たさない「msensor/A」、「msensor/C」及び「msensor/E」の各要求メッセージを生成する。「msensor/A」及び「msensor/C」の各要求メッセージは中継装置ＴＲ＃３に送信され、「msensor/E」の要求メッセージは中継装置ＴＲ＃４に送信される。
【０１７７】
図２０には、時刻ｔ３における中継装置ＴＲ＃１の要求管理テーブル１３０が示されている。要求管理テーブル１３０において、利用条件には「freshness=60(sec)」が登録され、処理情報には「value=on」が登録されている。また、データ名「msensor/A」〜「msensor/E」のうち、「msensor/A」、「msensor/C」及び「msensor/E」の各要求フラグが「１」にセットされている。
【０１７８】
このため、要求対象データを名称「msensor/A」、「msensor/C」及び「msensor/E」で指定した各要求メッセージが生成及び送信される。なお、「msensor/B」及び「msensor/D」の各要求フラグは「０」にセットされているため、名称「msensor/B」及び「msensor/D」の要求メッセージは生成されない。
【０１７９】
再び図１８を参照すると、中継装置ＴＲ＃３のデータベース１３１には、要求対象データの名称に該当するデータ名「msensor/A」及び「msensor/C」の各キャッシュデータが登録されている。しかし、各キャッシュデータは、キャッシュ時刻がｔ１であるため、要求メッセージの利用条件を満たさない。このため、中継装置ＴＲ＃３は、名称「msensor/A」の要求メッセージを会議室Ａのセンサ装置３に送信し、名称「msensor/C」の要求メッセージを会議室Ｃのセンサ装置３に送信する。
【０１８０】
会議室Ａのセンサ装置３は、要求メッセージに応じて、データを格納した応答メッセージを送信する。符号Ｇ２１で示されるように、時刻（ｔ１＋６０(sec)）において、会議室Ａのセンサ装置３のデータは「on」（使用中）を示す。応答メッセージは、中継装置ＴＲ＃３から要求メッセージと逆の経路をたどり、端末（＃１）２に中継される。
【０１８１】
会議室Ａのセンサ装置３は、要求メッセージに応じて、データを格納した応答メッセージを送信する。符号Ｇ２１で示されるように、時刻（ｔ１＋６０(sec)）において、会議室Ａのセンサ装置３のデータは「on」（使用中）を示す。応答メッセージは中継装置ＴＲ＃３に送信される。
【０１８２】
一方、会議室Ｃのセンサ装置３は、要求メッセージに応じて、データを格納した応答メッセージを送信する。符号Ｇ２１で示されるように、時刻（ｔ１＋６０(sec)）において、会議室Ｃのセンサ装置３のデータは「off」（空き）を示す。応答メッセージは中継装置ＴＲ＃３に送信される。
【０１８３】
中継装置ＴＲ＃３は、会議室Ａ、Ｃの各センサ装置３から応答メッセージを受信する。中継装置ＴＲ＃３は、データ名「msensor/C」のデータ値が「off」であるため、処理情報「value=on」に基づき送信を中止する。したがって、中継装置ＴＲ＃１は、データ名「msensor/A」のデータを含む応答メッセージだけを中継装置ＴＲ＃１に送信する。
【０１８４】
また、中継装置ＴＲ＃４のデータベース１３１には、要求対象データの名称に該当するデータ名「msensor/D」及び「msensor/E」の各キャッシュデータが登録されている。各キャッシュデータは、キャッシュ時刻がｔ２であるため、要求メッセージの利用条件を満たす。しかし、データ名「msensor/D」のデータ値は「off」であるため、処理情報「value=on」に基づき送信が制限される。したがって、中継装置ＴＲ＃４は、データ名「msensor/E」のキャッシュデータを含む応答メッセージだけを中継装置ＴＲ＃１に送信する。
【０１８５】
中継装置ＴＲ＃１は、中継装置ＴＲ＃３から、データ名「msensor/A」のデータを含む応答メッセージを受信し、中継装置ＴＲ＃４から、データ名「msensor/E」のキャッシュデータを含む応答メッセージを受信する。中継装置ＴＲ＃１は、受信した応答メッセージを端末（＃１）２に送信する。
【０１８６】
このため、端末（＃１）２は、全ての会議室Ａ〜Ｅのセンサ装置３のデータを要求したにも関わらず、処理情報「value=on」で指定された制限条件により、データ値が「on」（使用中）であるデータ名「msensor/A」、「msensor/B」、及び「msensor/E」のデータだけを取得する。したがって、ネットワークＮＷのトラフィック量が低減される。
【０１８７】
また、中継装置ＴＲ＃１，ＴＲ＃３は、応答メッセージを中継するとき、データベース１３１のキャッシュデータ及びキャッシュ時刻を更新する。
【０１８８】
図２１には、更新後の中継装置ＴＲ＃１，ＴＲ＃３のデータベース１３１が示されている。中継装置ＴＲ＃１は、データ名「msensor/A」、「msensor/C」、及び「msensor/E」の各キャッシュデータのデータ値及びキャッシュ時刻が更新されている。中継装置ＴＲ＃３は、データ名「msensor/A」及び「msensor/C」の各キャッシュデータのデータ値及びキャッシュ時刻が更新されている。
【０１８９】
（第２適用例）
実施例のデータ提供システムは、例えば交通渋滞情報を交換する企業間連携システムにも適用可能である。以下にテレマティクスを利用した交通情報システムを例に挙げて説明する。なお、テレマティクスとは、例えば自動車や郵送車両などに対して、移動体通信システムを利用して提供されるサービスである。
【０１９０】
図２２は、交通情報システムの実施例を示す構成図である。交通情報システムは、スマートフォンやパーソナルコンピュータなどの端末２ａ、エリアコードを検索する検索サーバ４、情報処理装置の一例である中継装置ＴＲ、渋滞情報を提供する複数のデータ提供サーバ５、複数のセンサ装置３ａ、及び複数のゲートウェイ装置（ＧＷ）６を有する。
【０１９１】
データ提供サーバ５は、データ提供装置ＰＶ＃１〜＃５の一例であり、端末２ａに渋滞情報を提供する。端末２ａには、アプリケーション２００の一例としてバス案内アプリケーション２００ａがインストールされている。バス案内アプリケーション２００ａは、データ提供サーバ５から渋滞情報を取得して、渋滞情報に基づき、現在地のバス停に最も早く到着するバスを検索してユーザに通知する。
【０１９２】
各データ提供装置ＰＶ＃１は、ゲートウェイ装置６を介して複数のセンサ装置３ａと通信を行う。ゲートウェイ装置６は、例えば無線アクセスポイントであり、ネットワークＮＷｙを介してセンサ装置３ａと無線通信を行う。センサ装置３ａは、車両に搭載され、位置情報及び交通情報を検出してデータ提供サーバ５に送信する。
【０１９３】
データ提供サーバ５は、例えば、バス会社、タクシー会社、及び運送会社などの企業ごとに設けられている。各企業のデータ提供サーバ５は、水平統合側の企業間連携システムを形成する。
【０１９４】
データ提供サーバ５は、渋滞情報データベース（渋滞情報ＤＢ）５０、検索処理部５１、渋滞情報生成部５３、及び通信ポート５２，５４を有する。データ提供サーバ５は、図２及び図３に示されるようなＣＰＵ、ＲＯＭ，ＲＡＭ、記憶デバイスなどから構成される。
【０１９５】
検索処理部５１及び渋滞情報生成部５３は、所定のプログラムによりＣＰＵの機能として形成される。また、渋滞情報データベース５０は記憶デバイスに記憶される。通信ポート５４はセンサ装置３ａとの通信を処理し、通信ポート５２は中継装置ＴＲとの通信を処理する。
【０１９６】
渋滞情報生成部５３は、通信ポート５４を介して、複数のセンサ装置３ａから交通情報及び位置情報を収集する。渋滞情報生成部５３は、交通情報及び位置情報に基づき渋滞情報を生成して、渋滞情報データベース５０に登録する。渋滞情報は、渋滞の程度を示す数値を示し、車両の位置を示す位置情報に基づくエリアコードに対応付けられて登録される。
【０１９７】
検索処理部５１は、中継装置ＴＲから通信ポート５２を介してエリアコードを取得し、エリアコードに応じた渋滞情報を渋滞情報データベース５０から検索する。検索処理部５１は、検索した渋滞情報を、通信ポート５２を介して中継装置ＴＲに送信する。
【０１９８】
端末２ａは要求元装置ＲＱ＃１〜＃５の一例である。バス案内アプリケーション２００ａは、ユーザの操作に応じて、最も早くバス停に到着するバスを検索する。バス案内アプリケーション２００ａは、ユーザがいるバス停を経由する路線バスの経路上のエリアコードを検索サーバ４から検索する。
【０１９９】
検索サーバ４は、エリアコードデータベース（エリアコードＤＢ）４０、検索処理部４１、及び通信ポート４２を有する。検索サーバ４は、図２及び図３に示されるようなＣＰＵ、ＲＯＭ，ＲＡＭ、記憶デバイスなどから構成される。
【０２００】
検索処理部４１は、所定のプログラムによりＣＰＵの機能として形成される。エリアコードデータベース４０は記憶デバイスに記憶されている。通信ポート４２は端末２ａとの通信を処理する。
【０２０１】
検索処理部４１は、バス案内アプリケーション２００ａから通信ポート４２を介してエリアコードの要求を受けると、要求に応じ、エリアコードデータベース４０からエリアコードを検索する。なお、エリアコードの要求には、例えばバスの路線番号などが含まれている。
【０２０２】
検索処理部４１は、検索したエリアコードを端末２ａに送信する。バス案内アプリケーション２００ａは、エリアコードを名称として指定した要求メッセージを生成してネットワークＮＷｘ内の中継装置ＴＲに送信する。中継装置ＴＲは、エリアコードに該当し、利用条件を満たすキャッシュデータがデータベース１３１にキャッシュされている場合、そのキャッシュデータを含む応答メッセージを生成し端末２ａに送信する。
【０２０３】
また、中継装置ＴＲは、エリアコードに該当し、利用条件を満たすキャッシュデータがデータベース１３１にキャッシュされていない場合、要求メッセージを生成してデータ提供サーバ５に送信する。データ提供サーバ５は、エリアコードに該当し、利用条件を満たす渋滞情報を含む応答メッセージを生成し、中継装置ＴＲに送信する。中継装置ＴＲは、応答メッセージを受信して渋滞情報をキャッシュし、その応答メッセージを端末２ａに送信する。以下に交通情報システムの動作例を述べる。
【０２０４】
図２３は、中継装置ＴＲに該当データがキャッシュされていない場合の交通情報システムの動作例を示すシーケンス図である。バス案内アプリケーション２００ａは、検索サーバ４にエリアコードを要求する。検索サーバ４は、エリアコードデータベース４０からエリアコードを検索して（符号ＳＱ１）、バス案内アプリケーション２００ａに送信する。
【０２０５】
次に、バス案内アプリケーション２００ａは、符号Ｇ３０で示される要求メッセージを生成して中継装置ＴＲに送信する。要求メッセージには、一例として、機能ＩＤ「Proxy」、利用条件「freshness=15000」、処理情報「use=true」、及び名称「天神_2010_1055」が含まれる。
【０２０６】
中継装置ＴＲは、名称「天神_2010_1055」に該当し、利用条件「freshness=15000」を満たすキャッシュデータを検索する（符号ＳＱ２）。中継装置ＴＲは、検索の結果、該当するキャッシュデータがないため（符号ＳＱ３）、要求メッセージを生成してデータ提供サーバ５に送信する。
【０２０７】
データ提供サーバ５は、要求メッセージを受信すると、名称「天神_2010_1055」に該当し、利用条件「freshness=15000」を満たす渋滞情報を、渋滞情報データベース５０から検索する（符号ＳＱ４）。データ提供サーバ５は、検索した渋滞情報を含む応答メッセージを生成し、中継装置ＴＲに送信する。
【０２０８】
中継装置ＴＲは、データ提供サーバ５から応答メッセージを受信すると、データベース１３１に渋滞情報をキャッシュするとともに、そのキャッシュ時刻を登録する（符号ＳＱ５）。中継装置ＴＲは、渋滞情報を含む応答メッセージを生成し、バス案内アプリケーション２００ａに送信する。バス案内アプリケーション２００ａは、応答メッセージを受信すると、渋滞情報に基づき、最短時間で到着するバスに関するバス情報を生成して表示する（符号ＳＱ６）。
【０２０９】
図２４には、本例における要求管理テーブル１３０及びデータベース１３１が示されている。要求管理テーブル１３０において、利用条件には「freshness=15000(sec)」が登録され、処理情報には「use=true」が登録されている。また、名称及びデータ名には「天神_2010_1055」が登録されている。
【０２１０】
データベース１３１には、渋滞情報として、１（ｋｍ）単位の車両台数である１２（台／ｋｍ）と、そのキャッシュ時刻である「０４：００：００」とが登録されている。このため、例えば、現在の時刻を１１時とすると、渋滞情報は、利用条件「freshness=15000(sec)」を満たさないことになる。
【０２１１】
したがって、本例では、名称「天神_2010_1055」に該当し、利用条件「freshness=15000」を満たすキャッシュデータがデータベース１３１に存在しないため、要求フラグは「１」にセットされている。このため、中継装置ＴＲは、名称「天神_2010_1055」を指定した要求メッセージを生成して送信する。また、受信フラグは、要求メッセージに対する応答メッセージを受信することにより「１」にセットされている。
【０２１２】
図２５は、中継装置ＴＲに該当データがキャッシュされている場合の交通情報システムの動作例を示すシーケンス図である。図２５において、図２３と共通する処理や状態については同一の符号を付し、その説明を省略する。
【０２１３】
中継装置ＴＲは、名称「天神_2010_1055」に該当し、利用条件「freshness=15000」を満たすキャッシュデータを検索する（符号ＳＱ２）。中継装置ＴＲは、検索の結果、該当するキャッシュデータがあるため（符号ＳＱ３ａ）、そのキャッシュデータを含む応答メッセージを生成してバス案内アプリケーション２００ａに送信する。
【０２１４】
図２６には、本例における要求管理テーブル１３０及びデータベース１３１が示されている。要求管理テーブル１３０において、利用条件には「freshness=15000(sec)」が登録され、処理情報には「use=true」が登録されている。また、名称及びデータ名には「天神_2010_1055」が登録されている。
【０２１５】
データベース１３１には、渋滞情報として１２３（台／ｋｍ）と、そのキャッシュ時刻である「１１：００：００」とが登録されている。このため、例えば、現在の時刻を１１時とすると、渋滞情報は、利用条件「freshness=15000(sec)」を満たすことになる。
【０２１６】
したがって、本例では、名称「天神_2010_1055」に該当し、利用条件「freshness=15000」を満たすキャッシュデータがデータベース１３１に存在するため、要求フラグは「０」にセットされている。このため、中継装置ＴＲは、名称「天神_2010_1055」を指定した要求メッセージを送信せず、キャッシュデータを含む応答メッセージを生成して送信する。
【０２１７】
図２７は、データ提供サーバ５から応答メッセージの受信がない場合の交通情報システムの動作例を示すシーケンス図である。図２７において、図２３と共通する処理や状態については同一の符号を付し、その説明を省略する。
【０２１８】
データ提供サーバ５は、要求メッセージを受信すると、名称「天神_2010_1055」に該当し、利用条件「freshness=15000」を満たす渋滞情報を、渋滞情報データベース５０から検索する（符号ＳＱ４）。データ提供サーバ５は、検索の結果、名称「天神_2010_1055」に該当し、利用条件「freshness=15000」を満たす渋滞情報がないため（符号４ａ）、応答メッセージを生成しない。
【０２１９】
中継装置ＴＲは、監視タイマ１０２ｃが満了することにより（符号ＳＱ５ａ）、応答メッセージの未受信を判別する。中継装置ＴＲは、処理情報「use=true」に従い、利用条件「freshness=15000」を満たさないが、名称「天神_2010_1055」に該当するキャッシュデータをデータベース１３１から検索する（符号ＳＱ５ｂ）。中継装置ＴＲは、検索したキャッシュデータを含む応答メッセージを生成してバス案内アプリケーション２００ａに送信する。なお、仮に処理情報が「use=false」であれば、中継装置ＴＲは、キャッシュデータの検索（符号ＳＱ５ｂ）及び応答メッセージの送信を行わない。
【０２２０】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体（ただし、搬送波は除く）に記録しておくことができる。
【０２２１】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０２２２】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０２２３】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【０２２４】
なお、以上の説明に関して更に以下の付記を開示する。
（付記１）  データと前記データを記憶した時刻を示す時刻情報を記憶する記憶部と、
データに対応する識別子と、前記データに対応付けられた時刻に関する条件を含む要求メッセージを要求元装置から受信する受信部と、
前記識別子に対応し、前記条件を満たす前記時刻情報が対応付けられた特定のデータを前記記憶部から検索する検索部と、
検索した結果、前記記憶部に前記特定のデータが記憶されている場合には、前記記憶部から前記特定のデータを取得し、前記特定のデータが前記記憶部に記憶されていない場合には、前記特定のデータを他の装置から取得する取得部と、
前記取得部が取得した前記特定のデータを前記要求元装置に送信する送信部とを有することを特徴とする情報処理装置。
（付記２）  前記取得部は、前記記憶部に記憶されたデータのうち、前記識別子に対応し、前記条件を満たさない前記時刻情報が対応付けられたデータについて、前記特定のデータを前記他の装置から取得することを特徴とする付記１に記載の情報処理装置。
（付記３）  前記要求メッセージには、前記要求元装置に送信する前記特定のデータを制限する制限条件が含まれており、
前記送信部は、前記取得部が取得した前記特定のデータのうち、前記制限条件を満たすデータを前記要求元装置に送信することを特徴とする付記１または２に記載の情報処理装置。
（付記４）  前記要求メッセージには、前記他の装置から前記特定のデータが取得されない場合の前記記憶部内のデータの送信の可否を示す制御情報が含まれており、
前記送信部は、前記取得部が前記他の装置から前記特定のデータを取得できない場合、前記制御情報に基づいて、前記記憶部に記憶されたデータのうち、前記識別子に対応し、前記条件を満たさない前記時刻情報が対応付けられたデータを前記要求元装置に送信することを特徴とする付記１乃至３の何れかに記載の情報処理装置。
（付記５）  情報処理装置と、
データに対応する識別子と、前記データに対応付けられた時刻に関する条件を含む要求メッセージを前記情報処理装置に送信する要求元装置とを有し、
前記情報処理装置は、
データと前記データを記憶した時刻を示す時刻情報を記憶する記憶部と、
前記要求メッセージを前記要求元装置から受信する受信部と、
前記識別子に対応し、前記条件を満たす前記時刻情報が対応付けられた特定のデータを前記記憶部から検索する検索部と、
検索した結果、前記記憶部に前記特定のデータが記憶されている場合には、前記記憶部から前記特定のデータを取得し、前記特定のデータが前記記憶部に記憶されていない場合には、前記特定のデータを他の装置から取得する取得部と、
前記取得部が取得した前記特定のデータを前記要求元装置に送信する送信部とを有することを特徴とするデータ提供システム。
（付記６）  前記取得部は、前記記憶部に記憶されたデータのうち、前記識別子に対応し、前記条件を満たさない前記時刻情報が対応付けられたデータについて、前記特定のデータを前記他の装置から取得することを特徴とする付記５に記載のデータ提供システム。
（付記７）  前記要求メッセージには、前記要求元装置に送信する前記特定のデータを制限する制限条件が含まれており、
前記送信部は、前記取得部が取得した前記特定のデータのうち、前記制限条件を満たすデータを前記要求元装置に送信することを特徴とする付記５または６に記載のデータ提供システム。
（付記８）  前記要求メッセージには、前記他の装置から前記特定のデータが取得されない場合の前記記憶部内のデータの送信の可否を示す制御情報が含まれており、
前記送信部は、前記取得部が前記他の装置から前記特定のデータを取得できない場合、前記制御情報に基づいて、前記記憶部に記憶されたデータのうち、前記識別子に対応し、前記条件を満たさない前記時刻情報が対応付けられたデータを前記要求元装置に送信することを特徴とする付記５乃至６の何れかに記載のデータ提供システム。
（付記９）  データに対応する識別子と、前記データに対応付けられた時刻に関する条件を含む要求メッセージを要求元装置から受信する工程と、
データと前記データを記憶した時刻を示す時刻情報を記憶する記憶部から、前記識別子に対応し、前記条件を満たす前記時刻情報が対応付けられた特定のデータを検索する工程と、
検索した結果、前記記憶部に前記特定のデータが記憶されている場合には、前記記憶部から前記特定のデータを取得し、前記特定のデータが前記記憶部に記憶されていない場合には、前記特定のデータを他の装置から取得する工程と、
取得した前記特定のデータを前記要求元装置に送信する工程とを、コンピュータが実行することを特徴とするデータ提供方法。
（付記１０）  前記特定のデータを取得する工程において、前記記憶部に記憶されたデータのうち、前記識別子に対応し、前記条件を満たさない前記時刻情報が対応付けられたデータについて、前記特定のデータを前記他の装置から取得することを特徴とする付記９に記載のデータ提供方法。
（付記１１）  前記要求メッセージには、前記要求元装置に送信する前記特定のデータを制限する制限条件が含まれており、
前記特定のデータを前記要求元装置に送信する工程において、前記特定のデータのうち、前記制限条件を満たすデータを前記要求元装置に送信することを特徴とする付記９または１０に記載のデータ提供方法。
（付記１２）  前記要求メッセージには、前記他の装置から前記特定のデータが取得されない場合の前記記憶部内のデータの送信の可否を示す制御情報が含まれており、
前記特定のデータを前記要求元装置に送信する工程において、前記他の装置から前記特定のデータを取得できない場合、前記制御情報に基づいて、前記記憶部に記憶されたデータのうち、前記識別子に対応し、前記条件を満たさない前記時刻情報が対応付けられたデータを前記要求元装置に送信することを特徴とする付記９乃至１１の何れかに記載のデータ提供方法。
（付記１３）  データに対応する識別子と、前記データに対応付けられた時刻に関する条件を含む要求メッセージを要求元装置から受信し、
データと前記データを記憶した時刻を示す時刻情報を記憶する記憶部から、前記識別子に対応し、前記条件を満たす前記時刻情報が対応付けられた特定のデータを検索し、
検索した結果、前記記憶部に前記特定のデータが記憶されている場合には、前記記憶部から前記特定のデータを取得し、前記特定のデータが前記記憶部に記憶されていない場合には、前記特定のデータを他の装置から取得し、
取得した前記特定のデータを前記要求元装置に送信する、処理を、コンピュータに実行させることを特徴とするデータ提供プログラム。
（付記１４）  前記特定のデータを取得する処理において、前記記憶部に記憶されたデータのうち、前記識別子に対応し、前記条件を満たさない前記時刻情報が対応付けられたデータについて、前記特定のデータを前記他の装置から取得することを特徴とする付記１３に記載のデータ提供プログラム。
（付記１５）  前記要求メッセージには、前記要求元装置に送信する前記特定のデータを制限する制限条件が含まれており、
前記特定のデータを前記要求元装置に送信する処理において、前記特定のデータのうち、前記制限条件を満たすデータを前記要求元装置に送信することを特徴とする付記１３または１４に記載のデータ提供プログラム。
（付記１６）  前記要求メッセージには、前記他の装置から前記特定のデータが取得されない場合の前記記憶部内のデータの送信の可否を示す制御情報が含まれており、
前記特定のデータを前記要求元装置に送信する処理において、前記他の装置から前記特定のデータを取得できない場合、前記制御情報に基づいて、前記記憶部に記憶されたデータのうち、前記識別子に対応し、前記条件を満たさない前記時刻情報が対応付けられたデータを前記要求元装置に送信することを特徴とする付記１３乃至１５の何れかに記載のデータ提供プログラム。
【符号の説明】
【０２２５】
１０        ＣＰＵ
１３        記憶デバイス
１００       要求受付部
１０１       検索部
１０２       データ取得部
１０３       キャッシュ処理部
１０５       応答部
１３１       データベース
ＴＲ＃１〜＃４      中継装置
ＲＱ＃１〜＃５      要求元装置
ＰＶ＃１〜＃５      データ提供装置
【図１】
2017182665.tif 000003
【図２】
2017182665.tif 000004
【図３】
2017182665.tif 000005
【図４】
2017182665.tif 000006
【図５】
2017182665.tif 000007
【図６】
2017182665.tif 000008
【図７】
2017182665.tif 000009
【図８】
2017182665.tif 000010
【図９】
2017182665.tif 000011
【図１０】
2017182665.tif 000012
【図１１】
2017182665.tif 000013
【図１２】
2017182665.tif 000014
【図１３】
2017182665.tif 000015
【図１４】
2017182665.tif 000016
【図１５】
2017182665.tif 000017
【図１６】
2017182665.tif 000018
【図１７】
2017182665.tif 000019
【図１８】
2017182665.tif 000020
【図１９】
2017182665.tif 000021
【図２０】
2017182665.tif 000022
【図２１】
2017182665.tif 000023
【図２２】
2017182665.tif 000024
【図２３】
2017182665.tif 000025
【図２４】
2017182665.tif 000026
【図２５】
2017182665.tif 000027
【図２６】
2017182665.tif 000028
【図２７】
2017182665.tif 000029