センサクライアント装置、アプリケーションクライアント装置、センサ情報転送システム、コマンド情報受信方法、コマンド情報登録方法、センサ情報転送方法
【課題】高度なデータの転送処理を行えると共に、コマンドの送信アプリケーションでの負荷分散を効率的に行えるようにする。
【解決手段】センサクライアント装置は、「address」属性値を登録事由とするCFの転送先は収容先計算部により1台に特定し、「hash」属性値を登録事由とするCFの転送先はハッシュ計算部により一台又は複数台に特定し、転送サーバにそれぞれ登録する。アプリケーションクライアント装置は、「address」属性値を含むCAの転送先は収容先計算部により1台に特定し、「address」属性値を含まないCAの転送先はハッシュ計算部により一台又は複数台に特定し、転送サーバにそれぞれ登録する。「address」属性値を含むCAは、負荷分散を行った場合にもオーバーヘッドが増大しない。「address」属性値を含まないCAは、高度なデータの転送処理を行える。
【解決手段】センサクライアント装置は、「address」属性値を登録事由とするCFの転送先は収容先計算部により1台に特定し、「hash」属性値を登録事由とするCFの転送先はハッシュ計算部により一台又は複数台に特定し、転送サーバにそれぞれ登録する。アプリケーションクライアント装置は、「address」属性値を含むCAの転送先は収容先計算部により1台に特定し、「address」属性値を含まないCAの転送先はハッシュ計算部により一台又は複数台に特定し、転送サーバにそれぞれ登録する。「address」属性値を含むCAは、負荷分散を行った場合にもオーバーヘッドが増大しない。「address」属性値を含まないCAは、高度なデータの転送処理を行える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、センサ情報を即時転送するストリーム処理型のデータベースシステムに関する。
【背景技術】
【0002】
従来、センサなどのデータを登録し条件に合致したものを検索あるいは転送することを可能とする、センサデータ向けの情報転送システムがあった。このようなセンサ情報転送システムの一つにuTupleSpace(非特許文献1)がある。uTupleSpaceの特徴の一つに、範囲条件を指定した、データの転送処理がある。
従来、センサからのデータの転送は、センサのID(識別子)を指定して、そのIDのセンサの情報をどのアプリケーションに届けるかといった方式であった。uTupleSpaceでは、アプリケーションがセンサID以外の範囲条件を指定し、その条件に合致したセンサデータをアプリケーションに届けることができる。これにより、例えば、ある部屋Aの全ての温度センサの情報を取得するといった処理を容易に実現できる。
【0003】
また、uTupleSpaceのさらなる特徴の一つに、センサからのデータの送信(イベント)だけでなく、センサへの制御データの送信(コマンド)をサポートすることがある。その際にも、前記の範囲条件をアプリケーションが指定することができる。これにより、例えば、ある部屋Aの全ての警報ランプを点灯するといった処理を容易に実現できる。この場合、警報ランプを有する機器のリストをアプリケーションが管理しなくても該処理を実現できるという有用性がある。
これらは、センサへの送受信を行うアプリケーションの構築のために、センサ情報転送システムが有するべき重要な特徴である。
【0004】
一方、センサの数が大量になった場合、センサ情報転送システムにおける転送サーバの処理量が増える。これに対処するため、転送サーバを複数台設置して、処理負荷を適切に分散する技術が重要であり、従来より提案されてきた。
非特許文献1では、処理負荷を静的に分散する技術が示されている。技術の概要は以下の通りである。
センサからのイベントデータ(EA:eventActual)と、アプリケーションからの取得要求(EF:eventFormal)について例示する。センサがEAを登録する際、EAの内容のうち、センサの種別やメッセージタイプ等を示すメタ情報にハッシュ関数を適用し、複数台の転送サーバのうちどのサーバが処理を担当するかを決め、その転送サーバに該センサがEAを送信する。つまり、ある種類のEAは全て同一の転送サーバに送られる。
【0005】
一方、アプリケーションがEFを登録する際、同様に、EFの内容のうち取得しようとするセンサの種別やメッセージタイプ等を示すメタ情報に該ハッシュ関数を適用し、複数台の転送サーバのうち、どのサーバが処理を担当するかを決め、その転送サーバに該アプリケーションがEFを送信する。上記処理の結果、単一の転送サーバが、ある種類のEAおよびEFの登録要求をすべて受け取るので、EFの条件に合致したEAを全て対応するアプリケーションに届けることができる。アプリケーションに該届ける処理、すなわちEAの転送処理は、EAおよびEFの種類に応じて異なる転送サーバに負荷が分散された状態にて実行される。
また、アプリケーションからのコマンドデータ(CA:commandActual)と、センサからのコマンド受け取り要求(CF:commandFormal)についても、同様の処理を行い、転送処理を担当するサーバを分散させて処理することができる。
【0006】
さらに、非特許文献2では、処理負荷を動的に分散する技術が示されている。前記従来技術では、EAおよびEFの種類がまんべんなく多数存在する場合には、処理負荷を均一に分散することができたが、特定種類のEAおよびEFのみが偏って大量に存在する場合には、特定の転送サーバに処理負荷が集中する問題があった。当該従来技術では、以下のようにして、該問題を解決する。
【0007】
すなわち、転送サーバへの負荷の集中を検出し、特定種類のEAおよびEFの処理を、2台以上の転送サーバから構成される転送サーバ群で受け持つように分担変更の決定を行う。分担変更後は、センサがEAを登録する際、ハッシュ関数によって得られた担当する転送サーバ群について、そのうちのいずれか1台を乱数等の任意の方法で選択し、該転送サーバにのみ該EAを送信する。一方、アプリケーションがEFを登録する際、ハッシュ関数によって得られた担当する転送サーバ群について、該群が含むすべての転送サーバに該EFを送信する。
【0008】
また、分担変更後は、センサがCFを登録する際、ハッシュ関数によって得られた担当する転送サーバ群について、そのうちのいずれか1台を乱数等の任意の方法で選択し、該転送サーバにのみ該CFを送信する。一方、アプリケーションがCAを登録する際、ハッシュ関数によって得られた担当する転送サーバ群について、該群が含むすべての転送サーバに該CAを送信する。
【0009】
上記方式が適切に動作するのは、以下に述べる理由に因る。まず前提として、EAが1台にのみ送信されるのに対しEFが、またCFが1台にのみ送信されるのに対し、CAが、
それぞれ転送サーバ群のうちのすべてに送信される処理となっている。このため、条件合致の処理において、合致漏れは生じない。
【0010】
次に処理負荷について考察する。転送サーバ群のうちのすべてに送信する処理は、転送サーバ群の含むサーバ数が大きくなるにつれ、該送信する処理自体のオーバーヘッドが増加することから、システム全体として問題となりうる。
しかし、uTupleSpaceの典型的な適用先では、センサ台数が膨大となり、一方アプリケーションは限られることから、問題とはならないのである。
【0011】
以下、具体的数量で例示する。センサが1億台存在し、1台のセンサが1万個のEAを登録すれば、EAの個数は1兆個である。すなわち、EAの登録処理は1兆回行われる。一方、平均的アプリケーションが1度に1000万個のEAを取得するようなEFを登録する処理をしたとする。このとき、全てのEAが平均して1回ずつ読み出されるとすると、EFの登録処理は合計10万回行われることとなる。このため、EAの登録回数に比べてEFの登録回数は7桁少ない。仮に転送サーバが100台で負荷分散したとして、1兆回登録されるEAは登録処理ごとに1台の転送サーバにのみ送信される。一方、10万回登録されるEFは登録処理毎に最大100台の転送サーバに送信されることになるが、それでもEFの送信処理回数はEAのそれより少なくとも5桁少ないのである。このため、EAとEFに関する負荷分散について、該方式は順調に機能する。
【0012】
またCAとCFについても同様の考察が成立する。例えば、ある部屋Aの全ての警報ランプを点灯するといったCAを送信しCFが受け取る場合を考える。部屋の中に警報ランプが平均100個存在するとすれば、CAの登録回数はCFへの転送回数より2桁少なくて済む。このため、例えば転送サーバが数台〜数十台程度の負荷分散であれば、負荷分散したほうが、処理負荷が軽くなる。このように、該方式は、上記仮定の下では、順調に機能する。
【先行技術文献】
【非特許文献】
【0013】
【非特許文献1】Takayuki Nakamura et al., "uTupleSpace: A Bi-Directional Shared Data Space for Wide-Area Sensor Network, " 2nd International Workshop on Sensor Networks and Ambient Intelligence (SENAMI 2009), Dec. 2009.
【非特許文献2】荒川、他、「実世界データ共有機構uTupleSpaceにおける動的スケール化方式の評価」、電子情報通信学会技術研究報告、IN2009-21、2009年6月
【発明の概要】
【発明が解決しようとする課題】
【0014】
しかしながら、上述のセンサ情報転送の動的負荷分散を行う従来技術においては、ある種類の典型的なコマンド送信アプリケーションにおいて、負荷分散により十分な負荷軽減ができないという問題があった。以下に問題となる例を示す。
ある部屋のセンサ装置を家電等と結びつけ、センサ情報転送システムを経由して遠隔地から家電の制御を行う、高度リモコン型アプリケーションを考える。制御とは具体的には、例えば電源のオン・オフや、空調設定温度の上げ下げなどが考えられる。アプリケーションの画面上には、部屋のレイアウトがイラスト表示され、家電のアイコンが表示され、マウスクリック等によって制御コマンドを送信できるものとする。
【0015】
このようなアプリケーションでは、一つの家電操作コマンドに対して、反応させたい家電は高々1つである。なぜなら、部屋をレイアウト表示し、またその上にそれぞれの制御対象の家電をアイコン表示し、それをユーザーにクリックさせた時点で、制御コマンドを送信すべき対象は一意に定まり、アプリケーションが具体的送信先を知りうるからである。このようなアプリケーションで、例えばCFが合計1億個のCAすなわち制御コマンドを受け取った場合、CAの登録処理も1億回行われる。このため、仮に転送サーバが10台の負荷分散であれば、CAの登録回数は最大10億回となり、CFへの転送回数より最大10倍も多くなってしまう。このように、CAの登録に関わるオーバーヘッドは無視できないものとなり、該動的負荷分散方法は所期の性能を発揮しなくなることが分かる。
【0016】
なお、このようなアプリケーションでは、uTupleSpaceの提供する高度なデータの転送処理の特徴を必ずしも活用していない。そのため仮に、uTupleSpaceを使用せず、センサとアプリケーションをネットワーク経由で直接接続すれば、上記指摘した問題は生じない。しかしその場合、uTupleSpaceの提供する高度なデータの転送処理の特徴を活用することができなくなる。従って、上記問題となっているアプリケーションの他に、それ以外のアプリケーションを混在させて活用することができなくなる問題がある。
【0017】
本発明の目的は、以上述べた事情に鑑み、uTupleSpaceの提供する高度なデータの転送処理の特徴を活用したコマンド送信型アプリケーションを容易に作成できるようにしつつ、それらの静的あるいは動的な負荷分散を行い、さらに、具体的送信先をアプリケーションが知りうるようなコマンド送信型アプリケーションも効率的に実現できるような、センサ情報転送システムを提供することにある。
【課題を解決するための手段】
【0018】
上述した課題を解決するために、本発明は、センサクライアント装置(例えば、本実施形態におけるセンサ101)が転送サーバにコマンド受け取り要求を登録し、アプリケーションクライアント装置(例えば、本実施形態におけるアプリケーション装置104)がコマンド情報を前記転送サーバ(例えば、本実施形態における転送サーバ103)に登録し、当該転送サーバが、前記センサクライアント装置からのコマンド受け取り要求と、前記アプリケーションクライアント装置からのコマンド情報との条件比較を行い、当該条件が合致した場合に、前記センサクライアント装置にコマンド情報を転送するセンサ情報転送システムを構成する前記センサクライアント装置であって、センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定するハッシュ計算手段と、該センサクライアント装置のIDから、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する収容先計算手段と、該ハッシュ計算手段で特定された前記転送サーバに、コマンド受け取り要求を登録し、該収容先計算手段で特定された転送サーバの内の1つに、コマンド受け取り要求を登録するコマンド受け取り要求登録手段と、前記転送サーバからコマンド情報を受信するコマンド情報受信手段とを備えることを特徴とする。
【0019】
また、本発明は、センサクライアント装置が転送サーバにコマンド受け取り要求を登録し、アプリケーションクライアント装置がコマンド情報を前記転送サーバに登録し、当該転送サーバが、前記センサクライアント装置からのコマンド受け取り要求と、前記アプリケーションクライアント装置からのコマンド情報との条件比較を行い、当該条件が合致した場合に、前記センサクライアント装置にコマンド情報を転送するセンサ情報転送システムを構成する前記アプリケーションクライアント装置であって、該アプリケーションクライアント装置が送信しようとするコマンド情報にはコマンド情報を送信しようとするセンサクライアント装置のID、あるいは、センサ情報の特徴を示すメタ情報、のいずれかを含み、センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定するハッシュ計算手段と、コマンド情報を送信しようとする前記センサクライアント装置のIDから前記複数の転送サーバのうちの1つ以上の転送サーバを特定する収容先計算手段と、送信しようとするコマンド情報の中に、コマンド情報を送信しようとするセンサクライアント装置のIDを含む場合に、該収容先計算手段で特定された転送サーバに該コマンド情報を登録し、送信しようとするコマンド情報の中にコマンド情報を送信しようとするセンサクライアント装置のIDを含まない場合に、該ハッシュ計算手段で特定された転送サーバ全てに該コマンド情報を登録するコマンド情報登録手段と、を備えることを特徴とする。
【0020】
また、本発明は、一つ以上のセンサクライアント装置と、一つ以上のアプリケーションクライアント装置と、一つ以上の転送サーバとがネットワークで接続され、コマンド送信を負荷分散するセンサ情報転送システムであって、該センサクライアント装置は、センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する第1のハッシュ計算手段と、該センサクライアント装置のIDから、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する第1の収容先計算手段と、該第1のハッシュ計算手段で特定された前記転送サーバに、コマンド受け取り要求を登録し、該第1の収容先計算手段で特定された転送サーバの内の1つに、コマンド受け取り要求を登録するコマンド受け取り要求登録手段と、前記転送サーバからコマンド情報を受信するコマンド情報受信手段と、を備え、該アプリケーションクライアント装置は、該アプリケーションクライアント装置が送信しようとするコマンド情報にはコマンド情報を送信しようとするセンサクライアント装置のID、あるいは、センサ情報の特徴を示すメタ情報、のいずれかを含み、センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する第2のハッシュ計算手段と、コマンド情報を送信しようとする前記センサクライアント装置のIDから前記複数の転送サーバのうちの1つ以上の転送サーバを特定する第2の収容先計算手段と、送信しようとするコマンド情報の中に、コマンド情報を送信しようとするセンサクライアント装置のIDを含む場合に、該第2の収容先計算手段で特定された転送サーバに該コマンド情報を登録し、送信しようとするコマンド情報の中にコマンド情報を送信しようとするセンサクライアント装置のIDを含まない場合に、該第2のハッシュ計算手段で特定された転送サーバ全てに該コマンド情報を登録するコマンド情報登録手段と、を備え、該転送サーバは、コマンド受け取り要求を受信し保持する保持手段と、コマンド情報を登録する登録手段と、登録されたコマンド情報と、保持する該コマンド受け取り要求が含む条件とを比較する条件比較手段と、比較の結果合致した該コマンド情報を該コマンド受け取り要求の登録元に転送する転送手段と、を備えることを特徴とする。
【0021】
また、本発明は、センサクライアント装置が転送サーバにコマンド受け取り要求を登録し、アプリケーションクライアント装置がコマンド情報を前記転送サーバに登録し、当該転送サーバが、前記センサクライアント装置からのコマンド受け取り要求と、前記アプリケーションクライアント装置からのコマンド情報との条件比較を行い、当該条件が合致した場合に、前記センサクライアント装置にコマンド情報を転送するセンサ情報転送システムを構成する前記センサクライアント装置のコマンド情報受信方法であって、センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定するハッシュ計算工程と、該センサクライアント装置のIDから、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する収容先計算工程と、該ハッシュ計算工程で特定された前記転送サーバに、コマンド受け取り要求を登録し、該収容先計算工程で特定された転送サーバの内の1つに、コマンド受け取り要求を登録するコマンド受け取り要求登録工程と、前記転送サーバからコマンド情報を受信するコマンド情報受信工程とを備えることを特徴とする。
【0022】
また、本発明は、センサクライアント装置が転送サーバにコマンド受け取り要求を登録し、アプリケーションクライアント装置がコマンド情報を前記転送サーバに登録し、当該転送サーバが、前記センサクライアント装置からのコマンド受け取り要求と、前記アプリケーションクライアント装置からのコマンド情報との条件比較を行い、当該条件が合致した場合に、前記センサクライアント装置にコマンド情報を転送するセンサ情報転送システムを構成する前記アプリケーションクライアント装置のコマンド情報登録方法であって、該アプリケーションクライアント装置が送信しようとするコマンド情報にはコマンド情報を送信しようとするセンサクライアント装置のID、あるいは、センサ情報の特徴を示すメタ情報、のいずれかを含み、センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定するハッシュ計算工程と、コマンド情報を送信しようとする前記センサクライアント装置のIDから前記複数の転送サーバのうちの1つ以上の転送サーバを特定する収容先計算工程と、送信しようとするコマンド情報の中に、コマンド情報を送信しようとするセンサクライアント装置のIDを含む場合に、該収容先計算工程で特定された転送サーバに該コマンド情報を登録し、送信しようとするコマンド情報の中にコマンド情報を送信しようとするセンサクライアント装置のIDを含まない場合に、該ハッシュ計算工程で特定された転送サーバ全てに該コマンド情報を登録するコマンド情報登録工程と、を備えることを特徴とする。
【0023】
また、本発明は、一つ以上のセンサクライアント装置と、一つ以上のアプリケーションクライアント装置と、一つ以上の転送サーバとがネットワークで接続され、コマンド送信を負荷分散するセンサ情報転送システムのセンサ情報転送方法であって、該センサクライアント装置が、センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する第1のハッシュ計算工程と、該センサクライアント装置のIDから、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する第1の収容先計算工程と、該第1のハッシュ計算工程で特定された前記転送サーバに、コマンド受け取り要求を登録し、該第1の収容先計算工程で特定された転送サーバの内の1つに、コマンド受け取り要求を登録するコマンド受け取り要求登録工程と、前記転送サーバからコマンド情報を受信するコマンド情報受信工程と、を備え、該アプリケーションクライアント装置が送信しようとするコマンド情報にはコマンド情報を送信しようとするセンサクライアント装置のID、あるいは、センサ情報の特徴を示すメタ情報、のいずれかを含み、該アプリケーションクライアント装置が、センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する第2のハッシュ計算工程と、コマンド情報を送信しようとする前記センサクライアント装置のIDから前記複数の転送サーバのうちの1つ以上の転送サーバを特定する第2の収容先計算工程と、送信しようとするコマンド情報の中に、コマンド情報を送信しようとするセンサクライアント装置のIDを含む場合に、該第2の収容先計算工程で特定された転送サーバに該コマンド情報を登録し、送信しようとするコマンド情報の中にコマンド情報を送信しようとするセンサクライアント装置のIDを含まない場合に、該第2のハッシュ計算工程で特定された転送サーバ全てに該コマンド情報を登録するコマンド情報登録工程と、を備え、該転送サーバは、コマンド受け取り要求を受信し保持する保持工程と、コマンド情報を登録する登録工程と、登録されたコマンド情報と、保持する該コマンド受け取り要求が含む条件とを比較する条件比較工程と、比較の結果合致した該コマンド情報を該コマンド受け取り要求の登録元に転送する転送工程と、を備えることを特徴とする。
【発明の効果】
【0024】
本発明によれば、高度なデータの転送処理を行うコマンド送信型アプリケーションを容易に作成できるようにしつつ、それらの静的あるいは動的な負荷分散を行い、さらに、具体的送信先をアプリケーションが知りうるようなコマンド送信型アプリケーションも効率的に実現できる。
【図面の簡単な説明】
【0025】
【図1】本発明の一実施形態におけるセンサ情報転送システムの全体の構成を示すブロック図である。
【図2】本発明の一実施形態におけるセンサ情報転送システムにおけるセンサの構成の一例を示すブロック図である。
【図3】本発明の一実施形態におけるセンサ情報転送システムにおけるアプリケーション装置の構成の一例を示すブロック図である。
【図4】本発明の一実施形態におけるセンサ情報転送システムにおける転送サーバの構成の一例を示すブロック図である。
【図5】本発明の一実施形態におけるセンサ情報転送システムにおける分担管理サーバの構成の一例を示すブロック図である。
【図6】本発明の一実施形態における収容先計算部の構成の一例を示すブロック図である。
【図7】本発明の一実施形態における情報受け取り要求の登録処理の説明図である。
【図8】本発明の一実施形態における情報受け取り要求の登録処理の説明に用いるフローチャートである。
【図9】本発明の一実施形態におけるセンサ情報転送システムにおける転送サーバの説明図である。
【図10】本発明の一実施形態におけるセンサ情報転送システムにおける転送サーバの説明図である。
【図11】本発明の一実施形態におけるセンサ情報転送システムにおける転送サーバの説明図である。
【図12】本発明の一実施形態におけるセンサ情報転送システムにおける転送サーバの説明図である。
【図13】本発明の一実施形態におけるコマンド情報の登録処理の説明図である。
【図14】本発明の一実施形態におけるコマンド情報の登録処理の説明に用いるフローチャートである。
【発明を実施するための形態】
【0026】
本発明の一実施形態を以下に示す。
図1は、本実施の形態におけるセンサ情報転送システム全体の構成を示す。ネットワーク105にセンサ101A、センサ101B、センサ101C、アプリケーション装置102、転送サーバ103A、転送サーバ103B、転送サーバ103C、転送サーバ103D、分担管理サーバ104が接続される。ここで、複数のセンサ101A〜Cは同様の構成であるので、特に区別して説明する必要がない場合には、センサ101として説明する。同様に、転送サーバ103A〜Dは同様の構成であるので、特に区別して説明する必要がない場合には、転送サーバ103として説明する。
センサ群とアプリケーション装置102は、転送サーバ群の機能を以下に詳述する方法により用いることで、互いに情報のやりとりを行う。
【0027】
ここで、本実施の形態において、ネットワークはIP(Internet Protocol)等のプロトコルにより有線接続されているものとする。本発明におけるネットワークの範囲はこれに限るものではなく、広汎なネットワークが利用可能である。特にセンサ群の接続について、IP以外のプロトコルを用いた無線ネットワーク、例えば携帯電話ネットワークを用いてもよい。さらに、それらネットワークと、IP等による有線接続ネットワークを相互接続する等、複数種類のネットワークが混在していてもよい。混在するネットワークの間にはメディアないしプロトコルを相互変換する適切なゲートウェイを挿入してもよい。
【0028】
図2は、センサ101の構成を示す。センサ101は、具備する温度センサ126により温度を取得しサーバに送信する機能を持つのに加え、アラームランプ127およびブザー128を具備し、サーバからの指示に従い該ランプの赤色点灯ならびに該ブザーの鳴動を行えるものとする。また、センサ101は、転送サーバ群との通信機能を受け持つクライアントライブラリ120を具備する。クライアントライブラリ120は、イベント登録部121、ハッシュ計算部122、収容先計算部123、受け取り要求登録部124、ならびにコマンド受信部125を有する。
【0029】
図3は、アプリケーション装置102の構成を示す。アプリケーション装置102は、ユーザーとの入出力機能を提供するアプリケーションロジック131と、転送サーバ群との通信機能を受け持つクライアントライブラリ130とを具備する。クライアントライブラリ130は、ハッシュ計算部132、収容先計算部133、コマンド登録部134を有する。ここで、ハッシュ計算部132および収容先計算部133は、センサ101が備えるハッシュ計算部122および収容先計算部123と同様の機能部であり、同様の方法によりハッシュ計算、収容先計算を行い、計算結果の整合性が保たれるものとする。
図4は、転送サーバ103の構成を示す。転送サーバ103は、イベント受信部141、受け取り要求受信部142、受け取り要求保持部143、コマンド受信登録部144、条件比較部145、ならびにコマンド転送部146を有する。
【0030】
本実施の形態において、センサ情報転送システム全体は、非特許文献1および非特許文献2で示されるuTupleSpace技術に基づいて構築されるものとする。換言すると、上記述べた転送サーバ群は、非特許文献1における「uTupleServer」あるいは非特許文献2における「タプルサーバ」の機能を実装する。また、クライアントライブラリ120およびクライアントライブラリ130は、非特許文献1における「uTupleClient」の機能を実装する。これら技術の詳細は十分に開示されており、当業者により実施可能である。とりわけセンサからのイベントデータの処理について実施可能である。あるいは、とりわけ複数の転送サーバを設置しそれらの間で負荷分散を行う処理について、既に述べた従来技術の問題が未解決であることを除いては、実施可能である。ここで従来技術の問題とは、センサ情報転送の動的負荷分散を行う従来技術においてある種類の典型的なコマンド送信アプリケーションにおいて、負荷分散により十分な負荷軽減ができないという問題である。
【0031】
そこで以下では、上述した従来技術の問題を解決するという本発明の趣旨に鑑み、特にセンサへのコマンドデータの送信に関わる処理について、実施の形態を詳細に示していく。
図5は、分担管理サーバ104の構成を示す。分担管理サーバ104は、分担管理テーブル150と、要求処理部151とを有する。分担管理テーブル150は、分担管理サーバ104の記憶領域に記憶された情報であり、文字列をキーとし、1つ以上の転送サーバの並びを値とするハッシュ表により管理される。ここで、センサ101のハッシュ計算部122あるいはアプリケーション装置102のハッシュ計算部132は、後述のように、情報の種別を示すtype属性値の文字列を含むハッシュ問い合わせ要求を、分担管理サーバ104に送信する。分担管理サーバ104の要求処理部151がこれを受信し、該要求が含む該文字列をキーとしてハッシュ表を検索し、転送サーバの並びを得る。要求処理部151は、該並びをセンサ101のハッシュ計算部122あるいはアプリケーション装置102のハッシュ計算部132に返却する。上記一連の処理手順により、センサ101のハッシュ計算部122あるいはアプリケーション装置102のハッシュ計算部132は、文字列から転送サーバの並びを得る計算処理を、システム全体で一意の結果を得られるようにしつつ実現する。
【0032】
本実施の形態においては、入力「alarm_lamp」に対して出力「転送サーバC」を、また入力「buzzer」に対して出力「転送サーバD、転送サーバA、転送サーバB」を、それぞれ返すとして以下説明する。なお、上記示した分担管理サーバ104および分担管理テーブル150の実現方法は、非特許文献2に詳細に開示されている。
ここで、上記、情報の種別を示すtype属性値とは、本発明におけるセンサ情報の特徴を示すメタ情報のことであって、本実施の形態においてはCFおよびCA、あるいはEAおよびEF等の情報が含むセンサ種別を表す属性である。具体的には、後述するCF(CF170〜172)ならびにCA(230〜231)で例示されるデータフォーマットにおいて、例えばCA230でtype=buzzerのように記載されているところのbuzzerという文字列を示す。ただし、本発明の範囲はこれに限るものではなく、本発明におけるセンサ情報の特徴を示すメタ情報としては、センサ情報に対し広汎に付与されるメタ情報であればよい。例えば、上述のものの他、アプリケーションジャンルを表す情報、情報の所有者や閲覧可能者を示す情報、実施事業者を示す情報、名前空間を区別するための情報などを用いてもよい。なおこのように、本実施の形態で扱うデータフォーマットは、「属性名=属性値,属性名=属性値,属性名=属性値……」のような可変長の並びとして表現する。
【0033】
図6は、収容先計算部123(収容先計算部133)が保有するアドレス表160の内容を示す。本実施の形態において、センサAには固有の識別子(ID)として「0x0011」が、センサBには固有のIDとして「0x0012」が、センサCには固有のIDとして「0x0013」が、それぞれ割り振られているものとする。アドレス表160は、センサIDから、対応する転送サーバ名を得るための表である。収容先計算部123(収容先計算部133)は該表を用い、センサIDを入力とし、転送サーバ名を出力とする計算機能を実装する。なお、ハッシュ計算部122(ハッシュ計算部132)並びに収容先計算部123(収容先計算部133)は、センサにおけるクライアントライブラリ120のものとアプリケーション装置102におけるクライアントライブラリ130のものとを含めて、システム全体で同一の計算結果を返すものとする。特に収容先計算部123(収容先計算部133)のアドレス表160については、本実施の形態では、各装置が個別に保有するものとした。ただし、本発明の範囲はこれに限るものではなく、例えばアドレス表の管理を専任されるサーバ装置をネットワーク上に別途準備し、各装置における収容先計算部123(収容先計算部133)は該サーバ装置に問い合わせを行うことで、収容先計算部123(収容先計算部133)がシステム全体で同一の計算結果を返すようにしてもよい。
【0034】
図7は、本実施の形態において登録されているCFならびにこれから登録しようとするCFを示す。以下の例では、センサ101AがCF170を既に登録しており、かつ、センサ101CがCF171を既に登録している状態で、センサ101BがCF172を新たに登録しようとする際の処理手順について例示する。なお、例えば、CF171はセンサIDが0x0013で現在位置が101号室にいるブザーの駆動要求待ち受けであることを示している。また、例えば、CF172はセンサIDが0x0012で現在位置が201号室にいるアラームランプの駆動要求待ち受けであることを示している。
【0035】
図8は、センサ101BにおけるCF登録処理の手順を示す。センサ101Bは、電源投入時等に、本手順を実行開始する(ステップS101)。ここで、投入しようとするCF172は、センサ101Bに固有の情報を文字列表記したものなので、生成は容易である。まず、ハッシュ計算部122に、CF172の中のtype属性値を入力し、転送サーバのリスト、この例では転送サーバCを得る(ステップS102)。次に、受け取り要求登録部124は、該CFからaddress属性を削除した新たなCFを生成し、該転送サーバのうちのいずれか一つに対し、該新たなCFと登録事由「hash」を組とする、CF登録要求を送信する(ステップS103)。なお、このCF登録要求は、転送サーバ103Cの受け取り要求受信部142が受け取り、受け取り要求保持部143に記憶させる。
【0036】
次に、センサ101Bは、収容先計算部123に、CF172の中のaddress属性値を入力し、転送サーバBを得る(ステップS104)。次に、受け取り要求登録部124は、該転送サーバに対し、該CFと登録事由「address」を組とする、CF登録要求を送信する(ステップS105)。なお、このCF登録要求は、転送サーバ103Bの受け取り要求受信部142が受け取り、受け取り要求保持部143に記憶させる。センサ101BにおけるCF登録処理の手順は以上で終了となる。
【0037】
なお、ハッシュ計算部122により得られた転送サーバのリストが2台以上である場合というのは、従来技術における動的負荷分散を行っている場合に生じ得る。非特許文献2に実現方法の詳細が開示されている。そのような場合の処理方法の概略は前述したとおりであり、すなわち、センサ101がCFを登録する際、ハッシュ関数によって得られた担当する転送サーバ群について、そのうちのいずれか1台を乱数等の任意の方法で選択し、該転送サーバにのみ該CFを送信する。一方、アプリケーション装置102がCAを登録する際、ハッシュ関数によって得られた担当する転送サーバ群について、該群が含むすべての転送サーバ103に該CAを送信する。
【0038】
図9は、転送サーバ101Aの受け取り要求保持部143(受け取り要求保持部143A)の構成を示す。受け取り要求保持部143Aは、CF待ち受け表180(CF待ち受け表180A)を記憶する。該表の1行目は、CF170に対応する。各行の1桁目は、該表が保持するCFを意味する。また、各行の2桁目は、そのCFの登録要求で併せて送信された、登録事由を意味する。また、各行の3桁目は、そのCFの登録要求を送信したセンサがいずれであるかを意味する。該表は、上記CF登録処理の手順の結果、変化しない。
【0039】
図10は、転送サーバ103Bの受け取り要求保持部143(受け取り要求保持部143B)の構成を示す。受け取り要求保持部143Bは、CF待ち受け表180(CF待ち受け表180B)を記憶する。該表の1行目は、CF171に対応する。該表の2行目(符号a)は、新たに登録されたCF172に対応するものであり、上記CF登録処理の手順の結果、追記保存された部分である。該行の1桁目はCF172の内容を、2桁目は登録事由「address」を、3桁目は登録元のセンサがセンサ101Bであることを、それぞれ意味する。
【0040】
図11は、転送サーバ103Cの受け取り要求保持部143(受け取り要求保持部143C)の構成を示す。受け取り要求保持部143Cは、CF待ち受け表180(CF待ち受け表180C)を記憶する。該表の1行目は、CF170に対応する。該表の2行目(符号a)は、新たに登録されたCF172に対応するものであり、上記CF登録処理の手順の結果、追記保存された部分である。該行の1桁目はCF172の内容から、上述のステップS103によりaddress属性を削除したものを、2桁目は登録事由「hash」を、3桁目は登録元のセンサがセンサ101Bであることを、それぞれ意味する。
【0041】
図12は、転送サーバ103Dの受け取り要求保持部143(受け取り要求保持部143D)の構成を示す。受け取り要求保持部143Dは、CF待ち受け表180(CF待ち受け表180D)を記憶する。該表の1行目は、CF171に対応する。該表は、上記CF登録処理の手順の結果、変化しない。なお、CF171の登録事由「hash」については、分担管理テーブル150の「buzzer」の検索結果が「転送サーバD、転送サーバA、転送サーバB」の3台であることから、転送サーバD、転送サーバA、転送サーバBのうちいずれか一つの中の受け取り要求保持部143が該CFを登録事由「hash」で保持する可能性がある。ここでは、本実施の形態における説明の一例として、転送サーバDが該CFを保持していたものとしてデータの例を示した。これはすなわち、あるCAと該CFとの照合を漏れなく行うためには、転送サーバD、転送サーバA、転送サーバBの全てにおいて照合処理を行うことによって、全ての可能性をあたる必要があることを示している。この処理の流れは、非特許文献2に開示されている実現方法の詳細の通りである。以上述べたCF登録処理により、転送サーバ群にCFが登録され、システム全体としては新たなCAの到着を待ち受ける状態となる。
【0042】
図13は、本実施の形態においてこれから登録しようとするCAを示す図である。以下の例では、アプリケーション装置102がCA230をまず新たに登録し、次いで、CA231をさらに新たに登録する際の処理手順について例示する。なお、例えば、CA230はセンサIDが0x0013のブザーに対するonの操作要求であることを示している。なおその際、現在位置は値によらず条件合致と見なすことを示している。また、例えば、CA(231)は現在位置が101号室〜199号室の範囲に含まれるアラームランプに対するredの操作要求であることを示している。このように、それぞれのCAはメタデータ(条件)とデータを含む。条件部分は転送サーバにおいてCFとの条件比較処理が行われ、合致した際はCFを登録したセンサが該CAのデータを受け取って所定の動作、例えばブザーを鳴動したりアラームを赤色点灯したりする等の動作を行う。
【0043】
図14は、アプリケーション装置102におけるCA登録処理の手順を示す。アプリケーションロジック131はユーザーの操作を受けて、まず、CA230の登録処理を
クライアントライブラリ130に依頼することで開始する(ステップS201)。クライアントライブラリ130は、該CAがaddress属性を含むかを判断する(ステップS202)。CA230はaddress属性を含むので、次に、収容先計算部133に、該CAの中のaddress属性値を入力し、転送サーバ103Bを得る(ステップS203)。次に、コマンド登録部134は、該転送サーバ103Bに対し、該CAを内容として含むCA登録要求を送信する(ステップS204)。
【0044】
なお、このCA登録要求は、転送サーバ103Bのコマンド受信登録部144が受け取り、条件比較部145が該CA230と受け取り要求保持部143が記憶するCFとの条件比較処理を行う。その結果、CF待ち受け表180(CF待ち受け表180B)の1行目に保持されるCFと合致するため、該行の3桁目のセンサすなわちセンサ101Cに対して、コマンド転送部146は該CAを送信する。センサ101Cのコマンド受信部125は該CAを受信し、該CAはtype=buzzerであるため、センサ101Cは具備するブザー128を値onに操作すなわち鳴動を行う。
【0045】
次に、アプリケーションロジック131はユーザーの操作を受けて、CA231の登録処理をクライアントライブラリ130に依頼することで開始する(ステップS201)。クライアントライブラリ130は、該CAがaddress属性を含むかを判断する(ステップS202)。CA231はaddress属性を含まないので、次に、ハッシュ計算部132に、該CAの中のtype属性値を入力し、転送サーバのリスト、この例では転送サーバCを得る(ステップS205)。次に、コマンド登録部134は、該転送サーバのリストに含まれる全ての転送サーバに対し、該CAを内容として含むCA登録要求を送信する(ステップS204)。なお、本実施の形態において、ステップS205について処理対象とするCAがtype属性値を含まない場合には、クライアントライブラリ130の入力エラーである。
【0046】
なお、ハッシュ計算部132により得られた転送サーバのリストが2台以上である場合というのは、従来技術における動的負荷分散を行っている場合に生じ得るものであり、非特許文献2に実現方法の詳細が開示されていることは、既に述べた通りである。なお、このCA登録要求は、転送サーバ103Cのコマンド受信登録部144が受け取り、条件比較部145が該CA231と受け取り要求保持部143の保持するCFとの条件比較処理を行う。その結果、CF待ち受け表180Cの1行目に保持されるCFと合致するため、該行の3桁目のセンサすなわちセンサ101Aに対して、コマンド転送部146は該CAを送信する。センサ101Aのコマンド受信部125は該CAを受信し、該CAはtype=alarm_lampであるため、センサ101Aは具備するアラームランプ127を値redに操作すなわち赤色点灯を行う。
【0047】
ここで、上記述べた2種類のCAの登録処理が、本発明によりどのように効率よく扱われるかを確認しておく。CA230はaddress属性を中に含む操作であり、このようなCAを生成する典型的アプリケーションとしては、センサ情報転送システムを経由して遠隔地から家電の制御を行う、高度リモコン型アプリケーションが挙げられる。既に述べたように、該アプリケーションは、従来技術において動的負荷分散によりCAの登録に関わるオーバーヘッドは無視できないほど大きくなるという問題があった。本実施形態によると該問題は解決でき、具体的には上記実施例において、ステップS203により、単一の転送サーバが選択されるので、CAの登録処理を行う対象は1台の転送サーバで済む。このため例えば、前記述べた数量例に従って例示するとすれば、CFが合計1億個のCAすなわち制御コマンドを受け取った場合、CAの登録処理も1億回行われるが、その際仮に転送サーバが何台の負荷分散であったとしても、CAの登録回数は1億回となり、CFへの転送回数に等しくなるため、CAの登録に関わるオーバーヘッドを十分小さくできるという利点が得られる。
【0048】
仮に本発明を適用しなかったとすると、前述の実施例においては、type=buzzerを受け持つ転送サーバすなわち分担管理テーブル150によると転送サーバD、転送サーバA、転送サーバCの3台全てにCAの登録処理を行わなければならなくなるため、このため例えば前記述べた数量例に従って例示するとすれば、CAの登録処理を1億回行うとして、各処理ごとに3台の転送サーバに登録を行うためCAの登録回数は3億回となり、CAの登録に関わるオーバーヘッドが無視できなくなるほど大きいという問題が起きていたところである。
【0049】
次に、CA231はaddress属性を中に含まず、範囲条件を指定してコマンド送信する操作である。このような高度な操作は、uTupleSpaceの提供する高度なデータの転送処理の特徴を活用したものである。仮に、uTupleSpaceを使用せず、センサとアプリケーションをネットワーク経由で直接接続したとすると、該操作の実現は困難である。本実施の形態においては、このようなCAであっても、ステップS205により従来通りの処理手順を用いて転送サーバにCAの登録処理を行うため、高い機能性を実現できる。
【0050】
上記述べたように、本実施の形態によれば、高度なデータの転送処理を行うコマンド送信型アプリケーションを容易に作成できるようにしつつ、それらの静的ならびに動的な負荷分散を行い、さらに、具体的送信先をアプリケーションが知りうるようなコマンド送信型アプリケーションも効率的に実現できる。
【0051】
以上、本発明に関わる、センサへのコマンドデータの送信処理について、実施の形態を詳細に示してきた。既に述べたように、本実施の形態において、センサ情報転送システム全体は、非特許文献1および非特許文献2で示されるuTupleSpace技術に基づいて構築することが可能である。これら技術の詳細は十分に開示されており当業者により実施可能であり、とりわけセンサからのイベントデータの処理について実施可能である。例えば、センサデータの記録処理は以下のように実施できる。すなわち、センサ101Aは具備する温度センサ126により温度を取得し、具備するクライアントライブラリ120の中のイベント登録部121が、ネットワーク105に登録要求を送出することによって、転送サーバ群の中のいずれか一つの転送サーバにEAの登録要求を送信する。ここでEAとは、uTupleSpace技術におけるセンサからのイベントデータ(EA)を表す用語であり、上記文献により開示されている。該転送サーバは、該転送サーバが具備するイベント受信部141が該要求を受け取り、該転送サーバが管理する記憶装置に該EAを記録する。なお、上記いずれか一つの転送サーバを選択する方法については、静的な負荷分散に基づき選択する方法が非特許文献1に開示されており、また、動的な負荷分散に基づき選択する方法が非特許文献2に開示されており、実施方法は明確である。
【0052】
なお、本実施の形態において、address属性を含むCAの送信処理は、address属性値により決定される1台の転送サーバが受け持つこととしたが、本発明の範囲はこれに限るものではなく、複数台の転送サーバが受け持ち負荷分散してもよい。その場合には、例えば、アドレス表160の検索結果として転送サーバのリストを返すようにして、収容先計算部123の計算結果が2台以上の転送サーバのリストであった場合に、それらリストに含まれる転送サーバの一部ないしは全ての転送サーバにCFあるいはCA登録処理を適宜分担させるようにしてもよい。
【符号の説明】
【0053】
101A〜101C:センサ
102:アプリケーション装置
103A〜103D:転送サーバ
104:分担管理サーバ
105:ネットワーク
120:クライアントライブラリ
121:イベント登録部
122:ハッシュ計算部
123:収容先計算部
124:受け取り要求登録部
125:コマンド受信部
126:温度センサ
127:アラームランプ
128:ブザー
130:クライアントライブラリ
131:アプリケーションロジック
132:ハッシュ計算部
133:収容先計算部
134:コマンド登録部
141:イベント受信部
142:受け取り要求受信部
143:受け取り要求保持部
144:コマンド受信登録部
145:条件比較部
146:コマンド転送部
150:分担管理テーブル
151:要求処理部
【技術分野】
【0001】
本発明は、センサ情報を即時転送するストリーム処理型のデータベースシステムに関する。
【背景技術】
【0002】
従来、センサなどのデータを登録し条件に合致したものを検索あるいは転送することを可能とする、センサデータ向けの情報転送システムがあった。このようなセンサ情報転送システムの一つにuTupleSpace(非特許文献1)がある。uTupleSpaceの特徴の一つに、範囲条件を指定した、データの転送処理がある。
従来、センサからのデータの転送は、センサのID(識別子)を指定して、そのIDのセンサの情報をどのアプリケーションに届けるかといった方式であった。uTupleSpaceでは、アプリケーションがセンサID以外の範囲条件を指定し、その条件に合致したセンサデータをアプリケーションに届けることができる。これにより、例えば、ある部屋Aの全ての温度センサの情報を取得するといった処理を容易に実現できる。
【0003】
また、uTupleSpaceのさらなる特徴の一つに、センサからのデータの送信(イベント)だけでなく、センサへの制御データの送信(コマンド)をサポートすることがある。その際にも、前記の範囲条件をアプリケーションが指定することができる。これにより、例えば、ある部屋Aの全ての警報ランプを点灯するといった処理を容易に実現できる。この場合、警報ランプを有する機器のリストをアプリケーションが管理しなくても該処理を実現できるという有用性がある。
これらは、センサへの送受信を行うアプリケーションの構築のために、センサ情報転送システムが有するべき重要な特徴である。
【0004】
一方、センサの数が大量になった場合、センサ情報転送システムにおける転送サーバの処理量が増える。これに対処するため、転送サーバを複数台設置して、処理負荷を適切に分散する技術が重要であり、従来より提案されてきた。
非特許文献1では、処理負荷を静的に分散する技術が示されている。技術の概要は以下の通りである。
センサからのイベントデータ(EA:eventActual)と、アプリケーションからの取得要求(EF:eventFormal)について例示する。センサがEAを登録する際、EAの内容のうち、センサの種別やメッセージタイプ等を示すメタ情報にハッシュ関数を適用し、複数台の転送サーバのうちどのサーバが処理を担当するかを決め、その転送サーバに該センサがEAを送信する。つまり、ある種類のEAは全て同一の転送サーバに送られる。
【0005】
一方、アプリケーションがEFを登録する際、同様に、EFの内容のうち取得しようとするセンサの種別やメッセージタイプ等を示すメタ情報に該ハッシュ関数を適用し、複数台の転送サーバのうち、どのサーバが処理を担当するかを決め、その転送サーバに該アプリケーションがEFを送信する。上記処理の結果、単一の転送サーバが、ある種類のEAおよびEFの登録要求をすべて受け取るので、EFの条件に合致したEAを全て対応するアプリケーションに届けることができる。アプリケーションに該届ける処理、すなわちEAの転送処理は、EAおよびEFの種類に応じて異なる転送サーバに負荷が分散された状態にて実行される。
また、アプリケーションからのコマンドデータ(CA:commandActual)と、センサからのコマンド受け取り要求(CF:commandFormal)についても、同様の処理を行い、転送処理を担当するサーバを分散させて処理することができる。
【0006】
さらに、非特許文献2では、処理負荷を動的に分散する技術が示されている。前記従来技術では、EAおよびEFの種類がまんべんなく多数存在する場合には、処理負荷を均一に分散することができたが、特定種類のEAおよびEFのみが偏って大量に存在する場合には、特定の転送サーバに処理負荷が集中する問題があった。当該従来技術では、以下のようにして、該問題を解決する。
【0007】
すなわち、転送サーバへの負荷の集中を検出し、特定種類のEAおよびEFの処理を、2台以上の転送サーバから構成される転送サーバ群で受け持つように分担変更の決定を行う。分担変更後は、センサがEAを登録する際、ハッシュ関数によって得られた担当する転送サーバ群について、そのうちのいずれか1台を乱数等の任意の方法で選択し、該転送サーバにのみ該EAを送信する。一方、アプリケーションがEFを登録する際、ハッシュ関数によって得られた担当する転送サーバ群について、該群が含むすべての転送サーバに該EFを送信する。
【0008】
また、分担変更後は、センサがCFを登録する際、ハッシュ関数によって得られた担当する転送サーバ群について、そのうちのいずれか1台を乱数等の任意の方法で選択し、該転送サーバにのみ該CFを送信する。一方、アプリケーションがCAを登録する際、ハッシュ関数によって得られた担当する転送サーバ群について、該群が含むすべての転送サーバに該CAを送信する。
【0009】
上記方式が適切に動作するのは、以下に述べる理由に因る。まず前提として、EAが1台にのみ送信されるのに対しEFが、またCFが1台にのみ送信されるのに対し、CAが、
それぞれ転送サーバ群のうちのすべてに送信される処理となっている。このため、条件合致の処理において、合致漏れは生じない。
【0010】
次に処理負荷について考察する。転送サーバ群のうちのすべてに送信する処理は、転送サーバ群の含むサーバ数が大きくなるにつれ、該送信する処理自体のオーバーヘッドが増加することから、システム全体として問題となりうる。
しかし、uTupleSpaceの典型的な適用先では、センサ台数が膨大となり、一方アプリケーションは限られることから、問題とはならないのである。
【0011】
以下、具体的数量で例示する。センサが1億台存在し、1台のセンサが1万個のEAを登録すれば、EAの個数は1兆個である。すなわち、EAの登録処理は1兆回行われる。一方、平均的アプリケーションが1度に1000万個のEAを取得するようなEFを登録する処理をしたとする。このとき、全てのEAが平均して1回ずつ読み出されるとすると、EFの登録処理は合計10万回行われることとなる。このため、EAの登録回数に比べてEFの登録回数は7桁少ない。仮に転送サーバが100台で負荷分散したとして、1兆回登録されるEAは登録処理ごとに1台の転送サーバにのみ送信される。一方、10万回登録されるEFは登録処理毎に最大100台の転送サーバに送信されることになるが、それでもEFの送信処理回数はEAのそれより少なくとも5桁少ないのである。このため、EAとEFに関する負荷分散について、該方式は順調に機能する。
【0012】
またCAとCFについても同様の考察が成立する。例えば、ある部屋Aの全ての警報ランプを点灯するといったCAを送信しCFが受け取る場合を考える。部屋の中に警報ランプが平均100個存在するとすれば、CAの登録回数はCFへの転送回数より2桁少なくて済む。このため、例えば転送サーバが数台〜数十台程度の負荷分散であれば、負荷分散したほうが、処理負荷が軽くなる。このように、該方式は、上記仮定の下では、順調に機能する。
【先行技術文献】
【非特許文献】
【0013】
【非特許文献1】Takayuki Nakamura et al., "uTupleSpace: A Bi-Directional Shared Data Space for Wide-Area Sensor Network, " 2nd International Workshop on Sensor Networks and Ambient Intelligence (SENAMI 2009), Dec. 2009.
【非特許文献2】荒川、他、「実世界データ共有機構uTupleSpaceにおける動的スケール化方式の評価」、電子情報通信学会技術研究報告、IN2009-21、2009年6月
【発明の概要】
【発明が解決しようとする課題】
【0014】
しかしながら、上述のセンサ情報転送の動的負荷分散を行う従来技術においては、ある種類の典型的なコマンド送信アプリケーションにおいて、負荷分散により十分な負荷軽減ができないという問題があった。以下に問題となる例を示す。
ある部屋のセンサ装置を家電等と結びつけ、センサ情報転送システムを経由して遠隔地から家電の制御を行う、高度リモコン型アプリケーションを考える。制御とは具体的には、例えば電源のオン・オフや、空調設定温度の上げ下げなどが考えられる。アプリケーションの画面上には、部屋のレイアウトがイラスト表示され、家電のアイコンが表示され、マウスクリック等によって制御コマンドを送信できるものとする。
【0015】
このようなアプリケーションでは、一つの家電操作コマンドに対して、反応させたい家電は高々1つである。なぜなら、部屋をレイアウト表示し、またその上にそれぞれの制御対象の家電をアイコン表示し、それをユーザーにクリックさせた時点で、制御コマンドを送信すべき対象は一意に定まり、アプリケーションが具体的送信先を知りうるからである。このようなアプリケーションで、例えばCFが合計1億個のCAすなわち制御コマンドを受け取った場合、CAの登録処理も1億回行われる。このため、仮に転送サーバが10台の負荷分散であれば、CAの登録回数は最大10億回となり、CFへの転送回数より最大10倍も多くなってしまう。このように、CAの登録に関わるオーバーヘッドは無視できないものとなり、該動的負荷分散方法は所期の性能を発揮しなくなることが分かる。
【0016】
なお、このようなアプリケーションでは、uTupleSpaceの提供する高度なデータの転送処理の特徴を必ずしも活用していない。そのため仮に、uTupleSpaceを使用せず、センサとアプリケーションをネットワーク経由で直接接続すれば、上記指摘した問題は生じない。しかしその場合、uTupleSpaceの提供する高度なデータの転送処理の特徴を活用することができなくなる。従って、上記問題となっているアプリケーションの他に、それ以外のアプリケーションを混在させて活用することができなくなる問題がある。
【0017】
本発明の目的は、以上述べた事情に鑑み、uTupleSpaceの提供する高度なデータの転送処理の特徴を活用したコマンド送信型アプリケーションを容易に作成できるようにしつつ、それらの静的あるいは動的な負荷分散を行い、さらに、具体的送信先をアプリケーションが知りうるようなコマンド送信型アプリケーションも効率的に実現できるような、センサ情報転送システムを提供することにある。
【課題を解決するための手段】
【0018】
上述した課題を解決するために、本発明は、センサクライアント装置(例えば、本実施形態におけるセンサ101)が転送サーバにコマンド受け取り要求を登録し、アプリケーションクライアント装置(例えば、本実施形態におけるアプリケーション装置104)がコマンド情報を前記転送サーバ(例えば、本実施形態における転送サーバ103)に登録し、当該転送サーバが、前記センサクライアント装置からのコマンド受け取り要求と、前記アプリケーションクライアント装置からのコマンド情報との条件比較を行い、当該条件が合致した場合に、前記センサクライアント装置にコマンド情報を転送するセンサ情報転送システムを構成する前記センサクライアント装置であって、センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定するハッシュ計算手段と、該センサクライアント装置のIDから、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する収容先計算手段と、該ハッシュ計算手段で特定された前記転送サーバに、コマンド受け取り要求を登録し、該収容先計算手段で特定された転送サーバの内の1つに、コマンド受け取り要求を登録するコマンド受け取り要求登録手段と、前記転送サーバからコマンド情報を受信するコマンド情報受信手段とを備えることを特徴とする。
【0019】
また、本発明は、センサクライアント装置が転送サーバにコマンド受け取り要求を登録し、アプリケーションクライアント装置がコマンド情報を前記転送サーバに登録し、当該転送サーバが、前記センサクライアント装置からのコマンド受け取り要求と、前記アプリケーションクライアント装置からのコマンド情報との条件比較を行い、当該条件が合致した場合に、前記センサクライアント装置にコマンド情報を転送するセンサ情報転送システムを構成する前記アプリケーションクライアント装置であって、該アプリケーションクライアント装置が送信しようとするコマンド情報にはコマンド情報を送信しようとするセンサクライアント装置のID、あるいは、センサ情報の特徴を示すメタ情報、のいずれかを含み、センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定するハッシュ計算手段と、コマンド情報を送信しようとする前記センサクライアント装置のIDから前記複数の転送サーバのうちの1つ以上の転送サーバを特定する収容先計算手段と、送信しようとするコマンド情報の中に、コマンド情報を送信しようとするセンサクライアント装置のIDを含む場合に、該収容先計算手段で特定された転送サーバに該コマンド情報を登録し、送信しようとするコマンド情報の中にコマンド情報を送信しようとするセンサクライアント装置のIDを含まない場合に、該ハッシュ計算手段で特定された転送サーバ全てに該コマンド情報を登録するコマンド情報登録手段と、を備えることを特徴とする。
【0020】
また、本発明は、一つ以上のセンサクライアント装置と、一つ以上のアプリケーションクライアント装置と、一つ以上の転送サーバとがネットワークで接続され、コマンド送信を負荷分散するセンサ情報転送システムであって、該センサクライアント装置は、センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する第1のハッシュ計算手段と、該センサクライアント装置のIDから、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する第1の収容先計算手段と、該第1のハッシュ計算手段で特定された前記転送サーバに、コマンド受け取り要求を登録し、該第1の収容先計算手段で特定された転送サーバの内の1つに、コマンド受け取り要求を登録するコマンド受け取り要求登録手段と、前記転送サーバからコマンド情報を受信するコマンド情報受信手段と、を備え、該アプリケーションクライアント装置は、該アプリケーションクライアント装置が送信しようとするコマンド情報にはコマンド情報を送信しようとするセンサクライアント装置のID、あるいは、センサ情報の特徴を示すメタ情報、のいずれかを含み、センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する第2のハッシュ計算手段と、コマンド情報を送信しようとする前記センサクライアント装置のIDから前記複数の転送サーバのうちの1つ以上の転送サーバを特定する第2の収容先計算手段と、送信しようとするコマンド情報の中に、コマンド情報を送信しようとするセンサクライアント装置のIDを含む場合に、該第2の収容先計算手段で特定された転送サーバに該コマンド情報を登録し、送信しようとするコマンド情報の中にコマンド情報を送信しようとするセンサクライアント装置のIDを含まない場合に、該第2のハッシュ計算手段で特定された転送サーバ全てに該コマンド情報を登録するコマンド情報登録手段と、を備え、該転送サーバは、コマンド受け取り要求を受信し保持する保持手段と、コマンド情報を登録する登録手段と、登録されたコマンド情報と、保持する該コマンド受け取り要求が含む条件とを比較する条件比較手段と、比較の結果合致した該コマンド情報を該コマンド受け取り要求の登録元に転送する転送手段と、を備えることを特徴とする。
【0021】
また、本発明は、センサクライアント装置が転送サーバにコマンド受け取り要求を登録し、アプリケーションクライアント装置がコマンド情報を前記転送サーバに登録し、当該転送サーバが、前記センサクライアント装置からのコマンド受け取り要求と、前記アプリケーションクライアント装置からのコマンド情報との条件比較を行い、当該条件が合致した場合に、前記センサクライアント装置にコマンド情報を転送するセンサ情報転送システムを構成する前記センサクライアント装置のコマンド情報受信方法であって、センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定するハッシュ計算工程と、該センサクライアント装置のIDから、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する収容先計算工程と、該ハッシュ計算工程で特定された前記転送サーバに、コマンド受け取り要求を登録し、該収容先計算工程で特定された転送サーバの内の1つに、コマンド受け取り要求を登録するコマンド受け取り要求登録工程と、前記転送サーバからコマンド情報を受信するコマンド情報受信工程とを備えることを特徴とする。
【0022】
また、本発明は、センサクライアント装置が転送サーバにコマンド受け取り要求を登録し、アプリケーションクライアント装置がコマンド情報を前記転送サーバに登録し、当該転送サーバが、前記センサクライアント装置からのコマンド受け取り要求と、前記アプリケーションクライアント装置からのコマンド情報との条件比較を行い、当該条件が合致した場合に、前記センサクライアント装置にコマンド情報を転送するセンサ情報転送システムを構成する前記アプリケーションクライアント装置のコマンド情報登録方法であって、該アプリケーションクライアント装置が送信しようとするコマンド情報にはコマンド情報を送信しようとするセンサクライアント装置のID、あるいは、センサ情報の特徴を示すメタ情報、のいずれかを含み、センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定するハッシュ計算工程と、コマンド情報を送信しようとする前記センサクライアント装置のIDから前記複数の転送サーバのうちの1つ以上の転送サーバを特定する収容先計算工程と、送信しようとするコマンド情報の中に、コマンド情報を送信しようとするセンサクライアント装置のIDを含む場合に、該収容先計算工程で特定された転送サーバに該コマンド情報を登録し、送信しようとするコマンド情報の中にコマンド情報を送信しようとするセンサクライアント装置のIDを含まない場合に、該ハッシュ計算工程で特定された転送サーバ全てに該コマンド情報を登録するコマンド情報登録工程と、を備えることを特徴とする。
【0023】
また、本発明は、一つ以上のセンサクライアント装置と、一つ以上のアプリケーションクライアント装置と、一つ以上の転送サーバとがネットワークで接続され、コマンド送信を負荷分散するセンサ情報転送システムのセンサ情報転送方法であって、該センサクライアント装置が、センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する第1のハッシュ計算工程と、該センサクライアント装置のIDから、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する第1の収容先計算工程と、該第1のハッシュ計算工程で特定された前記転送サーバに、コマンド受け取り要求を登録し、該第1の収容先計算工程で特定された転送サーバの内の1つに、コマンド受け取り要求を登録するコマンド受け取り要求登録工程と、前記転送サーバからコマンド情報を受信するコマンド情報受信工程と、を備え、該アプリケーションクライアント装置が送信しようとするコマンド情報にはコマンド情報を送信しようとするセンサクライアント装置のID、あるいは、センサ情報の特徴を示すメタ情報、のいずれかを含み、該アプリケーションクライアント装置が、センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する第2のハッシュ計算工程と、コマンド情報を送信しようとする前記センサクライアント装置のIDから前記複数の転送サーバのうちの1つ以上の転送サーバを特定する第2の収容先計算工程と、送信しようとするコマンド情報の中に、コマンド情報を送信しようとするセンサクライアント装置のIDを含む場合に、該第2の収容先計算工程で特定された転送サーバに該コマンド情報を登録し、送信しようとするコマンド情報の中にコマンド情報を送信しようとするセンサクライアント装置のIDを含まない場合に、該第2のハッシュ計算工程で特定された転送サーバ全てに該コマンド情報を登録するコマンド情報登録工程と、を備え、該転送サーバは、コマンド受け取り要求を受信し保持する保持工程と、コマンド情報を登録する登録工程と、登録されたコマンド情報と、保持する該コマンド受け取り要求が含む条件とを比較する条件比較工程と、比較の結果合致した該コマンド情報を該コマンド受け取り要求の登録元に転送する転送工程と、を備えることを特徴とする。
【発明の効果】
【0024】
本発明によれば、高度なデータの転送処理を行うコマンド送信型アプリケーションを容易に作成できるようにしつつ、それらの静的あるいは動的な負荷分散を行い、さらに、具体的送信先をアプリケーションが知りうるようなコマンド送信型アプリケーションも効率的に実現できる。
【図面の簡単な説明】
【0025】
【図1】本発明の一実施形態におけるセンサ情報転送システムの全体の構成を示すブロック図である。
【図2】本発明の一実施形態におけるセンサ情報転送システムにおけるセンサの構成の一例を示すブロック図である。
【図3】本発明の一実施形態におけるセンサ情報転送システムにおけるアプリケーション装置の構成の一例を示すブロック図である。
【図4】本発明の一実施形態におけるセンサ情報転送システムにおける転送サーバの構成の一例を示すブロック図である。
【図5】本発明の一実施形態におけるセンサ情報転送システムにおける分担管理サーバの構成の一例を示すブロック図である。
【図6】本発明の一実施形態における収容先計算部の構成の一例を示すブロック図である。
【図7】本発明の一実施形態における情報受け取り要求の登録処理の説明図である。
【図8】本発明の一実施形態における情報受け取り要求の登録処理の説明に用いるフローチャートである。
【図9】本発明の一実施形態におけるセンサ情報転送システムにおける転送サーバの説明図である。
【図10】本発明の一実施形態におけるセンサ情報転送システムにおける転送サーバの説明図である。
【図11】本発明の一実施形態におけるセンサ情報転送システムにおける転送サーバの説明図である。
【図12】本発明の一実施形態におけるセンサ情報転送システムにおける転送サーバの説明図である。
【図13】本発明の一実施形態におけるコマンド情報の登録処理の説明図である。
【図14】本発明の一実施形態におけるコマンド情報の登録処理の説明に用いるフローチャートである。
【発明を実施するための形態】
【0026】
本発明の一実施形態を以下に示す。
図1は、本実施の形態におけるセンサ情報転送システム全体の構成を示す。ネットワーク105にセンサ101A、センサ101B、センサ101C、アプリケーション装置102、転送サーバ103A、転送サーバ103B、転送サーバ103C、転送サーバ103D、分担管理サーバ104が接続される。ここで、複数のセンサ101A〜Cは同様の構成であるので、特に区別して説明する必要がない場合には、センサ101として説明する。同様に、転送サーバ103A〜Dは同様の構成であるので、特に区別して説明する必要がない場合には、転送サーバ103として説明する。
センサ群とアプリケーション装置102は、転送サーバ群の機能を以下に詳述する方法により用いることで、互いに情報のやりとりを行う。
【0027】
ここで、本実施の形態において、ネットワークはIP(Internet Protocol)等のプロトコルにより有線接続されているものとする。本発明におけるネットワークの範囲はこれに限るものではなく、広汎なネットワークが利用可能である。特にセンサ群の接続について、IP以外のプロトコルを用いた無線ネットワーク、例えば携帯電話ネットワークを用いてもよい。さらに、それらネットワークと、IP等による有線接続ネットワークを相互接続する等、複数種類のネットワークが混在していてもよい。混在するネットワークの間にはメディアないしプロトコルを相互変換する適切なゲートウェイを挿入してもよい。
【0028】
図2は、センサ101の構成を示す。センサ101は、具備する温度センサ126により温度を取得しサーバに送信する機能を持つのに加え、アラームランプ127およびブザー128を具備し、サーバからの指示に従い該ランプの赤色点灯ならびに該ブザーの鳴動を行えるものとする。また、センサ101は、転送サーバ群との通信機能を受け持つクライアントライブラリ120を具備する。クライアントライブラリ120は、イベント登録部121、ハッシュ計算部122、収容先計算部123、受け取り要求登録部124、ならびにコマンド受信部125を有する。
【0029】
図3は、アプリケーション装置102の構成を示す。アプリケーション装置102は、ユーザーとの入出力機能を提供するアプリケーションロジック131と、転送サーバ群との通信機能を受け持つクライアントライブラリ130とを具備する。クライアントライブラリ130は、ハッシュ計算部132、収容先計算部133、コマンド登録部134を有する。ここで、ハッシュ計算部132および収容先計算部133は、センサ101が備えるハッシュ計算部122および収容先計算部123と同様の機能部であり、同様の方法によりハッシュ計算、収容先計算を行い、計算結果の整合性が保たれるものとする。
図4は、転送サーバ103の構成を示す。転送サーバ103は、イベント受信部141、受け取り要求受信部142、受け取り要求保持部143、コマンド受信登録部144、条件比較部145、ならびにコマンド転送部146を有する。
【0030】
本実施の形態において、センサ情報転送システム全体は、非特許文献1および非特許文献2で示されるuTupleSpace技術に基づいて構築されるものとする。換言すると、上記述べた転送サーバ群は、非特許文献1における「uTupleServer」あるいは非特許文献2における「タプルサーバ」の機能を実装する。また、クライアントライブラリ120およびクライアントライブラリ130は、非特許文献1における「uTupleClient」の機能を実装する。これら技術の詳細は十分に開示されており、当業者により実施可能である。とりわけセンサからのイベントデータの処理について実施可能である。あるいは、とりわけ複数の転送サーバを設置しそれらの間で負荷分散を行う処理について、既に述べた従来技術の問題が未解決であることを除いては、実施可能である。ここで従来技術の問題とは、センサ情報転送の動的負荷分散を行う従来技術においてある種類の典型的なコマンド送信アプリケーションにおいて、負荷分散により十分な負荷軽減ができないという問題である。
【0031】
そこで以下では、上述した従来技術の問題を解決するという本発明の趣旨に鑑み、特にセンサへのコマンドデータの送信に関わる処理について、実施の形態を詳細に示していく。
図5は、分担管理サーバ104の構成を示す。分担管理サーバ104は、分担管理テーブル150と、要求処理部151とを有する。分担管理テーブル150は、分担管理サーバ104の記憶領域に記憶された情報であり、文字列をキーとし、1つ以上の転送サーバの並びを値とするハッシュ表により管理される。ここで、センサ101のハッシュ計算部122あるいはアプリケーション装置102のハッシュ計算部132は、後述のように、情報の種別を示すtype属性値の文字列を含むハッシュ問い合わせ要求を、分担管理サーバ104に送信する。分担管理サーバ104の要求処理部151がこれを受信し、該要求が含む該文字列をキーとしてハッシュ表を検索し、転送サーバの並びを得る。要求処理部151は、該並びをセンサ101のハッシュ計算部122あるいはアプリケーション装置102のハッシュ計算部132に返却する。上記一連の処理手順により、センサ101のハッシュ計算部122あるいはアプリケーション装置102のハッシュ計算部132は、文字列から転送サーバの並びを得る計算処理を、システム全体で一意の結果を得られるようにしつつ実現する。
【0032】
本実施の形態においては、入力「alarm_lamp」に対して出力「転送サーバC」を、また入力「buzzer」に対して出力「転送サーバD、転送サーバA、転送サーバB」を、それぞれ返すとして以下説明する。なお、上記示した分担管理サーバ104および分担管理テーブル150の実現方法は、非特許文献2に詳細に開示されている。
ここで、上記、情報の種別を示すtype属性値とは、本発明におけるセンサ情報の特徴を示すメタ情報のことであって、本実施の形態においてはCFおよびCA、あるいはEAおよびEF等の情報が含むセンサ種別を表す属性である。具体的には、後述するCF(CF170〜172)ならびにCA(230〜231)で例示されるデータフォーマットにおいて、例えばCA230でtype=buzzerのように記載されているところのbuzzerという文字列を示す。ただし、本発明の範囲はこれに限るものではなく、本発明におけるセンサ情報の特徴を示すメタ情報としては、センサ情報に対し広汎に付与されるメタ情報であればよい。例えば、上述のものの他、アプリケーションジャンルを表す情報、情報の所有者や閲覧可能者を示す情報、実施事業者を示す情報、名前空間を区別するための情報などを用いてもよい。なおこのように、本実施の形態で扱うデータフォーマットは、「属性名=属性値,属性名=属性値,属性名=属性値……」のような可変長の並びとして表現する。
【0033】
図6は、収容先計算部123(収容先計算部133)が保有するアドレス表160の内容を示す。本実施の形態において、センサAには固有の識別子(ID)として「0x0011」が、センサBには固有のIDとして「0x0012」が、センサCには固有のIDとして「0x0013」が、それぞれ割り振られているものとする。アドレス表160は、センサIDから、対応する転送サーバ名を得るための表である。収容先計算部123(収容先計算部133)は該表を用い、センサIDを入力とし、転送サーバ名を出力とする計算機能を実装する。なお、ハッシュ計算部122(ハッシュ計算部132)並びに収容先計算部123(収容先計算部133)は、センサにおけるクライアントライブラリ120のものとアプリケーション装置102におけるクライアントライブラリ130のものとを含めて、システム全体で同一の計算結果を返すものとする。特に収容先計算部123(収容先計算部133)のアドレス表160については、本実施の形態では、各装置が個別に保有するものとした。ただし、本発明の範囲はこれに限るものではなく、例えばアドレス表の管理を専任されるサーバ装置をネットワーク上に別途準備し、各装置における収容先計算部123(収容先計算部133)は該サーバ装置に問い合わせを行うことで、収容先計算部123(収容先計算部133)がシステム全体で同一の計算結果を返すようにしてもよい。
【0034】
図7は、本実施の形態において登録されているCFならびにこれから登録しようとするCFを示す。以下の例では、センサ101AがCF170を既に登録しており、かつ、センサ101CがCF171を既に登録している状態で、センサ101BがCF172を新たに登録しようとする際の処理手順について例示する。なお、例えば、CF171はセンサIDが0x0013で現在位置が101号室にいるブザーの駆動要求待ち受けであることを示している。また、例えば、CF172はセンサIDが0x0012で現在位置が201号室にいるアラームランプの駆動要求待ち受けであることを示している。
【0035】
図8は、センサ101BにおけるCF登録処理の手順を示す。センサ101Bは、電源投入時等に、本手順を実行開始する(ステップS101)。ここで、投入しようとするCF172は、センサ101Bに固有の情報を文字列表記したものなので、生成は容易である。まず、ハッシュ計算部122に、CF172の中のtype属性値を入力し、転送サーバのリスト、この例では転送サーバCを得る(ステップS102)。次に、受け取り要求登録部124は、該CFからaddress属性を削除した新たなCFを生成し、該転送サーバのうちのいずれか一つに対し、該新たなCFと登録事由「hash」を組とする、CF登録要求を送信する(ステップS103)。なお、このCF登録要求は、転送サーバ103Cの受け取り要求受信部142が受け取り、受け取り要求保持部143に記憶させる。
【0036】
次に、センサ101Bは、収容先計算部123に、CF172の中のaddress属性値を入力し、転送サーバBを得る(ステップS104)。次に、受け取り要求登録部124は、該転送サーバに対し、該CFと登録事由「address」を組とする、CF登録要求を送信する(ステップS105)。なお、このCF登録要求は、転送サーバ103Bの受け取り要求受信部142が受け取り、受け取り要求保持部143に記憶させる。センサ101BにおけるCF登録処理の手順は以上で終了となる。
【0037】
なお、ハッシュ計算部122により得られた転送サーバのリストが2台以上である場合というのは、従来技術における動的負荷分散を行っている場合に生じ得る。非特許文献2に実現方法の詳細が開示されている。そのような場合の処理方法の概略は前述したとおりであり、すなわち、センサ101がCFを登録する際、ハッシュ関数によって得られた担当する転送サーバ群について、そのうちのいずれか1台を乱数等の任意の方法で選択し、該転送サーバにのみ該CFを送信する。一方、アプリケーション装置102がCAを登録する際、ハッシュ関数によって得られた担当する転送サーバ群について、該群が含むすべての転送サーバ103に該CAを送信する。
【0038】
図9は、転送サーバ101Aの受け取り要求保持部143(受け取り要求保持部143A)の構成を示す。受け取り要求保持部143Aは、CF待ち受け表180(CF待ち受け表180A)を記憶する。該表の1行目は、CF170に対応する。各行の1桁目は、該表が保持するCFを意味する。また、各行の2桁目は、そのCFの登録要求で併せて送信された、登録事由を意味する。また、各行の3桁目は、そのCFの登録要求を送信したセンサがいずれであるかを意味する。該表は、上記CF登録処理の手順の結果、変化しない。
【0039】
図10は、転送サーバ103Bの受け取り要求保持部143(受け取り要求保持部143B)の構成を示す。受け取り要求保持部143Bは、CF待ち受け表180(CF待ち受け表180B)を記憶する。該表の1行目は、CF171に対応する。該表の2行目(符号a)は、新たに登録されたCF172に対応するものであり、上記CF登録処理の手順の結果、追記保存された部分である。該行の1桁目はCF172の内容を、2桁目は登録事由「address」を、3桁目は登録元のセンサがセンサ101Bであることを、それぞれ意味する。
【0040】
図11は、転送サーバ103Cの受け取り要求保持部143(受け取り要求保持部143C)の構成を示す。受け取り要求保持部143Cは、CF待ち受け表180(CF待ち受け表180C)を記憶する。該表の1行目は、CF170に対応する。該表の2行目(符号a)は、新たに登録されたCF172に対応するものであり、上記CF登録処理の手順の結果、追記保存された部分である。該行の1桁目はCF172の内容から、上述のステップS103によりaddress属性を削除したものを、2桁目は登録事由「hash」を、3桁目は登録元のセンサがセンサ101Bであることを、それぞれ意味する。
【0041】
図12は、転送サーバ103Dの受け取り要求保持部143(受け取り要求保持部143D)の構成を示す。受け取り要求保持部143Dは、CF待ち受け表180(CF待ち受け表180D)を記憶する。該表の1行目は、CF171に対応する。該表は、上記CF登録処理の手順の結果、変化しない。なお、CF171の登録事由「hash」については、分担管理テーブル150の「buzzer」の検索結果が「転送サーバD、転送サーバA、転送サーバB」の3台であることから、転送サーバD、転送サーバA、転送サーバBのうちいずれか一つの中の受け取り要求保持部143が該CFを登録事由「hash」で保持する可能性がある。ここでは、本実施の形態における説明の一例として、転送サーバDが該CFを保持していたものとしてデータの例を示した。これはすなわち、あるCAと該CFとの照合を漏れなく行うためには、転送サーバD、転送サーバA、転送サーバBの全てにおいて照合処理を行うことによって、全ての可能性をあたる必要があることを示している。この処理の流れは、非特許文献2に開示されている実現方法の詳細の通りである。以上述べたCF登録処理により、転送サーバ群にCFが登録され、システム全体としては新たなCAの到着を待ち受ける状態となる。
【0042】
図13は、本実施の形態においてこれから登録しようとするCAを示す図である。以下の例では、アプリケーション装置102がCA230をまず新たに登録し、次いで、CA231をさらに新たに登録する際の処理手順について例示する。なお、例えば、CA230はセンサIDが0x0013のブザーに対するonの操作要求であることを示している。なおその際、現在位置は値によらず条件合致と見なすことを示している。また、例えば、CA(231)は現在位置が101号室〜199号室の範囲に含まれるアラームランプに対するredの操作要求であることを示している。このように、それぞれのCAはメタデータ(条件)とデータを含む。条件部分は転送サーバにおいてCFとの条件比較処理が行われ、合致した際はCFを登録したセンサが該CAのデータを受け取って所定の動作、例えばブザーを鳴動したりアラームを赤色点灯したりする等の動作を行う。
【0043】
図14は、アプリケーション装置102におけるCA登録処理の手順を示す。アプリケーションロジック131はユーザーの操作を受けて、まず、CA230の登録処理を
クライアントライブラリ130に依頼することで開始する(ステップS201)。クライアントライブラリ130は、該CAがaddress属性を含むかを判断する(ステップS202)。CA230はaddress属性を含むので、次に、収容先計算部133に、該CAの中のaddress属性値を入力し、転送サーバ103Bを得る(ステップS203)。次に、コマンド登録部134は、該転送サーバ103Bに対し、該CAを内容として含むCA登録要求を送信する(ステップS204)。
【0044】
なお、このCA登録要求は、転送サーバ103Bのコマンド受信登録部144が受け取り、条件比較部145が該CA230と受け取り要求保持部143が記憶するCFとの条件比較処理を行う。その結果、CF待ち受け表180(CF待ち受け表180B)の1行目に保持されるCFと合致するため、該行の3桁目のセンサすなわちセンサ101Cに対して、コマンド転送部146は該CAを送信する。センサ101Cのコマンド受信部125は該CAを受信し、該CAはtype=buzzerであるため、センサ101Cは具備するブザー128を値onに操作すなわち鳴動を行う。
【0045】
次に、アプリケーションロジック131はユーザーの操作を受けて、CA231の登録処理をクライアントライブラリ130に依頼することで開始する(ステップS201)。クライアントライブラリ130は、該CAがaddress属性を含むかを判断する(ステップS202)。CA231はaddress属性を含まないので、次に、ハッシュ計算部132に、該CAの中のtype属性値を入力し、転送サーバのリスト、この例では転送サーバCを得る(ステップS205)。次に、コマンド登録部134は、該転送サーバのリストに含まれる全ての転送サーバに対し、該CAを内容として含むCA登録要求を送信する(ステップS204)。なお、本実施の形態において、ステップS205について処理対象とするCAがtype属性値を含まない場合には、クライアントライブラリ130の入力エラーである。
【0046】
なお、ハッシュ計算部132により得られた転送サーバのリストが2台以上である場合というのは、従来技術における動的負荷分散を行っている場合に生じ得るものであり、非特許文献2に実現方法の詳細が開示されていることは、既に述べた通りである。なお、このCA登録要求は、転送サーバ103Cのコマンド受信登録部144が受け取り、条件比較部145が該CA231と受け取り要求保持部143の保持するCFとの条件比較処理を行う。その結果、CF待ち受け表180Cの1行目に保持されるCFと合致するため、該行の3桁目のセンサすなわちセンサ101Aに対して、コマンド転送部146は該CAを送信する。センサ101Aのコマンド受信部125は該CAを受信し、該CAはtype=alarm_lampであるため、センサ101Aは具備するアラームランプ127を値redに操作すなわち赤色点灯を行う。
【0047】
ここで、上記述べた2種類のCAの登録処理が、本発明によりどのように効率よく扱われるかを確認しておく。CA230はaddress属性を中に含む操作であり、このようなCAを生成する典型的アプリケーションとしては、センサ情報転送システムを経由して遠隔地から家電の制御を行う、高度リモコン型アプリケーションが挙げられる。既に述べたように、該アプリケーションは、従来技術において動的負荷分散によりCAの登録に関わるオーバーヘッドは無視できないほど大きくなるという問題があった。本実施形態によると該問題は解決でき、具体的には上記実施例において、ステップS203により、単一の転送サーバが選択されるので、CAの登録処理を行う対象は1台の転送サーバで済む。このため例えば、前記述べた数量例に従って例示するとすれば、CFが合計1億個のCAすなわち制御コマンドを受け取った場合、CAの登録処理も1億回行われるが、その際仮に転送サーバが何台の負荷分散であったとしても、CAの登録回数は1億回となり、CFへの転送回数に等しくなるため、CAの登録に関わるオーバーヘッドを十分小さくできるという利点が得られる。
【0048】
仮に本発明を適用しなかったとすると、前述の実施例においては、type=buzzerを受け持つ転送サーバすなわち分担管理テーブル150によると転送サーバD、転送サーバA、転送サーバCの3台全てにCAの登録処理を行わなければならなくなるため、このため例えば前記述べた数量例に従って例示するとすれば、CAの登録処理を1億回行うとして、各処理ごとに3台の転送サーバに登録を行うためCAの登録回数は3億回となり、CAの登録に関わるオーバーヘッドが無視できなくなるほど大きいという問題が起きていたところである。
【0049】
次に、CA231はaddress属性を中に含まず、範囲条件を指定してコマンド送信する操作である。このような高度な操作は、uTupleSpaceの提供する高度なデータの転送処理の特徴を活用したものである。仮に、uTupleSpaceを使用せず、センサとアプリケーションをネットワーク経由で直接接続したとすると、該操作の実現は困難である。本実施の形態においては、このようなCAであっても、ステップS205により従来通りの処理手順を用いて転送サーバにCAの登録処理を行うため、高い機能性を実現できる。
【0050】
上記述べたように、本実施の形態によれば、高度なデータの転送処理を行うコマンド送信型アプリケーションを容易に作成できるようにしつつ、それらの静的ならびに動的な負荷分散を行い、さらに、具体的送信先をアプリケーションが知りうるようなコマンド送信型アプリケーションも効率的に実現できる。
【0051】
以上、本発明に関わる、センサへのコマンドデータの送信処理について、実施の形態を詳細に示してきた。既に述べたように、本実施の形態において、センサ情報転送システム全体は、非特許文献1および非特許文献2で示されるuTupleSpace技術に基づいて構築することが可能である。これら技術の詳細は十分に開示されており当業者により実施可能であり、とりわけセンサからのイベントデータの処理について実施可能である。例えば、センサデータの記録処理は以下のように実施できる。すなわち、センサ101Aは具備する温度センサ126により温度を取得し、具備するクライアントライブラリ120の中のイベント登録部121が、ネットワーク105に登録要求を送出することによって、転送サーバ群の中のいずれか一つの転送サーバにEAの登録要求を送信する。ここでEAとは、uTupleSpace技術におけるセンサからのイベントデータ(EA)を表す用語であり、上記文献により開示されている。該転送サーバは、該転送サーバが具備するイベント受信部141が該要求を受け取り、該転送サーバが管理する記憶装置に該EAを記録する。なお、上記いずれか一つの転送サーバを選択する方法については、静的な負荷分散に基づき選択する方法が非特許文献1に開示されており、また、動的な負荷分散に基づき選択する方法が非特許文献2に開示されており、実施方法は明確である。
【0052】
なお、本実施の形態において、address属性を含むCAの送信処理は、address属性値により決定される1台の転送サーバが受け持つこととしたが、本発明の範囲はこれに限るものではなく、複数台の転送サーバが受け持ち負荷分散してもよい。その場合には、例えば、アドレス表160の検索結果として転送サーバのリストを返すようにして、収容先計算部123の計算結果が2台以上の転送サーバのリストであった場合に、それらリストに含まれる転送サーバの一部ないしは全ての転送サーバにCFあるいはCA登録処理を適宜分担させるようにしてもよい。
【符号の説明】
【0053】
101A〜101C:センサ
102:アプリケーション装置
103A〜103D:転送サーバ
104:分担管理サーバ
105:ネットワーク
120:クライアントライブラリ
121:イベント登録部
122:ハッシュ計算部
123:収容先計算部
124:受け取り要求登録部
125:コマンド受信部
126:温度センサ
127:アラームランプ
128:ブザー
130:クライアントライブラリ
131:アプリケーションロジック
132:ハッシュ計算部
133:収容先計算部
134:コマンド登録部
141:イベント受信部
142:受け取り要求受信部
143:受け取り要求保持部
144:コマンド受信登録部
145:条件比較部
146:コマンド転送部
150:分担管理テーブル
151:要求処理部
【特許請求の範囲】
【請求項1】
センサクライアント装置が転送サーバにコマンド受け取り要求を登録し、アプリケーションクライアント装置がコマンド情報を前記転送サーバに登録し、当該転送サーバが、前記センサクライアント装置からのコマンド受け取り要求と、前記アプリケーションクライアント装置からのコマンド情報との条件比較を行い、当該条件が合致した場合に、前記センサクライアント装置にコマンド情報を転送するセンサ情報転送システムを構成する前記センサクライアント装置であって、
センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定するハッシュ計算手段と、
該センサクライアント装置のIDから、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する収容先計算手段と、
該ハッシュ計算手段で特定された前記転送サーバに、コマンド受け取り要求を登録し、該収容先計算手段で特定された転送サーバの内の1つに、コマンド受け取り要求を登録するコマンド受け取り要求登録手段と、
前記転送サーバからコマンド情報を受信するコマンド情報受信手段と、
を備えることを特徴とするセンサクライアント装置。
【請求項2】
センサクライアント装置が転送サーバにコマンド受け取り要求を登録し、アプリケーションクライアント装置がコマンド情報を前記転送サーバに登録し、当該転送サーバが、前記センサクライアント装置からのコマンド受け取り要求と、前記アプリケーションクライアント装置からのコマンド情報との条件比較を行い、当該条件が合致した場合に、前記センサクライアント装置にコマンド情報を転送するセンサ情報転送システムを構成する前記アプリケーションクライアント装置であって、
該アプリケーションクライアント装置が送信しようとするコマンド情報にはコマンド情報を送信しようとするセンサクライアント装置のID、あるいは、センサ情報の特徴を示すメタ情報、のいずれかを含み、
センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定するハッシュ計算手段と、
コマンド情報を送信しようとする前記センサクライアント装置のIDから前記複数の転送サーバのうちの1つ以上の転送サーバを特定する収容先計算手段と、
送信しようとするコマンド情報の中に、コマンド情報を送信しようとするセンサクライアント装置のIDを含む場合に、該収容先計算手段で特定された転送サーバに該コマンド情報を登録し、送信しようとするコマンド情報の中にコマンド情報を送信しようとするセンサクライアント装置のIDを含まない場合に、該ハッシュ計算手段で特定された転送サーバ全てに該コマンド情報を登録するコマンド情報登録手段と、
を備えることを特徴とするアプリケーションクライアント装置。
【請求項3】
一つ以上のセンサクライアント装置と、一つ以上のアプリケーションクライアント装置と、一つ以上の転送サーバとがネットワークで接続され、コマンド送信を負荷分散するセンサ情報転送システムであって、
該センサクライアント装置は、
センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する第1のハッシュ計算手段と、
該センサクライアント装置のIDから、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する第1の収容先計算手段と、
該第1のハッシュ計算手段で特定された前記転送サーバに、コマンド受け取り要求を登録し、該第1の収容先計算手段で特定された転送サーバの内の1つに、コマンド受け取り要求を登録するコマンド受け取り要求登録手段と、
前記転送サーバからコマンド情報を受信するコマンド情報受信手段と、を備え、
該アプリケーションクライアント装置は、
該アプリケーションクライアント装置が送信しようとするコマンド情報にはコマンド情報を送信しようとするセンサクライアント装置のID、あるいは、センサ情報の特徴を示すメタ情報、のいずれかを含み、
センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する第2のハッシュ計算手段と、
コマンド情報を送信しようとする前記センサクライアント装置のIDから前記複数の転送サーバのうちの1つ以上の転送サーバを特定する第2の収容先計算手段と、
送信しようとするコマンド情報の中に、コマンド情報を送信しようとするセンサクライアント装置のIDを含む場合に、該第2の収容先計算手段で特定された転送サーバに該コマンド情報を登録し、送信しようとするコマンド情報の中にコマンド情報を送信しようとするセンサクライアント装置のIDを含まない場合に、該第2のハッシュ計算手段で特定された転送サーバ全てに該コマンド情報を登録するコマンド情報登録手段と、を備え、
該転送サーバは、
コマンド受け取り要求を受信し保持する保持手段と、
コマンド情報を登録する登録手段と、
登録されたコマンド情報と、保持する該コマンド受け取り要求が含む条件とを比較する条件比較手段と、
比較の結果合致した該コマンド情報を該コマンド受け取り要求の登録元に転送する転送手段と、
を備えることを特徴とするセンサ情報転送システム。
【請求項4】
センサクライアント装置が転送サーバにコマンド受け取り要求を登録し、アプリケーションクライアント装置がコマンド情報を前記転送サーバに登録し、当該転送サーバが、前記センサクライアント装置からのコマンド受け取り要求と、前記アプリケーションクライアント装置からのコマンド情報との条件比較を行い、当該条件が合致した場合に、前記センサクライアント装置にコマンド情報を転送するセンサ情報転送システムを構成する前記センサクライアント装置のコマンド情報受信方法であって、
センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定するハッシュ計算工程と、
該センサクライアント装置のIDから、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する収容先計算工程と、
該ハッシュ計算工程で特定された前記転送サーバに、コマンド受け取り要求を登録し、該収容先計算工程で特定された転送サーバの内の1つに、コマンド受け取り要求を登録するコマンド受け取り要求登録工程と、
前記転送サーバからコマンド情報を受信するコマンド情報受信工程と、
を備えることを特徴とするコマンド情報受信方法。
【請求項5】
センサクライアント装置が転送サーバにコマンド受け取り要求を登録し、アプリケーションクライアント装置がコマンド情報を前記転送サーバに登録し、当該転送サーバが、前記センサクライアント装置からのコマンド受け取り要求と、前記アプリケーションクライアント装置からのコマンド情報との条件比較を行い、当該条件が合致した場合に、前記センサクライアント装置にコマンド情報を転送するセンサ情報転送システムを構成する前記アプリケーションクライアント装置のコマンド情報登録方法であって、
該アプリケーションクライアント装置が送信しようとするコマンド情報にはコマンド情報を送信しようとするセンサクライアント装置のID、あるいは、センサ情報の特徴を示すメタ情報、のいずれかを含み、
センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定するハッシュ計算工程と、
コマンド情報を送信しようとする前記センサクライアント装置のIDから前記複数の転送サーバのうちの1つ以上の転送サーバを特定する収容先計算工程と、
送信しようとするコマンド情報の中に、コマンド情報を送信しようとするセンサクライアント装置のIDを含む場合に、該収容先計算工程で特定された転送サーバに該コマンド情報を登録し、送信しようとするコマンド情報の中にコマンド情報を送信しようとするセンサクライアント装置のIDを含まない場合に、該ハッシュ計算工程で特定された転送サーバ全てに該コマンド情報を登録するコマンド情報登録工程と、
を備えることを特徴とするコマンド情報登録方法。
【請求項6】
一つ以上のセンサクライアント装置と、一つ以上のアプリケーションクライアント装置と、一つ以上の転送サーバとがネットワークで接続され、コマンド送信を負荷分散するセンサ情報転送システムのセンサ情報転送方法であって、
該センサクライアント装置が、
センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する第1のハッシュ計算工程と、
該センサクライアント装置のIDから、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する第1の収容先計算工程と、
該第1のハッシュ計算工程で特定された前記転送サーバに、コマンド受け取り要求を登録し、該第1の収容先計算工程で特定された転送サーバの内の1つに、コマンド受け取り要求を登録するコマンド受け取り要求登録工程と、
前記転送サーバからコマンド情報を受信するコマンド情報受信工程と、を備え、
該アプリケーションクライアント装置が送信しようとするコマンド情報にはコマンド情報を送信しようとするセンサクライアント装置のID、あるいは、センサ情報の特徴を示すメタ情報、のいずれかを含み、
該アプリケーションクライアント装置が、
センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する第2のハッシュ計算工程と、
コマンド情報を送信しようとする前記センサクライアント装置のIDから前記複数の転送サーバのうちの1つ以上の転送サーバを特定する第2の収容先計算工程と、
送信しようとするコマンド情報の中に、コマンド情報を送信しようとするセンサクライアント装置のIDを含む場合に、該第2の収容先計算工程で特定された転送サーバに該コマンド情報を登録し、送信しようとするコマンド情報の中にコマンド情報を送信しようとするセンサクライアント装置のIDを含まない場合に、該第2のハッシュ計算工程で特定された転送サーバ全てに該コマンド情報を登録するコマンド情報登録工程と、を備え、
該転送サーバが、
コマンド受け取り要求を受信し保持する保持工程と、
コマンド情報を登録する登録工程と、
登録されたコマンド情報と、保持する該コマンド受け取り要求が含む条件とを比較する条件比較工程と、
比較の結果合致した該コマンド情報を該コマンド受け取り要求の登録元に転送する転送工程と、
を備えることを特徴とするセンサ情報転送方法。
【請求項1】
センサクライアント装置が転送サーバにコマンド受け取り要求を登録し、アプリケーションクライアント装置がコマンド情報を前記転送サーバに登録し、当該転送サーバが、前記センサクライアント装置からのコマンド受け取り要求と、前記アプリケーションクライアント装置からのコマンド情報との条件比較を行い、当該条件が合致した場合に、前記センサクライアント装置にコマンド情報を転送するセンサ情報転送システムを構成する前記センサクライアント装置であって、
センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定するハッシュ計算手段と、
該センサクライアント装置のIDから、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する収容先計算手段と、
該ハッシュ計算手段で特定された前記転送サーバに、コマンド受け取り要求を登録し、該収容先計算手段で特定された転送サーバの内の1つに、コマンド受け取り要求を登録するコマンド受け取り要求登録手段と、
前記転送サーバからコマンド情報を受信するコマンド情報受信手段と、
を備えることを特徴とするセンサクライアント装置。
【請求項2】
センサクライアント装置が転送サーバにコマンド受け取り要求を登録し、アプリケーションクライアント装置がコマンド情報を前記転送サーバに登録し、当該転送サーバが、前記センサクライアント装置からのコマンド受け取り要求と、前記アプリケーションクライアント装置からのコマンド情報との条件比較を行い、当該条件が合致した場合に、前記センサクライアント装置にコマンド情報を転送するセンサ情報転送システムを構成する前記アプリケーションクライアント装置であって、
該アプリケーションクライアント装置が送信しようとするコマンド情報にはコマンド情報を送信しようとするセンサクライアント装置のID、あるいは、センサ情報の特徴を示すメタ情報、のいずれかを含み、
センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定するハッシュ計算手段と、
コマンド情報を送信しようとする前記センサクライアント装置のIDから前記複数の転送サーバのうちの1つ以上の転送サーバを特定する収容先計算手段と、
送信しようとするコマンド情報の中に、コマンド情報を送信しようとするセンサクライアント装置のIDを含む場合に、該収容先計算手段で特定された転送サーバに該コマンド情報を登録し、送信しようとするコマンド情報の中にコマンド情報を送信しようとするセンサクライアント装置のIDを含まない場合に、該ハッシュ計算手段で特定された転送サーバ全てに該コマンド情報を登録するコマンド情報登録手段と、
を備えることを特徴とするアプリケーションクライアント装置。
【請求項3】
一つ以上のセンサクライアント装置と、一つ以上のアプリケーションクライアント装置と、一つ以上の転送サーバとがネットワークで接続され、コマンド送信を負荷分散するセンサ情報転送システムであって、
該センサクライアント装置は、
センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する第1のハッシュ計算手段と、
該センサクライアント装置のIDから、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する第1の収容先計算手段と、
該第1のハッシュ計算手段で特定された前記転送サーバに、コマンド受け取り要求を登録し、該第1の収容先計算手段で特定された転送サーバの内の1つに、コマンド受け取り要求を登録するコマンド受け取り要求登録手段と、
前記転送サーバからコマンド情報を受信するコマンド情報受信手段と、を備え、
該アプリケーションクライアント装置は、
該アプリケーションクライアント装置が送信しようとするコマンド情報にはコマンド情報を送信しようとするセンサクライアント装置のID、あるいは、センサ情報の特徴を示すメタ情報、のいずれかを含み、
センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する第2のハッシュ計算手段と、
コマンド情報を送信しようとする前記センサクライアント装置のIDから前記複数の転送サーバのうちの1つ以上の転送サーバを特定する第2の収容先計算手段と、
送信しようとするコマンド情報の中に、コマンド情報を送信しようとするセンサクライアント装置のIDを含む場合に、該第2の収容先計算手段で特定された転送サーバに該コマンド情報を登録し、送信しようとするコマンド情報の中にコマンド情報を送信しようとするセンサクライアント装置のIDを含まない場合に、該第2のハッシュ計算手段で特定された転送サーバ全てに該コマンド情報を登録するコマンド情報登録手段と、を備え、
該転送サーバは、
コマンド受け取り要求を受信し保持する保持手段と、
コマンド情報を登録する登録手段と、
登録されたコマンド情報と、保持する該コマンド受け取り要求が含む条件とを比較する条件比較手段と、
比較の結果合致した該コマンド情報を該コマンド受け取り要求の登録元に転送する転送手段と、
を備えることを特徴とするセンサ情報転送システム。
【請求項4】
センサクライアント装置が転送サーバにコマンド受け取り要求を登録し、アプリケーションクライアント装置がコマンド情報を前記転送サーバに登録し、当該転送サーバが、前記センサクライアント装置からのコマンド受け取り要求と、前記アプリケーションクライアント装置からのコマンド情報との条件比較を行い、当該条件が合致した場合に、前記センサクライアント装置にコマンド情報を転送するセンサ情報転送システムを構成する前記センサクライアント装置のコマンド情報受信方法であって、
センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定するハッシュ計算工程と、
該センサクライアント装置のIDから、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する収容先計算工程と、
該ハッシュ計算工程で特定された前記転送サーバに、コマンド受け取り要求を登録し、該収容先計算工程で特定された転送サーバの内の1つに、コマンド受け取り要求を登録するコマンド受け取り要求登録工程と、
前記転送サーバからコマンド情報を受信するコマンド情報受信工程と、
を備えることを特徴とするコマンド情報受信方法。
【請求項5】
センサクライアント装置が転送サーバにコマンド受け取り要求を登録し、アプリケーションクライアント装置がコマンド情報を前記転送サーバに登録し、当該転送サーバが、前記センサクライアント装置からのコマンド受け取り要求と、前記アプリケーションクライアント装置からのコマンド情報との条件比較を行い、当該条件が合致した場合に、前記センサクライアント装置にコマンド情報を転送するセンサ情報転送システムを構成する前記アプリケーションクライアント装置のコマンド情報登録方法であって、
該アプリケーションクライアント装置が送信しようとするコマンド情報にはコマンド情報を送信しようとするセンサクライアント装置のID、あるいは、センサ情報の特徴を示すメタ情報、のいずれかを含み、
センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定するハッシュ計算工程と、
コマンド情報を送信しようとする前記センサクライアント装置のIDから前記複数の転送サーバのうちの1つ以上の転送サーバを特定する収容先計算工程と、
送信しようとするコマンド情報の中に、コマンド情報を送信しようとするセンサクライアント装置のIDを含む場合に、該収容先計算工程で特定された転送サーバに該コマンド情報を登録し、送信しようとするコマンド情報の中にコマンド情報を送信しようとするセンサクライアント装置のIDを含まない場合に、該ハッシュ計算工程で特定された転送サーバ全てに該コマンド情報を登録するコマンド情報登録工程と、
を備えることを特徴とするコマンド情報登録方法。
【請求項6】
一つ以上のセンサクライアント装置と、一つ以上のアプリケーションクライアント装置と、一つ以上の転送サーバとがネットワークで接続され、コマンド送信を負荷分散するセンサ情報転送システムのセンサ情報転送方法であって、
該センサクライアント装置が、
センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する第1のハッシュ計算工程と、
該センサクライアント装置のIDから、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する第1の収容先計算工程と、
該第1のハッシュ計算工程で特定された前記転送サーバに、コマンド受け取り要求を登録し、該第1の収容先計算工程で特定された転送サーバの内の1つに、コマンド受け取り要求を登録するコマンド受け取り要求登録工程と、
前記転送サーバからコマンド情報を受信するコマンド情報受信工程と、を備え、
該アプリケーションクライアント装置が送信しようとするコマンド情報にはコマンド情報を送信しようとするセンサクライアント装置のID、あるいは、センサ情報の特徴を示すメタ情報、のいずれかを含み、
該アプリケーションクライアント装置が、
センサ情報の特徴を示すメタ情報から、複数の前記転送サーバのうちの1つ以上の転送サーバを特定する第2のハッシュ計算工程と、
コマンド情報を送信しようとする前記センサクライアント装置のIDから前記複数の転送サーバのうちの1つ以上の転送サーバを特定する第2の収容先計算工程と、
送信しようとするコマンド情報の中に、コマンド情報を送信しようとするセンサクライアント装置のIDを含む場合に、該第2の収容先計算工程で特定された転送サーバに該コマンド情報を登録し、送信しようとするコマンド情報の中にコマンド情報を送信しようとするセンサクライアント装置のIDを含まない場合に、該第2のハッシュ計算工程で特定された転送サーバ全てに該コマンド情報を登録するコマンド情報登録工程と、を備え、
該転送サーバが、
コマンド受け取り要求を受信し保持する保持工程と、
コマンド情報を登録する登録工程と、
登録されたコマンド情報と、保持する該コマンド受け取り要求が含む条件とを比較する条件比較工程と、
比較の結果合致した該コマンド情報を該コマンド受け取り要求の登録元に転送する転送工程と、
を備えることを特徴とするセンサ情報転送方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2012−3307(P2012−3307A)
【公開日】平成24年1月5日(2012.1.5)
【国際特許分類】
【出願番号】特願2010−134877(P2010−134877)
【出願日】平成22年6月14日(2010.6.14)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
【公開日】平成24年1月5日(2012.1.5)
【国際特許分類】
【出願日】平成22年6月14日(2010.6.14)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
[ Back to top ]