JP4820833B2 - 間接通信システム、通信方法および通信プログラム - Google Patents

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

Info

Publication number
JP4820833B2
JP4820833B2 JP2008046530A JP2008046530A JP4820833B2 JP 4820833 B2 JP4820833 B2 JP 4820833B2 JP 2008046530 A JP2008046530 A JP 2008046530A JP 2008046530 A JP2008046530 A JP 2008046530A JP 4820833 B2 JP4820833 B2 JP 4820833B2
Authority
JP
Japan
Prior art keywords
tuple
terminal
communication
registered
writing
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.)
Expired - Fee Related
Application number
JP2008046530A
Other languages
English (en)
Other versions
JP2009206779A (ja
Inventor
淳 山本
豊 荒川
裕也 南
真人 松尾
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.)
Nippon Telegraph and Telephone Corp
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 JP2008046530A priority Critical patent/JP4820833B2/ja
Publication of JP2009206779A publication Critical patent/JP2009206779A/ja
Application granted granted Critical
Publication of JP4820833B2 publication Critical patent/JP4820833B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、たとえばユビキタスネットワークなどの各種ネットワークにおいてセンサ・アクチュエータ端末とサーバ端末の上で動作する複数のプログラムがお互いに連携してユビキタスサービスなどの各種サービスを実現するための通信プラットフォームを構成する際に用いて好適な間接通信システム、通信方法および通信プログラムに関するものである。
ユビキタスサービスなど複数の端末を用いたネットワークで提供されるサービスの開発・運用を効率化するためには、サービスを構成するプログラム/端末の追加・変更・削除に対して柔軟に対応できる通信プラットフォームが必要である。この通信プラットフォームの要求条件を満足する通信モデルの候補としてTupleSpace(タプル空間)(非特許文献1参照)がある。TupleSpaceは掲示板に似た通信モデルであり、プログラム間で論理的に一つの空間を共有し、プログラム同士はその共有空間に対してデータを読み書きすることで間接的に通信する。
TupleSpaceを用いた通信では、各端末あるいはサーバ上で動作するTupleSpace用のプログラム同士がTupleSpace(あるいはTupleStorage;タプルストレージ)に対してTuple(タプル;Key-Value Pair=キーと値の組)を読み書きすることで間接的に通信する。具体的には送信者の書き込み用Tuple(Actual;アクチュアル)と受信者の読み出し用Tuple(Forma1;フォーマル)のマッチング処理により通信が発生する。送信者の書き込み用Tuple(Actua1)にマッチング対象、受信者の読み出し用Tuple(Formal)にマッチング条件が含まれ、読み出し用Tuple(Formal)にマッチする書き込み用Tuple(Actual)が当該の読み出し用Tuple(Formal)を登録した受信者へ通知される。すなわち、読み出し用Tuple(Forma1)を書き込む受信端末が、書き込み用Tuple(Actual)を書き込む送信端末を条件指定することになる。
図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)内容のマッチングにより宛先が決定されるため、通信相手のアドレスを事前に把握している必要がない。
D. Gelemter, "Generative communication in linda," ACM Trans. Prog. Lang. Syst., vol. 7, no. 1, pp. 80-112, Jan. l985.
TupleSpaceの通信モデルは、プログラム間の時間面(特徴1)と関係面(特徴2)での結びつきを弱めるものであり、サービスを構成するプログラム/端末の追加・変更・削除に対して柔軟に対応できる通信プラットフォームとしての素地を備えている。しかし、原型の通信モデルには、以下の二つの解決すべき課題がある。
(課題1)送信端末が受信端末を選別できない。このため、センサイベントの送受のように送信端末が受信端末を条件指定する必要がない(すなわち受信端末が送信端末を条件指定する必要がある)通信においては特に問題はないが、アクチュエータコマンドの送受のように送信端末が受信端末を条件指定する必要がある(すなわち受信端末が送信端末を条件指定する必要がない)通信においては必ずしも送信端末が意図する受信端末へデータが送信されるとは限らないという問題がある。
(課題2)送信端末が受信端末を把握できない。このため、実際に受信する受信端末が存在しないにも関わらず無駄にデータを送信することを回避できないという問題がある。また、送信したデータが実際にどの受信端末によって受信されたかを追跡できないという問題がある。
本発明は、上記の事情に鑑みてなれたものであり、間接通信における利便性の向上を目的としたものであって、送信端末が受信端末を選別でき、また、送信端末が受信端末を把握できるようにする間接通信システム、通信方法および通信プログラムを提供することを目的とする。
上記課題を解決するため、本発明は、複数の端末間を接続する通信手段と、前記通信手段によって接続されるものであって、通信されるデータとなる書き込み用タプル又は読み出し用タプルの少なくとも一方を送信端末又は受信端末として所定の記憶手段に登録する1又は複数の通信端末とを備え、前記所定の記憶手段に登録される各タプルにマッチング対象又はマッチング条件を表す情報を含、それらをマッチングすることで間接通信を行うシステムであって、送信端末となる通信端末が登録した書き込み用タプルにマッチング対象、受信端末となる通信端末が登録した読み出し用タプルにマッチング条件を含とともに、マッチング条件を含む読み出し用タプルにマッチするマッチング対象を含む書き込み用タプルを登録した送信端末となる通信端末へ受信端末となる通信端末が当該読み出し用タプルを通知するか、又は、送信端末となる通信端末が登録した書き込み用タプルにマッチング条件、受信端末となる通信端末が登録した読み出し用タプルにマッチング対象を含とともに、マッチング条件を含む書き込み用タプルにマッチするマッチング対象を含む読み出し用タプルを当該書き込み用タプルを登録した送信端末となる通信端末へ受信端末となる通信端末が通知し、前記読み出し用タプル又は前記書き込み用タプルは、前記マッチした全て若しくは一つの書き込み用タプルを、読み出し用タプルを登録した受信端末としての前記通信端末へ送信端末となる通信端末が通知するか、又は、前記マッチした読み出し用タプルを登録した受信端末としての前記通信端末の全て若しくは一つへ、送信端末となる通信端末が書き込み用タプルを通知するかを指定するフラグと、それらの通知後に、マッチした書き込み用タプル又はマッチした読み出し用タプルを削除するか又は削除しないかを指定するフラグとを含むことを特徴とする。
発明は、前記読み出し用タプル又は前記書き込み用タプルは、前記送信端末としての通信端末又は前記受信端末としての通信端末への前記読み出し用タプル又は前記書き込み用タプルの通知の有無を指定するフラグをさらにことを特徴とする。
発明は、複数の端末間を接続する通信手段と、前記通信手段によって接続されるものであって、通信されるデータとなる書き込み用タプル又は読み出し用タプルの少なくとも一方を送信端末又は受信端末として所定の記憶手段に登録する1又は複数の通信端末とを備え、前記所定の記憶手段に登録される各タプルにマッチング対象又はマッチング条件を表す情報を含み、それらをマッチングすることで間接通信を行うシステムであって、送信端末となる通信端末が登録した書き込み用タプルにマッチング対象、受信端末となる通信端末が登録した読み出し用タプルにマッチング条件を含むとともに、マッチング条件を含む読み出し用タプルにマッチするマッチング対象を含む書き込み用タプルを登録した送信端末となる通信端末へ受信端末となる通信端末が当該読み出し用タプルを通知するか、又は、送信端末となる通信端末が登録した書き込み用タプルにマッチング条件、受信端末となる通信端末が登録した読み出し用タプルにマッチング対象を含むとともに、マッチング条件を含む書き込み用タプルにマッチするマッチング対象を含む読み出し用タプルを当該書き込み用タプルを登録した送信端末となる通信端末へ受信端末となる通信端末が通知し、前記読み出し用タプル又は前記書き込み用タプルは、前記送信端末としての通信端末又は前記受信端末としての通信端末への前記読み出し用タプル又は前記書き込み用タプルの通知の有無を指定するフラグを含むことを特徴とする
発明は、複数の端末間を接続する通信手段と、前記通信手段によって接続されるものであって、通信されるデータとなる書き込み用タプル又は読み出し用タプルの少なくとも一方を送信端末又は受信端末として所定の記憶手段に登録する1又は複数の通信端末とを備え、前記所定の記憶手段に登録される各タプルにマッチング対象又はマッチング条件を表す情報を含、それらをマッチングすることで間接通信を行う間接通信システムにおける間接通信方法であって、送信端末となる通信端末が登録した書き込み用タプルにマッチング対象、受信端末となる通信端末が登録した読み出し用タプルにマッチング条件を含とともに、マッチング条件を含む読み出し用タプルにマッチするマッチング対象を含む書き込み用タプルを登録した送信端末となる通信端末へ受信端末となる通信端末が当該読み出し用タプルを通知するか、又は、送信端末となる通信端末が登録した書き込み用タプルにマッチング条件、受信端末となる通信端末が登録した読み出し用タプルにマッチング対象を含とともに、マッチング条件を含む書き込み用タプルにマッチするマッチング対象を含む読み出し用タプルを当該書き込み用タプルを登録した送信端末となる通信端末へ受信端末となる通信端末が通知し、前記読み出し用タプル又は前記書き込み用タプルは、前記マッチした全て若しくは一つの書き込み用タプルを、読み出し用タプルを登録した受信端末としての前記通信端末へ送信端末となる通信端末が通知するか、又は、前記マッチした読み出し用タプルを登録した受信端末としての前記通信端末の全て若しくは一つへ、送信端末となる通信端末が書き込み用タプルを通知するかを指定するフラグと、それらの通知後に、マッチした書き込み用タプル又はマッチした読み出し用タプルを削除するか又は削除しないかを指定するフラグとを含むことを特徴とする。
発明は、前記読み出し用タプル又は前記書き込み用タプルは、前記送信端末としての通信端末又は前記受信端末としての通信端末への前記読み出し用タプル又は前記書き込み用タプルの通知の有無を指定するフラグをさらにことを特徴とする。
発明は、複数の端末間を接続する通信手段と、前記通信手段によって接続されるものであって、通信されるデータとなる書き込み用タプル又は読み出し用タプルの少なくとも一方を送信端末又は受信端末として所定の記憶手段に登録する1又は複数の通信端末とを備え、前記所定の記憶手段に登録される各タプルにマッチング対象又はマッチング条件を表す情報を含み、それらをマッチングすることで間接通信を行う間接通信システムにおける間接通信方法であって、送信端末となる通信端末が登録した書き込み用タプルにマッチング対象、受信端末となる通信端末が登録した読み出し用タプルにマッチング条件を含むとともに、マッチング条件を含む読み出し用タプルにマッチするマッチング対象を含む書き込み用タプルを登録した送信端末となる通信端末へ受信端末となる通信端末が当該読み出し用タプルを通知するか、又は、送信端末となる通信端末が登録した書き込み用タプルにマッチング条件、受信端末となる通信端末が登録した読み出し用タプルにマッチング対象を含むとともに、マッチング条件を含む書き込み用タプルにマッチするマッチング対象を含む読み出し用タプルを当該書き込み用タプルを登録した送信端末となる通信端末へ受信端末となる通信端末が通知し、前記送信端末としての通信端末又は前記受信端末としての通信端末への前記読み出し用タプル又は前記書き込み用タプルの通知の有無を指定するフラグを前記読み出し用タプル又は前記書き込み用タプルに含むことを特徴とする
発明は、複数の端末間を接続する通信手段と、前記通信手段によって接続されるものであって、通信されるデータとなる書き込み用タプル又は読み出し用タプルの少なくとも一方を送信端末又は受信端末として所定の記憶手段に登録する1又は複数の通信端末とを備え、前記所定の記憶手段に登録される各タプルにマッチング対象又はマッチング条件を表す情報を含、それらをマッチングすることで間接通信を行う間接通信システム上のコンピュータに間接通信処理を行わせる間接通信プログラムであって、送信端末となる通信端末が登録した書き込み用タプルにマッチング対象、受信端末となる通信端末が登録した読み出し用タプルにマッチング条件を含とともに、マッチング条件を含む読み出し用タプルにマッチするマッチング対象を含む書き込み用タプルを登録した送信端末となる通信端末へ受信端末となる通信端末が当該読み出し用タプルを通知するか、又は、送信端末となる通信端末が登録した書き込み用タプルにマッチング条件、受信端末となる通信端末が登録した読み出し用タプルにマッチング対象を含とともに、マッチング条件を含む書き込み用タプルにマッチするマッチング対象を含む読み出し用タプルを当該書き込み用タプルを登録した送信端末となる通信端末へ受信端末となる通信端末が通知する処理を行わせ、前記読み出し用タプル又は前記書き込み用タプルは、前記マッチした全て若しくは一つの書き込み用タプルを、読み出し用タプルを登録した受信端末としての前記通信端末へ送信端末となる通信端末が通知するか、又は、前記マッチした読み出し用タプルを登録した受信端末としての前記通信端末の全て若しくは一つへ、送信端末となる通信端末が書き込み用タプルを通知するかを指定するフラグと、それらの通知後に、マッチした書き込み用タプル又はマッチした読み出し用タプルを削除するか又は削除しないかを指定するフラグとを含むことを特徴とする。
発明は、前記読み出し用タプル又は前記書き込み用タプルは、前記送信端末としての通信端末又は前記受信端末としての通信端末への前記読み出し用タプル又は前記書き込み用タプルの通知の有無を指定するフラグをさらに含むことを特徴とする。
発明は、複数の端末間を接続する通信手段と、前記通信手段によって接続されるものであって、通信されるデータとなる書き込み用タプル又は読み出し用タプルの少なくとも一方を送信端末又は受信端末として所定の記憶手段に登録する1又は複数の通信端末とを備え、前記所定の記憶手段に登録される各タプルにマッチング対象又はマッチング条件を表す情報を含み、それらをマッチングすることで間接通信を行う間接通信システム上のコンピュータに間接通信処理を行わせる間接通信プログラムであって、送信端末となる通信端末が登録した書き込み用タプルにマッチング対象、受信端末となる通信端末が登録した読み出し用タプルにマッチング条件を含むとともに、マッチング条件を含む読み出し用タプルにマッチするマッチング対象を含む書き込み用タプルを登録した送信端末となる通信端末へ受信端末となる通信端末が当該読み出し用タプルを通知するか、又は、送信端末となる通信端末が登録した書き込み用タプルにマッチング条件、受信端末となる通信端末が登録した読み出し用タプルにマッチング対象を含むとともに、マッチング条件を含む書き込み用タプルにマッチするマッチング対象を含む読み出し用タプルを当該書き込み用タプルを登録した送信端末となる通信端末へ受信端末となる通信端末が通知する処理を行わせ、前記読み出し用タプル又は前記書き込み用タプルは、前記送信端末としての通信端末又は前記受信端末としての通信端末への前記読み出し用タプル又は前記書き込み用タプルの通知の有無を指定するフラグを含むことを特徴とする
本発明においては、送信端末となる通信端末が登録した書き込み用タプルにマッチング条件、受信端末となる通信端末が登録した読み出し用タプルにマッチング対象を含ませて、書き込み用タプルにマッチする読み出し用タプルを登録した受信端末となる通信端末へ当該書き込み用タプルを通知する。すなわち、たとえば送信端末の書き込み用タプル(CommandActual)にマッチング条件、受信端末の読み出し用タプル(CommandFormal)にマッチング対象を含ませ、書き込み用タプル(CommandActual)にマッチする読み出し用タプル(CommandFormal)を登録した受信端末へ当該の書き込み用タプル(CommandActual)を通知するようにした。したがって、送信端末が受信端末を選別できるようになる。これにより、アクチュエータコマンドの送受のように送信端末が受信端末を条件指定する必要がある(すなわち受信端末が送信端末を条件指定する必要がない)通信において確実に送信端末が意図する受信端末へデータを送信できるようになる。
また、本発明においては、送信端末となる通信端末が登録した書き込み用タプルにマッチング対象、受信端末となる通信端末が登録した読み出し用タプルにマッチング条件を含ませるとともに、マッチング条件を含む読み出し用タプルにマッチするマッチング対象を含む書き込み用タプルを登録した送信端末となる通信端末へ当該読み出し用タプルを通知するか、又は、送信端末となる通信端末が登録した書き込み用タプルにマッチング条件、受信端末となる通信端末が登録した読み出し用タプルにマッチング対象を含ませるとともに、マッチング条件を含む書き込み用タプルにマッチするマッチング対象を含む読み出し用タプルを当該書き込み用タプルを登録した送信端末となる通信端末へ通知するようにした。すなわち、たとえば、読み出し用タプル(EventFormal)にマッチする書き込み用タプル(EventActual)を登録した送信端末へ当該の読み出し用タプル(EventFormal)を通知するようにしたり、あるいは書き込み用タプル(CommandActual)にマッチする読み出し用タプル(CommandFormal)を当該の書き込み用タプル(CommandActual)を登録した送信端末へ通知するようにした。これにより、送信端末が受信端末を把握できるようになる。これにより、実際に受信する受信端末が存在しないにも関わらず無駄にデータを送信することを回避できる。また、送信したデータが実際にどの受信端末によって受信されたかを追跡できる。
本発明におけるタプル空間(「uTupleSpace」とする)は、図1を参照して説明したタプル空間TupleSpaceの通信モデルを独自に拡張したものであり、既存の受信端末が送信端末を選別する受信端末主導の通信(Event型通信;イベント型通信)に加え、送信端末が受信端末を選別する送信端末主導の通信(Command型通信;コマンド型通信)を新規に実現する。また、本実施の形態では、Event型通信とCommand型通信において、受信端末が送信端末を把握する順方向の通信(Actual-to-Formal通信;アクチュアル・トウ・フォーマル通信)に加え、送信端末が受信端末を把握する逆方向の通信(Formal-to-Actual通信;フォーマル・トウ・アクチュアル通信)を新規に実現する。
なお、本実施の形態では、uTupleSpaceに読み書きされるTupleを「uTuple」として表すこととする。このuTupleは、アプリケーションプログラムがデータとしてuTupleSpaceに書込むuTupleであるActualと、uTupleSpaceからそこに書き込まれたuTuple(Actual)をデータとして読み出すためのuTupleであるFormalの2種類に分けることができる。上述したように、本実施の形態では、既存の受信端末主導の通信(Event型通信)に加え、新規に送信端末主導の通信(Command型通信)を実現するものである。本実施の形態では、Event型通信における2種類のuTupleを「EventActual」(Event型書き込み用uTuple;マッチング対象を含むuTuple)と「EventdFormal」(Event型読み出し用uTuple;マッチング条件を含むuTuple)として表し、Command型通信における2種類のuTupleを「CommandActual」(Command型書き込み用uTuple;マッチング条件を含むuTuple)と「CommandFormal」(Command型読み出し用uTuple;マッチング対象を含むuTuple)として表すこととする。
なお、タプル空間(uTupleSpace)は、概念上の共有メモリ(すなわち記憶手段)であり、この共有メモリはたとえば複数の端末に分散して配置され、このuTupleSpaceにマッチング対象又はマッチング条件を表す情報を含んでいるuTupleとしてのデータ(EventActualまたはCommandActual)を書込み(または登録もしくは送信し)、また、このuTupleSpaceからuTupleとしてのマッチング条件又はマッチング対象を表す情報を含んでいるデータ(EventdFormalまたはCommandFormal)にマッチングするデータ(EventActualまたはCommandActual)を読出す(あるいは受信するあるいは通知される)ことで、uTupleSpace通信用のアプリケーションプログラム(以下、プログラムとする)同士で通信が行われる。
図2に本発明の実施の形態によるuTupleSpaceの通信モデルを示す。上述したようにプログラム同士はuTupleSpace(あるいはuTupleStorage)に対してuTuple(Key-Value Pair)を読み書きすることで間接的に通信する。なお、図2は本実施の形態の通信モデルを模式的に示したものであり、この通信モデルを実現する通信システムには通常各端末10〜30が複数台接続されている。また、uTupleSpace内に存在するuTupleも、図示するもののほかに複数存在している。なお、uTupleの凡例を参照符号70で示した。
図2に示す通信モデルでは、サーバ端末10と、センサ端末20と、アクチュエータ端末30とが、ユビキタスネットーク40に接続されていて、各端末10〜30上で実行されているプログラム101、201、301および各端末10〜30あるいは図示していない他の端末内のメモリなどの記憶手段と、通信手段としてのユビキタスネットーク40とによって、各端末10〜30のプログラム101、201、301などの間で論理的に共有される一つの空間(メモリ空間)であるuTupleSpace50が構成されている。プログラム同士がこの共有空間であるuTupleSpace50に対してデータを読み書きすることで間接的に通信が行われる。
この図に示す例では、例えばセンサ端末20のプログラム201がuTupleSpace50に登録したマッチング対象となる書き込み用uTuple(EventActual)71とサーバ端末10のプログラム101がuTupleSpace50に登録したマッチング条件となる読み出し用uTuple(EventFormal)72とがマッチングした場合に、書き込み用uTuple(EventActual)71がサーバ端末10のプログラム101によって読み出される(つまり書き込み用uTuple(EventActual)71がサーバ端末10へ通知される)とともに、読み出し用uTuple(EventFormal)72がセンサ端末20のプログラム201によって読み出される(つまり読み出し用uTuple(EventFormal)72がセンサ端末20へ通知される)。
また、アクチュエータ端末30のプログラム301がuTupleSpace50に登録したマッチング対象となる読み出し用uTuple(CommandFormal)73とサーバ端末10のプログラム101がuTupleSpace50に登録したマッチング条件となる書き込み用uTuple(CommnadActual)74とがマッチングした場合に、書き込み用uTuple(CommandActual)74がアクチュエータ端末30のプログラム301によって読み出される(つまり書き込み用uTuple(CommandActual)74がアクチュエータ端末30へ通知される)とともに、読み出し用uTuple(CommandFormal)73がサーバ端末10のプログラム101によって読み出される(つまり読み出し用uTuple(CommandFormal)73がサーバ端末10へ通知される)。
なおuTulpleSpaceの通信モデルでは、uTulpleSpace50を介して任意の二つの端末のプログラム問での通信が可能であり、それらの通信はすべて独立している。例えば、センサ端末20とアクチュエータ端末30のプログラム同士201・301もuTulpleSpace50を介して通信可能であるし、同一端末のプログラム同士もuTulpleSpace50を介して通信可能である。また、センサ端末20とサーバ端末10のプログラム間の通信とサーバ端末10とアクチュエータ端末20のプログラム間の通信は独立して行われる。なお、TulpleSpace50の通信モデルは、図2に示すように、センサ、アクチュエータ、サーバ等の各端末間のプログラム同士が、独立して通信を行う形態のほか、たとえば、サーバ端末を管理サーバとして用いてその管理サーバ上で実行されているプログラムを介して各端末が通信を行う形態をとることも可能である。この場合、たとえば、サーバ端末のプログラムがセンサ端末のプログラムとアクチュエータ端末のプログラムとの間の通信を仲介することで通信が行われる。どのような形態とるかは、各プログラムの内容で決定することができる。
図3に図2に示す各uTupleが本実施の形態において特徴とする部分の書式を示す。本実施の形態のuTupleには、Event型通信における送信端末の書き込み用uTuple(EventActual)71と受信端末の読み出し用uTuple(EventFormal)72、Command型通信における送信端末の書き込み用uTuple(CommandActual)74と受信端末の読み出し用uTuple(CommandFormal)73、の計4種類がある。Event型通信でもCommand型通信でも、送信端末の書き込み用uTuple(Actual)71または74と受信端末の読み出し用uTuple(Formal)72または73のマッチング処理により通信が発生する。
しかし、Event型通信では、送信端末(たとえばセンサ端末20)の書き込み用uTuple(EventActual)71にマッチング対象、受信端末(たとえばサーバ端末10)の読み出し用uTuple(EventFormal)72にマッチング条件が含まれ、読み出し用uTuple(EventFormal)72にマッチする書き込み用uTuple(EventActual)71が当該の読み出し用uTuple(EventFormal)72を登録した受信端末(たとえばセンサ端末20)へ通知される(Actual-to-Formal通信)。これに対し、Command型通信では、送信端末(たとえばサーバ端末10)の書き込み用uTuple(CommandActual)74にマッチング条件、受信端末(たとえばアクチュエータ端末30)の読み出し用uTuple(CommandFormal)73にマッチング対象が含まれ、書き込み用uTuple(CommandActual)73にマッチする読み出し用uTuple(CommandFormal)74を登録した受信端末(たとえばアクチュエータ端末30)へ当該の書き込み用uTuple(CommandActual)74が通知される(Actual-to-Formal通信)。
また、これと同時に、Event型通信では、読み出し用uTuple(EventFormal)72にマッチする書き込み用uTuple(EventActual)71を登録した送信端末(たとえばセンサ端末20)へ当該の読み出し用uTuple(EventFormal)72が通知される(Formal-to-Actual通信)。また、Command型通信では、書き込み用uTuple(CommandActual)74にマッチする読み出し用uTuple(CommandFormal)73が当該の書き込み用uTuple(CommandActual)74を登録した送信端末(たとえばサーバ端末10)へ通知される(Formal-to-Actual通信)。
なお、図3に示す各uTuple71〜74は、キーとそれに対応する値(文字列)との対からなる1または複数のフィールドから構成されている。Event型通信における送信端末の書き込み用uTuple(EventActual)71に含まれるキーは、「date」、「position」、「address」、「subject」、「type」および「body」である。「date」は、「タイムスタンプ情報」を表すキーであり、時刻情報を表す値が対応づけられている。「position」は、位置情報を表すキーであり、送信端末の位置に関する情報を表す値が対応づけられている。「address」は、アドレス情報を表すキーであり、送信端末のアドレスを表す値が対応づけられている。「subject」は、センサ/アクチュエータの種別情報を表すキーであり、送信端末の端末の種別を示す値が対応づけられている。「type」は、アクチュエータへのどのようなコマンドなのかあるいはセンサからのどのようなイベントなのかを表すキーであり、それらを表す値が対応づけられている。「body」は、センサ出力などの「パラメータ」(あるいはデータ)を表すキーであり、アプリケーション間で規定された任意のフィールドの集合が対応づけられている。この「body」に設定される値が送信されるデータとなる。
Event型通信における受信端末の読み出し用uTuple(EventFormal)72に含まれるキーは、「date_range」、「position_range」、「address_range」、「subject」および「type」である。「date_range」は、読み出し条件を表す「タイムスタンプ情報」を表すキーであり、時刻の範囲を示す情報を表す値が対応づけられている。「position_range」は、読み出し条件を表す位置情報を表すキーであり、送信端末の位置の範囲に関する情報を表す値が対応づけられている。「address_range」は、読み出し条件を表すアドレス情報を表すキーであり、送信端末のアドレスの範囲を表す値が対応づけられている。「subject」は、センサ/アクチュエータの種別情報を表すキーであり、送信端末の種別を示す値が対応づけられている。「type」は、アクチュエータへのどのようなコマンドなのかあるいはセンサからのどのようなイベントなのかを表すキーであり、それらを表す値が対応づけられている。
Command型通信における送信端末の書き込み用uTuple(CommandActual)74に含まれるキーは、「date_range」、「position_range」、「address_range」、「subject」、「type」および「body」である。また、Command型通信における受信端末の読み出し用uTuple(CommandFormal)73に含まれるキーは、「date」、「position」、「address」、「subject」および「type」である。各キーの内容と対応づけられる値については、Event型通信では送信端末(すなわちEventActualを登録した端末)の情報であるのに対してCommand型通信では受信端末(すなわちCommandForrmalを登録した端末)の情報であるが、上述したEvent型通信のものに対応する内容となっている。
また、本実施の形態においては、Event型通信/Command型通信における主導側となる端末(受信端末/送信端末)は従属側となる端末(送信端末/受信端末)に対して所定の処理を要求するAllフラグ(オールフラグ)とRemoveフラグ(リムーブフラグ)をオプションで指定できる。このAllフラグは、Event型通信において条件がマッチした全て若しくは一つの書き込み用uTupleを、読み出し用uTupleを登録した受信端末としての通信端末へ通知するかを指定するフラグであり、また、Command型通信において条件がマッチした読み出し用uTupleを登録した受信端末としての通信端末の全て若しくは一つへ、書き込み用uTupleを通知するかを指定するフラグである。また、Removeフラグは、それらの通知後に、マッチした書き込み用uTuple又はマッチした読み出し用uTupleを削除するか又は削除しないかを指定するフラグである。これらのAllフラグとRemoveフラグは、たとえば、Event型通信における受信端末の読み出し用uTuple(EventFormal)72/Command型通信における送信端末の書き込み用uTuple(CommandActual)74に追加のキーおよびその値として設定することができる。
次に図4〜図11を参照して、図2の通信モデルを実現する通信システムにおける本発明が特徴とする各動作について説明する。なお、各図における各処理(すなわち各図のフローの全体又は一部(つまり各ステップ))は、各端末などにおいて共有されている共有メモリとしてのタプル空間uTupleSpace50を用いて各端末などで実行されているプログラム101〜301などによって実現されるものである。
図4と図5に、Allフラグ(オールフラグ)とRemoveフラグ(リムーブフラグ)を考慮したEvent型通信における、書き込み用uTuple(EventActual)71の登録時(図4)と、読み出し用uTuple(EventFormal)72の登録時(図5)の処理フローを示す。「Allフラグ=True/False」と「Removeフラグ=True/False」はそれぞれ独立に指定することができ、以下の処理内容となる(すなわち計4通りの組合せが考えられる)。
・Event型通信における「Allフラグ=True/False」指定:
読み出し用uTuple(EventFormal)72にマッチする「全ての(All=Trueの場合)/一つの(All=Falseの場合)」書き込み用uTuple(EventActual)71が当該の読み出し用uTuple(EventFormal)72を登録した受信端末へ通知される。ここでAll=Falseの場合に受信端末へ通知される一つの書き込み用uTuple(EventActual)71は、例えば最後に登録されたものすなわち最新のものとしたり、あるいは他の所定の条件を満足する一つあるいは一つに限らず複数のものとしたりするとしたりすることができる。
・Event型通信における「Removeフラグ=True/False」指定:
読み出し用uTuple(EventFormal)72にマッチする書き込み用uTuple(EventActual)71が当該の読み出し用uTuple(EventFormal)72を登録した受信端末へ通知された後に当該の書き込み用uTuple(EventActual)71が「削除される(Remove=Trueの場合)/削除されない(Remove=Falseの場合)」。
ここで、図4の処理フローについて説明する。図4は、Event型通信における書き込み用uTuple(EventActual)71の登録時の処理フローである。なお、以下の図4および以下の各図の処理フローの説明では、各uTuple71、72、73および74をその種類を特定する「EventActual」、「EventFormal」、「CommandFormal」および「CommandActual」の各用語で表すこととする。
図4の処理フローでは、まず、EventActualの登録時には、EventActualとマッチし、かつRemove=TrueであるEventFormalのうち、最後に登録されたものを検索する(ステップS101)。EventFormalが見つからなかった場合(ステップS102で「NO」の場合)、EventActualとマッチする全EventFormalを検索する(ステップS103)。次に、見つけたN個のEventFormalについてステップS104〜S108内の処理を繰り返し行い、EventFormalを登録したプログラムにEventActualを通知するとともに(ステップS105)、EventFormalのAll=Trueでない場合には(ステップS106で「NO」の場合には)EventFormalを削除する(ステップS107)。そして、EventActualを登録して(ステップS109)、処理を終了する。
一方、ステップS102で、EventFormalが見つかった場合(ステップS102で「YES」の場合)、EventFormalを登録したプログラムにEventActualを通知するとともに(ステップS110)、EventFormalのAll=Trueでない場合には(ステップS111で「NO」の場合には)EventFormalを削除して(ステップS112)、処理を終了する。
次に、図5の処理フローについて説明する。図5は、Event型通信における読み出し用uTuple(EventFormal)72の登録時の処理フローである。
図5の処理フローでは、まず、登録するEventFormalのAll=Trueであるか否かを判定し、All=Trueの場合(ステップS201で「YES」の場合)、EventFormalとマッチする全EventActualを検索する(ステップS202)。次に、見つけたEventActualをEventFormalを登録しようとするプログラムに通知するとともに(ステップS203)、登録するEventFormalのRemove=Trueの場合(ステップS204で「YES」の場合)には見つけたEventActualを削除して(ステップS205)、EventFormalを登録し(ステップS206)、そして、処理を終了する。
一方、ステップS201で、All=Falseの場合(ステップS201で「NO」の場合)、EventFormalとマッチするEventActualのうち、最後に登録されたものを検索する(ステップS207)。そして、見つけたEventActualをEventFormalを登録しようとするプログラムに通知するとともに(ステップS208)、Remove=Trueの場合には(ステップS209で「YES」の場合には)見つけたEventActualを削除し(ステップS210)、そして、処理を終了する。
次に、図6と図7にAllフラグとRemoveフラグを考慮したCommand型通信における、書き込み用uTuple(CommandActual)74の登録時(図6)と、読み出し用uTuple(CommandFormal)73の登録時(図7)の処理フローを示す。「Allフラグ=True/False」と「Removeフラグ=True/False」はそれぞれ独立に指定することができ、以下の処理内容となる(すなわち、計4通りの組合せが考えられる)。
・Command型通信における「Allフラグ=True/False」指定:
書き込み用uTuple(CommandActual)74にマッチする「全ての(Allフラグ=Trueの場合)/一つの((Allフラグ=Falseの場合)」読み出し用uTuple(CommandFormal)73を登録した受信端末へ当該の書き込み用uTuple(CommandActual)74が通知される。ここでAll=Falseの場合に選ばれる読み出し用uTuple(CommandFormal)73は、例えば最後に登録されたものすなわち最新のものとしたり、あるいは他の所定の条件を満足する一つあるいは一つに限らず複数のものとしたりすることができる。
・Command型通信における「Removeフラグ=True/False」指定:
書き込み用uTuple(CommandActual)74にマッチする読み出し用uTuple(CommandFormal)73を登録した受信端末へ当該の書き込み用uTuple(CommandActual)74が通知された後に当該の読み出し用uTuple(CommandFormal)73が「削除される(Removeフラグ=Trueの場合)/削除されない(Removeフラグ=Falseの場合)」。
ここで、図6の処理フローについて説明する。図6は、Command型通信における書き込み用uTuple(CommandActual)74の登録時の処理フローである。
図6の処理フローでは、まず、登録するCommandActualのAll=Trueであるか否かを判定し、All=Trueの場合(ステップS301で「YES」の場合)、CommandActualとマッチする全CommandFormalを検索する(ステップS302)。次に、見つけたCommandFormalを登録したプログラムにCommandActualを通知するとともに(ステップS303)、登録するCommandActualのRemove=Trueの場合(ステップS304で「YES」の場合)には見つけたCommandFormalを削除し(ステップS305)、CommandActualを登録してから(ステップS306)、処理を終了する。
一方、ステップS301で、All=Falseの場合(ステップS301で「NO」の場合)、CommandActualとマッチするCommandFormalのうち、最後に登録されたものを検索する(ステップS307)。そして、見つけたCommandFormalを登録したプログラムにCommandActualを通知するとともに(ステップS308)、Remove=Trueの場合には(ステップS309で「YES」の場合には)見つけたCommandFormalを削除して(ステップS310)、処理を終了する。
次に、図7の処理フローについて説明する。図7は、Command型通信における読み出し用uTuple(CommandFormal)73の登録時の処理フローである。
図7の処理フローでは、まず、登録するCommandFormalとマッチし、かつRemove=TrueであるCommandActualのうち、最後に登録されたものを検索する(ステップS401)。次に、CommandActualが見つからなかった場合には(ステップS402で「NO」の場合には)、CommandFormalとマッチする全CommandActualを検索する(ステップS403)。次に、見つけたN個のCommandActualについて、ステップS404〜S408の処理を繰り返し行い、CommandFormalを登録するプログラムに見つけたCommandActualを通知するとともに(ステップS405)、CommandActualのAllフラグ=Falseの場合には(ステップS406で「NO」の場合には)CommandActualを削除して(ステップS407)、CommandFormalを登録する(ステップS409)。そして、処理を終了する。
一方、ステップS402でCommandActualが見つかった場合には(ステップS402で「YES」の場合には)、CommandFormalを登録するプログラムに見つけたCommandActualを通知するとともに(ステップS410)、CommandActualのAllフラグ=Falseの場合には(ステップS411で「NO」の場合には)CommandActualを削除して(ステップS412)、処理を終了する。
また、本実施の形態では、Event型/Command型通信における送信端末は受信端末に対して所定の処理を要求するActual-to-FormalフラグとFormal-to-Actualフラグをオプションで指定できる。Actual-to-Formalフラグは、EventFormal72にマッチするEventActual71が当該のEventFormal72を登録した受信端末へ通知される否か、あるいは、CommandActual74にマッチするCommandFormal73を登録した受信端末へ当該CommandActual74が通知されるか否かを指定する情報である。他方、Formal-to-Actualフラグは、EventFormal72にマッチするEventActual71を登録した送信端末へ当該EventFormal72が通知されるか否か、あるいは、CommandActual74にマッチするCommandFormal73が当該CommandActual74を登録した送信端末へ通知されるか否かを指定する情報である。これらのActual-to-FormalフラグとFormal-to-Actualフラグは、たとえば、Event型通信における送信端末の書き込み用uTuple(EventActual)71/Command型通信における送信端末の書き込み用uTuple(CommandActual)74に追加のキーおよびその値として設定することができる。
図8と図9にActual-to-FormalフラグとFormal-to-Actualフラグを考慮したEvent型通信における書き込み用uTuple(EventActual)71の登録時(図8)と、読み出し用uTuple(EventFormal)72の登録時(図9)の処理フローを示す。「Actual-to-Formalフラグ=True/False」と「Formal-to-Actualフラグ=True/False」はそれぞれ独立に指定することができ、以下の処理内容となる(すなわち計4通りの組合せが考えられるが、前者False/後者Falseの組合せは意味がない。それ以外の組合せについては、前者True/後者Falseは送信端末による受信端末の把握なし(既存)、前者False/後者Trueは送信端末による受信端末の事前把握(新規)、前者True/後者Trueは送信端末による受信端末の事後把握(新規)、を意味する)。
・Event型通信における「Actual-to-Formal=True/False」指定:
読み出し用uTuple(EventFormal)72にマッチする書き込み用uTuple(EventActual)71が当該の読み出し用uTuple(EventFormal)72を登録した受信端末へ「通知される(Actual-to-Formal=Trueの場合)/通知されない(Actual-to-Formal=Falseの場合)」。
・Event型通信における「Formal-to-Actual=True/False」指定:
読み出し用uTuple(EventFormal)72にマッチする書き込み用uTuple(EventActual)71を登録した送信端末へ当該の読み出し用uTuple(EventFormal)72が「通知される(Formal-to-Actual=Trueの場合)/通知されない(Formal-to-Actual=Falseの場合)」。
ここで、図8を参照して、Event型通信における書き込み用uTuple(EventActual)71の登録時の処理フローについて説明する。図8の処理フローでは、まず、登録するEventActualとマッチするEventFormalを検索する(ステップS501)。そして、見つけたN個のEventFormalについてステップS502〜S507の処理を繰り返し実行する。ステップS503では、見つけたEventFormalのFormal-to-Actualフラグ=Trueか否かを判定し、Trueの場合には(ステップS503で「YES」の場合には)EventActualを登録しようとするプログラムにEventFormalを通知する(ステップS504)。次に、見つけたEventFormalのActual-to-Formalフラグ=Trueか否かを判定し、Trueの場合には(ステップS505で「YES」の場合には)EventFormalを登録したプログラムにEventActualを通知する(ステップS506)。そして、N個のEventFormalについて処理を行った後、EventActualを登録する(ステップS508)。
次に、図9を参照して、Event型通信における読み出し用uTuple(EventFormal)72の登録時の処理フローについて説明する。図9の処理フローでは、まず、登録するEventFormalとマッチするEventActualを検索する(ステップS601)。そして、見つけたN個のEventActualについてステップS602〜S607の処理を繰り返し実行する。ステップS603では、見つけたEventActualのFormal-to-Actualフラグ=Trueか否かを判定し、Trueの場合には(ステップS603で「YES」の場合には)見つかったEventActualを登録したプログラムにEventFormalを通知する(ステップS604)。次に、見つけたEventActualのActual-to-Formalフラグ=Trueか否かを判定し、Trueの場合には(ステップS605で「YES」の場合には)EventFormalを登録するプログラムにEventActualを通知する(ステップS606)。そして、N個のEventActualについて処理を行った後、EventFormalを登録する(ステップS608)。
図10と図11にActual-to-FormalフラグとFormal-to-Actualフラグを考慮したCommand型通信における書き込み用uTuple(CommandActual)74の登録時(図10)と、読み出し用uTuple(CommandFormal)73の登録時の処理フローを示す。「Actual-to-Formalフラグ=True/False」と「Formal-to-Actualフラグ=True/False」はそれぞれ独立に指定することができ、以下の処理内容となる(すなわち計4通りの組合せが考えられるが、前者False/後者Falseの組合せは意味がない。それ以外の組合せについては、前者True/後者Falseは送信端末による受信端末の把握なし(既存)、前者False/後者Trueは送信端末による受信端末の事前把握(新規)、前者True/後者Trueは送信端末による受信端末の事後把握(新規)、を意味する)。
・Command型通信における「Actual-to-Formal=True/False」指定:
書き込み用uTuple(CommandActual)74にマッチする読み出し用uTuple(CommandFormal)73を登録した受信端末へ当該の書き込み用uTuple(CommandActual)74が「通知される(Actual-to-Formal=Trueの場合)/通知されない(Actual-to-Formal=Falseの場合)」。
・Command型通信における「Formal-to-Actual=True/False」指定:
書き込み用uTuple(CommandActual)74にマッチする読み出し用uTuple(CommandFormal)73が当該の書き込み用uTuple(CommandActual)74を登録した送信端末へ「通知される(Formal-to-Actual=Trueの場合)/通知されない(Formal-to-Actual=Falseの場合)」。
ここで、図10を参照して、Command型通信における書き込み用uTuple(CommandActual)74の登録時の処理フローについて説明する。図10の処理フローでは、まず、登録するCommandActualとマッチするCommandFormalを検索する(ステップS701)。そして、見つけたN個のCommandFormalについてステップS702〜S707の処理を繰返し実行する。ステップS703では、見つけたCommandFormalのFormal-to-Actualフラグ=Trueか否かを判定し、Trueの場合には(ステップS703で「YES」の場合には)CommandActualを登録しようとするプログラムにCommandFormalを通知する(ステップS704)。次に、見つけたCommandFormalのActual-to-Formalフラグ=Trueか否かを判定し、Trueの場合には(ステップS705で「YES」の場合には)CommandFormalを登録したプログラムにCommandActualを通知する(ステップS706)。そして、N個のCommandFormalについて処理を行った後、CommandActualを登録する(ステップS708)。
次に、図11を参照して、Command型通信における読み出し用uTuple(CommandFormal)73の登録時の処理フローについて説明する。図11の処理フローでは、まず、登録するCommandFormalとマッチするCommandActualを検索する(ステップS801)。そして、見つけたN個のCommandActualについてステップS802〜S807の処理を繰り返し実行する。ステップS803では、見つけたCommandActualのFormal-to-Actualフラグ=Trueか否かを判定し、Trueの場合には(ステップS803で「YES」の場合には)見つかったCommandActualを登録したプログラムにCommandFormalを通知する(ステップS804)。次に、見つけたCommandActualのActual-to-Formalフラグ=Trueか否かを判定し、Trueの場合には(ステップS805で「YES」の場合には)CommandFormalを登録するプログラムにCommandActualを通知する(ステップS806)。そして、N個のCommandActualについて処理を行った後、CommandFormalを登録する(ステップS808)。
なお、以上では、「AllフラグとRemoveフラグ」と「Actual-to-FormalフラグとFormal-to-Actualフラグ」をそれぞれ独立に記述したが、それらの組合せ(計16通り)も当然考えられる。
以上説明したように本実施の形態は、以下の2つの特徴を有することで、次のような効果を奏する。
(特徴1)送信端末の書き込み用uTuple(CommandActual)にマッチング条件、受信端末の読み出し用uTuple(CommandFormal)にマッチング対象を含ませ、書き込み用uTuple(CommandActual)にマッチする読み出し用uTuple(CommandFormal)を登録した受信端末へ当該の書き込み用uTuple(CommandActual)を通知するようにした。
(特徴2)読み出し用uTuple(EventFormal)にマッチする書き込み用uTuple(EventActual)を登録した送信端末へ当該の読み出し用uTuple(EventFormal)を通知するようにした。また、書き込み用uTuple(CommandActual)にマッチする読み出し用uTuple(CommandFormal)を当該の書き込み用uTuple(CommandActual)を登録した送信端末へ通知するようにした。
これらの特徴により、送信端末が受信端末を選別できる(効果1)。これにより、アクチュエータコマンドの送受のように送信端末が受信端末を条件指定する必要がある(すなわち受信端末が送信端末を条件指定する必要がない)通信において確実に送信端末が意図する受信端末へデータを送信できるようになる。
また、本実施の形態によれば、送信端末が受信端末を把握できる(効果2)。これにより、実際に受信する受信端末が存在しないにも関わらず無駄にデータを送信することを回避できる。また、送信したデータが実際にどの受信端末によって受信されたかを追跡できる。
なお、図2のuTupleSpace50は(あるいはその共有メモリ)は、ハードディスク装置や光磁気ディスク装置、フラッシュメモリ等の不揮発性のメモリや、CD-ROM等の読み出しのみが可能な記憶媒体、RAM(Random Access Memory)のような揮発性のメモリ、有線あるいは無線の通信手段、あるいはこれらの組み合わせにより構成されるものとする
また、図2における各プログラム101、201および301は、専用のハードウェアにより実現されるものであってもよく、また、メモリおよびマイクロプロセッサにより実現させるものであってもよい。また、図2の各端末10、20および30は、メモリおよびCPU(中央演算装置)を有して構成され、本実施形態における各処理をプログラムをメモリにロードして実行することによりその機能を実現させるものであってもよい。
また、図1のプログラム101、201および301をコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各処理を実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
TupleSpaceの通信モデル(背景技術)を説明するための模式図である。 本発明によるTupleSpace(uTupleSpace)の通信モデルを説明するための模式図である。 図2の通信モデルを実現する本発明の通信システムの実施の形態におけるuTupleの書式を示す図である。 図2の通信モデルを実現する本発明の通信システムの実施の形態におけるEventActual登録時のAllフラグ及びRemoveフラグを考慮した処理フローである。 図2の通信モデルを実現する本発明の通信システムの実施の形態におけるEventFormal登録時のAllフラグ及びRemoveフラグを考慮した処理フローである。 図2の通信モデルを実現する本発明の通信システムの実施の形態におけるCommandActual登録時のAllフラグ及びRemoveフラグを考慮した処理フローである。 図2の通信モデルを実現する本発明の通信システムの実施の形態におけるCommandFormal登録時のAllフラグ及びRemoveフラグを考慮した処理フローである。 図2の通信モデルを実現する本発明の通信システムの実施の形態におけるEventActual登録時のActual-to-Formalフラグ及びFormal-to-Actualフラグを考慮した処理フローである。 図2の通信モデルを実現する本発明の通信システムの実施の形態におけるEventFormal登録時のActual-to-Formalフラグ及びFormal-to-Actualフラグを考慮した処理フローである。 図2の通信モデルを実現する本発明の通信システムの実施の形態におけるCommandActual登録時のActual-to-Formalフラグ及びFormal-to-Actualフラグを考慮した処理フローである。 図2の通信モデルを実現する本発明の通信システムの実施の形態におけるCommandFormal登録時のActual-to-Formalフラグ及びFormal-to-Actualフラグを考慮した処理フローである。
符号の説明
10…サーバ端末、20…センサ端末、30…アクチュエータ端末、101、201、301…プログラム、40…ユビキタスネットワーク(通信回線あるいは通信網)、50…uTupleSpace、71…書き込み用uTuple(EventActual)、72…読み出し用uTuple(EventFormal)、73…読み出し用uTuple(CommandFormal)、74…書き込み用uTuple(CommandActual)

Claims (9)

  1. 複数の端末間を接続する通信手段と、前記通信手段によって接続されるものであって、通信されるデータとなる書き込み用タプル又は読み出し用タプルの少なくとも一方を送信端末又は受信端末として所定の記憶手段に登録する1又は複数の通信端末とを備え、前記所定の記憶手段に登録される各タプルにマッチング対象又はマッチング条件を表す情報を含、それらをマッチングすることで間接通信を行うシステムであって、
    送信端末となる通信端末が登録した書き込み用タプルにマッチング対象、受信端末となる通信端末が登録した読み出し用タプルにマッチング条件を含とともに、
    マッチング条件を含む読み出し用タプルにマッチするマッチング対象を含む書き込み用タプルを登録した送信端末となる通信端末へ受信端末となる通信端末が当該読み出し用タプルを通知するか、
    又は、送信端末となる通信端末が登録した書き込み用タプルにマッチング条件、受信端末となる通信端末が登録した読み出し用タプルにマッチング対象を含とともに、マッチング条件を含む書き込み用タプルにマッチするマッチング対象を含む読み出し用タプルを当該書き込み用タプルを登録した送信端末となる通信端末へ受信端末となる通信端末が通知し、
    前記読み出し用タプル又は前記書き込み用タプルは、
    前記マッチした全て若しくは一つの書き込み用タプルを、読み出し用タプルを登録した受信端末としての前記通信端末へ送信端末となる通信端末が通知するか、又は、前記マッチした読み出し用タプルを登録した受信端末としての前記通信端末の全て若しくは一つへ、送信端末となる通信端末が書き込み用タプルを通知するかを指定するフラグと、
    それらの通知後に、マッチした書き込み用タプル又はマッチした読み出し用タプルを削除するか又は削除しないかを指定するフラグと
    を含むことを特徴とする間接通信システム。
  2. 前記読み出し用タプル又は前記書き込み用タプルは、
    前記送信端末としての通信端末又は前記受信端末としての通信端末への前記読み出し用タプル又は前記書き込み用タプルの通知の有無を指定するフラグをさらにことを特徴とする請求項に記載の間接通信システム。
  3. 複数の端末間を接続する通信手段と、前記通信手段によって接続されるものであって、通信されるデータとなる書き込み用タプル又は読み出し用タプルの少なくとも一方を送信端末又は受信端末として所定の記憶手段に登録する1又は複数の通信端末とを備え、前記所定の記憶手段に登録される各タプルにマッチング対象又はマッチング条件を表す情報を含み、それらをマッチングすることで間接通信を行うシステムであって、
    送信端末となる通信端末が登録した書き込み用タプルにマッチング対象、受信端末となる通信端末が登録した読み出し用タプルにマッチング条件を含むとともに、
    マッチング条件を含む読み出し用タプルにマッチするマッチング対象を含む書き込み用タプルを登録した送信端末となる通信端末へ受信端末となる通信端末が当該読み出し用タプルを通知するか、
    又は、送信端末となる通信端末が登録した書き込み用タプルにマッチング条件、受信端末となる通信端末が登録した読み出し用タプルにマッチング対象を含むとともに、マッチング条件を含む書き込み用タプルにマッチするマッチング対象を含む読み出し用タプルを当該書き込み用タプルを登録した送信端末となる通信端末へ受信端末となる通信端末が通知し、
    前記読み出し用タプル又は前記書き込み用タプルは、
    前記送信端末としての通信端末又は前記受信端末としての通信端末への前記読み出し用タプル又は前記書き込み用タプルの通知の有無を指定するフラグを含むことを特徴とする間接通信システム。
  4. 複数の端末間を接続する通信手段と、前記通信手段によって接続されるものであって、通信されるデータとなる書き込み用タプル又は読み出し用タプルの少なくとも一方を送信端末又は受信端末として所定の記憶手段に登録する1又は複数の通信端末とを備え、前記所定の記憶手段に登録される各タプルにマッチング対象又はマッチング条件を表す情報を含、それらをマッチングすることで間接通信を行う間接通信システムにおける間接通信方法であって、
    送信端末となる通信端末が登録した書き込み用タプルにマッチング対象、受信端末となる通信端末が登録した読み出し用タプルにマッチング条件を含とともに、
    マッチング条件を含む読み出し用タプルにマッチするマッチング対象を含む書き込み用タプルを登録した送信端末となる通信端末へ受信端末となる通信端末が当該読み出し用タプルを通知するか、
    又は、送信端末となる通信端末が登録した書き込み用タプルにマッチング条件、受信端末となる通信端末が登録した読み出し用タプルにマッチング対象を含とともに、マッチング条件を含む書き込み用タプルにマッチするマッチング対象を含む読み出し用タプルを当該書き込み用タプルを登録した送信端末となる通信端末へ受信端末となる通信端末が通知し、
    前記読み出し用タプル又は前記書き込み用タプルは、
    前記マッチした全て若しくは一つの書き込み用タプルを、読み出し用タプルを登録した受信端末としての前記通信端末へ送信端末となる通信端末が通知するか、又は、前記マッチした読み出し用タプルを登録した受信端末としての前記通信端末の全て若しくは一つへ、送信端末となる通信端末が書き込み用タプルを通知するかを指定するフラグと、
    それらの通知後に、マッチした書き込み用タプル又はマッチした読み出し用タプルを削除するか又は削除しないかを指定するフラグとを含むことを特徴とする間接通信方法。
  5. 前記読み出し用タプル又は前記書き込み用タプルは、
    前記送信端末としての通信端末又は前記受信端末としての通信端末への前記読み出し用タプル又は前記書き込み用タプルの通知の有無を指定するフラグをさらにことを特徴とする請求項に記載に間接通信方法。
  6. 複数の端末間を接続する通信手段と、前記通信手段によって接続されるものであって、通信されるデータとなる書き込み用タプル又は読み出し用タプルの少なくとも一方を送信端末又は受信端末として所定の記憶手段に登録する1又は複数の通信端末とを備え、前記所定の記憶手段に登録される各タプルにマッチング対象又はマッチング条件を表す情報を含み、それらをマッチングすることで間接通信を行う間接通信システムにおける間接通信方法であって、
    送信端末となる通信端末が登録した書き込み用タプルにマッチング対象、受信端末となる通信端末が登録した読み出し用タプルにマッチング条件を含むとともに、
    マッチング条件を含む読み出し用タプルにマッチするマッチング対象を含む書き込み用タプルを登録した送信端末となる通信端末へ受信端末となる通信端末が当該読み出し用タプルを通知するか、
    又は、送信端末となる通信端末が登録した書き込み用タプルにマッチング条件、受信端末となる通信端末が登録した読み出し用タプルにマッチング対象を含むとともに、マッチング条件を含む書き込み用タプルにマッチするマッチング対象を含む読み出し用タプルを当該書き込み用タプルを登録した送信端末となる通信端末へ受信端末となる通信端末が通知し、
    前記送信端末としての通信端末又は前記受信端末としての通信端末への前記読み出し用タプル又は前記書き込み用タプルの通知の有無を指定するフラグを前記読み出し用タプル又は前記書き込み用タプルに含むことを特徴とする間接通信方法。
  7. 複数の端末間を接続する通信手段と、前記通信手段によって接続されるものであって、通信されるデータとなる書き込み用タプル又は読み出し用タプルの少なくとも一方を送信端末又は受信端末として所定の記憶手段に登録する1又は複数の通信端末とを備え、前記所定の記憶手段に登録される各タプルにマッチング対象又はマッチング条件を表す情報を含、それらをマッチングすることで間接通信を行う間接通信システム上のコンピュータに間接通信処理を行わせる間接通信プログラムであって
    送信端末となる通信端末が登録した書き込み用タプルにマッチング対象、受信端末となる通信端末が登録した読み出し用タプルにマッチング条件を含とともに、
    マッチング条件を含む読み出し用タプルにマッチするマッチング対象を含む書き込み用タプルを登録した送信端末となる通信端末へ受信端末となる通信端末が当該読み出し用タプルを通知するか、
    又は、送信端末となる通信端末が登録した書き込み用タプルにマッチング条件、受信端末となる通信端末が登録した読み出し用タプルにマッチング対象を含とともに、マッチング条件を含む書き込み用タプルにマッチするマッチング対象を含む読み出し用タプルを当該書き込み用タプルを登録した送信端末となる通信端末へ受信端末となる通信端末が通知する処理を行わせ、
    前記読み出し用タプル又は前記書き込み用タプルは、
    前記マッチした全て若しくは一つの書き込み用タプルを、読み出し用タプルを登録した受信端末としての前記通信端末へ送信端末となる通信端末が通知するか、又は、前記マッチした読み出し用タプルを登録した受信端末としての前記通信端末の全て若しくは一つへ、送信端末となる通信端末が書き込み用タプルを通知するかを指定するフラグと、
    それらの通知後に、マッチした書き込み用タプル又はマッチした読み出し用タプルを削除するか又は削除しないかを指定するフラグとを含む
    ことを特徴とする間接通信プログラム。
  8. 前記読み出し用タプル又は前記書き込み用タプルは、
    前記送信端末としての通信端末又は前記受信端末としての通信端末への前記読み出し用タプル又は前記書き込み用タプルの通知の有無を指定するフラグをさらに含むことを特徴とする請求項に記載に間接通信プログラム。
  9. 複数の端末間を接続する通信手段と、前記通信手段によって接続されるものであって、通信されるデータとなる書き込み用タプル又は読み出し用タプルの少なくとも一方を送信端末又は受信端末として所定の記憶手段に登録する1又は複数の通信端末とを備え、前記所定の記憶手段に登録される各タプルにマッチング対象又はマッチング条件を表す情報を含み、それらをマッチングすることで間接通信を行う間接通信システム上のコンピュータに間接通信処理を行わせる間接通信プログラムであって、
    送信端末となる通信端末が登録した書き込み用タプルにマッチング対象、受信端末となる通信端末が登録した読み出し用タプルにマッチング条件を含むとともに、
    マッチング条件を含む読み出し用タプルにマッチするマッチング対象を含む書き込み用タプルを登録した送信端末となる通信端末へ受信端末となる通信端末が当該読み出し用タプルを通知するか、
    又は、送信端末となる通信端末が登録した書き込み用タプルにマッチング条件、受信端末となる通信端末が登録した読み出し用タプルにマッチング対象を含むとともに、マッチング条件を含む書き込み用タプルにマッチするマッチング対象を含む読み出し用タプルを当該書き込み用タプルを登録した送信端末となる通信端末へ受信端末となる通信端末が通知する処理を行わせ、
    前記読み出し用タプル又は前記書き込み用タプルは、
    前記送信端末としての通信端末又は前記受信端末としての通信端末への前記読み出し用タプル又は前記書き込み用タプルの通知の有無を指定するフラグを含むことを特徴とする間接通信プログラム。
JP2008046530A 2008-02-27 2008-02-27 間接通信システム、通信方法および通信プログラム Expired - Fee Related JP4820833B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008046530A JP4820833B2 (ja) 2008-02-27 2008-02-27 間接通信システム、通信方法および通信プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008046530A JP4820833B2 (ja) 2008-02-27 2008-02-27 間接通信システム、通信方法および通信プログラム

Publications (2)

Publication Number Publication Date
JP2009206779A JP2009206779A (ja) 2009-09-10
JP4820833B2 true JP4820833B2 (ja) 2011-11-24

Family

ID=41148623

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008046530A Expired - Fee Related JP4820833B2 (ja) 2008-02-27 2008-02-27 間接通信システム、通信方法および通信プログラム

Country Status (1)

Country Link
JP (1) JP4820833B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5466191B2 (ja) * 2011-02-18 2014-04-09 日本電信電話株式会社 アクセス制御システム、サーバ管理装置、データ蓄積装置、アクセス制御方法、サーバ管理プログラム、及びデータ蓄積プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000167232A (ja) * 1998-06-30 2000-06-20 Masanobu Kujirada 出会い支援システム
JP2001309440A (ja) * 2000-04-18 2001-11-02 Sony Corp 携帯端末装置、サーバ装置、情報通信システム
JP2002101467A (ja) * 2000-09-26 2002-04-05 Nec Telecom Syst Ltd 情報通知方法および情報通知システム
JP2002216021A (ja) * 2001-01-23 2002-08-02 Fujitsu Ltd 特定エリアの携帯移動情報端末へ情報配信を行なうサーバーシステム
JP2004282158A (ja) * 2003-03-12 2004-10-07 Nippon Telegr & Teleph Corp <Ntt> メッセージ交換システム及びメッセージ交換サービス提供方法
JP4414831B2 (ja) * 2003-07-16 2010-02-10 株式会社エヌ・ティ・ティ・ドコモ 情報配信装置及び情報配信プログラム

Also Published As

Publication number Publication date
JP2009206779A (ja) 2009-09-10

Similar Documents

Publication Publication Date Title
CN103020228B (zh) 图像中的兴趣点(poi)数据定位
JP4832994B2 (ja) 文書管理プログラム、文書管理システムおよびアクセス権設定方法
CN100481082C (zh) 文档分发系统和方法
CN104395896A (zh) 到通信网络的自动内容转发
CN101123750A (zh) 便于推送内容的后台处理的装置和相关方法
JP4713257B2 (ja) データ記憶装置及びバージョン管理プログラム
JP4820833B2 (ja) 間接通信システム、通信方法および通信プログラム
JP5621229B2 (ja) ストレージシステム、管理方法及びプログラム
KR101856487B1 (ko) 파싱을 처리하기 위한 컴퓨팅 장치
WO2021062739A1 (zh) 一种分布式系统中消息的同步方法及装置
CN104284297A (zh) 一种资源迁移的方法、装置
CN111371941A (zh) 一种防骚扰电话的方法及装置、终端、存储介质
CN109726144A (zh) 一种数据报文的处理方法和装置
CN105930534B (zh) 一种基于云存储服务价格的数据碎片减少方法
JP7456176B2 (ja) ファイル管理装置およびファイル管理プログラム
CN101299705B (zh) 中继服务器以及中继通信系统
KR102428429B1 (ko) 데이터 처리 방법, 데이터 처리 장치 및 컴퓨터 판독 가능한 저장 매체
JP5732082B2 (ja) データ管理装置およびデータ管理プログラム
JP6583934B2 (ja) メールサーバ装置、メール管理方法、及びメール管理プログラム
JP2006350772A (ja) 電子メール処理装置、電子メール管理装置、電子メール処理プログラム、電子メール処理方法
CN113923176B (zh) 即时通讯的消息撤回方法、装置、设备及计算机可读介质
JP2009110255A (ja) 通信端末、そのコンピュータプログラム、そのデータ配信方法、これを用いたデータ配信システム
US20240111553A1 (en) Determinations of modifications in objects having nested child objects
JP2008242655A (ja) ファイル送信サーバ
CN112578996B (zh) 一种存储系统的元数据的发送方法及存储系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110801

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: 20110823

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110905

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140909

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4820833

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140909

Year of fee payment: 3

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