(57)【特許請求の範囲】
【請求項１】
複数の通信装置がネットワークを介して接続されるネットワーク分散共有システムであって、
前記複数の通信装置のそれぞれが、
タプル情報と前記タプル情報を検索するためのタプル検索情報を記憶し、タプル記憶部識別情報で識別されているタプル記憶部と、
前記タプル記憶部に記憶されているタプル情報を送信する、または、受信したタプル情報を前記タプル記憶部に記憶する中継代理部と、
を有し、
前記中継代理部が、
転送先となるタプル記憶部のタプル記憶部識別情報である転送先タプル記憶部識別情報を前記タプル検索情報に対応付けて記憶する転送情報記憶部と、
前記自通信装置が有するタプル記憶部からタプル情報を読み出し、該読出したタプル情報を、該タプル検索情報に対応して前記転送情報記憶部から読み出した転送先タプル記憶部識別情報に該当するタプル記憶部を送信先として、前記ネットワークを介して送信する送信側転送部と、
前記ネットワークを介して受信したタプル情報を、自通信装置が有するタプル記憶部に記憶する受信側転送部と、
を有することを特徴とするネットワーク分散共有システム。
【請求項２】
前記タプル記憶部は、
前記タプル情報を記憶するタプル情報記憶部と、
前記タプル検索情報を記憶するタプル検索情報記憶部と、
前記タプル情報が前記タプル情報記憶部に記憶された場合に、該記憶されたタプル情報が前記タプル検索情報記憶部に記憶されているタプル検索情報に該当するか否かを判定し、該判定した結果が該当する場合には、前記該当したタプル情報を出力するタプル情報抽出部と、
を有することを特徴とする請求項１に記載のネットワーク分散共有システム。
【請求項３】
前記タプル情報抽出部は、
前記タプル検索情報が前記タプル検索情報記憶部に記憶された場合に、該記憶されたタプル検索情報が前記タプル情報記憶部に記憶されているタプル情報に該当するか否かを判定し、該判定した結果が該当する場合には、前記該当したタプル情報を前記送信側転送部に出力する
ことを特徴とする請求項２に記載のネットワーク分散共有システム。
【請求項４】
前記転送情報記憶部は、
タプル検索情報を識別するタプル検索情報識別情報と前記転送先タプル記憶部識別情報とが関連付けて予め記憶されているタプル情報転送先情報記憶部と、
前記タプル検索情報識別情報が前記送信側転送部から入力された場合に、該入力されたタプル検索情報識別情報に該当する転送先タプル記憶部識別情報を前記タプル情報転送先情報記憶部から抽出し、該抽出した転送先タプル記憶部識別情報を前記送信側転送部に出力するタプル情報転送先情報抽出部と
を有し、
前記タプル検索情報記憶部は、
前記タプル検索情報と関連付けて該タプル検索情報を識別する前記タプル検索情報識別情報を記憶し、
前記タプル情報抽出部が、
前記タプル情報が前記タプル情報記憶部に記憶された場合に、該記憶されたタプル情報が前記タプル検索情報記憶部に記憶されているタプル検索情報に該当するか否かを判定し、該判定した結果が該当する場合には、前記該当したタプル検索情報と関連付けて記憶されているタプル検索情報識別情報を前記タプル検索情報記憶部から読み出し、前記記憶されたタプル情報と前記読み出したタプル検索情報識別情報とを関連付けて前記送信側転送部
に出力し、
前記送信側転送部が、
前記タプル情報とタプル検索情報識別情報とを関連付けて前記タプル情報抽出部から入力されたことに応じて、該入力されたタプル検索情報識別情報に該当する転送先タプル記憶部識別情報を前記転送情報記憶部から読み出し、該読み出した転送先タプル記憶部識別情報に該当するタプル記憶部に前記ネットワークを介して前記入力されたタプル情報を送信する
ことを特徴とする請求項２または３に記載のネットワーク分散共有システム。
【請求項５】
前記タプル情報抽出部は、
前記タプル検索情報が前記タプル検索情報記憶部に記憶された場合に、該記憶されたタプル検索情報が前記タプル情報記憶部に記憶されているタプル情報に該当するか否かを判定し、該判定した結果が該当する場合に、前記記憶されたタプル検索情報に関連付けられているタプル検索情報識別情報と前記該当したタプル情報とを関連づけて前記送信側転送部に出力する
ことを特徴とする請求項４に記載のネットワーク分散共有システム。
【請求項６】
前記タプル情報は送信先タプル記憶部識別情報を設定可能な情報の領域を有しており、
前記送信側転送部が、
自通信装置が有する前記タプル記憶部からタプル情報を読み出し、
前記読み出したタプル情報に送信先タプル記憶部識別情報が設定されているか否かを判定し、
送信先タプル記憶部識別情報が設定されていなければ、前記読み出したタプル情報を前記読み出した転送先タプル記憶部識別情報に該当するタプル記憶部に前記ネットワークを介して送信し、
送信先タプル記憶部識別情報が設定されていれば、該設定されている送信先タプル記憶部識別情報が、前記転送情報記憶部に記憶されている転送先タプル記憶部識別情報のいずれかと一致するか否かを判定し、
いずれかと一致する場合には、前記読み出したタプル情報を前記設定されている送信先タプル記憶部識別情報に該当するタプル記憶部に前記ネットワークを介して送信する
ことを特徴とする請求項２から５に記載のネットワーク分散共有システム。
【請求項７】
前記タプル記憶部は、
前記タプル検索情報を検索するためのタプルメタ検索情報を記憶するタプルメタ検索情報記憶部と、
前記タプル検索情報が前記タプル検索情報記憶部に記憶された場合に、該記憶されたタプル検索情報が前記タプルメタ検索情報記憶部に記憶されているタプルメタ検索情報に該当するか否かを判定し、該判定した結果が該当する場合には、前記該当したタプル検索情報を前記送信側転送部に出力するタプル検索情報抽出部と、
を有し、
前記送信側転送部が、
前記タプル記憶部から読み出したタプル検索情報を、前記転送情報記憶部から読み出した転送先タプル記憶部識別情報に該当するタプル記憶部に前記ネットワークを介して送信する、
ことを特徴とする請求項２から６に記載のネットワーク分散共有システム。
【請求項８】
前記受信側転送部が、
前記ネットワークを介して受信したタプル検索情報を、自通信装置が有する前記タプル検索情報記憶部に記憶し、
受信時に前記ネットワークあるいは前記タプル検索情報から得られる送信元タプル記憶部識別情報を転送先タプル記憶部識別情報として前記転送情報記憶部に記憶する、
ことを特徴とする請求項７に記載のネットワーク分散共有システム。
【請求項９】
前記タプル検索情報抽出部は、
前記タプルメタ検索情報が前記タプルメタ検索情報記憶部に記憶された場合に、該記憶されたタプルメタ検索情報が前記タプル検索情報記憶部に記憶されているタプル検索情報に該当するか否かを判定し、該判定した結果が該当する場合には、前記該当したタプル検索情報を前記送信側転送部に出力する
ことを特徴とする請求項７または８に記載のネットワーク分散共有システム。
【請求項１０】
前記受信側転送部は、
前記ネットワークを介してタプル検索情報を受信した場合に、
自タプル記憶部のタプル検索情報記憶部に記憶されているタプル検索情報とタプル検索情報識別情報とに基づいて生成されたタプル検索情報識別情報と前記受信したタプル検索情報とを関連付けて自通信装置が有する前記タプル検索情報記憶部に記憶するとともに、
前記タプル検索情報を受信する場合に前記ネットワークあるいは前記タプル検索情報から得られる送信元タプル記憶部識別情報を転送先タプル記憶部識別情報として、前記タプル検索情報識別情報と関連付けて、自通信装置が有する前記転送情報記憶部のタプル情報転送先情報記憶部に記憶する、
ことを特徴とする請求項７から９に記載のネットワーク分散共有システム。
【請求項１１】
前記タプル検索情報は送信元タプル記憶部識別情報を設定可能な情報の領域を有しており、
前記送信側転送部が、
自通信装置が有する前記タプル記憶部からタプル検索情報を読み出し、
前記読み出したタプル検索情報に送信元タプル記憶部識別情報が設定されているか否かを判定し、
送信元タプル記憶部識別情報が設定されていなければ、前記読み出したタプル検索情報を前記読み出した転送先タプル記憶部識別情報に該当するタプル記憶部に前記ネットワークを介して送信し、
送信元タプル記憶部識別情報が設定されていれば、該設定されている送信元タプル記憶部識別情報が、前記転送情報記憶部に記憶されている転送先タプル記憶部識別情報のいずれかと一致するか否かを判定し、
いずれかと一致する場合には、前記読み出したタプル検索情報を前記設定されている送信元タプル記憶部識別情報に該当するタプル記憶部に前記ネットワークを介して送信する
ことを特徴とする請求項７から１０に記載のネットワーク分散共有システム。
【請求項１２】
前記複数の通信装置のうち１つの通信装置がサーバ装置であり、
前記サーバ装置の他の複数の通信装置が端末装置であり、
前記端末装置の前記転送情報記憶部には、
該当するタプル記憶部を前記サーバ装置のタプル記憶部とした前記転送先タプル記憶部識別情報が予め記憶されており、
前記端末装置の前記タプル検索情報記憶部には、
前記タプル検索情報が予め記憶されており、
前記端末装置は、
自端末装置の前記タプル情報記憶部にタプル情報が記憶されたことに応じて、
前記自端末装置の前記タプル情報抽出部が、
前記記憶されたタプル情報が前記タプル検索情報に該当する場合には、前記記憶されたタプル情報を出力し、
前記自端末装置の前記送信側転送部が、
該タプル情報を、前記転送先タプル記憶部識別情報に基づいて前記ネットワークを介して前記サーバ装置に送信し、
前記サーバ装置の前記受信側転送部が、
前記ネットワークを介して前記端末装置から受信したタプル情報を、自サーバ装置が有する前記タプル情報記憶部に記憶する、
ことを特徴とする請求項２から１１に記載のネットワーク分散共有システム。
【請求項１３】
前記複数の通信装置のうち１つの通信装置がサーバ装置であり、
前記サーバ装置の他の複数の通信装置が端末装置であり、
前記端末装置の前記転送情報記憶部には、
該当するタプル記憶部を前記サーバ装置のタプル記憶部とした前記転送先タプル記憶部識別情報が予め記憶されており、
前記端末装置の前記タプル検索情報記憶部には、
前記タプル検索情報が予め記憶されており、
前記端末装置は、
自端末装置の前記タプル情報記憶部にタプル情報が記憶されたことに応じて、
前記自端末装置の前記タプル情報抽出部が、
前記記憶されたタプル情報が前記タプル検索情報に該当する場合には、前記記憶されたタプル情報を出力し、
前記自端末装置の前記送信側転送部が、
該タプル情報を、前記転送先タプル記憶部識別情報に基づいて前記ネットワークを介して前記サーバ装置に送信し、
前記サーバ装置の前記受信側転送部が、
前記ネットワークを介して前記端末装置から受信したタプル情報を、自サーバ装置が有する前記タプル情報記憶部に記憶する、
ことを特徴とする請求項１０または１１に記載のネットワーク分散共有システム。
【請求項１４】
前記端末装置の前記転送情報記憶部には、
前記サーバ装置のタプル記憶部を識別するタプル記憶部識別情報が前記転送先タプル記憶部識別情報として予め記憶されており、
前記端末装置の前記タプルメタ検索情報記憶部には、
前記タプルメタ検索情報が予め記憶されており、
前記端末装置は、
自端末装置のタプル検索情報記憶部にタプル検索情報が記憶されたことに応じて、
前記自端末装置のタプル検索情報抽出部が、
前記記憶されたタプル検索情報が前記タプルメタ検索情報に該当する場合には、前記記憶されたタプル検索情報を自端末装置の前記送信側転送部に出力し、
前記自端末装置の送信側転送部が、
入力された前記タプル検索情報を前記転送情報記憶部に記憶されている前記転送先タプル記憶部識別情報に基づいて前記ネットワークを介して前記サーバ装置に送信し、
前記サーバ装置の受信側転送部が、
前記ネットワークを介してタプル検索情報を受信した場合に、
自タプル記憶部のタプル検索情報記憶部に記憶されているタプル検索情報とタプル検索情報識別情報とに基づいて生成されたタプル検索情報識別情報と前記受信したタプル検索情報とを関連付けて自通信装置が有する前記タプル検索情報記憶部に記憶するとともに、
前記タプル検索情報を受信する場合に前記ネットワークあるいは前記タプル検索情報から得られる送信元タプル記憶部識別情報を転送先タプル記憶部識別情報として、前記タプル検索情報識別情報と関連付けて、自通信装置が有する前記転送情報記憶部のタプル情報転送先情報記憶部に記憶する、
ことを特徴とする請求項１３に記載のネットワーク分散共有システム。
【請求項１５】
前記サーバ装置は、
自サーバ装置の前記タプル検索情報記憶部にタプル検索情報が記憶されたことに応じて、
自サーバ装置の前記タプル情報抽出部が、
前記記憶されたタプル検索情報に該当するタプル情報と該タプル検索情報識別情報とを関連付けて自サーバ装置の送信側転送部に出力し、
自サーバ装置の前記送信側転送部が、
入力された前記タプル検索情報識別情報に基づいて、前記転送情報記憶部から転送先タプル記憶部識別情報を読み出し、
前記タプル情報を前記読み出した転送先タプル記憶部識別情報に基づいて前記端末装置に前記ネットワークを介して送信し、
前記端末装置の前記受信側転送部が、
前記ネットワークを介して受信したタプル情報を、自端末装置が有する前記タプル情報記憶部に記憶する、
ことを特徴とする請求項１３または１４に記載のネットワーク分散共有システム。
【請求項１６】
前記サーバ装置は、
自サーバ装置の前記タプル情報記憶部にタプル情報が記憶されたことに応じて、
自サーバ装置の前記タプル情報抽出部が、
前記記憶されたタプル情報が前記タプル検索情報記憶部に記憶されているタプル検索情報に該当するか否かを判定し、該判定した結果が該当する場合には、前記該当したタプル検索情報と関連付けて記憶されているタプル検索情報識別情報を前記タプル検索情報記憶部から読み出し、前記記憶されたタプル情報と前記読み出したタプル検索情報識別情報とを関連付けて自サーバ装置の前記送信側転送部に出力し、
自サーバ装置の前記送信側転送部が、
入力された前記タプル情報識別情報に基づいて、前記転送情報記憶部から転送先タプル記憶部識別情報を読み出し、
前記タプル情報を前記読み出した転送先タプル記憶部識別情報に基づいて前記端末装置に前記ネットワークを介して送信し、
前記端末装置の前記受信側転送部が、
前記ネットワークを介して受信したタプル情報を、自端末装置が有する前記タプル情報記憶部に記憶する、
ことを特徴とする請求項１３から１５に記載のネットワーク分散共有システム。
【請求項１７】
前記タプル情報は送信先タプル記憶部識別情報を設定可能な情報の領域を有しており、
前記サーバ装置の送信側転送部が、
自通信装置が有する前記タプル記憶部からタプル情報を読み出し、
前記読み出したタプル情報に送信先タプル記憶部識別情報が設定されているか否かを判定し、
送信先タプル記憶部識別情報が設定されていなければ、前記読み出したタプル情報を前記読み出した転送先タプル記憶部識別情報に該当するタプル記憶部に前記ネットワークを介して送信し、
送信先タプル記憶部識別情報が設定されていれば、該設定されている送信先タプル記憶部識別情報が、前記転送情報記憶部に記憶されている転送先タプル記憶部識別情報のいずれかと一致するか否かを判定し、
いずれかと一致する場合には、前記読み出したタプル情報を前記設定されている送信先タプル記憶部識別情報に該当するタプル記憶部に前記ネットワークを介して送信する
ことを特徴とする請求項１５または請求項１６に記載のネットワーク分散共有システム。
【請求項１８】
前記端末装置の一部または全ての端末装置において、
前記タプル記憶部に記憶されているタプル情報には、少なくとも送信先タプル記憶部識別情報が含まれており、
前記中継代理部の送信側転送部が、
前記自通信装置が有するタプル記憶部からタプル情報を読み出し、該読み出したタプル情報を、該読み出したタプル情報に含まれている送信先タプル記憶部識別情報に該当するタプル記憶部に前記ネットワークを介して送信する、
ことを特徴とする請求項１７に記載のネットワーク分散共有システム。
【請求項１９】
複数の通信装置がネットワークを介して接続され、前記複数の通信装置のそれぞれが、タプル情報と前記タプル情報を検索するためのタプル検索情報を記憶し、タプル記憶部識別情報で識別されているタプル記憶部と、前記タプル記憶部に記憶されているタプル情報を送信する、または、受信したタプル情報を前記タプル記憶部に記憶する中継代理部と、を有するネットワーク分散共有システムにおいて用いられるネットワーク分散共有方法であって、
前記中継代理部が、
前記自通信装置が有するタプル記憶部からタプル情報を読み出し、該読出したタプル情報を、該タプル検索情報に対応して、転送先となるタプル記憶部のタプル記憶部識別情報である転送先タプル記憶部識別情報を前記タプル検索情報に対応付けて記憶する転送情報記憶部から読み出した転送先タプル記憶部識別情報に該当するタプル記憶部を送信先として、前記ネットワークを介して送信する送信側転送手順と、
前記ネットワークを介して受信したタプル情報を、自通信装置が有するタプル記憶部に記憶する受信側転送手順と、
を有することを特徴とするネットワーク分散共有方法。
【請求項２０】
複数の通信装置がネットワークを介して接続され、前記複数の通信装置のそれぞれが、タプル情報と前記タプル情報を検索するためのタプル検索情報を記憶し、タプル記憶部識別情報で識別されているタプル記憶部と、前記タプル記憶部に記憶されているタプル情報を送信する、または、受信したタプル情報を前記タプル記憶部に記憶する中継代理部と、を有するネットワーク分散共有システムにおいて用いられる前記中継代理部としてのコンピュータに、
前記自通信装置が有するタプル記憶部からタプル情報を読み出し、該読出したタプル情報を、該タプル検索情報に対応して、転送先となるタプル記憶部のタプル記憶部識別情報である転送先タプル記憶部識別情報を前記タプル検索情報に対応付けて記憶する転送情報記憶部から読み出した転送先タプル記憶部識別情報に該当するタプル記憶部を送信先として、前記ネットワークを介して送信する送信側転送手順と、
前記ネットワークを介して受信したタプル情報を、自通信装置が有するタプル記憶部に記憶する受信側転送手順と、
を実行させるためのネットワーク分散共有プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散配置されたアプリケーションで、ネットワークを介してデータを共有するためのデータ転送方式の技術に関する。
【背景技術】
【０００２】
ユビキタスネットワークやユビキタスコンピューティングシステムなどのユビキタス環境におけるアプリケーション（以降、ユビキタスアプリケーションと記載する）では、遍在するセンサやアクチュエータなどの各種デバイス群と、センサデータサーバやアクチュエータ制御サーバなど計算機群が、ネットワークを通じて互いにデータをやり取りすることでサービスを提供する。このようなユビキタスアプリケーションは、各々のデバイスと計算機上に配置される各アプリケーションプログラムで構成される。
【０００３】
ユビキタスアプリケーションは、各アプリケーションプログラムが並列的に処理を行なう分散プログラムとして開発・運用される。この際、デバイス群は多種大量に存在し、デバイス自体が随時追加・更改される。また移動体に設置されたデバイスは、その位置や収容されるネットワークが変更になったり、また必ずしも常時通信できるとは限らない。一方で、新たなサービスの開発とともに、デバイスと通信する計算機も随時追加・変更されうる。
【０００４】
このようなダイナミックに変化しうるユビキタス環境でのアプリケーション開発・運用においては、データをやりとりする相手の通信アドレスや状態（ネットワークへの接続状況や存在そのもの）を意識せずにプログラミング・実行できる環境が必要となる。この環境を実現する方法として、並列プログラミングの概念Lindaで提案されたタプル空間（Tuple Space）の利用が有効である（非特許文献１、非特許文献２参照）。
【０００５】
このLindaにおけるデータ管理の実体はTuple Spaceと呼ばれており、分散システム開発に適した分散メモリに似た協調機構を提供する。アプリケーションは、送受信データをTupleとして記述し、Tuple Spaceへ書き込んだり、Tuple SpaceからTupleを読出したりすることで通信を行なう。
【０００６】
【非特許文献１】D. Gelernter, “Generative Communication in Linda”, ACM Transactions on Programming Language and Systems, Vol.7, No.1, January 1985, Pages 80-112.
【非特許文献２】増井俊之, 塚田浩二. “全世界プログラミング” 情報処理学会 2006年夏のプログラミングシンポジウム, September 2006
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、非特許文献１または２に示す通信装置にあっては、複数Tuple Spaceで分散データ共有システムを構成しようとした場合、１つのTuple Spaceに書き込まれたTupleを、分散した他のアプリケーションが読み込むためにすべてのTuple Spaceに転送すると、Tuple Space間の通信量が多くなるという問題があった。
【０００８】
本発明は、このような事情に鑑みてなされたもので、その目的は、Tuple Spaceを用いた通信であって、通信量を減じることができるネットワーク分散共有システムを提供することにある。
【課題を解決するための手段】
【０００９】
この発明は上述した課題を解決するためになされたもので、請求項１に記載の発明は、複数の通信装置がネットワークを介して接続されるネットワーク分散共有システムであって、前記複数の通信装置のそれぞれが、タプル情報と前記タプル情報を検索するためのタプル検索情報を記憶し、タプル記憶部識別情報で識別されているタプル記憶部と、前記タプル記憶部に記憶されているタプル情報を送信する、または、受信したタプル情報を前記タプル記憶部に記憶する中継代理部と、を有し、前記中継代理部が、転送先となるタプル記憶部のタプル記憶部識別情報である転送先タプル記憶部識別情報を前記タプル検索情報に対応付けて記憶する転送情報記憶部と、前記自通信装置が有するタプル記憶部からタプル情報を読み出し、該読出したタプル情報を、該タプル検索情報に対応して前記転送情報記憶部から読み出した転送先タプル記憶部識別情報に該当するタプル記憶部を送信先として、前記ネットワークを介して送信する送信側転送部と、前記ネットワークを介して受信したタプル情報を、自通信装置が有するタプル記憶部に記憶する受信側転送部と、を有することを特徴とするネットワーク分散共有システムである。
【００１０】
請求項２に記載の発明は、前記タプル記憶部は、前記タプル情報を記憶するタプル情報記憶部と、前記タプル検索情報を記憶するタプル検索情報記憶部と、前記タプル情報が前記タプル情報記憶部に記憶された場合に、該記憶されたタプル情報が前記タプル検索情報記憶部に記憶されているタプル検索情報に該当するか否かを判定し、該判定した結果が該当する場合には、前記該当したタプル情報を出力するタプル情報抽出部と、を有することを特徴とする請求項１に記載のネットワーク分散共有システムである。
【００１１】
請求項３に記載の発明は、前記タプル情報抽出部は、前記タプル検索情報が前記タプル検索情報記憶部に記憶された場合に、該記憶されたタプル検索情報が前記タプル情報記憶部に記憶されているタプル情報に該当するか否かを判定し、該判定した結果が該当する場合には、前記該当したタプル情報を前記送信側転送部に出力することを特徴とする請求項２に記載のネットワーク分散共有システムである。
【００１２】
請求項４に記載の発明は、前記転送情報記憶部は、タプル検索情報を識別するタプル検索情報識別情報と前記転送先タプル記憶部識別情報とが関連付けて予め記憶されているタプル情報転送先情報記憶部と、前記タプル検索情報識別情報が前記送信側転送部から入力された場合に、該入力されたタプル検索情報識別情報に該当する転送先タプル記憶部識別情報を前記タプル情報転送先情報記憶部から抽出し、該抽出した転送先タプル記憶部識別情報を前記送信側転送部に出力するタプル情報転送先情報抽出部とを有し、前記タプル検索情報記憶部は、前記タプル検索情報と関連付けて該タプル検索情報を識別する前記タプル検索情報識別情報を記憶し、前記タプル情報抽出部が、前記タプル情報が前記タプル情報記憶部に記憶された場合に、該記憶されたタプル情報が前記タプル検索情報記憶部に記憶されているタプル検索情報に該当するか否かを判定し、該判定した結果が該当する場合には、前記記憶されたタプル検索情報と関連付けて記憶されているタプル検索情報識別情報を前記タプル検索情報記憶部から読み出し、前記該当したタプル情報と前記読み出したタプル検索情報識別情報とを関連付けて前記送信側転送部に出力し、前記送信側転送部が、前記タプル情報とタプル検索情報識別情報とを関連付けて前記タプル情報抽出部から入力されたことに応じて、該入力されたタプル検索情報識別情報に該当する転送先タプル記憶部識別情報を前記転送情報記憶部から読み出し、該読み出した転送先タプル記憶部識別情報に該当するタプル記憶部に前記ネットワークを介して前記入力されたタプル情報を送信することを特徴とする請求項２または３に記載のネットワーク分散共有システムである。
【００１３】
請求項５に記載の発明は、前記タプル情報抽出部は、前記タプル検索情報が前記タプル検索情報記憶部に記憶された場合に、該記憶されたタプル検索情報が前記タプル情報記憶部に記憶されているタプル情報に該当するか否かを判定し、該判定した結果が該当する場合に、前記記憶されたタプル検索情報に関連付けられているタプル検索情報識別情報と前記該当したタプル情報とを関連づけて前記送信側転送部に出力することを特徴とする請求項４に記載のネットワーク分散共有システムである。
【００１４】
請求項６に記載の発明は、前記タプル情報は送信先タプル記憶部識別情報を設定可能な情報の領域を有しており、前記送信側転送部が、自通信装置が有する前記タプル記憶部からタプル情報を読み出し、前記読み出したタプル情報に送信先タプル記憶部識別情報が設定されているか否かを判定し、送信先タプル記憶部識別情報が設定されていなければ、前記読み出したタプル情報を前記読み出した転送先タプル記憶部識別情報に該当するタプル記憶部に前記ネットワークを介して送信し、送信先タプル記憶部識別情報が設定されていれば、該設定されている送信先タプル記憶部識別情報が、前記転送情報記憶部に記憶されている転送先タプル記憶部識別情報のいずれかと一致するか否かを判定し、いずれかと一致する場合には、前記読み出したタプル情報を前記設定されている送信先タプル記憶部識別情報に該当するタプル記憶部に前記ネットワークを介して送信することを特徴とする請求項２から５に記載のネットワーク分散共有システムである。
【００１５】
請求項７に記載の発明は、前記タプル記憶部は、前記タプル検索情報を検索するためのタプルメタ検索情報を記憶するタプルメタ検索情報記憶部と、前記タプル検索情報が前記タプル検索情報記憶部に記憶された場合に、該記憶されたタプル検索情報が前記タプルメタ検索情報記憶部に記憶されているタプルメタ検索情報に該当するか否かを判定し、該判定した結果が該当する場合には、前記該当したタプル検索情報を前記送信側転送部に出力するタプル検索情報抽出部と、を有し、前記送信側転送部が、前記タプル記憶部から読み出したタプル検索情報を、前記転送情報記憶部から読み出した転送先タプル記憶部識別情報に該当するタプル記憶部に前記ネットワークを介して送信する、ことを特徴とする請求項２から６に記載のネットワーク分散共有システムである。
【００１６】
請求項８に記載の発明は、前記受信側転送部が、前記ネットワークを介して受信したタプル検索情報を、自通信装置が有する前記タプル検索情報記憶部に記憶し、受信時に前記ネットワークあるいは前記タプル検索情報から得られる送信元タプル記憶部識別情報を転送先タプル記憶部識別情報として前記転送情報記憶部に記憶する、ことを特徴とする請求項７に記載のネットワーク分散共有システムである。
【００１７】
請求項９に記載の発明は、前記タプル検索情報抽出部は、前記タプルメタ検索情報が前記タプルメタ検索情報記憶部に記憶された場合に、該記憶されたタプルメタ検索情報が前記タプル検索情報記憶部に記憶されているタプル検索情報に該当するか否かを判定し、該判定した結果が該当する場合には、前記該当したタプル検索情報を前記送信側転送部に出力することを特徴とする請求項７または８に記載のネットワーク分散共有システムである。
【００１８】
請求項１０に記載の発明は、前記受信側転送部は、前記ネットワークを介してタプル検索情報を受信した場合に、自タプル記憶部のタプル検索情報記憶部に記憶されているタプル検索情報とタプル検索情報識別情報とに基づいて生成されたタプル検索情報識別情報と前記受信したタプル検索情報とを関連付けて自通信装置が有する前記タプル検索情報記憶部に記憶するとともに、前記タプル検索情報を受信する場合に前記ネットワークあるいは前記タプル検索情報から得られる送信元タプル記憶部識別情報を転送先タプル記憶部識別情報として、前記タプル検索情報識別情報と関連付けて、自通信装置が有する前記転送情報記憶部のタプル情報転送先情報記憶部に記憶する、ことを特徴とする請求項７から９に記載のネットワーク分散共有システムである。
【００１９】
請求項１１に記載の発明は、前記タプル検索情報は送信元タプル記憶部識別情報を設定可能な情報の領域を有しており、前記送信側転送部が、自通信装置が有する前記タプル記憶部からタプル検索情報を読み出し、前記読み出したタプル検索情報に送信元タプル記憶部識別情報が設定されているか否かを判定し、送信元タプル記憶部識別情報が設定されていなければ、前記読み出したタプル検索情報を前記読み出した転送先タプル記憶部識別情報に該当するタプル記憶部に前記ネットワークを介して送信し、送信元タプル記憶部識別情報が設定されていれば、該設定されている送信元タプル記憶部識別情報が、前記転送情報記憶部に記憶されている転送先タプル記憶部識別情報のいずれかと一致するか否かを判定し、いずれかと一致する場合には、前記読み出したタプル検索情報を前記設定されている送信元タプル記憶部識別情報に該当するタプル記憶部に前記ネットワークを介して送信することを特徴とする請求項７から１０に記載のネットワーク分散共有システムである。
【００２０】
請求項１２に記載の発明は、前記複数の通信装置のうち１つの通信装置がサーバ装置であり、前記サーバ装置の他の複数の通信装置が端末装置であり、前記端末装置の前記転送情報記憶部には、該当するタプル記憶部を前記サーバ装置のタプル記憶部とした前記転送先タプル記憶部識別情報が予め記憶されており、前記端末装置の前記タプル検索情報記憶部には、前記タプル検索情報が予め記憶されており、前記端末装置は、自端末装置の前記タプル情報記憶部にタプル情報が記憶されたことに応じて、前記自端末装置の前記タプル情報抽出部が、前記記憶されたタプル情報が前記タプル検索情報に該当する場合には、前記記憶されたタプル情報を出力し、前記自端末装置の前記送信側転送部が、該タプル情報を、前記転送先タプル記憶部識別情報に基づいて前記ネットワークを介して前記サーバ装置に送信し、前記サーバ装置の前記受信側転送部が、前記ネットワークを介して前記端末装置から受信したタプル情報を、自サーバ装置が有する前記タプル情報記憶部に記憶する、ことを特徴とする請求項２から１１に記載のネットワーク分散共有システムである。
【００２１】
請求項１３に記載の発明は、前記複数の通信装置のうち１つの通信装置がサーバ装置であり、前記サーバ装置の他の複数の通信装置が端末装置であり、前記端末装置の前記転送情報記憶部には、該当するタプル記憶部を前記サーバ装置のタプル記憶部とした前記転送先タプル記憶部識別情報が予め記憶されており、前記端末装置の前記タプル検索情報記憶部には、前記タプル検索情報が予め記憶されており、前記端末装置は、自端末装置の前記タプル情報記憶部にタプル情報が記憶されたことに応じて、前記自端末装置の前記タプル情報抽出部が、前記記憶されたタプル情報が前記タプル検索情報に該当する場合には、前記記憶されたタプル情報を出力し、前記自端末装置の前記送信側転送部が、該タプル情報を、前記転送先タプル記憶部識別情報に基づいて前記ネットワークを介して前記サーバ装置に送信し、前記サーバ装置の前記受信側転送部が、前記ネットワークを介して前記端末装置から受信したタプル情報を、自サーバ装置が有する前記タプル情報記憶部に記憶する、ことを特徴とする請求項１０または１１に記載のネットワーク分散共有システムである。
【００２２】
請求項１４に記載の発明は、前記端末装置の前記転送情報記憶部には、前記サーバ装置のタプル記憶部を識別するタプル記憶部識別情報が前記転送先タプル記憶部識別情報として予め記憶されており、前記端末装置の前記タプルメタ検索情報記憶部には、前記タプルメタ検索情報が予め記憶されており、前記端末装置は、自端末装置のタプル検索情報記憶部にタプル検索情報が記憶されたことに応じて、前記自端末装置のタプル検索情報抽出部が、前記記憶されたタプル検索情報が前記タプルメタ検索情報に該当する場合には、前記記憶されたタプル検索情報を自端末装置の前記送信側転送部に出力し、前記自端末装置の送信側転送部が、入力された前記タプル検索情報を前記転送情報記憶部に記憶されている前記転送先タプル記憶部識別情報に基づいて前記ネットワークを介して前記サーバ装置に送信し、前記サーバ装置の受信側転送部が、前記ネットワークを介してタプル検索情報を受信した場合に、
自タプル記憶部のタプル検索情報記憶部に記憶されているタプル検索情報とタプル検索情報識別情報とに基づいて生成されたタプル検索情報識別情報と前記受信したタプル検索情報とを関連付けて自通信装置が有する前記タプル検索情報記憶部に記憶するとともに、前記タプル検索情報を受信する場合に前記ネットワークあるいは前記タプル検索情報から得られる送信元タプル記憶部識別情報を転送先タプル記憶部識別情報として、前記タプル検索情報識別情報と関連付けて、自通信装置が有する前記転送情報記憶部のタプル情報転送先情報記憶部に記憶する、ことを特徴とする請求項１３に記載のネットワーク分散共有システムである。
【００２３】
請求項１５に記載の発明は、前記サーバ装置は、自サーバ装置の前記タプル検索情報記憶部にタプル検索情報が記憶されたことに応じて、自サーバ装置の前記タプル情報抽出部が、前記記憶されたタプル検索情報に該当するタプル情報と該タプル検索情報識別情報とを関連付けて自サーバ装置の送信側転送部に出力し、自サーバ装置の前記送信側転送部が、入力された前記タプル検索情報識別情報に基づいて、前記転送情報記憶部から転送先タプル記憶部識別情報を読み出し、前記タプル情報を前記読み出した転送先タプル記憶部識別情報に基づいて前記端末装置に前記ネットワークを介して送信し、前記端末装置の前記受信側転送部が、前記ネットワークを介して受信したタプル情報を、自端末装置が有する前記タプル情報記憶部に記憶する、ことを特徴とする請求項１３または１４に記載のネットワーク分散共有システムである。
【００２４】
請求項１６に記載の発明は、前記サーバ装置は、自サーバ装置の前記タプル情報記憶部にタプル情報が記憶されたことに応じて、自サーバ装置の前記タプル情報抽出部が、前記記憶されたタプル情報が前記タプル検索情報記憶部に記憶されているタプル検索情報に該当するか否かを判定し、該判定した結果が該当する場合には、前記該当したタプル検索情報と関連付けて記憶されているタプル検索情報識別情報を前記タプル検索情報記憶部から読み出し、前記記憶されたタプル情報と前記読み出したタプル検索情報識別情報とを関連付けて自サーバ装置の前記送信側転送部に出力し、自サーバ装置の前記送信側転送部が、入力された前記タプル情報識別情報に基づいて、前記転送情報記憶部から転送先タプル記憶部識別情報を読み出し、前記タプル情報を前記読み出した転送先タプル記憶部識別情報に基づいて前記端末装置に前記ネットワークを介して送信し、前記端末装置の前記受信側転送部が、前記ネットワークを介して受信したタプル情報を、自端末装置が有する前記タプル情報記憶部に記憶する、ことを特徴とする請求項１３から１５に記載のネットワーク分散共有システムである。
【００２５】
請求項１７に記載の発明は、前記タプル情報は送信先タプル記憶部識別情報を設定可能な情報の領域を有しており、前記サーバ装置の送信側転送部が、自通信装置が有する前記タプル記憶部からタプル情報を読み出し、前記読み出したタプル情報に送信先タプル記憶部識別情報が設定されているか否かを判定し、送信先タプル記憶部識別情報が設定されていなければ、前記読み出したタプル情報を前記読み出した転送先タプル記憶部識別情報に該当するタプル記憶部に前記ネットワークを介して送信し、送信先タプル記憶部識別情報が設定されていれば、該設定されている送信先タプル記憶部識別情報が、前記転送情報記憶部に記憶されている転送先タプル記憶部識別情報のいずれかと一致するか否かを判定し、いずれかと一致する場合には、前記読み出したタプル情報を前記設定されている送信先タプル記憶部識別情報に該当するタプル記憶部に前記ネットワークを介して送信することを特徴とする請求項１５または請求項１６に記載のネットワーク分散共有システムである。
【００２６】
請求項１８に記載の発明は、前記端末装置の一部または全ての端末装置において、前記タプル記憶部に記憶されているタプル情報には、少なくとも送信先タプル記憶部識別情報が含まれており、前記中継代理部の送信側転送部が、前記自通信装置が有するタプル記憶部からタプル情報を読み出し、該読み出したタプル情報を、該読み出したタプル情報に含まれている送信先タプル記憶部識別情報に該当するタプル記憶部に前記ネットワークを介して送信する、ことを特徴とする請求項１７に記載のネットワーク分散共有システムである。
【００２７】
請求項１９に記載の発明は、複数の通信装置がネットワークを介して接続され、前記複数の通信装置のそれぞれが、タプル情報と前記タプル情報を検索するためのタプル検索情報を記憶し、タプル記憶部識別情報で識別されているタプル記憶部と、前記タプル記憶部に記憶されているタプル情報を送信する、または、受信したタプル情報を前記タプル記憶部に記憶する中継代理部と、を有するネットワーク分散共有システムにおいて用いられるネットワーク分散共有方法であって、前記中継代理部が、前記自通信装置が有するタプル記憶部からタプル情報を読み出し、該読出したタプル情報を、該タプル検索情報に対応して、転送先となるタプル記憶部のタプル記憶部識別情報である転送先タプル記憶部識別情報を前記タプル検索情報に対応付けて記憶する転送情報記憶部から読み出した転送先タプル記憶部識別情報に該当するタプル記憶部を送信先として、前記ネットワークを介して送信する送信側転送手順と、前記ネットワークを介して受信したタプル情報を、自通信装置が有するタプル記憶部に記憶する受信側転送手順と、を有することを特徴とするネットワーク分散共有方法である。
【００２８】
請求項２０に記載の発明は、複数の通信装置がネットワークを介して接続され、前記複数の通信装置のそれぞれが、タプル情報と前記タプル情報を検索するためのタプル検索情報を記憶し、タプル記憶部識別情報で識別されているタプル記憶部と、前記タプル記憶部に記憶されているタプル情報を送信する、または、受信したタプル情報を前記タプル記憶部に記憶する中継代理部と、を有するネットワーク分散共有システムにおいて用いられる前記中継代理部としてのコンピュータに、前記自通信装置が有するタプル記憶部からタプル情報を読み出し、該読出したタプル情報を、該タプル検索情報に対応して、転送先となるタプル記憶部のタプル記憶部識別情報である転送先タプル記憶部識別情報を前記タプル検索情報に対応付けて記憶する転送情報記憶部から読み出した転送先タプル記憶部識別情報に該当するタプル記憶部を送信先として、前記ネットワークを介して送信する送信側転送手順と、前記ネットワークを介して受信したタプル情報を、自通信装置が有するタプル記憶部に記憶する受信側転送手順と、を実行させるためのネットワーク分散共有プログラムである。
【発明の効果】
【００２９】
この発明によれば、Tupleを用いた通信であって、通信量を減じることが出来るネットワーク分散共有システムを提供することが出来るという効果を奏する。
【発明を実施するための最良の形態】
【００３０】
＜Tuple Spaceの概要＞
まず、Tuple Spaceの概要について説明する。Tuple Spaceは、概念上の共有メモリであり、このTuple SpaceにTupleとしてのデータを書込み、また、このTuple SpaceからTupleとしてのデータ読出しすることで、アプリケーションプログラム同士で通信を行なう。たとえていうならば、このTuple Spaceとは、掲示板の役目を果たす。
例えば、送信側アプリケーションプログラムはデータを、この掲示板であるTuple Spaceに書込む。一方、受信側アプリケーションプログラムは、必要とするデータの条件を指定して掲示板であるTuple Space内を検索し、条件にマッチしたデータを読出す。この掲示板でるTuple Spaceを介した間接通信により、アプリケーションプログラムは、送受信するデータの掲示板であるTuple Spaceへの読書きだけで、通信相手を意識することなく通信できるようになる。このようにデータ送受信を単純化できるため、環境変化に関係なく、それぞれのアプリケーションプログラムを独立に開発・運用することが可能になる。
【００３１】
＜第１の実施形態＞
以下、図面を参照して、本発明の第１の実施形態について説明する。図１は、この発明の一実施形態によるネットワーク分散共有システムの構成を示す概略ブロック図である。図１に示すように、通信端末１と通信端末２とが、接続ＮＷ（接続ネットワーク）３を介して接続されている。この通信端末１と通信端末２とは、それぞれ、自通信端末上で動作する複数のアプリケーション１１と、Tuple SpaceであるuTupleSpace１２と、それぞれの通信端末を接続ＮＷ３に接続するRelayAgent１３と、を有する。
【００３２】
アプリケーション１１は、通信端末上で動作し、自通信端末が有するuTupleSpace１２に対してデータを書き込み、また、読み出すことにより、自通信端末上のアプリケーション１１間同士で、また、他の通信端末との間で、通信を実行する。
【００３３】
uTupleSpace１２は、本実施形態で用いるTuple Spaceであり、アプリケーション１１に対してTupleによるデータ送受信機能（uTupleSpace-API）を提供する。ただしuTupleSpace１２単独では、同一uTupleSpace１２に接続したアプリケーション間でのデータ共有しか実現しない。例えば、通信端末１においては、通信端末１のuTupleSpace１２を介しては、通信端末１のアプリケーション１１同士の間でしか、データ共有できない。そのため、通信端末１のアプリケーション１１同士の間でしか、通信をすることができない。そこで、後述するように、複数のuTupleSpace１２間をRelayAgent１３で接続ＮＷ３を介して接続することにより、個々の通信端末のアプリケーション１１に対して、論理的に１つのuTupleSpace１２を構成し、シームレスなデータ共有を実現する。なお、uTupleSpae-APIが分散オブジェクト技術をサポートしていれば、アプリケーション１１はuTuleSpace１２と必ずしも同じ端末上で動作しなくてもよい。一方、接続ＮＷ３は分散オブジェクト技術が実装困難なネットワークを対象としている。
【００３４】
RelayAgent１３は、uTupleSpace１２間を接続して、通信端末間のデータを転送する機能を提供する。以下の理由から、このRelayAgent１３を、uTupleSpace１２上の１つのアプリケーション１１として、実現する。
【００３５】
一般に、uTupleSpace１２間を接続する接続ＮＷ３は、多種多様である。また接続形態も、フラットな構成や階層的な構成など様々なバリエーションが可能である。また、それらの構成に応じたデータ転送方式が必要となる。さらに、uTupleSpace１２間の機能分担に応じてデータ転送方式を規定する必要がある。したがって、uTupleSpace１２間の接続機能を、uTupleSpace１２自体から切り離してアプリケーションとして実装することで次のメリットが得られる。
【００３６】
（ア）拡張性
uTupleSpace１２間の接続ＮＷ３、接続形態を変更・追加する場合、あるいは機能分担を変更する場合には、適切なRelayAgent１３を用意すればよい。
（イ） ポータビリティ
よって、接続ＮＷ３や接続形態、機能分担が異なっても、RelayAgent１３がその違いを隠蔽するため、uTupleSpace１２およびそのアプリケーション１１のポータビリティが高い。
【００３７】
RelayAgent１３とuTupleSpace１２間はuTupleSpace-APIを利用してデータを読み書きし、RelayAgent１３間は接続ＮＷ３の通信インタフェースを利用して、データを転送する。
【００３８】
次に、具体的な処理手順について、その動作について説明する。なお、以下では、通信端末１と通信端末２との間で、uTupleSpace１２間を接続する、即ち接続対象となるuTupleSpace１２が互いに１つである状況を仮定する。
【００３９】
（１）まず、通信端末１において、アプリケーション１１が自身の（第１の）uTupleSpace１２にTupleを書込む。
（２）次に、通信端末１において、第１のuTupleSpace１２上の（第１の）RelayAgent１３が、転送すべきTupleを第１のuTupleSpace１２から読出し、接続ＮＷ３を介して（第２の）RelayAgent１３へ転送する。
【００４０】
（３）次に、通信端末２において、第２のRelayAgent１３は受信したTupleを自身の（第２の）uTupleSpace１２へ書込む。
（４）次に、通信端末２において、第２のuTupleSpace１２上のアプリケーション１１が、必要なTupleを読出す。
なお、上記の第１のとは、通信端末１のことであり、第２のとは、通信端末２のことである。
【００４１】
＜通信端末間の通信：データ転送方式＞
次に、図２から図４を用いて、複数のuTupleSpace１２間で共有するTupleを転送する場合の動作について説明する。複数のuTupleSpace１２間で共有するTupleを転送する方式には、大きく次の２つの形態がある。方式１は完全共有型によるデータ転送方式であり、方式２は、部分共有型によるデータ転送方式である。この方式２は、共有するTupleの検索条件を送信側／受信側のどちらで指定するかの観点から、さらに２つの方式に分けられる。
【００４２】
次に、各方式について説明する。まず、方式１は完全共有型によるデータ転送方式である。この方式１は、接続するuTupleSpace１２間で、ミラーリングする（全てのTupleをコピーしあって、個々に保持するTupleの集合を一致させる）方式である。
【００４３】
図２を用いて、方式１によるTupleの転送する場合の動作について説明する。なお、ここでは、後述するように、データとして書き込むTupleを、actualと呼ぶ。まず、RelayAgent１３がローカルのuTupleSpace１２に書込まれたactualを全て読出し（ｒｅａｄして）、リモートのuTupleSpace１２にも同じactualを書込む（図２中の（３）、（４）参照）。
【００４４】
その結果、送信側アプリケーションの書込み、受信側アプリケーションの読出し（actualの条件マッチング）ともにローカルで完了する。この場合、送信側のRelayAgent１３がactualを読出す条件（図２中のformal-１）は、ローカルに書込まれる全てのactualとマッチする必要がある。また、一方のuTupleSpace１２で、actualがアプリケーションに読出（ｔａｋｅ）されたり、有効期限に基づいて削除された場合は、他方でも削除するなどの同期処理が必要となる。なお、formalとはactualを検索するための検索条件である。このformalについては、後述する。
【００４５】
次に、方式２は、部分共有型によるデータ転送方式である。この方式２は、接続するuTupleSpace１２間で相互に必要なTupleのみを一方から他方へ転送することにより、データ転送する方式である。この方式２は、更に、方式２-１として、リモート書込みしてローカル読出しする場合と、方式２-２として、ローカル書込みしてリモート読出しする場合とがある。
【００４６】
まず、方式２-１のリモート書込みしてローカル読出しする場合について説明する。この方式２-１では、共有すべきactualを、受信側アプリケーションが存在し得るリモートのuTupleSpace１２に書込む（リモート書込み）。次に、受信側アプリケーションは、自身のuTupleSpace１２から必要なactualを読出す（ローカル読出し）。
【００４７】
図３を用いて、この方式２-１によるTupleの転送する場合の動作について説明する。この場合の動作は、図２を用いて説明した方式１の動作とほぼ同じである。この図３の方式２-１の動作と図２の方式１の動作との相違点は、図３中（１）で書込んだactualのうち、共有すべきものだけが転送されることである。さらにこのとき、転送すべきactualの検索条件（formal-３）については、読出し側のアプリケーションに関わらず、転送元（送信側）で決めることに特徴がある。
【００４８】
次に、方式２-２のローカル書込みしてリモート読出しする場合について説明する。この方式２-２では、方式２-１と対比すると、共有すべきactualを送信側から勝手には転送しない。方式２-２では、受信側アプリケーションから間接的にリモートの送信側uTupleSpace１２ヘアクセスし、必要なactualを読出す。つまり、リモート読出しする。
【００４９】
図４を用いて、この方式２-２によるTupleの転送する場合の動作について説明する。まず、リモート読出しのためには、受信側アプリケーションのactual検索条件（formal-２）を送信側へ転送する必要がある。したがって、本方式では、送信側RelayAgent１３がformal-２を事前に取得して、取得したformal-２の条件に基づいてローカルのactualを検索する。なお、formal-２の転送にあたり、受信側RelayAgent１３のformal-２の読出しには、後述するmeta-formal-１を使用する。このように本方式では、転送すべきactualを転送先（受信側）で決める点に特徴がある。
【００５０】
方式２の場合は、接続される２つのuTupleSpace１２の各々に対して、また、送信と受信のそれぞれの場面でどちらの方式を採るかで場合分けされる。そのため、計４通りの組合せが可能である。４通りの組合せの中から、いずれの組合せが適切であるかの選択は、各通信端末がもつ計算リソースや、接続ＮＷ３が提供する通信リソースや通信コスト、さらに想定するアプリケーション内容に基づいて、選択することが可能である。
【００５１】
次に、Tupleについて説明する。Tupleとは、アプリケーションプログラムとuTupleSpace１２との間の送受信データ、ないし、受信データ形式のことである。このTupleは、フィールドの集合で記述する。このフィールドとは、１つのキーと値のペアのことであり、後述するように予め規定されている必須フィールドとユーザが自由に記述できるフィールドとを有する。また、uTupleSpace１２に書き込まれたTupleは原則的に、永続化するようにする。そのため、装置が再起動した場合も復旧可能である。また、TupleをuTupleSpace１２に保持できる有効期限を設定することが可能である。そのため、有効期限を過ぎたTupleは、uTupleSpace１２から削除するようにすることも可能である。
【００５２】
また、Tupleは、actualと、formalと、meta-formalとの３種類のTupleを有する。Actualは、アプリケーションがデータとしてuTupleSpace１２に書込むTupleである。Formalは、uTupleSpace１２からactualを読出す場合に、actualの検索条件としてuTupleSpace１２に登録するTupleである。Meta-formalは、formalを検索するためのformalであり、formalと同様に、uTupleSpace１２からformalを読出す場合に、formalの検索条件としてuTupleSpace１２に登録するTupleである。
ここで読出す方法にはｒｅａｄとｔａｋｅの２通りある。「読出し（ｒｅａｄ）」とは、Tupleの実体のコピーを取り出す（実体を参照する）ことを意味し、Tupleの実体はuTupleSpace内に残存する。一方、「読出し（ｔａｋｅ）」とは、Tupleの実体そのものを取り出す（取得する）ことを意味し、該TupleはuTupleSpace内には残存しない。
【００５３】
次に、図５を用いて、上記に説明したactualと、formalと、meta-formalとの３種類のTupleを用いて、アプリケーション１１がuTupleSpace１２に対してTupleを書き込む場合と読み出す場合との動作について説明する。なお、ここでは、例えば図１で示した通信端末１において、通信端末１の複数のアプリケーション１１が、通信端末１のuTupleSpace１２に対してTupleを書き込み、また、通信端末１のuTupleSpace１２からTupleを読み出す場合について説明する。
【００５４】
※入れ替わらなくてもよいわけでないので，入れ替わるとしました
まず、符号Ｂ５１で示されるアプリケーション１１（ＡＰ１１）が、actualをuTupleSpace１２に書き込む（ステップＳ５１）。次に、符号Ｂ５２で示されるアプリケーション１１が、formalをuTupleSpace１２に書き込む（ステップＳ５２）。次に、符号Ｂ５２で示されるアプリケーション１１が、uTupleSpace１２に書き込んだformalの条件に一致するactualを、uTupleSpace１２から読出す（ステップＳ５３）。
また、符号Ｂ５３で示されるアプリケーション１１が、meta-formalをuTupleSpace１２に書き込む（ステップＳ５３）。次に、符号Ｂ５３で示されるアプリケーション１１が、uTupleSpace１２に書き込んだmeta-formalの条件に一致するformalを、uTupleSpace１２から読出す（ステップＳ５４）。
なお、読出し(read/takｅ)には検索型と通知型とがあり、上記は検索型を前提とした説明である。通知型の場合には、ステップＳ５１とステップＳ５２、およびステップＳ５２とステップＳ５３の順番が入れ替わる。
【００５５】
次に、図６を用いて、Tupleが有する構成要素（タプル要素）であるフィールドについて説明する。Tupleは、フィールドとして、（１）送信元uTupleSpace識別情報、（２）送信先uTupleSpace識別情報を少なくとも有する。また、アプリケーション１１間でのTupleの送受信を効率的に行うためのフィールドとして、（３）センサ／アクチュエータ種別、（４）コマンド／イベントタイプ、および（５）パラメータを有してもよい。また、その他の情報として、（６）タイムスタンプ情報や、（７）品質クラスを有してもよい。
【００５６】
送信元uTuleSpace識別情報は、Tuple転送の送信側となるuTupleSpaceを識別するための識別子であり、キーとしてfromを有し、値として、たとえば、uTupleSpaceを識別する名前、アドレス、任意の文字列や数字、バイナリデータを有する。以降、これを、簡略のため「from要素」と称する。
送信先uTuleSpace識別情報は、Tuple転送の受信側となるuTupleSpaceを識別するための識別子であり、キーとしてtoを有し、値として、たとえば、uTupleSpaceを識別する名前、アドレス、任意の文字列や数字、バイナリデータを有する。例えば，端末にuTupleSpaceを１つだけ保持する場合は、その端末の識別情報をuTupleSpaceの識別子として使用しても良い。以降、これを、簡略のため「to要素」と称する。
【００５７】
センサ／アクチュエータ種別は、サブアプリケーションやデバイスなどのアプリケーションを構成する要素を示すフィールドであり、キーとしてsubjectを有し、値として、たとえば、アプリケーションやセンサ／アクチュエータの種別を識別するための名前やアドレス、任意の文字列や数字を有する。この意味は、アプリケーション間で予め規定される。
コマンド／イベントタイプは、アプリケーションやアプリケーション構成要素に求める処理を示すフィールドであり、キーとしてtypeを有し、値は、たとえば、パラメータやデータの設定や取得、応答、イベントを表す文字列”SET”、”GET”、”RESPONSE”、”TRAP”を有する。この具体的な値と意味は、アプリケーション間で予め規定される。
パラメータは、センサ／アクチュエータ種別で示されるアプリケーションに対して、コマンド／イベントタイプで示される処理を行う場合に必要となるデータもしくはデータの組を示し、キーとしてbodyを有し、値は、任意のフィールドの集合である。キーや値はアプリケーション間で予め規定される。
また、タイムスタンプ情報は、キーとしてdateを有し、値として時刻を表す情報、たとえば年月日時分秒から構成される文字列”YYYYMMDDHHMMSS”形式で記述された値を有する。
さらに、接続ＮＷ３においてデータ転送の品質クラスが存在する場合は、品質クラスを指定するフィールドを追加してもよい。品質クラスはキーとして、priorityを有し、値として、たとえば、接続ＮＷ３に広域ユビキタスＮＷを適用する場合は、文字列”HIGH”または”LOW”を有する。この”HIGH”は即時通信を意味し、”LOW”は遅延許容通信を意味する。
なお、センサ／アクチュエータ種別、コマンド／イベントタイプ、あるいはタイムスタンプ情報などのフィールドは、上記説明のように個々のフィールドにわけてもよいし、パラメータの中に含めてしまってもよい。
【００５８】
次に、上記で説明した送信元uTupleSpace識別情報であるfrom要素と、送信先uTupleSpace識別情報であるto要素とについて、説明する。
この送信元uTupleSpace識別情報と送信先uTupleSpace識別情報とは、RelayAgent間の転送に使用され、送信側、受信側となる（ローカル）uTupleSpaceを識別する。また、後述するように、本実施形態を広域ユビキタスNWに適応した場合、広域ユビキタスNWの特徴に基づきIP-TEが主、TEが従となることから、TE側のuTupleSpaceからみたIP-TE側のuTupleSpaceを“PARENT“、IP-TE側のuTupleSpaceからみたTE側のuTupleSpaceをTEの端末識別情報で表す。また、自端末のuTupleSpaceを”SELF”で表す。なお、以上は各端末装置にuTupleSpaceが１つだけ存在する場合を仮定しており、端末装置にuTupleSpaceが複数存在する場合は、uTupleSpaceをユニークに識別する識別子を用いる。RelayAgentは、Tupleの、送信元uTupleSpace識別情報と送信元uTupleSpace識別情報とのフィールドの値をチェックして、Tupleの転送を行なう。
【００５９】
次に、この送信元uTupleSpace識別情報と送信先uTupleSpace識別情報とを用いた転送ルールについて、説明する。
RelayAgent１３は1対で1組となり、他方からTupleを受信した場合、そのTupleを用いて他方の代理人としてローカルなuTupleSpace１２に書込み／読出しを行う。読出されたTupleは、他方へ転送される。TE RelayAgent１３は、次のTupleを、TE uTupleSpace１２から取得し、IP-TE RelayAgent１３に転送する。例えば、to=“PARENT”と設定されているactualの場合、to=“PARENT”と設定したformalで取得し、後述するシーケンス図１４（１-５）〜（２-３）の動作により転送する。また、from=“PARENT”と設定されているformalの場合、from=“PARENT”と設定したmeta-formalで取得し、後述するシーケンス図１５（１-４）〜（３-３）の動作により転送する。なお、IP-TE RelayAgent１３はTE RelayAgent１３から転送されたformalにマッチしたactualを、該当TE RelayAgent１３に転送する（シーケンス図１５（３-４）〜（３-７））。
【００６０】
ここで、上記で説明した方式２によりデータを転送する場合、actualの転送を決定する条件は、送信側で指定する場合と受信側で指定する場合とに分かれる。これを可能にするため、TupleにuTupleSpace１２間転送用のフィールドとしての送信元uTupleSpace識別情報、および送信先uTupleSpace識別情報を設けている。
【００６１】
転送条件を送信側で決める場合、条件として登録するformal（図３中のformal-３）の送信先uTupleSpace識別情報フィールドに転送先となる受信側のuTupleSpace１２を設定する。逆に転送条件を受信側で決める場合はformalおよびmeta-formal（図４中のformal-２およびmeta-formal-1）の送信元uTupleSpace識別情報フィールドに送信側のuTupleSpace１２を設定することでformalを送信側へ転送し、送信先uTupleSpace識別情報フィールドに受信側のuTupleSpace１２を設定して送信側uTupleSpace１２に記録する。さらに後者の場合において、受信側のアプリケーションに関する情報を、センサ／アクチュエータ種別、コマンド／イベントタイプ等のフィールドに記載することにより、転送するactualを受信側アプリケーションが真に必要としているものだけに制限することが可能となる。
【００６２】
次に、図７を用いて、本実施形態によるネットワーク分散共有システムを、広域ユビキタスＮＷに適用した場合の構成について説明する。同図において、図１の構成に相当する構成には、同一の符号を付し、その説明を省略する。なお、ここでは、通信端末１をIP-TE１（Internet Protocol-Terminal Equipment）とし、通信端末２をTE２（Terminal Equipment）として、説明する。広域ユビキタスＮＷにおいては、このIP-TE１とは、例えば、サーバであり、TE２は、例えば、通信機能を有する複数のセンサ装置である。ここでは、IP-TE１が１台の場合について説明する。また、接続ＮＷ３は、広域ユビキタスＮＷ３に対応する。
【００６３】
この図７のIP-TE１およびTE２は、図１の通信端末１および通信端末２と同様に、アプリケーション１１と、uTupleSpace１２と、RelayAgent１３とをそれぞれ有する。なお、IP-TE１においては、アプリケーション１１として、IP-TEアプリケーションが動作し、TE２においては、アプリケーション１１として、ＴＥアプリケーションが動作する。なお、IP-TE１のRelayAgent１３は、IP-GW（Internet Protocol-GateWay）４を介して広域ユビキタスＮＷ３に接続され、また、TE２のRelayAgent１３は、WTu（Wireless Terminal for Ubiquitous network service）５を介して広域ユビキタスNW３に接続される。
【００６４】
IP-TE１とTE２とは、それぞれ、uTupleSpace１２とRelayAgent１３とを有する。以降において、uTupleSpace１２とRelayAgent１３とを、IP-TE１とTE２との通信端末の装置種別ごとに区別して説明する場合には、uTupleSpace１２とRelayAgent１３とに、IP-TEもしくはTEを頭につけて表記する。例えば、IP-TE１が有するuTupleSpace１２を、IP-TE uTupleSpace１２と称し、TE２が有するuTupleSpace１２を、TE uTupleSpace１２と称する。
【００６５】
IP-TE／TE RelayAgent１３はそれぞれの広域ユビキタスＮＷ通信インタフェースを使用してデータ転送を行なうことで、広域ユビキタスＮＷ３を接続ＮＷ３とする複数装置に跨るuTupleSpaceを構成する。このとき、IP-TE１とTE２とのRelayAgent１３間で実現するデータ転送方式を規定する上で考慮すべき広域ユビキタスＮＷ３の特徴を、以下に説明する。
【００６６】
＜接続形態＞
広域ユビキタスＮＷ３では、あるTE２を収容するIP-TE１は必ず１つに決まることから、あるTE RelayAgent１３と組となるIP-TE RelayAgent１３は、１つに限定される。一方、IP-TE１は複数のTE２を収容することから、IP-TE RelayAgent１３は複数種類のTE RelayAgent１３と接続し得る。このとき転送先となるTE RelayAgent１３の区別には、広域ユビキタスＮＷ３において通信の宛先に使用される端末識別情報（サービスＩＤ）を用いる。
【００６７】
＜想定アプリケーション＞
広域ユビキタスＮＷ３では、TE２側のアプリケーション（TEアプリケーション）１１は、例えば、センサ／アクチュエータ駆動アプリケーションである。また、IP-TE１側のアプリケーション（IP-TEアプリケーション）１１は、例えば、データ収集およびデータ加工アプリケーションや、デバイス制御アプリケーションである。
【００６８】
したがって、TEアプリケーション１１の通信相手となる通信端末は、ほとんどがIP-TEアプリケーション１１であるため、TEアプリケーション１１が生成するTupleについては、ほぼすべてIP-TE１側に転送する必要がある。一方IP-TEアプリケーション１１の通信相手は、複数のTEアプリケーション１１となり、さらに他のIP-TEアプリケーション１１が通信相手となる場合もある。よってIP-TE１からTE２へのTupleの転送は、選択的に転送する必要がある。
【００６９】
＜接続ＮＷ３＞
広域ユビキタスＮＷ３は、莫大な数のTE２を収容することから、IP-TE１とTE２との間の通信帯域などの通信リソースは非常に限られる。したがってuTupleSpace１２間のデータ転送においては、受信側アプリケーション１１が必要としない無駄な転送は避けたほうが好ましい。また転送するにあたっては、データ圧縮などにより、データ量を削減することが好ましい。
【００７０】
＜TE＞
広域ユビキタスＮＷ３では、処理能力の高いＰＣ相当の通信装置から、組込マイコンのような機能が低く演算能力やメモリ容量に限界がある通信装置、さらには使い捨て端末のような１ビット処理端末などの通信装置など、様々な通信装置であるTE２がある。したがって、上記で説明したIP-TE１とTE2との間のデータ転送方式のうち、どれを適用するかは、演算能力やメモリ容量ならびに消費電力を考慮して選択することが重要となる。
【００７１】
TE2が、たとえばマイコンのように機能が低く演算能力やメモリ容量に限界があるリソース条件が厳しい低処理能力装置の場合、Tupleの永続化や過去に記録されたTupleの検索を実現することは難しい。また、このような装置は容易にリセットすることができるため、TE2側のTupleはリセットなどにより削除されてしまう可能性がある。すなわち、広域ユビキタスNWのIP-TE1とTE2とでは、大きなリソース格差が存在する。
【００７２】
次に、上記に説明した広域ユビキタスＮＷ３の特徴に基づいて、IP-TE１とTE２との間のデータ転送方式について説明する。IP-TE１とTE２との間のデータ転送方式においては、通信トラヒックならびにTE２側で必要となるリソースを極力低減できる組合せとして、次に示す方式を適用する。
【００７３】
（ａ）TE2からIP-TE1へのデータ転送方式は、上記に説明した（方式２-１：TEリモート書込み⇒IP-TEローカル読出し）を選択する。つまり、TEアプリケーション１１が書込んだIP-TEアプリケーション１１向けactualは、全てIP-TE１側へ転送する。また、IP-TE１側で、actualを保持・永続化する。
【００７４】
（ｂ）IP-TE1からTE2へのデータ転送方式は、上記に説明した（方式２-２：IP-TEローカル書込み⇒TEリモート読出し）を選択する。つまり、IP-TEアプリケーション１１が書込んだactualについては、TEアプリケーション１１の検索条件に適合するactualの検索をIP-TE１側で行い、TE２側へ転送する。
【００７５】
この組み合わせを採用することにより、次のようなメリットが得られる。まず、豊富なリソースと永続化機能を持つIP-TE１がactualを始めとした全ての共有すべきTupleを一括して保持することで、リソース条件の厳しいTE２を接続した場合にも、当該TE２が生成した過去のデータの検索や、故障時やリセット時の復旧が可能となる。すなわち、IP-TE1とTE2が同等の記憶容量や処理能力を持たなくても、TupleSpaceを用いたデータ分散共有システムの構築が可能となる。
【００７６】
また、省トラヒックの観点からは、TE２側へ転送するactualを個々のアプリケーション１１が必要なものだけに限定できる。一方、TEアプリケーション１１の検索条件であるformalを、IP-TE1側へ転送するが、このformalを転送する回数は、起動時の１回のみであるため、formal転送によるトラヒック増大は殆どない。すなわち、TupleSpaceを用いたデータ分散共有システムにおいて、IP-TE1とTE2間の通信量を低減することが可能となる。
【００７７】
次に、図８を用いて、IP-TE１またはTE２である通信端末の構成について詳細に説明する。なお、通信端末であるIP-TE１とTE２とは、構成としては同様の構成を有しているので、ここでは、１つの通信端末１の構成についてのみ説明する。
【００７８】
なお、以降において、TE２からIP-TE１へのactualの転送を、アップロード処理と称し、IP-TE１からTE２へのactualの転送、または、TE２がIP-TE１へformalを送信することにより、該送信したformalに該等するactualを、TE２がIP-TE１から読み出すことを、ダウンロード処理と称して説明する。
【００７９】
通信端末１は、アプリケーション１１と、uTupleSpace１２と、RelayAgent１３とを有する。アプリケーション１１は、アプリケーション部１１１と、uTupleSpace入出力処理部１１２とを有する。uTupleSpace１２は、actual記憶部１２１と、formal記憶部１２２と、meta-formal記憶部１２３と、actual抽出部１２４と、formal抽出部１２５とを有する。RelayAgent１３は、ＮＷ通信処理部１３１と、初期化機能部１３２と、メイン処理部１３３と、uTupleSpace入出力処理部１３４とを有する。また、このメイン処理部１３３は、リセット処理部１３３１と、アップロード処理部１３３２と、ダウンロード処理部１３３３とを有する。
【００８０】
RelayAgent１３は、接続ＮＷ３を介して異なる通信端末であるノード上のアプリケーション１１同士で、uTupleSpace１２を介したデータの送受信を実現する為に、ノード間のTupleの転送処理を行なうモジュールであり、接続するノードの両方にそれぞれ存在する。
【００８１】
RelayAgent１３の機能としては、uTupleSpace１２と接続ＮＷ３に対するインタフェース部であるＮＷ通信処理部１３１を有し、自通信端末が有するアプリケーション１１が、自通信端末が有するuTupleSpace１２に書き込んだactualもしくはformalを取得して、接続ＮＷ３を介して他方の通信端末のRelayAgent１３へと送信する。また、RelayAgent１３は、接続ＮＷ３を介して他方の通信端末のRelayAgent１３から受信したデータを、自通信端末が有するuTupleSpace１２に、actualもしくはformalとして書込む。なお、RelayAgent１３は、Tupleを送信または受信において転送する場合に、uTupleSpace１２で使用するTupleフォーマットと、RelayAgent１３間通信仕様に従ったフォーマットとの相互変換を行う。
【００８２】
上記の中継機能を実現するため、RelayAgent１３は、uTupleSpace１２上のアプリケーションとして動作し、通信端末の起動時に、uTupleSpace１２からデータを取得するための動作を行なう。
【００８３】
次に、アプリケーション１１の各構成について説明する。アプリケーション部１１１は、複数のアプリケーションが動作する。この複数のアプリケーションのそれぞれは、uTupleSpace入出力処理部１１２を介して、uTupleSpace１２からTupleを書き込み、または、読み出す。
【００８４】
次に、uTupleSpace１２の各構成について説明する。Actual記憶部１２１には、actualが記憶される。Formal記憶部１２２には、formalが記憶される。Meta-formal記憶部１２３には、meta-formalが記憶される。
【００８５】
actual抽出部１２４は、formal記憶部１２２にformalが書き込まれて記憶されることに応じて、この書き込まれたformalの検索条件に一致するactualをactual記憶部１２１から抽出し、該抽出したactualを、このactualまたはこのformalで識別される宛先へ送出する。また、actual抽出部１２４は、formal記憶部１２２に予めformalが記憶されており、actualがactual記憶部１２１に書き込まれて記憶されることに応じて、該書き込まれたactualが、予めformal記憶部１２２に記憶されていたformalと一致するか否かを判定し、一致する場合には、この書き込まれたactualを、このactualまたはこのformalで識別される宛先へ送出する。あるいは、actual抽出部１２４は、actualがactual記憶部１２１に書き込まれており、formal記憶部１２２にformalが記憶されることに応じて、該書き込まれたformalが、予めactual記憶部１２１に記憶されていたactualと一致するか否かを判定し、一致する場合には、この書き込まれたformalに一致するactualを、このactualまたはこのformalで識別される宛先へ送出する。
【００８６】
formal抽出部１２５は、meta-formal記憶部１２３にmeta-formalが書き込まれて記憶されることに応じて、この書き込まれたmeta-formalの検索条件に一致するformalをformal記憶部１２２から抽出し、該抽出したformalを、formalまたはmeta-formalで識別される宛先へ送出する。また、formal抽出部１２５は、meta-formal記憶部１２３に予めmeta-formalが記憶されており、formalがformal記憶部１２２に書き込まれて記憶されることに応じて、該書き込まれたforamlが、予めmeta-formal記憶部１２３に記憶されていたmeta-formalと一致するか否かを判定し、一致する場合には、この書き込まれたformalを、formalまたはmeta-formalで識別される宛先へ送出する。あるいは、formal抽出部１２５は、formalがformal記憶部１２２に書き込まれており、meta-formal記憶部１２３にmeta-fomalが記憶されることに応じて、該書き込まれたmeta-formalが、予めformal記憶部１２２に記憶されていたformalと一致するか否かを判定し、一致する場合には、この書き込まれたmeta-formalに一致するformalを、このformalまたはこのmeta-formalで識別される宛先へ送出する。
【００８７】
次に、RelayAgent１３の各構成について説明する。ＮＷ通信処理部１３１は、RelayAgent１３を接続ＮＷ３に接続し、接続ＮＷ３を介して、自端末がTE２である場合には自端末のRelayAgent１３とIP-TE1との間で、また自端末がIP-TE1である場合には自端末のRelayAgent１３とTE２との間で、Tupleを受信または送信する。
【００８８】
初期化機能部１３２は、リセット要求もしくはリセット通知を受信したことに応じて、メイン処理部１３３などの初期化を実行する。特に、TE２の場合は、アップロード処理部１３３２とダウンロード処理部１３３３とに、それぞれの処理に必要となるformal/meta-formalを登録する。なお、これらのformalおよびmeta-formalは、初期化機能部１３２が有する初期設定記憶部に予め記憶してあり、初期化機能部１３２が初期設定記憶部から読み出して、uTupleSpace１２に登録する。
【００８９】
メイン処理部１３３については、次に説明する起動処理、リセット処理、アップロード処理、ダウンロード処理の説明において、その構成について説明する。
【００９０】
次に、起動処理、リセット処理、アップロード処理、ダウンロード処理の各処理における通信端末の動作、特に、RelayAgent１３の動作について説明する。なお、ここでは、IP-TE１におけるRelayAgent１３の動作と、TE２におけるRelayAgent１３の動作とについて、説明する。なお、各処理の説明において、後述する図１３から図１５に対応する処理については、同一のステップ番号を付している。
【００９１】
＜起動処理＞
まず、図９を用いて、起動処理におけるRelayAgent１３の動作について説明する。RelayAgent１３を起動した場合に、NW通信処理部１３１の初期設定を行う。この初期設定とは、NW通信処理部１３１が受信したデータを、メイン処理部１３３内の適切な処理部に送信するための設定である。その後、対向ノードに対して、リセット要求もしくはリセット通知を送信する。
また、TE２の場合は、アップロード処理部１３３２とダウンロード処理部１３３３とを起動し、それぞれの処理に必要となるformal/meta-formalを登録する（図１３の１-５、１-４）。
【００９２】
＜リセット処理＞
次に、図１０を用いて、リセット処理におけるRelayAgent１３の動作について説明する。IP-TE１のRelayAgent１３の場合は、NW通信処理部１３１がリセット通知を受信した場合、リセット処理部１３３１が起動される。リセット処理部１３３１はuTupleSpace１２入出力処理部１３４を介して、uTupleSpace１２に登録されている該当TE２からのformalを削除する。一方、TE RelayAgent１３の場合は、NW通信処理部１３１がリセット要求を受信した場合、リセット処理部１３３１が起動される。リセット処理部１３３１は、TE２である自通信端末を再起動する。
【００９３】
＜アップロード処理＞
次に、図１１を用いて、アップロード処理におけるRelayAgent１３の動作について説明する。IP-TE RelayAgent１３の場合は、NW通信処理部１３１が、例えばactualデータを受信した場合、アップロード処理部１３３２が起動される。なお、このアップロード処理部１３３２が起動においては、actualごとに、アップロード処理部１３３２がスレッドとして起動する。次に、アップロード処理部１３３２が、受信したactualデータをactualに変換し、uTupleSpace１２に書き込む（図１４の２-４）。なお、変換する際に、from要素を端末識別情報（サービスID）に変換する。
【００９４】
一方、TE RelayAgent１３の場合は、アップロード処理部１３３２が、起動時に登録したformalにマッチしたactualを受信した場合（図１４の２-２）、受信したactualをRelayAgent１３間通信仕様の形式に変換し、NW通信処理部１３１を介してIP-TE RelayAgent１３に送信する。
【００９５】
＜ダウンロード処理＞
次に、図１２を用いて、ダウンロード処理におけるRelayAgent１３の動作について説明する。IP-TE RelayAgent１３の場合は、NW通信処理部１３１が、例えばformalデータを受信した場合、ダウンロード処理部１３３３が起動される。なお、ダウンロード処理部１３３３が起動においては、formalごとに、ダウンロード処理部１３３３がスレッドとして起動する。次に、ダウンロード処理部１３３３が、受信したformalデータ（RelayAgent１３間通信仕様形式）をuTupleSpace１２で扱うformalの形式に変換し、uTupleSpace１２に対してformalによるactualの取得を行う（図１５の３-４、３-６）。なお、IP-TE RelayAgent１３は、RelayAgent１３間通信仕様形式をformalに、またはactualをRelayAgent１３間通信仕様形式に変換する場合に、from要素とto要素との交換ならびに値の“PARENT”と端末識別情報（サービスＩＤ）との変換を実施する。
その後、IP-TE RelayAgent１３は、uTupleSpace１２から取得したactualをRelayAgent１３間通信仕様形式に変換した結果を、ダウンロードデータとしてNW通信処理部１３１からTE RelayAgent１３に送信する（３-７）。
【００９６】
一方、TE RelayAgent１３の場合は、ダウンロード処理部１３３３が、起動時に登録したmeta-formalにマッチしたformalを受信した場合（３-２）、RelayAgent１３間通信仕様の形式にformalを変換し、NW通信処理部１３１を介してIP-TE RelayAgent１３に送信する。また、NW通信処理部１３１がIP-TEからactualデータを受信した場合、uTupleSpace１２で扱うactualに変換して、uTupleSpace１２に書き込む（３-８）。
【００９７】
次に、図１３から図１５を用いて、起動処理、リセット処理、アップロード処理、ダウンロード処理の各処理におけるネットワーク分散共有システムの動作について説明する。なお、以降の図中では読出し（ｒｅａｄ）を参照と呼ぶ。また読出し（ｔａｋｅ）を取得と呼ぶ。また通知型（ｎｏｔｉｆｙ）か否かは参照／取得をコールバック（割り込み）で行うか否かを指す。
【００９８】
まず、図１３を用いて、起動処理およびリセット処理におけるネットワーク分散共有システムの動作について説明する。まず、IP-TE１は、起動時もしくは再起動時は、接続する全てのTE２に向けてリセット要求を送信する（１-１）。これはIP-TE RelayAgent１３の、起動時の処理である。リセット要求を受信したTE２は、それぞれのTE2において、再起動処理を行なう。これは、例えば、TE RelayAgent１３からのトリガとして実現する。
【００９９】
次に、TE RelayAgent１３が再起動すると、対向するIP-TE RelayAgent１３にリセット通知を送信する（１-２）。次に、TE RelayAgent１３は、予め指定された情報に基づき、データ転送に向けた次の２つの処理を行なう。第１の処理として、TE RelayAgent１３は、TEアプリケーション１１のリモート読出し（ダウンロード処理）のために転送すべきactual検索条件（formal）の検索要求を、TE uTupleSpace１２に対して行なう（１-４）。具体的には、formal検索のための条件であるmeta-formalをTE uTupleSpace１２に登録する。第２の処理として、TE RelayAgent１３は、TEアプリケーション１１のリモート書込み（アップロード処理）のために転送すべきactualの検索要求をTE uTupleSpace１２に対して行なう（１-５）。具体的には、actual検索のための条件であるformalをTE uTupleSpace１２に登録する。
【０１００】
一方、リセット通知を受けたIP-TE RelayAgent１３は、それ以前に登録している、該当TEからのリモート読込み（ダウンロード処理）のためのformalを削除し（１-３）、リセット後の新規登録に備える。なお、TE２単独でリセットした場合は、上記（１-２）以降のシーケンスに従い、同様の動作をする。
【０１０１】
次に、図１４を用いて、アップロード処理におけるネットワーク分散共有システムの動作について説明する。まず、TEアプリケーション１１がactualを書込む（２-１）と、TE２起動時に登録（図１３の（１-５）参照）したformalにマッチするactualが、TE RelayAgent１３に通知される（２-２）。この条件マッチングは、図６を用いて説明したTupleフィールドのうち、例えば、送信先ｕTupleSpace識別情報フィールドで行なう。
【０１０２】
次に、TE RelayAgent１３は、該当actualを対向するIP-TE RelayAgent１３に転送（Ｕｐｌｏａｄ）する（２-３）。次に、actualの転送を受け取ったIP-TE RelayAgent１３は、該当actualをIP-TE uTupleSpace１２へ書込む（２-４）。次に、IP-TEアプリケーションは、必要なactualの参照／取得を要求して（２-５）、該当条件とマッチするactualを読出す（２-６）。なおactualの参照／取得が通知型で要求された場合には、（２-４）の書込みの前に（２-５）の参照／取得要求があってもよい。また、IP-TE uTupleSpace１２へ書込まれたactualは永続化されるため、取得（ｔａｋｅ）されるか、その有効期限が切れるまでは、繰り返し参照可能である。なお、この永続化とは、IP-TE uTupleSpace１２へ書込まれたactualが、IP-TE１の電源が切れた場合においても、消えないことである。例えば、IP-TE uTupleSpace１２である記憶部をハードディスク装置とし、または、IP-TE２が電源バックアップ部を有し、この電源バックアップ部により、停電時においても、IP-TE uTupleSpace１２が電源バックアップされるようにすることにより、永続化されるようにする。
【０１０３】
次に、図１５を用いて、ダウンロード処理におけるネットワーク分散共有システムの動作について説明する。まず、TEアプリケーション１１が、リモート読出しのためのactual検索条件（formal）を書込む（３-１）と、TE２起動時に登録（図１３（１-４））したmeta-formalにマッチするformalが、TE RelayAgent１３に通知される（３-２）。この条件マッチングは、図６を用いて説明したTupleフィールドのうち、例えば、送信元uTupleSpace識別情報フィールドで行なう。
【０１０４】
次に、TE RelayAgent１３は、該当formalを対向するIP-TE RelayAgent１３に転送する（３-３）。次に、formalの転送を受け取ったIP-TE RelayAgent１３は、該当formalをIP-TE uTupleSpace１２へ登録する。つまりactual検索要求を行なう（３-４）。
【０１０５】
IP-TE RelayAgent１３は、それまでにIP-TEアプリケーションが書込んだactual（３-５）のうち、該当条件とマッチするactualを読出す（３-６）。または、その後、IP-TEアプリケーションが書込んだactual（３-５）のうち、該当条件とマッチするactualを読出す（３-６）。この条件マッチングは、図６を用いて説明したTupleフィールドのうち、例えば、送信先uTupleSpace識別情報フィールドおよび、アプリケーション間で規定するセンサ／アクチュエータ種別、コマンド／イベントタイプなどのフィールドを使用する。
【０１０６】
次に、IP-TE RelayAgent１３は、actualの通知（３-６）を受けると、送信先ｕTupleSpace識別情報フィールドの内容に基づき、該当するTE RelayAgent１３にactualを転送する（３-７）。次に、対向するIP-TE RelayAgent１３からTE RelayAgent１３がactualを受け取ると、TE RelayAgent１３が、受け取ったactualをTE uTupleSpace１２へ該当actualを書込む（３-８）。すると、TE uTupleSpace１２内で、条件マッチングを行い、TEアプリケーションが登録したformal（３-ｌ）に該当するactualが、TEアプリケーション１１に通知される（３-９）。
【０１０７】
この一連のシーケンスにおいて、IP-TE uTupleSpace１２へ書込まれたformalも永続化されるため、取得（ｔａｋｅ）されるか、その有効期限が切れるまでは、繰り返し条件マッチングが可能である。よって、formalも永続化されるため、以後は、（３-５）以降のシーケンスが繰り返される。
【０１０８】
次に、図１６から図１８は、上記図９から図１５を用いて説明したネットワーク分散共有システムの起動処理、リセット処理、アップロード処理、ダウンロード処理の各処理におけるactualなどの送信情報のフィールドの情報を詳細に説明する図である。図１６は、起動処理およびリセット処理におけるTupleのフィールドの情報を詳細に説明する図である。図１７は、アップロード処理におけるTupleのフィールドの情報を詳細に説明する図である。図１８は、ダウンロード処理おけるTupleのフィールドの情報を詳細に説明する図である。なお、図１６から図１８において、図１３から図１５の処理ステップに対応する処理ステップには、同一のステップ番号を付している。
【０１０９】
また、図１９は、広域ユビキタスＮＷ３が有する広域ユビキタスＮＷ装置３１により、送信データが広域ユビキタスＮＷ３を介して転送される場合に、この送信データに、複数のTE２またはIP-TE１を識別する端末識別情報がヘッダ情報として追加、または、削除されることを説明する図である。同図で示すように、広域ユビキタスＮＷ装置３１により、ヘッダ情報として端末識別情報が送信データに追加、または、削除される。これにより、IP-TE１は、ヘッダ情報に基づいて、actualなどのTE２からの送信データを受信した場合、いずれのTE２から送信されてきた送信データであるかを識別することが可能となる。なお、この端末識別情報とは、サービスＩＤのことである。
なお、上記においては、接続ＮＷ３として広域ユビキタスＮＷを適用した場合を説明したが、以上に述べたTupleデータ転送方式は、広域ユビキタスＮＷ以外の無線もしくは有線のデータ通信ＮＷでも適用可能であり、その場合の端末識別情報は、適用するＮＷで用いられる端末の識別子（例えば、アドレスやシリアル番号、その他の端末と対応付けられた管理情報）となる。
【０１１０】
以上説明したように、複数の通信装置（通信端末１または２など）がネットワーク（接続ＮＷ３）を介して接続されるネットワーク分散共有システムであって、複数の通信装置のそれぞれが、少なくとも送信先タプル記憶部識別情報（送信先uTupleSpace識別情報）を含むタプル情報(actual)を記憶し、タプル記憶部識別情報で識別されているタプル記憶部（uTupleSpace１２）と、タプル記憶部に記憶されているタプル情報を送信する、または、受信したタプル情報をタプル記憶部に記憶する中継代理部（RelayAgent１３）と、を有し、中継代理部が、自通信装置が有するタプル記憶部からタプル情報を読み出し、該読み出したタプル情報を、該読み出したタプル情報に含まれる送信先タプル記憶部識別情報に該当するタプル記憶部にネットワークを介して送信する送信側転送部（アップロード処理部１３３２、または、ダウンロード処理部１３３３）と、ネットワークを介して受信したタプル情報を、自通信装置が有するタプル記憶部に記憶する受信側転送部（アップロード処理部１３３２、または、ダウンロード処理部１３３３）と、を有する。
【０１１１】
また、タプル記憶部は、タプル情報を記憶するタプル情報記憶部（actual記憶部１２１）と、タプル情報を検索するためのタプル検索情報（formal）が予め記憶されているタプル検索情報記憶部（formal記憶部１２２）と、タプル情報がタプル情報記憶部に記憶された場合に、該記憶されたタプル情報がタプル検索情報記憶部に記憶されたタプル検索情報に該当するか否かを判定し、該判定した結果が該当する場合には、該当したタプル情報を送信側転送部に出力するタプル情報抽出部（actual抽出部１２４）と、を有する。
【０１１２】
また、タプル情報抽出部は、タプル検索情報がタプル検索情報記憶部に記憶された場合に、該記憶されたタプル検索情報がタプル情報記憶部に記憶されているタプル情報に該当するか否かを判定し、該判定した結果が該当する場合には、該当したタプル情報を送信側転送部に出力する。
【０１１３】
また、タプル検索情報は送信元タプル記憶部識別情報を含んでおり、タプル記憶部は、タプル検索情報を検索するためのタプルメタ検索情報（meta-formal）が予め記憶されているタプルメタ検索情報記憶部（meta-formal記憶部１２３）と、タプル検索情報がタプル検索情報記憶部に記憶された場合に、該記憶されたタプル検索情報がタプルメタ検索情報記憶部に記憶されたタプルメタ検索情報に該当するか否かを判定し、該判定した結果が該当する場合には、該当したタプル検索情報を送信側転送部に出力するタプル検索情報抽出部（formal抽出部１２５）と、を有し、送信側転送部が、該タプル検索情報を、該タプル検索情報に含まれる送信元タプル記憶部識別情報に該当するタプル記憶部にネットワークを介して送信し、受信側転送部が、ネットワークを介して受信したタプル検索情報を、自通信装置が有するタプル検索情報記憶部に記憶する。
【０１１４】
また、複数の通信装置のうち１つの通信装置がサーバ装置（IP-TE１）であり、サーバ装置の他の複数の通信装置が端末装置（TE２）であり、端末装置のタプル検索情報記憶部には、送信先タプル記憶部識別情報に該当するタプル記憶部を、サーバ装置のタプル記憶部としたタプル検索情報が予め記憶されており、端末装置は、端末装置のタプル情報記憶部にタプル情報が記憶されたことに応じて、端末装置のタプル情報抽出部が、記憶されたタプル情報が、タプル検索情報に該当する場合には、記憶されたタプル情報を自端末装置の送信側転送部に出力し、自端末装置の送信側転送部が、該タプル情報を送信先タプル記憶部識別情報に基づいてネットワークを介してサーバ装置に送信し、サーバ装置の受信側転送部が、ネットワークを介して端末装置から受信したタプル情報を、自サーバ装置が有するタプル情報記憶部に記憶する。
【０１１５】
また、端末装置のタプルメタ検索情報記憶部には、送信元タプル記憶部識別情報に該当するタプル記憶部を、サーバ装置のタプル記憶部としたタプルメタ検索情報が予め記憶されており、端末装置は、端末装置のタプル検索情報記憶部にタプル検索情報が記憶されたことに応じて、端末装置のタプル検索情報抽出部が、記憶されたタプル検索情報が、タプルメタ検索情報に該当する場合には、記憶されたタプル検索情報を自端末装置の送信側転送部に出力し、自端末装置の送信側転送部が、該タプル検索情報を送信元タプル記憶部識別情報に基づいてネットワークを介してサーバ装置に送信し、サーバ装置の受信側転送部が、ネットワークを介して端末装置から受信したタプル検索情報を、該タプル検索情報を送信してきた端末装置のタプル記憶部を識別するタプル記憶部識別情報を該受信したタプル検索情報の送信先タプル記憶部識別情報として、自サーバ装置が有するタプル記憶部のタプル検索情報記憶部に記憶する。
【０１１６】
また、サーバ装置は、サーバ装置のタプル検索情報記憶部にタプル検索情報が記憶されたことに応じて、サーバ装置のタプル情報抽出部が、記憶されたタプル検索情報に該当するタプル検索情報を、自サーバ装置が有するタプル情報記憶部から読み出し、該読み出したタプル情報を、自サーバ装置が有する送信側転送部に出力し、サーバ装置の送信側転送部が、タプル情報を送信先タプル記憶部識別情報に基づいて端末装置にネットワークを介して送信し、端末装置の受信側転送部が、ネットワークを介して受信したタプル情報を、自端末装置が有するタプル情報記憶部に記憶する。
【０１１７】
また、サーバ装置（IP-TE１）のタプル情報記憶部が、ハードディスクであること、または、電源バックアップ部を有している。
【０１１８】
上記説明した第１の実施形態においては、Tuple Spaceを用いた通信を実行するネットワーク分散共有システムにおいて、複数の通信装置のそれぞれが、タプル記憶部と中継代理部とを有し、この中継代理部が、自通信装置が有するタプル記憶部からタプル情報を読み出し、該読み出したタプル情報を、該読み出したタプル情報に含まれる送信先タプル記憶部識別情報に該当するタプル記憶部にネットワークを介して送信する送信側転送部と、ネットワークを介して受信したタプル情報を、自通信装置が有するタプル記憶部に記憶する受信側転送部と、を有することにより、複数の通信装置で動作するアプリケーションにとっては、複数の通信装置上のタプル記憶部をネットワークにおいて１つのタプル記憶部として利用することが可能となるとともに、通信装置のタプル記憶部から中継代理部が読み出したタプル情報のみが、中継代理部により他の通信装置に転送されるため、通信装置間の通信量を減じることが出来るという効果を奏する。
さらに、通信装置間の相互の通信において、リモート書込み・ローカル読出し、ローカル書込み・リモート読出しのデータ転送方式を組み合わせることによって、通信装置間で同等の記憶容量や処理能力を前提とする必要がないという効果を奏する。
【０１１９】
＜第２の実施形態＞
次に、第２の実施形態について説明する。上記に説明した第１の実施形態においては、アプリケーションおよび中継代理部（RelayAgent）がTuple（actual）の受信側のタプル記憶部、送信側のタプル記憶部を意識する必要があった。つまり、actualやformalのfrom要素、to要素ヘの送信先／送信元タプル記憶部識別情報の設定や値の交換が必要であった。    
【０１２０】
そのため、次のような処理をする必要があった。
（ア）サーバ装置側が、複数の端末装置に同じactualを送信する場合、それぞれについて送信先を指定してactualを送信する必要があった。そのため、サーバ装置側アプリケーションからみて、ユニキャストは実行できるが、マルチキャストやエニーキャストは実行できなかった。
【０１２１】
（イ）また、同じアプリケーションを具備する端末装置が複数ある場合には、それぞれから登録されるformalを個別に記憶するため、送信先タプル記憶部識別情報だけが異なり、その他の要素が同じであるformalが個別に記憶されるため、メモリ使用量に無駄が生じていた。またactualとのマッチングも、それぞれのformalと行われるため、処理効率が悪かった。
【０１２２】
そこで、第２の実施形態においては、送信先／送信元タプル記憶部識別情報（to要素／from要素）をマッチングの対象とせず、転送先のタプル記憶部識別情報を検索条件となるformalもしくはmeta-formalと対応付けて別途管理するようにする。
【０１２３】
＜第２の実施形態よる生じる効果＞
第２の実施形態では、第１の実施形態で得られる効果に加えて、さらに以下のような効果が得られる。まず、アプリケーションが受信側のタプル記憶部、送信側のタプル記憶部を意識しなくても良いという効果が得られる。
【０１２４】
特にサーバ側は、
（ア）受信側となる端末装置のタプル記憶部識別情報を指定しなくても、他の条件がマッチすれば送信できる。
たとえば、アプリケーションの名前（subject）を指定するだけで送信できるようになる。そのため、同じアプリケーションに対して、マルチキャストやエニーキャストが可能となる。また、タプル情報がfrom要素やto要素を有していなくてもよい。また、to要素を使用して送信先タプル記憶部識別情報を指定すれば、特定の端末に送信もできる。
【０１２５】
（イ）端末間通信が可能となる。
to要素／from要素がマッチング対象でないため、端末からアップロードされたactualが、他の端末から登録されたformalとマッチングすることが可能となり、結果的にサーバアプリケーションを介することなく端末間通信が可能になる。
なお、第１の実施形態においては、端末からサーバヘアップロードされたactualのto要素には、サーバ側タプル記憶部識別情報が設定されており、端末から登録されたformalのto要素には端末側タプル記憶部識別情報が設定されていることから、to要素の不一致により、該actualと該formalのマッチングが不可能であった。そのため、該actualを他の端末へ転送するには、一旦サーバ側アプリケーションで該actualを読出し、from要素、to要素を設定し直して、書込む必要があった。
【０１２６】
（ウ）サーバ側で記憶するformal数が削減できるとともに、マッチング処理を効率化できる。
たとえば、異なる端末の同じアプリケーションが同じformalを登録した場合、第１の実施形態においては、個々のアプリケーションごとに全てのformalを登録して、個別にマッチングを行なう必要があった。
これに対して第２の実施形態においては、異なる端末からの同じformalの登録については、formal記憶部にマッチング対象部分が同一のformalが１つ記憶されていれば、２つ目のformalの登録からは、タプル情報転送先情報記憶部でformalと送信元タプル記憶部識別情報との対応関係を追加するだけでよい。よって、個別にformalを記憶する必要がなく、実際にformal記憶部への登録formal数が削減できることから、メモリ使用量を節約できる。さらに、actualとのマッチング対象となるformal数を削減できることから、actual抽出部でのマッチング回数が削減でき、処理を効率化できる。
【０１２７】
（エ）接続している端末装置の把握が可能になる。
タプル情報転送先情報記憶部に登録されている転送先タプル記憶部識別情報を取得すれば、現在接続されている端末装置を、サーバ側で把握することができる。
また、対応するformalからタプルの他の要素（例えばｓｕｂｊｅｃｔ）を読出せば、該当する端末装置で動作している端末側アプリケーションに関する情報を、サーバ側で把握することが可能になる。
【０１２８】
＜第２の実施形態のポイント＞
次に、第２の実施形態のポイントについて説明する。
（ア）送信先／送信元タプル記憶部識別情報をマッチングの対象とせず、検索条件となるformalもしくはmeta-formalと対応付けて、転送先のタプル記憶部識別情報を、別途管理する転送情報記憶部を設ける。
【０１２９】
（イ）actualおよびformalの転送時は、この転送情報記憶部の情報をもとに転送先を決定する。
（ウ）更に、上記（イ）の方法に加えて、第１の実施形態において説明したように、actualやformalに含まれている送信先タプル記憶識別情報または送信元タプル記憶識別情報をもとに転送する方法も可能とする（ハイブリッド構成にもできる）。
【０１３０】
以降においては、IP-TE１をサーバ装置１とし、TE２を端末装置２とし、接続ＮＷ３をネットワーク３として説明する。また、サーバ装置１または端末装置２を、通信装置６として説明する。
【０１３１】
また、RelayAgent１３を中継代理部１３とし、アップロード処理部１３３２またはダウンロード処理部１３３３を送信側転送部２２とし、アップロード処理部１３３２またはダウンロード処理部１３３３を受信側転送部２３として説明する。また、actualをタプル情報とし、formalをタプル検索情報とし、meta-formalをタプルメタ検索情報として説明する。
【０１３２】
また、uTupleSpace１２をタプル記憶部１２とし、actual記憶部１２１をタプル情報記憶部１２１とし、formal記憶部１２２をタプル検索情報記憶部１２２とし、meta-formal記憶部１２３をタプルメタ検索情報記憶部１２３とし、actual抽出部１２４をタプル情報抽出部１２４とし、formal抽出部１２５をタプル検索情報抽出部１２５として説明する。
【０１３３】
なお、以降において説明する第２の実施形態における構成において、第１の実施形態における構成と同一の構成については、その説明を省略する。また、第２の実施形態に関する構成のみについて説明し、第１の実施形態と同様の構成については、その説明を省略する。
【０１３４】
まず、図２０を用いて、第２の実施形態における中継代理部１３の構成を説明する。中継代理部１３は、転送情報記憶部２４と、送信側転送部２２と、受信側転送部２３とを有する。転送情報記憶部２４は、転送先となるタプル記憶部１２のタプル記憶部識別情報である転送先タプル記憶部識別情報を記憶する。
【０１３５】
送信側転送部２２は、自通信装置が有するタプル記憶部１２からタプル情報を読み出し、該読出したタプル情報を、転送情報記憶部２４から読み出した転送先タプル記憶部識別情報に該当するタプル記憶部１２にネットワーク３を介して送信する。受信側転送部２３は、ネットワーク３を関して受信したタプル情報を、自通信装置が有するタプル記憶部１２に記憶する。
【０１３６】
次に、図２１を用いて、タプル検索情報によるタプル情報を抽出するタプル記憶部１２の第１の構成について説明する。タプル記憶部１２は、タプル情報記憶部１２１と、タプル検索情報記憶部１２２と、タプル情報抽出部１２４とを有する。タプル情報記憶部１２１は、タプル情報を記憶する。タプル検索情報記憶部１２２は、タプル情報を検索するためのタプル検索情報を記憶する。
【０１３７】
タプル情報抽出部１２４は、タプル情報がタプル情報記憶部１２１に記憶された場合に、該記憶されたタプル情報がタプル検索情報記憶部１２２に記憶されているタプル検索情報に該当するか否かを判定し、該判定した結果が該当する場合には、該当したタプル情報を中継代理部１３の送信側転送部２２に出力する。
【０１３８】
次に、図２０と図２１とを用いて説明した送信装置としての通信装置６の動作について説明する。この通信装置６上の送信側アプリケーション１１は、送信情報として、たとえば、タプル情報をタプル記憶部１２のタプル情報記憶部１２１に書き込む。タプル記憶部１２のタプル情報抽出部１２４は、タプル情報がタプル情報記憶部１２１に記憶されたことに応じて、該記憶されたタプル情報がタプル検索情報記憶部１２２に記憶されているタプル検索情報に該当するか否かを判定する（図２１中の符号（１）と（２）とを参照）。
【０１３９】
次に、タプル記憶部１２のタプル情報抽出部１２４は、該判定した結果が該当する場合には、該当したタプル情報を中継代理部１３の送信側転送部２２に出力する（図２１中の符号（３）を参照）。ここでは、タプル記憶部１２のタプル情報抽出部１２４は、該当したタプル情報を中継代理部１３の送信側転送部２２に出力したものとして説明する。
【０１４０】
次に、タプル記憶部１２のタプル情報抽出部１２４からタプル情報を入力された中継代理部１３の送信側転送部２２は、つまり、自通信装置が有するタプル記憶部１２からタプル情報を読み出した中継代理部１３の送信側転送部２２は（図２０の符号（１）を参照）、該読出したタプル情報を、転送情報記憶部２４から読み出した転送先タプル記憶部識別情報に該当するタプル記憶部１２にネットワーク３を介して送信する（図２０の符号（２）と（３）とを参照）。
【０１４１】
その後、ネットワーク３を介してタプル情報を受信した受信装置としての通信装置６においては、受信側転送部２３が、ネットワーク３を関して受信したタプル情報を、自通信装置が有するタプル記憶部１２に記憶する（図２０の符号（４）と（５）とを参照）。
【０１４２】
以上説明したように、送信側転送部２２が、自通信装置が有するタプル記憶部１２からタプル情報を読み出し、該読出したタプル情報を、転送情報記憶部２４から読み出した転送先タプル記憶部識別情報に該当するタプル記憶部１２にネットワーク３を介して送信することにより、送信装置としての通信装置６上の送信側アプリケーション１１は、宛先を何ら指定することなく、送信情報（たとえば、タプル情報）をタプル記憶部１２に書き込むことだけで、送信情報を受信装置に送信することが可能となる。
【０１４３】
次に、図２２を用いて、タプル検索情報によるタプル情報を抽出するタプル記憶部１２の第２の構成について説明する。なお、以降において、同一の構成については、同一の符号を付し、その説明を省略する。
タプル情報抽出部１２４は、タプル検索情報がタプル検索情報記憶部１２２に記憶された場合に、該記憶されたタプル検索情報がタプル情報記憶部１２１に記憶されているタプル情報に該当するか否かを判定し、該判定した結果が該当する場合には、該当したタプル情報を中継代理部１３の送信側転送部２２に出力する。
【０１４４】
これにより、上記で図２０を用いて説明したことと同様に、たとえば、通信装置６上の送信側アプリケーション１１は、宛先を何ら指定することなく、タプル情報をタプル情報記憶部１２１に書き込んで記憶させておけば、後述するように受信装置から中継代理部１３を介してタプル検索情報が自通信装置の有するタプル検索情報記憶部１２２に記憶された場合に、このタプル検索情報に該当するタプル情報を受信装置に送信することが可能となる。
【０１４５】
上記に図２１と図２２とを用いて説明したように、タプル情報抽出部１２４は、タプル情報がタプル情報記憶部１２１に記憶された場合に、または、タプル検索情報がタプル検索情報記憶部１２２に記憶された場合に、該記憶されたタプル情報またはタプル検索情報に基づいて、タプル情報を中継代理部１３の送信側転送部２２に出力する。
【０１４６】
そのため、図２１と図２２とのうち、いずれかに示されるようにタプル情報抽出部１２４を構成した場合においても、上記図２０と図２１とを用いて説明したように、送信側転送部２２が、自通信装置が有するタプル記憶部１２からタプル情報を読み出し、該読出したタプル情報を、転送情報記憶部２４から読み出した転送先タプル記憶部識別情報に該当するタプル記憶部１２にネットワーク３を介して送信することにより、送信装置としての通信装置６上の送信側アプリケーション１１は、宛先を何ら指定することなく、送信情報（たとえば、タプル情報）をタプル記憶部１２に書き込むことだけで、送信情報を受信装置に送信することが可能となる。
【０１４７】
上記に図２１と図２２とを用いて説明したタプル記憶部１２と中継代理部１３との構成においては、タプル記憶部１２のタプル情報抽出部１２４が、中継代理部１３の送信側転送部２２に出力する情報は、タプル情報だけであった。
これに対して、次に図２３と図２４とを用いて説明するタプル記憶部１２と中継代理部１３との構成においては、タプル記憶部１２のタプル情報抽出部１２４が、中継代理部１３の送信側転送部２２に出力する情報は、タプル情報に加えて、それに合致したタプル検索情報に関連付けられたタプル検索情報識別情報も出力する。
【０１４８】
次に、図２３と図２４とを用いて、後述するタプル検索情報識別情報を用いた転送を実行する中継代理部１３とタプル記憶部１２との構成について説明する。なお、この構成では、後述するように転送先をタプル検索情報との対応関係で決定する。
【０１４９】
まず、図２４を用いて、図２３の転送情報記憶部２４の構成について説明する。転送情報記憶部２４は、タプル情報転送先情報記憶部２４１と、タプル情報転送先情報抽出部２４２と、を有する。タプル情報転送先情報記憶部２４１には、タプル検索情報を識別するタプル検索情報識別情報と転送先タプル記憶部識別情報とが関連付けて予め記憶されている。タプル情報転送先情報抽出部２４２は、タプル検索情報識別情報が送信側転送部２２から入力された場合に、該入力されたタプル検索情報識別情報に該当する転送先タプル記憶部識別情報をタプル情報転送先情報記憶部２４１から抽出し、該抽出した転送先タプル記憶部識別情報を送信側転送部２２に出力する。
【０１５０】
次に、図２３を用いて、中継代理部１３とタプル記憶部１２との構成について説明する。タプル検索情報記憶部１２２は、タプル検索情報と関連付けて該タプル検索情報を識別するタプル検索情報識別情報を記憶する。
【０１５１】
タプル情報抽出部１２４は、タプル情報がタプル情報記憶部１２１に記憶された場合に、該記憶されたタプル情報がタプル検索情報記憶部１２２に記憶されているタプル検索情報に該当するか否かを判定し、該判定した結果が該当する場合には、該当したタプル検索情報と関連付けて記憶されているタプル検索情報識別情報をタプル検索情報記憶部１２２から読み出し、記憶されたタプル情報と読み出したタプル検索情報識別情報とを関連付けて送信側転送部２２に出力する。
【０１５２】
送信側転送部２２は、タプル情報とタプル検索情報識別情報とを関連付けてタプル情報抽出部１２１から入力されたことに応じて、該入力されたタプル検索情報識別情報に該当する転送先タプル記憶部識別情報を転送情報記憶部２４から読み出し、該読み出した転送先タプル記憶部識別情報に該当するタプル記憶部１２にネットワーク３を介して入力されたタプル情報を送信する。
【０１５３】
なお、上記で説明したタプル情報転送先情報記憶部２４１に関連付けて予め記憶されているタプル検索情報識別情報と転送先タプル記憶部識別情報とは、１対１の関係であってもよいし、１対Ｎ（ここで、Ｎは１より大きい任意の自然数）の関係であってもよい。
【０１５４】
なお、図２４を用いて説明した転送情報記憶部２４のタプル情報転送先情報記憶部２４１において、タプル記憶部１２のタプル検索情報記憶部１２２に記憶されているタプル検索情報が有効期限に基づいて削除された場合は、転送情報記憶部２４のタプル情報転送先情報記憶部２４１においても、削除されたタプル検索情報に該当するタプル検索情報識別情報と転送先タプル記憶部識別情報とを削除することで、タプル検索情報記憶部１２２で記憶される情報とタプル情報転送先記憶部２４１で記憶される情報との同期をとることができる。
具体的には、タプル検索情報記憶部１２２で記憶されているタプル検索情報が削除されたことに応じて、タプル情報抽出部１２４が削除されたタプル検索情報に該当するタプル検索情報識別情報をタプル検索情報記憶部１２２から読出し、このタプル検索情報識別情報の削除の旨を送信側転送部２２に出力し、その入力を受けた送信側転送部２２がタプル情報転送部先情報記憶部２４１に記憶されている該当タプル検索情報識別情報および関連づけられた転送先タプル記憶部識別情報を削除することで実現できる。
【０１５５】
次に、図２５を用いて、タプル検索情報識別情報とタプル情報とを関連づけて送信側転送部２２に出力する場合のタプル情報抽出部１２４について説明する。タプル情報抽出部１２４は、タプル検索情報がタプル検索情報記憶部１２２に記憶された場合に、該記憶されたタプル検索情報がタプル情報記憶部１２１に記憶されているタプル情報に該当するか否かを判定し、該判定した結果が該当する場合に、記憶されたタプル検索情報に関連付けられているタプル検索情報識別情報と該当したタプル情報とを関連づけて送信側転送部２２に出力する。
図２５を用いて説明したタプル情報抽出部１２４によっても、図２４を用いて説明したタプル情報抽出部１２４と同様に、タプル検索情報識別情報とタプル情報とを関連づけて送信側転送部２２に出力することが可能である。
【０１５６】
次に、図２６を用いて、上記で説明した第２の実施形態における、たとえば、検索条件となるタプル検索情報と対応付けて転送先のタプル記憶部識別情報を別途管理する転送情報記憶部を設け、この転送情報記憶部に記憶されているタプル記憶部識別情報に基づいて転送先を決定する転送方法と、第１の実施形態において説明したように、たとえば、タプル情報に含まれている送信先タプル記憶識別情報または送信元タプル記憶識別情報をもとに転送する方法との、両方の方法を併用できる転送方法の構成、つまり、ハイブリッド構成について説明する。
【０１５７】
まず、タプル情報が、送信先タプル記憶部識別情報を設定可能な情報の領域を有する（図２６（ａ）参照）。ここでは、たとえば、ヘッダ情報またはタプル要素として有しているものとする。次に、送信側転送部２２は、自通信装置６が有するタプル記憶部１２からタプル情報を読み出し、読み出したタプル情報に送信先タプル記憶部識別情報が設定されているか否かを判定し、送信先タプル記憶部識別情報が設定されていなければ、読み出したタプル情報を読み出した転送先タプル記憶部識別情報に該当するタプル記憶部１２にネットワーク３を介して送信する。
【０１５８】
一方、送信先タプル記憶部識別情報が設定されていれば、送信側転送部２２は、該設定されている送信先タプル記憶部識別情報が、転送情報記憶部２４に記憶されている転送先タプル記憶部識別情報のいずれかと一致するか否かを判定し、いずれかと一致する場合には、読み出したタプル情報を設定されている送信先タプル記憶部識別情報に該当するタプル記憶部１２にネットワーク３を介して送信する（図２６（ｂ）参照）。
【０１５９】
上記に説明した送信側転送部２２の一例としての動作を、図２６（ｂ）を用いて詳細に説明する。まず、自通信装置６が有するタプル記憶部１２のタプル情報記憶部１２１からタプル情報を読み出し（ステップＳ２６１）、転送情報記憶部２４から転送先タプル記憶部識別情報を読み出す（ステップＳ２６２）。次に、読み出したタプル情報に送信先タプル記憶部識別情報が設定されているか否かを判定する（ステップＳ２６３）。
【０１６０】
ステップＳ２６３で判定した結果が、送信先タプル記憶部識別情報が設定されていなければ、読み出したタプル情報を読み出した転送先タプル記憶部識別情報に該当するタプル記憶部１２にネットワーク３を介して送信し（ステップＳ２６４）、処理を終了する。一方、ステップＳ２６３で判定した結果が、送信先タプル記憶部識別情報が設定されていれば、該設定されている送信先タプル記憶部識別情報が、読み出した転送先タプル記憶部識別情報のいずれかと一致するか否かを判定する（ステップＳ２６５）。
【０１６１】
ステップＳ２６５で判定した結果が、いずれかと一致する場合には、読み出したタプル情報を設定されている送信先タプル記憶部識別情報に該当するタプル記憶部１２にネットワーク３を介して送信し（ステップＳ２６６）、処理を終了する。一方、ステップＳ２６５で判定した結果が、いずれとも一致しない場合には、たとえば、エラー処理をして（ステップＳ２６７）、処理を終了する。なお、このエラー処理は、たとえば、ワーニングを出力する処理であってもよいし、何もしない処理であってもよい。
【０１６２】
次に、図２７を用いて、タプルメタ検索情報によるタプル検索情報を抽出するタプル記憶部１２の、第１の構成と第２の構成とについて説明する。つまり、送信側の構成について説明する。第１の構成および第２の構成におけるタプル記憶部１２は、タプル検索情報記憶部１２２と、タプルメタ検索情報記憶部１２３と、タプル検索情報抽出部１２５と、を有する。タプルメタ検索情報記憶部１２３は、タプル検索情報を検索するためのタプルメタ検索情報を記憶する。
【０１６３】
第１の構成としてのタプル記憶部１２において、タプル検索情報抽出部１２５は、タプル検索情報がタプル検索情報記憶部１２２に記憶された場合に、該記憶されたタプル検索情報がタプルメタ検索情報記憶部１２３に記憶されているタプルメタ検索情報に該当するか否かを判定し、該判定した結果が該当する場合には、該当したタプル検索情報を送信側転送部２２に出力する（図２７中の符号（１）〜（３）を参照）。
【０１６４】
第２の構成としてのタプル記憶部１２において、タプル検索情報抽出部１２５は、タプルメタ検索情報がタプルメタ検索情報記憶部１２３に記憶された場合に、該記憶されたタプルメタ検索情報がタプル検索情報記憶部１２２に記憶されているタプル検索情報に該当するか否かを判定し、該判定した結果が該当する場合には、該当したタプル検索情報を送信側転送部２２に出力する（図２７中の符号（１）〜（３）を参照）。
【０１６５】
上記の第１の構成および第２の構成のいずれの場合のタプル記憶部１２においても、送信側転送部２２は、タプル記憶部１２から読み出したタプル検索情報を、転送情報記憶部２４から読み出した転送先タプル記憶部識別情報に該当するタプル記憶部１２にネットワーク３を介して送信する（図２７中の符号（３）〜（５）を参照）。
【０１６６】
次に、図２８を用いて、上記図２７を用いて説明した送信側の構成に対応する受信側の構成について説明する。この場合の、受信側転送部２３は、ネットワーク３を介して受信したタプル検索情報を（図２８中の符号（１）を参照）、自通信装置６が有するタプル検索情報記憶部１２２に記憶するとともに（図２８中の符号（３）を参照）、受信時にネットワーク３あるいはタプル検索情報から得られる送信元タプル記憶部識別情報を転送先タプル記憶部識別情報として転送情報記憶部２４に記憶する（図２８中の符号（２）を参照）。
【０１６７】
また、上記で、受信側転送部２３は、受信時にネットワーク３あるいはタプル検索情報から得られる送信元タプル記憶部識別情報を転送先タプル記憶部識別情報として転送情報記憶部２４に記憶する（図２８中の符号（２）を参照）が、この送信元タプル記憶部識別情報の取得は、たとえば、次の２つの方法がある。第１の方法として、転送データのヘッダから読出す方法であって、例えば、ＩＰアドレスといったネットワーク通信アドレスを使う方法がある。また、第２の方法として、タプル検索情報から読出す方法であって、例えば、to要素の情報を使う方法がある。
【０１６８】
次に図２９を用いて、タプル検索情報識別情報と転送先タプル記憶部識別情報とを関連付けて記憶する構成について説明する。図２９に示すように、受信側転送部２３は、ネットワーク３を介してタプル検索情報を受信した場合に（図２９の符号（１）参照）、受信したタプル検索情報を自通信装置６が有するタプル記憶部１２に記憶する（図２９の符号（２）参照）。このとき、受信側転送部２３は、自タプル記憶部１２のタプル検索情報記憶部１２２に記憶されているタプル検索情報とタプル検索情報識別情報に基づいて生成されたタプル検索情報識別情報を得る（図２９の符号（４）参照）。
【０１６９】
また、受信側転送部２３は、上記の動作を実行するとともに、タプル検索情報を受信する場合にネットワーク３あるいはタプル検索情報から得られる送信元タプル記憶部識別情報を転送先タプル記憶部識別情報として、タプル検索情報識別情報と関連付けて、自通信装置６が有する転送情報記憶部２４のタプル情報転送先情報記憶部２４１に記憶する（図２９の符号（５）参照）。
【０１７０】
次に、図３０を用いて、図２９で説明したタプル検索情報識別情報を生成する構成について説明する。たとえば、タプル記憶部１２は、自タプル記憶部１２のタプル検索情報記憶部１２２に記憶されているタプル検索情報とタプル検索情報識別情報に基づいて、タプル検索情報識別情報を生成するタプル検索情報識別情報生成部１２６を有する。
【０１７１】
次に図３１を用いて、このタプル検索情報識別情報生成部１２６の処理の流れを説明する。タプル検索情報識別情報生成部１２６は、自装置の受信側転送部２３からタプル検索情報を入力されると、自タプル検索情報記憶部１２２に入力されたタプル検索情報とマッチング対象となる要素とが一致しているタプル検索情報が、すでに記憶されているかを確認する（ステップＳ３１１、ステップＳ３１２）。
ステップＳ３１２で、該当するタプル検索情報があれば、該当タプル検索情報にすでに関連づけて記憶されているタプル検索情報識別情報を、入力されたタプル検索情報のタプル検索情報識別情報として、受信側転送部２３に出力する（ステップＳ３１３）。
一方、ステップＳ３１２で、該当するタプル検索情報がなければ、すでに記録されているタプル検索情報識別情報とは異なるユニークなタプル検索情報識別情報を新たに生成し、該入力されたタプル検索情報のタプル検索情報識別情報として、受信側転送部２３に出力する（ステップＳ３１４）とともに、該入力されたタプル検索情報と該生成したタプル検索情報識別情報を関連づけて，タプル検索情報記憶部１２２に記憶する（ステップＳ３１５）。
【０１７２】
ところで、同一のタプル検索情報を登録する端末側アプリケーションが搭載されている端末が多数の場合、タプル情報転送先情報記憶部２４１に関連付けて記憶されるタプル検索情報識別情報と転送先タプル記憶部識別情報とは１：Ｎになる。この場合、サーバ側のタプル記憶部に登録するタプル検索情報を共通化できるため、次のようなメリットがある。
【０１７３】
・転送先タプル記憶部識別情報を最初に登録すれば、２回目以降の登録（他の端末からの登録に相当）については、転送情報記憶部２４への転送先タプル記憶部識別情報の登録だけで処理が済む。
・結果的にタプル記憶部１２に登録されるタプル検索情報が最小限で済むため、タプル記憶部１２で必要となる記憶容量を低減できる。
・また、タプル情報とのマッチング処理を効率化できる
【０１７４】
次に、図３２と図３３とを用いて、タプルメタ検索情報識別情報を用いたタプル検索情報の転送を実行する中継代理部１３とタプル記憶部１２との構成について説明する。この構成は、図２３と図２４とを用いて説明したタプル検索情報識別情報を用いたタプル情報の転送を実行する中継代理部１３とタプル記憶部１２との構成と同様であり、図２３と図２４とにおけるタプル情報に対しての構成を、図３２と図３３とにおいては、タプル検索情報に対する構成としている。なお、図２３および図２４の構成と、図３２および図３３の構成とは、互いに共存する構成である（たとえば、図８のタプル記憶部１２内の構成を参照）。
【０１７５】
まず、図３３に示されるように、転送情報記憶部２４は、タプル検索情報転送先情報記憶部２４４と、タプル検索情報転送先情報抽出部２４５とを有する。タプル検索情報転送先情報記憶部２４４には、タプルメタ検索情報を識別するタプルメタ検索情報識別情報と転送先タプル記憶部識別情報とが関連付けて予め記憶されている。
【０１７６】
また、タプル検索情報転送先情報抽出部２４５は、タプルメタ検索情報識別情報が送信側転送部２２から転送情報記憶部２４に入力された場合に、該入力されたタプルメタ検索情報と関連付けて記憶されている転送先タプル記憶部識別情報をタプル検索情報転送先情報記憶部２４４から抽出して送信側転送部２２に出力する。
【０１７７】
次に、図３２を用いて、タプルメタ検索情報識別情報を用いたタプル検索情報の転送を実行する場合の、中継代理部１３とタプル記憶部１２との構成について説明する。タプルメタ検索情報記憶部１２３は、タプルメタ検索情報と関連付けて該タプルメタ検索情報を識別するタプルメタ検索情報識別情報を記憶する。また、タプル検索情報抽出部１２５は、タプル検索情報がタプル検索情報記憶部１２１に記憶された場合に、該記憶されたタプル検索情報がタプルメタ検索情報記憶部１２３に記憶されているタプルメタ検索情報に該当するか否かを判定し、該判定した結果が該当する場合には、該当したタプルメタ検索情報と関連付けて記憶されているタプルメタ検索情報識別情報をタプルメタ検索情報記憶部１２３から読み出し、該当したタプル検索情報と読み出したタプルメタ検索情報識別情報とを関連付けて送信側転送部２２に出力する。
【０１７８】
また、送信側転送部２２は、タプル検索情報とタプルメタ検索情報識別情報とを関連付けてタプル検索情報抽出部１２５から入力されたことに応じて、該入力されたタプルメタ検索情報識別情報に該当する転送先タプル記憶部識別情報を転送情報記憶部２４から読み出し、該読み出した転送先タプル記憶部識別情報に該当するタプル記憶部１２にネットワーク３を介して入力されたタプル検索情報を送信する。
【０１７９】
以上の図３２と図３３とを用いて説明した構成により、図２３と図２４とを用いて説明したタプル検索情報識別情報を用いたタプル情報の転送と同様に、タプルメタ検索情報識別情報を用いたタプル検索情報の転送が可能である。
【０１８０】
なお、図３３を用いて説明した転送情報記憶部２４のタプル検索情報転送先情報記憶部２４４において、タプル記憶部１２のタプルメタ検索情報記憶部１２３に記憶されているタプルメタ検索情報が有効期限に基づいて削除された場合は、転送情報記憶部２４のタプル検索情報転送先情報記憶部２４４においても、削除されたタプルメタ検索情報に該当するタプルメタ検索情報識別情報と転送先タプル記憶部識別情報とを削除することで、タプルメタ検索情報記憶部１２３で記憶される情報とタプル検索情報転送先記憶部２４４で記憶される情報との同期をとることができる。
【０１８１】
なお、図３２と図３３とを用いて説明した構成を、後述する広域ユビキタスNWへ適用する場合においては、この図３２と図３３とを用いて説明した構成は端末装置が有し、端末装置側での処理となる。しかしながら、この場合、端末装置の送信先は、対応するサーバ装置に固定されるため、タプルメタ検索情報識別情報を払い出す構成は必ずしも必要なく、固定的な転送先タプル記憶部識別情報を１つ記録しておけばよい。たとえば、どのサーバへ転送するかは広域ユビキタスNWが有する情報で決まるため、転送先タプル記憶部識別情報がない場合にも、送信データの送受信が可能である。なお、一般的なネットワークへ適用する場合には、図３２と図３３とを用いて説明した構成が必要な場合もある。
【０１８２】
次に、図３４を用いて、第２の実施形態によるタプル検索情報の転送方法と、第１の実施形態によるタプル検索情報の転送方法との、両方の方法を併用できる転送方法の構成、つまり、ハイブリッド構成について説明する。なお、この図３４のタプル検索情報の転送に対するハイブリッド構成は、図２６を用いて説明したタプル情報の転送に対するハイブリッド構成と対応する。
【０１８３】
まず、タプル検索情報が、送信元タプル記憶部識別情報を設定可能な情報の領域を有する（図３４（ａ）参照）。ここでは、たとえば、ヘッダ情報またはタプル要素として有しているものとする。次に、送信側転送部２２は、自通信装置６が有するタプル記憶部１２からタプル検索情報を読み出し、読み出したタプル検索情報に送信元タプル記憶部識別情報が設定されているか否かを判定し、送信元タプル記憶部識別情報が設定されていなければ、読み出したタプル検索情報を読み出した転送先タプル記憶部識別情報に該当するタプル記憶部１２にネットワーク３を介して送信する。
【０１８４】
一方、送信元タプル記憶部識別情報が設定されていれば、送信側転送部２２は、該設定されている送信元タプル記憶部識別情報が、転送情報記憶部２４に記憶されている転送先タプル記憶部識別情報のいずれかと一致するか否かを判定し、いずれかと一致する場合には、読み出したタプル検索情報を設定されている送信元タプル記憶部識別情報に該当するタプル記憶部１２にネットワーク３を介して送信する（図３４（ｂ）参照）。
【０１８５】
上記に説明した送信側転送部２２の一例としての動作を、図３４（ｂ）を用いて詳細に説明する。まず、自通信装置６が有するタプル記憶部１２のタプル検索情報記憶部１２１からタプル検索情報を読み出し（ステップＳ３５１）、転送情報記憶部２４から転送先タプル記憶部識別情報を読み出す（ステップＳ３５２）。次に、読み出したタプル検索情報に送信元タプル記憶部識別情報が設定されているか否かを判定する（ステップＳ３５３）。
【０１８６】
ステップＳ３５３で判定した結果が、送信元タプル記憶部識別情報が設定されていなければ、読み出したタプル検索情報を読み出した転送先タプル記憶部識別情報に該当するタプル記憶部１２にネットワーク３を介して送信し（ステップＳ３５４）、処理を終了する。一方、ステップＳ３５３で判定した結果が、送信元タプル記憶部識別情報が設定されていれば、該設定されている送信元タプル記憶部識別情報が、読み出した転送先タプル記憶部識別情報のいずれかと一致するか否かを判定する（ステップＳ３５５）。
【０１８７】
ステップＳ３５５で判定した結果が、いずれかと一致する場合には、読み出したタプル検索情報を設定されている送信元タプル記憶部識別情報に該当するタプル記憶部１２にネットワーク３を介して送信し（ステップＳ３５６）、処理を終了する。一方、ステップＳ３５５で判定した結果が、いずれとも一致しない場合には、たとえば、エラー処理をして（ステップＳ３５７）、処理を終了する。なお、このエラー処理は、たとえば、ワーニングを出力する処理であってもよいし、何もしない処理であってもよい。
【０１８８】
以降においては、複数の通信装置６のうち１つの通信装置６がサーバ装置１であり、サーバ装置１の他の複数の通信装置６が端末装置２であるものとして、第２の実施形態におけるアップロード処理とダウンロード処理とについて説明する。なお、第２の実施形態におけるアップロード処理とダウンロード処理とは、第１の実施形態の説明において、図１４を用いて説明したアップロード処理、および、図１５を用いて説明したダウンロード処理に対応している。
【０１８９】
＜アップロード処理＞
まず、端末装置２からサーバ装置１へ、転送先を固定して、アップロードする場合の構成について説明する。なお、ここでは、端末装置２の転送情報記憶部２４には、該当するタプル記憶部１２をサーバ装置１のタプル記憶部１２とした転送先タプル記憶部識別情報が予め記憶されている。また、端末装置２のタプル検索情報記憶部１２２には、タプル検索情報が予め記憶されている（図１４の符号（１−５）参照）。
【０１９０】
まず、たとえば、端末装置２のアプリケーション１１が自端末装置２のタプル情報記憶部１２１にタプル情報を書き込んで記憶する。つまり、端末装置２において、自端末装置２のタプル情報記憶部１２１にタプル情報が記憶される（図１４の符号（２−１）参照）。
【０１９１】
次に、端末装置２において、自端末装置２のタプル情報記憶部１２１にタプル情報が記憶されたことに応じて、まず、自端末装置２のタプル情報抽出部１２４が、記憶されたタプル情報がタプル検索情報に該当する場合には、記憶されたタプル情報を出力する（図１４の符号（２−２）参照）。次に、自端末装置２の送信側転送部２２が、該タプル情報を、転送先タプル記憶部識別情報に基づいてネットワーク３を介してサーバ装置１に送信する（図１４の符号（２−３）参照）。
【０１９２】
次に、サーバ装置１の受信側転送部２３は、ネットワーク３を介して端末装置２から受信したタプル情報を、自サーバ装置１が有するタプル情報記憶部１２１に記憶する（図１４の符号（２−４）参照）。
【０１９３】
以上により、第２の実施形態においても、第１の実施形態と同様に、端末装置２からサーバ装置１へ、転送先をサーバ装置１に固定して、タプル情報をアップロードすることができる。
【０１９４】
＜ダウンロード処理＞
次に、第２の実施形態での、ダウンロード処理におけるネットワーク分散共有システムの動作について説明する。ここで、端末装置２の転送情報記憶部２４には、サーバ装置１のタプル記憶部１２を識別するタプル記憶部識別情報が転送先タプル記憶部識別情報として予め記憶されている。また、端末装置２のタプルメタ検索情報記憶部１２３には、タプルメタ検索情報が予め記憶されている（図１５の符号（１−４）参照）。
【０１９５】
まず、端末装置２は、自端末装置２のタプル検索情報記憶部１２２にタプル検索情報が記憶されたことに応じて（図１５の符号（３−１）参照）、自端末装置２のタプル検索情報抽出部１２５が、記憶されたタプル検索情報がタプルメタ検索情報に該当する場合には、記憶されたタプル検索情報を自端末装置２の送信側転送部２２に出力する（図１５の符号（３−２）参照）。次に、自端末装置２の送信側転送部２２が、入力されたタプル検索情報を転送情報記憶部２４に記憶されている転送先タプル記憶部識別情報に基づいてネットワーク３を介してサーバ装置１に送信する（図１５の符号（３−３）参照）。
【０１９６】
次に、サーバ装置１の受信側転送部２３が、ネットワーク３を介してタプル検索情報を受信した場合に、受信したタプル検索情報を自サーバ装置１が有するタプル記憶部１２に記憶する（図１５の符号（３−４）参照）。
このとき、自装置のタプル記憶部１２は、自装置の受信側転送部２３から入力されたタプル検索情報を、自タプル記憶部１２のタプル検索情報記憶部１２２に記憶されているタプル検索情報とタプル検索情報識別情報に基づいて生成したタプル検索情報識別情報と関連付けて自装置のタプル検索情報記憶部１２２に記憶するとともに、生成したタプル検索情報識別情報を自装置の受信側転送部２３へ出力する。
次に、サーバ装置１の受信側転送部２３は、タプル検索情報を受信する場合にネットワーク３あるいはタプル検索情報から得られる送信元タプル記憶部識別情報を転送先タプル記憶部識別情報として、自タプル記憶部１２から入力されたタプル検索情報識別情報と関連付けて、自サーバ装置１が有する転送情報記憶部２４のタプル情報転送先情報記憶部２４１に記憶する。
【０１９７】
次に、サーバ装置１は、自サーバ装置１のタプル検索情報記憶部１２２にタプル検索情報が記憶されたことに応じて（図１５の符号（３−４）参照）、自サーバ装置１のタプル情報抽出部１２４が、記憶されたタプル検索情報に該当するタプル情報と該タプル検索情報識別情報とを関連付けて自サーバ装置１の送信側転送部２２に出力する（図１５の符号（３−６）参照）。
【０１９８】
あるいは、サーバ装置１は、自サーバ装置１のタプル情報記憶部１２１にタプル情報が記憶されたことに応じて（図１５の符号（３−５）参照）、自サーバ装置１のタプル情報抽出部１２４が、記憶されたタプル情報がタプル検索情報記憶部１２２に記憶されているタプル検索情報に該当するか否かを判定し、該判定した結果が該当する場合には、該当したタプル検索情報と関連付けて記憶されているタプル検索情報識別情報をタプル検索情報記憶部１２２から読み出し、記憶されたタプル情報と読み出したタプル検索情報識別情報とを関連付けて自サーバ装置１の送信側転送部２２に出力する（図１５の符号（３−６）参照）。
【０１９９】
次に、自サーバ装置１の送信側転送部２２が、入力されたタプル検索情報識別情報に基づいて、転送情報記憶部２４から転送先タプル記憶部識別情報を読み出し、タプル情報を読み出した転送先タプル記憶部識別情報に基づいて端末装置２にネットワーク３を介して送信する（図１５の符号（３−７）参照）。
次に、端末装置２の受信側転送部２３が、ネットワーク３を介して受信したタプル情報を、自端末装置２が有するタプル情報記憶部１２１に記憶する（図１５の符号（３−８）参照）。
【０２００】
なお、上記説明したアップロード処理において端末装置２のタプル検索情報記憶部１２２にタプル検索情報を予め記憶する処理（図１４の符号（１−５）参照）、およびダウンロード処理において端末装置２のタプルメタ検索情報記憶部１２３にタプルメタ検索情報を予め記憶する処理（図１５の符号（１−４）参照）については、第１の実施形態において、図１３を用いて説明した処理と同じ手順で実現できる（図１３の符号（１−４）、（１−５）参照）。ただし、第２の実施形態においては、たとえば、端末装置２の中継代理部の起動および再起動時に、自端末装置２の転送情報記憶部２４に、サーバ装置１のタプル記憶部１２を識別するタプル記憶部識別情報を転送先タプル記憶部識別情報として予め記憶する処理が加わる。
【０２０１】
また、サーバ装置１が端末装置２からリセット通知を受信した場合は（図１３の符号（１−２）参照）、自サーバ装置１の転送先情報記憶部２４に記憶されている転送先タプル記憶部識別情報から、該端末装置２のタプル記憶部１２に該当する転送先タプル記憶部識別情報を削除する。なお、サーバ装置１は、転送先タプル記憶部識別情報を削除することに応じて、転送先情報記憶部２４に記録されているタプル検索情報識別情報のうち、関連づけられた転送先タプル記憶部識別情報がひとつもないタプル検索情報識別情報があれば、該タプル検索情報識別情報を転送先情報記憶部２４から削除するとともに、該タプル検索情報識別情報と該関連づけられたタプル検索情報をタプル記憶部１２から削除する（図１３の符号（１−３）参照）。
【０２０２】
上記説明した第２の実施形態においては、Tuple Spaceを用いた通信を実行するネットワーク分散共有システムにおいて、複数の通信装置のそれぞれが、タプル記憶部と中継代理部とを有し、この中継代理部が、転送先となるタプル記憶部のタプル記憶部識別情報である転送先タプル記憶部識別情報を記憶する転送情報記憶部と、自通信装置が有するタプル記憶部からタプル情報を読み出し、該読み出したタプル情報を、転送情報記憶部から読み出した転送先タプル記憶部識別情報に該当するタプル記憶部にネットワークを介して送信する送信側転送部と、ネットワークを介して受信したタプル情報を、自通信装置が有するタプル記憶部に記憶する受信側転送部と、を有することにより、複数の通信装置で動作するアプリケーションにとっては、複数の通信装置上のタプル記憶部をネットワークにおいて１つのタプル記憶部として利用することが可能となるとともに、通信装置のタプル記憶部から中継代理部が読み出したタプル情報のみが、中継代理部により他の通信装置に転送されるため、上記説明した第１の実施形態と同様に、通信装置間の通信量を減じることが出来るという効果を奏する。
【０２０３】
なお、更に、第２の実施形態においては、中継代理部の送信側転送部が、タプル記憶部から読み出したタプル情報を、転送情報記憶部から読み出した転送先タプル記憶部識別情報に該当するタプル記憶部にネットワークを介して送信するため、タプル情報に対して送信先または送信元を示す情報を追加する必要がないという効果を奏する。また、転送先タプル記憶部識別情報として、たとえば、複数のタプル記憶部識別情報を設定することにより、複数のタプル記憶部識別情報に該当するタプル記憶部へのマルチキャストやエニーキャストが簡易に構成可能となる効果を奏する。
【０２０４】
また、タプル検索情報とタプル情報とのマッチングでは、転送先タプル記憶部識別情報を表すfrom要素およびto要素はマッチング対象外になるため、接続される無数の端末装置から、マッチング対象要素が同一であるタプル検索情報を受信しても、それらに対応するタプル検索情報を重複して記憶する必要がないため、タプル検索情報を記憶するタプル記憶部の容量が小さくなるという効果、および、タプル情報とのマッチングを行なう処理効率が向上するという効果を奏する。
【０２０５】
また、図１５を用いて説明した第２の実施形態でのダウンロード処理においては、図１５を用いて説明した第１の実施形態でのダウンロード処理と異なり、図１５の符号（３−４）〜（３−６）の処理において、from要素およびto要素はマッチング対象外となることから、図１５の符号（３−１）〜（３−３）の処理を実行する第１の端末装置２から書込まれたタプル検索情報には、サーバ装置１のアプリケーション１１が書込んだタプル情報だけでなく、図１４の符号（２−１）〜（２−３）の処理を実行する第２の端末装置２から書込まれたタプル情報がマッチすることもある。これにより、サーバ装置１を介して、第２の端末装置２と第１の端末装置２との間の通信も可能となる効果を奏する。
【０２０６】
また、サーバ装置１は、自サーバ装置１のタプル検索情報記憶部１２２にタプル検索情報が記憶されたことに応じて（図１５の符号（３−４）参照）、または自サーバ装置１のタプル情報記憶部１２１にタプル検索情報が記憶されたことに応じて（図１４の符号（２−４）参照）、上記に説明した動作により第２の端末装置２への送信を開始するため（図１５の符号（３−６）〜（３−７）参照）、サーバ装置１におけるアプリケーションを介することなく、第１の端末装置２と第２の端末装置２との間の通信も可能となる効果を奏する。
【０２０７】
更に、図１５を用いて説明した第２の実施形態でのダウンロード処理において、サーバ装置１の送信側転送部２２が、図２６を用いて説明した第１の実施形態による転送方法と第２の実施形態による転送方法との、両方の転送方法を併用できる転送方法の構成、つまり、ハイブリッド構成を有するようにすることも可能である。
【０２０８】
なお、この場合、このサーバ装置１と通信する端末装置２の一部または全ての端末装置２は、第１の実施形態による端末装置２である。この第１の実施形態による端末装置２においては、タプル記憶部１２に記憶されているタプル情報には、少なくとも送信先タプル記憶部識別情報が含まれている。また、中継代理部１３の送信側転送部２２は、自通信装置が有するタプル記憶部１２からタプル情報を読み出し、該読み出したタプル情報を、該読み出したタプル情報に含まれている送信先タプル記憶部識別情報に該当するタプル記憶部１２にネットワーク３を介して送信する。
【０２０９】
上記により、このサーバ装置１は、自アプリケーション１１に対して、第１の実施形態と第２の実施形態とによる両方の転送形態を提供することが可能となり、サーバ装置１が収容する端末装置２として、第１の実施形態と第２の実施形態との両方の端末装置２が収容可能である。また、このサーバ装置１の自アプリケーション１１が、ユニキャストをする場合には第１の実施形態による送信先タプル記憶部識別情報を指定した通信方法を用い、マルチキャストやエニーキャストをする場合には第２の実施形態による送信先タプル記憶部識別情報を指定しない通信方法を用いることなども可能である。
【０２１０】
また、これまで説明してきたように、サーバ装置１の転送情報記憶部２４には、タプル検索情報を受信した端末装置２に対応する転送先タプル記憶部識別情報が記録されていることから、サーバ装置１で、たとえばサーバ装置１の保守管理用端末装置などから、該転送先タプル記憶部識別情報を参照することにより、ネットワーク３を介してサーバ装置1に接続された端末装置２の情報を取得することが可能になるなどの効果を奏する。また、これにより、新たに設置した端末装置２が正しく接続されているか否かを確認することが可能になる。さらに、転送先タプル記憶部識別情報に関連づけられたタプル検索情報識別情報に基づいて、該当するタプル検索情報を参照することにより、そのタプル要素から、たとえば該端末装置２で動作しているアプリケーション１１に関する情報もサーバ装置１で確認することが可能になる。
【０２１１】
次に、上述した接続ＮＷ３に適用されうる広域ユビキタスＮＷ（以下、広域ユビキタスネットワーク）について説明する。なお、広域ユビキタスネットワークについては、斎藤  洋、梅比良  正弘、守倉  正博、「広域ユビキタスネットワークインフラストラクチャに向けた考察」、電子情報通信学会論文誌  ２００５／１１  Ｖｏｌ．Ｊ８８-Ｂ  Ｎｏ．１１等に記載されている。
【０２１２】
広域ユビキタスネットワークは、携帯電話などの端末を携帯することを前提とした端末携帯型サービス、及び、人や物にセンサなどがくっついている環境を前提とした環境埋込型サービスの２つに大別される。前者では、人口普及率という点で成熟期にある携帯電話がベースになっているが、携帯電話をゲートウェイとして超小型センサなどを収容することも想定され、実際にはこれらの境界は明確ではない。
【０２１３】
図３５は、現在想定されているユビキタスネットワークの構成を示す図である。
広域なネットワークインフラから見て、端末収容形態は、直接収容（直収）とゲートウェイを介しての収容の二つに分かれ、さらに後者はゲートウェイから先のネットワーク（「ローカルネットワーク」と記載）の形態で、ゲートウェイの端末収容とゲートウェイのネットワーク収容に分かれる。ゲートウェイの端末収容は、ローカルネットワーク内端末がゲートウェイとのみ通信する形態であり、ゲートウェイのネットワーク収容はローカルネットワーク内端末がローカルネットワーク内の他端末とも通信する形態である。
【０２１４】
直収の場合、端末はエンドツーエンドの通信機能やネットワーク上のユニークなアドレスが必要となる。ゲートウェイ収容の場合、端末はゲートウェイとのみ（ゲートウェイの端末収容）、あるいは、ゲートウェイとローカルネットワーク内の他端末（ゲートウェイの
ネットワーク収容）と通信できればよい。したがって、ローカルなアドレスやローカルネットワーク内で好適な特殊なプロトコルなどの適用が容易である。ネットワーク収容と端末収容の差は、ローカルネットワーク内で利用するプロトコルに依存する。ネットワーク収容のためには、Ｂｌｕｅtoｏｔｈ，ＺｉｇＢｅｅなどのマルチホップを利用するかルーチングプロトコルを導入する必要がある。端末収容の方が簡単であるが、無線リンクを用いる場合、ひとつのローカルネットワークで物理的に広域エリアをカバーするにはネットワーク収容が必要である。
直収の場合のネットワークインフラは、現状では、携帯電話網が最有力である。ゲートウェイ収容の場合のネットワークインフラは、インターネットアクセスネットワークとインターネット・ＩＰ網、あるいは、携帯電話網と想定される。
【０２１５】
広域ユビキタスネットワークでは、上述した現在想定されているユビキタスネットワークに対し、端末数に関する「スケール性」、物理的に広い範囲をカバーできる「広域性」、移動端末に対応できる「移動管理性」、端末数が多いことにより総端末コストの観点から機能が低く演算能力やメモリ容量に限界がある低能力端末が想定されるため、それらを収容可能とする「低能力端末のサポート」、多くの端末がネットワークに接続されるためネットワークコストを抑える「経済性」を備えることが必要となる。そのため、広域ユビキタスネットワークは、図３６に示されるような複合的なネットワークの集合により実現される。
【０２１６】
次に、広域ユビキタスネットワークシステムの具体的な実現例を説明する。
図３７は、広域ユビキタスネットワークシステムの構成例を示す。同図において、広域ユビキタスネットワークシステムは、無線端末１０１と、該無線端末１０１との無線通信が可能なゲートウェイノード（以下、ＧＷノードと記す。）１０２〜１０５と、無線端末１０１の位置情報を保持する位置登録データベース１０９とを有する移動体通信ネットワークと、無線端末１０１からのメッセージ送信先としてのパーソナルコンピュータ（以下、ＰＣと記す。）１１１１、１１１２が接続されるインターネット１１０とがインターネットゲートウェイ（以下、インターネットＧＷと記す。）１１３を介して接続されてなるネットワークシステムである。
【０２１７】
また、該ネットワークシステムは、中継ノード１０６、１０７と、無線端末１０１ごとにあらかじめ定めた送信先である端末としてのＰＣ１０１のアドレスを保持する登録管理システム１０８を有している。
無線端末１０１と、ＰＣ１１１１またはＰＣ１１１２との間では、概略、次のように通信が行われる。
無線端末１０１からＰＣ１１１１、またはＰＣ１１１２へメッセージを送信する際には、ＧＷノード１０２〜１０５のいずれかは、無線端末１０１より無線フレームを受信すると、登録管理システム１０８にアクセスして、無線端末ごとにメッセージの送信先の端末アドレスを特定し、該特定した送信先の端末であるＰＣ１１１１、またはＰＣ１１１２宛にインターネットＧＷ１１３を介してメッセージを送信する。
【０２１８】
また、ＰＣ１１１１、またはＰＣ１１１２より無線端末１０１へメッセージを送信する際には、インターネットＧＷ１１３は、位置登録データベース１０９にアクセスし、無線端末１０１のＩＤから位置情報を取得し、該取得した位置情報から該当するＧＷノード１０２〜１０５へメッセージを転送し、該ゲートウェイノードは、前記無線端末へ前記メッセージを転送する。
【０２１９】
無線端末１０１は、ＧＷノード１０２〜１０５との間で無線通信が可能である。ＧＷノード１０２〜１０５、登録管理システム１０８及び位置登録データベース１０９は、中継ノード１０６、１０７を介して相互に接続しており、通信が可能である。無線端末１０１、ＧＷノード１０２〜１０５、登録管理システム１０８、位置登録データベース１０９及び中継ノード１０６、１０７は移動体通信ネットワークを構成している。
【０２２０】
また、移動体通信ネットワークは、インターネットＧＷ１１３を介してインターネット１１０とも接続しており、インターネット１１０に接続するパーソナルコンピュータ（ＰＣ）１１１１、１１１２との通信も可能である。
ここでは、ＧＷノード１０２〜１０５、中継ノード１０６、１０７、インターネットＧＷ１１３は、すべてＩＰアドレスをもち、インターネット１１０を介してＰＣ１１１１，１１１２と通信可能としている。
【０２２１】
無線端末１０１は、そのメッセージ送信先をあらかじめ定め、登録管理システム１０８に登録しておく。登録管理システム１０８は、図３８に示す｛無線端末ＩＤ、相手先アドレス｝の組を記憶する。ここでは、一例として無線端末１０１の送信先をＰＣ１１１１とする。また、無線端末１０１は、移動時に位置登録が必要となる。
【０２２２】
各ＧＷノード１０２〜１０５は、ページングエリア番号を無線報知し、無線端末１０１は、自分の保持するページングエリア番号と異なる番号を受信し、在圏エリアの変更を認識する。在圏エリアが変わると、無線端末１０１は、（１）自分の保持するページングエリア番号を更新し、（２）ＧＷノード・中継ノードを介して、自分の在圏するページングエリア番号（在圏エリア番号）を、位置登録データベース１０９に通知する。位置登録データベース１０９は、位置情報として図３９に示す｛無線端末ＩＤ、在圏エリア番号｝の組を記憶する。
【０２２３】
次に、無線端末１０１からの情報送信の処理について説明する。無線端末１０１は、所定の起動条件（例えば、一定時間ごと、センシングしていたセンサ値がー定値を超えた場合など）を満たすと、あらかじめ定められた通信相手（例えば、ＰＣ１１１１）に対して、自ＩＤとセンシング情報をメッセージとして無線フレームに入れ、送信する。
【０２２４】
ＧＷノード１０２〜１０５は、自エリア内に在圏すると推定される無線端末のＩＤとその相手先アドレス、参照時刻の組（在圏端末リスト、と呼ぶ）を保持する（図４０）。ＧＷノード１０２〜１０５は、上記無線フレームを受信し、受信メッセージ中の無線端末ＩＤが在圏端末リストにあるか、チェックする。なければ、登録管理システム１０８にアクセスし、当該無線端末ＩＤに対する相手先アドレスを照会する。（照会しても該当端末がない場合、不正端末であるので、受信したメッセージを廃棄する。）
【０２２５】
そして、現在時刻を参照時刻とし、無線端末ＩＤと照会して得た相手先アドレスの組を在圏端末リストに加える。（これにより、在圏エリア変更なしの場合、登録管理システム１０８ヘの照会なしに、相手先アドレスを把握できる。）
在圏端末リストに、もともとあった場合は、参照時刻を現在時刻に更新して保持する。
【０２２６】
こうして得た相手先アドレスを着アドレスにし、発アドレスをＧＷノードアドレスとし、メッセージをペイロードに入れたＴＣＰ／ＩＰパケットにより、相手先に送る。このとき、メッセージは保持する。
上記ＴＣＰ／ＩＰパケットを受信したＰＣは、メッセージを取り出し、ＧＷノードにＡＣＫを返送する。上記ＡＣＫを受信したＧＷノードは、ＩＰアドレスから、対応する保持しているメッセージを特定し、それを消去する。
【０２２７】
また、在圏端末リストの参照時刻が、現在時刻からあらかじめ定められたタイムアウトとなる時点より、古くなった場合、当該｛無線端末のＩＤとその相手先アドレス、参照時刻の組｝を削除する。
【０２２８】
なお、図３７のネットワークの無線端末１０１を本実施形態のWTu５およびTE２として、ＰＣ１１１１、１１１２をIP-TE１として、中継ノード１０７、１０６を広域ユビキタスＮＷ３として、インターネットＧＷ１１３をＩＰ-ＧＷ４として、考えることができる。
【０２２９】
なお、図１のuTupleSpace１２、特に図７のIP-TE uTupleSpace１２における記憶部は、ハードディスク装置や光磁気ディスク装置、フラッシュメモリ等の不揮発性のメモリや、ＣＤ-ＲＯＭ等の読み出しのみが可能な記憶媒体、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のような揮発性のメモリ、あるいはこれらの組み合わせにより構成されるものとする
【０２３０】
また、図１におけるRelayAgent１３は、は専用のハードウェアにより実現されるものであってもよく、また、メモリおよびマイクロプロセッサにより実現させるものであってもよい。
【０２３１】
なお、この図１におけるRelayAgent１３は、専用のハードウェアにより実現されるものであってもよく、また、このRelayAgent１３はメモリおよびＣＰＵ（中央演算装置）により構成され、RelayAgent１３の機能を実現するためのプログラムをメモリにロードして実行することによりその機能を実現させるものであってもよい。
【０２３２】
また、図１におけるRelayAgent１３の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりRelayAgent１３の機能を実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
【０２３３】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ-ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【０２３４】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【図面の簡単な説明】
【０２３５】
【図１】この発明の一実施形態によるネットワーク分散共有システムの構成を示すブロック図である。
【図２】図１のネットワーク分散共有システムの方式１によるデータ転送方式を説明する動作図である。
【図３】図１のネットワーク分散共有システムの方式２-１によるデータ転送方式を説明する動作図である。
【図４】図１のネットワーク分散共有システムの方式２-２によるデータ転送方式を説明する動作図である。
【図５】Tupleの分類を説明する説明図である。
【図６】Tupleの構成要素を説明する説明図である。
【図７】広域ユビキタスネットワークに適応した場合のネットワーク分散共有システムの構成を示すブロック図である。
【図８】通信端末の構成を示すブロック図である。
【図９】図８の通信端末の起動時における動作を説明する動作図である。
【図１０】図８の通信端末のリセット時における動作を説明する動作図である。
【図１１】図８の通信端末のアップロード時における動作を説明する動作図である。
【図１２】図８の通信端末のダウンロード時における動作を説明する動作図である。
【図１３】図７のネットワーク分散共有システムの起動時またはリセット時における動作を説明する動作図である。
【図１４】図７のネットワーク分散共有システムのアップロード時における動作を説明する動作図である。
【図１５】図７のネットワーク分散共有システムのダウンロード時における動作を説明する動作図である。
【図１６】図１３におけるTupleのフィールドの情報を詳細に説明する説明図である。
【図１７】図１４におけるTupleのフィールドの情報を詳細に説明する説明図である
【図１８】図１５におけるTupleのフィールドの情報を詳細に説明する説明図である
【図１９】広域ユビキタスＮＷ３におけるヘッダ情報を説明する説明図である。
【図２０】第２の実施形態における中継代理部の構成を示すブロック図である。
【図２１】タプル記憶部の第１の構成を示すブロック図である。
【図２２】タプル記憶部の第２の構成を示すブロック図である。
【図２３】タプル検索情報識別情報を用いた転送を実行する中継代理部とタプル記憶部との構成を示すブロック図その１である。
【図２４】タプル検索情報識別情報を用いた転送を実行する中継代理部とタプル記憶部との構成を示すブロック図その２である。
【図２５】タプル検索情報識別情報とタプル情報とを関連づけて送信側転送部に出力する場合のタプル情報抽出部の構成を示すブロック図である。
【図２６】第１の実施形態と第２の実施形態との両方の方法を併用できる転送方法を説明する説明図である。
【図２７】タプルメタ検索情報によるタプル検索情報を抽出するタプル記憶部の構成を示すブロック図である。
【図２８】図２７に対応する受信側の構成を示すブロック図である。
【図２９】タプル検索情報識別情報と転送先タプル記憶部識別情報とを関連付けて記憶する構成を示すブロック図である。
【図３０】図２９のタプル検索情報識別情報を生成する構成を示すブロック図である。
【図３１】図３０のタプル検索情報識別情報生成部の動作を説明するフローチャートである。
【図３２】タプルメタ検索情報識別情報を用いたタプル検索情報の転送を実行する中継代理部とタプル記憶部との構成を示すブロック図その１である。
【図３３】タプルメタ検索情報識別情報を用いたタプル検索情報の転送を実行する中継代理部とタプル記憶部との構成を示すブロック図その２である。
【図３４】第１の実施形態と第２の実施形態との両方の方法を併用できる転送方法を説明する説明図である。
【図３５】現在想定されているユビキタスネットワークを示す図である。
【図３６】広域ユビキタスネットワークインフラストラクチャを示す図である。
【図３７】広域ユビキタスネットワークの構成例を示す図である。
【図３８】図３７に示したネットワークシステムにおける登録管理システムの記憶内容を示す説明図である。
【図３９】図３７に示したネットワークシステムにおける位置登録データベースの記憶内容を示す説明図。
【図４０】図３７に示したネットワークシステムにおけるＧＷノードの記憶内容を示す説明図。
【符号の説明】
【０２３６】
１  通信端末、IP-TE
２  通信端末、TE
３  接続ＮＷ、ネットワーク
６  通信装置
１１  アプリケーション、TEアプリケーション、IP-TEアプリケーション
１２  uTupleSpace、TE uTupleSpace、IP-TE uTupleSpace、タプル記憶部
１３  RelayAgent、TE RelayAgent、IP-TE RelayAgent、中継代理部
２２  送信側転送部
２３  受信側転送部
２４  転送情報記憶部
１０１  無線端末
１０２〜１０５  ＧＷノード
１０６、１０７  中継ノード
１０８  登録管理システム
１０９  位置登録データベース
１１０  インターネット
１１３  インターネットＧＷ
１２１  タプル情報記憶部
１２２  タプル検索情報記憶部
１２３  タプルメタ検索情報記憶部
１２４  タプル情報抽出部
１２５  タプル検索情報抽出部
２４１  タプル情報転送先情報記憶部
２４２  タプル情報転送先情報抽出部
２４３  タプル検索情報識別情報生成部
１１１１、１１１２  ＰＣ
【図１】
0004902559.tif 000002
【図２】
0004902559.tif 000003
【図３】
0004902559.tif 000004
【図４】
0004902559.tif 000005
【図５】
0004902559.tif 000006
【図６】
0004902559.tif 000007
【図７】
0004902559.tif 000008
【図８】
0004902559.tif 000009
【図９】
0004902559.tif 000010
【図１０】
0004902559.tif 000011
【図１１】
0004902559.tif 000012
【図１２】
0004902559.tif 000013
【図１３】
0004902559.tif 000014
【図１４】
0004902559.tif 000015
【図１５】
0004902559.tif 000016
【図１６】
0004902559.tif 000017
【図１７】
0004902559.tif 000018
【図１８】
0004902559.tif 000019
【図１９】
0004902559.tif 000020
【図２０】
0004902559.tif 000021
【図２１】
0004902559.tif 000022
【図２２】
0004902559.tif 000023
【図２３】
0004902559.tif 000024
【図２４】
0004902559.tif 000025
【図２５】
0004902559.tif 000026
【図２６】
0004902559.tif 000027
【図２７】
0004902559.tif 000028
【図２８】
0004902559.tif 000029
【図２９】
0004902559.tif 000030
【図３０】
0004902559.tif 000031
【図３１】
0004902559.tif 000032
【図３２】
0004902559.tif 000033
【図３３】
0004902559.tif 000034
【図３４】
0004902559.tif 000035
【図３５】
0004902559.tif 000036
【図３６】
0004902559.tif 000037
【図３７】
0004902559.tif 000038
【図３８】
0004902559.tif 000039
【図３９】
0004902559.tif 000040
【図４０】
0004902559.tif 000041