(57)【特許請求の範囲】
【請求項１】
キーと値の組を含むデータであるユータプルを端末から受信する受信部と、
前記受信部が受信したユータプルのうち、センサデバイスが検知したセンサデータを含むユータプルであるイベント型書き込み用ユータプルと、前記イベント型書き込み用ユータプルを読み出すためのユータプルであるイベント型読み出し用ユータプルとを記憶する第一記憶部と、
前記受信部が受信したユータプルのうち、動作指示を行うコマンドデータを含むユータプルであるコマンド型書き込み用ユータプルと、前記コマンド型書き込み用ユータプルを読み出すためのユータプルであるコマンド型読み出し用ユータプルとを記憶する第二記憶部と、
前記受信部がイベント型書き込み用ユータプル又はイベント型読み出し用ユータプルを受信すると、受信したユータプルと前記第一記憶部から読み出したユータプルとに対し、イベント型読み出し用ユータプルに含まれるキーと値の組全てを検索条件とし、イベント型書き込み用ユータプルが当該検索条件を全て満たすか否かを判定する第一マッチング処理部と、
前記第一マッチング処理部が検索条件を満たすと判定した場合に、前記イベント型読み出し用ユータプルを送信した端末へ前記イベント型書き込み用ユータプルを送信する第一送信部と、
前記受信部がコマンド型書き込み用ユータプル又はコマンド型読み出し用ユータプルを受信すると、受信したユータプルと前記第二記憶部から読み出したユータプルとに対し、コマンド型書き込み用ユータプルに含まれるキーと値の組のうち、コマンド型読み出し用ユータプルに含まれるキーを持つキーと値の組全てを検索条件とし、当該コマンド型読み出し用ユータプルが当該検索条件を全て満たすか否かを判定する第二マッチング処理部と、
前記第二マッチング処理部が検索条件を満たすと判定した場合に、前記コマンド型読み出し用ユータプルを送信した端末へ前記コマンド型書き込み用ユータプルを送信する第二送信部と
を備えることを特徴とする間接通信装置。
【請求項２】
前記第一マッチング処理部及び前記第二マッチング処理部は、前記検索条件のキーに対応する検索対象の値が前記検索条件の値と共通する範囲を持つ場合に前記検索条件を満たすと判定することを特徴とする請求項１に記載の間接通信装置。
【請求項３】
キーと値の組を含むデータであるユータプルのうち、センサデバイスが検知したセンサデータを含むユータプルであるイベント型書き込み用ユータプルを送信する送信端末と、
前記イベント型書き込み用ユータプルを読み出すためのユータプルであるイベント型読み出し用ユータプル及び、動作指示を行うコマンドデータを含むユータプルであるコマンド型書き込み用ユータプルを送信するサーバ端末と、
前記コマンド型書き込み用ユータプルを読み出すためのユータプルであるコマンド型読み出し用ユータプルを送信する受信端末と、
前記ユータプルを受信する受信部と、
前記受信部が受信したユータプルのうち、イベント型書き込み用ユータプルとイベント型読み出し用ユータプルとを記憶する第一記憶部と、
前記受信部が受信したユータプルのうち、コマンド型読み出し用ユータプルとコマンド型書き込み用ユータプルとを記憶する第二記憶部と、
前記受信部がイベント型書き込み用ユータプル又はイベント型読み出し用ユータプルを受信すると、受信したユータプルと前記第一記憶部から読み出したユータプルとに対し、イベント型読み出し用ユータプルに含まれるキーと値の組全てを検索条件とし、イベント型書き込み用ユータプルが当該検索条件を全て満たすか否かを判定する第一マッチング処理部と、
前記第一マッチング処理部が検索条件を満たすと判定した場合に、前記イベント型読み出し用ユータプルを送信した端末へ前記イベント型書き込み用ユータプルを送信する第一送信部と、
前記受信部がコマンド型書き込み用ユータプル又はコマンド型読み出し用ユータプルを受信すると、受信したユータプルと前記第二記憶部から読み出したユータプルとに対し、コマンド型書き込み用ユータプルに含まれるキーと値の組のうち、コマンド型読み出し用ユータプルに含まれるキーを持つキーと値の組全てを検索条件とし、当該コマンド型読み出し用ユータプルが当該検索条件を全て満たすか否かを判定する第二マッチング処理部と、
前記第二マッチング処理部が検索条件を満たすと判定した場合に、前記コマンド型読み出し用ユータプルを送信した端末へ前記コマンド型書き込み用ユータプルを送信する第二送信部と
を備える間接通信装置と
を有することを特徴とする通信システム。
【請求項４】
前記第一マッチング処理部及び前記第二マッチング処理部は、前記検索条件のキーに対応する検索対象の値が前記検索条件の値と共通する範囲を持つ場合に前記検索条件を満たすと判定することを特徴とする請求項３に記載の通信システム。
【請求項５】
キーと値の組を含むデータであるユータプルのうち、センサデバイスが検知したセンサデータを含むユータプルであるイベント型書き込み用ユータプルと、前記イベント型書き込み用ユータプルを読み出すためのユータプルであるイベント型読み出し用ユータプルとを記憶する第一記憶部と、
動作指示を行うコマンドデータを含むユータプルであるコマンド型書き込み用ユータプルと、前記コマンド型書き込み用ユータプルを読み出すためのユータプルであるコマンド型読み出し用ユータプルとを記憶する第二記憶部と
を備えるコンピュータを用いて構築される間接通信装置における通信方法であって、
前記間接通信装置の受信部が、前記ユータプルを端末から受信し、当該ユータプルを前記第一記憶部又は第二記憶部に書き込むステップと、
前記間接通信装置の第一マッチング処理部が、前記受信部がイベント型書き込み用ユータプル又はイベント型読み出し用ユータプルを受信すると、受信したユータプルと前記第一記憶部から読み出したユータプルとに対し、イベント型読み出し用ユータプルに含まれるキーと値の組全てを検索条件とし、イベント型書き込み用ユータプルが当該検索条件を全て満たすか否かを判定するステップと、
前記間接通信装置の第一送信部が、前記第一マッチング処理部が検索条件を満たすと判定した場合に、前記イベント型読み出し用ユータプルを送信した端末へ前記イベント型書き込み用ユータプルを送信するステップと、
前記間接通信装置の第二マッチング処理部が、前記受信部がコマンド型書き込み用ユータプル又はコマンド型読み出し用ユータプルを受信すると、受信したユータプルと前記第二記憶部から読み出したユータプルとに対し、コマンド型書き込み用ユータプルに含まれるキーと値の組のうち、コマンド型読み出し用ユータプルに含まれるキーを持つキーと値の組全てを検索条件とし、当該コマンド型読み出し用ユータプルが当該検索条件を全て満たすか否かを判定するステップと、
前記間接通信装置の第二送信部が、前記第二マッチング処理部が検索条件を満たすと判定した場合に、前記コマンド型読み出し用ユータプルを送信した端末へ前記コマンド型書き込み用ユータプルを送信するステップと
を有することを特徴とする通信方法。
【請求項６】
前記第一マッチング処理部及び前記第二マッチング処理部は、前記検索条件のキーに対応する検索対象の値が前記検索条件の値と共通する範囲を持つ場合に前記検索条件を満たすと判定することを特徴とする請求項５に記載の通信方法。
【請求項７】
キーと値の組を含むデータであるユータプルのうち、センサデバイスが検知したセンサデータを含むユータプルであるイベント型書き込み用ユータプルと、前記イベント型書き込み用ユータプルを読み出すためのユータプルであるイベント型読み出し用ユータプルとを記憶する第一記憶部と、
動作指示を行うコマンドデータを含むユータプルであるコマンド型書き込み用ユータプルと、前記コマンド型書き込み用ユータプルを読み出すためのユータプルであるコマンド型読み出し用ユータプルとを記憶する第二記憶部と
を備える間接通信装置としてのコンピュータに、
受信部が、前記ユータプルを端末から受信し、当該ユータプルを前記第一記憶部又は第二記憶部に書き込むステップと、
第一マッチング処理部が、前記受信部がイベント型書き込み用ユータプル又はイベント型読み出し用ユータプルを受信すると、受信したユータプルと前記第一記憶部から読み出したユータプルとに対し、イベント型読み出し用ユータプルに含まれるキーと値の組全てを検索条件とし、イベント型書き込み用ユータプルが当該検索条件を全て満たすか否かを判定するステップと、
第一送信部が、前記第一マッチング処理部が検索条件を満たすと判定した場合に、前記イベント型読み出し用ユータプルを送信した端末へ前記イベント型書き込み用ユータプルを送信するステップと、
第二マッチング処理部が、前記受信部がコマンド型書き込み用ユータプル又はコマンド型読み出し用ユータプルを受信すると、受信したユータプルと前記第二記憶部から読み出したユータプルとに対し、コマンド型書き込み用ユータプルに含まれるキーと値の組のうち、コマンド型読み出し用ユータプルに含まれるキーを持つキーと値の組全てを検索条件とし、当該コマンド型読み出し用ユータプルが当該検索条件を全て満たすか否かを判定するステップと、
第二送信部が、前記第二マッチング処理部が検索条件を満たすと判定した場合に、前記コマンド型読み出し用ユータプルを送信した端末へ前記コマンド型書き込み用ユータプルを送信するステップと
を実行させるための通信プログラム。
【請求項８】
前記第一マッチング処理部及び前記第二マッチング処理部は、前記検索条件のキーに対応する検索対象の値が前記検索条件の値と共通する範囲を持つ場合に前記検索条件を満たすと判定することを特徴とする請求項７に記載の通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえばユビキタスネットワークなどの各種ネットワークにおいてセンサ・アクチュエータ端末とサーバ端末の上で動作する複数のプログラムがお互いに連携してユビキタスサービスなどの各種サービスを実現するための通信プラットフォームを構成する際に用いて好適な間接通信装置、通信システム、通信方法および通信プログラムに関する。
【背景技術】
【０００２】
ユビキタスサービスなど複数の端末を用いたネットワークで提供されるサービスの開発・運用を効率化するためには、サービスを構成する端末の追加・変更・削除に対して柔軟に対応できる通信プラットフォームが必要である。さらに、端末間の柔軟な通信、すなわち、受信したいデータを受信者が指定して選択的に受信することや、データを送信したい相手を送信者が指定して選択的に送信することが可能な通信プラットフォームが求められている。これらの通信プラットフォームの要求条件を満足する通信モデルの候補としてｕＴｕｐｌｅＳｐａｃｅ（ユータプル空間）（例えば、非特許文献１参照）がある。ユータプル空間は掲示板に似た通信モデルであり、センサデバイス端末（以下、センサとする）やアクチュエータデバイス端末（以下、アクチュエータとする）やサーバ上のプログラム間で論理的に一つの空間を共有し、プログラム同士はその共有空間に対してデータを読み書きすることで間接的に通信する。
【０００３】
ユータプル空間を用いた通信では、各端末あるいはサーバ上で動作するユータプル空間用のプログラム同士がユータプル空間に対してｕＴｕｐｌｅ（ユータプル；ユータプル空間で扱う特定のデータ形式に従ったデータ）を読み書きすることで間接的に通信する。ユータプルはＫｅｙ−Ｖａｌｕｅ Ｐａｉｒ（キーと値の組）の集合を含む。例えば気温を示すセンサデータであれば、キーを「気温」とし、値を「２３．５」とした「気温＝２３．５」というＫｅｙ−Ｖａｌｕｅ Ｐａｉｒで表現可能である。ここで、「ａｄｄｒｅｓｓ」、「ｔｉｍｅ」、「ｐｏｓｉｔｉｏｎ」、「ｓｕｂｊｅｃｔ」、「ｔｙｐｅ」という５種類のキーはシステム定義されたキーである。「ａｄｄｒｅｓｓ」はセンサ又はアクチュエータの識別子を意味する。また、「ｔｉｍｅ」はセンサ又はアクチュエータがデータを蓄積した日時を意味する。また、「ｐｏｓｉｔｉｏｎ」はセンサ又はアクチュエータの位置（緯度及び経度）を意味する。また、「ｓｕｂｊｅｃｔ」はセンサ又はアクチュエータの種別を意味する。また、「ｔｙｐｅ」はデータ種別を意味する。その他のキーは、ユーザが自由に定義することができる。また送信者の書き込み用ユータプルをＡｃｔｕａｌ（アクチュアル）と呼び、受信者の読み出し用ユータプルをＦｏｒｍａｌ（フォーマル）と呼ぶ。ユータプル空間では、イベント型通信とコマンド型通信の２種類の通信がサポートされている。
【０００４】
イベント型通信では、送信者（主にセンサ上のプログラム）はＡｃｔｕａｌの一種であるＥｖｅｎｔＡｃｔｕａｌ（イベントアクチュアル）をユータプル空間に登録する。ＥｖｅｎｔＡｃｔｕａｌには、センサが検知したセンサデータやそのメタデータを含ませる。受信者（主にサーバ上のプログラム）はＦｏｒｍａｌの一種であるＥｖｅｎｔＦｏｒｍａｌ（イベントフォーマル）をユータプル空間に登録する。ＥｖｅｎｔＦｏｒｍａｌには、読み出したいＥｖｅｎｔＡｃｔｕａｌの検索条件を含ませる。このとき、検索条件として、前記システム定義の５種類のキーの値の範囲を記述することができる。例えば「ａｄｄｒｅｓｓ＝０００〜９９９」はａｄｄｒｅｓｓの値が０００以上９９９以下（あるいは未満）、という検索条件を意味する。ユータプル空間上ではＥｖｅｎｔＡｃｔｕａｌとＥｖｅｎｔＦｏｒｍａｌの間で条件比較処理（マッチング処理）が行われ、条件が満たされる（マッチする）場合には、当該ＥｖｅｎｔＡｃｔｕａｌが当該ＥｖｅｎｔＦｏｒｍａｌを登録した受信者に送信される。ここでマッチするとは、一方のユータプル内に記述された検索条件を示すＫｅｙ−Ｖａｌｕｅ Ｐａｉｒの全てについて、他方のユータプル内に条件を満たすＫｅｙ−Ｖａｌｕｅ Ｐａｉｒが含まれることを意味する。
【０００５】
コマンド型通信では、受信者（主にアクチュエータ上のプログラム）はＦｏｒｍａｌの一種であるＣｏｍｍａｎｄＦｏｒｍａｌ（コマンドフォーマル）をユータプル空間に登録する。ＣｏｍｍａｎｄＦｏｒｍａｌには、受信者自身のメタデータを含ませる。送信者（主にサーバ上のプログラム）はＡｃｔｕａｌの一種であるＣｏｍｍａｎｄＡｃｔｕａｌ（コマンドアクチュアル）をユータプル空間に登録する。ＣｏｍｍａｎｄＡｃｔｕａｌには、アクチュエータの動作指示を行うコマンドデータと、当該コマンドデータを送信したい受信者の検索条件を含ませる。このとき、検索条件として、前記システム定義の５種類のキーの値の範囲を記述することができる。その後、イベント型通信と同様に、ユータプル空間上でＣｏｍｍａｎｄＦｏｒｍａｌとＣｏｍｍａｎｄＡｃｔｕａｌ間のマッチング処理が行われ、マッチした場合には当該ＣｏｍｍａｎｄＡｃｔｕａｌが当該ＣｏｍｍａｎｄＦｏｒｍａｌを登録した受信者に送信される。このマッチング処理においては、ユータプル空間はＣｏｍｍａｎｄＡｃｔｕａｌのうち前記システム定義の５種類のキーをもつＫｅｙ−Ｖａｌｕｅ Ｐａｉｒを検索条件とみなし、その他のＫｅｙ−Ｖａｌｕｅ Ｐａｉｒをコマンドデータとみなす。
【０００６】
このように、イベント型通信とコマンド型通信をサポートすることで、サーバ上のプログラムが、読みだしたいセンサデータを選別したり、コマンドデータを送信したいアクチュエータを選別したりすることを可能としている。
また、非特許文献２には、広域ユビキタスネットワークについて記載されている。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】T. Nakamura, M. Nakamura, A. Yamamoto, K. Kashiwagi, Y. Arakawa, M. Matsuo, and H. Minami, “uTupleSpace: A Bi-Directional Shared Data Space for Wide-Area Sensor Network,” 2nd International Workshop on Sensor Networks and Ambient Intelligence (SENAMI 2009).
【非特許文献２】Saito, H., Kagami, O., Umehira, M. and Kado, Y.: Wide Area Ubiquitous Network: The Network Operator’s View of a Sensor Network, IEEE Communications Magazine, Vol.46, No.12, pp.112-120 (2008).
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、ユータプル空間の通信モデルでは、システム定義の５種類のキーでしか検索条件を記述することができない、という問題がある。ユビキタスサービスを含む各種サービスにおいては、ユーザが独自に定義したキーで検索条件を指定できることが要求される場合が多い。例えば、温度管理サービスであれば、温度が異常値（例えば５０℃以上）になったことを検出するため、「温度＝５０〜∞」（∞は無限大を示す）などの独自に定義したキーを用いた検索条件を指定したＥｖｅｎｔＦｏｒｍａｌを使い、異常値を示すＥｖｅｎｔＡｃｔｕａｌを取得したい場合が考えられる。しかしながら、ユーザが独自に定義したキーにも検索条件を記述できるようにすると、コマンド型通信のマッチング処理において、ＣｏｍｍａｎｄＡｃｔｕａｌに含まれるＫｅｙ−Ｖａｌｕｅ ＰａｉｒのうちどのＫｅｙ−Ｖａｌｕｅ Ｐａｉｒが検索条件であり、どのＫｅｙ−Ｖａｌｕｅ Ｐａｉｒが検索条件ではないコマンドデータであるかを判断できなくなる。つまり、どのＫｅｙ−Ｖａｌｕｅ Ｐａｉｒによってマッチするか否かを判断すればよいかをユータプル空間側で判断できなくなり、マッチング処理を実行できなくなるという問題があった。
【０００９】
またユータプル空間の通信モデルは、ＥｖｅｎｔＡｃｔｕａｌやＣｏｍｍａｎｄＦｏｒｍａｌ内で範囲を示す値をＫｅｙ−Ｖａｌｕｅ Ｐａｉｒの値として含ませることができない、という問題がある。これはマッチング処理において、検索条件を示すＫｅｙ−Ｖａｌｕｅ Ｐａｉｒの値に記述された範囲もしくは値に、検索対象となるＫｅｙ−Ｖａｌｕｅ Ｐａｉｒの値が含まれるか一致する場合に、検索条件を満たすと判定するため、検索対象となるＫｅｙ−Ｖａｌｕｅ Ｐａｉｒの値には範囲が記載できないことに起因する。これにより、例えば、温度センサの精度を明確に示した「温度＝２０．０〜２０．２」といったＫｅｙ−Ｖａｌｕｅ Ｐａｉｒから構成されるデータを扱うことができなかった。
【００１０】
本発明は、このような事情を考慮し、上記の問題を解決すべくなされたもので、その目的は、ユーザが独自に定義したキーにも検索条件を記述できるようにすることにより各種サービスの要求に答えられる通信モデルを実現する間接通信装置、通信システム、通信方法及び通信プログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明は上記の課題を解決するためになされたものであり、本発明の一態様は、キーと値の組を含むデータであるユータプルを端末から受信する受信部と、前記受信部が受信したユータプルのうち、センサデバイスが検知したセンサデータを含むユータプルであるイベント型書き込み用ユータプルと、前記イベント型書き込み用ユータプルを読み出すためのユータプルであるイベント型読み出し用ユータプルとを記憶する第一記憶部と、前記受信部が受信したユータプルのうち、動作指示を行うコマンドデータを含むユータプルであるコマンド型書き込み用ユータプルと、前記コマンド型書き込み用ユータプルを読み出すためのユータプルであるコマンド型読み出し用ユータプルとを記憶する第二記憶部と、前記受信部がイベント型書き込み用ユータプル又はイベント型読み出し用ユータプルを受信すると、受信したユータプルと前記第一記憶部から読み出したユータプルとに対し、イベント型読み出し用ユータプルに含まれるキーと値の組全てを検索条件とし、イベント型書き込み用ユータプルが当該検索条件を全て満たすか否かを判定する第一マッチング処理部と、前記第一マッチング処理部が検索条件を満たすと判定した場合に、前記イベント型読み出し用ユータプルを送信した端末へ前記イベント型書き込み用ユータプルを送信する第一送信部と、前記受信部がコマンド型書き込み用ユータプル又はコマンド型読み出し用ユータプルを受信すると、受信したユータプルと前記第二記憶部から読み出したユータプルとに対し、コマンド型書き込み用ユータプルに含まれるキーと値の組のうち、コマンド型読み出し用ユータプルに含まれるキーを持つキーと値の組全てを検索条件とし、当該コマンド型読み出し用ユータプルが当該検索条件を全て満たすか否かを判定する第二マッチング処理部と、前記第二マッチング処理部が検索条件を満たすと判定した場合に、前記コマンド型読み出し用ユータプルを送信した端末へ前記コマンド型書き込み用ユータプルを送信する第二送信部とを備えることを特徴とする間接通信装置である。
【００１２】
この発明によれば、第一マッチング処理部においてイベント型読み出し用ユータプルに含まれる全てのキーと値の組全てを検索条件とし、第二マッチング処理部においてコマンド型書き込み用ユータプルに含まれるキーと値の組のうち、コマンド型読み出し用ユータプルに含まれるキーを持つキーと値の組全てを検索条件としたことにより、ユーザが独自に定義したキーを検索条件として記述することができる。
【００１３】
また、本発明の一態様は、上記の間接通信装置において、前記第一マッチング処理部及び前記第二マッチング処理部は、前記検索条件のキーに対応する検索対象の値が前記検索条件の値と共通する範囲を持つ場合に前記検索条件を満たすと判定することを特徴とする。
【００１４】
この発明によれば、検索条件のキーに対応する値が検索条件の値と共通する範囲を持つ場合に検索条件を満たすと判定することにより、検索対象となる値に範囲を示す値を記述することができる。さらに、コマンド型通信において、受信者が、自身がコマンドデータとして理解しうるキーと値の組をコマンド型読み出し用ユータプル内に指定することが可能である。例えば、速度を指定できるモータアクチュエータであれば、「ｓｐｅｅｄ＝−∞〜∞」というキーと値の組をコマンド型読み出し用ユータプル内に記述することにより、「ｓｐｅｅｄ」というキーを持つコマンド型読み出し用ユータプルのみを選別して受信することが可能となる。
【００１５】
また、本発明の一態様は、キーと値の組を含むデータであるユータプルのうち、センサデバイスが検知したセンサデータを含むユータプルであるイベント型書き込み用ユータプルを送信する送信端末と、前記イベント型書き込み用ユータプルを読み出すためのユータプルであるイベント型読み出し用ユータプル及び、動作指示を行うコマンドデータを含むユータプルであるコマンド型書き込み用ユータプルを送信するサーバ端末と、前記コマンド型書き込み用ユータプルを読み出すためのユータプルであるコマンド型読み出し用ユータプルを送信する受信端末と、前記ユータプルを受信する受信部と、前記受信部が受信したユータプルのうち、イベント型書き込み用ユータプルとイベント型読み出し用ユータプルとを記憶する第一記憶部と、前記受信部が受信したユータプルのうち、コマンド型読み出し用ユータプルとコマンド型書き込み用ユータプルとを記憶する第二記憶部と、前記受信部がイベント型書き込み用ユータプル又はイベント型読み出し用ユータプルを受信すると、受信したユータプルと前記第一記憶部から読み出したユータプルとに対し、イベント型読み出し用ユータプルに含まれるキーと値の組全てを検索条件とし、イベント型書き込み用ユータプルが当該検索条件を全て満たすか否かを判定する第一マッチング処理部と、前記第一マッチング処理部が検索条件を満たすと判定した場合に、前記イベント型読み出し用ユータプルを送信した端末へ前記イベント型書き込み用ユータプルを送信する第一送信部と、前記受信部がコマンド型書き込み用ユータプル又はコマンド型読み出し用ユータプルを受信すると、受信したユータプルと前記第二記憶部から読み出したユータプルとに対し、コマンド型書き込み用ユータプルに含まれるキーと値の組のうち、コマンド型読み出し用ユータプルに含まれるキーを持つキーと値の組全てを検索条件とし、当該コマンド型読み出し用ユータプルが当該検索条件を全て満たすか否かを判定する第二マッチング処理部と、前記第二マッチング処理部が検索条件を満たすと判定した場合に、前記コマンド型読み出し用ユータプルを送信した端末へ前記コマンド型書き込み用ユータプルを送信する第二送信部とを備える間接通信装置とを有することを特徴とする通信システムである。
【００１６】
また、本発明の一態様は、上記の通信システムにおいて、前記第一マッチング処理部及び前記第二マッチング処理部は、前記検索条件のキーに対応する検索対象の値が前記検索条件の値と共通する範囲を持つ場合に前記検索条件を満たすと判定することを特徴とする。
【００１７】
また、本発明の一態様は、キーと値の組を含むデータであるユータプルのうち、センサデバイスが検知したセンサデータを含むユータプルであるイベント型書き込み用ユータプルと、前記イベント型書き込み用ユータプルを読み出すためのユータプルであるイベント型読み出し用ユータプルとを記憶する第一記憶部と、動作指示を行うコマンドデータを含むユータプルであるコマンド型書き込み用ユータプルと、前記コマンド型書き込み用ユータプルを読み出すためのユータプルであるコマンド型読み出し用ユータプルとを記憶する第二記憶部とを備えるコンピュータを用いて構築される間接通信装置における通信方法であって、前記間接通信装置の受信部が、前記ユータプルを端末から受信し、当該ユータプルを前記第一記憶部又は第二記憶部に書き込むステップと、前記間接通信装置の第一マッチング処理部が、前記受信部がイベント型書き込み用ユータプル又はイベント型読み出し用ユータプルを受信すると、受信したユータプルと前記第一記憶部から読み出したユータプルとに対し、イベント型読み出し用ユータプルに含まれるキーと値の組全てを検索条件とし、イベント型書き込み用ユータプルが当該検索条件を全て満たすか否かを判定するステップと、前記間接通信装置の第一送信部が、前記第一マッチング処理部が検索条件を満たすと判定した場合に、前記イベント型読み出し用ユータプルを送信した端末へ前記イベント型書き込み用ユータプルを送信するステップと、前記間接通信装置の第二マッチング処理部が、前記受信部がコマンド型書き込み用ユータプル又はコマンド型読み出し用ユータプルを受信すると、受信したユータプルと前記第二記憶部から読み出したユータプルとに対し、コマンド型書き込み用ユータプルに含まれるキーと値の組のうち、コマンド型読み出し用ユータプルに含まれるキーを持つキーと値の組全てを検索条件とし、当該コマンド型読み出し用ユータプルが当該検索条件を全て満たすか否かを判定するステップと、前記間接通信装置の第二送信部が、前記第二マッチング処理部が検索条件を満たすと判定した場合に、前記コマンド型読み出し用ユータプルを送信した端末へ前記コマンド型書き込み用ユータプルを送信するステップとを有することを特徴とする通信方法である。
【００１８】
また、本発明の一態様は、上記の通信方法において、前記第一マッチング処理部及び前記第二マッチング処理部は、前記検索条件のキーに対応する検索対象の値が前記検索条件の値と共通する範囲を持つ場合に前記検索条件を満たすと判定することを特徴とする。
【００１９】
また、本発明の一態様は、キーと値の組を含むデータであるユータプルのうち、センサデバイスが検知したセンサデータを含むユータプルであるイベント型書き込み用ユータプルと、前記イベント型書き込み用ユータプルを読み出すためのユータプルであるイベント型読み出し用ユータプルとを記憶する第一記憶部と、動作指示を行うコマンドデータを含むユータプルであるコマンド型書き込み用ユータプルと、前記コマンド型書き込み用ユータプルを読み出すためのユータプルであるコマンド型読み出し用ユータプルとを記憶する第二記憶部とを備える間接通信装置としてのコンピュータに、受信部が、前記ユータプルを端末から受信し、当該ユータプルを前記第一記憶部又は第二記憶部に書き込むステップと、第一マッチング処理部が、前記受信部がイベント型書き込み用ユータプル又はイベント型読み出し用ユータプルを受信すると、受信したユータプルと前記第一記憶部から読み出したユータプルとに対し、イベント型読み出し用ユータプルに含まれるキーと値の組全てを検索条件とし、イベント型書き込み用ユータプルが当該検索条件を全て満たすか否かを判定するステップと、第一送信部が、前記第一マッチング処理部が検索条件を満たすと判定した場合に、前記イベント型読み出し用ユータプルを送信した端末へ前記イベント型書き込み用ユータプルを送信するステップと、第二マッチング処理部が、前記受信部がコマンド型書き込み用ユータプル又はコマンド型読み出し用ユータプルを受信すると、受信したユータプルと前記第二記憶部から読み出したユータプルとに対し、コマンド型書き込み用ユータプルに含まれるキーと値の組のうち、コマンド型読み出し用ユータプルに含まれるキーを持つキーと値の組全てを検索条件とし、当該コマンド型読み出し用ユータプルが当該検索条件を全て満たすか否かを判定するステップと、第二送信部が、前記第二マッチング処理部が検索条件を満たすと判定した場合に、前記コマンド型読み出し用ユータプルを送信した端末へ前記コマンド型書き込み用ユータプルを送信するステップとを実行させるための通信プログラムである。
【００２０】
また、本発明の一態様は、上記の通信プログラムにおいて、前記第一マッチング処理部及び前記第二マッチング処理部は、前記検索条件のキーに対応する検索対象の値が前記検索条件の値と共通する範囲を持つ場合に前記検索条件を満たすと判定することを特徴とする。
【発明の効果】
【００２１】
本発明によれば、第一マッチング処理部においてイベント型読み出し用ユータプルに含まれる全てのキーと値の組全てを検索条件とし、第二マッチング処理部においてコマンド型書き込み用ユータプルに含まれるキーと値の組のうち、コマンド型読み出し用ユータプルに含まれるキーを持つキーと値の組を検索条件としたことにより、ユーザが独自に定義したキーを検索条件として記述することができる。これにより、各種サービスの要求に答えられる通信モデルを実現することができる。
【図面の簡単な説明】
【００２２】
【図１】本実施形態による通信システムの構成を示すブロック図である。
【図２】本実施形態によるユータプルのデータ例を示す概略図である。
【図３】本実施形態によるイベント型書き込み用ユータプルを受信した際の第一マッチング処理の手順を示すフローチャートである。
【図４】本実施形態によるイベント型読み出し用ユータプルを受信した際の第一マッチング処理の手順を示すフローチャートである。
【図５】本実施形態によるコマンド型書き込み用ユータプルを受信した際の第二マッチング処理の手順を示すフローチャートである。
【図６】本実施形態によるコマンド型読み出し用ユータプルを受信した際の第二マッチング処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００２３】
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
図１は、本実施形態による通信システムの構成を示すブロック図である。
本実施形態による通信システムは、ユータプル空間におけるイベント型通信とコマンド型通信とを実現するものである。ユータプル空間、イベント型通信及びコマンド型通信については、背景技術として上述したとおりである。本実施形態において、以下の様に用語を定義する。ユータプルとは、ユータプル空間で扱う特定のデータ形式に従ったデータであって、Ｋｅｙ−Ｖａｌｕｅ Ｐａｉｒ（キーと値の組）の集合を含むデータである。書き込み用ユータプルは、他の端末（プログラム）に送信するためのユータプルである。読み出し用ユータプルは、書き込み用ユータプルを読み出すためのユータプルである。また、イベント型通信における書き込み用ユータプルをＥｖｅｎｔＡｃｔｕａｌと呼び、読み出し用ユータプルをＥｖｅｎｔＦｏｒｍａｌと呼ぶ。ＥｖｅｎｔＡｃｔｕａｌは、センサ端末２０から得られたセンサデータなどの通信内容とそのメタデータを保持する。センサデータとは、センサ端末２０が備えるセンサデバイスが検知したデータである。また、ＥｖｅｎｔＦｏｒｍａｌは、読み出したいセンサデータの条件を保持する。また、コマンド型通信における書き込み用ユータプルをＣｏｍｍａｎｄＡｃｔｕａｌと呼び、読み出し用ユータプルをＣｏｍｍａｎｄＦｏｒｍａｌと呼ぶ。ＣｏｍｍａｎｄＡｃｔｕａｌは、コマンドデータなどの通信内容と送信したいアクチュエータ端末３０の条件を保持する。コマンドデータとは、アクチュエータ端末３０が備えるアクチュエータデバイスの動作指示を行うデータである。また、ＣｏｍｍａｎｄＦｏｒｍａｌは、アクチュエータ端末３０のメタデータを保持する。なお、本願においてメタデータとは、対象となるデータを説明するデータであるとしている。
【００２４】
通信システムは、間接通信装置６０と、サーバ端末１０と、センサ端末（送信端末）２０と、アクチュエータ端末（受信端末）３０とを含んで構成される。間接通信装置６０とサーバ端末１０とはネットワーク４０を利用して相互に通信を行う。また、センサ端末２０又はアクチュエータ端末３０と、間接通信装置６０とはネットワーク４１を利用して相互に通信を行う。ネットワーク４０及びネットワーク４１は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、携帯電話網、広域ユビキタスネットワーク或いは専用線などの私設網や、インターネットなどの公衆網からなる。
【００２５】
センサ端末２０は、センサデバイス（例えば、温度センサ等）を備え、センサデバイスが検知したセンサデータを用いたプログラム２１を実行する端末である。センサ端末２０は、ネットワーク４１を介して間接通信装置６０と通信を行う通信部２２を備える。アクチュエータ端末３０は、アクチュエータデバイス（例えば、照明等）を備え、アクチュエータデバイスの操作を行うプログラム３２を実行する端末である。アクチュエータ端末３０は、ネットワーク４１を介して間接通信装置６０と通信を行う通信部３１を備える。サーバ端末１０は、センサ端末２０が実行するプログラム２１又はアクチュエータ端末３０が実行するプログラム３２とユータプル空間を介して通信を行うプログラム１２を実行する端末である。サーバ端末１０は、ネットワーク４０を介して間接通信装置６０と通信を行う通信部１１を備える。なお、サーバ端末１０と、センサ端末２０と、アクチュエータ端末３０とを総称して端末と呼ぶ。
【００２６】
間接通信装置６０は、ユータプル空間を実現する、例えばコンピュータ等を用いて構築される装置であり、通信部６１と、第一マッチング処理部６２と、第一記憶部６３と、第二マッチング処理部６４と、第二記憶部６５とを含んで構成される。通信部（受信部、第一送信部、第二送信部）６１は、ネットワーク４０を介してサーバ端末１０と通信を行い、ネットワーク４１を介してセンサ端末２０又はアクチュエータ端末３０と通信を行う。
【００２７】
第一マッチング処理部６２は、通信部６１が端末からＥｖｅｎｔＦｏｒｍａｌ及び送信元端末情報を受信すると、当該ＥｖｅｎｔＦｏｒｍａｌと当該送信元端末情報とを関連付けて第一記憶部６３に書き込むとともに、当該ＥｖｅｎｔＦｏｒｍａｌと第一記憶部６３に記憶されているＥｖｅｎｔＡｃｔｕａｌとの第一マッチング処理を行う。送信元端末情報とは、インターネットにおけるＩＰアドレスやポート番号或いは広域ユビキタスネットワークにおけるサービスＩＤなど、当該端末ないしプログラムとの通信に必要となる情報である。また、第一マッチング処理部６２は、通信部６１が端末からＥｖｅｎｔＡｃｔｕａｌ及び送信元端末情報を受信すると、当該ＥｖｅｎｔＡｃｔｕａｌと当該送信元端末情報とを関連付けて第一記憶部６３に書き込むとともに、当該ＥｖｅｎｔＡｃｔｕａｌと第一記憶部６３に記憶されているＥｖｅｎｔＦｏｒｍａｌとの第一マッチング処理を行う。ここで、第一マッチング処理とは、ＥｖｅｎｔＦｏｒｍａｌに記載された検索条件をＥｖｅｎｔＡｃｔｕａｌが満たすか否かを判定する処理である。第一マッチング処理の詳細については後述する。第一記憶部６３は、通信部６１が受信したＥｖｅｎｔＦｏｒｍａｌとＥｖｅｎｔＡｃｔｕａｌとを記憶する。
【００２８】
第二マッチング処理部６４は、通信部６１が端末からＣｏｍｍａｎｄＦｏｒｍａｌ及び送信元端末情報を受信すると、当該ＣｏｍｍａｎｄＦｏｒｍａｌと当該送信元端末情報とを関連付けて第二記憶部６５に書き込むとともに、当該ＣｏｍｍａｎｄＦｏｒｍａｌと第二記憶部６５に記憶されているＣｏｍｍａｎｄＡｃｔｕａｌとの第二マッチング処理を行う。また、第二マッチング処理部６４は、通信部６１が端末からＣｏｍｍａｎｄＡｃｔｕａｌ及び送信元端末情報を受信すると、当該ＣｏｍｍａｎｄＡｃｔｕａｌと当該送信元端末情報とを関連付けて第二記憶部６５に書き込むとともに、当該ＣｏｍｍａｎｄＡｃｔｕａｌと第二記憶部６５に記憶されているＣｏｍｍａｎｄＦｏｒｍａｌとの第二マッチング処理を行う。第二マッチング処理とは、ＣｏｍｍａｎｄＡｃｔｕａｌに記載された検索条件をＣｏｍｍａｎｄＦｏｒｍａｌが満たすか否かを判定する処理である。第二マッチング処理の詳細については後述する。第二記憶部６５は、通信部６１が受信したＣｏｍｍａｎｄＦｏｒｍａｌとＣｏｍｍａｎｄＡｃｔｕａｌとを記憶する。
【００２９】
なお、図１では簡単のためサーバ端末１０、センサ端末２０、アクチュエータ端末３０を１台ずつのみ記載したが、それぞれ複数台設けてもよい。また、図１ではプログラム１２をサーバ端末１０上で、プログラム２１をセンサ端末２０上で、プログラム３２をアクチュエータ端末３０上で動作させているが、本発明はこれに限らず、プログラム１２，２１，３２を間接通信装置６０上で動作させてもよい。この場合、各プログラム１２，２１，３２は、ネットワークを介さず直接通信部６１にユータプルを出力する。
【００３０】
図２は、本実施形態によるユータプルのデータ例を示す概略図である。
図示するように、本実施形態によるユータプルには、イベント型通信における送信端末の書き込み用ユータプルであるイベント型書き込み用ユータプル（ＥｖｅｎｔＡｃｔｕａｌ）１００と、イベント型通信における受信端末の読み出し用ユータプルであるイベント型読み出しユータプル（ＥｖｅｎｔＦｏｒｍａｌ）２００と、コマンド型通信における送信端末の書き込み用ユータプルであるコマンド型書き込み用ユータプル（ＣｏｍｍａｎｄＡｃｔｕａｌ）３００と、コマンド型通信における受信端末の読み出し用ユータプルであるコマンド型読み出し用ユータプル（ＣｏｍｍａｎｄＦｏｒｍａｌ）４００との計４種類がある。各ユータプルには、各プログラムが自由に記述した多用なＫｅｙ−Ｖａｌｕｅ Ｐａｉｒが含まれる。Ｋｅｙ−Ｖａｌｕｅ Ｐａｉｒは、キーと値の組であり、「キー＝値」で表現される。また、各ユータプルのＫｅｙ−Ｖａｌｕｅ Ｐａｉｒにおける値には、範囲を示す値を含ませることが可能である。
【００３１】
図示する例では、ＥｖｅｎｔＡｃｔｕａｌ１００には、「センサ種別＝温度」と、「メッセージタイプ＝定期取得」と、「緯度＝１２６０３０」と、「経度＝５０１０１８」と、「時刻＝２００８／１１／１１  １２：３４：５６」と、「センサＩＤ＝１２３４５６」と、「温度＝２０．０〜２０．２」との７つのＫｅｙ−Ｖａｌｕｅ Ｐａｉｒが含まれる。また、ＥｖｅｎｔＦｏｒｍａｌ２００には、「センサ種別＝温度」と、「緯度＝１２６０００〜１２６１００」と、「経度＝５０１０００〜５０１１００」と、「温度＝−∞〜∞」との４つのＫｅｙ−Ｖａｌｕｅ Ｐａｉｒが含まれる。また、ＣｏｍｍａｎｄＡｃｔｕａｌ３００には、「アクチュエータ種別＝ライト」と、「メッセージタイプ＝照度操作」と、「アクチュエータＩＤ＝５４３２０〜５４３３０」と、「照度＝１００」との４つのＫｅｙ−Ｖａｌｕｅ Ｐａｉｒが含まれる。また、ＣｏｍｍａｎｄＦｏｒｍａｌ４００には、「アクチュエータ種別＝ライト」と、「アクチュエータＩＤ＝５４３２１」と、「照度＝−∞〜∞」との３つのＫｅｙ−Ｖａｌｕｅ Ｐａｉｒが含まれる。ここで、「センサ種別」はセンサの種別を表す情報であり、センサの検知対象などの情報を示す。「アクチュエータ種別」はアクチュエータの種別を表す情報であり、アクチュエータの動作対象などの情報を示す。「メッセージタイプ」は、当該ユータプルのデータの取得、生成や指示などの処理形態を表す情報であり、センサ端末２０において一定時間毎に取得される定期取得や、アクチュエータ端末３０において指定した動作を要求する動作要求などの情報を示す。「センサＩＤ」は、センサ端末２０の識別情報となる各端末固有の識別符号を表す。「アクチュエータＩＤ」は、アクチュエータ端末３０の識別情報となる各端末固有の識別符号を表す。「温度」は、センサデータである。「照度」はコマンドデータである。
【００３２】
次に、図３及び図４を参照して、間接通信装置６０による第一マッチング処理について説明する。図３は、イベント型書き込み用ユータプルを受信した際の第一マッチング処理の手順を示すフローチャートである。
まず、ステップＳ４−１において、通信部６１が端末（主に、センサ端末２０）からＥｖｅｎｔＡｃｔｕａｌを受信する。次に、ステップＳ４−２において、第一マッチング処理部６２が、変数ｉに１を代入する。そして、ステップＳ４−３において、第一マッチング処理部６２は、第一記憶部６３に記憶されているＥｖｅｎｔＦｏｒｍａｌの数N１よりｉが大きいか否かを判定する。ｉがＮ１より大きい場合には、処理を終了する。
【００３３】
一方、ｉがＮ１以下である場合には、ステップＳ４−４において、第一マッチング処理部６２は、第一記憶部６３に記憶されているｉ番目のＥｖｅｎｔＦｏｒｍａｌと受信したＥｖｅｎｔＡｃｔｕａｌを比較する。このとき、第一マッチング処理部６２は、ＥｖｅｎｔＦｏｒｍａｌ内に記述された全てのＫｅｙ−Ｖａｌｕｅ Ｐａｉｒと、当該Ｋｅｙ−Ｖａｌｕｅ Ｐａｉｒに対応するＥｖｅｎｔＡｃｔｕａｌ内に記述されたＫｅｙ−Ｖａｌｕｅ Ｐａｉｒとを比較する。そして、ステップＳ４−５において、第一マッチング処理部６２は、比較した結果、マッチするか否かを判定する。ここで、第一マッチング処理部６２は、ＥｖｅｎｔＦｏｒｍａｌ内に記述された全てのＫｅｙ−Ｖａｌｕｅ Ｐａｉｒを検索条件とし、ＥｖｅｎｔＡｃｔｕａｌ内に記述されたＫｅｙ−Ｖａｌｕｅ Ｐａｉｒが検索条件を全て満たす場合に、マッチすると判定する。このとき、第一マッチング処理部６２は、検索条件のキーを含み、かつ、当該キーに対応する値が検索条件の値と「共通する範囲」を持つ場合に検索条件を満たすと判定する。つまり、第一マッチング処理部６２は、対応する２つのＫｅｙ−Ｖａｌｕｅ Ｐａｉｒの値の間に「共通する範囲」がある場合に条件を満たし、「共通する範囲」がない場合には条件を満たさないと判定する。「共通する範囲」とは、同じ値が含まれる範囲である。
【００３４】
具体的に、図２に示すＥｖｅｎｔＡｃｔｕａｌ１００とＥｖｅｎｔＦｏｒｍａｌ２００とを比較した場合を例に説明する。まず、第一マッチング処理部６２は、ＥｖｅｎｔＦｏｒｍａｌ２００内に記述された全てのＫｅｙ−Ｖａｌｕｅ Ｐａｉｒ「センサ種別＝温度」と、「緯度＝１２６０００〜１２６１００（１２６０００以上１２６１００以下）」と、「経度＝５０１０００〜５０１１００（５０１０００以上５０１１００以下）」と、「温度＝−∞〜∞（−∞以上∞以下）」とを検索条件とする。そして、第一マッチング処理部６２は、ＥｖｅｎｔＡｃｔｕａｌ１００における「センサ種別」の値「温度」が検索条件「センサ種別＝温度」と一致するため、「センサ種別」に関する条件を満たすと判定する。また、第一マッチング処理部６２は、ＥｖｅｎｔＡｃｔｕａｌ１００における「緯度」の値「１２６０３０」が検索条件「１２６０００以上１２６１００以下」と共通する範囲「１２６０３０」を持つため、「緯度」に関する条件を満たすと判定する。なお、共通する範囲「１２６０３０」は、1点であるが、始点と終点が同じ値である範囲と言える。また、第一マッピング処理部６２は、ＥｖｅｎｔＡｃｔｕａｌ１００における「経度」の値「５０１０１８」が検索条件「５０１０００以上５０１１００以下」と共通する範囲「５０１０１８」を持つため、「経度」に関する条件を満たすと判定する。また、ＥｖｅｎｔＡｃｔｕａｌ１００における「温度」の値「２０．０〜２０．２（２０．０以上２０．２以下）」が「−∞〜∞」と共通する範囲「２０．０〜２０．２」を持つため、「温度」に関する条件を満たすと判定する。これにより、検索条件を全て満たすため、第一マッチング処理部６２は、ＥｖｅｎｔＡｃｔｕａｌ１００とＥｖｅｎｔＦｏｒｍａｌ２００とがマッチすると判定する。
【００３５】
ステップＳ４−５にてマッチすると判定した場合には、ステップＳ４−６において、通信部６１が、ｉ番目のＥｖｅｎｔＦｏｒｍａｌを送信した端末（主に、サーバ端末１０）へ、受信したＥｖｅｎｔＡｃｔｕａｌを送信する。つまり、通信部６１は、第一マッチング処理部６２が検索条件を全て満たすと判定した場合に、前記ＥｖｅｎｔＦｏｒｍａｌを送信した端末へ、前記ＥｖｅｎｔＡｃｔｕａｌを送信する。一方、ステップＳ４−５にてマッチしないと判定した場合には、ステップＳ４−７において、第一マッチング処理部６２はｉに１を加算し、ステップＳ４−３へ戻る。
【００３６】
図４は、イベント型読み出し用ユータプルを受信した際の第一マッチング処理の手順を示すフローチャートである。
まず、ステップＳ５−１において、通信部６１が端末（主に、サーバ端末１０）からＥｖｅｎｔＦｏｒｍａｌを受信する。次に、ステップＳ５−２において、第一マッチング処理部６２が、変数ｉに１を代入する。そして、ステップＳ５−３において、第一マッチング処理部６２は、第一記憶部６３に記憶されているＥｖｅｎｔＡｃｔｕａｌの数N２よりｉが大きいか否かを判定する。ｉがＮ２より大きい場合には、処理を終了する。
【００３７】
一方、ｉがＮ２以下である場合には、ステップＳ５−４において、第一マッチング処理部６２は、第一記憶部６３に記憶されているｉ番目のＥｖｅｎｔＡｃｔｕａｌと、受信したＥｖｅｎｔＦｏｒｍａｌとを比較する。そして、ステップＳ５−５において、第一マッチング処理部６２は、比較した結果、マッチするか否かを判定する。ここで、比較及びマッチするか否かの判定は上述したステップＳ４−４及びＳ４−５と同様である。ステップＳ５−５にてマッチすると判定した場合には、ステップＳ５−６において、通信部６１が、受信したＥｖｅｎｔＦｏｒｍａｌを送信した端末（主に、サーバ端末１０）へ、ｉ番目のＥｖｅｎｔＡｃｔｕａｌを送信する。一方、ステップＳ５−５にてマッチしないと判定した場合には、ステップＳ５−７において、第一マッチング処理部６２はｉに１を加算し、ステップＳ５−３へ戻る。
【００３８】
次に、図５及び図６を参照して、間接通信装置６０による第二マッチング処理について説明する。図５は、コマンド型書き込み用ユータプルを受信した際の第二マッチング処理の手順を示すフローチャートである。
まず、ステップＳ６−１において、通信部６１が端末（主に、サーバ端末１０）からＣｏｍｍａｎｄＡｃｔｕａｌを受信する。次に、ステップＳ６−２において、第二マッチング処理部６４が、変数ｉに１を代入する。そして、ステップＳ６−３において、第二マッチング処理部６４は、第二記憶部６５に記憶されているＣｏｍｍａｎｄＦｏｒｍａｌの数N３よりｉが大きいか否かを判定する。ｉがＮ３より大きい場合には、処理を終了する。
【００３９】
一方、ｉがＮ３以下である場合には、ステップＳ６−４において、第二マッチング処理部６４は、第二記憶部６５に記憶されているｉ番目のＣｏｍｍａｎｄＦｏｒｍａｌと受信したＣｏｍｍａｎｄＡｃｔｕａｌとを比較する。このとき、第二マッチング処理部６４は、ＣｏｍｍａｎｄＦｏｒｍａｌ内に記述された全てのＫｅｙ−Ｖａｌｕｅ Ｐａｉｒと、当該Ｋｅｙ−Ｖａｌｕｅ Ｐａｉｒに対応するＣｏｍｍａｎｄＡｃｔｕａｌ内に記述されたＫｅｙ−Ｖａｌｕｅ Ｐａｉｒとを比較する。そして、ステップＳ６−５において、第二マッチング処理部６４は、比較した結果、マッチするか否かを判定する。ここで、第二マッチング処理部６４は、ＣｏｍｍａｎｄＡｃｔｕａｌ内に記述されたＫｅｙ−Ｖａｌｕｅ Ｐａｉｒ のうち、ＣｏｍｍａｎｄＦｏｒｍａｌ内に記述されたキーを持つ全てのＫｅｙ−Ｖａｌｕｅ Ｐａｉｒを検索条件とし、ＣｏｍｍａｎｄＦｏｒｍａｌ内に記述されたＫｅｙ−Ｖａｌｕｅ Ｐａｉｒが検索条件を全て満たす場合に、マッチすると判定する。このとき、第二マッチング処理部６４は、対応する２つのＫｅｙ−Ｖａｌｕｅ Ｐａｉｒ の値の間に「共通する範囲」がある場合に条件を満たし、「共通する範囲」がない場合には条件を満たさないと判定する。
【００４０】
具体的に、図２に示すＣｏｍｍａｎｄＡｃｔｕａｌ３００とＣｏｍｍａｎｄＦｏｒｍａｌ４００とを比較した場合を例に説明する。まず、第二マッチング処理部６４は、ＣｏｍｍａｎｄＡｃｔｕａｌ３００内に記述されたＫｅｙ−Ｖａｌｕｅ Ｐａｉｒ のうち、ＣｏｍｍａｎｄＦｏｒｍａｌ４００内に記述されたキーを持つＫｅｙ−Ｖａｌｕｅ Ｐａｉｒ「アクチュエータ種別＝ライト」と、「アクチュエータＩＤ＝５４３２０〜５４３３０（５４３２０以上５４３３０以下）」と、「照度＝１００」とを検索条件とする。そして、第二マッチング処理部６４は、ＣｏｍｍａｎｄＦｏｒｍａｌ４００における「アクチュエータ種別」の値「ライト」が検索条件「アクチュエータ種別＝ライト」と一致するため、「アクチュエータ種別」に関する条件を満たすと判定する。また、第二マッチング処理部６４は、ＣｏｍｍａｎｄＡｃｔｕａｌ３００における「アクチュエータＩＤ」の値「５４３２１」が検索条件「５４３２０以上５４３３０以下」と共通する範囲「５４３２１」を持つため、「アクチュエータＩＤ」に関する条件を満たすと判定する。また、第二マッチング処理部６４は、ＣｏｍｍａｎｄＡｃｔｕａｌ３００における「照度」の値「１００」が検索条件「−∞以上∞以下」と共通する範囲「１００」を持つため、「照度」に関する条件を満たすと判定する。
【００４１】
ステップＳ６−５にてマッチすると判定した場合には、ステップＳ６−６において、通信部６１が、ｉ番目のＣｏｍｍａｎｄＦｏｒｍａｌを送信した端末（主に、アクチュエータ端末３０）へ、受信したＣｏｍｍａｎｄＡｃｔｕａｌを送信する。つまり、通信部６１は、第二マッチング処理部６４が検索条件を全て満たすと判定した場合に、前記ＣｏｍｍａｎｄＦｏｒｍａｌを送信した端末へ、前記ＣｏｍｍａｎｄＡｃｔｕａｌ送信する。一方、ステップＳ６−５にてマッチしないと判定した場合には、ステップＳ６−７において、第二マッチング処理部６４はｉに１を加算し、ステップＳ６−３へ戻る。
【００４２】
図６は、コマンド型読み出し用ユータプルを受信した際の第二マッチング処理の手順を示すフローチャートである。
まず、ステップＳ７−１において、通信部６１が端末（主に、アクチュエータ端末３０）からＣｏｍｍａｎｄＦｏｒｍａｌを受信する。次に、ステップＳ７−２において、第二マッチング処理部６４が、変数ｉに１を代入する。そして、ステップＳ７−３において、第二マッチング処理部６４は、第二記憶部６５に記憶されているＣｏｍｍａｎｄＡｃｔｕａｌの数N４よりｉが大きいか否かを判定する。ｉがＮ４より大きい場合には、処理を終了する。
【００４３】
一方、ｉがＮ４以下である場合には、ステップＳ７−４において、第二マッチング処理部６４は、第二記憶部６５に記憶されているｉ番目のＣｏｍｍａｎｄＡｃｔｕａｌと受信したＣｏｍｍａｎｄＦｏｒｍａｌを比較する。そして、ステップＳ７−５において、第二マッチング処理部６４は、比較した結果、マッチするか否かを判定する。ここで、比較及びマッチするか否かの判定は上述したステップＳ６−４及びＳ６−５と同様である。
【００４４】
ステップＳ７−５にてマッチすると判定した場合には、ステップＳ７−６において、通信部６１が、受信したＣｏｍｍａｎｄＦｏｒｍａｌを送信した端末（例えば、アクチュエータ端末３０）へ、ｉ番目のＣｏｍｍａｎｄＡｃｔｕａｌを送信する。一方、ステップＳ７−５にてマッチしないと判定した場合には、ステップＳ７−７において、第二マッチング処理部６４はｉに１を加算し、ステップＳ７−３へ戻る。
【００４５】
このように、本実施形態によれば、第一マッチング処理において、ＥｖｅｎｔＦｏｒｍａｌ内に記述された全てのＫｅｙ−Ｖａｌｕｅ Ｐａｉｒを検索条件としたことにより、ユーザが独自に定義したキーを検索条件として記述することができる。
また、第二マッチング処理において、ＣｏｍｍａｎｄＡｃｔｕａｌ内に記述されたＫｅｙ−Ｖａｌｕｅ Ｐａｉｒのうち、ＣｏｍｍａｎｄＦｏｒｍａｌ内に記述されたキーを持つ全てのＫｅｙ−Ｖａｌｕｅ Ｐａｉｒを検索条件としたことにより、ユーザが独自に定義したキーを検索条件として記述することができる。
また、第一マッチング処理及び第二マッチング処理において、Ｋｅｙ−Ｖａｌｕｅ Ｐａｉｒの値の間に「共通する範囲」がある場合にマッチすると判定することにより、検索対象となるＫｅｙ−Ｖａｌｕｅ Ｐａｉｒの値に範囲を示す値を記述することができる。さらに、コマンド型通信において、受信者（アクチュエータ端末３０のプログラム３２）が、自身がコマンドデータとして理解しうるＫｅｙ−Ｖａｌｕｅ ＰａｉｒをＣｏｍｍａｎｄＦｏｒｍａｌ内に指定することが可能である。例えば、速度を指定できるモータアクチュエータであれば、「ｓｐｅｅｄ＝−∞〜∞」というＫｅｙ−Ｖａｌｕｅ ＰａｉｒをＣｏｍｍａｎｄＦｏｒｍａｌ内に記述することにより、「ｓｐｅｅｄ」というキーを持つＣｏｍｍａｎｄＡｃｔｕａｌのみを選別して受信することが可能となる。
【００４６】
また、図３から６に示す各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、第一マッチング処理又は第二マッチング処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００４７】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００４８】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
例えば、本実施形態では、Ｋｅｙ−Ｖａｌｕｅ Ｐａｉｒの値に数値のみを使用したが、本発明はこれに限るものではなく、例えば文字列を用いてもよい。その場合も、文字列の辞書順を考えれば「共通する範囲」があるか否かを判定することが可能である。
【符号の説明】
【００４９】
１０…サーバ端末  １１…通信部  １２…プログラム  ２０…センサ端末  ２１…プログラム  ２２…通信部  ３０…アクチュエータ端末  ３１…通信部  ３２…プログラム  ６０…間接通信装置  ６１…通信部  ６２…第一マッチング処理部  ６３…第一記憶部  ６４…第二マッチング処理部  ６５…第二記憶部
【図１】
0005467002.tif 000002
【図２】
0005467002.tif 000003
【図３】
0005467002.tif 000004
【図４】
0005467002.tif 000005
【図５】
0005467002.tif 000006
【図６】
0005467002.tif 000007