Comments
Transcript
Domain Cross Over Services Markup Language
CroSSML : Domain Cross Over Services Markup Language 岩井将行 Masayuki Iwai , Graduate School of Media and Governance, Keio University 5322 Endoh, Fujisawa, Kanagawa 252-8520, Japan [email protected] Abstract CroSSML ( Domain-Crossover Services Markup Language)は、サービスメタ情報を XML で再 帰的に定義し、異種ドメイン間を相互に登録・ 検索・利用を可能にする枠組みである。WEB サ ー ビ ス の 記 述 系 WSDL[11] と 発 見 機 構 UDDI[10] と異なり、サービスの不安定さを考 慮した Lease 機能や位置情報を柔軟に扱う機能、 アクセスコントロール機能を備えている。 ネットワークロボットやユビキタスサービスな ど異なるドメインのサービス間を連携させるこ とを目的としている。 本稿では異種ドメイン間接続するサービス発見 機構 CroSSML の概要について述べる。 1. CroSSML について 1.1 目的とシナリオ CroSSML の目的はユビキタスサービスとの間の ドメインを超えたサービスの相互利用を促進する。 以下にドメインを超えたサービス間連携の例を示 す。 9 (連携例 1)ユーザが歩いた軌跡をアクティブ RFID や無線 Lan の電波状況により補足して いるユビキタス測位サービスがある。いま までに歩いた軌跡をその場のロボットに音 声通話により教えてもらう。 9 (連携例 2)ロボットはユーザ登録しておいた 行き先の地図と混雑状況をユーザに映像と 音声で通知する。映像は最も近くのディス プレイに対して表示を依頼する。 9 (連携例3)ユーザが道に迷っているかどうか をユーザのジャイロ端末から把握し、ユー ザに近いロボットが行き先を音声でアドバ イスする。 9 (連携例 4)ユーザが買い物の履歴、見たもの、 触ったものなどを手元の小型RFIDリー ダに実空間ブックマークしておく。情報 (或いは自分のプロファイル)の一部をそ の場のロボットに預かってもらう。再度買 い物に来たときに以前に気になったものを 推薦してくれる。 (連携例 5)ユーザが小型のロボットと買い物 から帰ってくると、自動でドアを開ける。 同時にユビキタス屋内制御システムに命令 をだし。室内の温度や照明サービスに最適 にするようにロボットが命令をだす。 9 (連携例 6)ユーザが室内を暫く不在にするこ とを屋内人感センサーが検知するとロボッ トが電灯を自動で消灯する。さらに家族全 員外出したと屋内システムが判断するセキ ュリティシステム作動と全部屋の消灯の機 能をロボットが実行し、窓の開閉をロボッ トカメラで確認する。 9 (連携例 7)ユーザの携帯電話にその日あった 家庭内の出来事をロボットが写真つきで Web にあげる。不審者情報、宅配便、ペッ トの様子などは同時にメールする。 以上の様なシナリオを想定し、位置情報のシーム レスなあつかいと異種サービス間の発見容易性を 考慮しながら CrossML を開発する。 9 1.2 定義 本稿で議論を進めるにあたって必要になる ServiceSolid と Service の二つの言葉を以下のよう に定義する。 SericeSolid とはC,C++,Java,C#などの言語で技 術され、そのランタイム上で動作するプログラム の実体をさす。Socket(ある今さらに上位層のプロ トコル SOAP,RMI[9])の追伸により他のコミュニ ケーションが可能とする。実世界に対するセンサ ー や モ ー タ な ど 影 響 力 を 持 つ 。 Service と は 、 ServiceSolid の機能の部分集合を概念レベルで切 り出したものでひとつに ServiceSolid から複数の Service が切り出すことも可能とする。 2 CroSSML の記述 CroSSML により Service がどのように記述され、 登録に利用されるのかを述べる。 (2-1)CroSSML の全体構成 CroSSML は head 部分と body 部分からなる。 <service xmlns:ss="http://www.CroSSML.org/def/service"> <head> メタ情報,他の Service との連携方針 </head> <body> ServiceSolid に対するアクセス方法 Service 自身の内部の構成情報 </body> </service> つまりサービス記述は、CroSSML のディレク トリ管理サーバ(CroSS サーバ)が保持するか一 定時間しか保持しない。 CroSSMLで記述されたService CroSSML管理サーバ (2-2)head 部分の概要 <head> <!-- CROSS サーバに対するリース情報(省略可) --> <ss:leasing></ss:leasing> <!-- サービスの名前に関する情報(省略不可) --> <ss:naming></ss:naming> <!-- サービスの物理的位置(省略可) --> <ss:location xmlns:loc:="http://www.CroSSML.org/def/loc"></ss:location> <!-- サービスの作成者情報(省略可) --> <ss:auther></ss:auther> <!-- サービスの起動者の情報(省略可) --> <ss:launcher></ss:launcher> <!-- サービス詳細情報 --> <ss:description lang="ja-JP"></ss:description> <ss:level> 2 </ss:level> <!-- サービス合成の方針に関する記述(省略可) --> <ss:compositionControl xmlns:rule="http://www.CroSSML.org/def/rule"> </ss:compositionControl> <!-- サービス利用の認証方法に関する記述(省略可) --> <ss:authenticaction xmlns:auth="http://www.CroSSML.org/def/auth"> </ss:authenticaction> </head> (2-3)body タグの概要 <body> <!-- 自身を構成するサービス群の情報 --> <ss:elementServices> </ss:elementServices> <!-- ServiceSolid に対するアクセス手法の記述 --> <ss:soloidAccess xmlns:access="http://access.definition.org"> </ss:soloidAccess> </body> 以下に各タグの詳細を述べる。 (2-4)Lease タグ サーバが管理するサービスの数が膨大になる可 能性がある。量的なスケールを実現させるため Lease 機構を使う。Jini[12]の Lease 機構を参考 にしている。Lease とは限られた期間しか情報 を Directory に保持せず、Directory に半永久的 に情報を残したいときは Lease 更新を常に行う ことが義務つけられる(図 1参照)。 ServiceSolid Leaseによる管理 図 1ServiceSolidのLease更新 リース時間内は、サービス記述を CroSS サーバ が保持する。 しかし、ServiceSolid の永続的な存在を信頼で きないものとして一定期間しかサーバが保持し ない。サーバは負荷が高くなるとリース期間を 短くする。 リースを依頼する場合は以下のタグにリースの 長さを記載する。 leaseTimeMinimum: サービス側から最低限保証してもらいたいリー ス時間 leaseTimeRequired: サービス側が望むリース時間 サーバは leaseTimeMinimum<実際のリース時 間 < leaseTimeRequired の 期 間 で 実際のリース時間を決定し ServiceSolid に通知 する。 (2-5)Naming タグ 名前付けに関するタグ。複数種類の名前を許 すが fullName,SerialID は全世界で唯一になる ことが望ましい。 nickName: fullName:名前体系のもとに決定 serialID:uuid,EPC Abilities タグは Naming タグの一部である。 そのサービスが持つ機能一覧を表す。 communicator:speaking:Japanese (2-6)Location タグ ….第 3 章で詳しく記載する。 (2-7)auther タグ ServiceSolid の開発者の情報を記載する。 <ss:author> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdfsyntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <foaf:Person> <foaf:name>Masayuki Iwai</foaf:name> <foaf:mbox rdf:resource="mailto:[email protected]" /> <foaf:depiction rdf:resource="http://example.org/photos/tailor.jpg" /> </foaf:Person> </rdf:RDF> </ss:author> (2-8) launcher タグ サービスの起動した人の情報(2-7)と同様に記載 する。 (2-9)level タグ Service 合成の Level(深さ)を表すタグである。 AotmicSerivice の Level は 1 になり Level1 同士を組合せたものは Level2 になる。 Level2 と Level1 を組合せると Level3 になる。 構成要素の最大の深さ+1 で表記する。 (2-9) compositionControl タグ 合成に対する制約をつけるタグである。以下に 詳細を述べる compositableServiceLevel -合成可能なレベルの定義が必要な場 合に使用する。 compositableServiceAuthers -合成可能なサービスの作者を限定す ることが必要な場合に使用する。 compositableServiceLanchers -合成可能なサービスの利用者を限定 することが必要な場合に使用する。 compositableServiceLocation -合成可能サービスエリアを限定する ことが必要な場合に使用する。 (2-10) soloidAccess タグ ServiceSolid に対するアクセス方法 access:solidAccessGUI:WEB インタフェ ースなどの GUI のポインター access:solidAccessMethod : XML-RPC[6] 、 RMI[9]、UPnP[7]、EchoNet[8]など他のサービス からのアクセス方法を記載する。 3 CroSSML における位置情報 本章では CroSSML の位置情報の扱いの特徴につ いて述べる。 3.1 存在位置の情報 静的位置情報(階層的な住所記載)としては一般 的な住所記載を用いる。しかし木構造として扱い にくい位置情報は既存の研究成果[1,2]を今後取り 入れてもよい。 <loc:address contry="Japan" city="Fijisawa" zipcode="252-8520"> <loc:street> 5322Keio-SFC</loc:street> <loc:building>Delta</loc:building> <loc:room>s213</loc:room> </loc:address> area="Endo" GPS データを用いた記述 <loc:gps type="latitude" N="34.23.19" E="139.25.32"/> 動的位置情報の記載 頻繁に位置情報が変わるものには処理を追いつけ るため、リアルタイム性を有する場合には位置情 報問い合わせ先を記載させる。 <loc:locationInformationServer ref=http:// location..crossml.org/gps/?serviceid=12345677”> 3.2 影響範囲の情報 CroSSML では既存の位置情報を扱う記述形の研 究[3,4]にはない、 サービスが影響を与えることができる範囲を規定 する。図 2のように幾何学的に定義する。 例えばディスプレイでは背面にいるユーザは映像 をみるという恩恵を受けることができないため back=0m になる。 Direct Mode CroSSServer SeriveA ServiceB (1)登録 CroSSML ServiceSolid A ServiceSolid B front (2)検索 四角形の影響範囲 (3)検索結果 (4)Direct Access (N34.23,S139.25) r 円形の影響範囲 図2 影響範囲の表記法 サービスの位置情報からの相対的距離で規定する か絶対座標系を使って定義させる。影響を与える 範囲が動的に変わる場合は別に問い合わせ先を定 義する。 図3 ServiceSolidが直接サーバに登録 Indirect Mode では間接プロキシを経由してサービ スを登録させる。 サービス間の通信はプロキシを経由して行う。 (図 4参照) Indirect Mode ServiceA CroSSServer ServiceFlowDB ServiceB WrapperServiceProxy (1)登録 ServiceSolid A (2)Wrapper CroSSML ServiceSolid B (2)検索 (3)検索結果 <!-- サービスの影響できる範囲。--> <loc:serviceScope> <!– 相対表記。--> <loc:relativeScope type="square"> <loc:front>1m</loc:front> <loc:back>0m</loc:back> <loc:right>1m</loc:right> <loc:left>1m</loc:left> </loc:relativeScope> <!– 絶対表記。--> <loc:absoluteScope type="cirlce"> <loc:center> <loc:gps type="latitude" N="34.23.19" E="139.25.32"/> </loc:center> <loc:radius>10m</loc:radius> </loc:absoluteScope> </loc:serviceScope> 4 (4)Indirect Access (5)Access 図4 Proxyを介したサービス登録 サーバがない場合は Ad-hoc モードで動作する。 Service 側からマルチキャストパケットを定期的 に送信する。(図 5参照) Ad-hoc Proactive Mode ServiceA ServiceB (1)定期的告知(マルチキャスト、エニキャスト) ServiceSolid A CroSSML ServiceSolid B CroSSML の登録・発見手順 CroSSML の特徴として複数のサービス間の発見 と検索のモードを用意している。 Direct Mode(図 3)では個々の ServiceSolid が 直接 CroSSServer に登録する。別の SericeSolidB は CroSSServer を発見後、Service 間で直接的に通 信を行う。 (2)Direct Access 図5 サーバを介さないad-hocモード サーバを介さなくても、検索側から定期的に、あ るいは任意のタイミングで問い合わせをするモデ ル(図 6参照)がある。 Ad-hoc Reactive Mode ServiceA 支払い、購入意欲、生活の改善 開発・販売 動作安全確認 利用 開発者 ユーザ ServiceB サービス ServiceSolid A (1)サービス検索(マルチキャスト、エニキャスト) 公開 ServiceSolid B 付加価値・収益 別のサービス 提供者 (2)CroSSML送信 図8 (3)Direct Access 図 6 検索者が任意のタイミングでCroSSML 情報の転送を要求 サービスの改竄を防ぐため、CA を置き、登録 Service の正当性を保障させるモデルを容易する。 (図 7参照) Certificated Mode CroSSServer ServiceA CA Service B (1)登録 ServiceSolid A CroSSML ServiceSolid B (2)認証依頼 (3)登録許可 (4)検索 (5)クエリ認証依頼 (6)検索許可 (7)検索結果 (8)利用依頼/利用許可 (9)Direct Access 図7 5 署名モデル CroSSML のアクセスコンロトール CroSSML は認証機構の一部として3者間のアク セスコントロール機能を有する。 ひとつのサービスには開発者、提供者、ユーザの 3 者が関わっているため、それぞれの立場からア クセス制御可能なアクセルコントロールである。 3者間のアクセスコントロール 図 8で示したように Players は3人いる。 開発者とは Developers であり、サービスの実体を 開発した組織・人をさす。 提供者とは Launchers (Service Providers)であり サービスをユーザに提供する組織・人である。 提供者は発者と同一の場合もある。 利用者はサービスを使うあるいは使おうとして いるユーザ自身である。 各立場からのアクセスコントロールの必要性をの べる。 開発者への制限 利用者にとって○○事務所が開発した製品 は利用したくない。 提供者にとって開発者が不明なものを顧客 に提供するのは控えたい 起動者(サービス提供者)への制限 開発者にとって、起動者を制限させ、お金 を払って利用している起動者のみにサービ スを提供したい。 利用者にとって公共団体が運営しているサ ービスなら安心して利用できる。 ユーザへの制限 開発者にとって 一定年齢以下のユーザには提供で きない 安全のため一定人数以下に利用を 制限したい。 提供者にとって 料金をはらっているユーザのみに サービスの提供を制限したい。 あるユーザの利用時間を制限した い アクセスコントロールタグの例 <authenticaction> <auth:denyList> <usersList></usersList> <developersList></developersList> <providersList></providersList> </auth:denyList> <authRules> Rule ML[5] で様々な制約を記述 </authRules> </authenticaction> REFERENCES 1. On a Location Model for Fine-Grained Geocast. Dürr, Frank; Rothermel, Kurt: In: Dey, Anind K. (ed.); Schmidt, Albrecht (ed.); McCarthy, Joseph F. (ed.): Proceedings of the Fifth International Conference on Ubiquitous Computing : UbiComp '03 ; Seattle, WA, Oct. 12-15, 2003. Lecture Notes in Computer Science; 2864, pp. 18-35, Springer-Verlag, October 12, 2003. ISBN: 3-540-20301-X. 2. Information Management and Exchange in the Nexus Platform, Bauer, Martin; Dürr, Frank; Geiger, Jan; Grossmann, Matthias; Hönle, Nicola; Joswig, Jean; Nicklas, Daniela; Schwarz, Thomas:. University of Stuttgart : Special Research Area SFB 627 (Nexus: World Models for Mobile Context-Based Systems), Technical Report No. 04.58 pages 3. Road Web Markup Language (RWML) 4. NaVigation Markup Language (NVML)W3C Note 6 Aug 1999 http://www.w3.org/TR/NVML Minoru Sekiguchi, Fujitsu Laboratories Ltd., 5. RuleML Rule Markup Language Initiative, http://www.ruleml.org and http://www.mit.edu/~bgrosof/#RuleML. 6. xml-rpc XML-RPC Specification Tue, Jun 15, 1999; by Dave Winer. Updated 6/30/03 DW SOAP Simple Object Access Protocol W3C Note 08 May 2000 http://www.w3.org/TR/soap/ 7. UPnP Universal Plug and Play. http://www. upnp.org/. 8. Echonet ECHONET Consortium http://www.echonet.gr.jp/ 9. RMI A. Wollrath, R. Riggs, and J. Waldo, “A Distributed Object Model for the Java System,” USENIX Computing Systems, vol. 9, November/December 1996. 10. UDDI Universal description discovery and integration (UDDI). http://www.uddi.org, 2001. 11. WSDL Web service description language http://www.w3.org/TR/wsdl Erik Christensen, Microsoft W3C Note 15 March 2001 12. Jini J. Waldo. The Jini architecture for networkcentric computing. Communications of the ACM, 42(10):76–82, Oct. 1999.