(57)【特許請求の範囲】
【請求項１】
センサ情報ＤＢ（ＤａｔａＢａｓｅ）の保持する個々のセンサ情報を扱うセンサ情報処理方法であって、
それぞれのセンサ情報はキーと値からなる組の複数個の並びを含み、
該センサ情報処理方法は、現在値読み取り手順と、履歴読み取り手順と、を順に有し、
前記現在値読み取り手順において、
処理対象センサを識別する情報を入力とし、
前記センサ情報ＤＢに検索要求を発行することで前記センサ情報ＤＢから取得した該処理対象センサのセンサ情報のうち
現在の値を示すセンサ情報について、
該センサ情報が含むキーと値の組の複数個の並びに対して
それぞれの組のキー名に対応するオブジェクトのメンバ名について
該キーに対応する値を該オブジェクトの該メンバ名で読み取りされた際の値とする
該オブジェクトを現在値読み取り結果として得、
前記履歴読み取り手順において、
処理対象センサを識別する情報と履歴取得期間を入力とし、
前記現在値読み取り手順で前記センサ情報ＤＢから取得したセンサ情報のうち
該センサ情報が含むキーと値の組の複数個の並びに対して
それぞれの組のキー名に対応するオブジェクトのメンバ名について
該キーに対応する値を該オブジェクトの該メンバ名で読み取りされた際の値とする
該オブジェクトの並びを履歴読み取り結果として得る、
センサ情報処理方法。
【請求項２】
請求項１に記載の情報処理方法であって、
前記現在値読み取り手順と前記履歴読み取り手順の間に、さらに送信値反映手順を有し、
該送信値反映手順において、
処理対象センサを識別する情報を入力とし、
送信対象メンバと送信実行メンバを持つオブジェクトを送信オブジェクト取得結果として得、
該オブジェクトの該送信対象メンバに送信値をセットして
該送信実行メンバに指示を与え、
該送信値を前記センサ情報ＤＢの保持する該処理対象センサに対応する値として書き込む
ことを特徴とするセンサ情報処理方法。
【請求項３】
請求項１又は２に記載の情報処理方法であって、
前記現在値読み取り手順において情報更新手順を有し、
該情報更新手順は、
前記センサ情報ＤＢに待ち受け検索式を登録する手順と、
前記センサ情報ＤＢから検索合致したセンサ情報を受け取る手順と、
該センサ情報から処理対象センサを識別するためのセンサ同定情報を抽出する手順と、
該センサ同定情報で識別されるデータベースの行を該センサ情報が含む情報で更新する手順と、
を順に有することを特徴とする情報処理方法。
【請求項４】
センサ情報ＤＢの保持するセンサ情報を扱う情報処理装置であって、
それぞれのセンサ情報はキーと値からなる組の複数個の並びを含み、
該情報処理装置は、履歴読み取り機能と現在値読み取り機能と問い合わせ機能を有し、
該問い合わせ機能は、
前記センサ情報ＤＢに検索要求を発行することで、前記センサ情報ＤＢが保持するセンサ情報を取得し、
該履歴読み取り機能は、
処理対象センサを識別する情報と履歴取得期間を入力とし、
該問い合わせ機能を用いて取得した該処理対象センサのセンサ情報の並びについて、
個々のセンサ情報が含むキーと値の組の複数個の並びに対して
それぞれの組のキー名に対応するオブジェクトのメンバ名について
該キーに対応する値を該オブジェクトの該メンバ名で読み取りされた際の値とする
該オブジェクトの並びを履歴読み取り結果として得、
該現在値読み取り機能は、
処理対象センサを識別する情報を入力とし、
該問い合わせ機能を用いて取得した該処理対象センサのセンサ情報のうち
現在の値を示すセンサ情報について、
該センサ情報が含むキーと値の組の複数個の並びに対して
それぞれの組のキー名に対応するオブジェクトのメンバ名について
該キーに対応する値を該オブジェクトの該メンバ名で読み取りされた際の値とする
該オブジェクトを現在値読み取り結果として得る
ことを特徴とする情報処理装置。
【請求項５】
請求項４に記載の情報処理装置であって、
該情報処理装置はさらに送信値反映機能を有し、
前記問い合わせ機能は、
前記センサ情報ＤＢに処理対象センサへの情報送信を指示する情報を書き込む要求を発行し、
該送信値反映機能は、
処理対象センサを識別する情報を入力とし、
送信対象メンバと送信実行メンバを持つオブジェクトを送信オブジェクト取得結果として得、
該オブジェクトの該送信対象メンバに送信値をセットして
該送信実行メンバに指示を与え、
該問い合わせ機能を用いて該送信値を前記センサ情報ＤＢの保持する該処理対象センサに対応する値として書き込む
ことを特徴とする情報処理装置。
【請求項６】
請求項４又は５に記載の情報処理装置であって、
該現在値読み取り機能は情報更新機能を有し、
該情報更新機能は
前記センサ情報ＤＢに待ち受け検索式を登録し、
前記センサ情報ＤＢから検索合致したセンサ情報を受け取り、
該センサ情報から処理対象センサを識別するためのセンサ同定情報を抽出し、
該センサ同定情報で識別されるデータベースの行を該センサ情報が含む情報で更新する
ことを特徴とする情報処理装置。
【請求項７】
コンピュータに請求項４から６のいずれかに記載の各機能を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、センサ情報データベースの情報を取り扱うサーバ構成法に関する。
【背景技術】
【０００２】
従来、Ｗｅｂブラウザから用いるアプリケーション（Ｗｅｂアプリケーション）を効率よく開発するための技術として、Ｗｅｂフレームワークと呼ばれる技術があった。このようなＷｅｂフレームワークの例として、Ｒｕｂｙ  ｏｎ  Ｒａｉｌｓ（非特許文献１）がある。Ｒｕｂｙ  ｏｎ  Ｒａｉｌｓは、Ｗｅｂアプリケーション開発の効率を飛躍的に高めた技術として、その評価が高い。以下では、Ｗｅｂフレームワークを用いてアプリケーションプログラマが作成するプログラム本体のことを、アプリケーションロジックと称することにする。
【０００３】
Ｒｕｂｙ  ｏｎ  ＲａｉｌｓにはＷｅｂアプリケーション開発を効率化するため種々の技術的工夫が盛り込まれているが、その中の一つに、ＡｃｔｉｖｅＲｅｃｏｒｄと名付けられた技術がある（非特許文献１の第１７章）。ＡｃｔｉｖｅＲｅｃｏｒｄは一般にはＯｂｊｅｃｔ−ｒｅｌａｔｉｏｎａｌ  ｍａｐｐｉｎｇ（ＯＲＭ）と呼ばれる技術に分類される。Ｗｅｂアプリケーションを動かすために必要な情報は一般にＲＤＢ（Ｒｅｌａｔｉｏｎａｌ  ＤａｔａＢａｓｅ）に格納するが、ＲＤＢの読み書きにはＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）文を生成してＲＤＢＭＳ（Ｒｅｌａｔｉｏｎａｌ  ＤａｔａＢａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）に要求を投げる必要があり、プログラミング上の難易度や手間が大きい。
【０００４】
ＯＲＭはこれを容易化し、オブジェクト指向プログラミング言語におけるオブジェクトの機能としてＲＤＢへのアクセスを行えるようにする技術である。すなわち、所定の方法で生成したＯＲＭ用オブジェクトに対して、そのオブジェクトのメンバ変数からの値の読み出しを行うと、Ｗｅｂフレームワークのランタイムが必要なＳＱＬ文を自動生成しＲＤＢＭＳへと発行することによって、アプリケーションロジックから見ると、さもメモリ上の変数を読み取りするかのようなプログラミングによって、当該ＲＤＢへの読み出しアクセスが可能となるものである。また、メンバ変数への値の代入を行い所定の書き込み指示を与えると、Ｗｅｂフレームワークのランタイムが必要なＳＱＬ文を自動生成しＲＤＢＭＳへと発行することによって、当該ＲＤＢへの書き込みアクセスが可能となるものである。ＯＲＭにより、ＲＤＢアクセスを主体とする従来のＷｅｂアプリケーションを、効率的に開発することが可能であった。
【０００５】
一方、多様なセンサやアクチュエータを身の回りに配置して動作させるユビキタスコンピューティング分野においては、センサからの情報を履歴として蓄え後から検索取得する機能を提供する、センサ情報ＤＢ（ＤａｔａＢａｓｅ）が研究されている。このようなセンサ情報ＤＢの例として、ｕＴｕｐｌｅＳｐａｃｅ（非特許文献２、３）がある。ｕＴｕｐｌｅＳｐａｃｅにおいては、個々のセンサ情報をＥＡ、検索式をＥＦと呼称している。ｕＴｕｐｌｅＳｐａｃｅの技術的特徴の一つに、ＥＡの履歴を後からＥＦにより検索する機能と、ＥＦを事前に登録しておき新たなＥＡが蓄積されると該ＥＡの新着通知をＥＦ登録元が受け取る機能とを、統合していることが挙げられる。
【０００６】
またｕＴｕｐｌｅＳｐａｃｅのさらなる技術的特徴の一つに、アクチュエータ機器はＣＦと呼ばれる検索式を登録しておくと、ＣＡと呼ばれる送信情報がｕＴｕｐｌｅＳｐａｃｅに登録された際に、該ＣＡの新着通知をＣＦ登録元が受け取る機能が挙げられる。すなわち、この機能を用いると、アプリケーションロジックがＣＡを登録することによってアクチュエータ機器に制御コマンドを送信することができる。このように、情報検索と機器制御を、ｕＴｕｐｌｅＳｐａｃｅへの情報の登録という類似性の高い操作で統一的に扱えることが特徴である。
【０００７】
ユビキタスコンピューティング分野においては、多様なセンサやアクチュエータを連携させて実世界へのインタラクションを提供するアプリケーションが種々提案されている。一方で、多様なセンサ等のデバイスを実際に商品として販売し運用するという観点からは、これらの機器を一括して監視するようなアプリケーションを構築する需要も高い。このような監視系アプリケーションの典型的な使用イメージは例えば以下のようなものである。
【０００８】
オペレーターはＷｅｂブラウザを通じて監視アプリケーションにログインする。Ｗｅｂブラウザには監視対象のセンサ等デバイスの一覧が表示され、最終通信時刻やセンサ等デバイスの最新状態が一覧できる。個別のセンサ等デバイスの行をクリックすると検索画面が開き、検索期間を指定すると当該センサ等デバイスの当該期間の通信履歴が一覧表示される。これによりオペレーターはセンサ等デバイスの詳しい稼働状況を確認できる。また、個別のセンサ等デバイスの行をクリックすると送信画面が開き、試験用コマンドを入力して送信ボタンを押すと、当該センサ等デバイスに送信が行われる。これによりオペレーターはセンサ等デバイスが現に稼働しているかを確認できる。
【０００９】
多様なセンサやアクチュエータを連携させて実世界へのインタラクションを提供するアプリケーションにおいては、その様態は種々異なっているため、アプリケーション開発の飛躍的な効率化を図る方法は自明ではない。一方で、上記監視系アプリケーションにおいては、その様態はほぼ類似のものであり、それぞれのセンサ等デバイスの種類に応じて取り扱うデータの種類やそれに伴うＷｅｂ画面の構成等に一定の差異はあるが、アプリケーションの基本的骨格は共通しているものと考えられる。このため、このような監視系アプリケーションの開発は、適切なアプリケーション構築支援技術の発明により、飛躍的な効率化を図る余地があるといえる。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】「ＲａｉｌｓによるアジャイルＷｅｂアプリケーション開発  第２版」、Ｄａｖｅ  Ｔｈｏｍａｓほか著、オーム社、２００７年
【非特許文献２】「ｕＴｕｐｌｅＳｐａｃｅ：Ａ  Ｂｉ−Ｄｉｒｅｃｔｉｏｎａｌ  Ｓｈａｒｅｄ  Ｄａｔａ  Ｓｐａｃｅ  ｆｏｒ  Ｗｉｄｅ−Ａｒｅａ  Ｓｅｎｓｏｒ  Ｎｅｔｗｏｒｋ」、Ｔａｋａｙｕｋｉ  Ｎａｋａｍｕｒａほか著、２ｎｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｓｅｎｓｏｒ  Ｎｅｔｗｏｒｋｓ  ａｎｄ  Ａｍｂｉｅｎｔ  Ｉｎｔｅｌｌｉｇｅｎｃｅ（ＳＥＮＡＭＩ  ２００９）、２００９年１２月
【非特許文献３】「大量スキーマレスデータの蓄積・検索を実現する新しいｕＴｕｐｌｅＳｐａｃｅの設計と実装」、柏木  啓一郎ほか著、マルチメディア，分散，協調とモバイル（ＤＩＣＯＭＯ２０１０）シンポジウム、２０１０年７月
【発明の概要】
【発明が解決しようとする課題】
【００１１】
ユビキタスコンピューティング分野における監視系アプリケーションをＷｅｂアプリケーションとして効率的に開発可能とするには、Ｗｅｂフレームワークをその開発に用いることが考えられる。しかし、該アプリケーションの動作の中心的な機能は、センサ等デバイスとの入出力であって、該デバイスはＲＤＢＭＳとは異なる入出力インターフェースに接続されているものであるから、ＷｅｂフレームワークのＯＲＭを用いることができない。従って、従来のＷｅｂフレームワークを用いるだけでは、センサ情報の取得やセンサ等デバイスへの情報の書き込みを行うアプリケーションロジックの開発効率を高めることができないという問題があった。
【００１２】
本発明の目的は、以上述べた事情に鑑み、監視系アプリケーションをＷｅｂフレームワークを活用して効率的に開発するため、そのアプリケーションロジック部分においてセンサ等デバイスとの情報の送受信動作に係わるプログラム記述を容易化するアプリケーション構築支援技術を提供することにある。
【００１３】
より具体的には、所定の方法で生成したオブジェクトに対してメンバ名からの値の読み出しを行うとセンサ情報が取得できる機能を実現するセンサ情報処理方法、センサ情報処理装置及びプログラムを提供することにある。
【課題を解決するための手段】
【００１４】
上記目的を達成するために、本願発明のセンサ情報処理方法、センサ情報処理装置及びプログラムは、センサ情報ＤＢに検索要求を発行することでセンサ情報ＤＢから随時最新のセンサ情報を取得し、センサ情報のキー名に対応する値をデータベースに蓄積する。これにより、メンバ名からの値の読み出しを行うとセンサ情報が取得できる機能を実現する。
【００１５】
具体的には、本願発明のセンサ情報処理方法は、センサ情報ＤＢの保持する個々のセンサ情報を扱うセンサ情報処理方法であって、それぞれのセンサ情報はキーと値からなる組の複数個の並びを含み、該センサ情報処理方法は、現在値読み取り手順と、履歴読み取り手順と、を順に有し、前記現在値読み取り手順において、処理対象センサを識別する情報を入力とし、前記センサ情報ＤＢに検索要求を発行することで前記センサ情報ＤＢから取得した該処理対象センサのセンサ情報のうち現在の値を示すセンサ情報について、該センサ情報が含むキーと値の組の複数個の並びに対してそれぞれの組のキー名に対応するオブジェクトのメンバ名について該キーに対応する値を該オブジェクトの該メンバ名で読み取りされた際の値とする該オブジェクトを現在値読み取り結果として得、前記履歴読み取り手順において、処理対象センサを識別する情報と履歴取得期間を入力とし、前記現在値読み取り手順で前記センサ情報ＤＢから取得したセンサ情報のうち該センサ情報が含むキーと値の組の複数個の並びに対してそれぞれの組のキー名に対応するオブジェクトのメンバ名について該キーに対応する値を該オブジェクトの該メンバ名で読み取りされた際の値とする該オブジェクトの並びを履歴読み取り結果として得る。
【００１６】
現在値読み取り手順において、センサ情報ＤＢに検索要求を発行することでセンサ情報ＤＢから取得した処理対象センサのセンサ情報のうち現在の値を示すセンサ情報について、センサ情報が含むキーと値の組の複数個の並びに対してそれぞれの組のキー名に対応する値をセンサ情報ＤＢとは異なるデータベースに格納することができる。このため、履歴読み取り手順において、処理対象センサを識別する情報と履歴取得期間を入力すれば、センサ情報ＤＢにアクセスすることなく処理対象センサのセンサ情報を得ることができる。このように、本発明のセンサ情報処理方法は、センサ情報ＤＢにアクセスすることなく処理対象センサのセンサ情報を得ることができるため、アプリケーションロジックに対してオブジェクトのメンバ名の読み書きに基づくセンサ等デバイスへのデータの送受信を行うことができる。したがって、本発明のセンサ情報処理方法は、メンバ名から値の読み出しを行うとセンサ情報を取得することができる。
【００１７】
本願発明のセンサ情報処理方法では、前記現在値読み取り手順と前記履歴読み取り手順の間に、さらに送信値反映手順を有し、該送信値反映手順において、処理対象センサを識別する情報を入力とし、送信対象メンバと送信実行メンバを持つオブジェクトを送信オブジェクト取得結果として得、該オブジェクトの該送信対象メンバに送信値をセットして該送信実行メンバに指示を与え、該送信値を前記センサ情報ＤＢの保持する該処理対象センサに対応する値として書き込んでもよい。
センサ情報が含むキーと値の組の複数個の並びに対してそれぞれの組のキー名に対応するオブジェクトをセンサ情報ＤＢとは異なるデータベースに格納されているため、送信値反映手順において、処理対象センサを識別する情報を入力すれば、送信対象メンバと送信実行メンバを持つ送信オブジェクトを取得することができる。このため、送信対象メンバに送信値をセットすることで、送信値を処理対象センサに対応する値としてセンサ情報ＤＢに書き込むことができる。したがって、本発明のセンサ情報処理方法は、所定の方法で生成したオブジェクトに対して送信対象メンバへの値のセットを行うとセンサ等デバイスに情報を送信することができる。
【００１８】
本願発明のセンサ情報処理方法では、前記現在値読み取り手順において情報更新手順を有し、該情報更新手順は、前記センサ情報ＤＢに待ち受け検索式を登録する手順と、前記センサ情報ＤＢから検索合致したセンサ情報を受け取る手順と、該センサ情報から処理対象センサを識別するためのセンサ同定情報を抽出する手順と、該センサ同定情報で識別されるデータベースの行を該センサ情報が含む情報で更新する手順と、を順に有してもよい。
【００１９】
具体的には、本願発明のセンサ情報処理装置は、センサ情報ＤＢの保持するセンサ情報を扱う情報処理装置であって、それぞれのセンサ情報はキーと値からなる組の複数個の並びを含み、該情報処理装置は、履歴読み取り機能と現在値読み取り機能と問い合わせ機能を有し、該問い合わせ機能は、前記センサ情報ＤＢに検索要求を発行することで、前記センサ情報ＤＢが保持するセンサ情報を取得し、該履歴読み取り機能は、処理対象センサを識別する情報と履歴取得期間を入力とし、該問い合わせ機能を用いて取得した該処理対象センサのセンサ情報の並びについて、個々のセンサ情報が含むキーと値の組の複数個の並びに対してそれぞれの組のキー名に対応するオブジェクトのメンバ名について該キーに対応する値を該オブジェクトの該メンバ名で読み取りされた際の値とする該オブジェクトの並びを履歴読み取り結果として得、該現在値読み取り機能は、処理対象センサを識別する情報を入力とし、該問い合わせ機能を用いて取得した該処理対象センサのセンサ情報のうち現在の値を示すセンサ情報について、該センサ情報が含むキーと値の組の複数個の並びに対してそれぞれの組のキー名に対応するオブジェクトのメンバ名について該キーに対応する値を該オブジェクトの該メンバ名で読み取りされた際の値とする該オブジェクトを現在値読み取り結果として得る。
【００２０】
現在値読み取り機能を備えるため、センサ情報ＤＢに検索要求を発行することでセンサ情報ＤＢから取得した処理対象センサのセンサ情報のうち現在の値を示すセンサ情報について、センサ情報が含むキーと値の組の複数個の並びに対してそれぞれの組のキー名に対応する値をセンサ情報ＤＢとは異なるデータベースに格納することができる。また、履歴読み取り機能を備えるため、処理対象センサを識別する情報と履歴取得期間を入力とし、センサ情報ＤＢにアクセスすることなく処理対象センサのセンサ情報を得ることができる。このように、本発明に係るセンサ情報処理装置は、センサ情報ＤＢにアクセスすることなく処理対象センサのセンサ情報を得ることができるため、アプリケーションロジックに対してオブジェクトのメンバ名の読み書きに基づくセンサ等デバイスへのデータの送受信を行うことができる。したがって、本発明に係るセンサ情報処理装置は、メンバ名から値の読み出しを行うとセンサ情報を取得することができる。
【００２１】
本願発明のセンサ情報処理装置では、該情報処理装置はさらに送信値反映機能を有し、前記問い合わせ機能は、前記センサ情報ＤＢに処理対象センサへの情報送信を指示する情報を書き込む要求を発行し、該送信値反映機能は、処理対象センサを識別する情報を入力とし、送信対象メンバと送信実行メンバを持つオブジェクトを送信オブジェクト取得結果として得、該オブジェクトの該送信対象メンバに送信値をセットして該送信実行メンバに指示を与え、該問い合わせ機能を用いて該送信値を前記センサ情報ＤＢの保持する該処理対象センサに対応する値として書き込んでもよい。
センサ情報が含むキーと値の組の複数個の並びに対してそれぞれの組のキー名に対応するオブジェクトがセンサ情報ＤＢとは異なるデータベースに格納されているため、処理対象センサを識別する情報を入力すれば、送信対象メンバと送信実行メンバを持つ送信オブジェクトを取得することができる。このため、送信値反映機能を用いて、送信対象メンバに送信値をセットすることで、送信値を処理対象センサに対応する値としてセンサ情報ＤＢに書き込むことができる。したがって、本発明のセンサ情報処理装置は、所定の方法で生成したオブジェクトに対して送信対象メンバへの値のセットを行うとセンサ等デバイスに情報を送信することができる。
【００２２】
本願発明のセンサ情報処理装置では、該現在値読み取り機能は情報更新機能を有し、該情報更新機能は前記センサ情報ＤＢに待ち受け検索式を登録し、前記センサ情報ＤＢから検索合致したセンサ情報を受け取り、該センサ情報から処理対象センサを識別するためのセンサ同定情報を抽出し、該センサ同定情報で識別されるデータベースの行を該センサ情報が含む情報で更新してもよい。
【００２３】
上記目的を達成するために、本願発明のプログラムは、本願発明のセンサ情報処理装置の各機能を実現させる。
【００２４】
なお、上記各発明は、可能な限り組み合わせることができる。
【発明の効果】
【００２５】
本発明によれば、アプリケーションロジックに対してオブジェクトのメンバ名の読み書きに基づくセンサ等デバイスへのデータの送受信を可能にでき、ユビキタスコンピューティング分野のアプリケーション開発の効率化を実現できる。
【図面の簡単な説明】
【００２６】
【図１】本実施の形態におけるシステム全体の構成を示す。
【図２】ｕＴｕｐｌｅＳｐａｃｅ（１０４）が保持するセンサ情報（２２１）を示す。
【図３】ＲＤＢＭＳ（１０３）が保持するデータベースを示す。
【図４】情報更新装置（１０２）が起動時に登録する待ち受け検索式を示す。
【図５】センサ（１０６）がｕＴｕｐｌｅＳｐａｃｅ（１０４）に追加登録するセンサ情報（２５１）を示す。
【図６】情報更新装置（１０２）のセンサ情報発生時更新手順を示す。
【図７】センサ情報（２５１）が追加登録された結果の、ｕＴｕｐｌｅＳｐａｃｅ（１０４）が保持するセンサ情報（２７１）を示す。
【図８】センサ情報（２５１）に従って情報更新装置（１０２）が情報更新した結果の、ＲＤＢＭＳ（１０３）が保持するデータベースを示す。
【図９】Ｒｕｂｙ  ｏｎ  ＲａｉｌｓのＯＲＭ機能により自動生成されたクラスＳｅｎｓｏｒのオブジェクト（２９１）を示す。
【図１０】ｕＴｕｐｌｅＳｐａｃｅ（１０４）から検索結果として返却されたセンサ情報の並びを示す。
【図１１】履歴読み取り部（１１１）が返却する履歴読み取り結果であるクラスＳｅｎｓｏｒＩｎｆｏのオブジェクトの配列（３１０）を示す。
【図１２】センサに情報を送信するＷｅｂサーバ装置（１０１）内の処理手順を示す。
【図１３】送信オブジェクトであるクラスＡｃｔｕａｔｏｒのオブジェクト（３３１）を示す。
【発明を実施するための形態】
【００２７】
添付の図面を参照して本発明の実施形態を説明する。以下に説明する実施形態は本発明の実施の例であり、本発明は、以下の実施形態に制限されるものではない。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
【００２８】
第１図は、本実施の形態におけるシステム全体の構成を示す。ネットワーク（１０５）にＷｅｂサーバ装置（１０１）、情報更新装置（１０２）、ＲＤＢＭＳ（１０３）、ｕＴｕｐｌｅＳｐａｃｅ（１０４）、およびセンサ（１０６）が接続される。これらのネットワーク接続された各装置は通信機能を有するが、本実施形態においては当該通信機能の詳細は省略する。本実施形態に係る情報処理装置は、Ｗｅｂサーバ装置（１０１）及び情報更新装置（１０２）を用いることで、問い合わせ機能、履歴読み取り機能、現在値読み取り機能及び送信値反映機能を実現する。これにより、ｕＴｕｐｌｅＳｐａｃｅ（１０４）の保持する個々のセンサ情報を扱うことを可能にする。
【００２９】
本実施の形態では、ＷｅｂフレームワークとしてＲｕｂｙ  ｏｎ  Ｒａｉｌｓ技術を用いる。また、センサ情報ＤＢとしてｕＴｕｐｌｅＳｐａｃｅ（１０４）を用いる。ＲＤＢＭＳ（１０３）は、データベースを格納する。ＲＤＢＭＳ（１０３）は、一般的なリレーショナルデータベースマネジメントシステムを用いてよく、例えばｐｏｓｔｇｒｅＳＱＬやＭｙＳＱＬ、Ｏｒａｃｌｅ等を用いてもよい。
【００３０】
Ｗｅｂサーバ装置（１０１）は、フロントエンドＷｅｂサーバ（１２１）、Ｒｕｂｙ言語処理系（１２２）、Ｒｕｂｙ  ｏｎ  Ｒａｉｌｓランタイム（１２３）、およびアプリケーションロジック（１２４）を具備する。この構成は、Ｒｕｂｙ  ｏｎ  Ｒａｉｌｓを用いた一般的なＷｅｂアプリケーション構築の際の構成と同じである。特にフロントエンドＷｅｂサーバ（１２１）については、非特許文献１の第２７．３節に開示されている。Ｗｅｂサーバ装置（１０１）はさらに、履歴読み取り部（１１１）、問い合わせ部（１１３）、および送信値反映部（１１４）を具備する。
【００３１】
情報更新装置（１０２）の構成法は以下で明らかにする。センサ（１０６）は識別子として「Ａ」を持ち、温度と騒音のセンサを具備し、外部から駆動制御可能なブザー装置を内蔵する。
【００３２】
第２図は、ｕＴｕｐｌｅＳｐａｃｅ（１０４）に格納されているセンサ情報（２２１）を示す。
ｕＴｕｐｌｅＳｐａｃｅでの個々のセンサ情報は、キーと値の組の複数個の並びを含む。例えば、本図が示すように「キー＝値」の並びで表され、それが時系列に沿って蓄積される。ここで、「キー＝値」がキーと値の組に相当する。ｕＴｕｐｌｅＳｐａｃｅの用語では、これら個々のセンサ情報をＥＡと呼ぶ。
【００３３】
図中、例えば２２２の行は、Ａという識別子のセンサからの情報で、日時が２０１０年１２月２４日１４時０分、データタイプは温度、値は２１．３度であることを示している。また例えば２２３の行は、Ｂという識別子のセンサからの情報で、日時が２０１０年１２月２４日１６時３０分、データタイプは騒音、値は７５デシベルであることを示している。
【００３４】
第３図は、ＲＤＢＭＳ（１０３）が保持するデータベースを示す。
該ＲＤＢＭＳは表「ｓｅｎｓｏｒｓ」（２３１）と表「ａｃｔｕａｔｏｒｓ」（２３２）の２つのテーブルを保持する。表「ｓｅｎｓｏｒｓ」（２３１）は、カラム「ａｄｄｒｅｓｓ」、「ｄａｔｅ」、および「ｔｅｍｐｅｒａｔｕｒｅ」で示されるデータを格納する。また、表「ａｃｔｕａｔｏｒｓ」（２３２）は、カラム「ａｄｄｒｅｓｓ」、および「ｂｕｚｚｅｒ」で示されるデータを格納する。
【００３５】
以下、本システムの動作を順を追って説明する。本システムの動作において、本願実施形態に係る情報処理方法を実行する。本願実施形態に係る情報処理方法は、現在値読み取り手順と、履歴読み取り手順と、を順に有する。本願実施形態に係る情報処理方法は、送信値反映手順を、現在値読み取り手順と履歴読み取り手順の間に、さらに有する。
【００３６】
＜現在値読み取り手順＞
まず、システム起動時の動作を示す。第４図は、情報更新装置（１０２）が起動時に登録する待ち受け検索式を示す。
システムが起動する際、情報更新装置（１０２）は２４１で示される検索式を、ＥＦとしてｕＴｕｐｌｅＳｐａｃｅ（１０４）に登録する。ここで（現在日時）の部分には、登録処理を行った時点での日時を数値として埋め込む。検索式２４１は、キー「ｔｙｐｅ」を含み、かつその値が「ｔｅｍｐ」であり、かつ、キー「ｄａｔｅ」を含み、かつその値が「（現在日時）」と同じかそれ以降であるような条件に合致するＥＡを検索することを意味する。ｕＴｕｐｌｅＳｐａｃｅ（１０４）は、検索式（２４１）を受け取りＥＦとして登録すると、以降、待ち受け状態に入る。
【００３７】
次に、新たなセンサ情報が発生した場合の動作であるセンサ情報発生時更新手順を示す。
第５図は、センサ（１０６）がｕＴｕｐｌｅＳｐａｃｅ（１０４）に追加登録するセンサ情報（２５１）を示す。
この例は、Ａという識別子を持つセンサ（１０６）が、２０１０年１２月２４日１８時０分に、データタイプが温度で、値は２２．２度を計測したことを示している。追加登録するセンサ情報（２５１）は、ＥＡとしてｕＴｕｐｌｅＳｐａｃｅ（１０４）に登録される。
【００３８】
ｕＴｕｐｌｅＳｐａｃｅ（１０４）は内部に保持するセンサ情報の一覧に当該ＥＡを追記するとともに、待ち受けているＥＦの中で条件に合致するものがないかを調べ、合致しているものがあれば、当該ＥＡをＥＦの登録元へと送信する。本例であれば、ＥＡであるセンサ情報（２５１）はＥＦである検索式（２４１）に合致しているため、センサ情報（２５１）が情報更新装置（１０２）へと送信される。これにより、情報更新装置（１０２）は、ｕＴｕｐｌｅＳｐａｃｅ（１０４）から検索合致したセンサ情報を受け取ることができる。
【００３９】
第６図は、情報更新装置（１０２）のセンサ情報発生時更新手順を示す。
情報更新装置（１０２）は、センサ情報（２５１）をｕＴｕｐｌｅＳｐａｃｅ（１０４）から受け取ると（手順２６１）、まず、該センサ情報の中からセンサを識別するためのセンサ同定情報を抽出する（手順２６２）。本実施の形態においては、キー「ａｄｄｒｅｓｓ」に記載されている情報がセンサを同定する情報であるので、そのキーに対応する値「Ａ」を抽出する。
【００４０】
次に、該センサ同定情報で識別されるデータベースの行を該センサ情報が含む情報で更新するためのＳＱＬ文を生成する（手順２６３）。例えば「ＵＰＤＡＴＥ  ｓｅｎｓｏｒｓ  ＳＥＴ  ｄａｔｅ＝２０１０１２２４１８００，ｔｅｍｐｅｒａｔｕｒｅ＝２２．２  ＷＨＥＲＥ  ａｄｄｒｅｓｓ＝Ａ；」なるＳＱＬ文を生成する。
【００４１】
最後に、該ＳＱＬ文をＲＤＢＭＳ（１０３）に発行することで、ＲＤＢＭＳ（１０３）に保持されているデータベースを更新する（手順２６４）。
以上でセンサ情報発生時更新手順を終了する。前述のＥＦの登録とセンサ情報発生時更新手順とを含めて情報更新手順と称する。
【００４２】
なおその際、本実施の形態では、キー名「ｖａｌｕｅ」をカラム名「ｔｅｍｐｅｒａｔｕｒｅ」に読み替えて更新操作を行っていることに注意されたい。本実施の形態においては、取り扱う情報が予め分かっているため、ＥＡであるセンサ情報（２５１）からその情報を読み取ってＳＱＬ文を発行するプログラムを作成してもよい。
【００４３】
第７図は、センサ情報（２５１）が追加登録された結果の、ｕＴｕｐｌｅＳｐａｃｅ（１０４）が保持するセンサ情報（２７１）を示す。行２７２が、追加登録されたＥＡを示している。
【００４４】
第８図は、センサ情報（２５１）に従って情報更新装置（１０２）が情報更新した結果の、ＲＤＢＭＳ（１０３）が保持するデータベースを示す。行２８１が、情報更新されたレコードを示している。
【００４５】
＜履歴読み取り手順＞
次に、アプリケーションがセンサ等デバイスの情報一覧を表示する場合の動作を示す。
アプリケーションロジック（１２４）は、一般的なＲｕｂｙ  ｏｎ  Ｒａｉｌｓの機能を用いてＷｅｂブラウザからの要求を受け取り、ＨＴＭＬの生成処理を行って、Ｗｅｂブラウザに返却する。この際、センサ名やセンサ所有者などに関する情報のＨＴＭＬ生成は、一般的なＷｅｂアプリケーションの構築法を用いることができる。
【００４６】
一方、最新のセンサ値やその取得時刻に関する情報のＨＴＭＬ生成は、ユビキタスコンピューティング分野に特有の処理であり、本実施の形態では次のようにして行う。
アプリケーションロジック（１２４）は、Ｒｕｂｙ  ｏｎ  Ｒａｉｌｓの機能として標準的に提供されるクラスＳｅｎｓｏｒの検索メソッドを呼び、その引数として「Ａ」をＲＤＢＭＳ（１０３）に与えることで、センサ情報オブジェクト（２９１）を得る。引数「Ａ」は、センサ情報ＤＢの処理対象センサを識別する情報を示すキー「ａｄｄｒｅｓｓ」に対応する値「Ａ」である。
【００４７】
第９図は、Ｒｕｂｙ  ｏｎ  ＲａｉｌｓのＯＲＭ機能により自動生成されたクラスＳｅｎｓｏｒのセンサ情報オブジェクト（２９１）を示す。
このオブジェクトの構築にあたっては、一般的なＲｕｂｙ  ｏｎ  Ｒａｉｌｓの機能のみを用いて自動的に生成処理がなされる。すなわち、クラスＳｅｎｓｏｒに関しては、Ｒｕｂｙ  ｏｎ  Ｒａｉｌｓランタイム（１２３）が定義する基底クラスＡｃｔｉｖｅＲｅｃｏｒｄ：：Ｂａｓｅを継承する指示のみをプログラミングする。
【００４８】
後の処理はＲｕｂｙ  ｏｎ  Ｒａｉｌｓがオートマチックで実行する。つまり、ＲＤＢＭＳ（１０３）に保持されている対応するテーブル「ｓｅｎｓｏｒｓ」に検索要求を発行し、カラム「ａｄｄｒｅｓｓ」の値が「Ａ」である行を取得して、各カラム名とその値に対応するメンバ変数を持つようなクラスオブジェクトをセットアップし、そのオブジェクトをアプリケーションロジック（１２４）に返す処理が、オートマチックで実行される。
【００４９】
このように本実施例においては、センサ情報とオブジェクトのメンバ変数との結びつけは、ＯＲＭ機能を介して実現している。ｕＴｕｐｌｅＳｐａｃｅ（１０４）へのアクセスは情報更新装置（１０２）が一手に引き受けており、ＯＲＭ機能にとっていつでもアクセス可能な形式でＲＤＢＭＳ（１０３）に保持されているデータベースを常に更新しつづけることにより、アプリケーションロジックがいざセンサ情報を必要とした際にはｕＴｕｐｌｅＳｐａｃｅ（１０４）へのアクセスを一切伴うことなく、一般的なＲｕｂｙ  ｏｎ  Ｒａｉｌｓの機能のみを用いて、最新のセンサ情報を読み取り可能なオブジェクトを生成している。
【００５０】
なお、Ｒｕｂｙ  ｏｎ  Ｒａｉｌｓの機能により、ＲＤＢＭＳ（１０３）に保持されているテーブルのカラム名が、オブジェクトのメンバ変数名に自動的に対応づけられる。本実施の形態では、この対応関係をそのまま用いている。Ｒｕｂｙ  ｏｎ  Ｒａｉｌｓの機能を用いると、この対応関係を読み替えて名前を付け替えることも容易に可能である。
【００５１】
アプリケーションロジック（１２４）にとっては、このようにしてＲＤＢＭＳ（１０３）から返されたオブジェクトは一般的なＯＲＭにおけるオブジェクトと何ら変わらず使用できる。このため、本実施形態に係るセンサ情報処理方法若しくはセンサ情報処理装置又はコンピュータに現在値読み取り手順及び履歴読み取り手順を実行させるプログラムを用いることによって、一般のＷｅｂアプリケーション開発と同様に、最新のセンサ値やその取得時刻に関する情報のＨＴＭＬ生成処理を容易に記述することができる。
【００５２】
次に、アプリケーションが特定センサ等デバイスの通信履歴を表示する場合の動作を示す。
アプリケーションロジック（１２４）は、一般的なＲｕｂｙ  ｏｎ  Ｒａｉｌｓの機能を用いてＷｅｂブラウザからの履歴検索要求を受け取り、ＨＴＭＬの生成処理を行って、Ｗｅｂブラウザに返却する。該履歴検索要求には、どのセンサに対する検索操作であるかを示す情報と、検索対象期間を示す情報が含まれる。
【００５３】
ここでは仮に、センサＡに対して検索対象期間「２０１０年１２月１日０時０分〜２０１０年１２月２４日１８時５９分」が履歴検索要求によって要求されたとする。この際、センサ名やセンサ所有者などに関する情報のＨＴＭＬ生成は、一般的なＷｅｂアプリケーションの構築法を用いることができる。一方、過去のセンサ値やその取得時刻に関する情報の並びに係わるＨＴＭＬ生成は、ユビキタスコンピューティング分野に特有の処理であり、本実施の形態では次のようにして行う。
【００５４】
アプリケーションロジック（１２４）は、Ｒｕｂｙ  ｏｎ  Ｒａｉｌｓの機能として標準的に提供されるクラスＳｅｎｓｏｒの検索メソッドを呼び、その引数として「Ａ」をＲＤＢＭＳ（１０３）に与えることで、センサ情報オブジェクト（２９１）を得る。そして、アプリケーションロジック（１２４）は、履歴読み取り部（１１１）が提供するＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を、引数としてセンサ情報オブジェクト（２９１）と検索対象期間を与えて呼び出す。検索対象期間には「２０１０年１２月１日０時０分〜２０１０年１２月２４日１８時５９分」を格納する。
【００５５】
履歴読み取り部（１１１）はまず、ｕＴｕｐｌｅＳｐａｃｅ（１０４）に検索要求を投げ、センサ情報履歴を取得する。該検索要求は、センサ識別子として「Ａ」、検索対象期間には「２０１０年１２月１日０時０分〜２０１０年１２月２４日１８時５９分」を含む。
【００５６】
第１０図は、ｕＴｕｐｌｅＳｐａｃｅ（１０４）から検索結果として返却されたセンサ情報の並びを示す。この例では３つのＥＡが合致し、結果として３つのセンサ情報が返される。
【００５７】
履歴読み取り部（１１１）はこの返却されたセンサ情報の並びを受け取り、クラスＳｅｎｓｏｒＩｎｆｏのオブジェクトを、この例では３つ生成して、返却されたセンサ情報に含まれる情報を該オブジェクトのメンバ変数に格納する。本実施の形態においては、取り扱う情報が予め分かっているため、返却されたセンサ情報からその情報を読み取ってクラスのメンバ変数に格納するプログラムを作成してもよい。なおその際、本実施の形態では、キー名「ｖａｌｕｅ」をメンバ変数「ｔｅｍｐｅｒａｔｕｒｅ」に読み替えて格納操作を行っていることに注意されたい。
【００５８】
第１１図は、履歴読み取り部（１１１）が返却する履歴読み取り結果であるクラスＳｅｎｓｏｒＩｎｆｏのオブジェクトの配列（３１０）を示す。
該生成した３つのオブジェクトを、１つの配列に詰めて、ＡＰＩの戻り値としてアプリケーションロジック（１２４）に返却する。
【００５９】
＜送信値反映手順＞
次に、アプリケーションがセンサ等デバイスに試験用コマンドを送信する場合の動作を示す。
アプリケーションロジック（１２４）は、一般的なＲｕｂｙ  ｏｎ  Ｒａｉｌｓの機能を用いてＷｅｂブラウザからの情報送信要求を受け取り、ＨＴＭＬの生成処理を行って、Ｗｅｂブラウザに返却する。該情報送信要求には、どのセンサに対する送信操作であるかを示すセンサ同定情報と、送信すべき操作内容を示す情報が含まれる。
【００６０】
ここでは仮に、センサＡに対してブザーｏｎの操作の送信が要求されたとする。この際、Ｗｅｂ画面の送信ボタンのＨＴＭＬ生成や、ボタン押下への反応動作などのプログラミングは、一般的なＷｅｂアプリケーションの構築法を用いることができる。一方、センサ等デバイスへの情報送信操作はユビキタスコンピューティング分野に特有の処理であり、本実施の形態では次のようにして行う。
【００６１】
第１２図は、センサに情報を送信するＷｅｂサーバ装置（１０１）内の処理手順を示す。
ボタン押下への反応動作部分のプログラムとして、送信処理を開始する（手順３２１）。まず、アプリケーションロジック（１２４）は、Ｒｕｂｙ  ｏｎ  Ｒａｉｌｓの機能として標準的に提供されるクラスＡｃｔｕａｔｏｒの検索メソッドを呼び、その引数として「Ａ」を与えることで、ＲＤＢＭＳ（１０３）から送信用オブジェクト（３３１）を取得する（手順３２２）。
【００６２】
第１３図は、送信オブジェクトであるクラスＡｃｔｕａｔｏｒのオブジェクト（３３１）を示す。
クラスＡｃｔｕａｔｏｒは、Ｒｕｂｙ  ｏｎ  Ｒａｉｌｓランタイム（１２３）が定義する基底クラスＡｃｔｉｖｅＲｅｃｏｒｄ：：Ｂａｓｅを継承する。これにより、アプリケーションロジック（１２４）は、クラスＳｅｎｓｏｒの時と同様、ＲＤＢＭＳ（１０３）に保持されている対応するテーブル（ここでは「ａｃｔｕａｔｏｒｓ」）に結びついたオブジェクトをＲｕｂｙ  ｏｎ  Ｒａｉｌｓがオートマチックで生成する。
【００６３】
この結果、オブジェクト（３３１）はメンバ変数「ａｄｄｒｅｓｓ」と「ｂｕｚｚｅｒ」が自動的に設定される。特に、Ｒｕｂｙ  ｏｎ  Ｒａｉｌｓは、メンバ変数の書き換え結果をＲＤＢＭＳ（１０３）に保持されているデータベースの更新操作へと反映させるｓａｖｅメソッドを、基底クラスの機能として標準的に提供することを指摘しておく。さらにクラスＡｃｔｕａｔｏｒの定義ファイルでは、ｓａｖｅ処理のフック関数である「ｂｅｆｏｒｅ＿ｓａｖｅ」メソッドを、明示的に関数定義しておく。なお、メンバ変数「ｂｕｚｚｅｒ」が送信対象メンバであり、ｓａｖｅメソッドが送信実行メンバである。
【００６４】
次に、アプリケーションロジック（１２４）は、該オブジェクトのメンバ変数ｂｕｚｚｅｒに値「ｏｎ」を代入することによってメンバ変数をセットする（手順３２３）。
【００６５】
次に、アプリケーションロジック（１２４）は、該オブジェクトのメソッドｓａｖｅを呼び出し、メンバ変数書き換え内容をＲＤＢＭＳ（１０３）のデータベースに反映させる（手順３２４）。
【００６６】
ｓａｖｅメソッド自体はＲｕｂｙ  ｏｎ  Ｒａｉｌｓで一般的に提供され、用いられるメソッドであるが、上記ｂｅｆｏｒｅ＿ｓａｖｅメソッドが定義されている場合には、Ｒｕｂｙ  ｏｎ  Ｒａｉｌｓが自動的にそれを検出して、ｂｅｆｏｒｅ＿ｓａｖｅメソッドが呼び出される（手順３２５）。なお、この機能のより詳細な使用法については非特許文献１の第１９．２節に開示されている。
【００６７】
ｂｅｆｏｒｅ＿ｓａｖｅメソッドの本体は送信値反映部（１１４）で定義されており、送信値反映部（１１４）は該オブジェクトのメンバの値、この例ではメンバ変数「ｂｕｚｚｅｒ」の値「ｏｎ」を、ｕＴｕｐｌｅＳｐａｃｅ（１０４）に登録する（手順３２６）。具体的には、「ａｄｄｒｅｓｓ＝Ａ，ｂｕｚｚｅｒ＝ｏｎ，ｄａｔｅ＝（現在日時）」という内容のＣＡを問い合わせ部（１１３）を介してｕＴｕｐｌｅＳｐａｃｅ（１０４）に登録する。
以上で送信処理を終了する。
【００６８】
なお、Ｒｕｂｙ  ｏｎ  Ｒａｉｌｓはこの後、自動的に、テーブル「ａｃｔｕａｔｏｒｓ」（２３２）の書き換え動作を行う。また、ｕＴｕｐｌｅＳｐａｃｅ（１０４）はこの後、自動的に、既に待ち受け状態にあるＣＦとの照合処理を行って、該ＣＡを適合するＣＦの登録元へと送信する。これにより、該ＣＡはセンサ等デバイスへと届けられ、該センサ等デバイスはそれを受け取って所定の動作を行う。例えば、内蔵のブザーを鳴動させる。
【００６９】
なお、本実施の形態では、センサ情報のキー名を、ほぼそのまま、オブジェクトのメンバ変数名に対応づけることとした。
【００７０】
本発明の範囲はこれに限るものではなく、適宜キー名の読み替えを行ったり、特定のキーのみをメンバ変数に格納してその他のキーは読み捨てることとしてもよい。例えば、本実施の形態においても、既に述べたように、情報更新装置（１０２）および履歴読み取り部（１１１）は、キー名「ｖａｌｕｅ」をメンバ変数名（あるいはカラム名）「ｔｅｍｐｅｒａｔｕｒｅ」に読み替えて処理を行っている。
【００７１】
本発明における現在値読み取り機能は、本実施の形態においては、情報更新装置（１０２）と、Ｒｕｂｙ  ｏｎ  Ｒａｉｌｓが提供するＯＲＭ機能との組み合わせによって、実現されている。すなわち、既に述べたように、処理対象センサを識別する情報を入力としてセンサ情報オブジェクトを取得する操作は、Ｒｕｂｙ  ｏｎ  Ｒａｉｌｓの機能として標準的に提供されるクラスＳｅｎｓｏｒの検索メソッドを呼ぶことで実現される。
【００７２】
また、該オブジェクトのメンバ変数を読み取るとセンサ情報の対応する現在値が読み取れるという操作は、事前に情報更新装置（１０２）が第６図に示されるセンサ情報発生時更新手順を実施しておくことにより実現される。
【００７３】
本実施の形態においては、履歴読み取り部（１１１）、問い合わせ部（１１３）、送信値反映部（１１４）、情報更新装置（１０２）、およびＲＤＢＭＳ（１０３）を含む装置ならびに機能部の集まりによって、アプリケーションロジック（１２４）に対して、オブジェクトのメンバ変数の読み書きに基づくｕＴｕｐｌｅＳｐａｃｅ（１０４）を介したセンサ等デバイスへのデータの送受信を可能としている。これら装置ならびに機能部の集まりに加え、さらにフロントエンドＷｅｂサーバ（１２１）、Ｒｕｂｙ言語処理系（１２２）、Ｒｕｂｙ  ｏｎ  Ｒａｉｌｓランタイム（１２３）、およびアプリケーションロジック（１２４）を含めた装置ならびに機能部の集まりが、センサ情報を読み書きするＷｅｂアプリケーションのサーバという一つの本発明における情報処理装置を構成している。
【００７４】
なお、本実施の形態では、ＷｅｂフレームワークとしてＲｕｂｙ  ｏｎ  Ｒａｉｌｓ技術を用いることとした。本発明の範囲はこれに限定されるものではなく、その他のＯＲＭ技術を用いてもよい。
【００７５】
また、「履歴読み取り部、問い合わせ部、送信値反映部、情報更新装置」は、「Ｗｅｂサーバ装置」に内部に設置して情報処理装置を１つのハードウェアで構成しても良いし、図１に示すように一部を「Ｗｅｂサーバ装置」外部に設置し「情報処理装置」を複数のハードウェアで構成しても良い。また、「履歴読み取り部、問い合わせ部、送信値反映部、情報更新装置」の機能を実現するソフトウェアは、他の機能部とともに１つのソフトウェアに実装したものであっても、複数のソフトウェアに分けて実装したものであっても良い。さらに、上記ソフトウェアは、１つの装置上で動作するものであっても、複数の装置上に分散して動作するものであっても良い。
【００７６】
また、本実施の形態では、センサ情報ＤＢとしてｕＴｕｐｌｅＳｐａｃｅを用いることとした。本発明の範囲はこれに限定されるものではなく、情報の履歴を蓄積しておき後で取得する機能を提供するその他のストレージ装置あるいはＤＢ装置を用いて該情報ＤＢを構成してもよい。
【００７７】
また、本発明のいうセンサ情報とは、センサデバイスが計測した値に限るものではなく、上記センサ情報ＤＢが扱う情報であればよい。特に、センサの特性や状態を示すメタデータや、あるいはセンサ以外の例えばＷｅｂやインターネットを経由して取得した情報であってもよい。
【００７８】
また、本実施の形態では、ＷｅｂブラウザからアクセスされるＷｅｂサーバ機能の実現例を示した。本発明の範囲はこれに限定されるものではなく、上記センサ情報を読み書きするアプリケーションの開発に広汎に適用できる。
【産業上の利用可能性】
【００７９】
本発明は情報通信産業に適用することができる。
【符号の説明】
【００８０】
１０１：Ｗｅｂサーバ装置
１０２：情報更新装置
１０３：ＲＤＢＭＳ
１０４：ｕＴｕｐｌｅＳｐａｃｅ
１０５：ネットワーク
１０６：センサ
１１１：履歴読み取り部
１１３：問い合わせ部
１１４：送信値反映部
１２１：フロントエンドＷｅｂサーバ
１２２：Ｒｕｂｙ言語処理系
１２３：Ｒｕｂｙ  ｏｎ  Ｒａｉｌｓランタイム
１２４：アプリケーションロジック
【図１】
0005437282.tif 000002
【図２】
0005437282.tif 000003
【図３】
0005437282.tif 000004
【図４】
0005437282.tif 000005
【図５】
0005437282.tif 000006
【図６】
0005437282.tif 000007
【図７】
0005437282.tif 000008
【図８】
0005437282.tif 000009
【図９】
0005437282.tif 000010
【図１０】
0005437282.tif 000011
【図１１】
0005437282.tif 000012
【図１２】
0005437282.tif 000013
【図１３】
0005437282.tif 000014