(57)【特許請求の範囲】
【請求項１】
センサクライアント装置が転送サーバにコマンド受け取り要求を登録し、アプリケーションクライアント装置がコマンド情報を前記転送サーバに登録し、当該転送サーバが、前記センサクライアント装置からのコマンド受け取り要求と、前記アプリケーションクライアント装置からのコマンド情報との条件比較を行い、当該条件が合致した場合に、前記センサクライアント装置にコマンド情報を転送するセンサ情報転送システムを構成する前記センサクライアント装置であって、
センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの１つ以上の転送サーバを特定するハッシュ計算手段と、
該センサクライアント装置のＩＤから、複数の前記転送サーバのうちの１つ以上の転送サーバを特定する収容先計算手段と、
該ハッシュ計算手段で特定された前記転送サーバの内の１つに、コマンド受け取り要求を登録し、該収容先計算手段で特定された転送サーバの内の１つに、コマンド受け取り要求を登録するコマンド受け取り要求登録手段と、
前記転送サーバからコマンド情報を受信するコマンド情報受信手段と、
を備えることを特徴とするセンサクライアント装置。
【請求項２】
センサクライアント装置が転送サーバにコマンド受け取り要求を登録し、アプリケーションクライアント装置がコマンド情報を前記転送サーバに登録し、当該転送サーバが、前記センサクライアント装置からのコマンド受け取り要求と、前記アプリケーションクライアント装置からのコマンド情報との条件比較を行い、当該条件が合致した場合に、前記センサクライアント装置にコマンド情報を転送するセンサ情報転送システムを構成する前記アプリケーションクライアント装置であって、
該アプリケーションクライアント装置が送信しようとするコマンド情報にはコマンド情報を送信しようとするセンサクライアント装置のＩＤ、あるいは、センサ情報の特徴を示すメタ情報、のいずれかを含み、
センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの１つ以上の転送サーバを特定するハッシュ計算手段と、
コマンド情報を送信しようとする前記センサクライアント装置のＩＤから前記複数の転送サーバのうちの１つ以上の転送サーバを特定する収容先計算手段と、
送信しようとするコマンド情報の中に、コマンド情報を送信しようとするセンサクライアント装置のＩＤを含む場合に、該収容先計算手段で特定された転送サーバに該コマンド情報を登録し、送信しようとするコマンド情報の中にコマンド情報を送信しようとするセンサクライアント装置のＩＤを含まない場合に、該ハッシュ計算手段で特定された転送サーバ全てに該コマンド情報を登録するコマンド情報登録手段と、
を備えることを特徴とするアプリケーションクライアント装置。
【請求項３】
一つ以上のセンサクライアント装置と、一つ以上のアプリケーションクライアント装置と、一つ以上の転送サーバとがネットワークで接続され、コマンド送信を負荷分散するセンサ情報転送システムであって、
該センサクライアント装置は、
センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの１つ以上の転送サーバを特定する第１のハッシュ計算手段と、
該センサクライアント装置のＩＤから、複数の前記転送サーバのうちの１つ以上の転送サーバを特定する第１の収容先計算手段と、
該第１のハッシュ計算手段で特定された前記転送サーバの内の１つに、コマンド受け取り要求を登録し、該第１の収容先計算手段で特定された転送サーバの内の１つに、コマンド受け取り要求を登録するコマンド受け取り要求登録手段と、
前記転送サーバからコマンド情報を受信するコマンド情報受信手段と、を備え、
該アプリケーションクライアント装置は、
該アプリケーションクライアント装置が送信しようとするコマンド情報にはコマンド情報を送信しようとするセンサクライアント装置のＩＤ、あるいは、センサ情報の特徴を示すメタ情報、のいずれかを含み、
センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの１つ以上の転送サーバを特定する第２のハッシュ計算手段と、
コマンド情報を送信しようとする前記センサクライアント装置のＩＤから前記複数の転送サーバのうちの１つ以上の転送サーバを特定する第２の収容先計算手段と、
送信しようとするコマンド情報の中に、コマンド情報を送信しようとするセンサクライアント装置のＩＤを含む場合に、該第２の収容先計算手段で特定された転送サーバに該コマンド情報を登録し、送信しようとするコマンド情報の中にコマンド情報を送信しようとするセンサクライアント装置のＩＤを含まない場合に、該第２のハッシュ計算手段で特定された転送サーバ全てに該コマンド情報を登録するコマンド情報登録手段と、を備え、
該転送サーバは、
コマンド受け取り要求を受信し保持する保持手段と、
コマンド情報を登録する登録手段と、
登録されたコマンド情報と、保持する該コマンド受け取り要求が含む条件とを比較する条件比較手段と、
比較の結果合致した該コマンド情報を該コマンド受け取り要求の登録元に転送する転送手段と、
を備えることを特徴とするセンサ情報転送システム。
【請求項４】
センサクライアント装置が転送サーバにコマンド受け取り要求を登録し、アプリケーションクライアント装置がコマンド情報を前記転送サーバに登録し、当該転送サーバが、前記センサクライアント装置からのコマンド受け取り要求と、前記アプリケーションクライアント装置からのコマンド情報との条件比較を行い、当該条件が合致した場合に、前記センサクライアント装置にコマンド情報を転送するセンサ情報転送システムを構成する前記センサクライアント装置のコマンド情報受信方法であって、
センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの１つ以上の転送サーバを特定するハッシュ計算工程と、
該センサクライアント装置のＩＤから、複数の前記転送サーバのうちの１つ以上の転送サーバを特定する収容先計算工程と、
該ハッシュ計算工程で特定された前記転送サーバの内の１つに、コマンド受け取り要求を登録し、該収容先計算工程で特定された転送サーバの内の１つに、コマンド受け取り要求を登録するコマンド受け取り要求登録工程と、
前記転送サーバからコマンド情報を受信するコマンド情報受信工程と、
を備えることを特徴とするコマンド情報受信方法。
【請求項５】
センサクライアント装置が転送サーバにコマンド受け取り要求を登録し、アプリケーションクライアント装置がコマンド情報を前記転送サーバに登録し、当該転送サーバが、前記センサクライアント装置からのコマンド受け取り要求と、前記アプリケーションクライアント装置からのコマンド情報との条件比較を行い、当該条件が合致した場合に、前記センサクライアント装置にコマンド情報を転送するセンサ情報転送システムを構成する前記アプリケーションクライアント装置のコマンド情報登録方法であって、
該アプリケーションクライアント装置が送信しようとするコマンド情報にはコマンド情報を送信しようとするセンサクライアント装置のＩＤ、あるいは、センサ情報の特徴を示すメタ情報、のいずれかを含み、
センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの１つ以上の転送サーバを特定するハッシュ計算工程と、
コマンド情報を送信しようとする前記センサクライアント装置のＩＤから前記複数の転送サーバのうちの１つ以上の転送サーバを特定する収容先計算工程と、
送信しようとするコマンド情報の中に、コマンド情報を送信しようとするセンサクライアント装置のＩＤを含む場合に、該収容先計算工程で特定された転送サーバに該コマンド情報を登録し、送信しようとするコマンド情報の中にコマンド情報を送信しようとするセンサクライアント装置のＩＤを含まない場合に、該ハッシュ計算工程で特定された転送サーバ全てに該コマンド情報を登録するコマンド情報登録工程と、
を備えることを特徴とするコマンド情報登録方法。
【請求項６】
一つ以上のセンサクライアント装置と、一つ以上のアプリケーションクライアント装置と、一つ以上の転送サーバとがネットワークで接続され、コマンド送信を負荷分散するセンサ情報転送システムのセンサ情報転送方法であって、
該センサクライアント装置が、
センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの１つ以上の転送サーバを特定する第１のハッシュ計算工程と、
該センサクライアント装置のＩＤから、複数の前記転送サーバのうちの１つ以上の転送サーバを特定する第１の収容先計算工程と、
該第１のハッシュ計算工程で特定された前記転送サーバの内の１つに、コマンド受け取り要求を登録し、該第１の収容先計算工程で特定された転送サーバの内の１つに、コマンド受け取り要求を登録するコマンド受け取り要求登録工程と、
前記転送サーバからコマンド情報を受信するコマンド情報受信工程と、を備え、
該アプリケーションクライアント装置が送信しようとするコマンド情報にはコマンド情報を送信しようとするセンサクライアント装置のＩＤ、あるいは、センサ情報の特徴を示すメタ情報、のいずれかを含み、
該アプリケーションクライアント装置が、
センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの１つ以上の転送サーバを特定する第２のハッシュ計算工程と、
コマンド情報を送信しようとする前記センサクライアント装置のＩＤから前記複数の転送サーバのうちの１つ以上の転送サーバを特定する第２の収容先計算工程と、
送信しようとするコマンド情報の中に、コマンド情報を送信しようとするセンサクライアント装置のＩＤを含む場合に、該第２の収容先計算工程で特定された転送サーバに該コマンド情報を登録し、送信しようとするコマンド情報の中にコマンド情報を送信しようとするセンサクライアント装置のＩＤを含まない場合に、該第２のハッシュ計算工程で特定された転送サーバ全てに該コマンド情報を登録するコマンド情報登録工程と、を備え、
該転送サーバが、
コマンド受け取り要求を受信し保持する保持工程と、
コマンド情報を登録する登録工程と、
登録されたコマンド情報と、保持する該コマンド受け取り要求が含む条件とを比較する条件比較工程と、
比較の結果合致した該コマンド情報を該コマンド受け取り要求の登録元に転送する転送工程と、
を備えることを特徴とするセンサ情報転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、センサ情報を即時転送するストリーム処理型のデータベースシステムに関する。
【背景技術】
【０００２】
従来、センサなどのデータを登録し条件に合致したものを検索あるいは転送することを可能とする、センサデータ向けの情報転送システムがあった。このようなセンサ情報転送システムの一つにuTupleSpace（非特許文献１）がある。uTupleSpaceの特徴の一つに、範囲条件を指定した、データの転送処理がある。
従来、センサからのデータの転送は、センサのＩＤ（識別子）を指定して、そのＩＤのセンサの情報をどのアプリケーションに届けるかといった方式であった。uTupleSpaceでは、アプリケーションがセンサＩＤ以外の範囲条件を指定し、その条件に合致したセンサデータをアプリケーションに届けることができる。これにより、例えば、ある部屋Ａの全ての温度センサの情報を取得するといった処理を容易に実現できる。
【０００３】
また、uTupleSpaceのさらなる特徴の一つに、センサからのデータの送信（イベント）だけでなく、センサへの制御データの送信（コマンド）をサポートすることがある。その際にも、前記の範囲条件をアプリケーションが指定することができる。これにより、例えば、ある部屋Ａの全ての警報ランプを点灯するといった処理を容易に実現できる。この場合、警報ランプを有する機器のリストをアプリケーションが管理しなくても該処理を実現できるという有用性がある。
これらは、センサへの送受信を行うアプリケーションの構築のために、センサ情報転送システムが有するべき重要な特徴である。
【０００４】
一方、センサの数が大量になった場合、センサ情報転送システムにおける転送サーバの処理量が増える。これに対処するため、転送サーバを複数台設置して、処理負荷を適切に分散する技術が重要であり、従来より提案されてきた。
非特許文献１では、処理負荷を静的に分散する技術が示されている。技術の概要は以下の通りである。
センサからのイベントデータ（ＥＡ：eventActual）と、アプリケーションからの取得要求（ＥＦ：eventFormal）について例示する。センサがＥＡを登録する際、ＥＡの内容のうち、センサの種別やメッセージタイプ等を示すメタ情報にハッシュ関数を適用し、複数台の転送サーバのうちどのサーバが処理を担当するかを決め、その転送サーバに該センサがＥＡを送信する。つまり、ある種類のＥＡは全て同一の転送サーバに送られる。
【０００５】
一方、アプリケーションがＥＦを登録する際、同様に、ＥＦの内容のうち取得しようとするセンサの種別やメッセージタイプ等を示すメタ情報に該ハッシュ関数を適用し、複数台の転送サーバのうち、どのサーバが処理を担当するかを決め、その転送サーバに該アプリケーションがＥＦを送信する。上記処理の結果、単一の転送サーバが、ある種類のＥＡおよびＥＦの登録要求をすべて受け取るので、ＥＦの条件に合致したＥＡを全て対応するアプリケーションに届けることができる。アプリケーションに該届ける処理、すなわちＥＡの転送処理は、ＥＡおよびＥＦの種類に応じて異なる転送サーバに負荷が分散された状態にて実行される。
また、アプリケーションからのコマンドデータ（ＣＡ：commandActual）と、センサからのコマンド受け取り要求（ＣＦ：commandFormal）についても、同様の処理を行い、転送処理を担当するサーバを分散させて処理することができる。
【０００６】
さらに、非特許文献２では、処理負荷を動的に分散する技術が示されている。前記従来技術では、ＥＡおよびＥＦの種類がまんべんなく多数存在する場合には、処理負荷を均一に分散することができたが、特定種類のＥＡおよびＥＦのみが偏って大量に存在する場合には、特定の転送サーバに処理負荷が集中する問題があった。当該従来技術では、以下のようにして、該問題を解決する。
【０００７】
すなわち、転送サーバへの負荷の集中を検出し、特定種類のＥＡおよびＥＦの処理を、２台以上の転送サーバから構成される転送サーバ群で受け持つように分担変更の決定を行う。分担変更後は、センサがＥＡを登録する際、ハッシュ関数によって得られた担当する転送サーバ群について、そのうちのいずれか１台を乱数等の任意の方法で選択し、該転送サーバにのみ該ＥＡを送信する。一方、アプリケーションがＥＦを登録する際、ハッシュ関数によって得られた担当する転送サーバ群について、該群が含むすべての転送サーバに該ＥＦを送信する。
【０００８】
また、分担変更後は、センサがＣＦを登録する際、ハッシュ関数によって得られた担当する転送サーバ群について、そのうちのいずれか１台を乱数等の任意の方法で選択し、該転送サーバにのみ該ＣＦを送信する。一方、アプリケーションがＣＡを登録する際、ハッシュ関数によって得られた担当する転送サーバ群について、該群が含むすべての転送サーバに該ＣＡを送信する。
【０００９】
上記方式が適切に動作するのは、以下に述べる理由に因る。まず前提として、ＥＡが１台にのみ送信されるのに対しＥＦが、またＣＦが１台にのみ送信されるのに対し、ＣＡが、
それぞれ転送サーバ群のうちのすべてに送信される処理となっている。このため、条件合致の処理において、合致漏れは生じない。
【００１０】
次に処理負荷について考察する。転送サーバ群のうちのすべてに送信する処理は、転送サーバ群の含むサーバ数が大きくなるにつれ、該送信する処理自体のオーバーヘッドが増加することから、システム全体として問題となりうる。
しかし、uTupleSpaceの典型的な適用先では、センサ台数が膨大となり、一方アプリケーションは限られることから、問題とはならないのである。
【００１１】
以下、具体的数量で例示する。センサが１億台存在し、１台のセンサが１万個のＥＡを登録すれば、ＥＡの個数は１兆個である。すなわち、ＥＡの登録処理は１兆回行われる。一方、平均的アプリケーションが１度に１０００万個のＥＡを取得するようなＥＦを登録する処理をしたとする。このとき、全てのＥＡが平均して１回ずつ読み出されるとすると、ＥＦの登録処理は合計１０万回行われることとなる。このため、ＥＡの登録回数に比べてＥＦの登録回数は７桁少ない。仮に転送サーバが１００台で負荷分散したとして、１兆回登録されるＥＡは登録処理ごとに１台の転送サーバにのみ送信される。一方、１０万回登録されるＥＦは登録処理毎に最大１００台の転送サーバに送信されることになるが、それでもＥＦの送信処理回数はＥＡのそれより少なくとも５桁少ないのである。このため、ＥＡとＥＦに関する負荷分散について、該方式は順調に機能する。
【００１２】
またＣＡとＣＦについても同様の考察が成立する。例えば、ある部屋Aの全ての警報ランプを点灯するといったＣＡを送信しＣＦが受け取る場合を考える。部屋の中に警報ランプが平均１００個存在するとすれば、ＣＡの登録回数はＣＦへの転送回数より２桁少なくて済む。このため、例えば転送サーバが数台〜数十台程度の負荷分散であれば、負荷分散したほうが、処理負荷が軽くなる。このように、該方式は、上記仮定の下では、順調に機能する。
【先行技術文献】
【非特許文献】
【００１３】
【非特許文献１】Takayuki Nakamura et al., "uTupleSpace: A Bi-Directional Shared Data Space for Wide-Area Sensor Network, " ２nd International Workshop on Sensor Networks and Ambient Intelligence （SENAMI 2009）, Dec. 2009.
【非特許文献２】荒川、他、「実世界データ共有機構uTupleSpaceにおける動的スケール化方式の評価」、電子情報通信学会技術研究報告、IN2009-21、2009年6月
【発明の概要】
【発明が解決しようとする課題】
【００１４】
しかしながら、上述のセンサ情報転送の動的負荷分散を行う従来技術においては、ある種類の典型的なコマンド送信アプリケーションにおいて、負荷分散により十分な負荷軽減ができないという問題があった。以下に問題となる例を示す。
ある部屋のセンサ装置を家電等と結びつけ、センサ情報転送システムを経由して遠隔地から家電の制御を行う、高度リモコン型アプリケーションを考える。制御とは具体的には、例えば電源のオン・オフや、空調設定温度の上げ下げなどが考えられる。アプリケーションの画面上には、部屋のレイアウトがイラスト表示され、家電のアイコンが表示され、マウスクリック等によって制御コマンドを送信できるものとする。
【００１５】
このようなアプリケーションでは、一つの家電操作コマンドに対して、反応させたい家電は高々１つである。なぜなら、部屋をレイアウト表示し、またその上にそれぞれの制御対象の家電をアイコン表示し、それをユーザーにクリックさせた時点で、制御コマンドを送信すべき対象は一意に定まり、アプリケーションが具体的送信先を知りうるからである。このようなアプリケーションで、例えばＣＦが合計１億個のＣＡすなわち制御コマンドを受け取った場合、ＣＡの登録処理も１億回行われる。このため、仮に転送サーバが１０台の負荷分散であれば、ＣＡの登録回数は最大１０億回となり、ＣＦへの転送回数より最大１０倍も多くなってしまう。このように、ＣＡの登録に関わるオーバーヘッドは無視できないものとなり、該動的負荷分散方法は所期の性能を発揮しなくなることが分かる。
【００１６】
なお、このようなアプリケーションでは、uTupleSpaceの提供する高度なデータの転送処理の特徴を必ずしも活用していない。そのため仮に、uTupleSpaceを使用せず、センサとアプリケーションをネットワーク経由で直接接続すれば、上記指摘した問題は生じない。しかしその場合、uTupleSpaceの提供する高度なデータの転送処理の特徴を活用することができなくなる。従って、上記問題となっているアプリケーションの他に、それ以外のアプリケーションを混在させて活用することができなくなる問題がある。
【００１７】
本発明の目的は、以上述べた事情に鑑み、uTupleSpaceの提供する高度なデータの転送処理の特徴を活用したコマンド送信型アプリケーションを容易に作成できるようにしつつ、それらの静的あるいは動的な負荷分散を行い、さらに、具体的送信先をアプリケーションが知りうるようなコマンド送信型アプリケーションも効率的に実現できるような、センサ情報転送システムを提供することにある。
【課題を解決するための手段】
【００１８】
上述した課題を解決するために、本発明は、センサクライアント装置（例えば、本実施形態におけるセンサ１０１）が転送サーバにコマンド受け取り要求を登録し、アプリケーションクライアント装置（例えば、本実施形態におけるアプリケーション装置１０４）がコマンド情報を前記転送サーバ（例えば、本実施形態における転送サーバ１０３）に登録し、当該転送サーバが、前記センサクライアント装置からのコマンド受け取り要求と、前記アプリケーションクライアント装置からのコマンド情報との条件比較を行い、当該条件が合致した場合に、前記センサクライアント装置にコマンド情報を転送するセンサ情報転送システムを構成する前記センサクライアント装置であって、センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの１つ以上の転送サーバを特定するハッシュ計算手段と、該センサクライアント装置のＩＤから、複数の前記転送サーバのうちの１つ以上の転送サーバを特定する収容先計算手段と、該ハッシュ計算手段で特定された前記転送サーバの内の１つに、コマンド受け取り要求を登録し、該収容先計算手段で特定された転送サーバの内の１つに、コマンド受け取り要求を登録するコマンド受け取り要求登録手段と、前記転送サーバからコマンド情報を受信するコマンド情報受信手段とを備えることを特徴とする。
【００１９】
また、本発明は、センサクライアント装置が転送サーバにコマンド受け取り要求を登録し、アプリケーションクライアント装置がコマンド情報を前記転送サーバに登録し、当該転送サーバが、前記センサクライアント装置からのコマンド受け取り要求と、前記アプリケーションクライアント装置からのコマンド情報との条件比較を行い、当該条件が合致した場合に、前記センサクライアント装置にコマンド情報を転送するセンサ情報転送システムを構成する前記アプリケーションクライアント装置であって、該アプリケーションクライアント装置が送信しようとするコマンド情報にはコマンド情報を送信しようとするセンサクライアント装置のＩＤ、あるいは、センサ情報の特徴を示すメタ情報、のいずれかを含み、センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの１つ以上の転送サーバを特定するハッシュ計算手段と、コマンド情報を送信しようとする前記センサクライアント装置のＩＤから前記複数の転送サーバのうちの１つ以上の転送サーバを特定する収容先計算手段と、送信しようとするコマンド情報の中に、コマンド情報を送信しようとするセンサクライアント装置のＩＤを含む場合に、該収容先計算手段で特定された転送サーバに該コマンド情報を登録し、送信しようとするコマンド情報の中にコマンド情報を送信しようとするセンサクライアント装置のＩＤを含まない場合に、該ハッシュ計算手段で特定された転送サーバ全てに該コマンド情報を登録するコマンド情報登録手段と、を備えることを特徴とする。
【００２０】
また、本発明は、一つ以上のセンサクライアント装置と、一つ以上のアプリケーションクライアント装置と、一つ以上の転送サーバとがネットワークで接続され、コマンド送信を負荷分散するセンサ情報転送システムであって、該センサクライアント装置は、センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの１つ以上の転送サーバを特定する第１のハッシュ計算手段と、該センサクライアント装置のＩＤから、複数の前記転送サーバのうちの１つ以上の転送サーバを特定する第１の収容先計算手段と、該第１のハッシュ計算手段で特定された前記転送サーバの内の１つに、コマンド受け取り要求を登録し、該第１の収容先計算手段で特定された転送サーバの内の１つに、コマンド受け取り要求を登録するコマンド受け取り要求登録手段と、前記転送サーバからコマンド情報を受信するコマンド情報受信手段と、を備え、該アプリケーションクライアント装置は、該アプリケーションクライアント装置が送信しようとするコマンド情報にはコマンド情報を送信しようとするセンサクライアント装置のＩＤ、あるいは、センサ情報の特徴を示すメタ情報、のいずれかを含み、センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの１つ以上の転送サーバを特定する第２のハッシュ計算手段と、コマンド情報を送信しようとする前記センサクライアント装置のＩＤから前記複数の転送サーバのうちの１つ以上の転送サーバを特定する第２の収容先計算手段と、送信しようとするコマンド情報の中に、コマンド情報を送信しようとするセンサクライアント装置のＩＤを含む場合に、該第２の収容先計算手段で特定された転送サーバに該コマンド情報を登録し、送信しようとするコマンド情報の中にコマンド情報を送信しようとするセンサクライアント装置のＩＤを含まない場合に、該第２のハッシュ計算手段で特定された転送サーバ全てに該コマンド情報を登録するコマンド情報登録手段と、を備え、該転送サーバは、コマンド受け取り要求を受信し保持する保持手段と、コマンド情報を登録する登録手段と、登録されたコマンド情報と、保持する該コマンド受け取り要求が含む条件とを比較する条件比較手段と、比較の結果合致した該コマンド情報を該コマンド受け取り要求の登録元に転送する転送手段と、を備えることを特徴とする。
【００２１】
また、本発明は、センサクライアント装置が転送サーバにコマンド受け取り要求を登録し、アプリケーションクライアント装置がコマンド情報を前記転送サーバに登録し、当該転送サーバが、前記センサクライアント装置からのコマンド受け取り要求と、前記アプリケーションクライアント装置からのコマンド情報との条件比較を行い、当該条件が合致した場合に、前記センサクライアント装置にコマンド情報を転送するセンサ情報転送システムを構成する前記センサクライアント装置のコマンド情報受信方法であって、センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの１つ以上の転送サーバを特定するハッシュ計算工程と、該センサクライアント装置のＩＤから、複数の前記転送サーバのうちの１つ以上の転送サーバを特定する収容先計算工程と、該ハッシュ計算工程で特定された前記転送サーバの内の１つに、コマンド受け取り要求を登録し、該収容先計算工程で特定された転送サーバの内の１つに、コマンド受け取り要求を登録するコマンド受け取り要求登録工程と、前記転送サーバからコマンド情報を受信するコマンド情報受信工程とを備えることを特徴とする。
【００２２】
また、本発明は、センサクライアント装置が転送サーバにコマンド受け取り要求を登録し、アプリケーションクライアント装置がコマンド情報を前記転送サーバに登録し、当該転送サーバが、前記センサクライアント装置からのコマンド受け取り要求と、前記アプリケーションクライアント装置からのコマンド情報との条件比較を行い、当該条件が合致した場合に、前記センサクライアント装置にコマンド情報を転送するセンサ情報転送システムを構成する前記アプリケーションクライアント装置のコマンド情報登録方法であって、該アプリケーションクライアント装置が送信しようとするコマンド情報にはコマンド情報を送信しようとするセンサクライアント装置のＩＤ、あるいは、センサ情報の特徴を示すメタ情報、のいずれかを含み、センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの１つ以上の転送サーバを特定するハッシュ計算工程と、コマンド情報を送信しようとする前記センサクライアント装置のＩＤから前記複数の転送サーバのうちの１つ以上の転送サーバを特定する収容先計算工程と、送信しようとするコマンド情報の中に、コマンド情報を送信しようとするセンサクライアント装置のＩＤを含む場合に、該収容先計算工程で特定された転送サーバに該コマンド情報を登録し、送信しようとするコマンド情報の中にコマンド情報を送信しようとするセンサクライアント装置のＩＤを含まない場合に、該ハッシュ計算工程で特定された転送サーバ全てに該コマンド情報を登録するコマンド情報登録工程と、を備えることを特徴とする。
【００２３】
また、本発明は、一つ以上のセンサクライアント装置と、一つ以上のアプリケーションクライアント装置と、一つ以上の転送サーバとがネットワークで接続され、コマンド送信を負荷分散するセンサ情報転送システムのセンサ情報転送方法であって、該センサクライアント装置が、センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの１つ以上の転送サーバを特定する第１のハッシュ計算工程と、該センサクライアント装置のＩＤから、複数の前記転送サーバのうちの１つ以上の転送サーバを特定する第１の収容先計算工程と、該第１のハッシュ計算工程で特定された前記転送サーバの内の１つに、コマンド受け取り要求を登録し、該第１の収容先計算工程で特定された転送サーバの内の１つに、コマンド受け取り要求を登録するコマンド受け取り要求登録工程と、前記転送サーバからコマンド情報を受信するコマンド情報受信工程と、を備え、該アプリケーションクライアント装置が送信しようとするコマンド情報にはコマンド情報を送信しようとするセンサクライアント装置のＩＤ、あるいは、センサ情報の特徴を示すメタ情報、のいずれかを含み、該アプリケーションクライアント装置が、センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの１つ以上の転送サーバを特定する第２のハッシュ計算工程と、コマンド情報を送信しようとする前記センサクライアント装置のＩＤから前記複数の転送サーバのうちの１つ以上の転送サーバを特定する第２の収容先計算工程と、送信しようとするコマンド情報の中に、コマンド情報を送信しようとするセンサクライアント装置のＩＤを含む場合に、該第２の収容先計算工程で特定された転送サーバに該コマンド情報を登録し、送信しようとするコマンド情報の中にコマンド情報を送信しようとするセンサクライアント装置のＩＤを含まない場合に、該第２のハッシュ計算工程で特定された転送サーバ全てに該コマンド情報を登録するコマンド情報登録工程と、を備え、該転送サーバは、コマンド受け取り要求を受信し保持する保持工程と、コマンド情報を登録する登録工程と、登録されたコマンド情報と、保持する該コマンド受け取り要求が含む条件とを比較する条件比較工程と、比較の結果合致した該コマンド情報を該コマンド受け取り要求の登録元に転送する転送工程と、を備えることを特徴とする。
【発明の効果】
【００２４】
本発明によれば、高度なデータの転送処理を行うコマンド送信型アプリケーションを容易に作成できるようにしつつ、それらの静的あるいは動的な負荷分散を行い、さらに、具体的送信先をアプリケーションが知りうるようなコマンド送信型アプリケーションも効率的に実現できる。
【図面の簡単な説明】
【００２５】
【図１】本発明の一実施形態におけるセンサ情報転送システムの全体の構成を示すブロック図である。
【図２】本発明の一実施形態におけるセンサ情報転送システムにおけるセンサの構成の一例を示すブロック図である。
【図３】本発明の一実施形態におけるセンサ情報転送システムにおけるアプリケーション装置の構成の一例を示すブロック図である。
【図４】本発明の一実施形態におけるセンサ情報転送システムにおける転送サーバの構成の一例を示すブロック図である。
【図５】本発明の一実施形態におけるセンサ情報転送システムにおける分担管理サーバの構成の一例を示すブロック図である。
【図６】本発明の一実施形態における収容先計算部の構成の一例を示すブロック図である。
【図７】本発明の一実施形態における情報受け取り要求の登録処理の説明図である。
【図８】本発明の一実施形態における情報受け取り要求の登録処理の説明に用いるフローチャートである。
【図９】本発明の一実施形態におけるセンサ情報転送システムにおける転送サーバの説明図である。
【図１０】本発明の一実施形態におけるセンサ情報転送システムにおける転送サーバの説明図である。
【図１１】本発明の一実施形態におけるセンサ情報転送システムにおける転送サーバの説明図である。
【図１２】本発明の一実施形態におけるセンサ情報転送システムにおける転送サーバの説明図である。
【図１３】本発明の一実施形態におけるコマンド情報の登録処理の説明図である。
【図１４】本発明の一実施形態におけるコマンド情報の登録処理の説明に用いるフローチャートである。
【発明を実施するための形態】
【００２６】
本発明の一実施形態を以下に示す。
図１は、本実施の形態におけるセンサ情報転送システム全体の構成を示す。ネットワーク１０５にセンサ１０１Ａ、センサ１０１Ｂ、センサ１０１Ｃ、アプリケーション装置１０２、転送サーバ１０３Ａ、転送サーバ１０３Ｂ、転送サーバ１０３Ｃ、転送サーバ１０３Ｄ、分担管理サーバ１０４が接続される。ここで、複数のセンサ１０１Ａ〜Ｃは同様の構成であるので、特に区別して説明する必要がない場合には、センサ１０１として説明する。同様に、転送サーバ１０３Ａ〜Ｄは同様の構成であるので、特に区別して説明する必要がない場合には、転送サーバ１０３として説明する。
センサ群とアプリケーション装置１０２は、転送サーバ群の機能を以下に詳述する方法により用いることで、互いに情報のやりとりを行う。
【００２７】
ここで、本実施の形態において、ネットワークはＩＰ（Internet Protocol）等のプロトコルにより有線接続されているものとする。本発明におけるネットワークの範囲はこれに限るものではなく、広汎なネットワークが利用可能である。特にセンサ群の接続について、ＩＰ以外のプロトコルを用いた無線ネットワーク、例えば携帯電話ネットワークを用いてもよい。さらに、それらネットワークと、ＩＰ等による有線接続ネットワークを相互接続する等、複数種類のネットワークが混在していてもよい。混在するネットワークの間にはメディアないしプロトコルを相互変換する適切なゲートウェイを挿入してもよい。
【００２８】
図２は、センサ１０１の構成を示す。センサ１０１は、具備する温度センサ１２６により温度を取得しサーバに送信する機能を持つのに加え、アラームランプ１２７およびブザー１２８を具備し、サーバからの指示に従い該ランプの赤色点灯ならびに該ブザーの鳴動を行えるものとする。また、センサ１０１は、転送サーバ群との通信機能を受け持つクライアントライブラリ１２０を具備する。クライアントライブラリ１２０は、イベント登録部１２１、ハッシュ計算部１２２、収容先計算部１２３、受け取り要求登録部１２４、ならびにコマンド受信部１２５を有する。
【００２９】
図３は、アプリケーション装置１０２の構成を示す。アプリケーション装置１０２は、ユーザーとの入出力機能を提供するアプリケーションロジック１３１と、転送サーバ群との通信機能を受け持つクライアントライブラリ１３０とを具備する。クライアントライブラリ１３０は、ハッシュ計算部１３２、収容先計算部１３３、コマンド登録部１３４を有する。ここで、ハッシュ計算部１３２および収容先計算部１３３は、センサ１０１が備えるハッシュ計算部１２２および収容先計算部１２３と同様の機能部であり、同様の方法によりハッシュ計算、収容先計算を行い、計算結果の整合性が保たれるものとする。
図４は、転送サーバ１０３の構成を示す。転送サーバ１０３は、イベント受信部１４１、受け取り要求受信部１４２、受け取り要求保持部１４３、コマンド受信登録部１４４、条件比較部１４５、ならびにコマンド転送部１４６を有する。
【００３０】
本実施の形態において、センサ情報転送システム全体は、非特許文献１および非特許文献２で示されるuTupleSpace技術に基づいて構築されるものとする。換言すると、上記述べた転送サーバ群は、非特許文献１における「uTupleServer」あるいは非特許文献２における「タプルサーバ」の機能を実装する。また、クライアントライブラリ１２０およびクライアントライブラリ１３０は、非特許文献１における「uTupleClient」の機能を実装する。これら技術の詳細は十分に開示されており、当業者により実施可能である。とりわけセンサからのイベントデータの処理について実施可能である。あるいは、とりわけ複数の転送サーバを設置しそれらの間で負荷分散を行う処理について、既に述べた従来技術の問題が未解決であることを除いては、実施可能である。ここで従来技術の問題とは、センサ情報転送の動的負荷分散を行う従来技術においてある種類の典型的なコマンド送信アプリケーションにおいて、負荷分散により十分な負荷軽減ができないという問題である。
【００３１】
そこで以下では、上述した従来技術の問題を解決するという本発明の趣旨に鑑み、特にセンサへのコマンドデータの送信に関わる処理について、実施の形態を詳細に示していく。
図５は、分担管理サーバ１０４の構成を示す。分担管理サーバ１０４は、分担管理テーブル１５０と、要求処理部１５１とを有する。分担管理テーブル１５０は、分担管理サーバ１０４の記憶領域に記憶された情報であり、文字列をキーとし、１つ以上の転送サーバの並びを値とするハッシュ表により管理される。ここで、センサ１０１のハッシュ計算部１２２あるいはアプリケーション装置１０２のハッシュ計算部１３２は、後述のように、情報の種別を示すtype属性値の文字列を含むハッシュ問い合わせ要求を、分担管理サーバ１０４に送信する。分担管理サーバ１０４の要求処理部１５１がこれを受信し、該要求が含む該文字列をキーとしてハッシュ表を検索し、転送サーバの並びを得る。要求処理部１５１は、該並びをセンサ１０１のハッシュ計算部１２２あるいはアプリケーション装置１０２のハッシュ計算部１３２に返却する。上記一連の処理手順により、センサ１０１のハッシュ計算部１２２あるいはアプリケーション装置１０２のハッシュ計算部１３２は、文字列から転送サーバの並びを得る計算処理を、システム全体で一意の結果を得られるようにしつつ実現する。
【００３２】
本実施の形態においては、入力「alarm_lamp」に対して出力「転送サーバＣ」を、また入力「buzzer」に対して出力「転送サーバＤ、転送サーバＡ、転送サーバＢ」を、それぞれ返すとして以下説明する。なお、上記示した分担管理サーバ１０４および分担管理テーブル１５０の実現方法は、非特許文献２に詳細に開示されている。
ここで、上記、情報の種別を示すtype属性値とは、本発明におけるセンサ情報の特徴を示すメタ情報のことであって、本実施の形態においてはＣＦおよびＣＡ、あるいはＥＡおよびＥＦ等の情報が含むセンサ種別を表す属性である。具体的には、後述するＣＦ（ＣＦ１７０〜１７２）ならびにＣＡ（２３０〜２３１）で例示されるデータフォーマットにおいて、例えばＣＡ２３０でtype=buzzerのように記載されているところのbuzzerという文字列を示す。ただし、本発明の範囲はこれに限るものではなく、本発明におけるセンサ情報の特徴を示すメタ情報としては、センサ情報に対し広汎に付与されるメタ情報であればよい。例えば、上述のものの他、アプリケーションジャンルを表す情報、情報の所有者や閲覧可能者を示す情報、実施事業者を示す情報、名前空間を区別するための情報などを用いてもよい。なおこのように、本実施の形態で扱うデータフォーマットは、「属性名=属性値,属性名=属性値,属性名=属性値……」のような可変長の並びとして表現する。
【００３３】
図６は、収容先計算部１２３（収容先計算部１３３）が保有するアドレス表１６０の内容を示す。本実施の形態において、センサAには固有の識別子（ＩＤ）として「０ｘ００１１」が、センサBには固有のＩＤとして「０ｘ００１２」が、センサＣには固有のＩＤとして「０ｘ００１３」が、それぞれ割り振られているものとする。アドレス表１６０は、センサＩＤから、対応する転送サーバ名を得るための表である。収容先計算部１２３（収容先計算部１３３）は該表を用い、センサＩＤを入力とし、転送サーバ名を出力とする計算機能を実装する。なお、ハッシュ計算部１２２（ハッシュ計算部１３２）並びに収容先計算部１２３（収容先計算部１３３）は、センサにおけるクライアントライブラリ１２０のものとアプリケーション装置１０２におけるクライアントライブラリ１３０のものとを含めて、システム全体で同一の計算結果を返すものとする。特に収容先計算部１２３（収容先計算部１３３）のアドレス表１６０については、本実施の形態では、各装置が個別に保有するものとした。ただし、本発明の範囲はこれに限るものではなく、例えばアドレス表の管理を専任されるサーバ装置をネットワーク上に別途準備し、各装置における収容先計算部１２３（収容先計算部１３３）は該サーバ装置に問い合わせを行うことで、収容先計算部１２３（収容先計算部１３３）がシステム全体で同一の計算結果を返すようにしてもよい。
【００３４】
図７は、本実施の形態において登録されているＣＦならびにこれから登録しようとするＣＦを示す。以下の例では、センサ１０１ＡがＣＦ１７０を既に登録しており、かつ、センサ１０１ＣがＣＦ１７１を既に登録している状態で、センサ１０１ＢがＣＦ１７２を新たに登録しようとする際の処理手順について例示する。なお、例えば、ＣＦ１７１はセンサＩＤが０ｘ００１３で現在位置が１０１号室にいるブザーの駆動要求待ち受けであることを示している。また、例えば、ＣＦ１７２はセンサＩＤが０ｘ００１２で現在位置が２０１号室にいるアラームランプの駆動要求待ち受けであることを示している。
【００３５】
図８は、センサ１０１ＢにおけるＣＦ登録処理の手順を示す。センサ１０１Ｂは、電源投入時等に、本手順を実行開始する（ステップＳ１０１）。ここで、投入しようとするＣＦ１７２は、センサ１０１Ｂに固有の情報を文字列表記したものなので、生成は容易である。まず、ハッシュ計算部１２２に、ＣＦ１７２の中のtype属性値を入力し、転送サーバのリスト、この例では転送サーバＣを得る（ステップＳ１０２）。次に、受け取り要求登録部１２４は、該ＣＦからaddress属性を削除した新たなＣＦを生成し、該転送サーバのうちのいずれか一つに対し、該新たなＣＦと登録事由「hash」を組とする、ＣＦ登録要求を送信する（ステップＳ１０３）。なお、このＣＦ登録要求は、転送サーバ１０３Ｃの受け取り要求受信部１４２が受け取り、受け取り要求保持部１４３に記憶させる。
【００３６】
次に、センサ１０１Ｂは、収容先計算部１２３に、ＣＦ１７２の中のaddress属性値を入力し、転送サーバBを得る（ステップＳ１０４）。次に、受け取り要求登録部１２４は、該転送サーバに対し、該ＣＦと登録事由「address」を組とする、ＣＦ登録要求を送信する（ステップＳ１０５）。なお、このＣＦ登録要求は、転送サーバ１０３Ｂの受け取り要求受信部１４２が受け取り、受け取り要求保持部１４３に記憶させる。センサ１０１ＢにおけるＣＦ登録処理の手順は以上で終了となる。
【００３７】
なお、ハッシュ計算部１２２により得られた転送サーバのリストが２台以上である場合というのは、従来技術における動的負荷分散を行っている場合に生じ得る。非特許文献２に実現方法の詳細が開示されている。そのような場合の処理方法の概略は前述したとおりであり、すなわち、センサ１０１がＣＦを登録する際、ハッシュ関数によって得られた担当する転送サーバ群について、そのうちのいずれか１台を乱数等の任意の方法で選択し、該転送サーバにのみ該ＣＦを送信する。一方、アプリケーション装置１０２がＣＡを登録する際、ハッシュ関数によって得られた担当する転送サーバ群について、該群が含むすべての転送サーバ１０３に該ＣＡを送信する。
【００３８】
図９は、転送サーバ１０１Ａの受け取り要求保持部１４３（受け取り要求保持部１４３Ａ）の構成を示す。受け取り要求保持部１４３Ａは、ＣＦ待ち受け表１８０（ＣＦ待ち受け表１８０Ａ）を記憶する。該表の１行目は、ＣＦ１７０に対応する。各行の１桁目は、該表が保持するＣＦを意味する。また、各行の２桁目は、そのＣＦの登録要求で併せて送信された、登録事由を意味する。また、各行の３桁目は、そのＣＦの登録要求を送信したセンサがいずれであるかを意味する。該表は、上記ＣＦ登録処理の手順の結果、変化しない。
【００３９】
図１０は、転送サーバ１０３Ｂの受け取り要求保持部１４３（受け取り要求保持部１４３Ｂ）の構成を示す。受け取り要求保持部１４３Ｂは、ＣＦ待ち受け表１８０（ＣＦ待ち受け表１８０Ｂ）を記憶する。該表の１行目は、ＣＦ１７１に対応する。該表の２行目（符号ａ）は、新たに登録されたＣＦ１７２に対応するものであり、上記ＣＦ登録処理の手順の結果、追記保存された部分である。該行の１桁目はＣＦ１７２の内容を、２桁目は登録事由「address」を、３桁目は登録元のセンサがセンサ１０１Ｂであることを、それぞれ意味する。
【００４０】
図１１は、転送サーバ１０３Ｃの受け取り要求保持部１４３（受け取り要求保持部１４３Ｃ）の構成を示す。受け取り要求保持部１４３Ｃは、ＣＦ待ち受け表１８０（ＣＦ待ち受け表１８０Ｃ）を記憶する。該表の１行目は、ＣＦ１７０に対応する。該表の２行目（符号ａ）は、新たに登録されたＣＦ１７２に対応するものであり、上記ＣＦ登録処理の手順の結果、追記保存された部分である。該行の１桁目はＣＦ１７２の内容から、上述のステップＳ１０３によりaddress属性を削除したものを、２桁目は登録事由「hash」を、３桁目は登録元のセンサがセンサ１０１Ｂであることを、それぞれ意味する。
【００４１】
図１２は、転送サーバ１０３Dの受け取り要求保持部１４３（受け取り要求保持部１４３Ｄ）の構成を示す。受け取り要求保持部１４３Ｄは、ＣＦ待ち受け表１８０（ＣＦ待ち受け表１８０Ｄ）を記憶する。該表の１行目は、ＣＦ１７１に対応する。該表は、上記ＣＦ登録処理の手順の結果、変化しない。なお、ＣＦ１７１の登録事由「hash」については、分担管理テーブル１５０の「buzzer」の検索結果が「転送サーバＤ、転送サーバＡ、転送サーバＢ」の３台であることから、転送サーバＤ、転送サーバＡ、転送サーバＢのうちいずれか一つの中の受け取り要求保持部１４３が該ＣＦを登録事由「hash」で保持する可能性がある。ここでは、本実施の形態における説明の一例として、転送サーバＤが該ＣＦを保持していたものとしてデータの例を示した。これはすなわち、あるＣＡと該ＣＦとの照合を漏れなく行うためには、転送サーバＤ、転送サーバＡ、転送サーバＢの全てにおいて照合処理を行うことによって、全ての可能性をあたる必要があることを示している。この処理の流れは、非特許文献２に開示されている実現方法の詳細の通りである。以上述べたＣＦ登録処理により、転送サーバ群にＣＦが登録され、システム全体としては新たなＣＡの到着を待ち受ける状態となる。
【００４２】
図１３は、本実施の形態においてこれから登録しようとするＣＡを示す図である。以下の例では、アプリケーション装置１０２がＣＡ２３０をまず新たに登録し、次いで、ＣＡ２３１をさらに新たに登録する際の処理手順について例示する。なお、例えば、ＣＡ２３０はセンサＩＤが０ｘ００１３のブザーに対するonの操作要求であることを示している。なおその際、現在位置は値によらず条件合致と見なすことを示している。また、例えば、ＣＡ（２３１）は現在位置が１０１号室〜１９９号室の範囲に含まれるアラームランプに対するredの操作要求であることを示している。このように、それぞれのＣＡはメタデータ（条件）とデータを含む。条件部分は転送サーバにおいてＣＦとの条件比較処理が行われ、合致した際はＣＦを登録したセンサが該ＣＡのデータを受け取って所定の動作、例えばブザーを鳴動したりアラームを赤色点灯したりする等の動作を行う。
【００４３】
図１４は、アプリケーション装置１０２におけるＣＡ登録処理の手順を示す。アプリケーションロジック１３１はユーザーの操作を受けて、まず、ＣＡ２３０の登録処理を
クライアントライブラリ１３０に依頼することで開始する（ステップＳ２０１）。クライアントライブラリ１３０は、該ＣＡがaddress属性を含むかを判断する（ステップＳ２０２）。ＣＡ２３０はaddress属性を含むので、次に、収容先計算部１３３に、該ＣＡの中のaddress属性値を入力し、転送サーバ１０３Ｂを得る（ステップＳ２０３）。次に、コマンド登録部１３４は、該転送サーバ１０３Ｂに対し、該ＣＡを内容として含むＣＡ登録要求を送信する（ステップＳ２０４）。
【００４４】
なお、このＣＡ登録要求は、転送サーバ１０３Ｂのコマンド受信登録部１４４が受け取り、条件比較部１４５が該ＣＡ２３０と受け取り要求保持部１４３が記憶するＣＦとの条件比較処理を行う。その結果、ＣＦ待ち受け表１８０（ＣＦ待ち受け表１８０Ｂ）の１行目に保持されるＣＦと合致するため、該行の３桁目のセンサすなわちセンサ１０１Ｃに対して、コマンド転送部１４６は該ＣＡを送信する。センサ１０１Ｃのコマンド受信部１２５は該ＣＡを受信し、該ＣＡはtype=buzzerであるため、センサ１０１Ｃは具備するブザー１２８を値onに操作すなわち鳴動を行う。
【００４５】
次に、アプリケーションロジック１３１はユーザーの操作を受けて、ＣＡ２３１の登録処理をクライアントライブラリ１３０に依頼することで開始する（ステップＳ２０１）。クライアントライブラリ１３０は、該ＣＡがaddress属性を含むかを判断する（ステップＳ２０２）。ＣＡ２３１はaddress属性を含まないので、次に、ハッシュ計算部１３２に、該ＣＡの中のtype属性値を入力し、転送サーバのリスト、この例では転送サーバＣを得る（ステップＳ２０５）。次に、コマンド登録部１３４は、該転送サーバのリストに含まれる全ての転送サーバに対し、該ＣＡを内容として含むＣＡ登録要求を送信する（ステップＳ２０４）。なお、本実施の形態において、ステップＳ２０５について処理対象とするＣＡがtype属性値を含まない場合には、クライアントライブラリ１３０の入力エラーである。
【００４６】
なお、ハッシュ計算部１３２により得られた転送サーバのリストが２台以上である場合というのは、従来技術における動的負荷分散を行っている場合に生じ得るものであり、非特許文献２に実現方法の詳細が開示されていることは、既に述べた通りである。なお、このＣＡ登録要求は、転送サーバ１０３Ｃのコマンド受信登録部１４４が受け取り、条件比較部１４５が該ＣＡ２３１と受け取り要求保持部１４３の保持するＣＦとの条件比較処理を行う。その結果、ＣＦ待ち受け表１８０Ｃの１行目に保持されるＣＦと合致するため、該行の３桁目のセンサすなわちセンサ１０１Ａに対して、コマンド転送部１４６は該ＣＡを送信する。センサ１０１Ａのコマンド受信部１２５は該ＣＡを受信し、該ＣＡはtype=alarm_lampであるため、センサ１０１Ａは具備するアラームランプ１２７を値redに操作すなわち赤色点灯を行う。
【００４７】
ここで、上記述べた２種類のＣＡの登録処理が、本発明によりどのように効率よく扱われるかを確認しておく。ＣＡ２３０はaddress属性を中に含む操作であり、このようなＣＡを生成する典型的アプリケーションとしては、センサ情報転送システムを経由して遠隔地から家電の制御を行う、高度リモコン型アプリケーションが挙げられる。既に述べたように、該アプリケーションは、従来技術において動的負荷分散によりＣＡの登録に関わるオーバーヘッドは無視できないほど大きくなるという問題があった。本実施形態によると該問題は解決でき、具体的には上記実施例において、ステップＳ２０３により、単一の転送サーバが選択されるので、ＣＡの登録処理を行う対象は１台の転送サーバで済む。このため例えば、前記述べた数量例に従って例示するとすれば、ＣＦが合計１億個のＣＡすなわち制御コマンドを受け取った場合、ＣＡの登録処理も１億回行われるが、その際仮に転送サーバが何台の負荷分散であったとしても、ＣＡの登録回数は１億回となり、ＣＦへの転送回数に等しくなるため、ＣＡの登録に関わるオーバーヘッドを十分小さくできるという利点が得られる。
【００４８】
仮に本発明を適用しなかったとすると、前述の実施例においては、type=buzzerを受け持つ転送サーバすなわち分担管理テーブル１５０によると転送サーバＤ、転送サーバＡ、転送サーバＣの３台全てにＣＡの登録処理を行わなければならなくなるため、このため例えば前記述べた数量例に従って例示するとすれば、ＣＡの登録処理を１億回行うとして、各処理ごとに３台の転送サーバに登録を行うためＣＡの登録回数は３億回となり、ＣＡの登録に関わるオーバーヘッドが無視できなくなるほど大きいという問題が起きていたところである。
【００４９】
次に、ＣＡ２３１はaddress属性を中に含まず、範囲条件を指定してコマンド送信する操作である。このような高度な操作は、uTupleSpaceの提供する高度なデータの転送処理の特徴を活用したものである。仮に、uTupleSpaceを使用せず、センサとアプリケーションをネットワーク経由で直接接続したとすると、該操作の実現は困難である。本実施の形態においては、このようなＣＡであっても、ステップＳ２０５により従来通りの処理手順を用いて転送サーバにＣＡの登録処理を行うため、高い機能性を実現できる。
【００５０】
上記述べたように、本実施の形態によれば、高度なデータの転送処理を行うコマンド送信型アプリケーションを容易に作成できるようにしつつ、それらの静的ならびに動的な負荷分散を行い、さらに、具体的送信先をアプリケーションが知りうるようなコマンド送信型アプリケーションも効率的に実現できる。
【００５１】
以上、本発明に関わる、センサへのコマンドデータの送信処理について、実施の形態を詳細に示してきた。既に述べたように、本実施の形態において、センサ情報転送システム全体は、非特許文献１および非特許文献２で示されるuTupleSpace技術に基づいて構築することが可能である。これら技術の詳細は十分に開示されており当業者により実施可能であり、とりわけセンサからのイベントデータの処理について実施可能である。例えば、センサデータの記録処理は以下のように実施できる。すなわち、センサ１０１Ａは具備する温度センサ１２６により温度を取得し、具備するクライアントライブラリ１２０の中のイベント登録部１２１が、ネットワーク１０５に登録要求を送出することによって、転送サーバ群の中のいずれか一つの転送サーバにＥＡの登録要求を送信する。ここでＥＡとは、uTupleSpace技術におけるセンサからのイベントデータ（ＥＡ）を表す用語であり、上記文献により開示されている。該転送サーバは、該転送サーバが具備するイベント受信部１４１が該要求を受け取り、該転送サーバが管理する記憶装置に該ＥＡを記録する。なお、上記いずれか一つの転送サーバを選択する方法については、静的な負荷分散に基づき選択する方法が非特許文献１に開示されており、また、動的な負荷分散に基づき選択する方法が非特許文献２に開示されており、実施方法は明確である。
【００５２】
なお、本実施の形態において、address属性を含むＣＡの送信処理は、address属性値により決定される１台の転送サーバが受け持つこととしたが、本発明の範囲はこれに限るものではなく、複数台の転送サーバが受け持ち負荷分散してもよい。その場合には、例えば、アドレス表１６０の検索結果として転送サーバのリストを返すようにして、収容先計算部１２３の計算結果が２台以上の転送サーバのリストであった場合に、それらリストに含まれる転送サーバの一部ないしは全ての転送サーバにＣＦあるいはＣＡ登録処理を適宜分担させるようにしてもよい。
【符号の説明】
【００５３】
１０１Ａ〜１０１Ｃ：センサ
１０２：アプリケーション装置
１０３Ａ〜１０３Ｄ：転送サーバ
１０４：分担管理サーバ
１０５：ネットワーク
１２０：クライアントライブラリ
１２１：イベント登録部
１２２：ハッシュ計算部
１２３：収容先計算部
１２４：受け取り要求登録部
１２５：コマンド受信部
１２６：温度センサ
１２７：アラームランプ
１２８：ブザー
１３０：クライアントライブラリ
１３１：アプリケーションロジック
１３２：ハッシュ計算部
１３３：収容先計算部
１３４：コマンド登録部
１４１：イベント受信部
１４２：受け取り要求受信部
１４３：受け取り要求保持部
１４４：コマンド受信登録部
１４５：条件比較部
１４６：コマンド転送部
１５０：分担管理テーブル
１５１：要求処理部
【図１】
0005394329.tif 000002
【図２】
0005394329.tif 000003
【図３】
0005394329.tif 000004
【図４】
0005394329.tif 000005
【図５】
0005394329.tif 000006
【図６】
0005394329.tif 000007
【図７】
0005394329.tif 000008
【図８】
0005394329.tif 000009
【図９】
0005394329.tif 000010
【図１０】
0005394329.tif 000011
【図１１】
0005394329.tif 000012
【図１２】
0005394329.tif 000013
【図１３】
0005394329.tif 000014
【図１４】
0005394329.tif 000015