JVO

Webサービスに関する基本用語
Masatoshi Ohishi / NAOJ & Sokendai
大石雅寿 / 国立天文台 & 総合研究大学院大学
[email protected]
JVOシステム図
2006/07/31
2006年 VO夏の学校
ワークフロー記述言語
(XMLタグの例)
•
変数定義
– <variables> 〜 </variables>
•
逐次実行
– <sequence> 〜 </sequence>
• <variable>を要素にとる
•
• <command>などを要素にとる
外部サービス呼出
– <invoke> 〜 </invoke>
•
• <input>・<output>を要素にとる
• 属性値でサービスを指定
•
内部コマンド実行
– <command> 〜 </command>
• <input>・<output>を要素にとる
ループ処理
– <for> 〜 </for>
• 要素を順次実行する
– <parfor> 〜 </parfor>
• 要素を並列実行する
•
条件判定
– <if> 〜 </if>
BPEL4WS※をベースにして天文学解析フローを記述するためのタグを実装
※BPEL4WS = Business Process Execution Language for Web Services
複数のウェブサービスを連係させ、複雑なフローを記述できる。
2006/07/31
2006年 VO夏の学校
Web Servicesとは
• インターネットの標準技術を用いて,インター
ネット上に広く公開し提供されている情報処
理サービス
• サーバー同士が会話(通信)してサービスを
提供する
• 処理:検索,変換,加工,あるいはこれらの組
み合わせを行い,結果を返却する
• ネットショップなどはWeb Servicesの良い例
2006/07/31
2006年 VO夏の学校
Web Servicesの例
2006/07/31
2006年 VO夏の学校
Web Servicesを支える技術(1)
• 標準技術
– TCP/IP:Internet/Intranetでの標準的プロトコル。
network層がIP,トランスポート層がTCP。HTTP
やFTPのベースとなる。
– HTTP:WebサーバーとWebブラウザがデータを
送受信する非常に単純なプロトコル。
– HTML:Webページを記述する言語。人間用。
– URL:net上のWebページの場所を指示する記述
方法。
2006/07/31
2006年 VO夏の学校
Web Servicesを支える技術(2)
• 新技術
– XML:計算機同士が,その文書のデータ構造と内容を解
析できるようにした表現形式
– SOAP:XML文書をHTTP上でリクエスト/レスポンス方
式でやりとりするプロトコル。XML文書をSOAPメッセージ
という封筒に相当するものに入れ,プログラム間での受け
渡しを可能としている。
– UDDI:どのようなWebサービスがネット上のどこで提供さ
れているかを登録・検索するために仕組み。電話帳。
– WSDL:プログラムからSOAPプロトコルによりWeb
Servicesを呼び出すためのインターフェース情報。XML
で記述される。
2006/07/31
2006年 VO夏の学校
2006/07/31
2006年 VO夏の学校
XML
• eXtensible Markup Language
– タグによる記述
• 1998年にW3CがXML1.0を発表
• タグは自由に決めることができる
• 日本語要素名も使える
<空港名> 成田 </空港名>
2006/07/31
2006年 VO夏の学校
XML文書の構造
• XML宣言
• 文書型定義 = DTD
• 実データ = XML
instance
2006/07/31
2006年 VO夏の学校
XMLと・・・
• スタイルシート
– 表現形式が定義されていないXML文書をHTMLに変換するなどの際
に必要な情報を定義:XSL,XSLT
• DOM (Document Object Model),SAX (Simple API for
XML)
– XML文書をプログラムが処理するための標準インターフェース。
– DOM—XML文書のデータをオブジェクトのツリーとしてメモリに展開。
– SAX—逐次処理型のインターフェース
• XML名前空間
– 利用する要素名や属性名がどの定義に属するかを指定する
• XML Schema
– XML文書の構造を記述,内容を制約する方法を提供
– XMLの要素型や属性に関連づけることのできる基本データ型セット
を定義
2006/07/31
2006年 VO夏の学校
SOAP
• (Simple Object Access Protocol)
• Web Servicesにおいてマシン間通信のデー
タ構造を標準化
• 情報の型定義の方法と表現方法を提供
• プラットフォームに依存しない
• 通信プロトコルに依存しない
2006/07/31
2006年 VO夏の学校
SOAP message
2006/07/31
2006年 VO夏の学校
UDDI
• Universal Description, Discovery, and
Integration)
• Web Servicesの電話帳
• メタデータを登録しておく
– ビジネス情報(サービス提供者についての情報)
– サービス情報(提供されるサービスの内容や名
前)
– バインド情報(Web Servicesを呼び出すインター
フェース情報)
2006/07/31
2006年 VO夏の学校
2006/07/31
2006年 VO夏の学校
WSDL
• Web Services Description Language
• Web Servicesの仕様書
– どのようなメソッド名?
– 引数の数はいくつ? 型は?
– 通信プロトコルは?
– etc.
• サービスリクエスタは,UDDIによりリソースを
発見し,WSDLによりアクセス方法を知ること
ができる
2006/07/31
2006年 VO夏の学校
WDSLの構造
[WDSLインターフェース記述]
<type>
送受信メッセージの定義に使用するデータタイプの定義
</type>
<message>
送受信メッセージのデータフォーマットの定義
</message>
<portType>
メッセージ群をまとめて論理的な操作のインターフェースを定義
</portType>
<binding>
論理的な操作とプロトコルの結びつけを定義
</binding>
[WSDLインプリメント記述]
<service>
サービスのエンドポイントの物理的な位置を定義
<port>
bindingとアドレスの組み合わせでエンドポイントを定義
</port>
</service>
2006/07/31
2006年 VO夏の学校