−−−システム構成−−−
以下に本発明の実施形態について図面を用いて詳細に説明する。図1は、本実施形態のセンサネットワーク管理システム1の構成例を示す図である。
図1に示すセンサネットワーク管理システム1は、センサネットワーク5における物理センサ20のセンシングデータを、アプリケーション30の要件に応じた形態で柔軟に提供可能とするコンピュータシステムである。また、センサネットワーク管理システム1は、センシングデータを利用するアプリケーション30からの要求に対して、センシング手段を制御し、要求されたデータを返す。
こうしたセンサネットワーク管理システム1は、物理センサ20、IoTハブサーバ300、データ提供サーバ200、および、アプリケーション30から構成されたセンサネットワーク5と、管理サーバ100および監視サーバ400とで構成されている。このうち、管理サーバ100およびデータ提供サーバ200が、センサネットワーク管理システム1の最小構成となる。
上述のセンサネットワーク5に含まれる物理センサ20は、ネットワーク11を通してIoTハブサーバ300に接続している。この物理センサ20は、所定のセンシング機能と通信機能とをもつ機器である。物理センサ20は、センシング機能によって定期的にセンシングして得たセンシングデータを、通信機能によりネットワーク11経由でIoTハブサーバ300に送信する。
一方、IoTハブサーバ300は、センサネットワーク5に含まれる複数の物理センサ20の管理装置である。このIoTハブサーバ300は、物理センサ20のそれぞれから送られてきたセンシングデータを受信し、これをデータ提供サーバ200に提供する。またIoTハブサーバ300は、物理センサ20それぞれのセンシングデータの種別、稼働状態、位置情報などのメタデータを、出力処理部310を介して管理サーバ100に提供する。
また、上述のIoTハブサーバ300は、ネットワーク11経由で接続されている物理センサ20それぞれのデータ提供状態を監視している。そのため、IoTハブサーバ300は、異常を示した物理センサ20に関して、管理サーバ100に所定のアラートを送信する。
一方、データ提供サーバ200は、上述のIoTハブサーバ300からセンシングデータを受信し、このセンシングデータに関して無加工もしくは任意の抽出処理(210、211、212)を実行し、この処理結果である出力データを、アプリケーション毎に作られるエンドポイント処理(213、214)を介して該当アプリケーションに提供する。
なお、アプリケーション30は、上述のデータ提供サーバ200による出力データ(センシングデータそのまま、またはセンシングデータに抽出処理を施して得たデータ)を利用するソフトウェアである。このアプリケーション30は、上述のデータ提供サーバ200に対して任意のタイミングでデータ要求を送信することになる。
こうしたセンサネットワーク5に対して、監視制御するのが監視サーバ400および管理サーバ100となる。これら監視サーバ400および管理サーバ100は、ネットワーク10を介してセンサネットワーク5と接続されている。
このうち監視サーバ400は、IoTハブサーバ300、データ提供サーバ200、および、ネットワーク10を監視し、いずれかに関して所定の異常を検知した場合、管理サーバ100に通知するサーバ装置である。こうした機能は、管理サーバ100が備えるとしてもよい(その場合、監視サーバ400は不要となる)。
一方、管理サーバ100は、センシング手段とアプリケーション30とのマッチング処理を実行する。また管理サーバ100は、アプリケーション30とマッチングしたセンシング手段を、データ提供サーバ200上に構築し、当該センシング手段による出力データを該当アプリケーション30に提供するための基盤制御を行う。
なお、本実施形態におけるセンシング手段とは、1または複数の物理センサ20と、当該物理センサ20から出力されるセンシングデータに対して、選択、抽出、演算、など適宜なデータ加工(本実施形態では総称して「データ抽出」と称する)を行うプログラムたる、1または複数のデータ抽出手段とで構成されるものである。
こうしたセンシング手段において、複数のデータ抽出手段が含まれる場合、一方のデータ抽出手段の出力データを、他方のデータ抽出手段が入力として利用する、といったデータ抽出手段の間での出力データの利用関係が想定出来る。勿論、こうしたデータ抽出手段間での利用関係は1対1のもののみに限定しない。例えば、1つのデータ抽出手段の出力データ(または1つの物理センサ20のセンシングデータ)を、複数のデータ抽出手段がそれぞれ利用する形態や、複数のデータ抽出手段の出力データ(または複数の物理センサ20のセンシングデータ)を、1つのデータ抽出手段がそれぞれ利用する形態、なども想定出来る。
管理サーバ100は、こうしたセンシング手段に含まれうる、センサネットワーク5における各物理センサ20の異常発生や、センサネットワーク管理システム1の運用者等の指示受付、など所定イベントに応じてセンシング手段を切り替える。
上述の管理サーバ100は、本実施形態のセンサネットワーク管理システム1としての機能に該当する、センサ情報取得処理部110、入出力処理部111、マッチング処理部112、基盤制御処理部113、アラート受信処理部114、再選択処理部115、および、アンデプロイ処理部116の各機能部を備える。
また、管理サーバ100は、処理に必要なデータ類として、アプリ属性表125、物理センサ属性表126、抽出処理管理表127、組み合わせ候補表128、処理チェーン表129、および、選択ポリシー表130、適宜な記憶装置で保持している。
また、管理サーバ100は、上述のデータ提供サーバ200で構築、実行されるデータ抽出手段である、各抽出手段のソースコード(図1では、抽出処理Aソースコード141、合成処理Bソースコード142、と例示している)を、ソースコードリポジトリ140にて保持している。上述のソースコードリポジトリ140は、管理サーバ100およびデータ提供サーバ200からアクセス可能であるならば、必ずしも管理サーバ100上に構成される必要はなく、ネットワーク10上のいずれかの装置上で保持されていればよい。これらデータ類についての詳細は後述する。
管理サーバ100が備える機能部のうち、センサ情報取得処理部110は、IoTハブサーバ300から物理センサ20に関するメタデータを取得し、物理センサ属性表126に登録するものである。
また、入出力処理部111は、センシングデータを利用するアプリケーション30のユ
ーザから予めアプリケーション30の要件を取得し、これを、アプリケーション30の要件に関するメタデータのテーブルであるアプリ属性表125に登録するものである。
また、マッチング処理部112は、物理センサ属性表126、アプリ属性表125、および、抽出処理管理表127をもとに、上述のユーザに指定されたアプリケーション30の要件を満たすデータ提供が可能な、物理センサ20とデータ抽出手段との組み合わせを見つけ出すものである。
このマッチング処理部112は、組み合わせ抽出処理部1121と組み合わせ選択処理部1122とから構成される。このうち組み合わせ抽出処理部1121は、抽出処理管理表127と上述のアプリ属性表125とを参照し、アプリケーション30の要件で要求されたデータ種別のデータを出力可能な、物理センサ20とデータ抽出手段との組み合わせ、すなわちセンシング手段である処理チェーン(以後、処理チェーン)の一覧表である組み合わせ候補表128を作成する。
一方、組み合わせ選択処理部1122は、上述のアプリ属性表125と、複数の処理チェーンの中から適宜なものを特定するための優先度が規定された選択ポリシー表130とを参照し、上述の組み合わせ候補表128の中から、アプリケーション30の要件を満たす処理チェーンのうちで、優先すべきものを選択する。なお、処理チェーン表129は、組み合わせ抽出処理部1121によって生成される表であり、物理センサ20、データ抽出手段(以下、抽出処理)、および、エンドポイント処理の組み合わせを管理するテーブルである。
また、基盤制御処理部113は、上述のマッチング処理部112に続いて呼び出され、マッチング処理部112によって選択された処理チェーンをデータ提供サーバ200上に構築し、該当アプリケーション30から利用できる状態にするものである。
上述の基盤制御処理部113は、構築接続処理部1131とエンドポイント作成処理部1132によって構成される。このうち構築接続処理部1131は、マッチング処理部112によって選択された処理チェーンに含まれている抽出処理を、ソースコードリポジトリ140に保管されているソースコードを基にして、データ提供サーバ200上で動く状態にする。また、構築接続処理部1131は、それらの抽出処理を接続して、該当アプリケーション30が要求しているデータを生成可能な状態にする。一方、エンドポイント作成処理部1132は、構築接続処理部1131によって生成可能となったデータを、該当アプリケーション30からアクセス可能にするためのエンドポイントを作成する。
また、アラート受信処理部114は、監視サーバ400およびIoTハブサーバ300から所定のアラートを受け取った場合、アプリケーション30へのデータ提供が継続されるように再選択処理部115を呼び出すものである。
このアラート受信処理部114は、IoTハブサーバ300が取得した物理センサ20等の異常に関する情報を受け取ると、当該異常の生じている物理センサ20(以下、異常物理センサと称する)を利用中のアプリケーション30の存在を特定する。またアラート受信処理部114は、ここでアプリケーション30の存在を特定した場合、再選択処理部115を実行し、当該アプリケーション30に関して構築してある処理チェーンを、異常物理センサ20が含まれない処理チェーンに切り替える。
また、再選択処理部115は、上述のように、処理チェーンの切り替えるに際して呼び出され、異常物理センサ20を除いた上で、該当アプリケーション30の要件を満たす処理チェーンを選び直すものである。
その後、この再選択処理部115は、これまで該当アプリケーション30に関して構築、運用している処理チェーンを、データ提供サーバ200上から削除するためのアンデプロイ処理部116を呼び出す。これにより、不要となった処理チェーンはデータ提供サーバ200上から削除される。
−−−ハードウェア構成−−−
また、センサネットワーク管理システム1を構成する管理サーバ100のハードウェア構成について説明する。図2には本実施形態の管理サーバ100のハードウェア構成例を示す図である。
この管理サーバ100は、SSD(Solid State Drive)やハードディスクドライブなど適宜な不揮発性記憶素子で構成される記憶装置101、RAMなど揮発性記憶素子で構成されるメモリ103、記憶装置101に保持されるプログラム102をメモリ103に読み出すなどして実行し装置自体の統括制御を行なうとともに各種判定、演算及び制御処理を行なうCPUなどの演算装置104、ネットワーク10と接続し他装置との通信処理を担う通信装置105、を少なくとも備える。
なお、記憶装置101内には、本実施形態のセンサネットワーク管理システムを構成する装置として必要な機能を実装する為のプログラム102に加え、アプリ属性表125、物理センサ属性表126、抽出処理管理表127、組み合わせ候補表128、処理チェーン表129、選択ポリシー表130、および、ソースコードリポジトリ140、が少なくとも記憶されている。これらのデータ構成等については後述する。
−−−データ例−−−
図3に、本実施形態におけるアプリ属性表125の一例を示す。このアプリ属性表125は、物理センサ20のセンシングデータそのものやそうしたセンシングデータに対する抽出処理による出力データ、を利用するアプリケーション30の要件に関するメタデータを管理するテーブルである。
本実施形態のアプリ属性表125は、アプリケーション30の識別情報を格納する「アプリID」欄201と、当該アプリケーション30が必要とするセンシングデータの種別情報を格納する「データ種別」欄202と、当該アプリケーション30が必要とするセンシングデータの正確さに関する情報を格納する「精度」欄203と、当該アプリケーション30が必要とするセンシングデータの料金上限に関する情報を格納する「コスト」欄204と、当該アプリケーション30が必要とするセンシングデータについて正常にデータ提供が行われていた時間とデータ提供を期待されていた時間の比率の上限に関する情報を格納する「可動率」欄と、当該アプリケーション30が必要とするセンシングデータが提供される時間間隔に関する情報を格納する「データ取得間隔」欄206と、当該アプリケーション30が必要とするセンシングデータを提供可能な、データソース(主に物理センサ20)、抽出処理、およびエンドポイント処理の組み合わせである処理チェーンの識別情報を格納する処理チェーンID欄207と、当該処理チェーンのエンドポイントの識別情報を格納するエンドポイントID欄208と、から構成される。
ここで、上述の「データ種別」欄202に格納される値は、例えば、温度、音声、画像、位置情報といった物理センサ20によるセンシングデータの種別の識別子である。
図3で例示したアプリ属性表125において、例えば行210のアプリケーション要件は、アプリID「App−#1」なるアプリケーション30に関して、データ種別「Type−#1」のセンシングデータに関して精度「誤差半径10m以下」を要求し、また、
データ利用料金上限としてコスト「0.5円/分」の条件下で、可動率「any」における、データ取得間隔「1分」でのデータ提供を要求している。なお、処理チェーンIDとエンドポイントIDについては、要件に合う処理チェーンが特定されるまでは値なしを表す「−」が設定されている。
図4は、本実施形態における物理センサ属性表126の一例である。例示する物理センサ属性表126は、上述のIoTハブサーバ300に接続されている物理センサ20のメタデータを管理するテーブルである。
本実施形態の物理センサ属性表126は、各物理センサ20の識別子を格納する「デバイスID」欄301、当該物理センサ20の設置場所の情報を格納する「設置位置」欄302、当該物理センサ20によるセンシングデータの種別情報を格納する「データ種別」欄303、当該物理センサ20がセンシングデータをIoTハブサーバ300に送信する時間間隔値を格納する「データ取得間隔」欄304、当該物理センサ20によるセンシングデータの精度情報を格納する「精度」欄305〜307、センシングデータの利用単価情報を格納する「コスト」欄308、当該物理センサ20の稼働率情報を格納する「稼働率」欄308、当該物理センサ20の稼働状況の値を格納する「稼働状況」欄310、により構成される。
なお、上述の「データ種別」欄303は、例えば温度、音声、画像、位置情報といった当該物理センサ20によるセンシングデータの種別の識別子を格納している。また、「精度」欄305〜307については、当該物理センサ20によるセンシングデータの種類("精度1"〜"精度N")に応じた種類の精度を格納する。
こうした物理センサ属性表126において、例えば、行312が表す物理センサ20は、デバイスID「Dev−#2」を保持し、その設置位置は緯度経度情報「35.399057, 139.53258」であり、また、センシングデータのデータ種別は「Type−#3」であり、そのデータ取得間隔は「10秒」で、センシングデータの精度は距離に関して「誤差半径5m以下」、画像の精細さに関して「解像度200dpi」であり、また、センシングデータの利用コストは「0.05円/分」で、稼働率は「100%」、また、稼働状況は「ON」となっている。
図5は、本実施形態における抽出処理管理表127の一例である。この抽出処理管理表127は、ソースコードリポジトリ140内に保存されている、センシングデータの抽出(上述した"データ抽出")を行うプログラムのメタデータを管理するテーブルである。 本実施形態の抽出処理管理表127は、抽出処理を一意に識別する識別子を格納する「抽出処理プログラムID」欄401、当該抽出処理の種別情報を格納する「処理名」欄402、当該抽出処理に必要な入力データの種別数を格納する「入力データ種数」欄403、当該入力データの種別情報を格納する「入力データ種別」欄404〜407、当該抽出処理における出力データ種別の情報を格納する「出力データ種別」欄408、および、当該出力データの精度情報を格納する「精度」欄409により構成される。
図5の抽出処理管理表127において、例えば行416が表す抽出処理は、抽出処理プログラムID「抽出処理−#F」を保持し、その種別は処理名「CC合成」であり、取り扱う入力データ種の数は「2」で、その入力データの種別は入力1「Type−#7」と入力2「Type−#9」であって、出力データ種別は「Type−#1」で、また、その精度は「誤差半1m以下」となっている。
図6は、本実施形態における組み合わせ候補表128の一例である。この組み合わせ候補表128は、管理サーバ100における組み合わせ抽出処理部112の出力であり、ア
プリケーション30が要求するデータの提供を可能とするセンシング手段の一覧を管理するテーブルである。
本実施形態の組み合わせ候補表128は、データソース、抽出処理、および、エンドポイントが一連となって組み合わされたセンシング手段たる、処理チェーンの識別子を格納する「処理チェーンID」欄501と、当該処理チェーンから出力されるデータの精度情報を格納する「精度」欄502と、当該処理チェーンから出力されるデータの料金情報を格納する「コスト」欄503と、当該処理チェーンの稼働率の情報を格納する「稼働率」欄504、および、当該処理チェーンのデータ出力間隔の情報を格納する「データ取得間隔」欄505から構成される。
図6の組み合わせ候補表128において、例えば行505の処理チェーンは、処理チェーンIDが「処理チェーンID#1」(図7Aの処理チェーン表129)で識別される処理チェーンであり、その出力データの精度は「誤差半径5m以下」で、コストは「0.07円/分」、また、稼働率は「90%」となっている。
なお、上述の精度「誤差半径5m以下」は、図7Aの処理チェーン表129に含まれるセンサ「Dev−#1」および抽出処理「抽出処理−#A」、「抽出処理−#B」、「抽出処理−#C」、のうち、最も精度の低い値である「誤差半径5m以下」を管理サーバ100が特定した値である。また、コスト「0.07円/分」は、同様に管理サーバ100が、センサ「Dev−#1」のコストと、抽出処理「抽出処理−#A」、「抽出処理−#B」、「抽出処理−#C」それぞれの入力に用いる「Type−#2」、「Type−#3」、「Type−#7」、の各コストとを、物理センサ属性表126のコスト欄308にて特定し、これらを合算した値である。また、稼働率「90%」は、管理サーバ100が、センサ「Dev−#1」の稼働率、抽出処理「抽出処理−#A」、「抽出処理−#B」、「抽出処理−#C」それぞれの入力に用いる「Type−#2」、「Type−#3」、「Type−#7」、の各稼働率とを、物理センサ属性表126の稼働率欄309にて特定し、これらを乗算した値である。
なお、上述の各種メタデータは、他の情報処理システムから取得したものであってもよい。
図7A〜図7Dは、本実施形態における処理チェーン表129の一例である。この処理チェーン表129は、上述の処理チェーンを構成する、一連の物理センサ20、抽出処理、およびエンドポイントと、それらの各間におけるデータの入出力関係を規定するテーブルである。
こうした処理チェーン表129は、当該処理チェーンを構成する物理センサ20もしくは抽出処理の情報を格納する「入力」欄601と、当該入力欄601の物理センサ20のセンシングデータないし抽出処理の出力データの出力先となる抽出処理もしくはエンドポイント処理の情報を格納する「出力」欄604とから構成されている。
例えば、図7Aの処理チェーン表129において、行603は、物理センサ20「Dev−#1」を起点とする処理チェーンであり、この物理センサ20「Dev−#1」のセンシングデータの出力先が「抽出処理−#A」であることを示している。また同様に、行604は、「抽出処理−#A」から出力されたセンシングデータが、出力先の「抽出処理−#B」に入力されることを示している。また同様に、行605は、「抽出処理−#B」から出力されたセンシングデータが、出力先の「抽出処理−#C」に入力されることを示している。また同様に、行606は、「抽出処理−#C」から出力されたセンシングデータが、出力先の「エンドポイント処理A」に入力されることを示している。
このように、図7Aの処理チェーン表129は、全体として、「Dev−#1⇒抽出処理−#A⇒抽出処理−#B⇒抽出処理−#C⇒エンドポイント処理A」の一連の流れでデータが処理されていく処理チェーンを表している。
−−−フロー例1−−−
以下、本実施形態におけるセンサネットワーク管理方法の実際手順について図に基づき説明する。以下で説明するセンサネットワーク管理方法に対応する各種動作は、センサネットワーク管理システム1を主として構成する管理サーバ100がメモリ等に読み出して実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
図8は、本実施形態におけるセンサネットワーク管理方法のフロー例1を示す図であり、具体的には、管理サーバ100のマッチング処理部112におけるフローチャートの一例である。
この場合、管理サーバ100のマッチング処理部112は、センシングデータを必要とするアプリケーションと、上述のアプリケーションの要件を満たすセンシングデータを提供できるセンシング手段との組み合わせを選択する。また、マッチング処理部112は、入出力処理部121を通して、上述のアプリケーションのユーザからアプリケーションの要件が入力された場合に実行される。
ここで、マッチング処理部112は、入出処理部111を介してユーザ等により生成された、アプリ属性表125、物理センサ属性表126、および、抽出処理管理表127の3種類の表を記憶装置101から読み出し、これらを入力として組み合わせ抽出処理部1121を呼び出し、組み合わせ候補表128を作成する(701)。この組み合わせ抽出処理部1121におけるフロー(図9)については後述する。
次に、管理サーバ100は、上述のステップ701で生成された組み合わせ候補表128を入力として、組み合わせ選択処理部1122を呼び出し、組み合わせ候補表128のうち1行を、組み合わせ候補たるセンシング手段として選択する(702)。このステップ702の詳細については図10に基づき後述する。
続いて、管理サーバ100は、上述のステップ702において選択した組み合わせ候補の処理チェーンID(例:「処理チェーンID#3」)を、アプリ属性表125における該当アプリケーションのレコード中の処理チェーンID欄207に登録する(703)。
以上のフローによって、アプリケーションと、その要件を満たすセンシング手段との組合せが決定される。
−−−フロー例2−−−
図9は、本実施形態におけるセンサネットワーク管理方法のフロー例2を示す図であり、具体的には、上述のフロー例1における組み合わせ抽出処理部1121における処理のフロー例である。
このフローは、組み合わせ抽出処理部1121が、センシングデータを必要とするアプリケーションと、上述のアプリケーションの要件を満たすセンシングデータを提供できるセンシング手段との組み合わせをリストアップする処理に対応するものである。なお、組み合わせ抽出処理部1121においては、エンドポイント処理を抽出処理の一つとして扱う。
この場合、組み合わせ抽出処理部1121は、「所望データ種別」を設定する(801
)。本処理は再帰的に複数回呼び出される。本処理を最初に実行する際には、アプリ属性表125のデータ種別において指定されているデータ種別をエンドポイント処理への入力として扱い、上述のデータ種別を所望データ種別とする。2回目以降の呼び出しでは、指定された抽出処理への入力を所望データ種別とする。
例えば、当該ステップ801における組み合わせ抽出処理部1121は、アプリ属性表125における行210のデータ種別欄202を参照して所望データ種別を「Type−#1」とする。
続いて、組み合わせ抽出処理部1121は、物理センサ属性表126のデータ種別列を参照して、所望データ種別を出力する物理センサをリストアップする(802)。
この処理に際し、一つ以上の物理センサ20が見つかった場合(802:YES)、組み合わせ抽出処理部1121は、当該物理センサ20を当入力の候補リストに登録する(803)。他方、上述の処理に際し、物理センサ20が見つからなかった場合(802:NO)、組み合わせ抽出処理部112は、ステップ803をスキップする。
上述の例の場合、組み合わせ抽出処理部1121は、このステップ802において、物理センサ属性表126を参照すると、出力のデータ種別が「Type−#1」と一致する物理センサ20は存在しないため、ステップ803をスキップすることになる。
続いて、組み合わせ抽出処理部1121は、抽出処理管理表127を参照し、所望データ種別のデータを出力する抽出処理を表す各行に対して、以下のステップ808までの処理を実行する(804)。
上述の例の場合、抽出処理管理表127に含まれる処理の中で出力が「Type−#1」と一致するのは、行413、行415、行416、行418の4つの処理のみであるため、組み合わせ抽出処理部1121は、この4行の各行に対してステップ808までの処理を繰り返し実行することになる。
このうちステップ805において、組み合わせ抽出処理部1121は、検索済みリストを参照し、ステップ804で指定された抽出処理に対して、既に検索を終えている場合はステップ808に進む。上述の例の場合、検索済みリストは空であるので、ステップ806に進むことになる。また、行413、行415、行416、行418の4つの処理のそれぞれについて、ステップ806において再帰的に組み合わせ抽出処理部1121が呼び出されることになる。
他方、ステップ804で指定された抽出処理に対して、既に検索を終えていない場合、組み合わせ抽出処理部1121は、ステップ806において、当該抽出処理を検索済みリ
ストに追加する。さらに、当該抽出処理に対して再帰的に本組み合わせ抽出処理部1121を呼び出す。上述の処理が終了した場合、組み合わせ抽出処理部1121は、検索済みリストから当該抽出処理を削除する。
また、ステップ807において、組み合わせ抽出処理部1121は、呼び出し結果を当入力の候補リストに追加する。
また、上述のルーチン804〜808の終了後、ステップ809において、組み合わせ抽出処理部1121は、すべての入力に候補があるかどうかを判定する。この判定の結果、一つでも入力に候補がないものが存在した場合(809:NO)、組み合わせ抽出処理部1121は、ステップ810において、候補なしを返す。
他方、上述の判定の結果、すべての入力に対して候補があった場合(809:YES)、組み合わせ抽出処理部1121は、ステップ811において、各入力の候補リストの組み合わせに対する処理チェーン表129を作成し、結果リストに登録する。
次に、ステップ812において、組み合わせ抽出処理部1121は、本抽出処理がエンドポイント処理に対するものであるかどうか判定する。この判定の結果、本抽出処理がエンドポイント処理に対するものである場合(812:YES)、組み合わせ抽出処理部1121は、ステップ813において、結果リストの内容を組み合わせ候補表128として記録する。また、組み合わせ抽出処理部1121は、組み合わせ候補表128の精度、コストなどの欄の値を各エントリの処理チェーン表129から求めて登録する。
続いて、組み合わせ抽出処理部1121は、ステップ813において、結果リストの各行に対して処理チェーンIDを振り、それぞれの行に対して、物理センサ属性表126および抽出処理管理表127を参照しながら、精度、コスト、稼働率を求めて登録する。
なお、精度欄には、処理チェーン表129に含まれるセンサおよび抽出処理について、物理センサ属性表126の精度欄307および抽出処理管理表127の精度欄409を参照しながら、最も精度の低い値を登録する。
また、コスト欄には、処理チェーン表129に含まれるセンサについて、物理センサ属性表126のコスト欄308を参照しながら、料金の和を登録する。
また、稼働率欄には、処理チェーン表129に含まれるセンサについて、物理センサ属性表126の稼働率欄309を参照しながら、稼働率の積を登録する。
一方、上述の判定の結果、本抽出処理がエンドポイント処理に対するものでない場合(812:NO)、組み合わせ抽出処理部1121は、ステップ814において、結果リストを返して当該フローを終了する。
ここで、上述のフローに関して更なる具体例を示す。ここでは、上述のステップ804での処理対象として、抽出処理管理表127の行413の「抽出処理−#C」に対して呼び出された組み合わせ抽出処理部1121の動作について説明する。便宜上、本組み合わせ抽出処理を抽出処理413とする。
この場合、組み合わせ抽出処理部1121は、ステップ801において、所望データ種別を「Type−#7」とする。また、組み合わせ抽出処理部1121は、ステップ802において、「Type−#7」のデータを出力するセンサは存在しないと判定する。
また、組み合わせ抽出処理部1121は、ステップ804において、再び抽出処理管理表127を参照し、「Type−#7」のデータを出力する抽出処理は行412のみであることを特定する。
続いて、組み合わせ抽出処理部1121は、ステップ805において、検索済みリストには行413のみが記載されており、行412は含まれていないと特定する。
また、管理サーバ100は、ステップ806において、上述の行412を対象として組み合わせ抽出処理部1121を再度呼び出す。便宜上、ここで呼び出される組み合わせ抽出処理部を抽出処理412とする。抽出処理412の中では、同様に行411を対象として再度組み合わせ抽出処理部1121を呼び出す。便宜上、ここで呼び出される組み合わせ抽出処理部を抽出処理411とする。この抽出処理411においては、ステップ801において、所望データ種別を「Type−#2」とする。
ステップ802において、「Type−#2」のデータを出力するセンサは行311が存在することがわかる。そこでステップ803において、組み合わせ抽出処理部1121は、行411の入力候補リストに行311を登録する。
また、組み合わせ抽出処理部1121は、ステップ804において、再び抽出処理管理表127を参照し、「Type−#2」のデータを出力する処理が存在しないことがわかるため、ステップ809に進む。
また、組み合わせ抽出処理部1121は、ステップ809において、行411に対する入力の候補は、ステップ803において入力候補リストに行311が登録されていることがわかるため、ステップ811に進む。
また、組み合わせ抽出処理部1121は、ステップ811においては、行411に対する入力データ種数は1であるため、候補リストの組み合わせに対する中身が空の処理チェーン表129を一つ作成する。さらに、組み合わせ抽出処理部1121は、データ種別「Type−#2」のデータを出力する「センサDev−#1」を入力欄601に、データ種別「Type−#2」のデータを入力されるとデータ種別「Type−#3」のデータを出力する「抽出処理−#A」を出力欄602に保持する行603が生成される。
また、組み合わせ抽出処理部1121は、処理チェーン表129に対して、行603を追加し、結果リストに登録する。
また、組み合わせ抽出処理部1121は、ステップ812において、本抽出処理への入力は行411でありエンドポイントではないため、ステップ814に進む。
また、組み合わせ抽出処理部1121は、ステップ814においては、行605が登録された結果リストを返して抽出処理411を終了し、ここで抽出処理412のステップ806に戻る。続けて抽出処理412を検索済みリストから削除する。
また、組み合わせ抽出処理部1121は、ステップ807において、ステップ806で得られた抽出処理411の結果である行603のみを保持する処理チェーン表129を、処理412に対する入力候補リストに追加する。
また、組み合わせ抽出処理部1121は、ステップ808において、抽出処理412におけるステップ804から始まるループが終了する。ステップ809においては、行412に対する入力候補リストには抽出処理411の結果のみが格納されている。
続いて、組み合わせ抽出処理部1121は、ステップ811において、データ種別「Type−#3」のデータを出力する「抽出処理−#A」を入力欄601に、データ種別「Type−#3」のデータを入力されるとデータ種別「Type−#7」のデータを出力する「抽出処理−#B」を出力欄602に保持する行604が生成されるので、生成された行607を結果リストに追加する。以降、組み合わせ抽出処理部1121は、抽出処理411と同様に、行604が追加された結果リストを返し、抽出処理413のステップ806に戻る。抽出処理413のステップ806以降も、抽出処理412、411と同様に処理され、データ種別「Type−#7」のデータを出力する「抽出処理−#B」を入力欄601に、データ種別「Type−#3」のデータを入力されるとデータ種別「Type−#7」のデータを出力する「抽出処理−#C」を出力欄602に保持する行605が生成されるので、行605が追加された結果リストを返し、ステップ806に戻る。ここまでの処理で、行606を除いた処理チェーン表129が生成されている。
ステップ806において、組み合わせ抽出処理部1121は、抽出処理413と同様に
して、行415を対象とした組み合わせ抽出処理部1121(抽出処理415)、行416を対象とした組み合わせ抽出処理部1121(抽出処理416)、行418を対象とした組み合わせ抽出処理部1121(抽出処理418)を実行する。
抽出処理415の結果として行615を除いた処理チェーン表129(図7B)、抽出処理416の結果として行622を除いた処理チェーン表129(図7C)、抽出処理418の結果として行626を除いた処理チェーン表129(図7D)が生成される。
各抽出処理のステップ807においてそれぞれの結果が入力の候補リストに登録される。ステップ809において、エンドポイント処理への入力候補リストは、行606を除いた処理チェーン表129、行615を除いた処理チェーン表129、行622を除いた処理チェーン表129、行626を除いた処理チェーン表129の4つの表となる。
ステップ811において、エンドポイント処理への入力は「Type−#1」のデータ一種類だけであるため、入力の組み合わせは入力候補リストの要素4つだけである。組み合わせ抽出処理部1121は、当該入力候補リスト内の組み合わせに対して、エンドポイントへの入力に関する情報を加える。
組み合わせ抽出処理部1121は、行609を除いた処理チェーン表129に対して、データ種別「Type−#1」のデータを出力する「抽出処理−#C」を入力欄601に、データ種別「Type−#1」のデータを入力にもつ「エンドポイント処理A」を出力欄602に保持する行606を追加し、処理チェーン表129を完成させる。
組み合わせ抽出処理部1121は、同様の処理を、行615を除いた処理チェーン表129、行622を除いた処理チェーン表129、行626を除いた処理チェーン表129に対しても行い、それぞれの結果として、図7A〜図7Cにおける各処理チェーン表129が完成する。
また、ステップ811の結果として、結果リストには、図7A〜図7Dにおける各処理チェーン表129の4つが登録される。組み合わせ抽出処理部1121は、ステップ812において、上述の各抽出処理はエンドポイントを出力とした組み合わせ抽出処理であるため、ステップ813に進む。
また、組み合わせ抽出処理部1121は、ステップ813において、結果リストの各行に対して処理チェーンIDを振り、それぞれの行に対して、物理センサ属性表126および抽出処理管理表127を参照しながら、精度、コスト、稼働率を求めて登録する。
組み合わせ候補表128の行505は次のように生成される。組み合わせ抽出処理部1121は、処理チェーン表129(図7A)に対して処理チェーンIDとして「処理チェーンID#1」を振る。また組み合わせ抽出処理部1121は、精度欄に、処理チェーン表129に含まれるセンサおよび抽出処理のうち、最も精度の低い値である「誤差半径5m以下」を登録する。また組み合わせ抽出処理部1121は、コスト欄に、物理センサ属性表126のコスト欄を参照しながら、行314および行315のコスト欄308に記載された料金の和である「0.07円/分」を登録する。また組み合わせ抽出処理部1121は、稼働率欄に、処理チェーン表129に含まれるセンサの稼働率の積である「90%」を登録する。以上により、上述の抽出処理の結果として、組み合わせ候補表128が生成される。
ここで選択ポリシー表130の例を図10に示す。この選択ポリシー表130は、組み合わせ選択処理部1122において、複数の組み合わせ候補の中から優先する候補を選択
するために利用される。
本実施形態における選択ポリシー表130は、複数の指標間(テーブルの各行)での優先関係の値を格納する「優先度」欄901と、候補を選択するための指標を格納する「指標」欄902と、当該指標がどのようになると優先度が高いのかを示す情報を格納する「方向性」欄903と、から構成されている。
なお、上述の指標欄902は、例えばセンシング手段を提供するためのコスト、センシング手段が提供するセンシングデータの精度、センシング手段を提供するためにデータ提供サーバ200データ提供サーバ200上に新たに構築する必要がある抽出処理数の数、データ提供サーバ200で必要となるCPU等の資源量、システムの運用管理者のオペレーションコストなどの数値を表している。
例えば、選択ポリシー表130の行906は優先度として「2」を保持している。そのため、優先度「1」の指標によって出力する候補が決定されなかった場合にのみ参照される。また、行906は指標として「抽出処理数」を、方向性として「最小化」を保持しているため、センシング手段をデータ提供サーバ200上に新たに構築する必要がある抽出処理数が小さくなる候補をより優先度が高い候補として取り扱う。
−−−フロー例3−−−
図11は、本実施形態におけるセンサネットワーク管理方法のフロー例3を示す図であり、具体的には組み合わせ選択処理部1122におけるフローチャートの一例である。
この場合、組み合わせ選択処理部1122による処理は、上述の組み合わせ抽出処理部1121によって生成された組み合わせ候補表128から、センシング手段候補を選び出す処理となる。組み合わせ選択処理部1122は、マッチング処理部112によって、組み合わせ抽出処理部1121に続いて呼び出される。
このフローにおける組み合わせ選択処理部1122は、まず、ステップ1001において、組み合わせ候補表128に含まれている各行に対して、以下のステップ1004までの各処理を繰り返す。
このうちステップ1002においては、組み合わせ選択処理部1122は、ステップ1001で指定された行が表す組み合わせ候補が、アプリ属性表125のデータ取得間隔203、精度204、コスト205、稼働率206で指定されているアプリケーションの要件を満たすかどうか判定する。
上述の判定の結果、当該組み合わせ候補がアプリケーションの要件を満たす場合(1002:YES)、組み合わせ選択処理部1122は、ステップ1003において、当該組み合わせ候補を最終候補リストに追加する。
他方、当該組み合わせ候補がアプリケーションの要件を満たさない場合(1002:NO)、組み合わせ選択処理部1122は、ステップ1003をスキップする。
続いて、組み合わせ選択処理部1122は、ステップ1004において、ステップ1001から始まる繰り返し処理を終了する。
その後、ステップ1005において、組み合わせ選択処理部1122は、最終候補リストが空かどうか判定する。この判定の結果、最終候補リストが空である場合(1005:YES)、組み合わせ選択処理部1122は、ステップ1006において、アプリケーションの要件を満たす候補が存在しない旨をユーザに通知し本処理を終了する。
他方、ステップ1005における判定の結果、最終候補リストが空でない場合(1005:NO)、組み合わせ選択処理部1122は、テップ1007において選択ポリシー表130の優先度を参照して、望ましい候補が表の上部に出現するよう、組み合わせ候補表128の各行のソートを行う。
最後に、組み合わせ選択処理部1122は、ステップ1008において、表の一番上にある候補を出力する。
上述のフローに伴う、より具体的な例を説明する。この場合、組み合わせ選択処理部1122は、ステップ1001において、組み合わせ候補表128の各行に対してステップ1004までの処理を実行する。また、組み合わせ選択処理部1122は、ステップ1002により、各行の項目がアプリケーションの要件を満たすかどうかを判定する。なお、以下では説明を簡易にするために組み合わせ候補票128のすべての項目が条件を満たす場合を例にあげて説明をする。
図6で例示した組み合わせ候補表128の行505、506、507は、すべての項目が条件を満たすため、組み合わせ選択処理部1122は、ステップ1003において最終候補リストに追加する。また、行508はコスト欄503に「0.5円/分」が登録されており、アプリ属性表125のコスト欄204で指定されたコスト「0.1円/分以下」を満たさないため、組み合わせ選択処理部1122は、ステップ1003をスキップしてステップ1004に進む。
続いて、組み合わせ選択処理部1122は、ステップ1004において、ステップ1002から始まった繰り返し処理を終了する。
また、組み合わせ選択処理部1122は、ステップ1005において、最終候補リストが空ではないためステップ1007に進む。また、ステップ1007で、組み合わせ選択処理部1122は、選択ポリシー表130を参照して各行のソートを行う。
選択ポリシー表130の行905より、優先度が最も高い指標はコストかつ方向性は最小化であるため、組み合わせ選択処理部1122は、最終候補表に登録されている行505、706、707の中では、コストが「0.02円/分」である行507が最終候補表の一番上に来るようにソートされる。
また、組み合わせ選択処理部1122は、ステップ1008にて、最終候補表の一番上にある行507を候補として出力する。以上によって、行507が選択処理の結果となる。
−−−フロー例4−−−
図12は、本実施形態におけるセンサネットワーク管理方法のフロー例4を示す図であり、具体的には、基盤制御処理部113におけるフローチャートの一例である。
この場合、基盤制御処理部113における処理は、マッチング処理部112によって特定されるセンシング手段をデータ提供サーバ200上に構築接続し、このセンシング手段による出力データをアプリケーションが利用できるようにする処理である。こうした基盤制御処理部113は、マッチング処理部112に続いて管理サーバ100に呼び出される。
この場合、基盤制御処理部113は、ステップ1101において、構築接続処理部1131を実行し、入力された組み合わせ候補表128から特定される抽出処理とエンドポイントの構築接続処理を行う。
また、構築接続処理部1131は、ステップ1102においては、アプリケーションからデータにアクセスするためのエンドポイントをデータ提供サーバ200上に構築する。
また、構築接続処理部1131は、ステップ1103においては、エンドポイントのエンドポイントIDをアプリ属性表125の中で、現在注目しているアプリケーションを表す行のエンドポイントID欄208に設定し、処理を終了する。
上述のフローにおける構築接続処理部1131の動作例として、組み合わせ候補表128の行507が入力された場合について説明する。
この場合、ステップ1101において、管理サーバ100は、マッチング処理部112に続いて構築接続処理部1131を呼び出す。この構築接続処理部1131によるステップ1101での詳細な動作例は図13で説明する。
続いて、構築接続処理部1131は、ステップ1102において、ステップ1101においてデータ提供サーバ200上に構築接続されたセンシング手段に、アプリケーションからアクセスできるようにする。アプリケーションからweb経由でアクセスが行われる場合、センシング手段に一意なURLを設定し、当該URLにリクエストが来た場合にセンシングデータを返送する処理をデータ提供サーバ200上に構築する。
続いて、構築接続処理部1131は、ステップ1103において、上述のステップ1102において構築されたエンドポイントに一意な識別子を設定し、アプリ属性表125のエンドポイントID欄208に登録する。ステップ1102においてエンドポイントに対して一意なURLを設定した場合は、当該URLをエンドポイントIDとみなすことができる。以上により、アプリケーションから所望のセンシングデータにアクセスすることが可能となる。
−−−フロー例5−−−
図13は、本実施形態におけるセンサネットワーク管理方法のフロー例5を示す図であり、具体的には構築接続処理部1131のフローチャートの一例である。
構築接続処理部1131における処理は、マッチング処理部112によって特定されるセンシング手段をデータ提供サーバ200上に構築、接続するための処理である。構築接続処理部1131は、マッチング処理部112に続く基盤制御処理部113の最初の処理として管理サーバ100から呼び出される。
この場合、構築接続処理部1131は、ステップ1201において、処理チェーン表129の入力欄と出力欄に現れる各抽出処理に対して、ステップ1204までの処理を繰り返し実行する。
このうちステップ1202において、構築接続処理部1131は、ステップ1201において指定された抽出処理がデータ提供サーバ200上に構築済みであるかどうかを判定する。この判定の結果、構築済みである場合(1202:YES)、構築接続処理部1131は、ステップ1203をスキップする。
他方、上述の判定の結果、構築済みでない場合(1202:NO)、構築接続処理部1131は、ステップ1203において、抽出処理管理表127にて、構築する抽出処理のプログラムの抽出処理プログラムIDを参照し、これをキーにソースコードリポジトリ140にて該当ソースコードを特定し、当該ソースコードをデータ提供サーバ200上にコンパイルするなど適宜な実装処理を行う。なお、ステップ1204は、ステップ1201から始まった繰り返し処理の終端を表す。
次に、ステップ1205において、構築接続処理部1131は、処理チェーン表129
の各行に対してステップ1207までの処理を繰り返し実行する。
このうちステップ1206において、構築接続処理部1131は、入力欄に指定されたデータソースもしくは抽出処理の出力を、出力欄に指定されている抽出処理もしくはエンドポイント処理の入力に設定する。なお、ステップ1207は、ステップ1205から始まった繰り返し処理の終端を表す。
上述のフローにおける構築接続処理部1131の具体的な動作例を如何に説明する。ここでは、マッチング処理部の結果である組み合わせ候補として、組み合わせ候補表128の行507が入力された場合を説明する。
この場合、構築接続処理部1131は、ステップ1201において、行507の処理チェーンID欄501に登録されている処理チェーンID「処理チェーン#3」から辿ることができる、図7Cの処理チェーン表129を参照し、当該処理チェーン中に現れる「抽出処理−#B」、「抽出処理−#F」、「抽出処理−#G」のそれぞれに対してステップ1202とステップ1203の処理を行う。
「抽出処理−#B」に関して実行される処理では、ステップ1202において、「抽出処理−#B」は未構築であるため、ステップ1203に進む。また、ステップ1203において、構築接続処理部1131は、管理サーバ100上のソースコードリポジトリ140に格納されている「抽出処理−#B」を実行可能なソースコードをデータ提供サーバ200上に実装し、対応する処理を構築する。
上述のステップ1201〜ステップ1204の繰り返し処理の結果、「抽出処理−#B」に関して実行される処理と同様に、構築接続処理部1131は、「抽出処理−#G」と「抽出処理−#F」についても、それぞれの処理を実行可能な処理をデータ提供サーバ200上に構築する。
この場合、構築接続処理部1131は、ステップ1205において、処理チェーン表129(図7C)の各行に対してステップ1206の処理をそれぞれ行う。
構築接続処理部1131は、ステップ1206において、センサ「Dev−#2」の出力が「抽出処理−#B」の入力に、「抽出処理−#B」の出力が「抽出処理−#F」の入力に、センサ「Dev−#3」の出力が「抽出処理−#G」の入力に、「抽出処理−#G」の出力が「抽出処理−#F」の入力に、「抽出処理−#F」の出力が「エンドポイント処理A」の入力になるようにそれぞれ設定を行う。以上によって、行507で表されるセンシング手段をデータ提供サーバ上に構築接続できた。
−−−フロー例6−−−
図14は、本実施形態におけるセンサネットワーク管理方法のフロー例6を示す図であり、具体的には、管理サーバ100における再選択処理部115のフローチャートの一例である。
本実施形態における再選択処理部115の処理は、一度、マッチング処理部112を経て選択されたセンシング手段を、再度選択し直すための処理である。この再選択処理部115は、例えば物理センサ20の異常により、アプリケーションへのセンシングデータの提供が途切れた場合に、管理サーバ100から呼び出される。
この場合、再選択処理部115は、ステップ1301において、異常がある物理センサ20を利用しているアプリケーション30を特定する。
再選択処理部115は、ここで特定したアプリケーション30に対して、以下のステップ1307までの各処理を実行する。
上述のステップ1301において、アプリケーション30が特定された場合、再選択処理部115は、ステップ1302において、当該アプリケーション30のアプリ属性表125の処理チェーンIDを退避させる。
次に、再選択処理部115は、ステップ1303において、異常がある物理センサ20を利用している組み合わせを除いた組み合わせ候補表128を作成する。
続いて、再選択処理部115は、ステップ1304において、上述のステップ1303で作成した組み合わせ候補表128を利用して、組み合わせ選択処理を実行し、センシング手段を再選択する。
また、再選択処理部115は、ステップ1305において、上述のステップ1304において選択されたセンシング手段を、データ提供サーバ200上に構築・接続し、当該アプリケーション30が利用していたエンドポイントを通して、新たなセンシング手段によってデータが提供されるようにする。
続いて、再選択処理部115は、ステップ1306において、上述のステップ1302において退避した処理チェーンIDを基にして、新たなセンシング手段に切り替えたことによって不要となった抽出処理をデータ提供サーバ200上から削除する。ステップ1307は、ステップ1301から始まった繰り返し処理の終端を表す。
上述のフローにおける再選択処理部115の動作例として、物理センサ「Dev−#3」からの通信が途絶えたことを、監視サーバ400が検知し、この旨を管理サーバ100に通知した状況での処理例を説明する。
この場合、再選択処理部115は、ステップ1301において、アプリ属性表125の処理チェーンID欄207に登録されている情報から処理チェーンを辿り、異常がある物理センサ20が利用されているアプリケーション30を特定する。
アプリ属性表125の行210が表すアプリケーションの処理チェーンID欄207に、「処理チェーン#1」が登録されているとすれば(図3の例では未登録状態)、再選択処理部115は、当該処理チェーンIDに対応する処理チェーン表129を図7Cの処理チェーン表と特定する。
図7Cの処理チェーン表129に含まれるセンサは「Dev−#2」と「Dev−#3」の二つであり、行210が表すアプリケーション30は異常が起きた「Dev−#3」を利用していることがわかる。
再選択処理部115は、ステップ1302において、アプリ属性表125にある処理チェーンIDを一時的に退避しておく。また、再選択処理部115は、ステップ1303において、物理センサ「Dev−#3」を表す行313を除いた表を入力として組み合わせ抽出処理部1121を実行する。
再選択処理部115は、この結果として、組み合わせ候補表128から行507を除いた表を出力する。
続いて、再選択処理部115は、ステップ1304において、組み合わせ候補表128から行507を除いた表を入力として、組み合わせ選択処理を実行する。当該組み合わせ選択処理のステップ1005の時点で、最終候補リストには組み合わせ候補表128の行506と行507が登録されている。当該組み合わせ選択処理のステップ1007においては、選択ポリシー表130を参照し、優先度を参照しながら組み合わせ候補表128の
ソートを行う。行506と行507は、再優先されるキーであるコストが共に「0.05円/分」である。しかし、2番目に優先されるキーである抽出処理数の観点では、既に「抽出処理−#B」がデータ提供サーバ200上に構築されていることから、新たに構築しなければならない抽出処理の数が行506では「抽出処理−#A」と「抽出処理−#C」の2つ、行507では「抽出処理−#A」と「抽出処理−#D」と「抽出処理−#E」の3つであることから行506が一番上に来るようにソートされる。
したがって、ステップ1304において出力される組み合わせ候補は、組み合わせ候補表128の行506である。
再選択処理部115は、ステップ1305において、組み合わせ候補表128の行506で指定される処理チェーンンをデータ提供サーバ200上に構築し、アプリケーションから処理チェーンの出力データにアクセスできる状態を維持する。
再選択処理部115は、ステップ1306において、アプリ属性表125における行210のエンドポイントID欄208を参照して、アプリケーション30にデータを提供しているエンドポイント処理136を特定する。再選択処理部115は、エンドポイント処理136への入力を、ステップ1305において構築した処理チェーンの末端である「抽出処理−#C」の出力に設定することで、エンドポイントを繋ぎかえる。
さらに、再選択処理部115は、行210の処理チェーンID欄207を「処理チェーンID#1」に更新する。ステップ1307は、ステップ1301から始まる繰り返し処理の終端を表す。
再選択処理部115は、ステップ1308において、ステップ1308において退避した処理チェーンIDを元に、利用されなくなった抽出処理を、データ提供サーバ200上から消去する。以上によって、再選択処理部115における処理結果として、「処理チェーン#1」が表す手段をもってアプリケーション30にデータが提供されるようになった。
−−−フロー例7−−−
図15は、本実施形態におけるセンサネットワーク管理方法のフロー例7を示す図であり、具体的には、アンデプロイ処理部116のフローチャートの一例である。
本実施形態におけるアンデプロイ処理部116の処理は、アプリケーション30から利用されなくなった抽出処理をデータ提供サーバ200上から消すための処理であり、当該アプリケーション30が終了されたときや、センシング手段の切り替えが発生するときに呼び出される。ここでの動作例として、アプリケーション30(図1における、"アプリ
App−#1")の利用をユーザが終了した場合を説明する。
まず、アンデプロイ処理部116は、ステップ1401において、アプリ属性表125においてアプリケーション30を表す行210の処理チェーンID欄207から処理チェーン表602を辿り、アプリケーション30から「抽出処理−#A」、「抽出処理−#B」、「抽出処理−#C」が利用されていることを特定し、それぞれの抽出処理をデータ提供サーバ200上から削除する。
次に、アンデプロイ処理部116は、ステップ1402において、アプリ属性表125の行210のエンドポイントID欄208から、エンドポイント処理136を特定し、データ提供サーバ200上から削除する。
以上により、アンデプロイ処理部116の結果として、上述の「アプリApp−#1」
の終了によって不要となった抽出処理がデータ提供サーバ200上から削除された。
−−−インタフェースの例−−−
本実施形態におけるセンサネットワーク管理システム1は、所定のユーザや管理者に対してユーザインタフェースを提供することができる。図16は、アプリケーション30が必要とするデータの要件をユーザに入力させるべく、管理サーバ100が提供する画面1500の例である。
この画面1500において、ユーザは、所定の端末を操作してファイル選択ボックス1501においてアプリケーション30の要件を記述したファイルを指定する。その後、当該ユーザは、アップロードボタン1502を押下する。上述の端末はこのアップロードボタン1502の押下を受け、指定したファイルを管理サーバ100に送信する。
続いて、図17に、アプリケーション30の要件を満たすセンシング手段を、アプリケーション30のユーザに選択させるために管理サーバ100が提供する画面1601の例を示す。
図11のフローでは、組み合わせ選択処理部1122において、選択ポリシー表130に記載された優先度にしたがって決定された組み合わせを自動的に選択する例を説明した。しかしながら、組み合わせ候補表128の中から、ユーザが手動にてセンシング手段の候補を選択するとしてもよい。その場合、組み合わせ選択用の画面1601を、アプリケーション30のユーザに操作させ、所望のセンシング手段を選択させることとなる。
図17においては、図8におけるステップ702の組み合わせ抽出処理部1121の処理が終了した後、ユーザの所定端末に表示する、組み合わせ候補確認画面1601の例を示している。当該ユーザは、端末を操作し、画面1601に表示される組み合わせ候補表128の中から、アプリケーション30で利用したいセンシング手段を探し出す。なお、組み合わせ候補表128は一行が一組み合わせを表している。
図17の画面1601においては、組み合わせ候補1608における処理チェーンID列1602の欄には、「処理チェーン#1」という情報がハイパーリンク形式で表示されている。このリンク先を表示することで、ユーザは処理チェーン表129を表示することができる。各組み合わせの内容を確認した後、ユーザは選択した候補行の選択列1606に表示されている構築ボタンを押下する。端末は、この押下を受けて、ユーザ所望の組み合わせのセンシング手段を管理サーバ100に通知する。管理サーバ100は、当該センシング手段をデータ提供サーバ200上に構築することとなる。
また図18に、ある実装における、センサネットワーク管理システム1の運用者向け管理画面1701の例を示す。この運用者向け管理画面1701は、センシング手段の切り替えを運用者によって行うための画面であり、組み合わせ選択処理におけるステップ1007およびステップ1008で表される、候補を選択する処理を手動で行うことができるようにする画面である。
この運用者向け管理画面1701は、あるアプリケーション30に対する組み合わせ候補表128に含まれている組み合わせの候補を表示するための組み合わせ候補表示部1704、1705と、組み合わせ候補詳細表示部1706、1707と、選択したセンシング手段への切り替えを実行するための切替ボタン1708とから構成される。
ここでの動作例として、物理センサ20の提供者から、センサネットワーク管理システム1の運用者に対して、デバイスID「Dev−#3」をもつ物理センサ20を緊急的に
停止させる旨の連絡が届き、センサネットワーク管理システム1の運用者が、「Dev−#3」をもつ物理センサ20を利用したセンシング手段を、「Dev−#3」をもつ物理センサ20を利用していない他のセンシング手段に切り替えるという場合を説明する。
この場合、センサネットワーク管理システム1の運用者は、所定の端末を操作し、アプリ属性表125の処理チェーンIDから処理チェーンを辿り、「Dev−#3」をもつ物理センサ20を利用しているセンシング手段のエンドポイントを特定する。
ここでは、物理センサ「Dev−#3」を利用したセンシング手段として、組み合わせ候補表128の行507にあたるセンシング手段を図にしたものが組み合わせ表示部1704に、当該センシング手段の詳細が詳細表示部1706表示されている。
センサネットワーク管理システム1の運用者は、端末を操作して、運用者向け管理画面1701に表示されている他の組み合わせ候補を確認し、切り替え先のセンシング手段を選択する。「エンドポイントA」に対する別のセンシング手段候補として、組み合わせ候補表128の行505にあたるセンシング手段を図にしたものが組み合わせ表示部1705に、当該センシング手段の詳細が詳細表示部1707に表示されている。画面下部には続けて「エンドポイントA」に対する別のセンシング手段候補が表示されている。
センサネットワーク管理システム1の運用者が、切替ボタン1708を押下すると、組み合わせ候補表128の行505が指定された状態で、再選択処理部115のステップ1305以降が実行される。
以上により、センシングデータと、それらのデータに対して抽出処理を適用して生成されるデータを、アプリケーション30の要件のマッチング対象とすることが可能となる。また、利用中のセンシング手段が利用できなくなった場合に、代替手段に切り替えることで、アプリケーション30へのデータ提供が継続可能となる。さらに、データ提供にかかるコストや、物理センサ20や抽出処理の管理コストを低減させるために、センシング手段を切り替えることが可能となる。
なお、アプリケーション30から要求されるデータの検索対象は、センシングデータのみならず、インターネットなど適宜なネットワーク上で任意のユーザに公開されているデータやアプリケーション実行者にアクセスが許されている非公開データをはじめとした、ネットワーク上に存在していてアプリケーション30からアクセス可能な任意のデータ、あるいは、それらの組み合わせを対象としてもよい。
また、本実施形態では、抽出処理として、管理サーバ100のソースコードリポジトリ140にて管理されるソースコードを対象としているが、これは、実行可能な形態で登録されていてもよい。さらに、ネットワークで到達可能な別サーバ上で、SaaS(Software as a Service)などの形態で提供される処理を抽出処理としてもよい。
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
こうした本実施形態によれば、物理センサから直接提供されるセンシングデータのみならず、それらセンシングデータに対して所定の処理を適用して生成されるデータを、アプリケーションの要件のマッチング対象とすることができる。また、アプリケーションによって利用中の物理センサが利用できなくなった場合に、代替の物理センサへの切り替えを可能とし、これによりアプリケーションへのデータ提供の継続性が維持される。さらに、
複数のアプリケーションそれぞれにデータ提供する際に必要となる、物理センサ数やセンサデータに適用する処理数を抑制可能であり、データ提供や管理用のコストを低減することができる。
すなわち、センサネットワークにおける物理センサのセンシングデータを、アプリケーションの要件に応じた形態で柔軟に提供可能となる。
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態のセンサネットワーク管理方法において、前記情報処理システムが、前記マッチング処理により特定したセンシング手段に含まれる所定のデータ抽出手段を構築する処理を更に実行する、としてもよい。
これによれば、例えば、マッチング処理によって選択された処理チェーンをデータ提供サーバ上に構築し、該当アプリケーションから利用できる状態に実装可能となる。
また、本実施形態のセンサネットワーク管理方法において、前記情報処理システムが、前記マッチング処理により特定したセンシング手段における所定のデータ抽出手段による処理結果に、前記所定アプリケーションからアクセス可能とするためのエンドポイントを構築する処理を更に実行する、としてもよい。
これによれば、センシング手段が最終的に出力するデータを、アプリケーションが利用出来るよう、当該データの取得先すなわちエンドポイント(例:出力データを要求するコマンドの送信先や、出力データの配置アドレスなど)を生成し、これをアプリケーションに利用させることが可能となる。
また、本実施形態のセンサネットワーク管理方法において、前記情報処理システムが、前記マッチング処理により特定したセンシング手段における所定の物理センサと所定のデータ抽出手段と所定のエンドポイント処理を接続する処理を更に実行する、としてもよい。
これによれば、例えば、マッチング処理によって選択された処理チェーンに含まれている抽出処理を、ソースコードリポジトリに保管されているソースコードを基にして、データ提供サーバ上で動く状態にし、また、それらの抽出処理を接続して、該当アプリケーションが要求しているデータを生成可能な状態にすることが可能である。
また、本実施形態のセンサネットワーク管理方法において、前記情報処理システムが、少なくとも所定の不具合が発生するタイミングを含む所定のタイミングにおいて、前記アプリケーションのセンシング手段を、他のセンシング手段に切り換える処理を実行する、としてもよい。
これによれば、例えば物理センサに不具合が生じても、これに対応し、アプリケーションの要件を満たすセンシング手段を新たに特定してアプリケーションに提供出来る。
また、本実施形態のセンサネットワーク管理方法において、前記情報処理システムが、所定センシング手段に含まれるデータ抽出手段を利用しなくなるイベントが発生した場合、前記センシング手段に含まれる構築済みのデータ抽出手段をアンデプロイする処理を更に実行する、としてもよい。
これによれば、利用機会が無くなったデータ抽出手段をセンシング手段から削除し、リリースの利用効率を改善することが出来る。
また、本実施形態のセンサネットワーク管理方法において、前記情報処理システムが、
所定センシング手段に含まれるエンドポイント処理を利用しなくなるイベントが発生した場合、前記センシング手段に含まれる構築済みのエンドポイント処理を削除する処理を更に実行する、としてもよい。
これによれば、不要となったエンドポイント処理を削除し、システム全体を効率化出来る。
また、本実施形態のセンサネットワーク管理方法において、前記情報処理システムが、前記物理センサのメタデータ、所定のデータ抽出手段のメタデータ、前記物理センサのセンシングデータまたは当該センシングデータに基づく所定データ、および、前記物理センサのセンシングデータまたは当該センシングデータに基づく所定データを利用するアプリケーションのメタデータ、の少なくともいずれかとして、他の情報処理システムから取得する所定データも含めて保持する、としてもよい。
これによれば、センサネットワークの範囲等を限定せず、物理センサのセンサデータを、アプリケーションの要件に応じた形態で、より柔軟かつ効率的に提供可能となる。
また、本実施形態のセンサネットワーク管理方法において、前記情報処理システムが、前記マッチング処理に際し、マッチング結果として得た複数のセンシング手段のうち、アプリケーションのメタデータが示す所定要件の全項目を満たすセンシング手段、もしくは、アプリケーションのメタデータが示す所定要件のうち一部項目を満たすセンシング手段を特定する、としてもよい。
これによれば、アプリケーションにとって最適なデータを取得出来るセンシング手段を特定し、提供する事が出来る。また、例えばアプリケーションの要件が多岐に亘るものであっても、必須のものは限定的であるといった状況に対して柔軟に対応し、必要以上に限定しない範囲でセンシング手段を特定、提供することが出来る。
また、本実施形態のセンサネットワーク管理方法において、前記情報処理システムが、前記マッチング処理に際し、アプリケーションのメタデータが示す所定要件を満たすセンシング手段を特定出来なかった場合、当該アプリケーションに対し、要件を満たすセンシング手段が特定出来なかった旨を通知する処理を更に実行する、としてもよい。
これによれば、センサネットワークでそもそも適宜なデータが得られない状況を、アプリケーションが認識し、無用な対応を回避することが可能となる。
また、本実施形態のセンサネットワーク管理方法において、前記情報処理システムが、前記マッチング処理に際し、マッチング結果として得た複数のセンシング手段に関して、所定ユーザによる選択を受け付ける処理を更に実行する、としてもよい。
これによれば、センサネットワーク管理システム側で適宜なセンシング手段を特定するのみならず、ユーザからの選択も受け付けることを可能とする。
また、本実施形態のセンサネットワーク管理システムにおいて、前記演算装置は、前記アプリケーションが、前記センシング手段により提供されるデータの利用を中止する場合、または、所定センシング手段に含まれる物理センサが利用不可となった場合、前記アプリケーションに関して構築済みである前記センシング手段におけるデータ抽出手段の削除処理を更に実行するものである、としてもよい。
また、本実施形態のセンサネットワーク管理システムにおいて、前記演算装置は、所定センシング手段に含まれるデータ抽出手段が利用不可となった場合、前記センシング手段に含まれる他の構築済みのデータ抽出手段をアンデプロイする処理を更に実行するものである、としてもよい。
これによれば、センシング手段を構成し、互いの出力を入力として連なっているデータ抽出手段らを、利用要否に応じて効率良く管理出来る。
また、本実施形態のセンサネットワーク管理システムにおいて、前記演算装置は、前記マッチング処理により特定したセンシング手段に含まれる所定のデータ抽出手段を構築する処理を更に実行するものである、としてもよい。
また、本実施形態のセンサネットワーク管理システムにおいて、前記演算装置は、前記マッチング処理により特定したセンシング手段における所定のデータ抽出手段による処理結果に、前記所定アプリケーションからアクセス可能とするためのエンドポイントを構築する処理を更に実行するものである、としてもよい。
また、本実施形態のセンサネットワーク管理システムにおいて、前記演算装置は、前記マッチング処理により特定したセンシング手段における所定の物理センサと所定のデータ抽出手段と所定のエンドポイント処理を接続する処理を更に実行するものである、としてもよい。