JP2008146119A - Sensor information processing server and sensor information processing system - Google Patents
Sensor information processing server and sensor information processing system Download PDFInfo
- Publication number
- JP2008146119A JP2008146119A JP2006328937A JP2006328937A JP2008146119A JP 2008146119 A JP2008146119 A JP 2008146119A JP 2006328937 A JP2006328937 A JP 2006328937A JP 2006328937 A JP2006328937 A JP 2006328937A JP 2008146119 A JP2008146119 A JP 2008146119A
- Authority
- JP
- Japan
- Prior art keywords
- database
- data
- sensor information
- information processing
- dht
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、複数の計算機を備える計算機システムに関し、特に、頻繁に更新されるデータの分散処理技術に関する。 The present invention relates to a computer system including a plurality of computers, and particularly to a distributed processing technique for frequently updated data.
近年、ユーザが所有する通信端末はデスクトップPCや各家庭の電話機、ビジネス用途の内線電話などの固定端末から、携帯電話やノートPCなどの移動端末まで多岐に渡りつつある。また、メールやインスタントメッセンジャー、テレビ電話の普及によって、ネットワークを利用した通信手段も多様化しつつある。 In recent years, communication terminals owned by users are diversifying from fixed terminals such as desktop PCs, home telephones, and extension telephones for business use to mobile terminals such as mobile phones and notebook PCs. Also, with the spread of mail, instant messengers, and videophones, communication means using networks are diversifying.
従って近未来のネットワークは、ユーザが複数の通信端末、複数の通信手段を使い分けられるように、ユーザを支援する必要がある。そのための方法としては、ユーザの状態を何らかの方法で取得し、それらの情報に基づいて通信アプリケーションを制御することが考えられる。 Therefore, the near future network needs to support the user so that the user can properly use a plurality of communication terminals and a plurality of communication means. As a method for this, it is conceivable to acquire the user state by some method and control the communication application based on the information.
ユーザの情報を取得および利用するための従来技術としては、プレゼンスサービスがある(参考:非特許文献1)。プレゼンスサービスは、インスタントメッセージングソフトウェアやソフトフォンのユーザ状態表示機能という形で既に普及している。プレゼンスサービスは、一般にユーザの状態をネットワーク側で管理する1台以上のプレゼンスサーバから成る。プレゼンスサービスのユーザは、ユーザエージェント(以下、UA)と呼ばれるクライアントソフトウェアを通してプレゼンスサービスを利用する。ユーザが自分の状態(「オンライン」「退席中」「取り込み中」など)をUAに入力すると、UAはそれをプレゼンスサーバに登録する。そして、プレゼンスサーバはそのユーザの友達のUAに、登録された状態を配布する。 As a prior art for acquiring and using user information, there is a presence service (reference: Non-Patent Document 1). Presence services are already popular in the form of instant messaging software and softphone user status display functions. Presence services generally consist of one or more presence servers that manage user status on the network side. A user of the presence service uses the presence service through client software called a user agent (hereinafter referred to as UA). When the user enters his / her state (“online”, “leaved”, “busy”, etc.) into the UA, the UA registers it in the presence server. The presence server then distributes the registered state to the user's friend UA.
UAに状態を手入力することはユーザにとって面倒であるため、一般的に、プレゼンスサーバに登録される状態の精度はあまり高くない。そのため、プレゼンスサーバ上のユーザ状態は今まであまり活用されていない。また、プレゼンスサーバ上のデータに対する読み書きの回数も少なく、プレゼンスサーバ上のデータベースの負荷は問題にならなかった。 Since it is troublesome for the user to manually input the status to the UA, generally, the accuracy of the status registered in the presence server is not so high. Therefore, the user status on the presence server has not been used so far. In addition, the number of times of reading / writing data on the presence server was small, and the load on the database on the presence server was not a problem.
非集中かつアドホック的にプレゼンスサービスを実現する既存の研究としては、非特許文献2がある。
Non-Patent
複数の通信端末、通信手段の使い分けを支援するためには、ユーザの手入力に頼らず、精度の高いユーザ状態を取得することが必要になる。そこで、ユーザに関する情報を各種センサから自動的に取得し、それらのセンサ情報からユーザの状況を推測して、通信アプリケーションを制御するサーバ(以下、センサ情報処理サーバ)が検討されている。 In order to support the proper use of a plurality of communication terminals and communication means, it is necessary to acquire a highly accurate user state without relying on user manual input. Therefore, a server (hereinafter referred to as a sensor information processing server) that automatically obtains information about the user from various sensors, estimates the user's situation from the sensor information, and controls a communication application has been studied.
図1は、センサ情報処理サーバを利用した通信ネットワークの一例である。
センサ情報配布元2は、温度センサや圧力センサなどの各種センサ群から得られるデータを収集し、再配布するサーバ機器である。センサ情報配布元2は、センサから得られたデータをセンサ情報処理サーバ3へ送信する。センサ情報処理サーバ3はサーバ機器であり、センサ情報がどのように変化したらどのようなアプリケーション制御を行うか、という処理内容を記述したシナリオを備えている。センサ情報処理サーバ3は、センサ情報を受信すると、このシナリオに基づいて過去のセンサ情報と現在のセンサ情報を処理し、その結果に応じてアプリケーションを制御する。この例では、SIPサーバ4に対して、ユーザのプレゼンス情報の更新や、ユーザ間の呼制御を要求する制御メッセージを送信する。
FIG. 1 is an example of a communication network using a sensor information processing server.
The
このような制御メッセージを受信したSIPサーバ4は、SIP User Agent(以下、SIP UA)5に対してプレゼンス情報や呼制御メッセージを送信する。センサ情報処理サーバ3が制御するアプリケーションサーバは、この例(すなわちSIPサーバ)に限られるものではない。
The
今後、ユーザが携帯するセンサや、ユーザの周囲に配置されるセンサが増えるに従って、センサ情報処理サーバの処理量は増加する。そのため、将来的にはセンサ情報処理サーバの負荷分散が必要になる。 In the future, as the number of sensors carried by the user and the sensors arranged around the user increase, the processing amount of the sensor information processing server will increase. Therefore, in the future, it will be necessary to distribute the load of the sensor information processing server.
図2は、一般的な方法でセンサ情報処理サーバの負荷分散を行った通信ネットワークの一例である。センサ情報配布元2は、センサから得たセンサ情報をロードバランサ7へ送信する。ロードバランサ7は、n台のセンサ情報処理サーバ3(nは1以上の整数)の負荷を監視しており、負荷の少ないセンサ情報処理サーバ3へセンサ情報を転送する。センサ情報処理サーバ3は、センサ情報を受信すると、過去のセンサ情報を共通データベースサーバ6から読み込み、現在のセンサ情報を共通データベースサーバ6に書き込む。そして、シナリオに基づいて過去のセンサ情報と現在のセンサ情報を処理し、その結果に応じてアプリケーションを制御する。この例では、SIPサーバ4に対して制御メッセージを送信する。SIPサーバ4とSIP UA5の動作は、図1の例と同じである。
FIG. 2 is an example of a communication network in which load distribution of sensor information processing servers is performed by a general method. The
一般的な方法でセンサ情報処理サーバの負荷分散を行う場合、センサ情報処理サーバがセンサ情報を受信するたびに、共通データベースへの読み書きが発生する。従って、共通データベースがシステム全体のボトルネックになる。また、ロードバランサと共通データベースがシステムの単一障害点(Single Point of Failure、ダウンするとシステム全体が止まる場所)になるため、これらの冗長化が必要になる。システムを導入する際には、前者は性能上、後者はコスト上の問題になる。 When load distribution of the sensor information processing server is performed by a general method, reading and writing to the common database occurs each time the sensor information processing server receives the sensor information. Therefore, the common database becomes a bottleneck of the entire system. In addition, since the load balancer and the common database become a single point of failure (where the entire system stops when it goes down), it is necessary to make these redundant. When introducing a system, the former is a problem in terms of performance and the latter is a problem in terms of cost.
近年、複数のサーバ間で自律的にデータを分散・冗長化する技術として、分散ハッシュテーブル(Distributed Hash Table、DHT)が注目を集めている。
DHTは非集中型分散システムの一種である。DHTの特徴は、(1)そのシステムに参加するノード全体でキー空間を分割すること、および(2)キー空間の分割を工夫することで、特定のキーを管理するノードに向けて効率的にメッセージをルーティングすることである。キーとは一般にハッシュ値のことで、例えばハッシュ関数としてSHA-1(160ビット)を使う場合、キー空間は0〜2^160-1となる。DHTはこのような特徴を持つ分散システムの総称であり、DHTを実現する代表的なアルゴリズムにはChordなどがある。
In recent years, a distributed hash table (DHT) has attracted attention as a technique for autonomously distributing and making data redundant among a plurality of servers.
DHT is a kind of decentralized distributed system. The features of DHT are that (1) the key space is divided by all the nodes participating in the system, and (2) the key space is devised to improve the efficiency for the node that manages a specific key. To route messages. A key is generally a hash value. For example, when SHA-1 (160 bits) is used as a hash function, the key space is 0 to 2 ^ 160-1. DHT is a general term for distributed systems with these characteristics, and there are Chord and other typical algorithms for realizing DHT.
DHTの主な用途は、ファイル名のハッシュ値をキーとして、各キーを管理するノードにデータを格納する大規模分散ストレージである。しかし、DHTの用途はストレージに限定されない。例えば、DHTをSIPの世界に応用したP2P SIPという研究がある。P2P SIPでは、SIPサーバ(レジストラとSIPプロクシが一体になったサーバ)群がDHTネットワークを構成する。そして、SIPサーバの1つがSIP UAからREGISTER(端末情報の登録要求)を受信すると、そのユーザのSIP URI(Uniform Resource Identifier、SIPにおけるユーザの識別子)のハッシュ値をDHTのキーとして用い、そのキーを管理するサーバへREGISTERを転送またはリダイレクトする。これにより、P2P SIPは単一障害点に成りうる特定のサーバに頼ることなくIP電話サービスを実現できる。 The main use of DHT is large-scale distributed storage that stores data in a node that manages each key using a hash value of a file name as a key. However, the use of DHT is not limited to storage. For example, there is research called P2P SIP that applies DHT to the SIP world. In P2P SIP, a group of SIP servers (servers in which registrars and SIP proxies are integrated) form a DHT network. When one of the SIP servers receives a REGISTER (terminal information registration request) from the SIP UA, the hash value of the user's SIP URI (Uniform Resource Identifier, the user identifier in SIP) is used as the DHT key. Redirect or redirect REGISTER to the server that manages As a result, P2P SIP can realize IP telephone service without relying on a specific server that can be a single point of failure.
一方、センサ情報処理サーバが扱うセンサ情報も、その大半はユーザ(またはユーザが所有する端末)と関連付けられている。従って、DHTを利用してユーザの識別子とセンサ情報処理サーバの対応付けを行うことで、センサ情報処理もP2P SIPと同様の仕組みで分散化できると考えられる。
上記のように、DHTを利用してユーザの識別子とセンサ情報処理サーバの対応付けを行うことで、センサ情報処理サーバの負荷分散と冗長化を実現できる。
On the other hand, most of sensor information handled by the sensor information processing server is associated with a user (or a terminal owned by the user). Therefore, by associating the user identifier with the sensor information processing server using DHT, it is considered that sensor information processing can also be distributed by the same mechanism as P2P SIP.
As described above, load matching and redundancy of the sensor information processing server can be realized by associating the user identifier with the sensor information processing server using the DHT.
しかし、センサ情報処理サーバは、全ユーザに共通するデータも扱う必要がある。例えば、シナリオの動作を調整するためのパラメータは全ユーザに共通である。このような共通データは、DHTに基づくストレージや、全サーバへのミラーリング(データの更新を全サーバへ配布する方法)によって管理することもできる。しかし、センサ情報処理サーバの数が増えれば増えるほど、データの同期が難しくなる。従って、システムの規模によっては共通データベースが必要になる場合がある。 However, the sensor information processing server needs to handle data common to all users. For example, parameters for adjusting the operation of the scenario are common to all users. Such common data can also be managed by DHT-based storage or mirroring to all servers (a method of distributing data updates to all servers). However, data synchronization becomes more difficult as the number of sensor information processing servers increases. Therefore, a common database may be required depending on the scale of the system.
また、センサ情報の管理や、その履歴の再利用を容易にするために、利用者がデータの分散配置を望まない可能性がある。そのためには、図2の方法によって負荷分散を実現するという選択肢は残しておく必要がある。
従って、センサ情報処理サーバは、システムの規模やシステム管理者の要求に応じて、共通データベース、DHT及びミラーリングなど複数のデータ管理方法を切り替えられることが望ましい。
Further, in order to facilitate the management of sensor information and the reuse of the history, there is a possibility that the user does not desire the distributed arrangement of data. For that purpose, it is necessary to leave the option of realizing load balancing by the method of FIG.
Therefore, it is desirable that the sensor information processing server can switch between a plurality of data management methods such as a common database, DHT, and mirroring according to the scale of the system and the request of the system administrator.
しかし、データ操作を行う全ての部分に複数のデータ管理方法を実装すると、開発量が多くなり、結果としてバグも多くなりやすいという課題がある。 However, if a plurality of data management methods are implemented in all parts that perform data manipulation, there is a problem that the amount of development increases and as a result, bugs tend to increase.
本発明の目的はセンサ情報処理サーバのプログラム自体を修正することなく、複数のデータ管理方法を切り替えるための手段を提供することである。 An object of the present invention is to provide a means for switching a plurality of data management methods without correcting the program itself of the sensor information processing server.
本発明では、共通データベースの操作と、DHTなどを利用した分散型データベースの操作の違いを隠蔽したミドルウェア(以下、データベース/DHTミドルウェア)を導入し、データ属性とデータベースポリシに基づいて、データを格納するデータベースが分散データベースか共通データベースかを判断し、データを格納する。 In the present invention, middleware (hereinafter referred to as database / DHT middleware) that conceals the difference between common database operations and distributed database operations using DHT is introduced, and data is stored based on data attributes and database policies. Determine whether the database to be distributed is a distributed database or a common database, and store the data.
データベース/DHTミドルウェアを採用したプログラムは、そのシステムの規模やシステム管理者の要求に応じて、プログラム自体に手を加えることなく、複数のデータ管理方法を切り替えることができるようになる。
特に、センサ情報処理サーバにこのミドルウェアを採用した場合、センサ情報処理のボトルネックであった共通データベースへのアクセスが減少するまたは共通データベースが不要になり、処理速度が向上する。また、センサ情報処理がサーバ間で自律分散されるため、単一障害点となる分散装置が不要である構成も可能となり、必要な設備投資が減少する。
Programs that employ database / DHT middleware can switch between multiple data management methods without changing the program itself, depending on the scale of the system and the requirements of the system administrator.
In particular, when this middleware is employed in the sensor information processing server, access to the common database, which has been a bottleneck for sensor information processing, is reduced or the common database becomes unnecessary, and the processing speed is improved. In addition, since sensor information processing is autonomously distributed among servers, a configuration that does not require a distributed device that becomes a single point of failure is possible, and necessary capital investment is reduced.
以下、実施例を図面を用いて説明する。
図3に、本実施例で想定する通信ネットワークの物理的な構成を模式的に示す。通信網1−1、センサ情報配布元2、センサ情報処理サーバ3、SIPサーバ4は、互いに物理的な通信回線9を介して接続されている。また、通信網1−2、SIPサーバ4、SIP UA5は互いに物理的な通信回線9を介して接続されている。図3では、見やすさのために通信網1−1と1−2を分けているが、この両者は同じ通信網であってもよい。
Hereinafter, examples will be described with reference to the drawings.
FIG. 3 schematically shows the physical configuration of the communication network assumed in this embodiment. The communication network 1-1,
センサ情報配布元2は、温度センサや圧力センサなどの各種センサ群から得られるデータを収集し、再配布するサーバ機器である。センサ情報配布元2は、センサから得られたデータと、そのデータを生成したセンサの識別子(以下、センサID)の組をセンサ情報処理サーバ3へ送信する。以下では、センサIDとデータの組をまとめてセンサ情報と呼ぶ。
The
本実施例でセンサ情報配布元2が扱うセンサ群は、Zigbee等の短距離無線通信をサポートし、近くにある基地局のID(以下、基地局ID)をセンサ情報配布元2に提供するセンサ群であるとする。この基地局IDは、各センサおよびその所有者の位置を推測する手がかりとして利用できるデータである。また、各センサはその他のセンサ(温度センサや照度センサなど)も同時に備え、それらのセンサから得たデータを基地局IDと共に提供することも可能である。温度センサは所有者の居る場所の温度を、照度センサは所有者の居る場所の明るさを推測する手がかりとして利用できるデータである。
The sensor group handled by the
センサ情報配布元2がセンサ群からデータを受け取ると、センサ情報配布元2はそのセンサ情報をセンサ情報処理サーバ3へ送信する。センサ情報の例を図22に示す。この例ではセンサ情報をXML形式で表現している。node要素はデータを生成したセンサに関する情報を格納する要素である。node要素の中のid要素は、センサIDを格納している。そして、parameters要素はそのセンサが生成した1つ以上のデータを格納する要素である。parameters要素の中のparameter要素は、各データを表す。図22の例は、base station IDという名前のデータ(すなわち基地局ID)が0001であることを示している。
When the
センサ情報処理サーバ3はサーバ機器であり、センサ情報がどのように変化したらどのようなアプリケーション制御を行うか、という処理内容を記述したシナリオを備えている。センサ情報処理サーバ3は、センサ情報を受信すると、このシナリオに基づいて過去のセンサ情報と現在のセンサ情報を処理し、その結果に応じてアプリケーションを制御する。このとき、過去と現在のセンサ情報を比較することで、センサ情報に変化が無い場合は処理を省略して負荷を軽減できる。
The sensor
本実施例では、センサ情報処理サーバ3はSIPサーバ4に対して、ユーザのプレゼンス情報の更新や、ユーザ間の呼制御を要求する制御メッセージを送信する。これにより、複数の通信端末、通信手段の使い分けを支援することが可能になる。例えば、あるユーザに連絡を取るために最も隣接した通信端末を、そのユーザの友人に公開することができる。
In the present embodiment, the sensor
センサ情報処理サーバ3が制御する対象は、本実施例のSIPサーバに限られるものではなく、Webサーバや会議サーバなどを制御することも可能である。例えば、Webサーバを制御することでユーザの位置や状況に応じたコンテンツの提供、会議サーバを制御することでユーザの状況に応じた会議の開始が可能になる。
The target controlled by the sensor
SIPサーバ4はサーバ機器であり、m台のSIP UA5(mは1以上の整数)を管理し、SIP UA5との間でSIPメッセージを送受信する機能を持つ。SIPサーバ4は、SIPメッセージを通して、音声通話などの通信セッション制御や、プレゼンス情報の更新や通知などを行う。また、SIPサーバ4は、センサ情報処理サーバ3などからの制御メッセージを受信する機能を備える。SIP UA5は、音声通話やプレゼンス情報の表示などの機能を備えた端末である。これらは、PCや電話のような固定端末、または携帯電話やPDA(Personal Digital Assistant)のような移動端末である。
The
図5は、センサ情報処理サーバ3の内部構造を示す機能ブロック図である。この内部構造は、センサ情報処理サーバ3−1から3−nの全てに共通である。センサ情報処理サーバ3はIF31を通してパケットを送受信する。センサ情報処理サーバ3の各プログラムはメモリ33に格納されており、動作時にはCPU32がデータパス34を通してそれらを読み出して実行する。図中の点線は、データベース操作などを除いた、センサ情報処理の主な流れを示している。
FIG. 5 is a functional block diagram showing the internal structure of the sensor
メモリ33はセンサ情報処理プログラム331、データ管理プログラム332、データベース/DHTミドルウェア333、データベースミドルウェア334、DHTミドルウェア335、ミラーリングプログラム336、データベースプログラム337を格納する。
The memory 33 stores a sensor information processing program 331, a
センサ情報処理プログラム331は、センサ情報を受信し、センサ情報の変化に応じてアプリケーション制御を行うプログラムである。このプログラムの主な処理部は、センサID解決部3311、シナリオ部3312、アプリケーション制御部3313の3つに分けられる。
The sensor information processing program 331 is a program that receives sensor information and performs application control according to changes in the sensor information. The main processing part of this program is divided into three parts: a sensor ID resolution part 3311, a
センサID解決部3311は、センサ情報配布元2からセンサ情報を受信する。そして、センサ情報に含まれるセンサIDを、制御対象のアプリケーションがユーザを識別するために使う識別子(以下、ユーザID)に変換する。本実施例では制御対象のアプリケーションがSIPであるため、ユーザIDとはSIP URIのことである。センサID解決部3311は、データベースプログラムまたはDHTミドルウェアに格納されているセンサIDデータを元に、この変換を行う。
The sensor ID resolution unit 3311 receives sensor information from the
センサIDデータは、センサIDとユーザIDの対応関係を表すデータである。センサIDデータの例を図14に示す。この例ではセンサIDデータをテーブルとして保存しており、列1001はユーザIDを、列1002はセンサIDを表す。
シナリオ部3312は、センサ情報がどのように変化したらどのようなアプリケーション制御を行うか、という処理内容が記述されたプログラムである。受信したセンサ情報と過去のセンサ情報を比較し、その変化に応じて、アプリケーション制御部3313にアプリケーション制御を要求する。
The sensor ID data is data representing the correspondence between the sensor ID and the user ID. An example of sensor ID data is shown in FIG. In this example, sensor ID data is stored as a table, a column 1001 represents a user ID, and a
The
本実施例では、シナリオ部3312は、センサ情報に含まれる基地局IDに応じて、そのユーザの位置を表すプレゼンス情報を更新するものとする。まず、シナリオ部3312は、センサ情報の履歴を、データベースプログラムまたはDHTミドルウェアから読み込み、そのユーザの基地局IDが変化したか確かめる。そして、基地局IDが変化していた場合は、新しい基地局IDを、データベースプログラムまたはDHTミドルウェアに格納する。そして、シナリオ設定(この例では新しい基地局IDが表す位置)を、データベースプログラムまたはDHTミドルウェアから読み込み、アプリケーション制御部3313にプレゼンス情報の更新を要求する。これにより、プレゼンス情報の自動更新を実現する。
センサ情報履歴とは、過去のセンサ情報を表すデータである。センサ情報履歴の例を図15に示す。この例ではセンサ情報履歴をテーブルとして保存しており、列2001はユーザID、列2002はセンサID、列2003は基地局ID、列2004はデータの更新時刻を表す。
In the present embodiment, it is assumed that the
The sensor information history is data representing past sensor information. An example of the sensor information history is shown in FIG. In this example, sensor information history is stored as a table,
シナリオ設定とは、シナリオの動作を調整するためのパラメータ(この例では、基地局IDと位置の関係)を表すデータである。シナリオ設定の例を図16に示す。この例ではシナリオ設定をテーブルとして保存しており、列3001は基地局ID、列3002はその位置を表現する文字列を表す。シナリオ設定をテーブルとして保存することで、管理者は、シナリオ部3312のプログラムを修正することなく、シナリオの動作を調整できる。
The scenario setting is data representing parameters for adjusting the scenario operation (in this example, the relationship between the base station ID and the position). An example of scenario setting is shown in FIG. In this example, scenario settings are stored as a table, a
アプリケーション制御部3313は、シナリオ部の要求に応じて、各種アプリケーションサーバに対して制御メッセージを送信する。本実施例では、アプリケーションサーバの一種であるSIPサーバ4に対して、ユーザのプレゼンス情報の更新や、ユーザ間の呼制御を要求する制御メッセージを送信する。
The
データ管理プログラム332は、管理者の操作に応じて、センサ情報処理に関するデータを操作する管理用プログラムである。データ管理プログラム332は、データベース/DHTミドルウェア333を通して、データベースプログラムまたはDHTミドルウェアに格納されているデータを操作する。データの管理に共通データベースを利用しない場合、通常ならば、管理者は各センサ情報処理サーバ3上のデータを1台1台操作する必要がある。しかし、このデータ管理プログラム332を利用することで、管理者は1つのセンサ情報処理サーバ3から全センサ情報処理サーバ3上のデータを操作することが可能になる。
The
データベース/DHTミドルウェア333は、複数のデータ管理方法(すなわちデータベースミドルウェア334、DHTミドルウェア335、ミラーリングプログラム336)の違いを隠蔽するプログラムである。センサ情報処理プログラム331を修正せずにデータ管理方法を切り替えられるようにするためには、センサ情報処理プログラム331に対してデータ管理方法の違いを隠蔽する必要がある。そのため、データベース/DHTミドルウェア333は、全てのデータ管理方法に共通のAPI(Application Program Interface)を備えている。センサ情報処理プログラム331とデータ管理プログラム332は、このAPIを利用することで、データベースプログラムまたはDHTミドルウェアに格納されているデータを操作する。
The database /
データベース/DHTミドルウェア333は、このミドルウェアを通して操作されるデータのデータ属性を管理している。データ属性とは、このミドルウェアを利用するプログラマが、データの一部または全体に付与する属性のことである。属性とは、そのデータの意味を表す文字列である。1つのデータに複数のデータ属性を付与してもよい。データ属性の例を図17に示す。この例ではデータ属性をテーブルとして保存しており、列4001はデータの名前、列4002は属性が付与されている対象、列4003は属性が付与されている対象の名前、列4004は付与されている属性を表す。例えば、行4011は、センサ情報履歴2000のユーザID2001に、「ユーザID」という名前の属性が付与されていることを示している。また、属性がデータ全体に付与されている場合は、データ名4001と対象の名前4003は同じになる。そのため、行4013のような例では対象の名前4003を省略している。
The database /
データ全体に付与されるデータ属性は、そのデータが特別な扱いをされる可能性があることを示す。つまり、特別な扱いをされる可能性があるデータに対して、プログラマが予め付与する。例えば、ユーザの個人情報に関するデータは厳重に管理される必要があるため、特別に共通データベースで管理される可能性がある。そのため、ユーザの個人情報に関するデータには予め「個人情報」というデータ属性を付与しておく。また、サーバが頻繁に読み込む設定はできるだけサーバの近くに配置すべきであるため、特別にミラーリングで管理される可能性がある。そのため、サーバが頻繁に読み込む設定には予め「サーバ設定」というデータ属性を付与しておく。このようにデータ属性を付与したデータの扱いは、管理者が後述するデータベースポリシを変更することで、後から変更できるようになる。 A data attribute assigned to the entire data indicates that the data may be treated specially. That is, the programmer gives in advance to data that may be handled specially. For example, since data related to the user's personal information needs to be strictly managed, there is a possibility that the data is specially managed in a common database. For this reason, a data attribute “personal information” is assigned in advance to data related to the personal information of the user. In addition, since settings that are frequently read by the server should be placed as close to the server as possible, there is a possibility that they will be specially managed by mirroring. For this reason, a data attribute called “server setting” is assigned in advance to settings that are frequently read by the server. In this way, the handling of the data with the data attribute can be changed later by the administrator changing the database policy described later.
一方、データの一部に付与されるデータ属性は、主にそのデータがDHTのような分散データベースで保存される可能性があることを示す。データの保存方法として、後述する「DHT」のような分散データベースを使用する場合、分散データベースを構成するサーバ群からデータ格納先を選ぶためのキーが必要になる。そのため、あるデータを分散データベースに保存する可能性がある場合は、そのデータの一部(キーとして使われる部分)に何らかのデータ属性を付与しておく必要がある。データベース/DHTミドルウェア333は、このような情報無しでは、データのどの部分をキーとして使うべきか判断できないためである。本実施例では、全てのセンサ情報処理サーバ3のデータベース/DHTミドルウェア333が、図17に示すデータ属性を持っているものとする。
On the other hand, the data attribute assigned to a part of data mainly indicates that the data may be stored in a distributed database such as DHT. When using a distributed database such as “DHT”, which will be described later, as a data storage method, a key for selecting a data storage destination from a group of servers constituting the distributed database is required. Therefore, when there is a possibility that certain data is stored in the distributed database, it is necessary to give some data attribute to a part of the data (a part used as a key). This is because the database /
また、データベース/DHTミドルウェア333は、このミドルウェアが使われているシステム全体で共通のデータベースポリシを管理している。データベースポリシとは、データ属性と、そのデータ属性を持つデータの保存方法を記述したルールのことである。データベースポリシの例を図18に示す。この例ではデータベースポリシをテーブルとして保存しており、列5001はそのデータベースポリシの優先度、列5002はデータ属性の対象、列5003はデータ属性、列5004はデータの保存方法を表す。優先度5001は数値が低いほど優先度が高いものとして扱う。また、優先度が「−」になっているデータベースポリシはデフォルトのデータベースポリシ(以下、デフォルトポリシ)であり、それ以外のどのデータベースポリシにも該当しなかったデータに対して適用される。データベースポリシ5000は、プログラムの外の設定ファイルなどから読み込まれる。データベース/DHTミドルウェア333がデータベースポリシをプログラムの外の設定ファイルから読み込むことで、管理者はデータベース/DHTミドルウェア333のプログラムを修正することなく、データの保存方法を変更できる。
The database /
保存方法5004は、「データベース」「DHT」「ミラーリング」のいずれかである。「データベース」の場合は、データベースミドルウェア334を通してデータの読み書きを行う。「DHT」の場合は、DHTミドルウェア335を通してデータの読み書きを行う。「ミラーリング」の場合は、データベースミドルウェア334を通してデータの読み込みを行い、ミラーリングプログラム336を通してデータの書き込みを行う。例えば、行5011は、「データの一部に「ユーザID」という名前の属性が付与されているデータは、そのデータをキーとしてDHTに保存する」、ということを示している(これ以降の文章では、「Aをキーとして」という記述を「Aのハッシュ値をキーとして」という意味で使用する)。センサ情報処理サーバ3が扱うデータの中では、センサ情報履歴2000がこのデータベースポリシに一致する。従って、センサ情報履歴2000は、ユーザID2001をキーとしてDHTに保存される。
The
本実施例では、全てのセンサ情報処理サーバ3のデータベース/DHTミドルウェア333が、図18に示すデータベースポリシを持っているものとする。
行5011は、データ属性が「ユーザID」のデータを含むデータ(すなわちセンサ情報)は、DHTを使って保存するというポリシを示している。データ属性が「ユーザID」のデータを含むデータ(すなわちセンサ情報)は読み書きされる頻度が高い。そのため、センサ情報を各センサ情報処理サーバ3に分散配置することで、データの読み書きが特定のサーバに集中することがなくなり、処理が高速化するという効果がある。
In this embodiment, it is assumed that the database /
A row 5011 indicates a policy that data including data having a data attribute “user ID” (that is, sensor information) is stored using the DHT. Data including data having the data attribute “user ID” (that is, sensor information) is frequently read and written. Therefore, by distributing the sensor information to each sensor
一方、行5012は、他のどのポリシにも該当しなかったデータはミラーリングする、というデフォルトポリシを示している。これにより、DHTで使用できるキーがデータ属性として指定されていないデータについても、センサ情報処理サーバ群に分散配置できる。
On the other hand, a
データベース/DHTミドルウェア333が提供するAPIの実装方法は4通りある。これは、データベース/DHTミドルウェア333に対してデータの操作を指示する方法が2通りあり、そしてデータにデータ属性を付与する方法が2通りあるためである。
There are four ways to implement the API provided by the database /
まず、データの操作を指示する方法は、SQLのようなデータベース操作用言語で書いた命令をミドルウェアに渡す方法と、プログラム言語特有のデータ構造をそのままミドルウェアに渡す方法がある。後者の方法はオブジェクト指向プログラム言語でよく用いられるため、一般にオブジェクト/リレーショナルマッピング(以下、O/Rマッピング)と呼ばれている。前者の方法は、従来のデータベース操作用言語に慣れている開発者にとっては使いやすいというメリットがある。一方、後者の方法は、プログラム言語のデータ構造と、各種データベース特有のデータ構造の違いを開発者が意識しなくて済むというメリットがある。 First, there are two methods for instructing data operations: a method of passing a command written in a database operation language such as SQL to middleware, and a method of passing a data structure specific to a programming language to middleware. Since the latter method is often used in an object-oriented programming language, it is generally called object / relational mapping (hereinafter referred to as O / R mapping). The former method has an advantage that it is easy for a developer who is used to a conventional database operation language. On the other hand, the latter method has an advantage that the developer does not have to be aware of the difference between the data structure of the programming language and the data structure unique to various databases.
そして、データにデータ属性を付与する方法は、データ操作の中にデータ属性を表すデータを埋め込む方法と、プログラムの外の設定ファイルとしてデータ属性を与える方法がある。前者の方法は、余分な設定ファイル等を用意する必要がないというメリットがある。一方、後者の方法は、データ属性を後から変更しやすいというメリットがある。 There are two methods for assigning data attributes to data: a method of embedding data representing data attributes in a data operation and a method of assigning data attributes as a setting file outside the program. The former method has an advantage that it is not necessary to prepare an extra setting file. On the other hand, the latter method has an advantage that the data attribute can be easily changed later.
データ操作の中にデータ属性を表すデータを埋め込むためには、データベース操作用言語またはオブジェクト指向プログラム言語を拡張する必要がある。SQLの場合は、テーブル(データの全体)やカラム(データの一部)の名前に独自の修飾を付ける必要がある。Javaの場合は、アノテーションという機能を使うことで、クラス(データの全体)や変数(データの一部)にデータ属性を付与することができる。または、テーブルやクラス、カラムや変数の名前それ自体をデータ属性として扱うこともできる。本実施例のデータベース/DHTミドルウェア333は、データの操作を指示する方法としてデータベース操作用言語を受け付けるものとする。また、プログラムの外の設定ファイルからデータ属性を読み込むものとする。
In order to embed data representing data attributes in a data operation, it is necessary to extend the database operation language or the object-oriented programming language. In the case of SQL, it is necessary to add original qualification to the names of tables (whole data) and columns (part of data). In the case of Java, data attributes can be assigned to classes (whole data) and variables (part of data) by using a function called annotation. Alternatively, the names of tables, classes, columns and variables themselves can be treated as data attributes. The database /
また、データベース/DHTミドルウェア333は、メッセージ配送機能を持つ。メッセージ配送機能とは、キーとデータ属性を指定してメッセージを送信する機能である。指定されたデータ属性を持つデータの保存方法が「DHT」以外の場合は、そのサーバのメッセージハンドラにメッセージを渡す。保存方法が「DHT」の場合は、DHTミドルウェア335のメッセージ配送機能を用いて指定されたキーに対応するサーバまでメッセージを配送し、そのサーバのメッセージハンドラにメッセージを渡す。本実施例では、シナリオ部3312が、データベース/DHTミドルウェア333に対してメッセージハンドラを登録しているものとする。
The database /
センサ情報処理サーバ3は、このメッセージ配送機能を利用して、ある1人のユーザに関するセンサ情報を1つのセンサ情報処理サーバ3に集約する。これにより、ある1人のユーザに関するセンサ情報を処理する際に、他のサーバと通信する必要がなくなり、処理が高速化する。
The sensor
データベースミドルウェア334は、ローカルのデータベースプログラム337およびリモートのデータベースプログラムを操作するためのプログラムである。ローカルのデータベースプログラム337は、保存方法が「ミラーリング」のデータを保存する際にも使用される。データベースミドルウェア334は、データベースプログラムに接続するために必要な情報(一般にはユーザ名、パスワードなど)を管理する。データベースミドルウェア334は、既存のODBC(Open DataBase Connectivity)ドライバの機能やO/Rマッピングなどの機能を持つ。DHTミドルウェア335は、DHT特有のルーティングテーブルを管理し、このルーティングテーブルに基づいて、メッセージ配送機能とストレージ機能を提供するプログラムである。DHTのルーティングテーブルは、キーと、そのキーに対応するノード(すなわちセンサ情報処理サーバ3)の対応関係を表す。DHTミドルウェア335は、特定のキーに対するメッセージ配送要求を受けると、そのキーに対応するノードをルーティングテーブルから調べ、そのノードに対してメッセージを配送する。ストレージに対するデータ操作要求も、メッセージ配送要求と同様に処理される。また、DHTミドルウェア335は、定期的に他のノードのDHTミドルウェアと制御メッセージを交換する。これにより、ノードが増減しても、ルーティングテーブルはすぐに更新される。
The
本実施例では、全てのセンサ情報処理サーバ3のDHTミドルウェア335が持つルーティングテーブルにおいて、キー「sip:ando@example.com」に対応するノードはセンサ情報処理サーバ3−2であるとする。
メッセージ配送機能とは、キーを指定してメッセージを送信する機能である。指定されたキーに対応するノードに到着するまで、メッセージは転送され続ける。そして、指定されたキーに対応するノードに到着すると、そのメッセージはメッセージハンドラに渡される。本実施例では、データベース/DHTミドルウェア333が、DHTミドルウェア335に対してメッセージハンドラを登録しているものとする。
In this embodiment, it is assumed that the node corresponding to the key “sip: ando@example.com” is the sensor information processing server 3-2 in the routing table of the
The message delivery function is a function for transmitting a message by designating a key. The message continues to be forwarded until it arrives at the node corresponding to the specified key. When the node corresponding to the specified key arrives, the message is passed to the message handler. In this embodiment, it is assumed that the database /
ストレージ機能とは、キーを指定してデータを操作(参照、追加、削除)する機能である。データの操作命令は、メッセージ配送機能によって、指定されたキーに対応するノードまで配送される。そして、指定されたキーに対応するノードに到着すると、そのノードのDHTミドルウェア335のデータ領域にあるデータが操作される。センサ情報処理サーバ3は、このストレージ機能を利用して、共通データベースなしでのデータ管理を実現する。
The storage function is a function for operating (referring, adding, deleting) data by specifying a key. The data operation command is delivered to the node corresponding to the designated key by the message delivery function. When the node corresponding to the designated key is reached, the data in the data area of the
DHTミドルウェア335がデータを保存する方法は、リレーショナルデータベース、オンメモリデータベース、ファイル形式など、特に形式を問わない。本実施例では、DHTミドルウェア335のメモリ空間に、テーブルとしてデータが保存されるものとする。
The
ミラーリングプログラム336は、データの変更を他のサーバへブロードキャストするためのプログラムである。ミラーリングプログラム336は、他のサーバのミラーリングプログラム336からのメッセージを受信するためのソケットを持つ。また、ミラーリングプログラム336は、他のサーバのミラーリングプログラム336へメッセージを送信するためのネットワークアドレスを管理している。このネットワークアドレスは、各サーバのネットワークアドレスのリスト、ブロードキャストアドレス、マルチキャストアドレスなどである。本実施例では、各サーバのネットワークアドレスのリストを管理しているものとする。ミラーリングはDHTと同様に、共通データベースなしでのデータ管理を実現する機能である。しかし、更新頻度の低いデータは、DHTで管理するよりもミラーリングで管理した方がよい。なぜなら、そのデータを読み込む際に他のサーバと通信する必要が無くなるからである。 The mirroring program 336 is a program for broadcasting data changes to other servers. The mirroring program 336 has a socket for receiving a message from the mirroring program 336 of another server. The mirroring program 336 manages a network address for transmitting a message to the mirroring program 336 of another server. This network address is a list of network addresses of each server, a broadcast address, a multicast address, or the like. In this embodiment, it is assumed that a list of network addresses of each server is managed. Like DHT, mirroring is a function that enables data management without a common database. However, data with low update frequency should be managed by mirroring rather than by DHT. This is because it is not necessary to communicate with other servers when reading the data.
データベースプログラム337は、既存のデータベースサーバプログラムである。
本実施例では、全てのセンサ情報処理サーバ3のデータベースプログラム337が、図14のセンサIDデータテーブル1000および図16のシナリオ設定テーブル3000の値を保持しているものとする。また、センサ情報処理サーバ3−2のDHTミドルウェア335が、図15のセンサ情報履歴2000の値を保持しているものとする(他のセンサ情報処理サーバが保持している値は省略する)。
The
In this embodiment, it is assumed that the
図6および図7は、センサ情報配布元2が送信したセンサ情報を、適切なセンサ情報処理サーバ3が処理するまでの動作の一例を示したシーケンス図である。この例でセンサ情報配布元2が送信するセンサ情報は、センサIDが「00006c0000090003」、基地局IDが「0003」であるものとする。
FIG. 6 and FIG. 7 are sequence diagrams illustrating an example of operation until the appropriate sensor
まず、センサ情報配布元2は、センサ情報処理サーバ3−1のセンサID解決部3311に対してセンサ情報を送信する(S101)。
First, the sensor
センサID解決部3311は、データベース/DHTミドルウェア333に対して、センサIDが「00006c0000090003」のセンサIDデータ1000を要求する(S102)。
データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシを決定する。
The sensor ID resolution unit 3311 requests the
When the database /
まず、データベース/DHTミドルウェア333は、データへのアクセス要求から、対象データのデータ名を取得する(S501)。次に、データ名4001が、S501で取得したデータ名に一致するデータ属性を、データ属性テーブル4000から取得する(S502)。この場合、データ名は「センサIDデータ」なので、データベース/DHTミドルウェア333は行4013のデータ属性を取得する。
First, the database /
データ属性が1つ以上あった場合、データベース/DHTミドルウェア333は、データベースポリシテーブル5000から、最も優先度の高いデータベースポリシを取り出す(S503、S504)。この例では、データベース/DHTミドルウェア333は行5011のデータベースポリシを取得する。
If there are one or more data attributes, the database /
データベースポリシを取得できた場合、データベース/DHTミドルウェア333は、S502で取り出した全てのデータ属性を、そのデータベースポリシと比較する(S505、S506)。データ属性の対象4002とデータベースポリシの対象5002が等しく、かつデータ属性の属性4004とデータベースポリシの属性5003が等しいとき、そのデータ属性とデータベースポリシは一致しているとする。
If the database policy can be acquired, the database /
この例では、行4013のデータ属性と、行5011のデータベースポリシは一致していない(S507)。また、次に優先度の高いデータベースポリシが存在しない(S509、S505)。従って、デフォルトポリシ5012が適用される(S510)。つまり、データベース/DHTミドルウェア333は、センサIDデータの保存方法は「ミラーリング」である、と判断する(S103)。このように、データベース/DHTミドルウェア333は優先度に従ってデータベースポリシを決定するため、管理者は複数のデータ属性が付与されたデータの保存方法を適切に設定できる。
In this example, the data attribute of the
保存方法が「ミラーリング」のデータは、各センサ情報処理サーバ3のデータベースプログラム337に保存されている。そのため、データベース/DHTミドルウェア333は、データベースミドルウェア334に対して、センサIDが「00006c0000090003」のセンサIDデータ1000を要求する(S104)。データベースミドルウェア334は、この要求をデータベースプログラム337に送信する(S105)。
Data whose storage method is “mirroring” is stored in the
この要求を受信したデータベースプログラム337は、センサIDデータテーブル1000の行1011を結果として返す(S106〜S107)。データベース/DHTミドルウェア333は、この結果をセンサID解決部3311に返す(S108)。これにより、センサID解決部3311は、センサID「00006c0000090003」に対応するユーザIDが「sip:ando@example.com」であると知ることができる。センサID解決部3311は、このユーザIDをセンサ情報の中に挿入する(S109)。ユーザIDを挿入したセンサ情報の例を、図25に示す。図25では、図22のセンサ情報にuser要素が挿入されている。user要素はこのセンサ情報が表すセンサに対応するユーザの情報を格納する要素である。user要素の中のid要素は、ユーザIDを格納している。
The
次に、センサID解決部3311は、データベース/DHTミドルウェア333に対して、センサ情報を含むメッセージの送信を要求する(S110)。このとき、メッセージの送信に使うキーとしてS108で取得したユーザID(すなわち「sip:ando@example.com」)を指定し、データ属性として「ユーザID」を指定する。
Next, the sensor ID resolution unit 3311 requests the database /
データベース/DHTミドルウェア333は、メッセージの送信を要求されると、図24のフローチャートに従ってそのメッセージの送信先を決定する。まず、データベース/DHTミドルウェア333は、データベースポリシテーブル5000から、最も優先度の高いデータベースポリシを取り出す(S610)。この例では、データベース/DHTミドルウェア333は行5011のデータベースポリシを取得する。データベースポリシを取得できた場合、データベース/DHTミドルウェア333は、そのデータベースポリシの保存方法が「DHT」かどうかを調べる(S603)。この例では、行5011の保存方法は「DHT」であるため、次に、データベース/DHTミドルウェア333はそのデータベースポリシのデータ属性が、与えられたデータ属性(ここでは「ユーザID」と一致するかどうかを調べる(S604)。行5011のデータ属性は「ユーザID」であるため、データベース/DHTミドルウェア333はメッセージの送信先は「DHTミドルウェア」である、と判断する(S605)。
When the database /
このように、データベース/DHTミドルウェア333は、メッセージの送信先を判断する際にもデータ属性とデータベースポリシを利用する。これにより、データベースポリシを変更してデータの保存方法が「DHT」から「データベース」に変わったとしても、センサ情報処理サーバ3間でメッセージを送受信するプログラムを修正する必要はない。
As described above, the database /
データベース/DHTミドルウェア333は、DHTミドルウェア333に対して、センサ情報を含むメッセージの送信を要求する(S112)。このとき、センサ情報の送信に使うキーとして、センサID解決部3311が指定したキーを指定する。
The database /
DHTミドルウェア333は、ルーティングテーブルを参照して、センサ情報を含むメッセージの送信先を決定する(S113)。本実施例では、キー「sip:ando@example.com」に対応するノードはセンサ情報処理サーバ3−2である。従って、DHTミドルウェア333は、センサ情報処理サーバ3−2へ、センサ情報を含むメッセージを送信する(S114)。
The
センサ情報処理サーバ3−2のDHTミドルウェア333は、このメッセージを受信すると、ルーティングテーブルを参照して、このメッセージの送信先を決定する(S115)。キーに対応するノードが他のサーバの場合は、そのサーバへ再度メッセージを転送する。しかし、本実施例では、キー「sip:ando@example.com」を担当するサーバはセンサ情報処理サーバ3−2である。そのため、DHTミドルウェア335は、データベース/DHTミドルウェア333にメッセージの受信を通知する(S116)。データベース/DHTミドルウェア333は、このメッセージをメッセージハンドラに渡す。前述の通り、シナリオ部3312は事前にメッセージハンドラを登録しているので、シナリオ部3312はメッセージハンドラを通して、このセンサ情報を含むメッセージを受信する(S117)。
When receiving this message, the
センサ情報を受信すると、シナリオ部3312は、そのセンサ情報に含まれるユーザのセンサ情報履歴をデータベース/DHTミドルウェア333に要求する(S118)。つまり、ユーザIDが「sip:ando@example.com」のセンサ情報履歴を要求する。
When the sensor information is received, the
データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシ(すなわちデータの保存方法)を決定する。
When access to the data is requested, the database /
まず、データベース/DHTミドルウェア333は、データへのアクセス要求から、対象データのデータ名を取得する(S501)。次に、データ名4001が、S501で取得したデータ名に一致するデータ属性を、データ属性テーブル4000から取得する(S502)。この場合、データ名は「センサ情報履歴」なので、データベース/DHTミドルウェア333は行4011のデータ属性を取得する。
First, the database /
データ属性が1つ以上あった場合、データベース/DHTミドルウェア333は、データベースポリシテーブル5000から、最も優先度の高いデータベースポリシを取り出す(S503、S504)。この例では、データベース/DHTミドルウェア333は行5011のデータベースポリシを取得する。
If there is one or more data attributes, the database /
データベースポリシを取得できた場合、データベース/DHTミドルウェア333は、S502で取り出した全てのデータ属性を、S504で取り出した1つのデータベースポリシと比較する(S505、S506)。
When the database policy can be acquired, the database /
この例では、行4011のデータ属性と、行5011のデータベースポリシは一致している。従って、その行5011のデータベースポリシが適用される(S507、S508)。つまり、データベース/DHTミドルウェア333は、センサ情報履歴の保存方法は「DHT」である、と判断する(S119)。また、データベースポリシ5011は、DHTのキーとして、データ属性「ユーザID」が付与されたデータを使うよう指示している。
In this example, the data attribute in the
保存方法が「DHT」のデータは、各センサ情報処理サーバ3のDHTミドルウェア335に保存されている。そのため、データベース/DHTミドルウェア333は、DHTミドルウェア335に対して、ユーザIDが「sip:ando@example.com」のセンサ情報履歴2000を要求する(S120)。また、このときDHTのキーとしてユーザID「sip:ando@example.com」を指定する。
Data whose storage method is “DHT” is stored in the
この要求を受信したDHTミドルウェア335は、ルーティングテーブルを参照して、どのノード上のデータを検索するか決定する(S121)。本実施例では、キー「sip:ando@example.com」に対応するノードはセンサ情報処理サーバ3−2である。従って、DHTミドルウェア335は、そのミドルウェア自身が保存しているセンサ情報履歴2000の行2011を結果として返す(S122)。データベース/DHTミドルウェア333は、この結果をシナリオ部3312に返す(S123)。これにより、シナリオ部3312は、このユーザの基地局IDが「0001」から「0003」に変化したことを知ることができる。
The
センサ情報が変化すると、シナリオ部3312は、その新しいセンサ情報をデータベースプログラムまたはDHTミドルウェアに保存する。そのために、シナリオ部3312は、データベース/DHTミドルウェアにセンサ情報履歴の更新を要求する(S124)。
データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシ(すなわちデータの保存方法)を決定する。S119と同様に、データベース/DHTミドルウェア333は、センサ情報履歴の保存方法は「DHT」である、と判断する(S125)。また、データベースポリシ5011は、DHTのキーとして、データ属性「ユーザID」が付与されたデータを使うよう指示している。
When the sensor information changes, the
When access to the data is requested, the database /
保存方法が「DHT」のデータは、各センサ情報処理サーバ3のDHTミドルウェア335に保存されている。そのため、データベース/DHTミドルウェア333は、DHTミドルウェア335に対して、ユーザIDが「sip:ando@example.com」のセンサ情報履歴2000の更新を要求する(S126)。また、このときDHTのキーとしてユーザID「sip:ando@example.com」を指定する。
Data whose storage method is “DHT” is stored in the
この要求を受信したDHTミドルウェア335は、ルーティングテーブルを参照して、どのノード上のデータを更新するか決定する(S127)。本実施例では、キー「sip:ando@example.com」に対応するノードはセンサ情報処理サーバ3−2である。従って、DHTミドルウェア335は、そのミドルウェア自身が保存しているセンサ情報履歴2000の行2011を新しい値(基地局ID2003は「0003」、更新時刻2004はその時の日時)で更新する。そして、更新の成功をデータベース/DHTミドルウェア333に通知する(S128)。データベース/DHTミドルウェア333は、この結果をシナリオ部3312に返す(S129)。これにより、シナリオ部3312は、センサ情報履歴の更新に成功したことを知ることができる。もしもセンサ情報履歴の更新に失敗した場合は、同様の方法でシナリオ部3312にエラーを通知する。
The
センサ情報が変化すると、シナリオ部3312は設定情報を読み込んでアプリケーションを制御する。本実施例では、センサ情報に含まれる基地局IDに応じて、そのユーザの位置を表すプレゼンス情報を更新する。各基地局IDに対応する位置は、データベースプログラムまたはDHTミドルウェアから取得する。
When the sensor information changes, the
シナリオ部3312は、基地局IDが「0003」のシナリオ設定3000をデータベース/DHTミドルウェアに要求する(S130)。
The
データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシ(すなわちデータの保存方法)を決定する。
When access to the data is requested, the database /
まず、データベース/DHTミドルウェア333は、データへのアクセス要求から、対象データのデータ名を取得する(S501)。次に、データ名4001が、S501で取得したデータ名に一致するデータ属性を、データ属性テーブル4000から取得する(S502)。この場合、データ名は「シナリオ設定」なので、データベース/DHTミドルウェア333は行4012のデータ属性を取得する。
First, the database /
データ属性が1つ以上あった場合、データベース/DHTミドルウェア333は、データベースポリシテーブル5000から、最も優先度の高いデータベースポリシを取り出す(S503、S504)。この例では、データベース/DHTミドルウェア333は行5011のデータベースポリシを取得する。
If there are one or more data attributes, the database /
データベースポリシを取得できた場合、データベース/DHTミドルウェア333は、S502で取り出した全てのデータ属性を、そのデータベースポリシと比較する(S505、S506)。
If the database policy can be acquired, the database /
この例では、行4012のデータ属性と、行5011のデータベースポリシは一致していない(S507)。また、次に優先度の高いデータベースポリシが存在しない。従って、デフォルトポリシ5012が適用される(S509、S505、S510)。つまり、データベース/DHTミドルウェア333は、シナリオ設定の保存方法は「ミラーリング」である、と判断する(S131)。これにより、サーバが頻繁に読み込む設定はサーバ上に配置され、高速に参照される。
In this example, the data attribute of the
保存方法が「ミラーリング」のデータは、各センサ情報処理サーバ3のデータベースプログラム337に保存されている。そのため、データベース/DHTミドルウェア333は、データベースミドルウェア334に対して、基地局IDが「0003」のシナリオ設定3000を要求する(S132)。データベースミドルウェア334は、この要求をデータベースプログラム337に送信する(S133)。
Data whose storage method is “mirroring” is stored in the
この要求を受信したデータベースプログラム337は、シナリオ設定テーブル3000の行3013を結果として返す(S134)。データベースミドルウェア334は、この結果をデータベース/DHTミドルウェア333に返す(S135)。データベース/DHTミドルウェア333は、この結果をシナリオ部3312に返す(S136)。これにより、シナリオ部3312は、基地局ID「0003」に対応する位置が「会議室2」であると知ることができる。
The
シナリオ部3312は、ユーザID「sip:ando@example.com」のユーザの位置を「会議室2」に更新することを、アプリケーション制御部3313に要求する(S137)。アプリケーション制御部3313は、SIPサーバ4に対して、プレゼンス情報を更新するための制御メッセージを送信する(S138)。
以上が、センサ情報処理の一連の流れである。
The
The above is a series of flow of sensor information processing.
図8は、管理者がセンサ情報処理サーバ3−1のデータ管理プログラム332を利用して、シナリオ設定を更新する動作の一例を示したシーケンス図である。
まず、管理者がデータ管理プログラム332を利用してシナリオ設定を更新すると、データ管理プログラム332は、データベース/DHTミドルウェア333に対して、シナリオ設定の更新を要求する(S151)。この例では、シナリオ設定3000の行3013の位置を、「会議室2」から「休憩室」に更新したものとする。
FIG. 8 is a sequence diagram illustrating an example of an operation in which the administrator uses the
First, when the administrator updates the scenario setting using the
データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシ(すなわちデータの保存方法)を決定する。S131と同様に、データベース/DHTミドルウェア333は、シナリオ設定の保存方法は「ミラーリング」である、と判断する(S152)。
When access to the data is requested, the database /
保存方法が「ミラーリング」のデータは、各センサ情報処理サーバ3のデータベースプログラム337に保存されている。そのため、データベース/DHTミドルウェア333は、まずローカルのデータベースプログラム337の中のデータを更新するために、データベースミドルウェア334に対して、シナリオ設定の更新を要求する(S153)。データベースミドルウェア334はデータベースプログラム337の管理するシナリオ設定を更新し、更新の成功をデータベース/DHTミドルウェア333に通知する(S154〜156)。これにより、ローカルのデータベースプログラム337の中のデータの更新は終了する。もしもセンサ情報履歴の更新に失敗した場合は、データ管理プログラム332にエラーを通知して処理を終了する。
Data whose storage method is “mirroring” is stored in the
次に、リモートのサーバ上のデータベースプログラム337の中のデータを更新するために、ミラーリングプログラム336に対して、シナリオ設定の更新を依頼するための更新メッセージの送信を要求する(S157)。ミラーリングプログラム336は、このプログラムが管理する全てのネットワークアドレスに対して、更新メッセージを送信する(S158)。
Next, in order to update the data in the
各センサ情報処理サーバのミラーリングプログラム336は、受信した更新メッセージに従い、データベースミドルウェア334に対して、シナリオ設定の更新を要求する(S159)。
The mirroring program 336 of each sensor information processing server requests the
データベースミドルウェア334はデータベースプログラム337の管理するシナリオ設定を更新し、更新の成功をミラーリングプログラム336に通知する(S160〜162)。これにより、リモートのデータベースプログラム337の中のデータの更新は終了する。各センサ情報処理サーバのミラーリングプログラム336は、データの更新に成功すると、センサ情報処理サーバ3−1のミラーリングプログラム336に対して、成功通知メッセージを送信する(S163)。もしもデータの更新に失敗した場合は、センサ情報処理サーバ3−1のミラーリングプログラム336に対して、エラー通知メッセージを送信する。
The
センサ情報処理サーバ3−1のミラーリングプログラム336は、全てのセンサ情報処理サーバから成功通知メッセージを受信すると、更新の成功をデータベース/DHTミドルウェア333に通知する(S164)。これにより、データベース/DHTミドルウェア333はローカルとリモート両方のデータの更新に成功したことを知ることができる。そして最後に、データベース/DHTミドルウェア333はシナリオ設定の更新成功をデータ管理プログラム332に通知する(S165)。
When receiving the success notification message from all the sensor information processing servers, the mirroring program 336 of the sensor information processing server 3-1 notifies the update success to the database / DHT middleware 333 (S164). As a result, the database /
データの更新を高速化するために、ローカルの更新(S153〜S156)と、リモートの更新(S157〜S164)を並列に行ってもよい。同様に、複数のデータの更新を並列に行ってもよい。
以上のようにして、ユーザIDをキーとしたDHTを利用してセンサ情報をルーティングすることで、センサ情報処理がサーバ間で自律分散されるようになる。これにより、単一障害点となりうるロードバランサが不要になり、可用性が向上する。
In order to speed up the data update, the local update (S153 to S156) and the remote update (S157 to S164) may be performed in parallel. Similarly, a plurality of data may be updated in parallel.
As described above, sensor information is routed using a DHT with a user ID as a key, and sensor information processing is autonomously distributed among servers. This eliminates the need for a load balancer that can be a single point of failure and improves availability.
また、センサ情報処理のボトルネックであった共通データベースが不要になり、処理速度が向上する。特に、シナリオ部によるセンサ情報履歴の参照および更新、そしてミラーリングされたシナリオ設定の参照が高速化する。 In addition, a common database, which has been a bottleneck for sensor information processing, becomes unnecessary, and the processing speed is improved. In particular, the reference and update of the sensor information history by the scenario unit and the reference of the mirrored scenario setting are accelerated.
また、データベースポリシの内容を変更すれば、センサ情報処理プログラム331を変更することなく、複数のデータ管理方法を切り替えることができる。異なるデータベースポリシの例は、以下の実施例2〜4で説明する。 If the contents of the database policy are changed, a plurality of data management methods can be switched without changing the sensor information processing program 331. Examples of different database policies are described in Examples 2-4 below.
実施例1では、センサ情報をDHTミドルウェアに保存する場合の動作を示した。実施例2では、シナリオ設定もDHTミドルウェアに保存する場合について説明する。
本実施例で想定する通信ネットワークの物理的な構成は、実施例1のもの(図3)と同じである。
In the first embodiment, the operation when the sensor information is stored in the DHT middleware is shown. In the second embodiment, a case where scenario settings are also stored in the DHT middleware will be described.
The physical configuration of the communication network assumed in this embodiment is the same as that in the first embodiment (FIG. 3).
また、センサ情報処理サーバ3の内部構造は、実施例1のもの(図5)と同じである。
ただし、本実施例では、全てのセンサ情報処理サーバ3のデータベース/DHTミドルウェア333が、図19に示すデータベースポリシを持っているものとする。このデータベースポリシの行5013は、データ属性が「ユーザID」のデータを含むデータ(すなわちセンサ情報)は、DHTを使って保存するというポリシを示している。行5014は、データ属性が「基地局ID」のデータを含むデータ(すなわちシナリオ設定)は、DHTを使って保存するというポリシを示している。また、行5015は、他のどのポリシにも該当しなかったデータはミラーリングする、というデフォルトポリシを示している。
The internal structure of the sensor
However, in this embodiment, it is assumed that the database /
本実施例では、全てのセンサ情報処理サーバ3のDHTミドルウェア335が持つルーティングテーブルにおいて、キー「sip:ando@example.com」に対応するノードはセンサ情報処理サーバ3−2であるとする。同様に、キー「0003」に対応するノードはセンサ情報処理サーバ3−3であるとする。
In this embodiment, it is assumed that the node corresponding to the key “sip: ando@example.com” is the sensor information processing server 3-2 in the routing table of the
本実施例では、全てのセンサ情報処理サーバ3のデータベースプログラム337が、図14のセンサIDデータテーブル1000の値を保持しているものとする。また、センサ情報処理サーバ3−2のDHTミドルウェア335が、図15のセンサ情報履歴2000の値を保持しているものとする(他のセンサ情報処理サーバが保持している値は省略する)。そして、センサ情報処理サーバ3−3のDHTミドルウェア335が、図16のシナリオ設定テーブル3000の値を保持しているものとする(他のセンサ情報処理サーバが保持している値は省略する)。
In this embodiment, it is assumed that the
図9は、センサ情報配布元2が送信したセンサ情報を、適切なセンサ情報処理サーバ3が処理するまでの動作の一例を示したシーケンス図の一部である。この例でセンサ情報配布元2が送信するセンサ情報は、センサIDが「00006c0000090003」、基地局IDが「0003」であるものとする。
FIG. 9 is a part of a sequence diagram illustrating an example of operations until the appropriate sensor
S101からS129までの動作は実施例1と同じであるため、ここでは省略する。
センサ情報が変化すると、シナリオ部3312は設定情報を読み込んでアプリケーションを制御する。従って、シナリオ部3312は、基地局IDが「0003」のシナリオ設定3000をデータベース/DHTミドルウェアに要求する(S201)。
Since the operations from S101 to S129 are the same as those in the first embodiment, they are omitted here.
When the sensor information changes, the
データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシ(すなわちデータの保存方法)を決定する。
When access to the data is requested, the database /
まず、データベース/DHTミドルウェア333は、データへのアクセス要求から、対象データのデータ名を取得する(S501)。次に、データ名4001が、S501で取得したデータ名に一致するデータ属性を、データ属性テーブル4000から取得する(S502)。この場合、データ名は「シナリオ設定」なので、データベース/DHTミドルウェア333は行4012のデータ属性を取得する。
First, the database /
データ属性が1つ以上あった場合、データベース/DHTミドルウェア333は、データベースポリシテーブル5000から、最も優先度の高いデータベースポリシを取り出す(S503、S504)。この例では、データベース/DHTミドルウェア333は行5013のデータベースポリシを取得する。
If there are one or more data attributes, the database /
データベースポリシを取得できた場合、データベース/DHTミドルウェア333は、S502で取り出した全てのデータ属性を、そのデータベースポリシと比較する(S505、S506)。
If the database policy can be acquired, the database /
この例では、行4012のデータ属性と、行5013のデータベースポリシは一致していない。そこで、データベースポリシテーブル5000から次に優先度の高いデータベースポリシを取り出す(S507、S509)。
In this example, the data attribute of the
そして、データベース/DHTミドルウェア333は、S502で取り出した全てのデータ属性を、S509で取り出した1つのデータベースポリシと比較する(S505、S506)。この例では、行4012のデータ属性と、行5014のデータベースポリシは一致している。従って、センサ情報履歴に対しては行5014のデータベースポリシを適用する(S507、S508)。つまり、データベース/DHTミドルウェア333は、シナリオ設定の保存方法は「DHT」である、と判断する(S202)。また、データベースポリシ5014は、DHTのキーとして、データ属性「基地局ID」が付与されたデータを使うよう指示している。
Then, the database /
保存方法が「DHT」のデータは、各センサ情報処理サーバ3のDHTミドルウェア335に保存されている。そのため、データベース/DHTミドルウェア333は、DHTミドルウェア335に対して、基地局IDが「0003」のシナリオ設定3000を要求する(S203)。また、このときDHTのキーとして基地局ID「0003」を指定する。
Data whose storage method is “DHT” is stored in the
この要求を受信したDHTミドルウェア335は、ルーティングテーブルを参照して、どのノード上のデータを検索するか決定する(S204)。本実施例では、キー「0003」に対応するノードはセンサ情報処理サーバ3−3である。従って、DHTミドルウェア335は、シナリオ設定3000の検索要求メッセージをセンサ情報処理サーバ3−3へ送信する(S205)。このとき、DHTのキーとして基地局ID「0003」を指定する。
The
センサ情報処理サーバ3−3のDHTミドルウェア333は、このメッセージを受信すると、ルーティングテーブルを参照して、このメッセージの送信先を決定する(S206)。キーに対応するノードが他のサーバの場合は、そのサーバへ再度メッセージを転送する。しかし、本実施例では、キー「sip:ando@example.com」を担当するサーバはセンサ情報処理サーバ3−3である。そのため、DHTミドルウェア335は、そのミドルウェア自身が保存しているシナリオ設定3000の行3013を結果として返す(S207)。センサ情報処理サーバ3−2のDHTミドルウェア335は、この結果をデータベース/DHTミドルウェア333に返す(S208)。また、データベース/DHTミドルウェアは、この結果をシナリオ部3312に返す(S209)。これにより、シナリオ部3312は、基地局ID「0003」に対応する位置が「会議室2」であると知ることができる。
When the
シナリオ部3312は、ユーザID「sip:ando@example.com」のユーザの位置を「会議室2」に更新することを、アプリケーション制御部3313に要求する(S210)。アプリケーション制御部3313は、SIPサーバ4に対して、プレゼンス情報を更新するための制御メッセージを送信する(S211)。
以上が、センサ情報処理の一連の流れである。
The
The above is a series of flow of sensor information processing.
図10は、管理者がセンサ情報処理サーバ3−1のデータ管理プログラム332を利用して、シナリオ設定を更新する動作の一例を示したシーケンス図である。
まず、管理者がデータ管理プログラム332を利用してシナリオ設定を更新すると、データ管理プログラム332は、データベース/DHTミドルウェア333に対して、シナリオ設定の更新を要求する(S251)。この例では、シナリオ設定3000の行3013の位置を、「会議室2」から「休憩室」に更新したものとする。
FIG. 10 is a sequence diagram illustrating an example of an operation in which the administrator uses the
First, when the administrator uses the
データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシ(すなわちデータの保存方法)を決定する。S202と同様に、データベース/DHTミドルウェア333は、シナリオ設定の保存方法は「DHT」である、と判断する(S252)。
When access to the data is requested, the database /
保存方法が「DHT」のデータは、ある特定のセンサ情報処理サーバ3のDHTミドルウェア335に保存されている。そのため、データベース/DHTミドルウェア333は、DHTミドルウェア335に対して、シナリオ設定の更新を要求する(S253)。このとき、DHTのキーとして基地局ID「0003」を指定する。
Data whose storage method is “DHT” is stored in the
この要求を受信したDHTミドルウェア335は、ルーティングテーブルを参照して、どのノード上のデータを検索するか決定する(S254)。本実施例では、キー「0003」に対応するノードはセンサ情報処理サーバ3−3である。従って、DHTミドルウェア335は、シナリオ設定3000の更新メッセージをセンサ情報処理サーバ3−3へ送信する(S255)。このとき、DHTのキーとして基地局ID「0003」を指定する。
The
センサ情報処理サーバ3−3のDHTミドルウェア333は、このメッセージを受信すると、ルーティングテーブルを参照して、このメッセージの送信先を決定する(S256)。キーに対応するノードが他のサーバの場合は、そのサーバへ再度メッセージを転送する。しかし、本実施例では、キー「0003」を担当するサーバはセンサ情報処理サーバ3−3である。そのため、DHTミドルウェア335は、そのミドルウェア自身が保存しているシナリオ設定3000の行3013を更新する。データの更新に成功すると、センサ情報処理サーバ3−2のDHTミドルウェア335に対して、成功通知メッセージを送信する(S257)。
Upon receiving this message, the
センサ情報処理サーバ3−2のDHTミドルウェア335は、この成功通知メッセージを受信すると、更新の成功をデータベース/DHTミドルウェア333に通知する(S258)。そして最後に、データベース/DHTミドルウェア333はシナリオ設定の更新成功をデータ管理プログラム332に通知する(S259)。
Upon receiving this success notification message, the
以上のようにして、管理者がデータベースポリシの内容を変更するだけで、センサ情報処理プログラムを変更することなく、実施例1とは異なるデータ管理方法へと切り替えることができる。 As described above, the administrator can change to a data management method different from that of the first embodiment without changing the sensor information processing program only by changing the contents of the database policy.
実施例2では、ユーザIDをキーとしたDHTを利用してセンサ情報をルーティングすることで、センサ情報処理がサーバ間で自律分散されるようになる。これは実施例1と同様である。 In the second embodiment, sensor information is routed using a DHT with a user ID as a key, and sensor information processing is autonomously distributed among servers. This is the same as in the first embodiment.
一方、実施例1では、シナリオ設定を更新する際に、全てのサーバに対して更新メッセージを送る必要があった。しかし実施例2ではDHTを使ってシナリオ設定を保存することで、シナリオ設定の更新に必要なメッセージの数が実施例1よりも減った。従って、シナリオ設定を頻繁に更新する必要がある場合や、サーバの数が多い場合は、本実施例のデータベースポリシが有効である。 On the other hand, in the first embodiment, when updating the scenario setting, it is necessary to send an update message to all the servers. However, in the second embodiment, the scenario setting is stored using the DHT, so that the number of messages necessary for updating the scenario setting is smaller than that in the first embodiment. Therefore, the database policy of this embodiment is effective when the scenario setting needs to be updated frequently or when the number of servers is large.
実施例1と2では、全てのデータをセンサ情報処理サーバ群が保存する場合の動作を示した。実施例3では、一部のデータを共通データベースに保存する場合について説明する。 In the first and second embodiments, the operation in the case where the sensor information processing server group stores all data is shown. In the third embodiment, a case where a part of data is stored in a common database will be described.
図4には、本実施例で想定する通信ネットワークの物理的な構成を模式的に示す。
センサ情報配布元2、センサ情報処理サーバ3、SIPサーバ4、SIP UA5は、実施例1のものと同じである。
FIG. 4 schematically shows a physical configuration of a communication network assumed in this embodiment.
The sensor
共通データベース6は、データベースプログラムが動作するサーバ機器である。センサ情報処理サーバ3は、それぞれのデータベースミドルウェア337を通して、共通データベース6のデータベースプログラムが管理するデータにアクセスする。
The
通信網1−1、センサ情報配布元2、センサ情報処理サーバ3、SIPサーバ4、共通データベースサーバ6は、互いに物理的な通信回線9を介して接続されている。また、通信網1−2、SIPサーバ4、SIP UA5は互いに物理的な通信回線9を介して接続されている。図4では、見やすさのために通信網1−1と1−2を分けているが、この両者は同じ通信網であってもよい。
また、センサ情報処理サーバ3の内部構造は、実施例1のもの(図5)と同じである。
The communication network 1-1, the
The internal structure of the sensor
ただし、本実施例では、全てのセンサ情報処理サーバ3のデータベース/DHTミドルウェア333が、図20に示すデータベースポリシを持っているものとする。このデータベースポリシの行5016は、データ属性が「ユーザID」のデータを含むデータ(すなわちセンサ情報)は、DHTを使って保存するというポリシを示している。行5017は、データ属性が「サーバ設定」のデータ(すなわちセンサIDデータ)は、ミラーリングで保存するというポリシを示している。また、行5018は、他のどのポリシにも該当しなかったデータは共通データベースに保存する、というデフォルトポリシを示している。
However, in this embodiment, it is assumed that the database /
本実施例では、全てのセンサ情報処理サーバ3のDHTミドルウェア335が持つルーティングテーブルにおいて、キー「sip:ando@example.com」に対応するノードはセンサ情報処理サーバ3−2であるとする。
In this embodiment, it is assumed that the node corresponding to the key “sip: ando@example.com” is the sensor information processing server 3-2 in the routing table of the
本実施例では、全てのセンサ情報処理サーバ3のデータベースプログラム337が、図14のセンサIDデータテーブル1000の値を保持しているものとする。また、センサ情報処理サーバ3−2のDHTミドルウェア335が、図15のセンサ情報履歴2000の値を保持しているものとする(他のセンサ情報処理サーバが保持している値は省略する)。そして、共通データベースサーバ6が、図16のシナリオ設定テーブル3000の値を保持しているものとする。
In this embodiment, it is assumed that the
図11は、センサ情報配布元2が送信したセンサ情報を、適切なセンサ情報処理サーバ3が処理するまでの動作の一例を示したシーケンス図の一部である。この例でセンサ情報配布元2が送信するセンサ情報は、センサIDが「00006c0000090003」、基地局IDが「0003」であるものとする。
FIG. 11 is a part of a sequence diagram illustrating an example of the operation until the appropriate sensor
S101からS129までの動作は実施例1とほぼ同じである。ただし、S103でセンサIDデータの保存方法が「ミラーリング」であると判断する流れが、実施例1と異なる。この流れを詳しく説明する。 The operations from S101 to S129 are almost the same as those in the first embodiment. However, the flow of determining that the sensor ID data storage method is “mirroring” in S103 is different from that in the first embodiment. This flow will be described in detail.
データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシを決定する。
まず、データベース/DHTミドルウェア333は、データへのアクセス要求から、対象データのデータ名を取得する(S501)。次に、データ名4001が、S501で取得したデータ名に一致するデータ属性を、データ属性テーブル4000から取得する(S502)。この場合、データ名は「センサIDデータ」なので、データベース/DHTミドルウェア333は行4013のデータ属性を取得する。
When the database /
First, the database /
データ属性が1つ以上あった場合、データベース/DHTミドルウェア333は、データベースポリシテーブル5000から、最も優先度の高いデータベースポリシを取り出す(S503、S504)。この例では、データベース/DHTミドルウェア333は行5016のデータベースポリシを取得する。
If there are one or more data attributes, the database /
データベースポリシを取得できた場合、データベース/DHTミドルウェア333は、S502で取り出した全てのデータ属性を、そのデータベースポリシと比較する(S505、S506)。この例では、行4013のデータ属性と、行5016のデータベースポリシは一致していない。そこで、データベースポリシテーブル5000から次に優先度の高いデータベースポリシを取り出す(S507、S509)。この例では、行5017のデータベースポリシを取得する。
If the database policy can be acquired, the database /
そして、データベース/DHTミドルウェア333は、S502で取り出した全てのデータ属性を、S509で取り出した1つのデータベースポリシと比較する(S505、S506)。この例では、行4013のデータ属性と、行5017のデータベースポリシは一致している。従って、センサ情報履歴に対しては行5017のデータベースポリシを適用する(S507、S508)。つまり、データベース/DHTミドルウェア333は、シナリオ設定の保存方法は「DHT」である、と判断する。この結果は、実施例1のS103と同じである。
Then, the database /
S103を除いたS101からS129までの動作は実施例1と同じであるため、ここでは省略する。 Since operations from S101 to S129 excluding S103 are the same as those in the first embodiment, they are omitted here.
センサ情報が変化すると、シナリオ部3312は設定情報を読み込んでアプリケーションを制御する。従って、シナリオ部3312は、基地局IDが「0003」のシナリオ設定3000をデータベース/DHTミドルウェアに要求する(S301)。
When the sensor information changes, the
データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシ(すなわちデータの保存方法)を決定する。
まず、データベース/DHTミドルウェア333は、データへのアクセス要求から、対象データのデータ名を取得する(S501)。次に、データ名4001が、S501で取得したデータ名に一致するデータ属性を、データ属性テーブル4000から取得する(S502)。この場合、データ名は「シナリオ設定」なので、データベース/DHTミドルウェア333は行4012のデータ属性を取得する。
When access to the data is requested, the database /
First, the database /
データ属性が1つ以上あった場合、データベース/DHTミドルウェア333は、データベースポリシテーブル5000から、最も優先度の高いデータベースポリシを取り出す(S503、S504)。この例では、データベース/DHTミドルウェア333は行5016のデータベースポリシを取得する。
If there are one or more data attributes, the database /
データベースポリシを取得できた場合、データベース/DHTミドルウェア333は、S502で取り出した全てのデータ属性を、そのデータベースポリシと比較する(S505、S506)。
If the database policy can be acquired, the database /
この例では、行4012のデータ属性と、行5016のデータベースポリシは一致していない。そこで、データベースポリシテーブル5000から次に優先度の高いデータベースポリシを取り出す(S507、S509)。この例では、行5017のデータベースポリシを取得する。
In this example, the data attribute of the
そして、データベース/DHTミドルウェア333は、S502で取り出した全てのデータ属性を、S509で取り出した1つのデータベースポリシと比較する(S505、S506)。この例では、行4012のデータ属性と、行5017のデータベースポリシは一致していない(S507)。この例では次に優先度の高いデータベースポリシが存在しないため、デフォルトポリシ5018を適用する(S509、S505、S510)。つまり、データベース/DHTミドルウェア333は、シナリオ設定の保存方法は「共通データベース」である、と判断する(S302)。このように、どのデータベースポリシにも該当しないデータは共通データベースに保存されるため、データベースポリシの設定漏れによるデータの欠損は無い。保存方法が「共通データベース」のデータは、共通データベースサーバ6に保存されている。そのため、データベース/DHTミドルウェア333は、データベースミドルウェア337に対して、共通データベースサーバ6へのアクセスを要求する(S303)。データベースミドルウェア337は、共通データベースサーバ6に対して、基地局IDが「0003」のシナリオ設定3000を要求する(S304)。
Then, the database /
この要求を受信した共通データベースサーバ6は、そのサーバ内のデータベースプログラムが保存しているシナリオ設定3000の行3013を結果として返す(S305)。センサ情報処理サーバ3−2のデータベースミドルウェア337は、この結果をデータベース/DHTミドルウェア333に返す(S306)。また、データベース/DHTミドルウェア333は、この結果をシナリオ部3312に返す(S307)。これにより、シナリオ部3312は、基地局ID「0003」に対応する位置が「会議室2」であると知ることができる。
The
シナリオ部3312は、ユーザID「sip:ando@example.com」のユーザの位置を「会議室2」に更新することを、アプリケーション制御部3313に要求する(S308)。アプリケーション制御部3313は、SIPサーバ4に対して、プレゼンス情報を更新するための制御メッセージを送信する(S309)。
以上が、センサ情報処理の一連の流れである。
The
The above is a series of flow of sensor information processing.
図12は、管理者がセンサ情報処理サーバ3−1のデータ管理プログラム332を利用して、シナリオ設定を更新する動作の一例を示したシーケンス図である。
まず、管理者がデータ管理プログラム332を利用してシナリオ設定を更新すると、データ管理プログラム332は、データベース/DHTミドルウェア333に対して、シナリオ設定の更新を要求する(S351)。この例では、シナリオ設定3000の行3013の位置を、「会議室2」から「休憩室」に更新したものとする。
FIG. 12 is a sequence diagram illustrating an example of an operation in which the administrator uses the
First, when the administrator updates the scenario setting using the
データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシ(すなわちデータの保存方法)を決定する。S302と同様に、データベース/DHTミドルウェア333は、シナリオ設定の保存方法は「共通データベース」である、と判断する(S352)。
When access to the data is requested, the database /
保存方法が「共通データベース」のデータは、共通データベースサーバ6のデータベースプログラムに保存されている。そのため、データベース/DHTミドルウェア333は、データベースミドルウェア337に対して、共通データベースサーバ6へのアクセスを要求する(S353)。データベースミドルウェア337は、共通データベースサーバ6に対して、シナリオ設定の更新を要求する(S354)。
Data whose storage method is “common database” is stored in the database program of the
この要求を受信した共通データベースサーバ6は、そのサーバ内のデータベースプログラムが保存しているシナリオ設定3000の行3013を更新する。データの更新に成功すると、センサ情報処理サーバ3−2のデータベースミドルウェア337DHTミドルウェア335に対して、成功通知メッセージを送信する(S355)。
The
センサ情報処理サーバ3−2のデータベースミドルウェア337は、この成功通知メッセージを受信すると、更新の成功をデータベース/DHTミドルウェア333に通知する(S356)。そして最後に、データベース/DHTミドルウェア333はシナリオ設定の更新成功をデータ管理プログラム332に通知する(S357)。
Upon receiving this success notification message, the
また、上記のようにデータ管理プログラム332を用いなくても、従来のデータベース操作ソフトウェアを利用して共通データベースサーバ6に保存されているデータ(すなわちシナリオ設定)を操作することもできる。
Further, without using the
以上のようにして、管理者がデータベースポリシの内容を変更するだけで、センサ情報処理プログラムを変更することなく、実施例1とは異なるデータ管理方法へと切り替えることができる。 As described above, the administrator can change to a data management method different from that of the first embodiment without changing the sensor information processing program only by changing the contents of the database policy.
実施例3では、実施例1〜2とは異なり、共通データベースを利用している。しかし、データベースポリシに基づき、センサ情報はDHTを利用してルーティングされる。従って、センサ情報処理は実施例1〜2と同様にサーバ間で自律分散される。また、頻繁に参照されるセンサIDデータは、ミラーリングによって各サーバ上に配置される。これにより、従来の方法と比べて、共通データベースがセンサ情報処理のボトルネックになりにくくなっている。 In the third embodiment, unlike the first and second embodiments, a common database is used. However, sensor information is routed using DHT based on the database policy. Therefore, the sensor information processing is autonomously distributed among the servers as in the first and second embodiments. Further, frequently referred sensor ID data is arranged on each server by mirroring. Thereby, compared with the conventional method, the common database is less likely to become a bottleneck for sensor information processing.
また、実施例3ではシナリオ設定の保存先を共通データベースサーバに固定している。そのため、複数のセンサ情報処理サーバの間でデータを管理する実施例1〜2よりも、データの同期を取りやすい。従って、シナリオ設定の更新頻度が実施例2よりも高い、またはサーバの数が多い場合は、本実施例のデータベースポリシが有効である。
このように、DHT、ミラーリングと共通データベースを使い分けるデータベースポリシを設定することで、各データの特徴に合わせてデータベースを使い分けることが可能になる。
In the third embodiment, the scenario setting storage destination is fixed to the common database server. Therefore, it is easier to synchronize data than in the first and second embodiments in which data is managed among a plurality of sensor information processing servers. Therefore, when the scenario setting update frequency is higher than that of the second embodiment or the number of servers is larger, the database policy of this embodiment is effective.
In this way, by setting a database policy that properly uses DHT, mirroring, and the common database, it becomes possible to use the database according to the characteristics of each data.
実施例1〜3では、センサ情報履歴はセンサ情報処理サーバ群に分散配置されていた。実施例4では、全てのデータを共通データベースに保存する場合について説明する。 In the first to third embodiments, the sensor information history is distributed in the sensor information processing server group. In the fourth embodiment, a case where all data is stored in a common database will be described.
図2には、本実施例で想定する通信ネットワークの物理的な構成を模式的に示す。センサ情報配布元2、センサ情報処理サーバ3、SIPサーバ4、SIP UA5、共通データベース6は、実施例3と、センサ情報配布元2が、ロードバランサ7に対してセンサ情報を送信する点以外は同じである。ロードバランサ7は、通信回線9を通して受信したパケットを、n台のセンサ情報処理サーバ3のいずれかに転送するサーバ機器である。ロードバランサ7はn台のセンサ情報処理サーバ3の負荷を監視しており、負荷の少ないセンサ情報処理サーバへパケットを転送する。
FIG. 2 schematically shows a physical configuration of a communication network assumed in this embodiment. The sensor
通信網1−1、センサ情報配布元2、センサ情報処理サーバ3、SIPサーバ4、共通データベースサーバ6、ロードバランサ7は、互いに物理的な通信回線9を介して接続されている。また、通信網1−2、SIPサーバ4、SIP UA5は互いに物理的な通信回線9を介して接続されている。図2では、見やすさのために通信網1−1と1−2を分けているが、この両者は同じ通信網であってもよい。
また、センサ情報処理サーバ3の内部構造は、実施例1のもの(図5)と同じである。
The communication network 1-1,
The internal structure of the sensor
ただし、本実施例では、全てのセンサ情報処理サーバ3のデータベース/DHTミドルウェア333が、図21に示すデータベースポリシを持っているものとする。このデータベースポリシには、デフォルトポリシ5019しか含まれていない。つまり、全てのデータを共通データベースに保存することを示している。
However, in this embodiment, it is assumed that the database /
本実施例では、共通データベースサーバ6が、図14のセンサIDデータテーブル1000の値、図15のセンサ情報履歴テーブル2000の値、および図16のシナリオ設定テーブルの値を保持しているものとする。
In this embodiment, it is assumed that the
図13は、センサ情報配布元2が送信したセンサ情報を、センサ情報処理サーバ3が処理するまでの動作の一例を示したシーケンス図である。この例でセンサ情報配布元2が送信するセンサ情報は、センサIDが「00006c0000090003」、基地局IDが「0003」であるものとする。
FIG. 13 is a sequence diagram illustrating an example of an operation until the sensor
まず、センサ情報配布元2は、ロードバランサ7に対してセンサ情報を送信する(S401)。ロードバランサ7はサーバ負荷を考慮して、このセンサ情報をいずれかのセンサ情報処理サーバ3に転送する(S402)。この例では、センサ情報処理サーバ3−1のセンサID解決部3311に転送したものとする。
First, the
センサID解決部3311は、データベース/DHTミドルウェア333に対して、センサIDが「00006c0000090003」のセンサIDデータ1000を要求する(S403)。
The sensor ID resolution unit 3311 requests the
データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシを決定する。本実施例ではデフォルトポリシしか存在しないため、センサIDデータの保存方法は「共通データベース」である、と判断する(S404)。
When the database /
保存方法が「共通データベース」のデータは、共通データベースサーバ6に保存されている。そのため、データベース/DHTミドルウェア333は、データベースミドルウェア337に対して、共通データベースサーバ6へのアクセスを要求する。データベースミドルウェア337は、共通データベースサーバ6に対して、基地局IDが「0003」のシナリオ設定3000を要求し、シナリオ設定3000の行3013が返される(S405〜S408)。そして、データベース/DHTミドルウェア333は、この結果をセンサID解決部3311に返す(S409)。これにより、センサID解決部3311は、センサID「00006c0000090003」に対応するユーザIDが「sip:ando@example.com」であると知ることができる。センサID解決部3311は、このユーザIDをセンサ情報の中に挿入する(S410)。
Data whose storage method is “common database” is stored in the
次に、センサID解決部3311は、データベース/DHTミドルウェア333に対して、センサ情報を含むメッセージの送信を要求する(S411)。このとき、メッセージの送信に使うキーとしてS409で取得したユーザID(すなわち「sip:ando@example.com」)を指定し、データ属性として「ユーザID」を指定する。
Next, the sensor ID resolution unit 3311 requests the database /
データベース/DHTミドルウェア333は、メッセージの送信を要求されると、図24のフローチャートに従ってそのメッセージの送信先を決定する。まず、データベース/DHTミドルウェア333は、データベースポリシテーブル5000から、最も優先度の高いデータベースポリシを取り出す(S610)。この例では、データベース/DHTミドルウェア333は行5019のデータベースポリシを取得する。データベースポリシを取得できた場合、データベース/DHTミドルウェア333は、そのデータベースポリシの保存方法が「DHT」かどうかを調べる(S603)。この例では、行5019の保存方法は「DHT」でない。従ってデータベース/DHTミドルウェア333は、データベースポリシテーブル5000から、次に優先度の高いデータベースポリシを取り出す(S606)。しかし、データベースポリシは1つしか存在しないため、データベース/DHTミドルウェア333はメッセージの送信先は「メッセージハンドラ」である、と判断する(S602、S607)。
When the database /
データベース/DHTミドルウェア333は、センサ情報を含むメッセージをメッセージハンドラに渡す。前述の通り、シナリオ部3312は事前にメッセージハンドラを登録しているので、シナリオ部3312はメッセージハンドラを通して、このセンサ情報を含むメッセージを受信する(S413)。
The database /
センサ情報を受信すると、シナリオ部3312は、そのセンサ情報に含まれるユーザのセンサ情報履歴をデータベース/DHTミドルウェア333に要求する(S414)。つまり、ユーザIDが「sip:ando@example.com」のセンサ情報履歴を要求する。
When the sensor information is received, the
データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシ(すなわちデータの保存方法)を決定する。本実施例ではデフォルトポリシしか存在しないため、センサ情報履歴の保存方法は「共通データベース」である、と判断する(S415)。
When access to the data is requested, the database /
保存方法が「共通データベース」のデータは、共通データベースサーバ6に保存されている。そのため、データベース/DHTミドルウェア333は、データベースミドルウェア337に対して、共通データベースサーバ6へのアクセスを要求する。データベースミドルウェア337は、共通データベースサーバ6に対して、ユーザIDが「sip:ando@example.com」のセンサ情報履歴2000を要求し、センサ情報履歴2000の行2011が返される(S416〜S419)。そして、データベース/DHTミドルウェア333は、この結果をシナリオ部3312に返す(S420)。これにより、シナリオ部3312は、このユーザの基地局IDが「0001」から「0003」に変化したことを知ることができる。
Data whose storage method is “common database” is stored in the
センサ情報が変化すると、シナリオ部3312は、その新しいセンサ情報をデータベースプログラムまたはDHTミドルウェアに保存する。そのために、シナリオ部3312は、データベース/DHTミドルウェアにセンサ情報履歴の更新を要求する(S421)。
データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシ(すなわちデータの保存方法)を決定する。S422と同様に、データベース/DHTミドルウェア333は、センサ情報履歴の保存方法は「共通データベース」である、と判断する(S422)。
When the sensor information changes, the
When access to the data is requested, the database /
保存方法が「共通データベース」のデータは、共通データベースサーバ6に保存されている。そのため、データベース/DHTミドルウェア333は、データベースミドルウェア337に対して、共通データベースサーバ6へのアクセスを要求する。データベースミドルウェア337は、共通データベースサーバ6に対して、ユーザIDが「sip:ando@example.com」のセンサ情報履歴2000の更新を要求する(S423〜S426)。更新に成功すると、データベース/DHTミドルウェア333は、更新の成功をシナリオ部3312に通知する(S427)。これにより、シナリオ部3312は、センサ情報履歴の更新に成功したことを知ることができる。
Data whose storage method is “common database” is stored in the
センサ情報が変化すると、シナリオ部3312は設定情報を読み込んでアプリケーションを制御する。本実施例では、センサ情報に含まれる基地局IDに応じて、そのユーザの位置を表すプレゼンス情報を更新する。各基地局IDに対応する位置は、データベースプログラムまたはDHTミドルウェアから取得する。
When the sensor information changes, the
シナリオ部3312は、基地局IDが「0003」のシナリオ設定3000をデータベース/DHTミドルウェアに要求する(S428)。
The
データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシ(すなわちデータの保存方法)を決定する。本実施例ではデフォルトポリシしか存在しないため、シナリオ設定の保存方法は「共通データベース」である、と判断する(S429)。
When access to the data is requested, the database /
保存方法が「共通データベース」のデータは、共通データベースサーバ6に保存されている。そのため、データベース/DHTミドルウェア333は、データベースミドルウェア337に対して、共通データベースサーバ6へのアクセスを要求する。データベースミドルウェア337は、共通データベースサーバ6に対して、基地局IDが「0003」のシナリオ設定3000を要求するを要求し、シナリオ設定3000の行3013が返される(S430〜S433)。そして、データベース/DHTミドルウェア333は、この結果をシナリオ部3312に返す(S434)。これにより、シナリオ部3312は、基地局ID「0003」に対応する位置が「会議室2」であると知ることができる。
Data whose storage method is “common database” is stored in the
シナリオ部3312は、ユーザID「sip:ando@example.com」のユーザの位置を「会議室2」に更新することを、アプリケーション制御部3313に要求する(S435)。アプリケーション制御部3313は、SIPサーバ4に対して、プレゼンス情報を更新するための制御メッセージを送信する(S436)。
以上が、センサ情報処理の一連の流れである。
The
The above is a series of flow of sensor information processing.
図12は、管理者がセンサ情報処理サーバ3−1のデータ管理プログラム332を利用して、シナリオ設定を更新する動作の一例を示したシーケンス図である。シナリオ設定の更新は、実施例3で示した例と全く同様に行うことができる。
FIG. 12 is a sequence diagram illustrating an example of an operation in which the administrator uses the
以上のようにして、管理者がデータベースポリシの内容を変更するだけで、センサ情報処理プログラムを変更することなく、実施例1とは異なるデータ管理方法へと切り替えることができる。特に本実施例は、データベースポリシの内容を変更するだけで、従来の負荷分散方式もサポートできることを示している。 As described above, the administrator can change to a data management method different from that of the first embodiment without changing the sensor information processing program only by changing the contents of the database policy. In particular, the present embodiment shows that the conventional load balancing method can be supported only by changing the contents of the database policy.
実施例4の構成は、全てのデータを共通データベースで管理している。そのため、処理速度は実施例1〜3に劣るが、データが一カ所に集中しているため、センサ情報履歴の再利用を行いやすくなっている。 In the configuration of the fourth embodiment, all data is managed by a common database. For this reason, the processing speed is inferior to those of the first to third embodiments, but since the data is concentrated in one place, the sensor information history can be easily reused.
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計なども含まれる。 The embodiment of the present invention has been described in detail with reference to the drawings. However, the specific configuration is not limited to this embodiment, and includes a design that does not depart from the gist of the present invention.
1 通信網
2 センサ情報配布元
3 センサ情報処理サーバ
4 SIPサーバ
5 SIP UA
6 共通データベースサーバ
7 ロードバランサ
9 通信回線
31 IF
32 CPU
33 メモリ
34 データパス
331 センサ情報処理プログラム
3311 センサID解決部
3312 シナリオ部
3313 アプリケーション制御部
332 データ管理プログラム
333 データベース/DHTミドルウェア
334 データベースミドルウェア
335 DHTミドルウェア
336 ミラーリングプログラム
337 データベースプログラム
1000 センサIDデータテーブル
2000 センサ情報履歴テーブル
3000 シナリオ設定テーブル
4000 データ属性テーブル
5000 データベースポリシテーブル。
1
6 Common database server 7 Load balancer 9
32 CPU
33 Memory 34 Data path 331 Sensor information processing program 3311 Sensor
Claims (14)
プログラムが格納されたメモリと、
該メモリから該プログラムを読み出して該パケットを処理するCPUと、
分散データベースと、からなり、ネットワークを介して複数のサーバと共通データベースと接続されるセンサ情報処理サーバであって、
該メモリは、該パケットに含まれるデータのデータ属性を管理するデータ属性テーブルと上記ネットワーク共通のデータベースポリシを管理するデータベースポリシテーブルを備え、
前記データ属性テーブルと前記データベースポリシテーブルに基づいて、該データを格納するデータベースが前記分散データベースか前記共通データベースかを判断し、該判断されたデータベースに該データを格納することを特徴とするセンサ情報処理サーバ。 An interface for sending and receiving packets;
Memory where the program is stored;
A CPU that reads the program from the memory and processes the packet;
A sensor information processing server comprising a distributed database and connected to a plurality of servers and a common database via a network,
The memory includes a data attribute table that manages data attributes of data included in the packet, and a database policy table that manages a database policy common to the network,
Based on the data attribute table and the database policy table, it is determined whether a database storing the data is the distributed database or the common database, and the data is stored in the determined database. Processing server.
前記センサ情報配布元からセンサ情報を含むパケットを送受信するインタフェースと、
プログラムが格納されたメモリと、
該メモリから該プログラムを読み出して該パケットを処理するCPUと、からなり、
該メモリは、データ属性を管理するデータ属性テーブルと上記ネットワーク共通のデータベースポリシを管理するデータベースポリシテーブルを備え、
前記データ属性テーブルと前記データベースポリシテーブルに基づいて、前記センサ情報を含むパケットの送信先を判断することを特徴とするセンサ情報処理サーバ。 A sensor information processing server connected to a sensor information distribution source via a network,
An interface for transmitting and receiving packets including sensor information from the sensor information distributor;
Memory where the program is stored;
A CPU that reads the program from the memory and processes the packet;
The memory includes a data attribute table that manages data attributes and a database policy table that manages a database policy common to the network,
A sensor information processing server that determines a transmission destination of a packet including the sensor information based on the data attribute table and the database policy table.
前記センサ情報処理サーバは、
分散データベースと、上記センサ情報配布元から受信するデータのデータ属性を管理するデータ属性管理テーブルと、上記センサ情報処理システム共通のデータベースポリシを管理するデータベースポリシテーブルを備え、
上記データ属性管理テーブルと上記データベースポリシデーブルに基づいて、上記センサ情報配布元から受信するデータを格納するデータベースが前記分散データベースか前記共通データベースかを判断し、該データを該判断したデータベースに格納するセンサ情報処理システム。 A sensor information processing system in which a sensor information distributor, a common database, and an application server are connected to a sensor information processing server via a network,
The sensor information processing server
A distributed database, a data attribute management table for managing data attributes of data received from the sensor information distributor, and a database policy table for managing a database policy common to the sensor information processing system,
Based on the data attribute management table and the database policy table, it is determined whether the database storing the data received from the sensor information distribution source is the distributed database or the common database, and the data is stored in the determined database. Sensor information processing system.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006328937A JP2008146119A (en) | 2006-12-06 | 2006-12-06 | Sensor information processing server and sensor information processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006328937A JP2008146119A (en) | 2006-12-06 | 2006-12-06 | Sensor information processing server and sensor information processing system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008146119A true JP2008146119A (en) | 2008-06-26 |
Family
ID=39606276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006328937A Pending JP2008146119A (en) | 2006-12-06 | 2006-12-06 | Sensor information processing server and sensor information processing system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008146119A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011136261A1 (en) * | 2010-04-28 | 2011-11-03 | 日本電気株式会社 | Storage system, control method for storage system, and computer program |
JP2012521696A (en) * | 2009-03-23 | 2012-09-13 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | Event identification in peer-to-peer networks |
JP2017037542A (en) * | 2015-08-12 | 2017-02-16 | 崇博 太田 | Coordination among information apparatuses using related user information |
WO2023176916A1 (en) * | 2022-03-16 | 2023-09-21 | 株式会社ラプラス・システム | Data structure containing identifier for numerical data, and numerical value management system using same |
-
2006
- 2006-12-06 JP JP2006328937A patent/JP2008146119A/en active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012521696A (en) * | 2009-03-23 | 2012-09-13 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | Event identification in peer-to-peer networks |
WO2011136261A1 (en) * | 2010-04-28 | 2011-11-03 | 日本電気株式会社 | Storage system, control method for storage system, and computer program |
JP5803908B2 (en) * | 2010-04-28 | 2015-11-04 | 日本電気株式会社 | Storage system and storage system control method |
JP2017037542A (en) * | 2015-08-12 | 2017-02-16 | 崇博 太田 | Coordination among information apparatuses using related user information |
WO2023176916A1 (en) * | 2022-03-16 | 2023-09-21 | 株式会社ラプラス・システム | Data structure containing identifier for numerical data, and numerical value management system using same |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5270697B2 (en) | publish / subscribe message broker | |
US8582469B2 (en) | Peer-to-peer network including routing protocol enhancement | |
KR100984384B1 (en) | System, network device, method, and computer program product for active load balancing using clustered nodes as authoritative domain name servers | |
US7607096B2 (en) | System and method for a user interface directed to discovering and publishing presence information on a network | |
US20070283043A1 (en) | Information delivery system, delivery request program, transfer program, delivery program, and the like | |
JP4616159B2 (en) | Cluster system, load balancer, node transfer method, and node transfer program | |
GB2477092A (en) | Selecting virtual machine host servers based on client device location | |
US9792311B2 (en) | System and method for managing a partitioned database of user relationship data | |
JP2008131519A (en) | Registration method of contact destination information, network system, node, and registration program of contact destination information | |
JP2012038152A (en) | Connection management system and connection management server cooperation method in thin client system | |
WO2021051747A1 (en) | Data update method, system and device, electronic device, and computer storage medium | |
US11354152B2 (en) | Self-evolving microservices | |
JP2005502106A (en) | Access to information content | |
US20110307443A1 (en) | Using amqp for replication | |
WO2019223099A1 (en) | Application program calling method and system | |
JP2010009380A (en) | Bus system | |
WO2017128713A1 (en) | Method and device for publishing subscription message | |
JP2004220549A (en) | Extensible communication control | |
JP2008146119A (en) | Sensor information processing server and sensor information processing system | |
JP2005346573A (en) | Web service providing method, server device and client terminal in web service system, web service system, web service program, and recording medium | |
JP2011039681A (en) | Relay device, information processing method related to transfer rule, and program | |
JP2007207013A (en) | Information processor and information sharing program | |
JP2007184669A (en) | Contents distribution system, terminal and information processing method thereof, and program thereof | |
JP4272105B2 (en) | Storage group setting method and apparatus | |
JP2019041241A (en) | Distribution system |