simple object access protocol - 一般財団法人インター …...

49
SOAP SOAP Simple object Access Protocol Simple object Access Protocol マイクロソフト株式会社 マイクロソフト株式会社 マイクロソフト株式会社 マイクロソフト株式会社 シニアテクニカルエバンジェリスト シニアテクニカルエバンジェリスト シニアテクニカルエバンジェリスト シニアテクニカルエバンジェリスト 萩原正義 萩原正義 萩原正義 萩原正義 テクニカルエバンジェリスト テクニカルエバンジェリスト テクニカルエバンジェリスト テクニカルエバンジェリスト 野村一行 野村一行 野村一行 野村一行

Upload: phungduong

Post on 19-May-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

SOAPSOAPSimple object Access ProtocolSimple object Access Protocol

マイクロソフト株式会社マイクロソフト株式会社マイクロソフト株式会社マイクロソフト株式会社シニアテクニカルエバンジェリストシニアテクニカルエバンジェリストシニアテクニカルエバンジェリストシニアテクニカルエバンジェリスト萩原正義萩原正義萩原正義萩原正義テクニカルエバンジェリストテクニカルエバンジェリストテクニカルエバンジェリストテクニカルエバンジェリスト野村一行野村一行野村一行野村一行

SOAPSOAP概要概要概要概要概要概要概要概要

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、、、、、、、、……