1. 概要 Live E! プロファイル登録 I/F 仕様 --- ProfileManagement200703 --- 東京大学落合秀也 奈良先端科学技術大学院大学松浦知史 作成 : 2008-10-10 最終更新 : 2009-02-28 本仕様書は,Live E! 広域センサネットワークへのセンサプロファイルを登録するための インタフェース (I/F) について定義している.Live E! のサービスは, 図 1 に示すように, プ ロファイル登録 I/F, データ アップロード I/F, データ読出し I/F があるが, 本仕様書で は, このうちのプロファイル登録 I/F について記述する. 図 1: Live E! サービスの概要 Live E! サービスは, 実際には複数のサーバによってオーバレイ ネットワークとして実装される. この 3 種類の I/F は, サーバごとに用意されている. ユーザは, あるサーバの運用組織 (Live E! サービスプロバイダ ) と契約を結び, そのサーバの I/F を利用することで, Live E! サービスを使うことができる.
2. プロファイル登録 I/F プロファイル登録 I/F は,SOAP/XML Web サービスの形態で公開される. サービス名お よびメソッドは, 次のように定義される. << サービス名 >> ProfileManagement200703 << メソッド >> String getavailablelocales(); String getprofile(string id); String getprofileall(string timezone,string locale); String getprofileschema(); String setprofile(string profile); String updatepassword(string id,string old_passwd, String new_passwd); サービス呼出し方法 (Perl Script の例 ) #!/usr/bin/perl use strict; use warnings; use SOAP::Lite; # プロファイルを用意 ( フォーマッティング ) する $profile=... ; # データの送信 my $server = SOAP::Lite -> service('http://live-e2.hongo.wide.ad.jp/axis/services/profilemanagement200703?wsdl'); my $res = $server-> setprofile($profile); # 応答のチェック ( エラーチェック等 )
2.1. String getavailablelocales(); 利用可能な言語ロケール情報を取得する. getavailablelocales は次の値を戻り値として返す. 成功の場合 利用可能な言語 Locale 情報 << 呼出し結果の例 >> <?xml version="1.0" encoding="utf-8"?> <locales xmlns="http://live-e.org/schema/2007/03/"> <locale code="chi" name="chinese"/> <locale code="eng" name="english"/> <locale code="fre" name="french"/> <locale code="ger" name="german"/> <locale code="jpn" name="japanese"/> <locale code="kor" name="korean"/> <locale code="tha" name="thai"/> </locales>
2.2. String getprofile(string id); 指定したセンサ ID のプロファイルを, 言語ロケール指定なしで読み込む.ID の指定は, 複合センサ単位で行う. getprofile は次の値を戻り値として返す. 成功の場合 指定したセンサのプロファイル情報 sensornotfound: 指定したセンサが存在しない << 呼出し結果の例 >> getprofile( soum.co.jp/wm918/mito01/ ); の結果, <?xml version="1.0" encoding="utf-8"?> <sensorgroup address_eng="1-6-8 Goken-cho, Mito-shi, Ibaraki 310-0063 JAPAN" address_jpn="" class="combined" id="soum.co.jp/wm918/mito01/" latitude="36.38055" location_eng="art TOWER MITO" location_jpn="" longitude="140.46585" sensormodel="wm918" sensorvendor="ambientweather" xmlns="http://live-e.org/datatype/2007/03/"> <sensor id="soum.co.jp/wm918/mito01/temperature" sensortype="temperature"/> <sensor id="soum.co.jp/wm918/mito01/humidity" sensortype="humidity"/> <sensor id="soum.co.jp/wm918/mito01/pressure" sensortype="pressure"/> <sensor id="soum.co.jp/wm918/mito01/rainfall" sensortype="rainfall"/> <sensor id="soum.co.jp/wm918/mito01/winddir" sensortype="winddir"/> <sensor id="soum.co.jp/wm918/mito01/windspeed" sensortype="windspeed"/> </sensorgroup>
2.3. String getprofileall(string timezone, String locale); 指定した timezone,locale の表記で, サーバに登録されているプロファイルのすべてを読み出す. 運用ユーザによる管理 ( リストアップ ) の用途で利用することが想定されている. 詳細プロファイルの読み出しは,getProfile(String id) によって行う. getprofileall は次の値を戻り値として返す. 成功の場合 サーバに登録されているセンサのプロファイル全体 outofmaxsize: 複合センサ数がシステム設定値 (maxsensorcollectioncount) よりも多く存在する
2.4. String getprofileschema(); Live E! システム全体で定義されている, 現在のプロファイルスキーマを取得する. 各プ ロファイルは, このスキーマに従って記述され,Verify されなければならない. getprofileschema は次の値を戻り値として返す. 成功の場合 現在のプロファイルスキーマ << 呼出し結果の例 >> <?xml version="1.0" encoding="utf-8"?> <profileschema xmlns="http://live-e.org/schema/2007/03/"> <schema class="combined element" name="longitude" type="float" value=".*"/> <schema class="combined element" name="sensorvendor" type="string" value="vaisala AmbientWeather AAG Davis Ubiteq MatsushitaDenko TriState"/> <schema class="value" name="time" type="time" value=".*"/> <schema class="element" name="accuracy" type="float" value=".*"/> <schema class="combined" name="road" type="string" value=".*"/> <schema class="combined" name="cameraurl" type="string" value=".*"/> <schema class="combined element" name="altitude" type="float" value=".*"/> <schema class="element" name="sensortype" type="string" value="temperature Humidity Pressure DayRainFall RainFall WindSpeed WindDir CO2 SolarPower Illuminance AccelerationX AccelerationY Soil_Moisture Soil_Temperature Solar_Radiation"/> <schema class="element" name="error" type="float" value=".*"/> <schema class="combined element" name="sensormodel" type="string" value="wxt510 WM918 WM928 WMR968 VantagePRO WSN-100X FS-Va-01 PICNICv12 TAI8515"/> <schema class="combined element" name="latitude" type="float" value=".*"/> <schema class="combined" multilanguage="true" name="address" type="string" value=".*"/> <schema class="combined" multilanguage="true" name="location" type="string" value=".*"/> <schema class="combined element" name="galtitude" type="float" value=".*"/> </profileschema>
2.5. String setprofile(string profile); プロファイルの登録を複合センサ単位で行う. 登録のためのパスワードは,authorization 属性として Base64 エンコーディング後,profile の中に埋め込む. 引数 profile のデータフォーマット定義 <?xml version= 1.0 encoding= UTF-8?> <sensorgroup class= combined id= SENSOR_COMBINED_ID authorization = BASE64_ENCODED_PASSWD [(COMBINED_ATTR)*] xmlns= http://live-e.org/datatype/2007/03/ > <sensor id= SENSOR_ELEMENT_ID [(ELEMENT_ATTR)*] /> <sensor /> の繰り返し </sensorgroup> ユーザ設定項目 項目 SENSOR_COMBINED_ID SENSOR_ELEMENT_ID BASE64_ENCODED_PASSWD COMBINED_ATTR ELEMENT_ATTR 意味複合センサの ID 単体センサの ID 書込み時に ID に対する認証を行うためのパスワード (Base64 エンコードしたもの ) 複合センサ ID に対するパスワードを設定する複合センサに対して与えられる属性. 利用可能な属性は, プロファイルスキーマによって定義される. 例 1: センサの緯度経度情報を latitude= 35.314 longitude= 135.231 などとして埋め込む例 2: センサのベンダ名 sensorvendor= Vaisala 単体センサに対して与えられる属性. 利用可能な属性は, プロファイルスキーマによって定義される. 例 1: センサの観測タイプ sensortype= Temperature 例 2: 有効観測範囲 valuemax= 40.0 valuemin= -10.0 例 3: 観測データの単位
measurementtype= Celsius 多言語属性について ProfileShema において,multilanguage= true となっている項目は, プロファイル登録時に各言語での記法を同時に登録する必要がある.ATTR = 属性名 _ 言語コードのフォーマットで記述して登録する. 例えば, <schema class= combined name= address multilanguage= true type= string value=.* /> と ProfileSchema で定義されている場合.COMBINED_ATTR としては,address_jpn, address_eng などを用いて, address_jpn= 東京都文京区本郷 7-3-1 東京大学工 2 号館 address_eng= Bld. 2 of Engineering Dpt. University of Tokyo, 7-3-1 Hongo, Bunkyo, Tokyo, Japan などとする. なお, 利用可能な言語コードは,getAvailableLocales() で取得できる. setprofile は次の値を戻り値として返す. 成功の場合 <true /> authentication: 認証エラー (ID もしくはパスワードが不正 ) 失敗時にはプロファイルは登録されない.
2.6. String updatepassword(string id, String old_passwd, String new_passwd); 複合センサ ID のアクセスパスワード ( プロファイル登録およびデータ アップロードで センサ認証するためのパスワード ) の変更を行う. 引数とその意味 String id パスワードを変更する複合センサの ID String old_passwd 旧パスワード (Base64 エンコードされていること ) String new_passwd 新パスワード (Base64 エンコードされていること ) updatepassword は次の値を戻り値として返す. 成功の場合 <true /> authentication: 認証エラー (ID もしくはパスワードが不正 ) 失敗時にはパスワードは更新されない.