simple object access protocol - 一般財団法人インター …...
TRANSCRIPT
SOAPSOAPSimple object Access ProtocolSimple object Access Protocol
マイクロソフト株式会社マイクロソフト株式会社マイクロソフト株式会社マイクロソフト株式会社シニアテクニカルエバンジェリストシニアテクニカルエバンジェリストシニアテクニカルエバンジェリストシニアテクニカルエバンジェリスト萩原正義萩原正義萩原正義萩原正義テクニカルエバンジェリストテクニカルエバンジェリストテクニカルエバンジェリストテクニカルエバンジェリスト野村一行野村一行野村一行野村一行
SOAPSOAPとは何かとは何かとは何かとは何かとは何かとは何かとは何かとは何か??
構造化された情報を交換するための構造化された情報を交換するための構造化された情報を交換するための構造化された情報を交換するための構造化された情報を交換するための構造化された情報を交換するための構造化された情報を交換するための構造化された情報を交換するためのXMLXMLベベベベベベベベースの軽量プロトコルースの軽量プロトコルースの軽量プロトコルースの軽量プロトコルースの軽量プロトコルースの軽量プロトコルースの軽量プロトコルースの軽量プロトコル
単純さと拡張性に重点をおいている単純さと拡張性に重点をおいている単純さと拡張性に重点をおいている単純さと拡張性に重点をおいている単純さと拡張性に重点をおいている単純さと拡張性に重点をおいている単純さと拡張性に重点をおいている単純さと拡張性に重点をおいているプログラミングモデルやアプリケーションのセマンプログラミングモデルやアプリケーションのセマンプログラミングモデルやアプリケーションのセマンプログラミングモデルやアプリケーションのセマンプログラミングモデルやアプリケーションのセマンプログラミングモデルやアプリケーションのセマンプログラミングモデルやアプリケーションのセマンプログラミングモデルやアプリケーションのセマンティクスは定義しないティクスは定義しないティクスは定義しないティクスは定義しないティクスは定義しないティクスは定義しないティクスは定義しないティクスは定義しない
高い拡張性を持つ高い拡張性を持つ高い拡張性を持つ高い拡張性を持つ高い拡張性を持つ高い拡張性を持つ高い拡張性を持つ高い拡張性を持つ
二つの主なパート二つの主なパート二つの主なパート二つの主なパート二つの主なパート二つの主なパート二つの主なパート二つの主なパートデータをエンカプセレートするためのエンベロープデータをエンカプセレートするためのエンベロープデータをエンカプセレートするためのエンベロープデータをエンカプセレートするためのエンベロープデータをエンカプセレートするためのエンベロープデータをエンカプセレートするためのエンベロープデータをエンカプセレートするためのエンベロープデータをエンカプセレートするためのエンベロープ
アプリケーションで定義されたデータタイプとグラアプリケーションで定義されたデータタイプとグラアプリケーションで定義されたデータタイプとグラアプリケーションで定義されたデータタイプとグラアプリケーションで定義されたデータタイプとグラアプリケーションで定義されたデータタイプとグラアプリケーションで定義されたデータタイプとグラアプリケーションで定義されたデータタイプとグラフのインスタンスを表現するためのエンコーディンフのインスタンスを表現するためのエンコーディンフのインスタンスを表現するためのエンコーディンフのインスタンスを表現するためのエンコーディンフのインスタンスを表現するためのエンコーディンフのインスタンスを表現するためのエンコーディンフのインスタンスを表現するためのエンコーディンフのインスタンスを表現するためのエンコーディングルールグルールグルールグルールグルールグルールグルールグルール
SOAP SOAP ““oniononion””HTTP マッピングされたマッピングされたマッピングされたマッピングされた SOAP
メソッド要求インスタンスメソッド要求インスタンスメソッド要求インスタンスメソッド要求インスタンス
SOAP エンベロープエンベロープエンベロープエンベロープ
Element Normal Form
XML スキーマ定義言語スキーマ定義言語スキーマ定義言語スキーマ定義言語 (オプションオプションオプションオプション)
XML 1.0 + 名前空間名前空間名前空間名前空間
44444444つの構成要素つの構成要素つの構成要素つの構成要素つの構成要素つの構成要素つの構成要素つの構成要素
拡張可能なエンベロープ表現拡張可能なエンベロープ表現拡張可能なエンベロープ表現拡張可能なエンベロープ表現拡張可能なエンベロープ表現拡張可能なエンベロープ表現拡張可能なエンベロープ表現拡張可能なエンベロープ表現 ((((((((必須)必須)必須)必須)必須)必須)必須)必須)
どんな特徴やサービスをメッセージとして表現するかどんな特徴やサービスをメッセージとして表現するかどんな特徴やサービスをメッセージとして表現するかどんな特徴やサービスをメッセージとして表現するかどんな特徴やサービスをメッセージとして表現するかどんな特徴やサービスをメッセージとして表現するかどんな特徴やサービスをメッセージとして表現するかどんな特徴やサービスをメッセージとして表現するか
誰がそれらを扱うか誰がそれらを扱うか誰がそれらを扱うか誰がそれらを扱うか誰がそれらを扱うか誰がそれらを扱うか誰がそれらを扱うか誰がそれらを扱うか
それらは必須か、オプションかそれらは必須か、オプションかそれらは必須か、オプションかそれらは必須か、オプションかそれらは必須か、オプションかそれらは必須か、オプションかそれらは必須か、オプションかそれらは必須か、オプションか
データのエンコーディングルールデータのエンコーディングルールデータのエンコーディングルールデータのエンコーディングルールデータのエンコーディングルールデータのエンコーディングルールデータのエンコーディングルールデータのエンコーディングルール ((((((((オプション)オプション)オプション)オプション)オプション)オプション)オプション)オプション)
アプリケーション定義のデータタイプと有向グラフのインスタアプリケーション定義のデータタイプと有向グラフのインスタアプリケーション定義のデータタイプと有向グラフのインスタアプリケーション定義のデータタイプと有向グラフのインスタアプリケーション定義のデータタイプと有向グラフのインスタアプリケーション定義のデータタイプと有向グラフのインスタアプリケーション定義のデータタイプと有向グラフのインスタアプリケーション定義のデータタイプと有向グラフのインスタンス化と交換ンス化と交換ンス化と交換ンス化と交換ンス化と交換ンス化と交換ンス化と交換ンス化と交換
実行時に確定される型なども含めたシリアル化の統一モデル実行時に確定される型なども含めたシリアル化の統一モデル実行時に確定される型なども含めたシリアル化の統一モデル実行時に確定される型なども含めたシリアル化の統一モデル実行時に確定される型なども含めたシリアル化の統一モデル実行時に確定される型なども含めたシリアル化の統一モデル実行時に確定される型なども含めたシリアル化の統一モデル実行時に確定される型なども含めたシリアル化の統一モデル
RPC RPC を表現するための規約を表現するための規約を表現するための規約を表現するための規約を表現するための規約を表現するための規約を表現するための規約を表現するための規約 ((((((((オプションオプションオプションオプションオプションオプションオプションオプション))))))))
呼び出しと応答の方法呼び出しと応答の方法呼び出しと応答の方法呼び出しと応答の方法呼び出しと応答の方法呼び出しと応答の方法呼び出しと応答の方法呼び出しと応答の方法
HTTP HTTP バインディングバインディングバインディングバインディングバインディングバインディングバインディングバインディング ((((((((オプション)オプション)オプション)オプション)オプション)オプション)オプション)オプション)
SOAPSOAPのメッセージ構造のメッセージ構造のメッセージ構造のメッセージ構造のメッセージ構造のメッセージ構造のメッセージ構造のメッセージ構造
SOAP メッセージメッセージメッセージメッセージ
SOAP エンベロープエンベロープエンベロープエンベロープ
SOAP ヘッダヘッダヘッダヘッダ
SOAP 本体本体本体本体
メッセージ名メッセージ名メッセージ名メッセージ名 & データデータデータデータ
ヘッダ情報ヘッダ情報ヘッダ情報ヘッダ情報
ヘッダヘッダヘッダヘッダ
XMLXMLエンコードされたメッセージ名とデータエンコードされたメッセージ名とデータエンコードされたメッセージ名とデータエンコードされたメッセージ名とデータエンコードされたメッセージ名とデータエンコードされたメッセージ名とデータエンコードされたメッセージ名とデータエンコードされたメッセージ名とデータ
<<Body> Body> によるによるによるによるによるによるによるによるSOAPSOAPメッセージ本体の宣言メッセージ本体の宣言メッセージ本体の宣言メッセージ本体の宣言メッセージ本体の宣言メッセージ本体の宣言メッセージ本体の宣言メッセージ本体の宣言
個々のヘッダ個々のヘッダ個々のヘッダ個々のヘッダ個々のヘッダ個々のヘッダ個々のヘッダ個々のヘッダ
<<Header> Header> によるヘッダ宣言によるヘッダ宣言によるヘッダ宣言によるヘッダ宣言によるヘッダ宣言によるヘッダ宣言によるヘッダ宣言によるヘッダ宣言
<<Envelope> Envelope> によるペイロード封入によるペイロード封入によるペイロード封入によるペイロード封入によるペイロード封入によるペイロード封入によるペイロード封入によるペイロード封入
プロトコルバインディングヘッダプロトコルバインディングヘッダプロトコルバインディングヘッダプロトコルバインディングヘッダプロトコルバインディングヘッダプロトコルバインディングヘッダプロトコルバインディングヘッダプロトコルバインディングヘッダ
仕様:仕様:仕様:仕様:仕様:仕様:仕様:仕様:http://www.w3.org/TR/SOAP/http://www.w3.org/TR/SOAP/((((((((日本語訳:日本語訳:日本語訳:日本語訳:日本語訳:日本語訳:日本語訳:日本語訳:http://www.http://www.microsoftmicrosoft.com/.com/japanjapan/developer/workshop//developer/workshop/xmlxml/general//general/soapspecsoapspec.asp.asp))))))))
Web ServicesWeb Servicesでの位置付けでの位置付けでの位置付けでの位置付けでの位置付けでの位置付けでの位置付けでの位置付け
Data
Schema
Services
Invocation
Framework
Objects
Classes
Methods
Calls
Web
XML
XSD
WSDL
ApplicationConcepts
SOAPSOAP
SOAPSOAPのののののののの意義意義意義意義意義意義意義意義
ミドルウェアなどに依存しないデータ交換手ミドルウェアなどに依存しないデータ交換手ミドルウェアなどに依存しないデータ交換手ミドルウェアなどに依存しないデータ交換手ミドルウェアなどに依存しないデータ交換手ミドルウェアなどに依存しないデータ交換手ミドルウェアなどに依存しないデータ交換手ミドルウェアなどに依存しないデータ交換手法の確立:システム間のゆるやかな連携によ法の確立:システム間のゆるやかな連携によ法の確立:システム間のゆるやかな連携によ法の確立:システム間のゆるやかな連携によ法の確立:システム間のゆるやかな連携によ法の確立:システム間のゆるやかな連携によ法の確立:システム間のゆるやかな連携によ法の確立:システム間のゆるやかな連携による疎結合化る疎結合化る疎結合化る疎結合化る疎結合化る疎結合化る疎結合化る疎結合化
機能が必要な時に機能を探し出して結合す機能が必要な時に機能を探し出して結合す機能が必要な時に機能を探し出して結合す機能が必要な時に機能を探し出して結合す機能が必要な時に機能を探し出して結合す機能が必要な時に機能を探し出して結合す機能が必要な時に機能を探し出して結合す機能が必要な時に機能を探し出して結合する事が実現:る事が実現:る事が実現:る事が実現:る事が実現:る事が実現:る事が実現:る事が実現:LL………………..ate Binding..ate Binding
SOAP SOAP への誤解への誤解への誤解への誤解への誤解への誤解への誤解への誤解
SOAP SOAP はははははははは RPC RPC のみ表現可能のみ表現可能のみ表現可能のみ表現可能のみ表現可能のみ表現可能のみ表現可能のみ表現可能
SOAP SOAP はプログラミングモデルを定義するものではないはプログラミングモデルを定義するものではないはプログラミングモデルを定義するものではないはプログラミングモデルを定義するものではないはプログラミングモデルを定義するものではないはプログラミングモデルを定義するものではないはプログラミングモデルを定義するものではないはプログラミングモデルを定義するものではない
メッセージング、メッセージング、メッセージング、メッセージング、メッセージング、メッセージング、メッセージング、メッセージング、RPCRPC、、、、、、、、分散オブジェクトシステムなどで利用分散オブジェクトシステムなどで利用分散オブジェクトシステムなどで利用分散オブジェクトシステムなどで利用分散オブジェクトシステムなどで利用分散オブジェクトシステムなどで利用分散オブジェクトシステムなどで利用分散オブジェクトシステムなどで利用することも可能することも可能することも可能することも可能することも可能することも可能することも可能することも可能
SOAP SOAP はははははははは HTTP HTTP でのみ転送可能でのみ転送可能でのみ転送可能でのみ転送可能でのみ転送可能でのみ転送可能でのみ転送可能でのみ転送可能
SOAP SOAP はははははははは SOAP SOAP エンベロープを乗せるあらゆるプロトコルでエンベロープを乗せるあらゆるプロトコルでエンベロープを乗せるあらゆるプロトコルでエンベロープを乗せるあらゆるプロトコルでエンベロープを乗せるあらゆるプロトコルでエンベロープを乗せるあらゆるプロトコルでエンベロープを乗せるあらゆるプロトコルでエンベロープを乗せるあらゆるプロトコルで転送可能転送可能転送可能転送可能転送可能転送可能転送可能転送可能
SOAP SOAP は要求は要求は要求は要求は要求は要求は要求は要求//応答メッセージのみ可能応答メッセージのみ可能応答メッセージのみ可能応答メッセージのみ可能応答メッセージのみ可能応答メッセージのみ可能応答メッセージのみ可能応答メッセージのみ可能
SOAP SOAP はメッセージ交換のパターンを定義するものではないはメッセージ交換のパターンを定義するものではないはメッセージ交換のパターンを定義するものではないはメッセージ交換のパターンを定義するものではないはメッセージ交換のパターンを定義するものではないはメッセージ交換のパターンを定義するものではないはメッセージ交換のパターンを定義するものではないはメッセージ交換のパターンを定義するものではない
SOAP SOAP 「「「「「「「「で」定義、あるいはプロトコルバインドから継承で」定義、あるいはプロトコルバインドから継承で」定義、あるいはプロトコルバインドから継承で」定義、あるいはプロトコルバインドから継承で」定義、あるいはプロトコルバインドから継承で」定義、あるいはプロトコルバインドから継承で」定義、あるいはプロトコルバインドから継承で」定義、あるいはプロトコルバインドから継承
SOAP HTTP bindingSOAP HTTP binding
RPCRPCののののののののHTTP BindingHTTP BindingHTTP POSTHTTP POSTリクエスト:リクエスト:リクエスト:リクエスト:リクエスト:リクエスト:リクエスト:リクエスト:SOAPSOAPリクエストリクエストリクエストリクエストリクエストリクエストリクエストリクエスト
HTTPHTTPレスポンス:レスポンス:レスポンス:レスポンス:レスポンス:レスポンス:レスポンス:レスポンス:SOAPSOAPレスポンスレスポンスレスポンスレスポンスレスポンスレスポンスレスポンスレスポンス
HTTPHTTPヘッダーフィールドの拡張ヘッダーフィールドの拡張ヘッダーフィールドの拡張ヘッダーフィールドの拡張ヘッダーフィールドの拡張ヘッダーフィールドの拡張ヘッダーフィールドの拡張ヘッダーフィールドの拡張
SOAP ActionSOAP Action::::::::対象オブジェクトの対象オブジェクトの対象オブジェクトの対象オブジェクトの対象オブジェクトの対象オブジェクトの対象オブジェクトの対象オブジェクトのURIURIやそのやそのやそのやそのやそのやそのやそのやその他の拡張(他の拡張(他の拡張(他の拡張(他の拡張(他の拡張(他の拡張(他の拡張(WSDLWSDLのののののののの指示など)指示など)指示など)指示など)指示など)指示など)指示など)指示など)
SOAPヘッダーフィールドの利用SOAPヘッダーフィールドの利用SOAPヘッダーフィールドの利用SOAPヘッダーフィールドの利用SOAPヘッダーフィールドの利用SOAPヘッダーフィールドの利用SOAPヘッダーフィールドの利用SOAPヘッダーフィールドの利用
SOAPSOAPヘッダーでのトランザクションヘッダーでのトランザクションヘッダーでのトランザクションヘッダーでのトランザクションヘッダーでのトランザクションヘッダーでのトランザクションヘッダーでのトランザクションヘッダーでのトランザクションIDID管理管理管理管理管理管理管理管理
HTTP BindingHTTP BindingPOST /path/foo.pl HTTP/1.1
Content-Type: text/xml
SOAPAction: ”interfaceURI#Add ”
Content-Length: nnnn
<SOAP-ENV:Envelope xmlns:SOAP-ENV=”uri for soap”>
<SOAP-ENV:Body>
<Add xmlns=”interfaceURI”> <arg1>2</arg1>
<arg2>5</arg2>
</Add>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
200 OK
Content-Type: text/xml
Content-Length: nnnn
<SOAP-ENV:Envelope
xmlns:SOAP-ENV= ”uri for soap” >
<SOAP-ENV:Body>
<AddResponse xmlns= ”interfaceURI” > <sum>7</sum>
</AddResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP HTTPSOAP HTTPの利点の利点の利点の利点の利点の利点の利点の利点
ファイヤーウォールの通過及びファイヤーウォーファイヤーウォールの通過及びファイヤーウォーファイヤーウォールの通過及びファイヤーウォーファイヤーウォールの通過及びファイヤーウォーファイヤーウォールの通過及びファイヤーウォーファイヤーウォールの通過及びファイヤーウォーファイヤーウォールの通過及びファイヤーウォーファイヤーウォールの通過及びファイヤーウォールによる通信の管理ルによる通信の管理ルによる通信の管理ルによる通信の管理ルによる通信の管理ルによる通信の管理ルによる通信の管理ルによる通信の管理
スケーラブルなプロキシの配布スケーラブルなプロキシの配布スケーラブルなプロキシの配布スケーラブルなプロキシの配布スケーラブルなプロキシの配布スケーラブルなプロキシの配布スケーラブルなプロキシの配布スケーラブルなプロキシの配布
異なるミドルウェア間でのオブジェクト呼び出し異なるミドルウェア間でのオブジェクト呼び出し異なるミドルウェア間でのオブジェクト呼び出し異なるミドルウェア間でのオブジェクト呼び出し異なるミドルウェア間でのオブジェクト呼び出し異なるミドルウェア間でのオブジェクト呼び出し異なるミドルウェア間でのオブジェクト呼び出し異なるミドルウェア間でのオブジェクト呼び出し
SOAPSOAPセキュリティーセキュリティーセキュリティーセキュリティーセキュリティーセキュリティーセキュリティーセキュリティー
SSL3SSL3によるトランスポートレベルの認証、署名によるトランスポートレベルの認証、署名によるトランスポートレベルの認証、署名によるトランスポートレベルの認証、署名によるトランスポートレベルの認証、署名によるトランスポートレベルの認証、署名によるトランスポートレベルの認証、署名によるトランスポートレベルの認証、署名、暗号化、暗号化、暗号化、暗号化、暗号化、暗号化、暗号化、暗号化
XMLXMLドキュメントレベルの認証、署名、暗号化ドキュメントレベルの認証、署名、暗号化ドキュメントレベルの認証、署名、暗号化ドキュメントレベルの認証、署名、暗号化ドキュメントレベルの認証、署名、暗号化ドキュメントレベルの認証、署名、暗号化ドキュメントレベルの認証、署名、暗号化ドキュメントレベルの認証、署名、暗号化
認証:認証:認証:認証:認証:認証:認証:認証:PKIPKIベースの認証ベースの認証ベースの認証ベースの認証ベースの認証ベースの認証ベースの認証ベースの認証
エレメントの暗号化:エレメントの暗号化:エレメントの暗号化:エレメントの暗号化:エレメントの暗号化:エレメントの暗号化:エレメントの暗号化:エレメントの暗号化:W3C W3C EncryptXMLEncryptXMLのサポのサポのサポのサポのサポのサポのサポのサポートートートートートートートート
エレメントへの署名:エレメントへの署名:エレメントへの署名:エレメントへの署名:エレメントへの署名:エレメントへの署名:エレメントへの署名:エレメントへの署名:W3C XML W3C XML DsigDsigのサポートのサポートのサポートのサポートのサポートのサポートのサポートのサポート
SOAPSOAPの問題の問題の問題の問題の問題の問題の問題の問題
相互接続性に関する問題相互接続性に関する問題相互接続性に関する問題相互接続性に関する問題相互接続性に関する問題相互接続性に関する問題相互接続性に関する問題相互接続性に関する問題
仕様における仕様における仕様における仕様における仕様における仕様における仕様における仕様におけるProtocol Binding Protocol Binding ((((((((HTTP)HTTP)部分部分部分部分部分部分部分部分の不明確さの不明確さの不明確さの不明確さの不明確さの不明確さの不明確さの不明確さ
HTTPHTTPプロトコルシーケンスプロトコルシーケンスプロトコルシーケンスプロトコルシーケンスプロトコルシーケンスプロトコルシーケンスプロトコルシーケンスプロトコルシーケンス
SOAPActionSOAPActionのののののののの符号化符号化符号化符号化符号化符号化符号化符号化
ActorActorによるルーティングによるルーティングによるルーティングによるルーティングによるルーティングによるルーティングによるルーティングによるルーティング
XMLXMLインスタンスデータのデータ型指定インスタンスデータのデータ型指定インスタンスデータのデータ型指定インスタンスデータのデータ型指定インスタンスデータのデータ型指定インスタンスデータのデータ型指定インスタンスデータのデータ型指定インスタンスデータのデータ型指定
返り値の要素名の規定がない返り値の要素名の規定がない返り値の要素名の規定がない返り値の要素名の規定がない返り値の要素名の規定がない返り値の要素名の規定がない返り値の要素名の規定がない返り値の要素名の規定がない
少ない相互接続テスト少ない相互接続テスト少ない相互接続テスト少ない相互接続テスト少ない相互接続テスト少ない相互接続テスト少ない相互接続テスト少ない相互接続テスト
SOAPSOAPだけでは完結しないオブジェクト呼び出しだけでは完結しないオブジェクト呼び出しだけでは完結しないオブジェクト呼び出しだけでは完結しないオブジェクト呼び出しだけでは完結しないオブジェクト呼び出しだけでは完結しないオブジェクト呼び出しだけでは完結しないオブジェクト呼び出しだけでは完結しないオブジェクト呼び出しの相互接続の相互接続の相互接続の相互接続の相互接続の相互接続の相互接続の相互接続
SOAPSOAPの問題の問題の問題の問題の問題の問題の問題の問題
未実装のプロトコル未実装のプロトコル未実装のプロトコル未実装のプロトコル未実装のプロトコル未実装のプロトコル未実装のプロトコル未実装のプロトコル
ディレクトリサービスディレクトリサービスディレクトリサービスディレクトリサービスディレクトリサービスディレクトリサービスディレクトリサービスディレクトリサービス
サービスディスクリプションサービスディスクリプションサービスディスクリプションサービスディスクリプションサービスディスクリプションサービスディスクリプションサービスディスクリプションサービスディスクリプション
リライアブルリライアブルリライアブルリライアブルリライアブルリライアブルリライアブルリライアブル
セキュリティーセキュリティーセキュリティーセキュリティーセキュリティーセキュリティーセキュリティーセキュリティー
トランザクショントランザクショントランザクショントランザクショントランザクショントランザクショントランザクショントランザクション
アタッチメントドキュメントサポートアタッチメントドキュメントサポートアタッチメントドキュメントサポートアタッチメントドキュメントサポートアタッチメントドキュメントサポートアタッチメントドキュメントサポートアタッチメントドキュメントサポートアタッチメントドキュメントサポート
SOAPSOAPが適応する局面と不適合が適応する局面と不適合が適応する局面と不適合が適応する局面と不適合が適応する局面と不適合が適応する局面と不適合が適応する局面と不適合が適応する局面と不適合な局面な局面な局面な局面な局面な局面な局面な局面
疎結合:疎結合:疎結合:疎結合:疎結合:疎結合:疎結合:疎結合: Late bindingLate binding呼び出し相手が不定呼び出し相手が不定呼び出し相手が不定呼び出し相手が不定呼び出し相手が不定呼び出し相手が不定呼び出し相手が不定呼び出し相手が不定
データモデルの変更データモデルの変更データモデルの変更データモデルの変更データモデルの変更データモデルの変更データモデルの変更データモデルの変更
Long transactionLong transaction((((((((補償トランザクション)補償トランザクション)補償トランザクション)補償トランザクション)補償トランザクション)補償トランザクション)補償トランザクション)補償トランザクション)
密結合密結合密結合密結合密結合密結合密結合密結合
トランザクション性能トランザクション性能トランザクション性能トランザクション性能トランザクション性能トランザクション性能トランザクション性能トランザクション性能
EDIEDIのようなオフセットベースデータモデルのようなオフセットベースデータモデルのようなオフセットベースデータモデルのようなオフセットベースデータモデルのようなオフセットベースデータモデルのようなオフセットベースデータモデルのようなオフセットベースデータモデルのようなオフセットベースデータモデル
状態の同期(ステートフル)状態の同期(ステートフル)状態の同期(ステートフル)状態の同期(ステートフル)状態の同期(ステートフル)状態の同期(ステートフル)状態の同期(ステートフル)状態の同期(ステートフル)
今後の今後の今後の今後の今後の今後の今後の今後のSOAPSOAP
各ミドルウェアへの実装と相互接続試験によ各ミドルウェアへの実装と相互接続試験によ各ミドルウェアへの実装と相互接続試験によ各ミドルウェアへの実装と相互接続試験によ各ミドルウェアへの実装と相互接続試験によ各ミドルウェアへの実装と相互接続試験によ各ミドルウェアへの実装と相互接続試験によ各ミドルウェアへの実装と相互接続試験による仕様解釈のすりあわせる仕様解釈のすりあわせる仕様解釈のすりあわせる仕様解釈のすりあわせる仕様解釈のすりあわせる仕様解釈のすりあわせる仕様解釈のすりあわせる仕様解釈のすりあわせ
SOAPSOAPをサポートするプロトコルの仕様化をサポートするプロトコルの仕様化をサポートするプロトコルの仕様化をサポートするプロトコルの仕様化をサポートするプロトコルの仕様化をサポートするプロトコルの仕様化をサポートするプロトコルの仕様化をサポートするプロトコルの仕様化
SOAPSOAPの進化:の進化:の進化:の進化:の進化:の進化:の進化:の進化:XML ProtocolXML Protocol
More InformationMore Information
SOAP/1.1 specSOAP/1.1 specSOAP W3C Submission RequestSOAP W3C Submission RequestMailing lists:Mailing lists:
[email protected]@[email protected]@discuss.develop.com
SOAP SOAP を利用したを利用したを利用したを利用したを利用したを利用したを利用したを利用したWeb Web サービスの構築サービスの構築サービスの構築サービスの構築サービスの構築サービスの構築サービスの構築サービスの構築((((((((SOAPSOAP関連技術)関連技術)関連技術)関連技術)関連技術)関連技術)関連技術)関連技術)
Web Web アプリケーションの特徴アプリケーションの特徴アプリケーションの特徴アプリケーションの特徴アプリケーションの特徴アプリケーションの特徴アプリケーションの特徴アプリケーションの特徴
Web Web の目的の目的の目的の目的の目的の目的の目的の目的
情報の交換:コラボレーション情報の交換:コラボレーション情報の交換:コラボレーション情報の交換:コラボレーション情報の交換:コラボレーション情報の交換:コラボレーション情報の交換:コラボレーション情報の交換:コラボレーション
問題の解決:サービス問題の解決:サービス問題の解決:サービス問題の解決:サービス問題の解決:サービス問題の解決:サービス問題の解決:サービス問題の解決:サービス
Web Web アプリケーションの要件アプリケーションの要件アプリケーションの要件アプリケーションの要件アプリケーションの要件アプリケーションの要件アプリケーションの要件アプリケーションの要件
ファイアーウォール越えのメッセージ交換ファイアーウォール越えのメッセージ交換ファイアーウォール越えのメッセージ交換ファイアーウォール越えのメッセージ交換ファイアーウォール越えのメッセージ交換ファイアーウォール越えのメッセージ交換ファイアーウォール越えのメッセージ交換ファイアーウォール越えのメッセージ交換
スケーラブルスケーラブルスケーラブルスケーラブルスケーラブルスケーラブルスケーラブルスケーラブル
実行時に他のアプリケーションと統合が可能実行時に他のアプリケーションと統合が可能実行時に他のアプリケーションと統合が可能実行時に他のアプリケーションと統合が可能実行時に他のアプリケーションと統合が可能実行時に他のアプリケーションと統合が可能実行時に他のアプリケーションと統合が可能実行時に他のアプリケーションと統合が可能
アプリケーションサービスの検索、発見アプリケーションサービスの検索、発見アプリケーションサービスの検索、発見アプリケーションサービスの検索、発見アプリケーションサービスの検索、発見アプリケーションサービスの検索、発見アプリケーションサービスの検索、発見アプリケーションサービスの検索、発見
Time to market Time to market の短縮(の短縮(の短縮(の短縮(の短縮(の短縮(の短縮(の短縮(= = 開発期間の短縮)開発期間の短縮)開発期間の短縮)開発期間の短縮)開発期間の短縮)開発期間の短縮)開発期間の短縮)開発期間の短縮)
……
サービス コントラクト
サービスのゆるやかな連携サービスのゆるやかな連携サービスのゆるやかな連携サービスのゆるやかな連携サービスのゆるやかな連携サービスのゆるやかな連携サービスのゆるやかな連携サービスのゆるやかな連携
XMLXMLはアプリケーション間の契約であるはアプリケーション間の契約であるはアプリケーション間の契約であるはアプリケーション間の契約であるはアプリケーション間の契約であるはアプリケーション間の契約であるはアプリケーション間の契約であるはアプリケーション間の契約である
XMLメッセージ
スキーマ
Web アプリケーション
プログラミング モデル
変換・マッピング Web アプリケーション
プログラミング モデル
XML
XML
XMLXML
Web Web サービスサービスサービスサービスサービスサービスサービスサービスWebWeb対応のコンポーネントウェア対応のコンポーネントウェア対応のコンポーネントウェア対応のコンポーネントウェア対応のコンポーネントウェア対応のコンポーネントウェア対応のコンポーネントウェア対応のコンポーネントウェア
XMLXML
ビルディングビルディングビルディングビルディングビルディングビルディングビルディングビルディングブロックブロックブロックブロックブロックブロックブロックブロックサービスサービスサービスサービスサービスサービスサービスサービス
HTMLHTML
XMLXML
XMLXML
XML
XML
WebWebサービスサービスサービスサービスサービスサービスサービスサービス
WebWebサービスサービスサービスサービスサービスサービスサービスサービス
WebWebサービスサービスサービスサービスサービスサービスサービスサービス
WebWebサービスサービスサービスサービスサービスサービスサービスサービス
WebWebサービスサービスサービスサービスサービスサービスサービスサービス
XMLXML
XMLXML
PDA
携帯携帯携帯携帯電話電話電話電話
コアのコアのコアのコアのコアのコアのコアのコアの XML XML 標準標準標準標準標準標準標準標準
通信インフラ通信インフラ通信インフラ通信インフラ通信インフラ通信インフラ通信インフラ通信インフラSOAPSOAP、、、、、、、、WSDLWSDL、、、、、、、、UDDIUDDI……
Web Web サービスと標準サービスと標準サービスと標準サービスと標準サービスと標準サービスと標準サービスと標準サービスと標準
ソリューション、アプリケーションソリューション、アプリケーションソリューション、アプリケーションソリューション、アプリケーションソリューション、アプリケーションソリューション、アプリケーションソリューション、アプリケーションソリューション、アプリケーション
実装実装実装実装実装実装実装実装プラットフォームプラットフォームプラットフォームプラットフォームプラットフォームプラットフォームプラットフォームプラットフォーム//ツールツールツールツールツールツールツールツール
アプリケーションアプリケーションアプリケーションアプリケーションアプリケーションアプリケーションアプリケーションアプリケーション スキーマスキーマスキーマスキーマスキーマスキーマスキーマスキーマアプリアプリアプリアプリアプリアプリアプリアプリ//ドメイン特定ドメイン特定ドメイン特定ドメイン特定ドメイン特定ドメイン特定ドメイン特定ドメイン特定
コミュニケーションのコミュニケーションのコミュニケーションのコミュニケーションのコミュニケーションのコミュニケーションのコミュニケーションのコミュニケーションのビルディングブロックビルディングブロックビルディングブロックビルディングブロックビルディングブロックビルディングブロックビルディングブロックビルディングブロック
ワイアワイアワイアワイアワイアワイアワイアワイア 記述記述記述記述記述記述記述記述 発見発見発見発見発見発見発見発見
XMLXML
SOAPSOAP(XML Protocols)(XML Protocols)
XML SchemasXML Schemas
DiscoDisco
Directory (UDDI)Directory (UDDI)
ServiceServiceDescriptionDescription
(WSDL)(WSDL)
ProcessProcessOrchestrationOrchestration
(XLANG)(XLANG)
SecuritySecurity
ReliabilityReliability
AttachmentsAttachments
Web Web サービスの動的な配布サービスの動的な配布サービスの動的な配布サービスの動的な配布サービスの動的な配布サービスの動的な配布サービスの動的な配布サービスの動的な配布
Webサービスプロバイダサービスプロバイダサービスプロバイダサービスプロバイダ
リスナーリスナーリスナーリスナー(ASP or ISAPI or 独自独自独自独自)
Webサービスクライアントサービスクライアントサービスクライアントサービスクライアント
SOAPプロキシプロキシプロキシプロキシ
対象対象対象対象レガシーレガシーレガシーレガシー
アプリアプリアプリアプリ/コードコードコードコード
対象対象対象対象COM
オブジェクトオブジェクトオブジェクトオブジェクト
SOAPプロキシプロキシプロキシプロキシ
クライアントクライアントクライアントクライアント
コードコードコードコード
WSDL
1. サービスの公開: COM コンポーネントに対し、
ツールで XML サービス記述を自動生成する。
(あるいは、WSDL 仕様に則り直接サービス
を記述)
1. サービスの公開: COM コンポーネントに対し、
ツールで XML サービス記述を自動生成する。
(あるいは、WSDL 仕様に則り直接サービス
を記述)
2. サービスの理解: SOAP プロキシ
がサービス記述をダウンロード、 クラ
イアント側 で対象コンポーネントのプ
ロキシを生成する。
2. サービスの理解: SOAP プロキシ
がサービス記述をダウンロード、 クラ
イアント側 で対象コンポーネントのプ
ロキシを生成する。
3. サービスの要求: クライアントアプリケーションが
COM メソッド呼び出しを行うと、プロキシが(通常
ASP あるいは ISAPI)に SOAP 呼び出しを行う。
リスナ(及びディスパッチャ)が実際のアプリケーショ
ン呼び出しを行う。
3. サービスの要求: クライアントアプリケーションが
COM メソッド呼び出しを行うと、プロキシが(通常
ASP あるいは ISAPI)に SOAP 呼び出しを行う。
リスナ(及びディスパッチャ)が実際のアプリケーショ
ン呼び出しを行う。
Web Web サービスのサービスのサービスのサービスのサービスのサービスのサービスのサービスの一般的なアーキテクチャ一般的なアーキテクチャ一般的なアーキテクチャ一般的なアーキテクチャ一般的なアーキテクチャ一般的なアーキテクチャ一般的なアーキテクチャ一般的なアーキテクチャ
Listener
サービス要求サービス要求サービス要求サービス要求サービス要求サービス要求サービス要求サービス要求
サービス応答サービス応答サービス応答サービス応答サービス応答サービス応答サービス応答サービス応答
コントラクト取得コントラクト取得コントラクト取得コントラクト取得コントラクト取得コントラクト取得コントラクト取得コントラクト取得 Business Logic
Business Facade
Data Access
Data
PresentationLayerHTTPHTTP
Web Service
Client App
Browser
密結合サービスの疎な連携密結合サービスの疎な連携密結合サービスの疎な連携密結合サービスの疎な連携密結合サービスの疎な連携密結合サービスの疎な連携密結合サービスの疎な連携密結合サービスの疎な連携
AppA
AppB
AppC
AppD
App E
COM+EJB
CORBA
SOAP
仮想的仮想的仮想的仮想的 Web ベースベースベースベース インターネットアプリケーションインターネットアプリケーションインターネットアプリケーションインターネットアプリケーション
ビジネスプロセスビジネスプロセスビジネスプロセスビジネスプロセス自動化エンジン自動化エンジン自動化エンジン自動化エンジン
Source: CBDi Forum
マーケットプレイス、マーケットプレイス、マーケットプレイス、マーケットプレイス、検索エンジン検索エンジン検索エンジン検索エンジン
SOAPSOAP、、、、、、、、WSDLWSDL、、、、、、、、UDDI UDDI 連携連携連携連携連携連携連携連携
コンポーネントコンポーネントコンポーネントコンポーネント
SOAP((((Simple ObjectAccess Protocol))))
WSDL((((Web ServicesDescription Language))))
接続接続接続接続接続接続接続接続
UDDI((((Universal Description,Discovery and Integration))))
サービスサービスサービスサービスプロバイダプロバイダプロバイダプロバイダ
サービスサービスサービスサービスブローカーブローカーブローカーブローカー
サービスサービスサービスサービスコンシューマコンシューマコンシューマコンシューマ
発見発
見発
見発
見発
見発
見発
見発
見
発行
発行
発行
発行
発行
発行
発行
発行
コントラクトコントラクトコントラクトコントラクトコントラクトコントラクトコントラクトコントラクト
UDDIBusinessRegistry
集約集約集約集約集約集約集約集約
SOAP SOAP のバージョンモデルのバージョンモデルのバージョンモデルのバージョンモデルのバージョンモデルのバージョンモデルのバージョンモデルのバージョンモデル
伝統的なメジャー伝統的なメジャー伝統的なメジャー伝統的なメジャー伝統的なメジャー伝統的なメジャー伝統的なメジャー伝統的なメジャー//マイナー番号による管理でマイナー番号による管理でマイナー番号による管理でマイナー番号による管理でマイナー番号による管理でマイナー番号による管理でマイナー番号による管理でマイナー番号による管理ではないはないはないはないはないはないはないはない
ネームスペースとエレメントで管理ネームスペースとエレメントで管理ネームスペースとエレメントで管理ネームスペースとエレメントで管理ネームスペースとエレメントで管理ネームスペースとエレメントで管理ネームスペースとエレメントで管理ネームスペースとエレメントで管理
Envelop Envelop ネームスペースネームスペースネームスペースネームスペースネームスペースネームスペースネームスペースネームスペース URI URI –– メジャーバージョメジャーバージョメジャーバージョメジャーバージョメジャーバージョメジャーバージョメジャーバージョメジャーバージョンンンンンンンン
Header Header とととととととと Body Body エレメントエレメントエレメントエレメントエレメントエレメントエレメントエレメント –– マイナーバージョンマイナーバージョンマイナーバージョンマイナーバージョンマイナーバージョンマイナーバージョンマイナーバージョンマイナーバージョン
ただし、ただし、ただし、ただし、ただし、ただし、ただし、ただし、SOAP 1.0 SOAP 1.0 への後方互換性は必要への後方互換性は必要への後方互換性は必要への後方互換性は必要への後方互換性は必要への後方互換性は必要への後方互換性は必要への後方互換性は必要
非非非非非非非非XMLXMLデータの添付データの添付データの添付データの添付データの添付データの添付データの添付データの添付
Word Word 文書、画像データ、暗号化データ、など文書、画像データ、暗号化データ、など文書、画像データ、暗号化データ、など文書、画像データ、暗号化データ、など文書、画像データ、暗号化データ、など文書、画像データ、暗号化データ、など文書、画像データ、暗号化データ、など文書、画像データ、暗号化データ、など
MIME multipart/related MIME multipart/related 構造によるアタッチ構造によるアタッチ構造によるアタッチ構造によるアタッチ構造によるアタッチ構造によるアタッチ構造によるアタッチ構造によるアタッチを仕様化を仕様化を仕様化を仕様化を仕様化を仕様化を仕様化を仕様化
http://http://msdnmsdn..microsoftmicrosoft.com/.com/xmlxml/general//general/soapsoapattachspecattachspec.asp.asp
SOAP Toolkit V2 SOAP Toolkit V2 概要概要概要概要概要概要概要概要
SOAPSOAPを利用したを利用したを利用したを利用したを利用したを利用したを利用したを利用したWebWebサービスの構築、配布サービスの構築、配布サービスの構築、配布サービスの構築、配布サービスの構築、配布サービスの構築、配布サービスの構築、配布サービスの構築、配布、利用を容易にするツールキット、利用を容易にするツールキット、利用を容易にするツールキット、利用を容易にするツールキット、利用を容易にするツールキット、利用を容易にするツールキット、利用を容易にするツールキット、利用を容易にするツールキット
MSXML MSXML パーサーチームによる開発(パーサーチームによる開発(パーサーチームによる開発(パーサーチームによる開発(パーサーチームによる開発(パーサーチームによる開発(パーサーチームによる開発(パーサーチームによる開発(v1v1ははははははははMSDNMSDNサンプルチーム)サンプルチーム)サンプルチーム)サンプルチーム)サンプルチーム)サンプルチーム)サンプルチーム)サンプルチーム)
正式な製品サポートを予定→サードパーティに正式な製品サポートを予定→サードパーティに正式な製品サポートを予定→サードパーティに正式な製品サポートを予定→サードパーティに正式な製品サポートを予定→サードパーティに正式な製品サポートを予定→サードパーティに正式な製品サポートを予定→サードパーティに正式な製品サポートを予定→サードパーティによる対応製品の促進よる対応製品の促進よる対応製品の促進よる対応製品の促進よる対応製品の促進よる対応製品の促進よる対応製品の促進よる対応製品の促進
COM COM をプログラミングモデルとして採用をプログラミングモデルとして採用をプログラミングモデルとして採用をプログラミングモデルとして採用をプログラミングモデルとして採用をプログラミングモデルとして採用をプログラミングモデルとして採用をプログラミングモデルとして採用
Visual Studio 6.0 Visual Studio 6.0 が利用可能が利用可能が利用可能が利用可能が利用可能が利用可能が利用可能が利用可能
既存アプリケーションの既存アプリケーションの既存アプリケーションの既存アプリケーションの既存アプリケーションの既存アプリケーションの既存アプリケーションの既存アプリケーションのWebWebサービス化が今サービス化が今サービス化が今サービス化が今サービス化が今サービス化が今サービス化が今サービス化が今日から始められる日から始められる日から始められる日から始められる日から始められる日から始められる日から始められる日から始められる
SOAP Toolkit V2 SOAP Toolkit V2 の利点の利点の利点の利点の利点の利点の利点の利点
XMLXML、、、、、、、、SOAPSOAPの深い知識の必要なしの深い知識の必要なしの深い知識の必要なしの深い知識の必要なしの深い知識の必要なしの深い知識の必要なしの深い知識の必要なしの深い知識の必要なし
ワイアープロトコルを直接扱う必要なしワイアープロトコルを直接扱う必要なしワイアープロトコルを直接扱う必要なしワイアープロトコルを直接扱う必要なしワイアープロトコルを直接扱う必要なしワイアープロトコルを直接扱う必要なしワイアープロトコルを直接扱う必要なしワイアープロトコルを直接扱う必要なし
ファイアーウォール問題の軽減ファイアーウォール問題の軽減ファイアーウォール問題の軽減ファイアーウォール問題の軽減ファイアーウォール問題の軽減ファイアーウォール問題の軽減ファイアーウォール問題の軽減ファイアーウォール問題の軽減
実装のし易さ(実装のし易さ(実装のし易さ(実装のし易さ(実装のし易さ(実装のし易さ(実装のし易さ(実装のし易さ(COMCOMプログラミングモデル)プログラミングモデル)プログラミングモデル)プログラミングモデル)プログラミングモデル)プログラミングモデル)プログラミングモデル)プログラミングモデル)
配布のし易さ(コンポーネントダウンロードな配布のし易さ(コンポーネントダウンロードな配布のし易さ(コンポーネントダウンロードな配布のし易さ(コンポーネントダウンロードな配布のし易さ(コンポーネントダウンロードな配布のし易さ(コンポーネントダウンロードな配布のし易さ(コンポーネントダウンロードな配布のし易さ(コンポーネントダウンロードなし)し)し)し)し)し)し)し)
既存のツールセット、スキルの活用既存のツールセット、スキルの活用既存のツールセット、スキルの活用既存のツールセット、スキルの活用既存のツールセット、スキルの活用既存のツールセット、スキルの活用既存のツールセット、スキルの活用既存のツールセット、スキルの活用
SOAP Toolkit V2 SOAP Toolkit V2 の内容物の内容物の内容物の内容物の内容物の内容物の内容物の内容物
SOAPSOAPををををををををCOMCOMより利用するためのコンポーネント群より利用するためのコンポーネント群より利用するためのコンポーネント群より利用するためのコンポーネント群より利用するためのコンポーネント群より利用するためのコンポーネント群より利用するためのコンポーネント群より利用するためのコンポーネント群
WSDL WSDL で記述されたで記述されたで記述されたで記述されたで記述されたで記述されたで記述されたで記述されたWebWebサービスを呼び出すクライアサービスを呼び出すクライアサービスを呼び出すクライアサービスを呼び出すクライアサービスを呼び出すクライアサービスを呼び出すクライアサービスを呼び出すクライアサービスを呼び出すクライアントコンポーネントントコンポーネントントコンポーネントントコンポーネントントコンポーネントントコンポーネントントコンポーネントントコンポーネント
クライアントからのクライアントからのクライアントからのクライアントからのクライアントからのクライアントからのクライアントからのクライアントからのSOAPSOAP要求を要求を要求を要求を要求を要求を要求を要求をCOMCOMコンポーネントにデコンポーネントにデコンポーネントにデコンポーネントにデコンポーネントにデコンポーネントにデコンポーネントにデコンポーネントにディスパッチさせるサーバーコンポーネントィスパッチさせるサーバーコンポーネントィスパッチさせるサーバーコンポーネントィスパッチさせるサーバーコンポーネントィスパッチさせるサーバーコンポーネントィスパッチさせるサーバーコンポーネントィスパッチさせるサーバーコンポーネントィスパッチさせるサーバーコンポーネント
文書スタイルの文書スタイルの文書スタイルの文書スタイルの文書スタイルの文書スタイルの文書スタイルの文書スタイルのSOAPSOAPメッセージからメッセージからメッセージからメッセージからメッセージからメッセージからメッセージからメッセージから““““““““エンティティエンティティエンティティエンティティエンティティエンティティエンティティエンティティ””””””””コンコンコンコンコンコンコンコンポーネントを抽出するジェネレータポーネントを抽出するジェネレータポーネントを抽出するジェネレータポーネントを抽出するジェネレータポーネントを抽出するジェネレータポーネントを抽出するジェネレータポーネントを抽出するジェネレータポーネントを抽出するジェネレータ
SOAPSOAPメッセージをマーシャリング、転送、アンマーシャリメッセージをマーシャリング、転送、アンマーシャリメッセージをマーシャリング、転送、アンマーシャリメッセージをマーシャリング、転送、アンマーシャリメッセージをマーシャリング、転送、アンマーシャリメッセージをマーシャリング、転送、アンマーシャリメッセージをマーシャリング、転送、アンマーシャリメッセージをマーシャリング、転送、アンマーシャリングするトランスポートコンポーネントングするトランスポートコンポーネントングするトランスポートコンポーネントングするトランスポートコンポーネントングするトランスポートコンポーネントングするトランスポートコンポーネントングするトランスポートコンポーネントングするトランスポートコンポーネント
COM COM コンポーネントからタイプ情報を取り出し、ココンポーネントからタイプ情報を取り出し、ココンポーネントからタイプ情報を取り出し、ココンポーネントからタイプ情報を取り出し、ココンポーネントからタイプ情報を取り出し、ココンポーネントからタイプ情報を取り出し、ココンポーネントからタイプ情報を取り出し、ココンポーネントからタイプ情報を取り出し、コントラクト、バインド情報を生成するジェネレータントラクト、バインド情報を生成するジェネレータントラクト、バインド情報を生成するジェネレータントラクト、バインド情報を生成するジェネレータントラクト、バインド情報を生成するジェネレータントラクト、バインド情報を生成するジェネレータントラクト、バインド情報を生成するジェネレータントラクト、バインド情報を生成するジェネレータ
プログラミングガイド、リファレンス、サンプルなどプログラミングガイド、リファレンス、サンプルなどプログラミングガイド、リファレンス、サンプルなどプログラミングガイド、リファレンス、サンプルなどプログラミングガイド、リファレンス、サンプルなどプログラミングガイド、リファレンス、サンプルなどプログラミングガイド、リファレンス、サンプルなどプログラミングガイド、リファレンス、サンプルなど
WSDLWSDL::::::::Web Web サービスの記述サービスの記述サービスの記述サービスの記述サービスの記述サービスの記述サービスの記述サービスの記述
WWebeb SServiceservices DDescriptionescription LLanguageanguageサービス記述のためのサービス記述のためのサービス記述のためのサービス記述のためのサービス記述のためのサービス記述のためのサービス記述のためのサービス記述のためのXMLXMLベースの文法ベースの文法ベースの文法ベースの文法ベースの文法ベースの文法ベースの文法ベースの文法
システム間通信のための「契約」システム間通信のための「契約」システム間通信のための「契約」システム間通信のための「契約」システム間通信のための「契約」システム間通信のための「契約」システム間通信のための「契約」システム間通信のための「契約」
他社システムが自社システムと通信する方法を理解他社システムが自社システムと通信する方法を理解他社システムが自社システムと通信する方法を理解他社システムが自社システムと通信する方法を理解他社システムが自社システムと通信する方法を理解他社システムが自社システムと通信する方法を理解他社システムが自社システムと通信する方法を理解他社システムが自社システムと通信する方法を理解
NASSLNASSL((((((((IBMIBM)、)、)、)、)、)、)、)、SCLSCL、、、、、、、、SDLSDL((((((((共に共に共に共に共に共に共に共にMSMS))))))))を統合を統合を統合を統合を統合を統合を統合を統合
メッセージ交換を行う、複数のエンドポイントを記述メッセージ交換を行う、複数のエンドポイントを記述メッセージ交換を行う、複数のエンドポイントを記述メッセージ交換を行う、複数のエンドポイントを記述メッセージ交換を行う、複数のエンドポイントを記述メッセージ交換を行う、複数のエンドポイントを記述メッセージ交換を行う、複数のエンドポイントを記述メッセージ交換を行う、複数のエンドポイントを記述するするするするするするするする
RPCRPC、、、、、、、、文書スタイルともに可能文書スタイルともに可能文書スタイルともに可能文書スタイルともに可能文書スタイルともに可能文書スタイルともに可能文書スタイルともに可能文書スタイルともに可能
WSDL 1.0 WSDL 1.0 仕様を公開仕様を公開仕様を公開仕様を公開仕様を公開仕様を公開仕様を公開仕様を公開
http://http://msdnmsdn..microsoftmicrosoft.com/.com/xmlxml/general//general/wsdlwsdl.asp.asphttp://www.http://www.microsoftmicrosoft.com/.com/japanjapan/developer/works/developer/workshop/hop/xmlxml/general//general/wsdlwsdl.asp.asp((((((((日本語訳)日本語訳)日本語訳)日本語訳)日本語訳)日本語訳)日本語訳)日本語訳)
基本概念基本概念基本概念基本概念基本概念基本概念基本概念基本概念
PortPort –– エンドポイントエンドポイントエンドポイントエンドポイントエンドポイントエンドポイントエンドポイントエンドポイント
MessageMessage –– エンドポイント間を流れるデータエンドポイント間を流れるデータエンドポイント間を流れるデータエンドポイント間を流れるデータエンドポイント間を流れるデータエンドポイント間を流れるデータエンドポイント間を流れるデータエンドポイント間を流れるデータ
OperationOperation –– メッセージのコンビネーションメッセージのコンビネーションメッセージのコンビネーションメッセージのコンビネーションメッセージのコンビネーションメッセージのコンビネーションメッセージのコンビネーションメッセージのコンビネーション
Port
message
message
messagemessage
messagemessage
One-way
Request-Response
Notification
Solicit-Response
WSDL WSDL がカバーするがカバーするがカバーするがカバーするがカバーするがカバーするがカバーするがカバーする
範囲範囲範囲範囲範囲範囲範囲範囲
WSDL WSDL とサービス連携とサービス連携とサービス連携とサービス連携とサービス連携とサービス連携とサービス連携とサービス連携
Message
OperationOperationPortPort
サービスサービスサービスサービスサービスサービスサービスサービス
port
service
port port
ServiceService –– 関連する関連する関連する関連する関連する関連する関連する関連するPortPortのコレクションのコレクションのコレクションのコレクションのコレクションのコレクションのコレクションのコレクション
オーケストレーション、コンポジションは(まだ)含まれずオーケストレーション、コンポジションは(まだ)含まれずオーケストレーション、コンポジションは(まだ)含まれずオーケストレーション、コンポジションは(まだ)含まれずオーケストレーション、コンポジションは(まだ)含まれずオーケストレーション、コンポジションは(まだ)含まれずオーケストレーション、コンポジションは(まだ)含まれずオーケストレーション、コンポジションは(まだ)含まれず
再利用可能再利用可能再利用可能再利用可能再利用可能再利用可能再利用可能再利用可能
PortTypePortTypeオペレーションとメッセージのセットオペレーションとメッセージのセットオペレーションとメッセージのセットオペレーションとメッセージのセットオペレーションとメッセージのセットオペレーションとメッセージのセットオペレーションとメッセージのセットオペレーションとメッセージのセット
抽象的抽象的抽象的抽象的抽象的抽象的抽象的抽象的
プロトコルやワイアー形式の情報は含まれずプロトコルやワイアー形式の情報は含まれずプロトコルやワイアー形式の情報は含まれずプロトコルやワイアー形式の情報は含まれずプロトコルやワイアー形式の情報は含まれずプロトコルやワイアー形式の情報は含まれずプロトコルやワイアー形式の情報は含まれずプロトコルやワイアー形式の情報は含まれず
BindingBindingPortTypePortType をプロトコルやワイアー形式に結びつけるをプロトコルやワイアー形式に結びつけるをプロトコルやワイアー形式に結びつけるをプロトコルやワイアー形式に結びつけるをプロトコルやワイアー形式に結びつけるをプロトコルやワイアー形式に結びつけるをプロトコルやワイアー形式に結びつけるをプロトコルやワイアー形式に結びつける
SOAP 1.1SOAP 1.1??HTTP Get/PostHTTP Get/Post??MIMEMIMEプロトコルや距離などの条件で適切なポートを選択プロトコルや距離などの条件で適切なポートを選択プロトコルや距離などの条件で適切なポートを選択プロトコルや距離などの条件で適切なポートを選択プロトコルや距離などの条件で適切なポートを選択プロトコルや距離などの条件で適切なポートを選択プロトコルや距離などの条件で適切なポートを選択プロトコルや距離などの条件で適切なポートを選択可能可能可能可能可能可能可能可能
例:例:例:例:例:例:例:例: 本屋の本屋の本屋の本屋の本屋の本屋の本屋の本屋の PortTypePortType22つのつのつのつのつのつのつのつの BindingBinding::::::::
SOAP over HTTPSOAP over HTTPSOAP over SMTPSOAP over SMTP
UDDI UDDI とは?とは?とは?とは?とは?とは?とは?とは?
WebWebサービスの相互運用性とサービスの相互運用性とサービスの相互運用性とサービスの相互運用性とサービスの相互運用性とサービスの相互運用性とサービスの相互運用性とサービスの相互運用性と適用を早めるためのプロジェ適用を早めるためのプロジェ適用を早めるためのプロジェ適用を早めるためのプロジェ適用を早めるためのプロジェ適用を早めるためのプロジェ適用を早めるためのプロジェ適用を早めるためのプロジェクトクトクトクトクトクトクトクト
サービスの記述と発見のためのサービスの記述と発見のためのサービスの記述と発見のためのサービスの記述と発見のためのサービスの記述と発見のためのサービスの記述と発見のためのサービスの記述と発見のためのサービスの記述と発見のための標準標準標準標準標準標準標準標準仕様仕様仕様仕様仕様仕様仕様仕様
WebWeb上のビジネスレジストリの上のビジネスレジストリの上のビジネスレジストリの上のビジネスレジストリの上のビジネスレジストリの上のビジネスレジストリの上のビジネスレジストリの上のビジネスレジストリの共有共有共有共有共有共有共有共有オペレーションオペレーションオペレーションオペレーションオペレーションオペレーションオペレーションオペレーション
業界とビジネスリーダー間の業界とビジネスリーダー間の業界とビジネスリーダー間の業界とビジネスリーダー間の業界とビジネスリーダー間の業界とビジネスリーダー間の業界とビジネスリーダー間の業界とビジネスリーダー間のパートナーシップパートナーシップパートナーシップパートナーシップパートナーシップパートナーシップパートナーシップパートナーシップ
UUniversalniversal DDescriptionescription,,DDiscoveryiscovery, and , and IIntegrationntegration
Ariba IBM
Microsoft
どのようなソリューションを提供どのようなソリューションを提供どのようなソリューションを提供どのようなソリューションを提供どのようなソリューションを提供どのようなソリューションを提供どのようなソリューションを提供どのようなソリューションを提供するか?するか?するか?するか?するか?するか?するか?するか?
中規模の製造業者は、それぞ中規模の製造業者は、それぞ中規模の製造業者は、それぞ中規模の製造業者は、それぞれが独自の標準とプロトコルれが独自の標準とプロトコルれが独自の標準とプロトコルれが独自の標準とプロトコルを採用するを採用するを採用するを採用する400の顧客とオンの顧客とオンの顧客とオンの顧客とオンライン上の関係を作る必要がライン上の関係を作る必要がライン上の関係を作る必要がライン上の関係を作る必要があるあるあるある
B2Bのののの拡大拡大拡大拡大
オーストラリアの花屋が、世界オーストラリアの花屋が、世界オーストラリアの花屋が、世界オーストラリアの花屋が、世界中のマーケットプレイスに中のマーケットプレイスに中のマーケットプレイスに中のマーケットプレイスに““““出店出店出店出店””””したいが、その方法がわからなしたいが、その方法がわからなしたいが、その方法がわからなしたいが、その方法がわからないいいい
検索能力の検索能力の検索能力の検索能力の向上向上向上向上
B2B マーケットプレイスは各業マーケットプレイスは各業マーケットプレイスは各業マーケットプレイスは各業界の関連サプライヤからカタロ界の関連サプライヤからカタロ界の関連サプライヤからカタロ界の関連サプライヤからカタログデータを入手し、それに加えグデータを入手し、それに加えグデータを入手し、それに加えグデータを入手し、それに加え配送業者や保険会社への接続配送業者や保険会社への接続配送業者や保険会社への接続配送業者や保険会社への接続も必要であるも必要であるも必要であるも必要である
サービス集約のサービス集約のサービス集約のサービス集約の容易化容易化容易化容易化
サービスのサービスのサービスのサービスの
記述記述記述記述
サービスのサービスのサービスのサービスの
発見発見発見発見
サービスのサービスのサービスのサービスの
統合統合統合統合
UDDI v1 UDDI v1 の動作の動作の動作の動作の動作の動作の動作の動作
UDDI ビジネスレジストリ(ビジネスレジストリ(ビジネスレジストリ(ビジネスレジストリ(UBR))))
3. UBR は各サービスとビジネスにユニークなは各サービスとビジネスにユニークなは各サービスとビジネスにユニークなは各サービスとビジネスにユニークな識別子をふる識別子をふる識別子をふる識別子をふる
マーケットプレイス、検索エンジマーケットプレイス、検索エンジマーケットプレイス、検索エンジマーケットプレイス、検索エンジン、ビジネスアプリなどが他の組ン、ビジネスアプリなどが他の組ン、ビジネスアプリなどが他の組ン、ビジネスアプリなどが他の組織が提供するサービスを発見す織が提供するサービスを発見す織が提供するサービスを発見す織が提供するサービスを発見するためにレジストリに問い合わるためにレジストリに問い合わるためにレジストリに問い合わるためにレジストリに問い合わせをするせをするせをするせをする
4.
サービスタイプサービスタイプサービスタイプサービスタイプレジストリレジストリレジストリレジストリ
ソフトウェア会社、標準化団体、開発ソフトウェア会社、標準化団体、開発ソフトウェア会社、標準化団体、開発ソフトウェア会社、標準化団体、開発者などが様々なサービスのタイプをレ者などが様々なサービスのタイプをレ者などが様々なサービスのタイプをレ者などが様々なサービスのタイプをレジストリに登録ジストリに登録ジストリに登録ジストリに登録
1.
ビジネスビジネスビジネスビジネスレジストリレジストリレジストリレジストリ企業は自らがサポー企業は自らがサポー企業は自らがサポー企業は自らがサポー
トするサービスの記トするサービスの記トするサービスの記トするサービスの記述をレジストリに登述をレジストリに登述をレジストリに登述をレジストリに登録録録録
2.
企業は企業は企業は企業はWebをまたがる統をまたがる統をまたがる統をまたがる統合を促進するためにこれ合を促進するためにこれ合を促進するためにこれ合を促進するためにこれらのデータを利用するらのデータを利用するらのデータを利用するらのデータを利用する
5.
レジストリのデータレジストリのデータレジストリのデータレジストリのデータレジストリのデータレジストリのデータレジストリのデータレジストリのデータ
企業は自社に企業は自社に企業は自社に企業は自社に企業は自社に企業は自社に企業は自社に企業は自社に関する公開情関する公開情関する公開情関する公開情関する公開情関する公開情関する公開情関する公開情報を登録する報を登録する報を登録する報を登録する報を登録する報を登録する報を登録する報を登録する
標準化団体、標準化団体、標準化団体、標準化団体、標準化団体、標準化団体、標準化団体、標準化団体、開発者、企業開発者、企業開発者、企業開発者、企業開発者、企業開発者、企業開発者、企業開発者、企業などは各々のなどは各々のなどは各々のなどは各々のなどは各々のなどは各々のなどは各々のなどは各々のサービスタイプサービスタイプサービスタイプサービスタイプサービスタイプサービスタイプサービスタイプサービスタイプの情報を登録の情報を登録の情報を登録の情報を登録の情報を登録の情報を登録の情報を登録の情報を登録するするするするするするするする
WhitePages
YellowPages
GreenPages
Service TypeRegistrations
ビジネス名ビジネス名ビジネス名ビジネス名ビジネス名ビジネス名ビジネス名ビジネス名テキスト記述(多国語可)テキスト記述(多国語可)テキスト記述(多国語可)テキスト記述(多国語可)テキスト記述(多国語可)テキスト記述(多国語可)テキスト記述(多国語可)テキスト記述(多国語可)コンタクト情報(コンタクト情報(コンタクト情報(コンタクト情報(コンタクト情報(コンタクト情報(コンタクト情報(コンタクト情報(URLURL、、、、、、、、TELTEL、、、、、、、、……))))))))
産業コード(産業コード(産業コード(産業コード(産業コード(産業コード(産業コード(産業コード(NAICSNAICS))))))))製品製品製品製品製品製品製品製品//サービス(サービス(サービス(サービス(サービス(サービス(サービス(サービス(UN/SPSCUN/SPSC))))))))
所在地所在地所在地所在地所在地所在地所在地所在地
プログラムインターフェイス名プログラムインターフェイス名プログラムインターフェイス名プログラムインターフェイス名プログラムインターフェイス名プログラムインターフェイス名プログラムインターフェイス名プログラムインターフェイス名接続(バインディング)情報接続(バインディング)情報接続(バインディング)情報接続(バインディング)情報接続(バインディング)情報接続(バインディング)情報接続(バインディング)情報接続(バインディング)情報
サービスインターフェイス仕様サービスインターフェイス仕様サービスインターフェイス仕様サービスインターフェイス仕様サービスインターフェイス仕様サービスインターフェイス仕様サービスインターフェイス仕様サービスインターフェイス仕様((((((((tModeltModel))))))))
UDDI UDDI とととととととと SOAPSOAP
ユーザーユーザーユーザーユーザー UDDI
SOAP リクエストリクエストリクエストリクエスト
UDDISOAP レスポンスレスポンスレスポンスレスポンス
UDDI レジストリレジストリレジストリレジストリノードノードノードノード
HTTPサーバーサーバーサーバーサーバー
SOAPプロセッサプロセッサプロセッサプロセッサ
UDDIレジストリサービスレジストリサービスレジストリサービスレジストリサービス
B2B ディレクトリディレクトリディレクトリディレクトリ作成、ビュー、作成、ビュー、作成、ビュー、作成、ビュー、更新、削除更新、削除更新、削除更新、削除
実装中立実装中立実装中立実装中立
レジストリレジストリレジストリレジストリレジストリレジストリレジストリレジストリ APIAPI問い合わせ用問い合わせ用問い合わせ用問い合わせ用問い合わせ用問い合わせ用問い合わせ用問い合わせ用 APIAPI
検索検索検索検索検索検索検索検索find_businessfind_businessfind_servicefind_servicefind_bindingfind_bindingfind_find_tModeltModel
詳細情報の取得詳細情報の取得詳細情報の取得詳細情報の取得詳細情報の取得詳細情報の取得詳細情報の取得詳細情報の取得get_get_businessDetailbusinessDetailget_get_serviceDetailserviceDetailget_get_bindingDetailbindingDetailget_get_tModelDetailtModelDetail
発行用発行用発行用発行用発行用発行用発行用発行用 APIAPIセーブセーブセーブセーブセーブセーブセーブセーブ
save_businesssave_businesssave_servicesave_servicesave_bindingsave_bindingsave_save_tModeltModel
削除削除削除削除削除削除削除削除delete_businessdelete_businessdelete_servicedelete_servicedelete_bindingdelete_bindingdelete_delete_tModeltModel
セキュリティセキュリティセキュリティセキュリティセキュリティセキュリティセキュリティセキュリティ……get_get_authTokenauthTokendiscard_discard_authTokenauthToken
UDDI UDDI レジストリの操作レジストリの操作レジストリの操作レジストリの操作レジストリの操作レジストリの操作レジストリの操作レジストリの操作
Microsoft UDDI SDKMicrosoft UDDI SDK((((((((ベータ)ベータ)ベータ)ベータ)ベータ)ベータ)ベータ)ベータ)
Visual Studio 6.0Visual Studio 6.0対応対応対応対応対応対応対応対応
UDDI APIUDDI APIををををををををCOMCOMでラッピングでラッピングでラッピングでラッピングでラッピングでラッピングでラッピングでラッピング
コンポーネント、プログラマーズガイド、サンプルプログラムなどコンポーネント、プログラマーズガイド、サンプルプログラムなどコンポーネント、プログラマーズガイド、サンプルプログラムなどコンポーネント、プログラマーズガイド、サンプルプログラムなどコンポーネント、プログラマーズガイド、サンプルプログラムなどコンポーネント、プログラマーズガイド、サンプルプログラムなどコンポーネント、プログラマーズガイド、サンプルプログラムなどコンポーネント、プログラマーズガイド、サンプルプログラムなど
UDDI.MICROSOFT.COMUDDI.MICROSOFT.COM
Browsers(IE4.x, NS 4.x)
Applications(via SOAP)
IIS
SOAPListener(ISAPI)
CommonDB
AccessLayer(SQL-XML)
W2K
Clients
SQL 2000
ASP
ADO
XMLSPs Business
LogicSPs
UISPs
Passport Authentication (UI & SOAP)
Management: AD, Win2K Core Services, 3rd Party Tools
Publishing(SAVE API)
Inquiry(FIND/GET UI)
Replication
Inquiry(FIND/GET API)
COM+ 1.0 applicationCOM+ 1.0 application
UDDI UDDI ロードマップロードマップロードマップロードマップロードマップロードマップロードマップロードマップ
V1 V2 V3
Business Units
3Taxonomies
Descriptions ofServices
Corporations
MoreTaxonomies
LayeredServices
Associations
CustomTaxonomies
Workflow
Ongoing
StandardsBody
Web Web サービス時代の開発サービス時代の開発サービス時代の開発サービス時代の開発サービス時代の開発サービス時代の開発サービス時代の開発サービス時代の開発
エンタープライズアプリケーション
“統合”
仮想的な連合、協調的ビジネス
ミドルウェア依存の統合 自己記述、自己発見
実装時、設計時の構成 利用時、実行時の構成
コンテンツにフォーカスする
プラットフォーム技術
コンテキストにフォーカスする
プラットフォーム技術
まとめまとめまとめまとめまとめまとめまとめまとめ
Web Web サービスは顧客、パートナーなどとの電サービスは顧客、パートナーなどとの電サービスは顧客、パートナーなどとの電サービスは顧客、パートナーなどとの電サービスは顧客、パートナーなどとの電サービスは顧客、パートナーなどとの電サービスは顧客、パートナーなどとの電サービスは顧客、パートナーなどとの電子的関係を子的関係を子的関係を子的関係を子的関係を子的関係を子的関係を子的関係をJust-in-TimeJust-in-Timeで結ぶで結ぶで結ぶで結ぶで結ぶで結ぶで結ぶで結ぶ
Web Web サービスは密結合サービスの疎結合なサービスは密結合サービスの疎結合なサービスは密結合サービスの疎結合なサービスは密結合サービスの疎結合なサービスは密結合サービスの疎結合なサービスは密結合サービスの疎結合なサービスは密結合サービスの疎結合なサービスは密結合サービスの疎結合な連携を実現する連携を実現する連携を実現する連携を実現する連携を実現する連携を実現する連携を実現する連携を実現する
..NET NET はははははははは COM(+) COM(+) とととととととと XML XML の統合の統合の統合の統合の統合の統合の統合の統合
Web Web サービスはプラットフォーム非依存なメサービスはプラットフォーム非依存なメサービスはプラットフォーム非依存なメサービスはプラットフォーム非依存なメサービスはプラットフォーム非依存なメサービスはプラットフォーム非依存なメサービスはプラットフォーム非依存なメサービスはプラットフォーム非依存なメッセージ交換インフラを活用するッセージ交換インフラを活用するッセージ交換インフラを活用するッセージ交換インフラを活用するッセージ交換インフラを活用するッセージ交換インフラを活用するッセージ交換インフラを活用するッセージ交換インフラを活用する
SOAPSOAP、、、、、、、、WSDLWSDL、、、、、、、、UDDIUDDI、、、、、、、、……