JP2008146119A - Sensor information processing server and sensor information processing system - Google Patents

Sensor information processing server and sensor information processing system Download PDF

Info

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
Application number
JP2006328937A
Other languages
Japanese (ja)
Inventor
Masahiro Yoshizawa
政洋 吉澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006328937A priority Critical patent/JP2008146119A/en
Publication of JP2008146119A publication Critical patent/JP2008146119A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To switch a plurality of data management methods from one to another without correcting the program of a sensor information processing server itself. <P>SOLUTION: The sensor information processing server 3 introduces middleware that conceals the difference between the operation of a common database and the operation of a distributed database which uses a DHT (Distributed Hash Table) or the like. The middleware compares data attributes previously imparted to data with a data base policy common to a system, and dynamically determines a method of saving each data (common database or distributed database). A program that is likely to use both the common database and the distributed database such as that of the sensor information processing server operates the database by using an API (Application Program Interface) provided by middleware. A programmer embeds data attributes of each data either in instructions (SQL sentences or the like) to the API or in a setting file outside the program. An administrator who operates the system creates a database policy that describes the handling of each data attribute. <P>COPYRIGHT: (C)2008,JPO&INPIT

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 Document 2 is an existing research that realizes a decentralized and ad hoc presence service.

M. Day et al., A Model for Presence and Instant Messaging, RFC2778, February 2000.M. Day et al., A Model for Presence and Instant Messaging, RFC2778, February 2000. K. Singh and H. Schulzrinne. Peer-to-peer internet telephony using SIP. In Proc. NOSSDOV 2005 (2005).K. Singh and H. Schulzrinne. Peer-to-peer internet telephony using SIP. In Proc. NOSSDOV 2005 (2005).

複数の通信端末、通信手段の使い分けを支援するためには、ユーザの手入力に頼らず、精度の高いユーザ状態を取得することが必要になる。そこで、ユーザに関する情報を各種センサから自動的に取得し、それらのセンサ情報からユーザの状況を推測して、通信アプリケーションを制御するサーバ(以下、センサ情報処理サーバ)が検討されている。   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 sensor information distributor 2 is a server device that collects and redistributes data obtained from various sensor groups such as a temperature sensor and a pressure sensor. The sensor information distributor 2 transmits the data obtained from the sensor to the sensor information processing server 3. The sensor information processing server 3 is a server device, and includes a scenario that describes processing contents such as how application control is performed when sensor information changes. When receiving the sensor information, the sensor information processing server 3 processes the past sensor information and the current sensor information based on this scenario, and controls the application according to the result. In this example, a control message for requesting update of user presence information and call control between users is transmitted to the SIP server 4.

このような制御メッセージを受信したSIPサーバ4は、SIP User Agent(以下、SIP UA)5に対してプレゼンス情報や呼制御メッセージを送信する。センサ情報処理サーバ3が制御するアプリケーションサーバは、この例(すなわちSIPサーバ)に限られるものではない。   The SIP server 4 that has received such a control message transmits presence information and a call control message to the SIP User Agent (hereinafter, SIP UA) 5. The application server controlled by the sensor information processing server 3 is not limited to this example (ie, SIP server).

今後、ユーザが携帯するセンサや、ユーザの周囲に配置されるセンサが増えるに従って、センサ情報処理サーバの処理量は増加する。そのため、将来的にはセンサ情報処理サーバの負荷分散が必要になる。   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 sensor information distributor 2 transmits the sensor information obtained from the sensor to the load balancer 7. The load balancer 7 monitors the load of n sensor information processing servers 3 (n is an integer equal to or greater than 1), and transfers the sensor information to the sensor information processing server 3 with a low load. When the sensor information processing server 3 receives the sensor information, the sensor information processing server 3 reads past sensor information from the common database server 6 and writes the current sensor information to the common database server 6. Then, the past sensor information and the current sensor information are processed based on the scenario, and the application is controlled according to the result. In this example, a control message is transmitted to the SIP server 4. The operations of the SIP server 4 and the SIP UA 5 are the same as in the example of FIG.

一般的な方法でセンサ情報処理サーバの負荷分散を行う場合、センサ情報処理サーバがセンサ情報を受信するたびに、共通データベースへの読み書きが発生する。従って、共通データベースがシステム全体のボトルネックになる。また、ロードバランサと共通データベースがシステムの単一障害点(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, sensor information distributor 2, sensor information processing server 3, and SIP server 4 are connected to each other via a physical communication line 9. The communication network 1-2, the SIP server 4, and the SIP UA 5 are connected to each other via a physical communication line 9. In FIG. 3, the communication networks 1-1 and 1-2 are separated for ease of viewing, but both may be the same communication network.

センサ情報配布元2は、温度センサや圧力センサなどの各種センサ群から得られるデータを収集し、再配布するサーバ機器である。センサ情報配布元2は、センサから得られたデータと、そのデータを生成したセンサの識別子(以下、センサID)の組をセンサ情報処理サーバ3へ送信する。以下では、センサIDとデータの組をまとめてセンサ情報と呼ぶ。   The sensor information distributor 2 is a server device that collects and redistributes data obtained from various sensor groups such as a temperature sensor and a pressure sensor. The sensor information distributor 2 transmits a set of data obtained from the sensor and an identifier (hereinafter referred to as sensor ID) of the sensor that generated the data to the sensor information processing server 3. Below, a set of sensor ID and data is collectively referred to as sensor information.

本実施例でセンサ情報配布元2が扱うセンサ群は、Zigbee等の短距離無線通信をサポートし、近くにある基地局のID(以下、基地局ID)をセンサ情報配布元2に提供するセンサ群であるとする。この基地局IDは、各センサおよびその所有者の位置を推測する手がかりとして利用できるデータである。また、各センサはその他のセンサ(温度センサや照度センサなど)も同時に備え、それらのセンサから得たデータを基地局IDと共に提供することも可能である。温度センサは所有者の居る場所の温度を、照度センサは所有者の居る場所の明るさを推測する手がかりとして利用できるデータである。   The sensor group handled by the sensor information distributor 2 in this embodiment supports short-range wireless communication such as Zigbee and provides the sensor information distributor 2 with the ID of a nearby base station (hereinafter referred to as base station ID). Suppose it is a group. This base station ID is data that can be used as a clue to guess the position of each sensor and its owner. Each sensor also includes other sensors (such as a temperature sensor and an illuminance sensor) at the same time, and data obtained from these sensors can be provided together with the base station ID. The temperature sensor is data that can be used as a clue to estimate the temperature of the place where the owner is, and the illuminance sensor is the clue to estimate the brightness of the place where the owner is.

センサ情報配布元2がセンサ群からデータを受け取ると、センサ情報配布元2はそのセンサ情報をセンサ情報処理サーバ3へ送信する。センサ情報の例を図22に示す。この例ではセンサ情報をXML形式で表現している。node要素はデータを生成したセンサに関する情報を格納する要素である。node要素の中のid要素は、センサIDを格納している。そして、parameters要素はそのセンサが生成した1つ以上のデータを格納する要素である。parameters要素の中のparameter要素は、各データを表す。図22の例は、base station IDという名前のデータ(すなわち基地局ID)が0001であることを示している。   When the sensor information distributor 2 receives data from the sensor group, the sensor information distributor 2 transmits the sensor information to the sensor information processing server 3. An example of sensor information is shown in FIG. In this example, sensor information is expressed in XML format. The node element is an element that stores information on the sensor that generated the data. The id element in the node element stores the sensor ID. The parameters element is an element for storing one or more data generated by the sensor. The parameter element in the parameters element represents each data. The example of FIG. 22 indicates that the data named base station ID (that is, the base station ID) is 0001.

センサ情報処理サーバ3はサーバ機器であり、センサ情報がどのように変化したらどのようなアプリケーション制御を行うか、という処理内容を記述したシナリオを備えている。センサ情報処理サーバ3は、センサ情報を受信すると、このシナリオに基づいて過去のセンサ情報と現在のセンサ情報を処理し、その結果に応じてアプリケーションを制御する。このとき、過去と現在のセンサ情報を比較することで、センサ情報に変化が無い場合は処理を省略して負荷を軽減できる。   The sensor information processing server 3 is a server device, and includes a scenario that describes processing contents such as how application control is performed when sensor information changes. When receiving the sensor information, the sensor information processing server 3 processes the past sensor information and the current sensor information based on this scenario, and controls the application according to the result. At this time, by comparing the past and current sensor information, if there is no change in the sensor information, the processing can be omitted to reduce the load.

本実施例では、センサ情報処理サーバ3はSIPサーバ4に対して、ユーザのプレゼンス情報の更新や、ユーザ間の呼制御を要求する制御メッセージを送信する。これにより、複数の通信端末、通信手段の使い分けを支援することが可能になる。例えば、あるユーザに連絡を取るために最も隣接した通信端末を、そのユーザの友人に公開することができる。   In the present embodiment, the sensor information processing server 3 transmits a control message for requesting update of user presence information and call control between users to the SIP server 4. This makes it possible to support the proper use of a plurality of communication terminals and communication means. For example, the closest communication terminal for contacting a user can be disclosed to the user's friend.

センサ情報処理サーバ3が制御する対象は、本実施例のSIPサーバに限られるものではなく、Webサーバや会議サーバなどを制御することも可能である。例えば、Webサーバを制御することでユーザの位置や状況に応じたコンテンツの提供、会議サーバを制御することでユーザの状況に応じた会議の開始が可能になる。   The target controlled by the sensor information processing server 3 is not limited to the SIP server of this embodiment, and it is also possible to control a Web server, a conference server, and the like. For example, it is possible to provide content according to the user's position and situation by controlling the Web server and to start a meeting according to the user's situation by controlling the conference server.

SIPサーバ4はサーバ機器であり、m台のSIP UA5(mは1以上の整数)を管理し、SIP UA5との間でSIPメッセージを送受信する機能を持つ。SIPサーバ4は、SIPメッセージを通して、音声通話などの通信セッション制御や、プレゼンス情報の更新や通知などを行う。また、SIPサーバ4は、センサ情報処理サーバ3などからの制御メッセージを受信する機能を備える。SIP UA5は、音声通話やプレゼンス情報の表示などの機能を備えた端末である。これらは、PCや電話のような固定端末、または携帯電話やPDA(Personal Digital Assistant)のような移動端末である。   The SIP server 4 is a server device and has a function of managing m SIP UAs 5 (m is an integer of 1 or more) and transmitting / receiving SIP messages to / from the SIP UA 5. The SIP server 4 performs communication session control such as voice call, update of presence information, notification, and the like through the SIP message. Further, the SIP server 4 has a function of receiving a control message from the sensor information processing server 3 or the like. The SIP UA 5 is a terminal having functions such as a voice call and display of presence information. These are fixed terminals such as PCs and telephones, or mobile terminals such as mobile phones and PDAs (Personal Digital Assistants).

図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 information processing server 3. This internal structure is common to all of the sensor information processing servers 3-1 to 3-n. The sensor information processing server 3 transmits and receives packets through the IF 31. Each program of the sensor information processing server 3 is stored in the memory 33, and the CPU 32 reads and executes them through the data path 34 during operation. The dotted line in the figure shows the main flow of sensor information processing excluding database operations and the like.

メモリ33はセンサ情報処理プログラム331、データ管理プログラム332、データベース/DHTミドルウェア333、データベースミドルウェア334、DHTミドルウェア335、ミラーリングプログラム336、データベースプログラム337を格納する。   The memory 33 stores a sensor information processing program 331, a data management program 332, a database / DHT middleware 333, a database middleware 334, a DHT middleware 335, a mirroring program 336, and a database program 337.

センサ情報処理プログラム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 scenario part 3312, and an application control part 3313.

センサID解決部3311は、センサ情報配布元2からセンサ情報を受信する。そして、センサ情報に含まれるセンサIDを、制御対象のアプリケーションがユーザを識別するために使う識別子(以下、ユーザID)に変換する。本実施例では制御対象のアプリケーションがSIPであるため、ユーザIDとはSIP URIのことである。センサID解決部3311は、データベースプログラムまたはDHTミドルウェアに格納されているセンサIDデータを元に、この変換を行う。   The sensor ID resolution unit 3311 receives sensor information from the sensor information distributor 2. Then, the sensor ID included in the sensor information is converted into an identifier (hereinafter referred to as a user ID) used by the application to be controlled to identify the user. In this embodiment, since the application to be controlled is SIP, the user ID is a SIP URI. The sensor ID resolution unit 3311 performs this conversion based on the sensor ID data stored in the database program or DHT middleware.

センサ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 column 1002 represents a sensor ID.
The scenario part 3312 is a program in which the processing contents of what kind of application control is performed when the sensor information changes are described. The received sensor information is compared with past sensor information, and application control is requested to the application control unit 3313 according to the change.

本実施例では、シナリオ部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 scenario unit 3312 updates the presence information indicating the position of the user in accordance with the base station ID included in the sensor information. First, the scenario unit 3312 reads the history of sensor information from a database program or DHT middleware, and confirms whether the base station ID of the user has changed. If the base station ID has changed, the new base station ID is stored in the database program or DHT middleware. Then, the scenario setting (in this example, the position represented by the new base station ID) is read from the database program or DHT middleware, and the application control unit 3313 is requested to update presence information. Thereby, automatic update of the presence information is realized.
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, column 2001 represents a user ID, column 2002 represents a sensor ID, column 2003 represents a base station ID, and column 2004 represents a data update time.

シナリオ設定とは、シナリオの動作を調整するためのパラメータ(この例では、基地局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 column 3001 represents a base station ID, and a column 3002 represents a character string representing the position. By storing the scenario settings as a table, the administrator can adjust the operation of the scenario without modifying the program of the scenario unit 3312.

アプリケーション制御部3313は、シナリオ部の要求に応じて、各種アプリケーションサーバに対して制御メッセージを送信する。本実施例では、アプリケーションサーバの一種であるSIPサーバ4に対して、ユーザのプレゼンス情報の更新や、ユーザ間の呼制御を要求する制御メッセージを送信する。   The application control unit 3313 transmits a control message to various application servers in response to a request from the scenario unit. In this embodiment, a control message requesting update of user presence information and call control between users is transmitted to the SIP server 4 which is a kind of application server.

データ管理プログラム332は、管理者の操作に応じて、センサ情報処理に関するデータを操作する管理用プログラムである。データ管理プログラム332は、データベース/DHTミドルウェア333を通して、データベースプログラムまたはDHTミドルウェアに格納されているデータを操作する。データの管理に共通データベースを利用しない場合、通常ならば、管理者は各センサ情報処理サーバ3上のデータを1台1台操作する必要がある。しかし、このデータ管理プログラム332を利用することで、管理者は1つのセンサ情報処理サーバ3から全センサ情報処理サーバ3上のデータを操作することが可能になる。   The data management program 332 is a management program for manipulating data related to sensor information processing in accordance with the operation of the administrator. The data management program 332 operates the data stored in the database program or DHT middleware through the database / DHT middleware 333. When the common database is not used for data management, the administrator normally needs to operate the data on each sensor information processing server 3 one by one. However, by using this data management program 332, the administrator can operate data on all sensor information processing servers 3 from one sensor information processing server 3.

データベース/DHTミドルウェア333は、複数のデータ管理方法(すなわちデータベースミドルウェア334、DHTミドルウェア335、ミラーリングプログラム336)の違いを隠蔽するプログラムである。センサ情報処理プログラム331を修正せずにデータ管理方法を切り替えられるようにするためには、センサ情報処理プログラム331に対してデータ管理方法の違いを隠蔽する必要がある。そのため、データベース/DHTミドルウェア333は、全てのデータ管理方法に共通のAPI(Application Program Interface)を備えている。センサ情報処理プログラム331とデータ管理プログラム332は、このAPIを利用することで、データベースプログラムまたはDHTミドルウェアに格納されているデータを操作する。   The database / DHT middleware 333 is a program that conceals the difference between a plurality of data management methods (that is, the database middleware 334, the DHT middleware 335, and the mirroring program 336). In order to be able to switch the data management method without modifying the sensor information processing program 331, it is necessary to conceal the difference in the data management method from the sensor information processing program 331. Therefore, the database / DHT middleware 333 includes an API (Application Program Interface) common to all data management methods. The sensor information processing program 331 and the data management program 332 operate data stored in the database program or the DHT middleware by using this API.

データベース/DHTミドルウェア333は、このミドルウェアを通して操作されるデータのデータ属性を管理している。データ属性とは、このミドルウェアを利用するプログラマが、データの一部または全体に付与する属性のことである。属性とは、そのデータの意味を表す文字列である。1つのデータに複数のデータ属性を付与してもよい。データ属性の例を図17に示す。この例ではデータ属性をテーブルとして保存しており、列4001はデータの名前、列4002は属性が付与されている対象、列4003は属性が付与されている対象の名前、列4004は付与されている属性を表す。例えば、行4011は、センサ情報履歴2000のユーザID2001に、「ユーザID」という名前の属性が付与されていることを示している。また、属性がデータ全体に付与されている場合は、データ名4001と対象の名前4003は同じになる。そのため、行4013のような例では対象の名前4003を省略している。   The database / DHT middleware 333 manages data attributes of data operated through this middleware. The data attribute is an attribute that is given to a part or the whole of data by a programmer using this middleware. An attribute is a character string that represents the meaning of the data. A plurality of data attributes may be assigned to one data. An example of data attributes is shown in FIG. In this example, data attributes are stored as a table, column 4001 is the name of the data, column 4002 is the object to which the attribute is assigned, column 4003 is the name of the object to which the attribute is assigned, and column 4004 is assigned. Represents an attribute. For example, a row 4011 indicates that an attribute named “user ID” is given to the user ID 2001 of the sensor information history 2000. When the attribute is given to the entire data, the data name 4001 and the target name 4003 are the same. Therefore, the target name 4003 is omitted in the example like the row 4013.

データ全体に付与されるデータ属性は、そのデータが特別な扱いをされる可能性があることを示す。つまり、特別な扱いをされる可能性があるデータに対して、プログラマが予め付与する。例えば、ユーザの個人情報に関するデータは厳重に管理される必要があるため、特別に共通データベースで管理される可能性がある。そのため、ユーザの個人情報に関するデータには予め「個人情報」というデータ属性を付与しておく。また、サーバが頻繁に読み込む設定はできるだけサーバの近くに配置すべきであるため、特別にミラーリングで管理される可能性がある。そのため、サーバが頻繁に読み込む設定には予め「サーバ設定」というデータ属性を付与しておく。このようにデータ属性を付与したデータの扱いは、管理者が後述するデータベースポリシを変更することで、後から変更できるようになる。   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 middleware 333 cannot determine which part of data should be used as a key without such information. In the present embodiment, it is assumed that the database / DHT middleware 333 of all the sensor information processing servers 3 has the data attributes shown in FIG.

また、データベース/DHTミドルウェア333は、このミドルウェアが使われているシステム全体で共通のデータベースポリシを管理している。データベースポリシとは、データ属性と、そのデータ属性を持つデータの保存方法を記述したルールのことである。データベースポリシの例を図18に示す。この例ではデータベースポリシをテーブルとして保存しており、列5001はそのデータベースポリシの優先度、列5002はデータ属性の対象、列5003はデータ属性、列5004はデータの保存方法を表す。優先度5001は数値が低いほど優先度が高いものとして扱う。また、優先度が「−」になっているデータベースポリシはデフォルトのデータベースポリシ(以下、デフォルトポリシ)であり、それ以外のどのデータベースポリシにも該当しなかったデータに対して適用される。データベースポリシ5000は、プログラムの外の設定ファイルなどから読み込まれる。データベース/DHTミドルウェア333がデータベースポリシをプログラムの外の設定ファイルから読み込むことで、管理者はデータベース/DHTミドルウェア333のプログラムを修正することなく、データの保存方法を変更できる。   The database / DHT middleware 333 manages a common database policy in the entire system in which the middleware is used. A database policy is a rule that describes a data attribute and a method for storing data having that data attribute. An example of the database policy is shown in FIG. In this example, the database policy is stored as a table, the column 5001 represents the priority of the database policy, the column 5002 represents the object of the data attribute, the column 5003 represents the data attribute, and the column 5004 represents the data storage method. The priority 5001 is handled as a higher priority as the numerical value is lower. A database policy with a priority of “−” is a default database policy (hereinafter, default policy), and is applied to data that does not correspond to any other database policy. The database policy 5000 is read from a setting file outside the program. The database / DHT middleware 333 reads the database policy from the setting file outside the program, so that the administrator can change the data storage method without modifying the database / DHT middleware 333 program.

保存方法5004は、「データベース」「DHT」「ミラーリング」のいずれかである。「データベース」の場合は、データベースミドルウェア334を通してデータの読み書きを行う。「DHT」の場合は、DHTミドルウェア335を通してデータの読み書きを行う。「ミラーリング」の場合は、データベースミドルウェア334を通してデータの読み込みを行い、ミラーリングプログラム336を通してデータの書き込みを行う。例えば、行5011は、「データの一部に「ユーザID」という名前の属性が付与されているデータは、そのデータをキーとしてDHTに保存する」、ということを示している(これ以降の文章では、「Aをキーとして」という記述を「Aのハッシュ値をキーとして」という意味で使用する)。センサ情報処理サーバ3が扱うデータの中では、センサ情報履歴2000がこのデータベースポリシに一致する。従って、センサ情報履歴2000は、ユーザID2001をキーとしてDHTに保存される。   The storage method 5004 is one of “database”, “DHT”, and “mirroring”. In the case of “database”, data is read and written through the database middleware 334. In the case of “DHT”, data is read and written through the DHT middleware 335. In the case of “mirroring”, data is read through the database middleware 334 and data is written through the mirroring program 336. For example, the line 5011 indicates that “data having an attribute named“ user ID ”as a part of data is stored in the DHT using the data as a key” (the text after this) Then, the description “using A as a key” is used to mean “using the hash value of A as a key”). Among the data handled by the sensor information processing server 3, the sensor information history 2000 matches this database policy. Accordingly, the sensor information history 2000 is stored in the DHT using the user ID 2001 as a key.

本実施例では、全てのセンサ情報処理サーバ3のデータベース/DHTミドルウェア333が、図18に示すデータベースポリシを持っているものとする。
行5011は、データ属性が「ユーザID」のデータを含むデータ(すなわちセンサ情報)は、DHTを使って保存するというポリシを示している。データ属性が「ユーザID」のデータを含むデータ(すなわちセンサ情報)は読み書きされる頻度が高い。そのため、センサ情報を各センサ情報処理サーバ3に分散配置することで、データの読み書きが特定のサーバに集中することがなくなり、処理が高速化するという効果がある。
In this embodiment, it is assumed that the database / DHT middleware 333 of all the sensor information processing servers 3 has the database policy shown in FIG.
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 information processing server 3, reading and writing of data is not concentrated on a specific server, and there is an effect that the processing speeds up.

一方、行5012は、他のどのポリシにも該当しなかったデータはミラーリングする、というデフォルトポリシを示している。これにより、DHTで使用できるキーがデータ属性として指定されていないデータについても、センサ情報処理サーバ群に分散配置できる。   On the other hand, a row 5012 shows a default policy that data that does not correspond to any other policy is mirrored. As a result, even data for which keys that can be used in the DHT are not specified as data attributes can be distributed to the sensor information processing server group.

データベース/DHTミドルウェア333が提供するAPIの実装方法は4通りある。これは、データベース/DHTミドルウェア333に対してデータの操作を指示する方法が2通りあり、そしてデータにデータ属性を付与する方法が2通りあるためである。   There are four ways to implement the API provided by the database / DHT middleware 333. This is because there are two methods for instructing the database / DHT middleware 333 to operate the data, and there are two methods for assigning data attributes to the data.

まず、データの操作を指示する方法は、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 middleware 333 according to the present embodiment accepts a database operation language as a method for instructing data operation. Also, data attributes are read from a setting file outside the program.

また、データベース/DHTミドルウェア333は、メッセージ配送機能を持つ。メッセージ配送機能とは、キーとデータ属性を指定してメッセージを送信する機能である。指定されたデータ属性を持つデータの保存方法が「DHT」以外の場合は、そのサーバのメッセージハンドラにメッセージを渡す。保存方法が「DHT」の場合は、DHTミドルウェア335のメッセージ配送機能を用いて指定されたキーに対応するサーバまでメッセージを配送し、そのサーバのメッセージハンドラにメッセージを渡す。本実施例では、シナリオ部3312が、データベース/DHTミドルウェア333に対してメッセージハンドラを登録しているものとする。   The database / DHT middleware 333 has a message delivery function. The message delivery function is a function for transmitting a message by specifying a key and a data attribute. If the data storage method with the specified data attribute is other than “DHT”, a message is passed to the message handler of that server. When the storage method is “DHT”, the message is delivered to the server corresponding to the specified key using the message delivery function of the DHT middleware 335, and the message is passed to the message handler of the server. In this embodiment, it is assumed that the scenario unit 3312 has registered a message handler with the database / DHT middleware 333.

センサ情報処理サーバ3は、このメッセージ配送機能を利用して、ある1人のユーザに関するセンサ情報を1つのセンサ情報処理サーバ3に集約する。これにより、ある1人のユーザに関するセンサ情報を処理する際に、他のサーバと通信する必要がなくなり、処理が高速化する。   The sensor information processing server 3 collects sensor information related to a single user in one sensor information processing server 3 by using this message delivery function. This eliminates the need to communicate with other servers when processing sensor information related to a single user, thereby speeding up the processing.

データベースミドルウェア334は、ローカルのデータベースプログラム337およびリモートのデータベースプログラムを操作するためのプログラムである。ローカルのデータベースプログラム337は、保存方法が「ミラーリング」のデータを保存する際にも使用される。データベースミドルウェア334は、データベースプログラムに接続するために必要な情報(一般にはユーザ名、パスワードなど)を管理する。データベースミドルウェア334は、既存のODBC(Open DataBase Connectivity)ドライバの機能やO/Rマッピングなどの機能を持つ。DHTミドルウェア335は、DHT特有のルーティングテーブルを管理し、このルーティングテーブルに基づいて、メッセージ配送機能とストレージ機能を提供するプログラムである。DHTのルーティングテーブルは、キーと、そのキーに対応するノード(すなわちセンサ情報処理サーバ3)の対応関係を表す。DHTミドルウェア335は、特定のキーに対するメッセージ配送要求を受けると、そのキーに対応するノードをルーティングテーブルから調べ、そのノードに対してメッセージを配送する。ストレージに対するデータ操作要求も、メッセージ配送要求と同様に処理される。また、DHTミドルウェア335は、定期的に他のノードのDHTミドルウェアと制御メッセージを交換する。これにより、ノードが増減しても、ルーティングテーブルはすぐに更新される。   The database middleware 334 is a program for operating a local database program 337 and a remote database program. The local database program 337 is also used when storing data whose storage method is “mirroring”. The database middleware 334 manages information necessary for connecting to a database program (generally, a user name, a password, etc.). The database middleware 334 has functions such as an existing ODBC (Open DataBase Connectivity) driver function and O / R mapping. The DHT middleware 335 is a program that manages a routing table unique to the DHT and provides a message delivery function and a storage function based on the routing table. The DHT routing table represents a correspondence relationship between a key and a node corresponding to the key (that is, the sensor information processing server 3). When the DHT middleware 335 receives a message delivery request for a specific key, the DHT middleware 335 checks a node corresponding to the key from the routing table and delivers the message to the node. Data operation requests to the storage are processed in the same manner as message delivery requests. In addition, the DHT middleware 335 periodically exchanges control messages with the DHT middleware of other nodes. Thereby, even if the number of nodes increases or decreases, the routing table is updated immediately.

本実施例では、全てのセンサ情報処理サーバ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 DHT middleware 335 of all the sensor information processing servers 3.
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 middleware 333 has registered a message handler for the DHT middleware 335.

ストレージ機能とは、キーを指定してデータを操作(参照、追加、削除)する機能である。データの操作命令は、メッセージ配送機能によって、指定されたキーに対応するノードまで配送される。そして、指定されたキーに対応するノードに到着すると、そのノードの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 middleware 335 of that node is manipulated. The sensor information processing server 3 uses this storage function to realize data management without a common database.

DHTミドルウェア335がデータを保存する方法は、リレーショナルデータベース、オンメモリデータベース、ファイル形式など、特に形式を問わない。本実施例では、DHTミドルウェア335のメモリ空間に、テーブルとしてデータが保存されるものとする。   The DHT middleware 335 stores data in any format, such as a relational database, on-memory database, or file format. In this embodiment, it is assumed that data is stored as a table in the memory space of the DHT middleware 335.

ミラーリングプログラム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 database program 337 is an existing database server program.
In this embodiment, it is assumed that the database programs 337 of all the sensor information processing servers 3 hold the values of the sensor ID data table 1000 in FIG. 14 and the scenario setting table 3000 in FIG. In addition, it is assumed that the DHT middleware 335 of the sensor information processing server 3-2 holds the value of the sensor information history 2000 of FIG. 15 (values held by other sensor information processing servers are omitted).

図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 information processing server 3 processes the sensor information transmitted by the sensor information distributor 2. In this example, the sensor information transmitted by the sensor information distributor 2 is assumed to have a sensor ID “00006c0000090003” and a base station ID “0003”.

まず、センサ情報配布元2は、センサ情報処理サーバ3−1のセンサID解決部3311に対してセンサ情報を送信する(S101)。   First, the sensor information distribution source 2 transmits sensor information to the sensor ID resolution unit 3311 of the sensor information processing server 3-1 (S 101).

センサID解決部3311は、データベース/DHTミドルウェア333に対して、センサIDが「00006c0000090003」のセンサIDデータ1000を要求する(S102)。
データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシを決定する。
The sensor ID resolution unit 3311 requests the sensor ID data 1000 having the sensor ID “00006c0000090003” from the database / DHT middleware 333 (S102).
When the database / DHT middleware 333 is requested to access data, the database / DHT middleware 333 determines a database policy to be applied to the data according to the flowchart of FIG.

まず、データベース/DHTミドルウェア333は、データへのアクセス要求から、対象データのデータ名を取得する(S501)。次に、データ名4001が、S501で取得したデータ名に一致するデータ属性を、データ属性テーブル4000から取得する(S502)。この場合、データ名は「センサIDデータ」なので、データベース/DHTミドルウェア333は行4013のデータ属性を取得する。   First, the database / DHT middleware 333 acquires the data name of the target data from the data access request (S501). Next, the data attribute whose data name 4001 matches the data name acquired in S501 is acquired from the data attribute table 4000 (S502). In this case, since the data name is “sensor ID data”, the database / DHT middleware 333 acquires the data attribute of the row 4013.

データ属性が1つ以上あった場合、データベース/DHTミドルウェア333は、データベースポリシテーブル5000から、最も優先度の高いデータベースポリシを取り出す(S503、S504)。この例では、データベース/DHTミドルウェア333は行5011のデータベースポリシを取得する。   If there are one or more data attributes, the database / DHT middleware 333 extracts the database policy with the highest priority from the database policy table 5000 (S503, S504). In this example, the database / DHT middleware 333 acquires the database policy in the row 5011.

データベースポリシを取得できた場合、データベース/DHTミドルウェア333は、S502で取り出した全てのデータ属性を、そのデータベースポリシと比較する(S505、S506)。データ属性の対象4002とデータベースポリシの対象5002が等しく、かつデータ属性の属性4004とデータベースポリシの属性5003が等しいとき、そのデータ属性とデータベースポリシは一致しているとする。   If the database policy can be acquired, the database / DHT middleware 333 compares all the data attributes extracted in S502 with the database policy (S505, S506). When the data attribute target 4002 and the database policy target 5002 are equal, and the data attribute attribute 4004 and the database policy attribute 5003 are equal, it is assumed that the data attribute and the database policy match.

この例では、行4013のデータ属性と、行5011のデータベースポリシは一致していない(S507)。また、次に優先度の高いデータベースポリシが存在しない(S509、S505)。従って、デフォルトポリシ5012が適用される(S510)。つまり、データベース/DHTミドルウェア333は、センサIDデータの保存方法は「ミラーリング」である、と判断する(S103)。このように、データベース/DHTミドルウェア333は優先度に従ってデータベースポリシを決定するため、管理者は複数のデータ属性が付与されたデータの保存方法を適切に設定できる。   In this example, the data attribute of the row 4013 and the database policy of the row 5011 do not match (S507). Further, there is no database policy with the next highest priority (S509, S505). Therefore, the default policy 5012 is applied (S510). That is, the database / DHT middleware 333 determines that the sensor ID data storage method is “mirroring” (S103). As described above, since the database / DHT middleware 333 determines the database policy according to the priority, the administrator can appropriately set the storage method of data to which a plurality of data attributes are assigned.

保存方法が「ミラーリング」のデータは、各センサ情報処理サーバ3のデータベースプログラム337に保存されている。そのため、データベース/DHTミドルウェア333は、データベースミドルウェア334に対して、センサIDが「00006c0000090003」のセンサIDデータ1000を要求する(S104)。データベースミドルウェア334は、この要求をデータベースプログラム337に送信する(S105)。   Data whose storage method is “mirroring” is stored in the database program 337 of each sensor information processing server 3. Therefore, the database / DHT middleware 333 requests the sensor ID data 1000 having the sensor ID “00006c0000090003” from the database middleware 334 (S104). The database middleware 334 transmits this request to the database program 337 (S105).

この要求を受信したデータベースプログラム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 database program 337 that has received this request returns the row 1011 of the sensor ID data table 1000 as a result (S106 to S107). The database / DHT middleware 333 returns this result to the sensor ID resolution unit 3311 (S108). Thereby, the sensor ID resolution unit 3311 can know that the user ID corresponding to the sensor ID “00006c0000090003” is “sip: ando@example.com”. The sensor ID resolution unit 3311 inserts this user ID into the sensor information (S109). An example of sensor information with the user ID inserted is shown in FIG. In FIG. 25, a user element is inserted in the sensor information of FIG. The user element is an element for storing user information corresponding to the sensor represented by the sensor information. The id element in the user element stores a user ID.

次に、センサID解決部3311は、データベース/DHTミドルウェア333に対して、センサ情報を含むメッセージの送信を要求する(S110)。このとき、メッセージの送信に使うキーとしてS108で取得したユーザID(すなわち「sip:ando@example.com」)を指定し、データ属性として「ユーザID」を指定する。   Next, the sensor ID resolution unit 3311 requests the database / DHT middleware 333 to transmit a message including sensor information (S110). At this time, the user ID (ie, “sip: ando@example.com”) acquired in S108 is designated as a key used for message transmission, and “user ID” is designated as a data attribute.

データベース/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 middleware 333 is requested to send a message, the database / DHT middleware 333 determines the destination of the message according to the flowchart of FIG. First, the database / DHT middleware 333 extracts the database policy with the highest priority from the database policy table 5000 (S610). In this example, the database / DHT middleware 333 acquires the database policy in the row 5011. If the database policy can be acquired, the database / DHT middleware 333 checks whether the storage method of the database policy is “DHT” (S603). In this example, since the storage method of the row 5011 is “DHT”, the database / DHT middleware 333 next determines whether the data attribute of the database policy matches the given data attribute (here, “user ID”). (S604) Since the data attribute of the row 5011 is “user ID”, the database / DHT middleware 333 determines that the message destination is “DHT middleware” (S605).

このように、データベース/DHTミドルウェア333は、メッセージの送信先を判断する際にもデータ属性とデータベースポリシを利用する。これにより、データベースポリシを変更してデータの保存方法が「DHT」から「データベース」に変わったとしても、センサ情報処理サーバ3間でメッセージを送受信するプログラムを修正する必要はない。   As described above, the database / DHT middleware 333 also uses the data attribute and the database policy when determining the transmission destination of the message. Thereby, even if the database policy is changed and the data storage method is changed from “DHT” to “database”, it is not necessary to modify the program for transmitting and receiving messages between the sensor information processing servers 3.

データベース/DHTミドルウェア333は、DHTミドルウェア333に対して、センサ情報を含むメッセージの送信を要求する(S112)。このとき、センサ情報の送信に使うキーとして、センサID解決部3311が指定したキーを指定する。   The database / DHT middleware 333 requests the DHT middleware 333 to transmit a message including sensor information (S112). At this time, a key designated by the sensor ID resolution unit 3311 is designated as a key used for transmission of sensor information.

DHTミドルウェア333は、ルーティングテーブルを参照して、センサ情報を含むメッセージの送信先を決定する(S113)。本実施例では、キー「sip:ando@example.com」に対応するノードはセンサ情報処理サーバ3−2である。従って、DHTミドルウェア333は、センサ情報処理サーバ3−2へ、センサ情報を含むメッセージを送信する(S114)。   The DHT middleware 333 refers to the routing table and determines the transmission destination of the message including the sensor information (S113). In this embodiment, the node corresponding to the key “sip: ando@example.com” is the sensor information processing server 3-2. Accordingly, the DHT middleware 333 transmits a message including sensor information to the sensor information processing server 3-2 (S114).

センサ情報処理サーバ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 DHT middleware 333 of the sensor information processing server 3-2 refers to the routing table and determines the transmission destination of this message (S115). If the node corresponding to the key is another server, the message is transferred to that server again. However, in this embodiment, the server in charge of the key “sip: ando@example.com” is the sensor information processing server 3-2. Therefore, the DHT middleware 335 notifies the database / DHT middleware 333 that the message has been received (S116). The database / DHT middleware 333 passes this message to the message handler. As described above, since the scenario unit 3312 has registered a message handler in advance, the scenario unit 3312 receives a message including this sensor information through the message handler (S117).

センサ情報を受信すると、シナリオ部3312は、そのセンサ情報に含まれるユーザのセンサ情報履歴をデータベース/DHTミドルウェア333に要求する(S118)。つまり、ユーザIDが「sip:ando@example.com」のセンサ情報履歴を要求する。   When the sensor information is received, the scenario unit 3312 requests the database / DHT middleware 333 for the sensor information history of the user included in the sensor information (S118). That is, the sensor information history with the user ID “sip: ando@example.com” is requested.

データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシ(すなわちデータの保存方法)を決定する。   When access to the data is requested, the database / DHT middleware 333 determines a database policy (that is, a data storage method) to be applied to the data according to the flowchart of FIG.

まず、データベース/DHTミドルウェア333は、データへのアクセス要求から、対象データのデータ名を取得する(S501)。次に、データ名4001が、S501で取得したデータ名に一致するデータ属性を、データ属性テーブル4000から取得する(S502)。この場合、データ名は「センサ情報履歴」なので、データベース/DHTミドルウェア333は行4011のデータ属性を取得する。   First, the database / DHT middleware 333 acquires the data name of the target data from the data access request (S501). Next, the data attribute whose data name 4001 matches the data name acquired in S501 is acquired from the data attribute table 4000 (S502). In this case, since the data name is “sensor information history”, the database / DHT middleware 333 acquires the data attribute of the row 4011.

データ属性が1つ以上あった場合、データベース/DHTミドルウェア333は、データベースポリシテーブル5000から、最も優先度の高いデータベースポリシを取り出す(S503、S504)。この例では、データベース/DHTミドルウェア333は行5011のデータベースポリシを取得する。   If there is one or more data attributes, the database / DHT middleware 333 extracts the database policy with the highest priority from the database policy table 5000 (S503, S504). In this example, the database / DHT middleware 333 acquires the database policy in the row 5011.

データベースポリシを取得できた場合、データベース/DHTミドルウェア333は、S502で取り出した全てのデータ属性を、S504で取り出した1つのデータベースポリシと比較する(S505、S506)。   When the database policy can be acquired, the database / DHT middleware 333 compares all the data attributes extracted in S502 with one database policy extracted in S504 (S505, S506).

この例では、行4011のデータ属性と、行5011のデータベースポリシは一致している。従って、その行5011のデータベースポリシが適用される(S507、S508)。つまり、データベース/DHTミドルウェア333は、センサ情報履歴の保存方法は「DHT」である、と判断する(S119)。また、データベースポリシ5011は、DHTのキーとして、データ属性「ユーザID」が付与されたデータを使うよう指示している。   In this example, the data attribute in the row 4011 matches the database policy in the row 5011. Therefore, the database policy in the row 5011 is applied (S507, S508). That is, the database / DHT middleware 333 determines that the sensor information history storage method is “DHT” (S119). Further, the database policy 5011 instructs to use data with the data attribute “user ID” as a DHT key.

保存方法が「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 middleware 335 of each sensor information processing server 3. Therefore, the database / DHT middleware 333 requests the sensor information history 2000 with the user ID “sip: ando@example.com” from the DHT middleware 335 (S120). At this time, the user ID “sip: ando@example.com” is designated as the DHT key.

この要求を受信したDHTミドルウェア335は、ルーティングテーブルを参照して、どのノード上のデータを検索するか決定する(S121)。本実施例では、キー「sip:ando@example.com」に対応するノードはセンサ情報処理サーバ3−2である。従って、DHTミドルウェア335は、そのミドルウェア自身が保存しているセンサ情報履歴2000の行2011を結果として返す(S122)。データベース/DHTミドルウェア333は、この結果をシナリオ部3312に返す(S123)。これにより、シナリオ部3312は、このユーザの基地局IDが「0001」から「0003」に変化したことを知ることができる。   The DHT middleware 335 that has received this request refers to the routing table and determines which node to search for data (S121). In this embodiment, the node corresponding to the key “sip: ando@example.com” is the sensor information processing server 3-2. Accordingly, the DHT middleware 335 returns the row 2011 of the sensor information history 2000 stored in the middleware itself as a result (S122). The database / DHT middleware 333 returns this result to the scenario unit 3312 (S123). Accordingly, the scenario unit 3312 can know that the base station ID of this user has changed from “0001” to “0003”.

センサ情報が変化すると、シナリオ部3312は、その新しいセンサ情報をデータベースプログラムまたはDHTミドルウェアに保存する。そのために、シナリオ部3312は、データベース/DHTミドルウェアにセンサ情報履歴の更新を要求する(S124)。
データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシ(すなわちデータの保存方法)を決定する。S119と同様に、データベース/DHTミドルウェア333は、センサ情報履歴の保存方法は「DHT」である、と判断する(S125)。また、データベースポリシ5011は、DHTのキーとして、データ属性「ユーザID」が付与されたデータを使うよう指示している。
When the sensor information changes, the scenario unit 3312 stores the new sensor information in a database program or DHT middleware. For this purpose, the scenario unit 3312 requests the database / DHT middleware to update the sensor information history (S124).
When access to the data is requested, the database / DHT middleware 333 determines a database policy (that is, a data storage method) to be applied to the data according to the flowchart of FIG. Similar to S119, the database / DHT middleware 333 determines that the storage method of the sensor information history is “DHT” (S125). Further, the database policy 5011 instructs to use data with the data attribute “user ID” as a DHT key.

保存方法が「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 middleware 335 of each sensor information processing server 3. Therefore, the database / DHT middleware 333 requests the DHT middleware 335 to update the sensor information history 2000 with the user ID “sip: ando@example.com” (S126). At this time, the user ID “sip: ando@example.com” is designated as the DHT key.

この要求を受信した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 DHT middleware 335 that has received this request refers to the routing table and determines which node data to update (S127). In this embodiment, the node corresponding to the key “sip: ando@example.com” is the sensor information processing server 3-2. Accordingly, the DHT middleware 335 updates the row 2011 of the sensor information history 2000 stored by the middleware itself with a new value (base station ID 2003 is “0003” and update time 2004 is the date and time at that time). Then, the database / DHT middleware 333 is notified of the successful update (S128). The database / DHT middleware 333 returns this result to the scenario unit 3312 (S129). Thereby, the scenario part 3312 can know that the update of the sensor information history was successful. If the update of the sensor information history fails, an error is notified to the scenario unit 3312 in the same manner.

センサ情報が変化すると、シナリオ部3312は設定情報を読み込んでアプリケーションを制御する。本実施例では、センサ情報に含まれる基地局IDに応じて、そのユーザの位置を表すプレゼンス情報を更新する。各基地局IDに対応する位置は、データベースプログラムまたはDHTミドルウェアから取得する。   When the sensor information changes, the scenario unit 3312 reads the setting information and controls the application. In this embodiment, presence information indicating the position of the user is updated according to the base station ID included in the sensor information. The position corresponding to each base station ID is acquired from a database program or DHT middleware.

シナリオ部3312は、基地局IDが「0003」のシナリオ設定3000をデータベース/DHTミドルウェアに要求する(S130)。   The scenario unit 3312 requests the database / DHT middleware for the scenario setting 3000 with the base station ID “0003” (S130).

データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシ(すなわちデータの保存方法)を決定する。   When access to the data is requested, the database / DHT middleware 333 determines a database policy (that is, a data storage method) to be applied to the data according to the flowchart of FIG.

まず、データベース/DHTミドルウェア333は、データへのアクセス要求から、対象データのデータ名を取得する(S501)。次に、データ名4001が、S501で取得したデータ名に一致するデータ属性を、データ属性テーブル4000から取得する(S502)。この場合、データ名は「シナリオ設定」なので、データベース/DHTミドルウェア333は行4012のデータ属性を取得する。   First, the database / DHT middleware 333 acquires the data name of the target data from the data access request (S501). Next, the data attribute whose data name 4001 matches the data name acquired in S501 is acquired from the data attribute table 4000 (S502). In this case, since the data name is “scenario setting”, the database / DHT middleware 333 acquires the data attribute of the row 4012.

データ属性が1つ以上あった場合、データベース/DHTミドルウェア333は、データベースポリシテーブル5000から、最も優先度の高いデータベースポリシを取り出す(S503、S504)。この例では、データベース/DHTミドルウェア333は行5011のデータベースポリシを取得する。   If there are one or more data attributes, the database / DHT middleware 333 extracts the database policy with the highest priority from the database policy table 5000 (S503, S504). In this example, the database / DHT middleware 333 acquires the database policy in the row 5011.

データベースポリシを取得できた場合、データベース/DHTミドルウェア333は、S502で取り出した全てのデータ属性を、そのデータベースポリシと比較する(S505、S506)。   If the database policy can be acquired, the database / DHT middleware 333 compares all the data attributes extracted in S502 with the database policy (S505, S506).

この例では、行4012のデータ属性と、行5011のデータベースポリシは一致していない(S507)。また、次に優先度の高いデータベースポリシが存在しない。従って、デフォルトポリシ5012が適用される(S509、S505、S510)。つまり、データベース/DHTミドルウェア333は、シナリオ設定の保存方法は「ミラーリング」である、と判断する(S131)。これにより、サーバが頻繁に読み込む設定はサーバ上に配置され、高速に参照される。   In this example, the data attribute of the row 4012 and the database policy of the row 5011 do not match (S507). Also, there is no database policy with the next highest priority. Therefore, the default policy 5012 is applied (S509, S505, S510). That is, the database / DHT middleware 333 determines that the scenario setting storage method is “mirroring” (S131). As a result, settings frequently read by the server are arranged on the server and referred to at high speed.

保存方法が「ミラーリング」のデータは、各センサ情報処理サーバ3のデータベースプログラム337に保存されている。そのため、データベース/DHTミドルウェア333は、データベースミドルウェア334に対して、基地局IDが「0003」のシナリオ設定3000を要求する(S132)。データベースミドルウェア334は、この要求をデータベースプログラム337に送信する(S133)。   Data whose storage method is “mirroring” is stored in the database program 337 of each sensor information processing server 3. Therefore, the database / DHT middleware 333 requests the scenario setting 3000 with the base station ID “0003” from the database middleware 334 (S132). The database middleware 334 transmits this request to the database program 337 (S133).

この要求を受信したデータベースプログラム337は、シナリオ設定テーブル3000の行3013を結果として返す(S134)。データベースミドルウェア334は、この結果をデータベース/DHTミドルウェア333に返す(S135)。データベース/DHTミドルウェア333は、この結果をシナリオ部3312に返す(S136)。これにより、シナリオ部3312は、基地局ID「0003」に対応する位置が「会議室2」であると知ることができる。   The database program 337 that has received this request returns the row 3013 of the scenario setting table 3000 as a result (S134). The database middleware 334 returns this result to the database / DHT middleware 333 (S135). The database / DHT middleware 333 returns this result to the scenario unit 3312 (S136). Accordingly, the scenario unit 3312 can know that the position corresponding to the base station ID “0003” is “conference room 2”.

シナリオ部3312は、ユーザID「sip:ando@example.com」のユーザの位置を「会議室2」に更新することを、アプリケーション制御部3313に要求する(S137)。アプリケーション制御部3313は、SIPサーバ4に対して、プレゼンス情報を更新するための制御メッセージを送信する(S138)。
以上が、センサ情報処理の一連の流れである。
The scenario unit 3312 requests the application control unit 3313 to update the position of the user with the user ID “sip: ando@example.com” to “conference room 2” (S137). The application control unit 3313 transmits a control message for updating the presence information to the SIP server 4 (S138).
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 data management program 332 of the sensor information processing server 3-1 to update the scenario setting.
First, when the administrator updates the scenario setting using the data management program 332, the data management program 332 requests the database / DHT middleware 333 to update the scenario setting (S151). In this example, it is assumed that the position of the row 3013 in the scenario setting 3000 is updated from “conference room 2” to “rest room”.

データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシ(すなわちデータの保存方法)を決定する。S131と同様に、データベース/DHTミドルウェア333は、シナリオ設定の保存方法は「ミラーリング」である、と判断する(S152)。   When access to the data is requested, the database / DHT middleware 333 determines a database policy (that is, a data storage method) to be applied to the data according to the flowchart of FIG. Similar to S131, the database / DHT middleware 333 determines that the scenario setting storage method is “mirroring” (S152).

保存方法が「ミラーリング」のデータは、各センサ情報処理サーバ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 database program 337 of each sensor information processing server 3. Therefore, the database / DHT middleware 333 first requests the database middleware 334 to update the scenario setting in order to update the data in the local database program 337 (S153). The database middleware 334 updates the scenario setting managed by the database program 337 and notifies the database / DHT middleware 333 of the successful update (S154 to 156). Thereby, the update of the data in the local database program 337 is completed. If the update of the sensor information history has failed, an error is notified to the data management program 332 and the process is terminated.

次に、リモートのサーバ上のデータベースプログラム337の中のデータを更新するために、ミラーリングプログラム336に対して、シナリオ設定の更新を依頼するための更新メッセージの送信を要求する(S157)。ミラーリングプログラム336は、このプログラムが管理する全てのネットワークアドレスに対して、更新メッセージを送信する(S158)。   Next, in order to update the data in the database program 337 on the remote server, the mirroring program 336 is requested to send an update message for requesting the scenario setting update (S157). The mirroring program 336 transmits an update message to all network addresses managed by this program (S158).

各センサ情報処理サーバのミラーリングプログラム336は、受信した更新メッセージに従い、データベースミドルウェア334に対して、シナリオ設定の更新を要求する(S159)。   The mirroring program 336 of each sensor information processing server requests the database middleware 334 to update the scenario setting according to the received update message (S159).

データベースミドルウェア334はデータベースプログラム337の管理するシナリオ設定を更新し、更新の成功をミラーリングプログラム336に通知する(S160〜162)。これにより、リモートのデータベースプログラム337の中のデータの更新は終了する。各センサ情報処理サーバのミラーリングプログラム336は、データの更新に成功すると、センサ情報処理サーバ3−1のミラーリングプログラム336に対して、成功通知メッセージを送信する(S163)。もしもデータの更新に失敗した場合は、センサ情報処理サーバ3−1のミラーリングプログラム336に対して、エラー通知メッセージを送信する。   The database middleware 334 updates the scenario setting managed by the database program 337 and notifies the mirroring program 336 of the successful update (S160 to 162). Thereby, the update of data in the remote database program 337 is completed. When the mirroring program 336 of each sensor information processing server succeeds in updating the data, it transmits a success notification message to the mirroring program 336 of the sensor information processing server 3-1 (S163). If the data update fails, an error notification message is transmitted to the mirroring program 336 of the sensor information processing server 3-1.

センサ情報処理サーバ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 / DHT middleware 333 can know that both local and remote data have been successfully updated. Finally, the database / DHT middleware 333 notifies the data management program 332 that the scenario setting has been successfully updated (S165).

データの更新を高速化するために、ローカルの更新(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 information processing server 3 is the same as that of the first embodiment (FIG. 5).
However, in this embodiment, it is assumed that the database / DHT middleware 333 of all the sensor information processing servers 3 has the database policy shown in FIG. A row 5013 of this database policy indicates a policy that data including data having a data attribute “user ID” (that is, sensor information) is stored using the DHT. A row 5014 shows a policy that data including data having a data attribute “base station ID” (that is, scenario setting) is stored using the DHT. A row 5015 shows a default policy that data that does not correspond to any other policy is mirrored.

本実施例では、全てのセンサ情報処理サーバ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 DHT middleware 335 of all the sensor information processing servers 3. Similarly, it is assumed that the node corresponding to the key “0003” is the sensor information processing server 3-3.

本実施例では、全てのセンサ情報処理サーバ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 database programs 337 of all the sensor information processing servers 3 hold the values of the sensor ID data table 1000 of FIG. In addition, it is assumed that the DHT middleware 335 of the sensor information processing server 3-2 holds the value of the sensor information history 2000 of FIG. 15 (values held by other sensor information processing servers are omitted). Then, it is assumed that the DHT middleware 335 of the sensor information processing server 3-3 holds the values of the scenario setting table 3000 in FIG. 16 (values held by other sensor information processing servers are omitted).

図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 information processing server 3 processes the sensor information transmitted by the sensor information distributor 2. In this example, the sensor information transmitted by the sensor information distributor 2 is assumed to have a sensor ID “00006c0000090003” and a base station ID “0003”.

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 scenario unit 3312 reads the setting information and controls the application. Accordingly, the scenario unit 3312 requests the database / DHT middleware for the scenario setting 3000 with the base station ID “0003” (S201).

データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシ(すなわちデータの保存方法)を決定する。   When access to the data is requested, the database / DHT middleware 333 determines a database policy (that is, a data storage method) to be applied to the data according to the flowchart of FIG.

まず、データベース/DHTミドルウェア333は、データへのアクセス要求から、対象データのデータ名を取得する(S501)。次に、データ名4001が、S501で取得したデータ名に一致するデータ属性を、データ属性テーブル4000から取得する(S502)。この場合、データ名は「シナリオ設定」なので、データベース/DHTミドルウェア333は行4012のデータ属性を取得する。   First, the database / DHT middleware 333 acquires the data name of the target data from the data access request (S501). Next, the data attribute whose data name 4001 matches the data name acquired in S501 is acquired from the data attribute table 4000 (S502). In this case, since the data name is “scenario setting”, the database / DHT middleware 333 acquires the data attribute of the row 4012.

データ属性が1つ以上あった場合、データベース/DHTミドルウェア333は、データベースポリシテーブル5000から、最も優先度の高いデータベースポリシを取り出す(S503、S504)。この例では、データベース/DHTミドルウェア333は行5013のデータベースポリシを取得する。   If there are one or more data attributes, the database / DHT middleware 333 extracts the database policy with the highest priority from the database policy table 5000 (S503, S504). In this example, the database / DHT middleware 333 acquires the database policy in the row 5013.

データベースポリシを取得できた場合、データベース/DHTミドルウェア333は、S502で取り出した全てのデータ属性を、そのデータベースポリシと比較する(S505、S506)。   If the database policy can be acquired, the database / DHT middleware 333 compares all the data attributes extracted in S502 with the database policy (S505, S506).

この例では、行4012のデータ属性と、行5013のデータベースポリシは一致していない。そこで、データベースポリシテーブル5000から次に優先度の高いデータベースポリシを取り出す(S507、S509)。   In this example, the data attribute of the row 4012 and the database policy of the row 5013 do not match. Therefore, the database policy with the next highest priority is extracted from the database policy table 5000 (S507, S509).

そして、データベース/DHTミドルウェア333は、S502で取り出した全てのデータ属性を、S509で取り出した1つのデータベースポリシと比較する(S505、S506)。この例では、行4012のデータ属性と、行5014のデータベースポリシは一致している。従って、センサ情報履歴に対しては行5014のデータベースポリシを適用する(S507、S508)。つまり、データベース/DHTミドルウェア333は、シナリオ設定の保存方法は「DHT」である、と判断する(S202)。また、データベースポリシ5014は、DHTのキーとして、データ属性「基地局ID」が付与されたデータを使うよう指示している。   Then, the database / DHT middleware 333 compares all the data attributes extracted in S502 with one database policy extracted in S509 (S505, S506). In this example, the data attribute of the row 4012 matches the database policy of the row 5014. Therefore, the database policy in the row 5014 is applied to the sensor information history (S507, S508). That is, the database / DHT middleware 333 determines that the scenario setting storage method is “DHT” (S202). Further, the database policy 5014 instructs to use data with the data attribute “base station ID” as a DHT key.

保存方法が「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 middleware 335 of each sensor information processing server 3. Therefore, the database / DHT middleware 333 requests the scenario setting 3000 having the base station ID “0003” from the DHT middleware 335 (S203). At this time, the base station ID “0003” is designated as the DHT key.

この要求を受信したDHTミドルウェア335は、ルーティングテーブルを参照して、どのノード上のデータを検索するか決定する(S204)。本実施例では、キー「0003」に対応するノードはセンサ情報処理サーバ3−3である。従って、DHTミドルウェア335は、シナリオ設定3000の検索要求メッセージをセンサ情報処理サーバ3−3へ送信する(S205)。このとき、DHTのキーとして基地局ID「0003」を指定する。   The DHT middleware 335 that has received this request refers to the routing table and determines which node to search for data (S204). In this embodiment, the node corresponding to the key “0003” is the sensor information processing server 3-3. Accordingly, the DHT middleware 335 transmits a search request message for scenario setting 3000 to the sensor information processing server 3-3 (S205). At this time, the base station ID “0003” is designated as the DHT key.

センサ情報処理サーバ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 DHT middleware 333 of the sensor information processing server 3-3 receives this message, it refers to the routing table and determines the transmission destination of this message (S206). If the node corresponding to the key is another server, the message is transferred to that server again. However, in this embodiment, the server in charge of the key “sip: ando@example.com” is the sensor information processing server 3-3. Therefore, the DHT middleware 335 returns the row 3013 of the scenario setting 3000 stored by the middleware itself as a result (S207). The DHT middleware 335 of the sensor information processing server 3-2 returns this result to the database / DHT middleware 333 (S208). The database / DHT middleware returns this result to the scenario unit 3312 (S209). Accordingly, the scenario unit 3312 can know that the position corresponding to the base station ID “0003” is “conference room 2”.

シナリオ部3312は、ユーザID「sip:ando@example.com」のユーザの位置を「会議室2」に更新することを、アプリケーション制御部3313に要求する(S210)。アプリケーション制御部3313は、SIPサーバ4に対して、プレゼンス情報を更新するための制御メッセージを送信する(S211)。
以上が、センサ情報処理の一連の流れである。
The scenario unit 3312 requests the application control unit 3313 to update the position of the user with the user ID “sip: ando@example.com” to “conference room 2” (S210). The application control unit 3313 transmits a control message for updating the presence information to the SIP server 4 (S211).
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 data management program 332 of the sensor information processing server 3-1 to update the scenario setting.
First, when the administrator uses the data management program 332 to update the scenario setting, the data management program 332 requests the database / DHT middleware 333 to update the scenario setting (S251). In this example, it is assumed that the position of the row 3013 in the scenario setting 3000 is updated from “conference room 2” to “rest room”.

データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシ(すなわちデータの保存方法)を決定する。S202と同様に、データベース/DHTミドルウェア333は、シナリオ設定の保存方法は「DHT」である、と判断する(S252)。   When access to the data is requested, the database / DHT middleware 333 determines a database policy (that is, a data storage method) to be applied to the data according to the flowchart of FIG. Similar to S202, the database / DHT middleware 333 determines that the scenario setting storage method is “DHT” (S252).

保存方法が「DHT」のデータは、ある特定のセンサ情報処理サーバ3のDHTミドルウェア335に保存されている。そのため、データベース/DHTミドルウェア333は、DHTミドルウェア335に対して、シナリオ設定の更新を要求する(S253)。このとき、DHTのキーとして基地局ID「0003」を指定する。   Data whose storage method is “DHT” is stored in the DHT middleware 335 of a specific sensor information processing server 3. Therefore, the database / DHT middleware 333 requests the DHT middleware 335 to update the scenario setting (S253). At this time, the base station ID “0003” is designated as the DHT key.

この要求を受信したDHTミドルウェア335は、ルーティングテーブルを参照して、どのノード上のデータを検索するか決定する(S254)。本実施例では、キー「0003」に対応するノードはセンサ情報処理サーバ3−3である。従って、DHTミドルウェア335は、シナリオ設定3000の更新メッセージをセンサ情報処理サーバ3−3へ送信する(S255)。このとき、DHTのキーとして基地局ID「0003」を指定する。   The DHT middleware 335 that has received this request refers to the routing table and determines which node to search for data (S254). In this embodiment, the node corresponding to the key “0003” is the sensor information processing server 3-3. Accordingly, the DHT middleware 335 transmits an update message of the scenario setting 3000 to the sensor information processing server 3-3 (S255). At this time, the base station ID “0003” is designated as the DHT key.

センサ情報処理サーバ3−3のDHTミドルウェア333は、このメッセージを受信すると、ルーティングテーブルを参照して、このメッセージの送信先を決定する(S256)。キーに対応するノードが他のサーバの場合は、そのサーバへ再度メッセージを転送する。しかし、本実施例では、キー「0003」を担当するサーバはセンサ情報処理サーバ3−3である。そのため、DHTミドルウェア335は、そのミドルウェア自身が保存しているシナリオ設定3000の行3013を更新する。データの更新に成功すると、センサ情報処理サーバ3−2のDHTミドルウェア335に対して、成功通知メッセージを送信する(S257)。   Upon receiving this message, the DHT middleware 333 of the sensor information processing server 3-3 determines a transmission destination of this message with reference to the routing table (S256). If the node corresponding to the key is another server, the message is transferred to that server again. However, in this embodiment, the server in charge of the key “0003” is the sensor information processing server 3-3. Therefore, the DHT middleware 335 updates the row 3013 of the scenario setting 3000 stored by the middleware itself. If the data update is successful, a success notification message is transmitted to the DHT middleware 335 of the sensor information processing server 3-2 (S257).

センサ情報処理サーバ3−2のDHTミドルウェア335は、この成功通知メッセージを受信すると、更新の成功をデータベース/DHTミドルウェア333に通知する(S258)。そして最後に、データベース/DHTミドルウェア333はシナリオ設定の更新成功をデータ管理プログラム332に通知する(S259)。   Upon receiving this success notification message, the DHT middleware 335 of the sensor information processing server 3-2 notifies the database / DHT middleware 333 of the successful update (S258). Finally, the database / DHT middleware 333 notifies the data management program 332 that the scenario setting has been successfully updated (S259).

以上のようにして、管理者がデータベースポリシの内容を変更するだけで、センサ情報処理プログラムを変更することなく、実施例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 information distribution source 2, the sensor information processing server 3, the SIP server 4, and the SIP UA 5 are the same as those in the first embodiment.

共通データベース6は、データベースプログラムが動作するサーバ機器である。センサ情報処理サーバ3は、それぞれのデータベースミドルウェア337を通して、共通データベース6のデータベースプログラムが管理するデータにアクセスする。   The common database 6 is a server device on which a database program operates. The sensor information processing server 3 accesses data managed by the database program of the common database 6 through each database middleware 337.

通信網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 sensor information distributor 2, the sensor information processing server 3, the SIP server 4, and the common database server 6 are connected to each other via a physical communication line 9. The communication network 1-2, the SIP server 4, and the SIP UA 5 are connected to each other via a physical communication line 9. In FIG. 4, the communication networks 1-1 and 1-2 are separated for ease of viewing, but both may be the same communication network.
The internal structure of the sensor information processing server 3 is the same as that of the first embodiment (FIG. 5).

ただし、本実施例では、全てのセンサ情報処理サーバ3のデータベース/DHTミドルウェア333が、図20に示すデータベースポリシを持っているものとする。このデータベースポリシの行5016は、データ属性が「ユーザID」のデータを含むデータ(すなわちセンサ情報)は、DHTを使って保存するというポリシを示している。行5017は、データ属性が「サーバ設定」のデータ(すなわちセンサIDデータ)は、ミラーリングで保存するというポリシを示している。また、行5018は、他のどのポリシにも該当しなかったデータは共通データベースに保存する、というデフォルトポリシを示している。   However, in this embodiment, it is assumed that the database / DHT middleware 333 of all the sensor information processing servers 3 has the database policy shown in FIG. A row 5016 of this database policy indicates a policy that data including data having a data attribute “user ID” (that is, sensor information) is stored using the DHT. A line 5017 shows a policy that data having a data attribute “server setting” (that is, sensor ID data) is stored by mirroring. A row 5018 shows a default policy that data that does not correspond to any other policy is stored in the common 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 DHT middleware 335 of all the sensor information processing servers 3.

本実施例では、全てのセンサ情報処理サーバ3のデータベースプログラム337が、図14のセンサIDデータテーブル1000の値を保持しているものとする。また、センサ情報処理サーバ3−2のDHTミドルウェア335が、図15のセンサ情報履歴2000の値を保持しているものとする(他のセンサ情報処理サーバが保持している値は省略する)。そして、共通データベースサーバ6が、図16のシナリオ設定テーブル3000の値を保持しているものとする。   In this embodiment, it is assumed that the database programs 337 of all the sensor information processing servers 3 hold the values of the sensor ID data table 1000 of FIG. In addition, it is assumed that the DHT middleware 335 of the sensor information processing server 3-2 holds the value of the sensor information history 2000 of FIG. 15 (values held by other sensor information processing servers are omitted). It is assumed that the common database server 6 holds the values of the scenario setting table 3000 in FIG.

図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 information processing server 3 processes the sensor information transmitted by the sensor information distributor 2. In this example, the sensor information transmitted by the sensor information distributor 2 is assumed to have a sensor ID “00006c0000090003” and a base station ID “0003”.

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 / DHT middleware 333 is requested to access data, the database / DHT middleware 333 determines a database policy to be applied to the data according to the flowchart of FIG.
First, the database / DHT middleware 333 acquires the data name of the target data from the data access request (S501). Next, the data attribute whose data name 4001 matches the data name acquired in S501 is acquired from the data attribute table 4000 (S502). In this case, since the data name is “sensor ID data”, the database / DHT middleware 333 acquires the data attribute of the row 4013.

データ属性が1つ以上あった場合、データベース/DHTミドルウェア333は、データベースポリシテーブル5000から、最も優先度の高いデータベースポリシを取り出す(S503、S504)。この例では、データベース/DHTミドルウェア333は行5016のデータベースポリシを取得する。   If there are one or more data attributes, the database / DHT middleware 333 extracts the database policy with the highest priority from the database policy table 5000 (S503, S504). In this example, the database / DHT middleware 333 acquires the database policy in the row 5016.

データベースポリシを取得できた場合、データベース/DHTミドルウェア333は、S502で取り出した全てのデータ属性を、そのデータベースポリシと比較する(S505、S506)。この例では、行4013のデータ属性と、行5016のデータベースポリシは一致していない。そこで、データベースポリシテーブル5000から次に優先度の高いデータベースポリシを取り出す(S507、S509)。この例では、行5017のデータベースポリシを取得する。   If the database policy can be acquired, the database / DHT middleware 333 compares all the data attributes extracted in S502 with the database policy (S505, S506). In this example, the data attribute of the row 4013 and the database policy of the row 5016 do not match. Therefore, the database policy with the next highest priority is extracted from the database policy table 5000 (S507, S509). In this example, the database policy in the row 5017 is acquired.

そして、データベース/DHTミドルウェア333は、S502で取り出した全てのデータ属性を、S509で取り出した1つのデータベースポリシと比較する(S505、S506)。この例では、行4013のデータ属性と、行5017のデータベースポリシは一致している。従って、センサ情報履歴に対しては行5017のデータベースポリシを適用する(S507、S508)。つまり、データベース/DHTミドルウェア333は、シナリオ設定の保存方法は「DHT」である、と判断する。この結果は、実施例1のS103と同じである。   Then, the database / DHT middleware 333 compares all the data attributes extracted in S502 with one database policy extracted in S509 (S505, S506). In this example, the data attribute in the row 4013 matches the database policy in the row 5017. Therefore, the database policy in the row 5017 is applied to the sensor information history (S507, S508). That is, the database / DHT middleware 333 determines that the scenario setting storage method is “DHT”. This result is the same as S103 of Example 1.

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 scenario unit 3312 reads the setting information and controls the application. Accordingly, the scenario unit 3312 requests the database / DHT middleware for the scenario setting 3000 with the base station ID “0003” (S301).

データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシ(すなわちデータの保存方法)を決定する。
まず、データベース/DHTミドルウェア333は、データへのアクセス要求から、対象データのデータ名を取得する(S501)。次に、データ名4001が、S501で取得したデータ名に一致するデータ属性を、データ属性テーブル4000から取得する(S502)。この場合、データ名は「シナリオ設定」なので、データベース/DHTミドルウェア333は行4012のデータ属性を取得する。
When access to the data is requested, the database / DHT middleware 333 determines a database policy (that is, a data storage method) to be applied to the data according to the flowchart of FIG.
First, the database / DHT middleware 333 acquires the data name of the target data from the data access request (S501). Next, the data attribute whose data name 4001 matches the data name acquired in S501 is acquired from the data attribute table 4000 (S502). In this case, since the data name is “scenario setting”, the database / DHT middleware 333 acquires the data attribute of the row 4012.

データ属性が1つ以上あった場合、データベース/DHTミドルウェア333は、データベースポリシテーブル5000から、最も優先度の高いデータベースポリシを取り出す(S503、S504)。この例では、データベース/DHTミドルウェア333は行5016のデータベースポリシを取得する。   If there are one or more data attributes, the database / DHT middleware 333 extracts the database policy with the highest priority from the database policy table 5000 (S503, S504). In this example, the database / DHT middleware 333 acquires the database policy in the row 5016.

データベースポリシを取得できた場合、データベース/DHTミドルウェア333は、S502で取り出した全てのデータ属性を、そのデータベースポリシと比較する(S505、S506)。   If the database policy can be acquired, the database / DHT middleware 333 compares all the data attributes extracted in S502 with the database policy (S505, S506).

この例では、行4012のデータ属性と、行5016のデータベースポリシは一致していない。そこで、データベースポリシテーブル5000から次に優先度の高いデータベースポリシを取り出す(S507、S509)。この例では、行5017のデータベースポリシを取得する。   In this example, the data attribute of the row 4012 and the database policy of the row 5016 do not match. Therefore, the database policy with the next highest priority is extracted from the database policy table 5000 (S507, S509). In this example, the database policy in the row 5017 is acquired.

そして、データベース/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 / DHT middleware 333 compares all the data attributes extracted in S502 with one database policy extracted in S509 (S505, S506). In this example, the data attribute of the row 4012 and the database policy of the row 5017 do not match (S507). In this example, since there is no database policy with the next highest priority, the default policy 5018 is applied (S509, S505, S510). That is, the database / DHT middleware 333 determines that the scenario setting storage method is the “common database” (S302). As described above, since data that does not correspond to any database policy is stored in the common database, there is no data loss due to a database policy setting omission. Data whose storage method is “common database” is stored in the common database server 6. Therefore, the database / DHT middleware 333 requests the database middleware 337 to access the common database server 6 (S303). The database middleware 337 requests the scenario setting 3000 with the base station ID “0003” from the common database server 6 (S304).

この要求を受信した共通データベースサーバ6は、そのサーバ内のデータベースプログラムが保存しているシナリオ設定3000の行3013を結果として返す(S305)。センサ情報処理サーバ3−2のデータベースミドルウェア337は、この結果をデータベース/DHTミドルウェア333に返す(S306)。また、データベース/DHTミドルウェア333は、この結果をシナリオ部3312に返す(S307)。これにより、シナリオ部3312は、基地局ID「0003」に対応する位置が「会議室2」であると知ることができる。   The common database server 6 that has received this request returns the line 3013 of the scenario setting 3000 stored in the database program in the server as a result (S305). The database middleware 337 of the sensor information processing server 3-2 returns this result to the database / DHT middleware 333 (S306). Further, the database / DHT middleware 333 returns the result to the scenario unit 3312 (S307). Accordingly, the scenario unit 3312 can know that the position corresponding to the base station ID “0003” is “conference room 2”.

シナリオ部3312は、ユーザID「sip:ando@example.com」のユーザの位置を「会議室2」に更新することを、アプリケーション制御部3313に要求する(S308)。アプリケーション制御部3313は、SIPサーバ4に対して、プレゼンス情報を更新するための制御メッセージを送信する(S309)。
以上が、センサ情報処理の一連の流れである。
The scenario unit 3312 requests the application control unit 3313 to update the position of the user with the user ID “sip: ando@example.com” to “conference room 2” (S308). The application control unit 3313 transmits a control message for updating presence information to the SIP server 4 (S309).
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 data management program 332 of the sensor information processing server 3-1 to update the scenario setting.
First, when the administrator updates the scenario setting using the data management program 332, the data management program 332 requests the database / DHT middleware 333 to update the scenario setting (S351). In this example, it is assumed that the position of the row 3013 in the scenario setting 3000 is updated from “conference room 2” to “rest room”.

データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシ(すなわちデータの保存方法)を決定する。S302と同様に、データベース/DHTミドルウェア333は、シナリオ設定の保存方法は「共通データベース」である、と判断する(S352)。   When access to the data is requested, the database / DHT middleware 333 determines a database policy (that is, a data storage method) to be applied to the data according to the flowchart of FIG. Similar to S302, the database / DHT middleware 333 determines that the scenario setting storage method is “common database” (S352).

保存方法が「共通データベース」のデータは、共通データベースサーバ6のデータベースプログラムに保存されている。そのため、データベース/DHTミドルウェア333は、データベースミドルウェア337に対して、共通データベースサーバ6へのアクセスを要求する(S353)。データベースミドルウェア337は、共通データベースサーバ6に対して、シナリオ設定の更新を要求する(S354)。   Data whose storage method is “common database” is stored in the database program of the common database server 6. Therefore, the database / DHT middleware 333 requests the database middleware 337 to access the common database server 6 (S353). The database middleware 337 requests the common database server 6 to update the scenario setting (S354).

この要求を受信した共通データベースサーバ6は、そのサーバ内のデータベースプログラムが保存しているシナリオ設定3000の行3013を更新する。データの更新に成功すると、センサ情報処理サーバ3−2のデータベースミドルウェア337DHTミドルウェア335に対して、成功通知メッセージを送信する(S355)。   The common database server 6 that has received this request updates the row 3013 of the scenario setting 3000 stored in the database program in the server. If the data update is successful, a success notification message is transmitted to the database middleware 337DHT middleware 335 of the sensor information processing server 3-2 (S355).

センサ情報処理サーバ3−2のデータベースミドルウェア337は、この成功通知メッセージを受信すると、更新の成功をデータベース/DHTミドルウェア333に通知する(S356)。そして最後に、データベース/DHTミドルウェア333はシナリオ設定の更新成功をデータ管理プログラム332に通知する(S357)。   Upon receiving this success notification message, the database middleware 337 of the sensor information processing server 3-2 notifies the update success to the database / DHT middleware 333 (S356). Finally, the database / DHT middleware 333 notifies the data management program 332 that the scenario setting has been successfully updated (S357).

また、上記のようにデータ管理プログラム332を用いなくても、従来のデータベース操作ソフトウェアを利用して共通データベースサーバ6に保存されているデータ(すなわちシナリオ設定)を操作することもできる。   Further, without using the data management program 332 as described above, data stored in the common database server 6 (that is, scenario setting) can be operated using conventional database operation software.

以上のようにして、管理者がデータベースポリシの内容を変更するだけで、センサ情報処理プログラムを変更することなく、実施例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 information distribution source 2, the sensor information processing server 3, the SIP server 4, the SIP UA 5, and the common database 6 are the same as in the third embodiment and the sensor information distribution source 2 transmits sensor information to the load balancer 7. The same. The load balancer 7 is a server device that transfers a packet received through the communication line 9 to one of the n sensor information processing servers 3. The load balancer 7 monitors the load on the n sensor information processing servers 3 and transfers the packet to the sensor information processing server with a low load.

通信網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, sensor information distributor 2, sensor information processing server 3, SIP server 4, common database server 6, and load balancer 7 are connected to each other via a physical communication line 9. The communication network 1-2, the SIP server 4, and the SIP UA 5 are connected to each other via a physical communication line 9. In FIG. 2, the communication networks 1-1 and 1-2 are separated for ease of viewing, but both may be the same communication network.
The internal structure of the sensor information processing server 3 is the same as that of the first embodiment (FIG. 5).

ただし、本実施例では、全てのセンサ情報処理サーバ3のデータベース/DHTミドルウェア333が、図21に示すデータベースポリシを持っているものとする。このデータベースポリシには、デフォルトポリシ5019しか含まれていない。つまり、全てのデータを共通データベースに保存することを示している。   However, in this embodiment, it is assumed that the database / DHT middleware 333 of all the sensor information processing servers 3 has the database policy shown in FIG. This database policy includes only the default policy 5019. That is, all data is stored in a common database.

本実施例では、共通データベースサーバ6が、図14のセンサIDデータテーブル1000の値、図15のセンサ情報履歴テーブル2000の値、および図16のシナリオ設定テーブルの値を保持しているものとする。   In this embodiment, it is assumed that the common database server 6 holds the values of the sensor ID data table 1000 of FIG. 14, the values of the sensor information history table 2000 of FIG. 15, and the values of the scenario setting table of FIG. .

図13は、センサ情報配布元2が送信したセンサ情報を、センサ情報処理サーバ3が処理するまでの動作の一例を示したシーケンス図である。この例でセンサ情報配布元2が送信するセンサ情報は、センサIDが「00006c0000090003」、基地局IDが「0003」であるものとする。   FIG. 13 is a sequence diagram illustrating an example of an operation until the sensor information processing server 3 processes the sensor information transmitted by the sensor information distribution source 2. In this example, the sensor information transmitted by the sensor information distributor 2 is assumed to have a sensor ID “00006c0000090003” and a base station ID “0003”.

まず、センサ情報配布元2は、ロードバランサ7に対してセンサ情報を送信する(S401)。ロードバランサ7はサーバ負荷を考慮して、このセンサ情報をいずれかのセンサ情報処理サーバ3に転送する(S402)。この例では、センサ情報処理サーバ3−1のセンサID解決部3311に転送したものとする。   First, the sensor information distributor 2 transmits sensor information to the load balancer 7 (S401). The load balancer 7 considers the server load and transfers this sensor information to one of the sensor information processing servers 3 (S402). In this example, it is assumed that the data is transferred to the sensor ID resolution unit 3311 of the sensor information processing server 3-1.

センサID解決部3311は、データベース/DHTミドルウェア333に対して、センサIDが「00006c0000090003」のセンサIDデータ1000を要求する(S403)。   The sensor ID resolution unit 3311 requests the sensor ID data 1000 having the sensor ID “00006c0000090003” from the database / DHT middleware 333 (S403).

データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシを決定する。本実施例ではデフォルトポリシしか存在しないため、センサIDデータの保存方法は「共通データベース」である、と判断する(S404)。   When the database / DHT middleware 333 is requested to access data, the database / DHT middleware 333 determines a database policy to be applied to the data according to the flowchart of FIG. Since only the default policy exists in this embodiment, it is determined that the sensor ID data storage method is “common database” (S404).

保存方法が「共通データベース」のデータは、共通データベースサーバ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 common database server 6. Therefore, the database / DHT middleware 333 requests the database middleware 337 to access the common database server 6. The database middleware 337 requests the common database server 6 for the scenario setting 3000 whose base station ID is “0003”, and returns the row 3013 of the scenario setting 3000 (S405 to S408). Then, the database / DHT middleware 333 returns this result to the sensor ID resolution unit 3311 (S409). Thereby, the sensor ID resolution unit 3311 can know that the user ID corresponding to the sensor ID “00006c0000090003” is “sip: ando@example.com”. The sensor ID resolution unit 3311 inserts this user ID into the sensor information (S410).

次に、センサID解決部3311は、データベース/DHTミドルウェア333に対して、センサ情報を含むメッセージの送信を要求する(S411)。このとき、メッセージの送信に使うキーとしてS409で取得したユーザID(すなわち「sip:ando@example.com」)を指定し、データ属性として「ユーザID」を指定する。   Next, the sensor ID resolution unit 3311 requests the database / DHT middleware 333 to transmit a message including sensor information (S411). At this time, the user ID acquired in S409 (ie, “sip: ando@example.com”) is designated as a key used for message transmission, and “user ID” is designated as a data attribute.

データベース/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 middleware 333 is requested to send a message, the database / DHT middleware 333 determines the destination of the message according to the flowchart of FIG. First, the database / DHT middleware 333 extracts the database policy with the highest priority from the database policy table 5000 (S610). In this example, the database / DHT middleware 333 acquires the database policy in the row 5019. If the database policy can be acquired, the database / DHT middleware 333 checks whether the storage method of the database policy is “DHT” (S603). In this example, the saving method of the line 5019 is not “DHT”. Therefore, the database / DHT middleware 333 extracts the database policy with the next highest priority from the database policy table 5000 (S606). However, since there is only one database policy, the database / DHT middleware 333 determines that the message destination is the “message handler” (S602, S607).

データベース/DHTミドルウェア333は、センサ情報を含むメッセージをメッセージハンドラに渡す。前述の通り、シナリオ部3312は事前にメッセージハンドラを登録しているので、シナリオ部3312はメッセージハンドラを通して、このセンサ情報を含むメッセージを受信する(S413)。   The database / DHT middleware 333 passes a message including sensor information to the message handler. As described above, since the scenario unit 3312 has registered a message handler in advance, the scenario unit 3312 receives a message including this sensor information through the message handler (S413).

センサ情報を受信すると、シナリオ部3312は、そのセンサ情報に含まれるユーザのセンサ情報履歴をデータベース/DHTミドルウェア333に要求する(S414)。つまり、ユーザIDが「sip:ando@example.com」のセンサ情報履歴を要求する。   When the sensor information is received, the scenario unit 3312 requests the database / DHT middleware 333 for the sensor information history of the user included in the sensor information (S414). That is, the sensor information history with the user ID “sip: ando@example.com” is requested.

データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシ(すなわちデータの保存方法)を決定する。本実施例ではデフォルトポリシしか存在しないため、センサ情報履歴の保存方法は「共通データベース」である、と判断する(S415)。   When access to the data is requested, the database / DHT middleware 333 determines a database policy (that is, a data storage method) to be applied to the data according to the flowchart of FIG. Since only the default policy exists in the present embodiment, it is determined that the sensor information history storage method is “common database” (S415).

保存方法が「共通データベース」のデータは、共通データベースサーバ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 common database server 6. Therefore, the database / DHT middleware 333 requests the database middleware 337 to access the common database server 6. The database middleware 337 requests the sensor information history 2000 with the user ID “sip: ando@example.com” from the common database server 6 and returns the row 2011 of the sensor information history 2000 (S416 to S419). Then, the database / DHT middleware 333 returns this result to the scenario unit 3312 (S420). Accordingly, the scenario unit 3312 can know that the base station ID of this user has changed from “0001” to “0003”.

センサ情報が変化すると、シナリオ部3312は、その新しいセンサ情報をデータベースプログラムまたはDHTミドルウェアに保存する。そのために、シナリオ部3312は、データベース/DHTミドルウェアにセンサ情報履歴の更新を要求する(S421)。
データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシ(すなわちデータの保存方法)を決定する。S422と同様に、データベース/DHTミドルウェア333は、センサ情報履歴の保存方法は「共通データベース」である、と判断する(S422)。
When the sensor information changes, the scenario unit 3312 stores the new sensor information in a database program or DHT middleware. For this purpose, the scenario unit 3312 requests the database / DHT middleware to update the sensor information history (S421).
When access to the data is requested, the database / DHT middleware 333 determines a database policy (that is, a data storage method) to be applied to the data according to the flowchart of FIG. Similar to S422, the database / DHT middleware 333 determines that the sensor information history storage method is “common database” (S422).

保存方法が「共通データベース」のデータは、共通データベースサーバ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 common database server 6. Therefore, the database / DHT middleware 333 requests the database middleware 337 to access the common database server 6. The database middleware 337 requests the common database server 6 to update the sensor information history 2000 with the user ID “sip: ando@example.com” (S423 to S426). If the update is successful, the database / DHT middleware 333 notifies the scenario unit 3312 of the successful update (S427). Thereby, the scenario part 3312 can know that the update of the sensor information history was successful.

センサ情報が変化すると、シナリオ部3312は設定情報を読み込んでアプリケーションを制御する。本実施例では、センサ情報に含まれる基地局IDに応じて、そのユーザの位置を表すプレゼンス情報を更新する。各基地局IDに対応する位置は、データベースプログラムまたはDHTミドルウェアから取得する。   When the sensor information changes, the scenario unit 3312 reads the setting information and controls the application. In this embodiment, presence information indicating the position of the user is updated according to the base station ID included in the sensor information. The position corresponding to each base station ID is acquired from a database program or DHT middleware.

シナリオ部3312は、基地局IDが「0003」のシナリオ設定3000をデータベース/DHTミドルウェアに要求する(S428)。   The scenario unit 3312 requests the database / DHT middleware for the scenario setting 3000 with the base station ID “0003” (S428).

データベース/DHTミドルウェア333は、データへのアクセスを要求されると、図23のフローチャートに従ってそのデータに適用するデータベースポリシ(すなわちデータの保存方法)を決定する。本実施例ではデフォルトポリシしか存在しないため、シナリオ設定の保存方法は「共通データベース」である、と判断する(S429)。   When access to the data is requested, the database / DHT middleware 333 determines a database policy (that is, a data storage method) to be applied to the data according to the flowchart of FIG. Since only the default policy exists in this embodiment, it is determined that the scenario setting storage method is “common database” (S429).

保存方法が「共通データベース」のデータは、共通データベースサーバ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 common database server 6. Therefore, the database / DHT middleware 333 requests the database middleware 337 to access the common database server 6. The database middleware 337 requests the common database server 6 to request the scenario setting 3000 whose base station ID is “0003”, and the row 3013 of the scenario setting 3000 is returned (S430 to S433). Then, the database / DHT middleware 333 returns this result to the scenario unit 3312 (S434). Accordingly, the scenario unit 3312 can know that the position corresponding to the base station ID “0003” is “conference room 2”.

シナリオ部3312は、ユーザID「sip:ando@example.com」のユーザの位置を「会議室2」に更新することを、アプリケーション制御部3313に要求する(S435)。アプリケーション制御部3313は、SIPサーバ4に対して、プレゼンス情報を更新するための制御メッセージを送信する(S436)。
以上が、センサ情報処理の一連の流れである。
The scenario unit 3312 requests the application control unit 3313 to update the position of the user with the user ID “sip: ando@example.com” to “conference room 2” (S435). The application control unit 3313 transmits a control message for updating the presence information to the SIP server 4 (S436).
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 data management program 332 of the sensor information processing server 3-1 to update the scenario setting. The scenario setting can be updated in the same manner as in the example shown in the third embodiment.

以上のようにして、管理者がデータベースポリシの内容を変更するだけで、センサ情報処理プログラムを変更することなく、実施例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.

センサ情報処理システムの物理的な構成を示す図である。It is a figure which shows the physical structure of a sensor information processing system. 実施例4で想定するネットワークの物理的な構成を示す図である。FIG. 10 is a diagram illustrating a physical configuration of a network assumed in a fourth embodiment. 実施例1および実施例2で想定するネットワークの物理的な構成を示す図である。It is a figure which shows the physical structure of the network assumed in Example 1 and Example 2. FIG. 実施例3で想定するネットワークの物理的な構成を示す図である。FIG. 6 is a diagram illustrating a physical configuration of a network assumed in a third embodiment. センサ情報処理サーバの物理的な構成を示す図である。It is a figure which shows the physical structure of a sensor information processing server. 実施例1のセンサ情報受信時のシーケンス図である。It is a sequence diagram at the time of sensor information reception of Example 1. 実施例1のセンサ情報受信時のシーケンス図である。It is a sequence diagram at the time of sensor information reception of Example 1. 実施例1のシナリオ設定更新時のシーケンス図である。It is a sequence diagram at the time of scenario setting update of Example 1. FIG. 実施例2のセンサ情報受信時のシーケンス図である。It is a sequence diagram at the time of sensor information reception of Example 2. 実施例2のシナリオ設定更新時のシーケンス図である。It is a sequence diagram at the time of scenario setting update of Example 2. FIG. 実施例3のセンサ情報受信時のシーケンス図である。It is a sequence diagram at the time of sensor information reception of Example 3. 実施例3のシナリオ設定更新時のシーケンス図である。It is a sequence diagram at the time of scenario setting update of Example 3. 実施例4のセンサ情報受信時のシーケンス図である。It is a sequence diagram at the time of sensor information reception of Example 4. センサIDデータの例を示す図である。It is a figure which shows the example of sensor ID data. センサ情報履歴の例を示す図である。It is a figure which shows the example of a sensor information log | history. シナリオ設定の例を示す図である。It is a figure which shows the example of a scenario setting. データ属性の例を示す図である。It is a figure which shows the example of a data attribute. 実施例1のデータベースポリシを示す図である。It is a figure which shows the database policy of Example 1. FIG. 実施例2のデータベースポリシを示す図である。It is a figure which shows the database policy of Example 2. FIG. 実施例3のデータベースポリシを示す図である。It is a figure which shows the database policy of Example 3. 実施例4のデータベースポリシを示す図である。It is a figure which shows the database policy of Example 4. センサ情報の例を示す図である。It is a figure which shows the example of sensor information. あるデータに適用するデータベースポリシを決定する処理のフローチャートである。It is a flowchart of the process which determines the database policy applied to a certain data. メッセージの送信先を決定する処理のフローチャートである。It is a flowchart of the process which determines the transmission destination of a message. ユーザIDを含むセンサ情報の例を示す図である。It is a figure which shows the example of the sensor information containing user ID.

符号の説明Explanation of symbols

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 Communication network 2 Sensor information distributor 3 Sensor information processing server 4 SIP server 5 SIP UA
6 Common database server 7 Load balancer 9 Communication line 31 IF
32 CPU
33 Memory 34 Data path 331 Sensor information processing program 3311 Sensor ID resolution unit 3312 Scenario unit 3313 Application control unit 332 Data management program 333 Database / DHT middleware 334 Database middleware 335 DHT middleware 336 Mirroring program 337 Database program 1000 Sensor ID data table 2000 Sensor Information history table 3000 Scenario setting table 4000 Data attribute table 5000 Database policy table.

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.
前記データベースポリシは、前記分散データベース若しくは前記共通データベースへ格納する、または前記データを前記複数のサーバへミラーリングするかのうちいずれかであることを特徴とする請求項1記載のセンサ情報処理サーバ。   The sensor information processing server according to claim 1, wherein the database policy is either stored in the distributed database or the common database, or mirrors the data to the plurality of servers. 前記判断において、前記データベースポリシテーブルが管理する前記データベースポリシには優先度が与えられており、該優先度の高いデータベースポリシから順番に、該データベースポリシテーブルの管理するデータ属性と前記データ属性テーブルの管理する該データの前記データ属性とが一致するか否かを判断し、最初に一致した該データベースの該データベースポリシを選び、該データを該データベースポリシに従って格納することを特徴とする請求項1記載のセンサ情報処理サーバ。   In the determination, a priority is given to the database policy managed by the database policy table, and the data attribute managed by the database policy table and the data attribute table 2. The method according to claim 1, wherein it is determined whether or not the data attribute of the data to be managed matches, the database policy of the database that matches first is selected, and the data is stored according to the database policy. Sensor information processing server. 前記判断において、前記データ属性テーブルの管理する該データの前記データ属性が、前記データベースポリシテーブルの管理する前記データ属性のいずれにも一致しない場合は、該データを前記複数のサーバへミラーリングすることを特徴とする請求項2記載のセンサ情報処理サーバ。   In the determination, when the data attribute of the data managed by the data attribute table does not match any of the data attributes managed by the database policy table, the data is mirrored to the plurality of servers. The sensor information processing server according to claim 2. 前記判断において、前記データ属性テーブルの管理する該データの前記データ属性が、前記データベースポリシテーブルの管理する前記データ属性のいずれにも一致しない場合は、該データを共通データベースに保存することを特徴とする請求項3記載のセンサ情報処理サーバ。   In the determination, if the data attribute of the data managed by the data attribute table does not match any of the data attributes managed by the database policy table, the data is stored in a common database. The sensor information processing server according to claim 3. 前記データ属性は、該データの全体または一部に付与されていることを特徴とする請求項1に記載のセンサ情報処理サーバ。   The sensor information processing server according to claim 1, wherein the data attribute is assigned to all or a part of the data. 前記データの属性は、前記分散データベースを有する複数のサーバから該データのデータ格納先を選ぶためのキーとして使いたい対象に付与されていることを特徴とする請求項1記載のセンサ情報処理サーバ。   2. The sensor information processing server according to claim 1, wherein the attribute of the data is given to a target to be used as a key for selecting a data storage destination of the data from a plurality of servers having the distributed database. 前記データが個人情報を表すデータである場合には、該データ全体に前記データ属性が付与されていることを特徴とする請求項1記載のセンサ情報処理サーバ。   The sensor information processing server according to claim 1, wherein, when the data is data representing personal information, the data attribute is assigned to the entire data. 前記データがサーバ設定を表すデータである場合には、該データ全体に前記データ属性が付与されていることを特徴とする請求項1記載のセンサ情報処理サーバ。   2. The sensor information processing server according to claim 1, wherein when the data is data representing server settings, the data attribute is assigned to the entire data. ネットワークを介して、センサ情報配布元と接続されたセンサ情報処理サーバであって、
前記センサ情報配布元からセンサ情報を含むパケットを送受信するインタフェースと、
プログラムが格納されたメモリと、
該メモリから該プログラムを読み出して該パケットを処理する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.
前記判断において、前記データベースポリシテーブルの前記データベースポリシには優先度が与えられており、該優先度の高いデータベースポリシから順番に、該データベースポリシテーブルの管理するデータ属性と前記データ属性テーブルの管理する該データの前記データ属性とが一致するか否かを判断し、最初に一致した該データベースの該データベースポリシを選び、該データを該データベースポリシに従って格納することを特徴とする請求項11記載のセンサ情報処理システム。   In the determination, a priority is given to the database policy of the database policy table, and the data attribute managed by the database policy table and the data attribute table are managed in order from the database policy with the highest priority. 12. The sensor according to claim 11, wherein it is determined whether or not the data attribute of the data matches, the database policy of the database that matches first is selected, and the data is stored according to the database policy. Information processing system. 前記センサ情報処理サーバは、前記センサ情報配布元から過去に受信したセンサ情報の履歴を備え、前記センサ情報配布元からセンサ情報を受信し、該受信したセンサ情報と、前記過去のセンサ情報とを比較し、その結果に応じて前記アプリケーションサーバに制御メッセージを送信することを特徴とする請求項11記載のセンサ情報処理システム。   The sensor information processing server includes a history of sensor information received in the past from the sensor information distributor, receives sensor information from the sensor information distributor, and receives the received sensor information and the past sensor information. The sensor information processing system according to claim 11, wherein the control message is compared and a control message is transmitted to the application server according to the result. 前記データベースポリシは、前記分散データベース若しくは前記共通データベースへ格納する、または前記データを前記複数のサーバへミラーリングするかのうちいずれかであることを特徴とする請求項11記載のセンサ情報処理システム。   12. The sensor information processing system according to claim 11, wherein the database policy is either stored in the distributed database or the common database, or the data is mirrored to the plurality of servers.
JP2006328937A 2006-12-06 2006-12-06 Sensor information processing server and sensor information processing system Pending JP2008146119A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (5)

* Cited by examiner, † Cited by third party
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
RU2433461C2 (en) Interaction between neighbourhoods within federation on rendezvous mechanism
JP5270697B2 (en) publish / subscribe message broker
CA2501486C (en) System and method for a user interface directed to discovering and publishing presence information on a network
KR100984384B1 (en) System, network device, method, and computer program product for active load balancing using clustered nodes as authoritative domain name servers
US20070283043A1 (en) Information delivery system, delivery request program, transfer program, delivery program, and the like
US8239452B2 (en) System and method for discovering and publishing of presence information on a network
US8055788B1 (en) Efficient person search mechanism in peer-to-peer networks
US7698307B2 (en) System and method for synchronizing between a file system and presence of contacts on a network
US20120290643A1 (en) Client-server system
JP2007156569A (en) Cluster system, load balancer, method of transferring node, and node transfer program
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
US20050246544A1 (en) System and method for identity confirmation of a contact published on a network
US11354152B2 (en) Self-evolving microservices
JP2005502106A (en) Access to information content
WO2019223099A1 (en) Application program calling method and system
JP2010009380A (en) Bus system
WO2017128713A1 (en) Method and device for publishing subscription message
JP2008146119A (en) Sensor information processing server and sensor information processing system
JP5370269B2 (en) Distributed storage system, connection information notification method and program for distributed storage system
WO2023184925A1 (en) Load balancer and implementation method therefor, load balancing method, and gateway system
JP2011039681A (en) Relay device, information processing method related to transfer rule, and program
JP2007207013A (en) Information processor and information sharing program
JP6929582B1 (en) Information systems, service servers, management servers, information processing methods, and programs
JP2019041241A (en) Distribution system