JP2010072718A - 間接通信システム、間接通信方法、及びプログラム - Google Patents

間接通信システム、間接通信方法、及びプログラム Download PDF

Info

Publication number
JP2010072718A
JP2010072718A JP2008236686A JP2008236686A JP2010072718A JP 2010072718 A JP2010072718 A JP 2010072718A JP 2008236686 A JP2008236686 A JP 2008236686A JP 2008236686 A JP2008236686 A JP 2008236686A JP 2010072718 A JP2010072718 A JP 2010072718A
Authority
JP
Japan
Prior art keywords
tuple
storage space
attribute
written
attribute condition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008236686A
Other languages
English (en)
Other versions
JP5463018B2 (ja
Inventor
Hironari Minami
裕也 南
Yutaka Arakawa
豊 荒川
Atsushi Yamamoto
淳 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Inc
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2008236686A priority Critical patent/JP5463018B2/ja
Publication of JP2010072718A publication Critical patent/JP2010072718A/ja
Application granted granted Critical
Publication of JP5463018B2 publication Critical patent/JP5463018B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

【課題】書き込み用Tuple(Actual)との不必要なマッチング処理を削減しマッチング処理の効率を向上させること。
【解決手段】第2のタプルを書き込む際に、第1のタプルの属性情報を当該第2のタプルの属性条件で検索して読み出し、第3のタプルの属性条件を当該第2のタプルの属性条件で検索して読み出し、この第3のタプルの登録端末に当該第2のタプルを通知し、第3のタプルを書き込む際に、第2のタプルの属性条件を当該第3のタプルの属性条件で検索して読み出し、この第2のタプルの登録端末に当該第3のタプルを通知し、第4のタプルの属性条件を当該第3のタプルの属性条件で検索して読み出し、第4のタプルの登録端末に当該第3のタプルを通知し、第4のタプルを書き込む際に、第3のタプルの属性条件を当該第4のタプルの属性条件で検索して読み出し、この第3のタプルの登録端末に当該第4のタプルを通知する。
【選択図】図4

Description

本発明は、タプル空間を利用した間接通信を行う間接通信システム、間接通信方法、及びプログラムに関する。
ユビキタスサービスなど複数の端末を用いたネットワークで提供されるサービスの開発・運用を効率化するためには、サービスを構成するプログラム/端末の追加・変更・削除に対して柔軟に対応できる通信プラットフォーム(通信網)が必要である。この通信プラットフォームの要求条件を満足する通信モデルの候補としてTupleSpace(タプル空間)(非特許文献1参照)がある。TupleSpaceでは複数のプログラム間で論理的に一つの空間を共有し、各プログラム同士は、その共有空間に対してデータを読み書きすることによって間接的に通信する。
TupleSpaceを用いた通信では、各端末あるいはサーバ上で動作するTupleSpace用のプログラム同士がTupleSpace(あるいはTupleStorage;タプルストレージ)に対してTuple(タプル;Key-Value Pair=キーと値の組)を読み書きすることで間接的に通信する。
具体的には送信端末の書き込み用Tuple(Actual;アクチュアル)と受信端末の読み出し用Tuple(Forma1;フォーマル)とのマッチング処理により通信が発生する。書き込み用Tuple(Actual)は、データと、そのデータの属性情報を有する。読み出し用Tuple(Formal)は、読み出されるデータの属性条件を有する。そして、読み出し用Tuple(Formal)の属性条件に該当する属性情報を有する書き込み用Tuple(Actual)がTupleSpaceに存在する場合には、読み出し用Tuple(Formal)を登録した受信端末へその旨が通知される。なお、以下の説明では、ある属性条件に該当する属性情報を有するTupleを検索する処理を「マッチング処理」という。また、以下の説明では、マッチング処理において属性条件に属性情報が適合することを「マッチングする」という。
図1にTupleSpaceの通信モデルの具体的な一例を示す。図1に示す通信モデルでは、サーバ端末1と、センサ端末2と、アクチュエータ端末3とが、ユビキタスネットーク4に接続されていて、各端末1〜3上で実行されているプログラム11、21、31および各端末1〜3あるいは図示していない他の端末内のメモリなどの記憶手段と、通信手段としてのユビキタスネットーク4とによって、各端末1〜3のプログラム11、21、31などの間で論理的に共有される一つの空間(メモリ空間)であるTupleSpace5が構成されている。プログラム同士がこの共有空間であるTupleSpace5に対してデータを読み書きすることで間接的に通信が行われる。
この図に示す例では、例えばセンサ端末2のプログラム21がTupleSpace5に登録した書き込み用Tuple(Actual;アクチュアル)61とサーバ端末1のプログラム11がTupleSpace5に登録した読み出し用Tuple(Formal;フォーマル)62とがマッチングした場合に、書き込み用Tuple(Actual)61がサーバ端末1のプログラム11によって読み出される。あるいは、アクチュエータ端末3のプログラム31がTupleSpace5に登録した読み出し用Tuple(Formal)63とサーバ端末1のプログラム11がTupleSpace5に登録した書き込み用Tuple(Actual)64とがマッチングした場合に、書き込み用Tuple(Actual)64がアクチュエータ端末30のプログラム31によって読み出されることになる。なお、Tupleの凡例を参照符号60で示した。
TulpleSpaceの通信モデルでは、TulpleSpaceを介して任意の二つの端末のプログラム問での通信が可能であり、それらの通信はすべて独立している。例えば、センサ端末とアクチュエータ端末のプログラム同士もTulpleSpaceを介して通信可能であるし、同一端末のプログラム同士もTulpleSpaceを介して通信可能である。また、センサ端末とサーバ端末のプログラム間の通信とサーバ端末とアクチュエータ端末のプログラム間の通信は独立して行われる。
なお、TulpleSpaceの通信モデルは、図1に示すように、センサ、アクチュエータ、サーバ等の各端末間のプログラム同士が、独立して通信を行う形態のほか、たとえば、サーバ端末を管理サーバとして用いてその管理サーバ上で実行されているプログラムを介して各端末が通信を行う形態をとることも可能である。この場合、たとえば、サーバ端末のプログラムがセンサ端末のプログラムとアクチュエータ端末のプログラムとの間の通信を仲介することで通信が行われる。設計者は、各プログラムの内容を変更することによって、どのような形態を採用するか決定することができる。
なお、TulpleSpaceの通信モデルを用いた通信システムには、下記の二つの特徴がある。
(特徴1)永続的な空間(TupleSpace)を介してデータ(Tuple)送受が行なわれるため、通信相手のプログラムが同時に動作している必要がない。
(特徴2)データ(Tuple)内容のマッチングにより宛先が決定されるため、通信相手のアドレスを事前に把握している必要がない。
しかしながら、このような従来のTupleSpaceの通信モデルを用いた通信システムでは、読み出し用Tuple(Formal)を登録する端末(受信端末)主導の通信となっており、書き込み用Tuple(Actual)を登録する端末(送信端末)が受信端末の存否を認識することや、送信端末が読み出し用Tuple(Formal)を読み出すことは実現されていなかった。
このような問題に対し、TeenyLIME(非特許文献2参照)は、探索用Tuple(Capability Tuple)を用いることによってこのような問題の解決を図っている。探索用Tuple(Capability Tuple)は、書き込み用Tuple(Actual)を登録する送信端末が生成し得るデータの属性情報を有する。探索用Tuple(Capability Tuple)の属性情報に読み出し用Tuple(Formal)の属性条件がマッチングした場合、探索用Tuple(Capability Tuple)を登録した送信端末によって、この読み出し用Tuple(Formal)が読み出される。このような探索用Tuple(Capability Tuple)を用いることによって、書き込み用Tuple(Actual)を登録しようとする端末(送信端末)は、この書き込み用Tuple(Actual)のデータを読み出す可能性のある読み出し用Tuple(Formal)を読み出すことや、このような読み出し用Tuple(Formal)を登録した受信端末の存否を確認することが可能となる。
TeenyLIMEによれば、送信端末が受信端末の存否を確認することができるため、受信端末が現れるまでデータを生成・送信する必要が無く、データの生成・送信の処理回数を低減させることによって、バッテリで駆動している端末の寿命(動作可能時間)を延伸することが可能となる。また、TeenyLIMEによれば、受信端末によって登録された読み出し用Tuple(Formal)を送信端末が読み出すことが可能であるため、受信端末は送信端末へのデータの要求とデータのFormalとを、単一の読み出し用Tuple(Formal)を登録することのみによって実現することが可能となる。
D. Gelernter, "Generative communication in linda," ACM Trans.Prog.Lang.Syst., vol.7, no.1, pp.80-112, Jan.l985. Paolo Costa, Luca Mottola, Amy L.Murphy, and Gian Pietro Picco, "Teeny LIME: Transiently Shared Tuple Space Middleware for Wireless Sensor Networks," In Proceedings of the International Workshop on Middleware for Sensor Networks, co-located with the 7th International Middleware Conference (Middleware), Melbourne, Australia, November, 2006.
しかしながら、TeenyLIMEでは、受信端末が読み出し用Tuple(Formal)を登録する度に、探索用Tuple(Capability Tuple)と新たに登録された読み出し用Tuple(Formal)とのマッチング処理のみならず、読み出す必要のない書き込み用Tuple(Actual)と新たに登録された読み出し用Tuple(Formal)とのマッチング処理までもが実行されてしまう。このような、読み出す必要のない書き込み用Tuple(Actual)とのマッチング処理は無駄となってしまう。
さらに、受信端末が、読み出し用Tuple(Formal)の登録によって書き込み用Tuple(Actual)の読出を意図していない場合(例えば、センサ端末2の設定変更の場合や、アクチュエータ端末3の制御命令の送信の場合)には、上述したように登録した際に行われるマッチング処理のみならず、その後に行われるマッチング処理(その後に新たに登録された書き込み用Tuple(Actual)とのマッチング処理)も無駄となってしまう。
TupleSpaceにおけるマッチング処理の効率は、検索対象となるTupleの総数、及びマッチング処理の発生頻度に依存する。また、TupleSpaceに存在するTupleの総数に占める各Tuple種別(TeenyLIMEにおいては、Actual、Formal、Capability Tuple、の三つのTuple種別がある)の割合は、書き込み用Tuple(Actual)の割合が多数を占める。これは、読み出し用Tuple(Formal)及び探索用Tuple(Capability Tuple)がプログラム毎に登録されるのに対し、書き込み用Tuple(Actual)はデータが生成される度に登録されるためである。このように、書き込み用Tuple(Actual)の数は大変多いため、上述したような書き込み用Tuple(Actual)との不必要なマッチング処理の発生により、TupleSpaceにおけるマッチング処理の効率が低下してしまうという問題があった。
上記事情に鑑み、本発明は、書き込み用Tuple(Actual)との不必要なマッチング処理を削減しマッチング処理の効率を向上させることを可能とする間接通信システム、間接通信方法、及びプログラムを提供することを目的とする。
[1]上記の課題を解決するため、本発明の一態様は、複数の端末が共通の通信網に接続され、前記通信網上に存在する記憶空間に対して属性名と属性値のペアであるタプルを読み書きすることで通信を行う間接通信システムであって、第1のデータと当該第1のデータの属性情報とを有する第1のタプルを管理する装置と、所望するデータの属性条件を有する第2のタプルを管理する装置と、所望する前記第2のタプルの属性条件、又は、任意の前記第2のタプルを管理する装置に読み出される第2のデータと当該第2のデータの属性情報を有する第3のタプルを管理する装置と、第3のデータと前記第3のタプルを指定するための属性条件を有する第4のタプルを管理する装置と、を備え、前記第1のタプルを管理する装置は、前記第1のタプルを前記記憶空間に書き込み、前記第2のタプルを管理する装置は、前記第2のタプルを前記記憶空間に書き込む場合に、前記記憶空間に書き込まれた前記第1のタプルの属性情報を当該第2のタプルの属性条件で検索し、検索された前記第1のタプルを読み出し、前記記憶空間に書き込まれた前記第3のタプルのうち属性条件が当該第2のタプルの属性条件と一致するものを検索し、検索された前記第3のタプルを読み出し、検索された前記第3のタプルを前記記憶空間に書き込んだ装置に当該第2のタプルを送信し、前記第3のタプルを管理する装置は、前記第3のタプルを前記記憶空間に書き込む場合に、前記記憶空間に書き込まれた前記第2のタプルのうち属性条件が当該第3のタプルの属性条件と一致するものを検索し、検索された前記第2のタプルを読み出し、検索された前記第2のタプルを前記記憶空間に書き込んだ装置に当該第3のタプルを送信し、前記記憶空間に書き込まれた前記第4のタプルのうち属性条件が当該第3のタプルの属性条件と一致するものを検索し、検索された前記第4のタプルを読み出し、検索された前記第4のタプルを前記記憶空間に書き込んだ装置に当該第3のタプルを送信し、前記第4のタプルを管理する装置は、前記第4のタプルを前記記憶空間に書き込む場合に、前記記憶空間に書き込まれた前記第3のタプルのうち属性条件が当該第4のタプルの属性条件と一致するものを検索し、検索された前記第3のタプルを読み出し、検索された前記第3のタプルを前記記憶空間に書き込んだ装置に当該第4のタプルを送信する。
[2]本発明の一態様は、上述した間接通信システムであって、前記第1のタプルを管理する装置は、前記第1のタプルを前記記憶空間に書き込む場合に、前記記憶空間に書き込まれた前記第2のタプルのうち属性条件が当該第1のタプルの属性情報を包含するものを検索し、検索された前記第2のタプルを前記記憶空間に書き込んだ装置に当該第1のタプルを送信することを特徴とする。
[3]本発明の一態様は、複数の端末が共通の通信網に接続され、前記通信網上に存在する記憶空間に対して属性名と属性値のペアであるタプルを読み書きすることで通信を行う間接通信システムにおいて、第1のデータと当該第1のデータの属性情報とを有する第1のタプルを管理する装置が、前記第1のタプルを前記記憶空間に書き込むステップと、所望するデータの属性条件を有する第2のタプルを管理する装置が、前記第2のタプルを前記記憶空間に書き込む場合に、前記記憶空間に書き込まれた前記第1のタプルの属性情報を当該第2のタプルの属性条件で検索し、検索された前記第1のタプルを読み出し、前記記憶空間に書き込まれた前記第3のタプルのうち属性条件が当該第2のタプルの属性条件と一致するものを検索し、検索された前記第3のタプルを読み出し、検索された前記第3のタプルを前記記憶空間に書き込んだ装置に当該第2のタプルを送信するステップと、所望する前記第2のタプルの属性条件、又は、任意の前記第2のタプルを管理する装置に読み出される第2のデータと当該第2のデータの属性情報を有する第3のタプルを管理する装置が、前記第3のタプルを前記記憶空間に書き込む場合に、前記記憶空間に書き込まれた前記第2のタプルのうち属性条件が当該第3のタプルの属性条件と一致するものを検索し、検索された前記第2のタプルを読み出し、検索された前記第2のタプルを前記記憶空間に書き込んだ装置に当該第3のタプルを送信し、前記記憶空間に書き込まれた前記第4のタプルのうち属性条件が当該第3のタプルの属性条件と一致するものを検索し、検索された前記第4のタプルを読み出し、検索された前記第4のタプルを前記記憶空間に書き込んだ装置に当該第3のタプルを送信するステップと、第3のデータと前記第3のタプルを指定するための属性条件を有する第4のタプルを管理する装置が、前記第4のタプルを前記記憶空間に書き込む場合に、前記記憶空間に書き込まれた前記第3のタプルのうち属性条件が当該第4のタプルの属性条件と一致するものを検索し、検索された前記第3のタプルを読み出し、検索された前記第3のタプルを前記記憶空間に書き込んだ装置に当該第4のタプルを送信するステップと、を含む間接通信方法である。
[4]本発明の一態様は、上述した間接通信方法であって、前記第1のタプルを管理する装置が、前記第1のタプルを前記記憶空間に書き込む場合に、前記記憶空間に書き込まれた前記第2のタプルのうち属性条件が当該第1のタプルの属性情報を包含するものを検索し、検索された前記第2のタプルを前記記憶空間に書き込んだ装置に当該第1のタプルを送信するステップをさらに含むことを特徴とする。
[5]本発明の一態様は、複数の端末が共通の通信網に接続され、前記通信網上に存在する記憶空間に対して属性名と属性値のペアであるタプルを読み書きすることで通信を行う間接通信システムにおいて、第1のデータと当該第1のデータの属性情報とを有する第1のタプルを前記記憶空間に書き込むステップと、所望するデータの属性条件を有する第2のタプルを前記記憶空間に書き込む場合に、前記記憶空間に書き込まれた前記第1のタプルの属性情報を当該第2のタプルの属性条件で検索し、検索された前記第1のタプルを読み出し、前記記憶空間に書き込まれた前記第3のタプルのうち属性条件が当該第2のタプルの属性条件と一致するものを検索し、検索された前記第3のタプルを読み出し、検索された前記第3のタプルを前記記憶空間に書き込んだ装置に当該第2のタプルを送信するステップと、所望する前記第2のタプルの属性条件、又は、任意の前記第2のタプルを管理する装置に読み出される第2のデータと当該第2のデータの属性情報を有する第3のタプルを前記記憶空間に書き込む場合に、前記記憶空間に書き込まれた前記第2のタプルのうち属性条件が当該第3のタプルの属性条件と一致するものを検索し、検索された前記第2のタプルを読み出し、検索された前記第2のタプルを前記記憶空間に書き込んだ装置に当該第3のタプルを送信し、前記記憶空間に書き込まれた前記第4のタプルのうち属性条件が当該第3のタプルの属性条件と一致するものを検索し、検索された前記第4のタプルを読み出し、検索された前記第4のタプルを前記記憶空間に書き込んだ装置に当該第3のタプルを送信するステップと、第3のデータと前記第3のタプルを指定するための属性条件を有する第4のタプルを前記記憶空間に書き込む場合に、前記記憶空間に書き込まれた前記第3のタプルのうち属性条件が当該第4のタプルの属性条件と一致するものを検索し、検索された前記第3のタプルを読み出し、検索された前記第3のタプルを前記記憶空間に書き込んだ装置に当該第4のタプルを送信するステップと、をコンピュータに実行させるためのプログラムである。
[6]本発明の一態様は、上述したプログラムであって、前記第1のタプルを前記記憶空間に書き込む場合に、前記記憶空間に書き込まれた前記第2のタプルのうち属性条件が当該第1のタプルの属性情報を包含するものを検索し、検索された前記第2のタプルを前記記憶空間に書き込んだ装置に当該第1のタプルを送信するステップをさらにコンピュータに実行させることを特徴とする。
本発明により、書き込み用Tuple(Actual)との不必要なマッチング処理を削減し、マッチング処理の効率を向上させることが可能となる。
本発明におけるTupleSpaceは、図1を参照して説明したタプル空間TupleSpaceの通信モデルを独自に拡張したものであり、タプル種別としてはactual及びformalに加えて、capable及びreachableが用いられる。
actual(第1のタプル)は、送信端末がTupleSpaceにデータを書き込む際に用いられ、データと当該データの属性情報(データ属性情報)とを有する。formal(第2のタプル)は、受信端末がTupleSpaceからactualを読み出すために用いられ、読み出されるactualが有するデータの属性条件を有する。capable(第3のタプル)は、TupleSpaceからformalを読み出すために用いられ、読み出されるformalが有する属性条件か、任意のformalによって読み出されうるデータと当該データのデータ属性情報を有する。reachable(第4のタプル)は、TupleSpaceからcapableを読み出すために用いられ、データと当該データを読み出すcapableを指定するための属性条件とを有する。
図2に本発明の実施の形態によるTupleSpaceの通信モデルを示す。上述したように、各端末上で動作するプログラム同士(110,210,310)はTupleSpace(あるいはTupleStorage)50に対してTuple(Key-Value Pair)を読み書きすることで間接的に通信する。なお、図2は本実施の形態の通信モデルを模式的に示したものであり、この通信モデルを実現する通信システムには各端末10〜30がそれぞれ複数台接続されても良い。
図2に示す通信モデルでは、サーバ端末10と、センサ端末20と、アクチュエータ端末30とが、ユビキタスネットーク40に接続されている。各端末10〜30上で実行されているプログラム110、210、310および各端末10〜30あるいは図示していない他の端末内のメモリなどの記憶手段と、通信手段としてのユビキタスネットーク40とによって、各端末10〜30のプログラム110、210、310などの間で論理的に共有される一つの空間(メモリ空間)であるTupleSpace50が構成されている。プログラム同士がこの共有空間であるTupleSpace50に対してデータを読み書きすることで、各端末間の通信が間接的に行われる。このようなTupleSpace50は、ユビキタスネットワーク40に接続された各端末の記憶領域のうち他の端末にアクセス可能(読み書き可能)に解放された記憶領域や、ユビキタスネットワーク40に接続され各端末10〜30によってアクセス可能(読み書き可能)に構成された記憶装置の記憶領域によって構成される。
なお、TulpleSpaceの通信モデルでは、TulpleSpace50を介して任意の二つの端末のプログラム問での通信が可能であり、それらの通信はすべて独立している。例えば、センサ端末20とアクチュエータ端末30のプログラム同士210と310は、TulpleSpace50を介して通信可能である。また、同一端末の異なるプログラム同士もTulpleSpace50を介して通信可能である。また、センサ端末20とサーバ端末10とのプログラム間の通信と、サーバ端末10とアクチュエータ端末30とのプログラム間の通信は独立して行われる。
また、TulpleSpace50の通信モデルは、図2に示すように、サーバ端末10、センサ端末20、アクチュエータ端末30等の各端末間のプログラム同士が独立して通信を行う形態のほか、他の通信形態によって実現されることも可能である。例えば、サーバ端末10が管理サーバとして動作することによってその管理サーバ上で実行されているプログラムを介して他の各端末が通信を行う形態をとることも可能である。この場合、サーバ端末10のプログラム110がセンサ端末20のプログラム210とアクチュエータ端末30のプログラム310との間の通信を仲介することによって、センサ端末20とアクチュエータ端末30との間の通信が実現される。TupleSpace50においてどのような形態が採用されるかは、設計者が適宜選択することができる。
図3は、各タプル種別の書式の具体例を表す図である。actualは、「date」、「position」、「address」、「subject」、「type」、「body」の項目を有する。「date」は、タイムスタンプ情報を表す項目であり、時刻情報を示す値が対応付けられる。「position」は、位置情報を表す項目であり、このactualをTupleSpace50に登録した端末(以下、「送信端末」という)の位置に関する情報を示す値が対応付けられる。「address」は、アドレス情報を表す項目であり、送信端末のアドレスを示す値が対応付けられる。ここで、アドレス情報とは、例えばネットワークにおける論理的なアドレス情報であっても良く、例えばIPアドレスやMACアドレスやネットワーク名などであっても良い。また、アドレス情報とは、例えば端末が設置された物理的な場所を表す情報であっても良く、例えば住所や建物名などであっても良い。「subject」は、端末の種別情報を表す項目であり、送信端末の端末種別を示す値が対応付けられる。「type」は、端末へのコマンドやイベントの種別を表すキーであり、それらを表す値が対応づけられている。「body」は、センサ出力などの「パラメータ」(あるいはデータ)を表すキーであり、プログラム間で規定された任意のフィールドの集合が対応づけられている。この「body」に設定される値が送信されるデータとなる。
formal、capable、reachableは、「date_range」、「position_range」、「address_range」、「subject(N-gram)」、「type(N-gram)」、「body」の項目を有する。「date_range」は、読み出し条件(読み出されるデータの属性条件)のタイムスタンプ情報を表す項目であり、時刻の範囲を示す情報を示す値が対応付けられる。「position_range」は、読み出し条件の位置情報を表す項目であり、読み出そうとするデータを有するactualをTupleSpace50に登録した端末(即ち送信端末)の位置の範囲に関する情報を示す値が対応付けられる。「address_range」は、読み出し条件のアドレス情報を表す項目であり、送信端末のアドレスの範囲を示す値が対応付けられる。「subject(N-gram)」は、読み出し条件の端末の種別情報を表す項目であり、送信端末の端末種別を示す値(部分一致を含む)が対応付けられる。「type(N-gram)」は、読み出し条件のコマンドやイベントの種別を表すキーであり、それらを表す値が対応づけられている。また、formal、capable、reachableは、それぞれ自身をTupleSpace50へ登録した端末(以下、「登録端末」という)に対してデータを送信するためのアドレスの情報も有する。他の端末は、formal、capable、reachableが有するこのアドレスの情報を参照することによって、このTupleをTupleSpace50に登録した端末に対してデータを送信すること(例えば、Tupleを通知することなど)が可能となる。また、formal、capable、reachableは、それぞれ自身がTupleSpace50へ登録された時刻に関する情報も有する。他の端末は、formal、capable、reachableそれぞれについて、いずれが最新のものであるかを判断する際に、この登録された時刻に関する情報を参照することによって判断を行う。
図4は、本発明のTupleSpaceにおける各タプル種別の関係を表す図である。図4において、publisher60、subscriber70、listener80、caster90は、それぞれ通信プラットフォームに対応するタプル種別を登録する主体、即ち図2におけるプログラムを表す。従って、図2におけるサーバ端末10、センサ端末20、アクチュエータ端末30は、それぞれpublisher60、subscriber70、listener80、caster90いずれか一つ又は複数のプログラムを備えることにより、TupleSpace50を介して間接的に通信を行う。なお、publisher60が搭載された端末が本発明における第1のタプルを管理する装置に相当し、subscriber70が搭載された端末が本発明における第2のタプルを管理する装置に相当し、listener80が搭載された端末が本発明における第3のタプルを管理する装置に相当し、caster90が搭載された端末が本発明における第4のタプルを管理する装置に相当する。
publisher60は、actualをTupleSpace50に登録するプログラムである。subscriber70は、formalをTupleSpace50に登録するプログラムである。listener80は、capableをTupleSpace50に登録するプログラムである。caster90は、reachableをTupleSpace50に登録するプログラムである。なお、複数のプログラムがまとまった一つのプログラムとして構成されても良い。
図4において、Data、Formality、Capable、Reachabilityは、それぞれプログラムが取り扱うデータ種別を表す。各データ種別の内容は、プログラムによってTupleSpace50に登録される際にそれぞれ対応するタプル種別に書式が変更される。
図4において、writeは、TupleSpace50へのTupleの登録(書き込み)処理を表す。readは、TupleSpace50からの能動的なTupleの読み出し処理を表す。takeは、TupleSpace50からの能動的なTupleの読み出し処理の亜種である移動処理を表す。soundは、TupleSpace50からの受動的なTupleの読み出し処理を表す。移動処理とは、TupleSpace50からTupleを読み出すのと同時に、TupleSpace50から当該Tupleを消去する処理である。各プログラム60〜90は、TupleSpace50からの通知の種別に基づいて、能動的処理(read及びtake)と、受動的処理(sound)とを区別して行う。また、readとtakeのいずれを行うべきかについては、formalを登録する際にsubscriber70が決定する。
図4において、matchingの矢印は、その矢印によって連結された二つのTupleの間でマッチング処理が行われることを表す。ここで、マッチング処理とは、属性条件に属性情報が適合するか否か、又は属性条件と属性条件とが適合するか否か、を判定する処理を表す。また、属性条件に属性情報が適合すること、又は属性条件と属性条件とが適合することをマッチングするという。矢印の向きは、マッチング処理の方向を表し、矢印の先のTupleにおける属性情報又は属性条件が、矢印の元のTupleにおける属性条件に包含されるか否か(適合するか否か)がマッチング処理によって判断される。
writeは、その主体に応じて、publish、subscribe、listen、castに分類される。publishは、publisher60がTupleSpace50にDataをactualとしてwriteする処理を表す。subscribeは、subscriber70がTupleSpace50にFormalityをformalとしてwriteする処理を表す。listenは、listener80がTupleSpace50にCapabilityをcapableとしてwriteする処理を表す。castは、caster90がTupleSpace50にReachabilityをreachableとしてwriteする処理を表す。
次に、各プログラム60〜90の動作について説明する。
publisher60は、publishの際に、actualの内容とその生存期間(limit)を設定する。生存期間は、そのactualの有効期間を表わす。生存期間が満了するまでの間、actualはformalのマッチング処理の対象となる。また、publisher60は、publishの際に、actualの属性情報に基づいてformalを逆検索する。
図5は、publisher60の動作例を表すフローチャートである。まず、publisher60は、登録しようとするactualをread又はtakeするformalを逆検索する(ステップS501)。具体的には、publisher60は、自身が登録しようとするactualの属性情報に適合する属性条件を有するformalを検索する。このようなformalが存在しない場合(ステップS502−NO)、publisher60は、actualをTupleSpace50に登録し(ステップS503)、処理を終了する。
一方、このようなformalが存在する場合(ステップS502−YES)、publisher60は、このformalをTupleSpace50に登録したsubscriber70に対し、自身が登録しようとしているTupleの通知を行う(ステップS504)。通知とは、Tupleの内容を送信することであり、Tupleがactualである場合は、actualのデータ、このデータの属性情報、actualの各設定内容(生存期間など)を送信することである。
次に、publisher60は、このformalの設定が、readであるかtakeであるかについて判定する。readである場合(ステップS505−NO)、publisher60は、actualをTupleSpace50に登録する(ステップS506)。一方、takeである場合(ステップS505−YES)、publisher60はactualをTupleSpace50に登録せずに処理を終了する。なお、takeについては後述する。
subscriber70は、subscribeの際に、formalの内容とその生存期間との設定、actual/capableのread/takeの設定、one/allの設定を行う。one/allの設定とは、通知されるTupleを、マッチングしたTupleの全てとするか(all)、マッチングしたTupleの内の一つ(本実施形態の場合は、最後にTupleSpace50に登録されたTuple(即ち最新のTuple))とするか(one)を設定することである。
図6は、subscriber70の動作例を表すフローチャートである。まず、subscriber70は、登録しようとするformalをreadする最新のcapableを逆検索する(ステップS601)。具体的には、subscriber70は、自身が登録しようとするformalの属性条件に適合する属性条件を有するcapableのうち最新のものを検索する。このようなcapableが存在する場合(ステップS602−YES)、subscriber70はこのcapableを登録したlistener80に対し、自身が登録しようとしているformalについて通知する(ステップS603)。
このようなcapableが存在しない場合(ステップS602−NO)、又はステップS603の処理の後、subscriber70は、自身が登録しようとしているformalの設定がallであるか否か判断する。設定がallである場合(ステップS604−YES)、subscriber70は、登録しようとするformalの属性条件にマッチングする全てのactual及びcapableを検索する(ステップS605)。
次に、subscriber70は、マッチングしたcapableのうち、quietの設定がされているものを除外し(ステップS606)、残った全てのactual及びcapableをTupleSpace50から読み出す(ステップS607)。そして、subscriber70は、読み出したactual及びcapableそれぞれについてtake設定がなされているか否かを判断し、takeの設定がされているactual及びcapableをTupleSpace50から削除する(ステップS608−YES,ステップS609)。このとき、subscriber70は、takeの設定がされていないactual及びcapableについては削除を行わない(ステップS608−NO)。そして、subscriber70は、formalをTupleSpace50に登録して処理を終了する(ステップS610)。
ステップS604の処理において、設定がallでない場合(ステップS604−NO)、subscriber70は、自身が登録しようとしているformalとマッチングするactualか、又はnoise設定のcapableのうち最後に登録されたものを検索する(ステップS611)。このようなTupleが存在しなかった場合(ステップS612−NO)、subscriber70はformalをTupleSpace50に登録して処理を終了する(ステップS610)。
ステップS612においてTupleが存在した場合(ステップS612−YES)、subscriber70は、この検索されたTupleを読み出す(ステップS613)。そして、subscriber70は、読み出したactual及びcapableそれぞれについてtake設定か否かを判断し、takeの設定がされているactual及びcapableをTupleSpace50から削除し処理を終了する(ステップS614−YES,ステップS615)。このとき、subscriber70は、takeの設定がされていないactual及びcapableについては削除を行わずに処理を終了する(ステップS614−NO)。
listener80は、listenの際に、capableの内容とその生存期間との設定、one/allの設定、capableの受動的な読み出しを許可するか否か(noise/quiet)の設定を行う。capableがquietに設定されると、subscriber70とcaster90がTupleSpace50におけるcapableを検索・読み出しする際に、このcapableは検索されたとしても読み出されない。
図7は、listener80の動作例を表すフローチャートである。まず、listener80は、自身が登録しようとするcapableの設定がnoiseであるか否か判断する(ステップS701)。設定がnoiseである場合(ステップS701−YES)、listener80は、登録しようとするcapableをread又はtakeする最新のformalを逆検索する(ステップS702)。具体的には、listener80は、自身が登録しようとするcapableの属性条件に適合する属性条件を有する最新のformalを検索する。このようなformalが見つかった場合(ステップS703−YES)、listener80は、このformalをTupleSpace50に登録したsubscriber70に対し、登録しようとするcapableを通知する(ステップS704)。そして、listener80は、登録しようとするcapableがtake設定である場合には(ステップS705)、このcapableをTupleSpace50に登録することなく処理を終える。
ステップS701においてnoise設定でない場合(ステップS701−NO)、又はステップS703において逆検索の対象となるformalが存在しない場合(ステップS703−NO)、又はステップS705においてtake設定でない場合(ステップS705−NO)、listener80は、登録しようとするcapableがall設定であるか否か判断する(ステップS706)。all設定である場合(ステップS706−YES)、listener80は、登録しようとするcapableとマッチングする全てのformal及びreachableを検索する(ステップS707)。listener80は、マッチングした全てのformal及びreachableを読み出す(ステップS708)。そして、listener80は、capableをTupleSpace50に登録し(ステップS709)、処理を終了する。
ステップS706において、登録しようとするcapableがall設定でない場合(ステップS706−NO)、listener80は、登録しようとするcapableとマッチングするformal及びreachableのうち、最後に登録されたものを検索する(ステップS710)。このようなTupleが存在しない場合(ステップS711−NO)、listener80は、capableをTupleSpace50に登録し(ステップS709)、処理を終了する。一方、このようなTupleが存在する場合(ステップS711−YES)、listener80は、このTupleを読み出し(ステップS712)、capableをTupleSpace50に登録することなく処理を終了する。
caster90は、castの際に、reachableの内容とその生存期間と通知されるcapable数の設定を行う。通知されるcapable数は、データを受信するlistener80の数を表し、reachableの属性条件に基づくanycast/multicastを行うことができる。
図8は、caster90の動作例を表すフローチャートである。まず、caster90は、自身が登録しようとするreachableをreadする最新のcapableを逆検索する(ステップS801)。具体的には、caster90は、自身が登録しようとするreachableの属性条件に適合する属性条件を有するcapableを検索する。このようなcapableが存在する場合(ステップS802−YES)、caster90は、このcapableを登録したlistener80に対し、自身が登録しようとするreachableを通知する(ステップS803)。
このようなcapableが存在しない場合(ステップS802−NO)、又はステップS803の処理の後、caster90は、自身が登録しようとしているreachableの設定がallであるか否か判断する。設定がallである場合(ステップS804−YES)、caster90は、登録しようとするreachableの属性条件にマッチングする全てのcapableを検索する(ステップS805)。
次に、caster90は、マッチングしたcapableのうち、quietの設定がされているものを除外し(ステップS806)、残った全てのcapableをTupleSpace50から読み出す(ステップS807)。そして、caster90は、読み出したcapableそれぞれについてtake設定か否かを判断し、takeの設定がされているcapableをTupleSpace50から削除する(ステップS808−YES,ステップS809)。このとき、caster90は、takeの設定がされていないcapableについては削除を行わない(ステップS808−NO)。そして、caster90は、reachableをTupleSpace50に登録して処理を終了する(ステップS810)。
ステップS804の処理において、設定がallでない場合(ステップS804−NO)、caster90は、自身が登録しようとしているreachableとマッチングし且つnoise設定のcapableのうち最後に登録されたものを検索する(ステップS811)。このようなTupleが存在しなかった場合(ステップS812−NO)、caster90はreachableをTupleSpace50に登録して処理を終了する(ステップS810)。
ステップS812においてTupleが存在した場合(ステップS812−YES)、caster90は、この検索されたTupleを読み出す(ステップS813)。そして、caster90は、読み出したcapableそれぞれについてtake設定か否かを判断し、takeの設定がされているcapableをTupleSpace50から削除し処理を終了する(ステップS814−YES,ステップS815)。このとき、caster90は、takeの設定がされていないcapableについては削除を行わずに処理を終了する(ステップS814−NO)。
従来のTeenyLIMEでは、本発明におけるactual、formal、capableに類似するTupleである、actual、formal、ctが用いられていたが、本発明におけるreachableに類似するTupleは用いられていなかった。そのため、送信端末主導の通信を効率的に実現できていなかった。即ち、本発明によれば、GET処理をformalを登録することのみによって実現することが可能となり、それに伴いTupleSpace50に登録されるTupleの総数を削減させ、マッチング処理の発生頻度を抑えることが可能となった。また、reachableのマッチング処理の対象からactualを除くことにより、即ちreachableのマッチング処理の対象からTupleSpace50に占める割合が支配的なTupleを除くことにより、送信端末主導の通信を効率的に実現することが可能となった。さらに、reachableとformalとを同じデータ種別(Formality)として扱うことによって、プログラムを配備する端末の実装規模を縮小させることが可能となった。
また、本発明により、TeenyLIMEにおけるメリットをそのまま享受することが可能であり、さらには、送信端末主導のデータ通信と受信端末主導のデータ通信とをそれぞれ独立に実現させることが可能となる。また、サーバ端末からセンサ/アクチュエータ端末へデータを送信する際に、当該データをどのセンサ/アクチュエータ端末が受信すべきか、各センサ/アクチュエータ端末がどのデータを受信すべきかの指定をサーバ端末で行うことが可能となる。また、受信端末の存否確認、送信端末へのデータ要求、通常のデータの読み出しにおけるマッチング処理をそれぞれ独立させることによって検索効率の向上を図ることが可能となる。さらに、送信端末へ受信端末のTupleを通知することによって、データがどの受信端末に読み出されたかを判断することが可能となる。
<変形例>
図4においては、listener80がreachableとformalとを同じデータ種別(Formality)としてreadしているが、listener80はreachableをReachabilityとして読み出しても良い。また、図4においては、listener90がcapableとformalとの二つのTuple種別だけを処理すれば良く、caster90としての役割を必要としないプログラムを配備する端末の実装規模を縮小することが可能となる。
また、図6のステップS601の処理において、subscriber70は、noise設定されたcapableのみを検索の対象とし、このようなcapableを登録したlistener80に対してステップS603の処理においてformalを通知しても良い。
また、subscriber70は、subscribeの際に、formalの受動的な読み出しを許可するか否か(noise/quiet)の設定を行っても良い。formalがquietに設定されると、listener80が図7のステップS707の処理においてTupleSpace50におけるformalを検索しステップS708の処理において読み出しする際に、このformalは検索されたとしてもlistener80によって読み出されない。即ち、この場合、listener80は、図7のステップS708の処理において、noise設定されたformalを読み出し、quiet設定されたformalは読み出さない。
また、図7のステップS708の処理において、listener80は、noise設定されたcapableのみを検索の対象とし、このようなcapableを登録したlistener80に対してステップS603の処理においてformalを通知しても良い。
上述した実施形態における各端末の機能をコンピュータで実現するようにしても良い。その場合、これらの各機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
TupleSpaceの通信モデルの具体的な一例を表す図である。 本発明の実施の形態によるTupleSpaceの通信モデルを表す図である。 各タプル種別の書式の具体例を表す図である。 本発明のTupleSpaceにおける各タプル種別の関係を表す図である。 publisherの動作例を表すフローチャートである。 subscriberの動作例を表すフローチャートである。 listenerの動作例を表すフローチャートである。 casterの動作例を表すフローチャートである。
符号の説明
10…サーバ端末, 20…センサ端末, 30…アクチュエータ端末, 110,210,310…プログラム, 40…ユビキタスネットワーク, 50…TupleSpace, 60…publisher, 70…subscriber, 80…listener, 90…caster

Claims (6)

  1. 複数の端末が共通の通信網に接続され、前記通信網上に存在する記憶空間に対して属性名と属性値のペアであるタプルを読み書きすることで通信を行う間接通信システムであって、
    第1のデータと当該第1のデータの属性情報とを有する第1のタプルを管理する装置と、
    所望するデータの属性条件を有する第2のタプルを管理する装置と、
    所望する前記第2のタプルの属性条件、又は、任意の前記第2のタプルを管理する装置に読み出される第2のデータと当該第2のデータの属性情報を有する第3のタプルを管理する装置と、
    第3のデータと前記第3のタプルを指定するための属性条件を有する第4のタプルを管理する装置と、
    を備え、
    前記第1のタプルを管理する装置は、前記第1のタプルを前記記憶空間に書き込み、
    前記第2のタプルを管理する装置は、前記第2のタプルを前記記憶空間に書き込む場合に、前記記憶空間に書き込まれた前記第1のタプルの属性情報を当該第2のタプルの属性条件で検索し、検索された前記第1のタプルを読み出し、前記記憶空間に書き込まれた前記第3のタプルのうち属性条件が当該第2のタプルの属性条件と一致するものを検索し、検索された前記第3のタプルを読み出し、検索された前記第3のタプルを前記記憶空間に書き込んだ装置に当該第2のタプルを送信し、
    前記第3のタプルを管理する装置は、前記第3のタプルを前記記憶空間に書き込む場合に、前記記憶空間に書き込まれた前記第2のタプルのうち属性条件が当該第3のタプルの属性条件と一致するものを検索し、検索された前記第2のタプルを読み出し、検索された前記第2のタプルを前記記憶空間に書き込んだ装置に当該第3のタプルを送信し、前記記憶空間に書き込まれた前記第4のタプルのうち属性条件が当該第3のタプルの属性条件と一致するものを検索し、検索された前記第4のタプルを読み出し、検索された前記第4のタプルを前記記憶空間に書き込んだ装置に当該第3のタプルを送信し、
    前記第4のタプルを管理する装置は、前記第4のタプルを前記記憶空間に書き込む場合に、前記記憶空間に書き込まれた前記第3のタプルのうち属性条件が当該第4のタプルの属性条件と一致するものを検索し、検索された前記第3のタプルを読み出し、検索された前記第3のタプルを前記記憶空間に書き込んだ装置に当該第4のタプルを送信する、
    間接通信システム。
  2. 前記第1のタプルを管理する装置は、前記第1のタプルを前記記憶空間に書き込む場合に、前記記憶空間に書き込まれた前記第2のタプルのうち属性条件が当該第1のタプルの属性情報を包含するものを検索し、検索された前記第2のタプルを前記記憶空間に書き込んだ装置に当該第1のタプルを送信することを特徴とする、請求項1に記載の間接通信システム。
  3. 複数の端末が共通の通信網に接続され、前記通信網上に存在する記憶空間に対して属性名と属性値のペアであるタプルを読み書きすることで通信を行う間接通信システムにおいて、
    第1のデータと当該第1のデータの属性情報とを有する第1のタプルを管理する装置が、前記第1のタプルを前記記憶空間に書き込むステップと、
    所望するデータの属性条件を有する第2のタプルを管理する装置が、前記第2のタプルを前記記憶空間に書き込む場合に、前記記憶空間に書き込まれた前記第1のタプルの属性情報を当該第2のタプルの属性条件で検索し、検索された前記第1のタプルを読み出し、前記記憶空間に書き込まれた前記第3のタプルのうち属性条件が当該第2のタプルの属性条件と一致するものを検索し、検索された前記第3のタプルを読み出し、検索された前記第3のタプルを前記記憶空間に書き込んだ装置に当該第2のタプルを送信するステップと、
    所望する前記第2のタプルの属性条件、又は、任意の前記第2のタプルを管理する装置に読み出される第2のデータと当該第2のデータの属性情報を有する第3のタプルを管理する装置が、前記第3のタプルを前記記憶空間に書き込む場合に、前記記憶空間に書き込まれた前記第2のタプルのうち属性条件が当該第3のタプルの属性条件と一致するものを検索し、検索された前記第2のタプルを読み出し、検索された前記第2のタプルを前記記憶空間に書き込んだ装置に当該第3のタプルを送信し、前記記憶空間に書き込まれた前記第4のタプルのうち属性条件が当該第3のタプルの属性条件と一致するものを検索し、検索された前記第4のタプルを読み出し、検索された前記第4のタプルを前記記憶空間に書き込んだ装置に当該第3のタプルを送信するステップと、
    第3のデータと前記第3のタプルを指定するための属性条件を有する第4のタプルを管理する装置が、前記第4のタプルを前記記憶空間に書き込む場合に、前記記憶空間に書き込まれた前記第3のタプルのうち属性条件が当該第4のタプルの属性条件と一致するものを検索し、検索された前記第3のタプルを読み出し、検索された前記第3のタプルを前記記憶空間に書き込んだ装置に当該第4のタプルを送信するステップと、
    を含む間接通信方法。
  4. 前記第1のタプルを管理する装置が、前記第1のタプルを前記記憶空間に書き込む場合に、前記記憶空間に書き込まれた前記第2のタプルのうち属性条件が当該第1のタプルの属性情報を包含するものを検索し、検索された前記第2のタプルを前記記憶空間に書き込んだ装置に当該第1のタプルを送信するステップをさらに含むことを特徴とする、請求項3に記載の間接通信方法。
  5. 複数の端末が共通の通信網に接続され、前記通信網上に存在する記憶空間に対して属性名と属性値のペアであるタプルを読み書きすることで通信を行う間接通信システムにおいて、
    第1のデータと当該第1のデータの属性情報とを有する第1のタプルを前記記憶空間に書き込むステップと、
    所望するデータの属性条件を有する第2のタプルを前記記憶空間に書き込む場合に、前記記憶空間に書き込まれた前記第1のタプルの属性情報を当該第2のタプルの属性条件で検索し、検索された前記第1のタプルを読み出し、前記記憶空間に書き込まれた前記第3のタプルのうち属性条件が当該第2のタプルの属性条件と一致するものを検索し、検索された前記第3のタプルを読み出し、検索された前記第3のタプルを前記記憶空間に書き込んだ装置に当該第2のタプルを送信するステップと、
    所望する前記第2のタプルの属性条件、又は、任意の前記第2のタプルを管理する装置に読み出される第2のデータと当該第2のデータの属性情報を有する第3のタプルを前記記憶空間に書き込む場合に、前記記憶空間に書き込まれた前記第2のタプルのうち属性条件が当該第3のタプルの属性条件と一致するものを検索し、検索された前記第2のタプルを読み出し、検索された前記第2のタプルを前記記憶空間に書き込んだ装置に当該第3のタプルを送信し、前記記憶空間に書き込まれた前記第4のタプルのうち属性条件が当該第3のタプルの属性条件と一致するものを検索し、検索された前記第4のタプルを読み出し、検索された前記第4のタプルを前記記憶空間に書き込んだ装置に当該第3のタプルを送信するステップと、
    第3のデータと前記第3のタプルを指定するための属性条件を有する第4のタプルを前記記憶空間に書き込む場合に、前記記憶空間に書き込まれた前記第3のタプルのうち属性条件が当該第4のタプルの属性条件と一致するものを検索し、検索された前記第3のタプルを読み出し、検索された前記第3のタプルを前記記憶空間に書き込んだ装置に当該第4のタプルを送信するステップと、
    をコンピュータに実行させるためのプログラム。
  6. 前記第1のタプルを前記記憶空間に書き込む場合に、前記記憶空間に書き込まれた前記第2のタプルのうち属性条件が当該第1のタプルの属性情報を包含するものを検索し、検索された前記第2のタプルを前記記憶空間に書き込んだ装置に当該第1のタプルを送信するステップをさらにコンピュータに実行させることを特徴とする、請求項5に記載のプログラム。
JP2008236686A 2008-09-16 2008-09-16 間接通信システム、間接通信方法、及びプログラム Expired - Fee Related JP5463018B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008236686A JP5463018B2 (ja) 2008-09-16 2008-09-16 間接通信システム、間接通信方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008236686A JP5463018B2 (ja) 2008-09-16 2008-09-16 間接通信システム、間接通信方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2010072718A true JP2010072718A (ja) 2010-04-02
JP5463018B2 JP5463018B2 (ja) 2014-04-09

Family

ID=42204472

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008236686A Expired - Fee Related JP5463018B2 (ja) 2008-09-16 2008-09-16 間接通信システム、間接通信方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP5463018B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09305420A (ja) * 1996-05-20 1997-11-28 Mitsubishi Electric Corp タプルスペース通信の制御装置および試験装置と、その制御方法および試験方法
JP2009176141A (ja) * 2008-01-25 2009-08-06 Nippon Telegr & Teleph Corp <Ntt> ネットワーク分散共有システム、ネットワーク分散共有方法、およびネットワーク分散共有プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09305420A (ja) * 1996-05-20 1997-11-28 Mitsubishi Electric Corp タプルスペース通信の制御装置および試験装置と、その制御方法および試験方法
JP2009176141A (ja) * 2008-01-25 2009-08-06 Nippon Telegr & Teleph Corp <Ntt> ネットワーク分散共有システム、ネットワーク分散共有方法、およびネットワーク分散共有プログラム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JPN6013015612; Paolo Costa et al.: '"Developing Sensor Network Applications Using the TeenyLIME Middleware"' [online] , 2006, pages:1-18 *
JPN6013015615; Paolo Costa et al.: '"Programming Wireless Sensor Networks with the TeenyLIME Middleware"' [online] , 2007, pages:1-20 *
JPN7012003120; Paolo Costa et al.: '"TeenyLIME: Transiently Shared Tuple Space Middleware for Wireless Sensor Networks"' MidSens '06 Proceedings of the international workshop on Middleware for sensor networks , 20061201, pages: 43-48, ACM *

Also Published As

Publication number Publication date
JP5463018B2 (ja) 2014-04-09

Similar Documents

Publication Publication Date Title
EP2833581B1 (en) Method and device for supporting content subscription in content network
US20170364572A1 (en) Method and system for providing a synchronization service
JP5847185B2 (ja) コンテンツ中心のネットワーク環境でグループ変更に関する情報を用いるコンテンツ共有方法及び装置
JP6438719B2 (ja) 通信システム、および、通信プログラム
US10305729B2 (en) Systems and methods of providing an edge cloud storage and caching system operating over a local area network
CN103944974B (zh) 一种协议报文处理方法、控制器故障处理方法及相关设备
US11394800B2 (en) Systems and methods for remote network topology discovery
EP3609233B1 (en) Information centric network mobility management
JP2016067000A (ja) 無線通信端末および無線通信方法
US20150208210A1 (en) Communication control device, communication device, and computer program product
WO2008138235A1 (en) Method for operating threads and the device thereof
JP5463018B2 (ja) 間接通信システム、間接通信方法、及びプログラム
US11063863B2 (en) Systems and methods for transmitting and receiving interest messages
EP4057577B1 (en) Addressing method and addressing apparatus
CN106464666A (zh) 用户与群组关联的方法和设备
WO2017028806A1 (zh) 一种转发报文的方法和装置
CN118338459A (zh) 用户面通道的建立方法、装置、通信设备和存储介质
JP2009211384A (ja) 検索代理装置及び検索代理方法
US8111635B2 (en) Server, terminal, and method for supporting mobility
CN116761159A (zh) 设备多归属接入方法、装置、计算机设备和存储介质
JP2011129059A (ja) 情報処理装置、通信システム、制御方法及び制御プログラム
JP4820833B2 (ja) 間接通信システム、通信方法および通信プログラム
US12133147B2 (en) Message transfer apparatus and method, and computer-readable medium
KR100941396B1 (ko) 센서 네트워크 관리 시스템, 센서 네트워크를 관리하는방법, 이를 수행하는 명령어들을 저장하는 저장 매체
CN107846290B (zh) 一种拓补关系管理方法和管理设备

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100526

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100902

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120807

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130409

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20130605

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130607

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130724

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131022

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131217

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140120

R150 Certificate of patent or registration of utility model

Ref document number: 5463018

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees