XML Consortium
XML Consortium
Web
Web
サービス向け
サービス向け
リライアブル
リライアブル
メッセージング
メッセージング
標準化の取り組み
標準化の取り組み
∼WS-Reliabilityの意義と技術解説∼
2003年10月14日
WS-Reliability仕様作成メンバー
岩佐和典(富士通株式会社)
鈴木俊宏(日本オラクル株式会社)
XML Consortium
XML Consortium
内
容
1. Webサービス登場の背景
−インターネットの普及と企業システムの変化
2. 企業間取引とWebサービス
−企業間取引の標準 RosettaNet/ebXML
−Webサービスの標準化動向
3. Webサービス向けリライアブルメッセージング
−リライアブルメッセージとは?
−標準化に向けた取り組み(OASIS WS-RM TC)
−今後の活動予定
4. 質疑応答
XML Consortium
XML Consortium
インターネット上のビジネスの広がり
Buyer/Seller
Supply chain / Value chain
電子決済
物流
仮想店舗
コールセンターシ
ステム
ブロードバンド・インターネット
Web-EDI
ASP
インターネットショッピング
インターネット取引
電子マネー
XML Consortium
XML Consortium
XML Consortium
XML Consortium
Webサービスとは
・ Webサービスの定義として合意されたものはなく、人によっ
ていろいろな使われ方がされている。
・ よく使われる定義は、以下の様なもの
−インターネット上で、
−標準のデータフォーマットで、
−標準のプロトコルを用いて、
−ゆるやかな連携で
−提供されるソフトウェアの機能、
−およびそのしくみ全般
【対応する技術】
TCP/IP, HTTPなど
XML
SOAP, ebXML MS
WSDL, UDDI
ebXML BPSS, CPPA,
ebXML Registry
XML Consortium
XML Consortium
Webサービス技術と業界動向:
B2Bへの適用が先行
RosettaNet
ebXML Initiative
OASIS
W3C
(WSDL)UDDI.org
1998
SOAP 1.1 UDDI V1.0 5月 7月 4月 11月 XMLP Working Draft 11月 3月 WSDL1.1 UDDI V2 UDDI V3 6月 1月 Web Service Activity開始 11月 9月 WS-Instection 11月 5月 OASISへ 移管 9月 1月 WS-Security 4月 WSRP,WSIA WG開始B2B
向け
Web
サービス全般
1999
2000
2001
2002
POCデモ ebXML V1 Web Service Workshop開催 XMLP (SOAP 1.2) 活動開始XML Consortium
XML Consortium
All Rights Reserved, Copyright © Fujitsu Limited
RosettaNet
情報機器, 電子部品, 半導体製造の各業界における
サプライチェーンの大幅な効率化を目指す国際標準化団体
1998年に米国で設立し, 参加企業は全世界で400社以上
企業間電子商取引による全ビジネスプロセス自動化のための共通インター
フェースを作成
XMLを本格的に使用したプロトコルを標準化(PIP*など)
部品メーカ / 協力メーカ
小売
物流
金融・決済
ソフトメーカ
PC流通業界
PC流通業界
最終需要家
商社
電子部品商社
I
T
機
器
メ
ー
カ
電子部品業界
電子部品業界
電子素材メーカ
半
導
体
メ
ー
カ
材料メーカ
半導体設計会社
半導体製造業界
半導体製造業界
半導体製造メーカ シリコンウェハー製造メーカ
XML Consortium
XML Consortium
ebXML
(Electronic Business XML)
Initiative
RosettaNetが世界中の数多くのSCMシステムで採用された
・「特定の取引先」と「決まった取引」を行う仕組み
・適用する業界が固定
RosettaNetが世界中の数多くのSCMシステムで採用された
・「特定の取引先」と「決まった取引」を行う仕組み
・適用する業界が固定
より広範囲に適用できる企業間取引の標準の必要性
・「不特定の取引先」と「自由な取引」
・業界に依存しない企業間取引のフレームワーク
より広範囲に適用できる企業間取引の標準の必要性
・「不特定の取引先」と「自由な取引」
・業界に依存しない企業間取引のフレームワーク
ebXML Initiative (1999年設立)
・XMLをベースとした企業間取引のフレームワークを策定
・OASISとUN/CEFACTの共同プロジェクト
ebXML Initiative (1999年設立)
・XMLをベースとした企業間取引のフレームワークを策定
・OASISとUN/CEFACTの共同プロジェクト
XML Consortium
XML Consortium
ebXMLを採用する業界標準化団体
RosettaNet
IT、半導体業界の標準化団体。参加企業400社以上。
PIPの記述形式としてBPSSの採用を予定
STAR(Standards for Technology in Automotive Retail)
米国自動車リテール業界団体。Dealer/OEM間のXML標準を規定
AIAG(Automotive Industry Action Group)
米国自動車業界における主に電子情報データ標準化等を推進する非営利同業団体
GMやFord等の自動車メーカー、部品サプライヤー等約1,600社が加盟
OAGI(Open Applications Group Inc.)
XMLベースの企業間取引/アプリケーション統合の標準化
GCI(Global Commerce Initiative)
食品メーカーやその小売店など85万社が参加
CIDX(Chemical Industry Data eXchange)
化学業界におけるEDIやバーコードの標準化団体
OTA(Open Travel Alliance)
旅行業界の標準化団体。ebXMLの通信層を採用
電子情報技術産業協会(JEITA)
XML Consortium
XML Consortium
ebXMLメッセージサービスの普及状況
ebXMLメッセージサービスを採用したプロジェクト
日本/アジア
VENCorp Victorian Energy Networks Corporation, Australian Distributed Grid,
Korea Trade Network (KTNET), JEITAプロジェクト
北米
General Motors, Electric Reliability Council of Texas, Inc (ERCOT), UCC / ebXML Messaging Certification,
OAGI (The Open Application Group, Inc.)/STAR (Standards for Technology in Automotive Retail),
TransCanada Pipelines, AIA Boeing Project, WEDI/SNIP, papi-Net Consortium, Covisint, US Center for Disease Control (CDC), OAG/NIST ebXML Test Bed,
Canadian project using ebMS and BizTalk
ヨーロッパ
European Steel 24-7 Marketplace, EAN International, European ebXML Interoperability Pilot, Dimon Software, Iceland, Single European Electronic Market (SEEM), SEEM: eBip,
Software Research and Development Conter (SRDC) – Middle East Technical University (METU), Ankara, Turkey, Open ebXML Laboratory
多くのベンダがすでに
ebXMLメッセージサービスを製品として実装済
XML Consortium
XML Consortium
企業間取引のモデル
売り手企業など
買い手企業など
ビジネス
レジストリ
① 公開するサービス
や企業情報など
の登録
② 取引相手の検索と企業
情報やインタフェース
等の入手
④ 取引を開始
③ 取引方法の合意
通信機能
RosettaNetのカバー範囲
B2B全般のカバー範囲(ebXML)
伝票
ビジネスプロセス
XML Consortium
XML Consortium
WEBサービスの成り立ち(1):
企業間取引からの機能拡張
Webサービス
伝票
ビジネスプロセス
通信機能
取引合意
ebXML CPP/CPA
ビジネスプロセス
ebXML BPSS
通信機能
SOAP/WSDL
ビジネスレジストリ
UDDI
特定の相手と決まった取り引き
不特定多数の相手と自由な取り引き
RosettaNetのPIP
OAGのPIP
W3C
ebXML
ebXML
RosettaNet
OAG
UDDI.org
RosettaNet
XML Consortium
XML Consortium
WEBサービスの成り立ち(2):LAN環境
からインターネット環境への拡大に伴う技術の再構築
CORBA/EJB→Webサービス
企業内(Intranet)
○相手特定/回線所有
・Security確保済み
・信頼性あり
・システム間連携:自社内で可
企業間(Internet)
○相手が不特定、回線共有
・Securityを考慮する必要あり
・信頼性の確保が必要
・相互接続性の確保が必要
-異なるOS(Windows, UNIX)
CORBA/EJB等 -Protocol(IIOP) -Interface(IDL) -Naming Service -ORB -Security -Message Reliability -認証/Access Control -高信頼性システム (Fault tolerance) -リソース管理 -運用管理 -負荷分散 -構成管理 -課金 - … Webサービス -SOAP -WSDL -UDDI -XML Digital signature -XML Encryption …?
XML Consortium
XML Consortium
Webサービスの成り立ち:まとめ
企業間システム
プラットフォームベンダ
業界を特定しない汎用的な企業間取引
のフレームワークを標準化する動きが
起きる → ebXML Initiative
インターネットに適用するため,
相手を特定せずに接続できる
インターオペラビリティが求められる
特定業界向けには
RosettaNetが成功
IBMとMicrosoftがSOAPとWSDLをW3Cに提案
W3Cでは, XML Protocol (SOAP)とWebサービス
に関するWGを作成し検討
UDDI.orgが, IBM, Microsoft, Aribaなどによって
設立され, UDDIレジストリ仕様を作成
XML Consortium
XML Consortium
Webサービス技術の分類
ワイヤ
ビジネスプロセス
ディスカバリ
OAGI BODs
伝票
RosettaNet PIPs,
OAGI BODs, ...
SOAP
UDDI
WSDL
ディスクリプション
ebXML Registry
ebXML CPP/A
ebXML BPSS
メッセージ通信
リライアブル
セキュリティ
ebXML
Message Service
(SOAP含む)
通
信
/
イ
ン
フ
ラ
層
ア
プ
リ
ケ
ー
シ
ョ
ン
層
WS-Security
取引合意
不足(WS-Reliability)
RosettaNet PIPs
Webサービス全般
B2B向け(ebXML/RosettaNet等)
XML Consortium
XML Consortium
リライアブルメッセージングとは?
•リライアブルメッセージングとは:
システム間で交換するメッセージ(伝票など)が、確実に、重複無く、送信し
た順序で相手に届くようにするためのしくみ。
•なぜリライアブルメッセージが必要か:
−システム間連携のインフラがインターネットになってきている。
−しかしインターネットは不特定多数のサーバの集まりであり、どこかの
サー
バーが突然ダウンしてメッセージが失われたり、同じメッセージが重
複して
送られたり、送信 した順序が変わってしまうことがある。
例: 発注伝票が届かなかったり、2度届いたりすると困る。
注文取消しの伝票が、発注伝票の前に届いたら困る。
XML Consortium
XML Consortium
メッセージングの仕組み
MOM (Message Oriented Middleware)
MOM (Message Oriented Middleware)
アプリケーションA
アプリケーションA
メッセージキュー メッセージキューアプリケーションB
アプリケーションB
相手の稼動状況に
依存せずに各々が
独立して動作できる
1. ローカルシステムの MOMにメッセージ(注) を送信する 1. ローカルシステムの MOMにメッセージ(注) を送信する 5. ローカルシステムの MOMからメッセージ を受信する 5. ローカルシステムの MOMからメッセージ を受信する 2.相手システムへの 転送が完了するまで メッセージを保管する 2.相手システムへの 転送が完了するまで メッセージを保管する 3.相手システムの受信準備が完了次第 メッセージを転送する 3.相手システムの受信準備が完了次第 メッセージを転送する 4.アプリケーションの 受信が完了するまで メッセージを保管する 4.アプリケーションの 受信が完了するまで メッセージを保管する 注) 分散システム間で交換されるデータであり、かつ単独で意味を持つ最小単位を「メッセージ」と呼んでいる。XML Consortium
XML Consortium
データ交換にメッセージングを利用する利点
メッセージ送信側のアプリケーションは
, 相手アプリケーションの
所在や稼働状況に依存せずに独立して動作できる
システム間の通信が可能な状態ならば
, (ファイル転送と比較し
て
)よりタイムリーなデータ交換を実現できる
アプリケーションが送信したメッセージは
, メッセージ単位に直ちに宛て先
のアプリケーションに届けられるため
信頼性の高いデータ交換を実現でき
, アプリケーション開発の
生産性も高くなる
ミドルウェアがメッセージを保管し
, 通信異常などが発生しても,
自動的にメッセージの重複や欠落を防止するため
XML Consortium
XML Consortium
メッセージングをインターネット
環境へ適用するための要件
相互接続性
(インターオペラビリティ)
個々のシステムはそれぞれが独立した対等な関係であり
,
特定の製品で統一することはできないし
, すべきではない
インターネットの標準通信技術を土台に設計され
, かつ誰もが自
由に実装できるメッセージング・プロトコルが必要
信頼性
(リライアビリティ)
インターネットでは
, 相手システムまでの通信経路の信頼性を保証で
きない
通信途中で異常が発生しても
, 宛て先のアプリケーションに確実に
データを届ける仕組みが必要
セキュリティ
インターネットは公道を利用した通信である
データが第三者に漏洩したり
, 第三者によって改竄されたり
しない仕組みが必要
XML Consortium
XML Consortium
WS-Reliability : SOAPの信頼性向上
SOAPは, 「相互接続性」は満たしているが,
「信頼性」と「セキュリティ」を満たす機能を持っていない
SOAPは, 「相互接続性」は満たしているが,
「信頼性」と「セキュリティ」を満たす機能を持っていない
WS-Reliabilityは, SOAPに信頼性を追加
(ebXMLのメッセージサービスをベース)
WS-Reliabilityは, SOAPに信頼性を追加
(ebXMLのメッセージサービスをベース)
信頼性やセキュリティなどに関する要素を
SOAPヘッダに追加して, 機能を拡張
信頼性やセキュリティなどに関する要素を
SOAPヘッダに追加して, 機能を拡張
SOAPの拡張性の利用
SOAPの拡張性の利用
非同期シーケンスおよび
リライアビリティ機能の規定
非同期シーケンスおよび
リライアビリティ機能の規定
非同期シーケンスの
規定の追加
非同期シーケンスの
規定の追加
XML Consortium
XML Consortium
WS-Reliabilityの概要
SOAP1.1仕様に準拠し、リライアブル通信機能の拡張
WS-Reliability仕様書をOASISに提案し、それをもとに改版中。
以下のようなヘッダーフォーマットや動作方法を規定
非同期通信に必要な情報
論理的宛先、メッセージ
ID、タイムスタンプなど
配信保証、重複削除、順序保証などを指定するエレメント
メッセージの配信を送信者に伝えるメッセージ(
Acknowledgmentメッセー
ジ
:Ack)のフォーマットとその伝達方法
順序保証を実現するための情報
グループID、シーケンス番号
エラー情報など
XML署名などセキュリティ機能や、その他のWebサービスの仕様書との組
合せた利用が可能
XML Consortium
XML Consortium
リライアブル通信機能
メッセージが失われたり、重複して届いたりしないことを
保証する機能
通信中にエラーが発生した場合、メッセージを再送する
ことで自動的にリカバリを行う(
Once And Only Once)
ビジネス
アプリケーション
ビジネス
アプリケーション
エラー発生
• HTTPやSMTP
などのエラー
• タイムアウト
ビジネス
アプリケーション
ビジネス
アプリケーション
SOAPノード+WS-R
SOAPノード+WS-R
SOAPノード+WS-R
SOAPノード+WS-R
メッセージ
メッセージ
同じメッセージが重複して届
いていないかチェック
メッセージを自動再送
XML Consortium
XML Consortium
WS-Reliability Ver1.0の
メッセージフォーマット概要
HTTP Binding
SOAP Envelope
SOAP Header
SOAP Body
送信先やメッセージの識別
に必要なヘッダー情報
RM:MessageHeader
リライアブルメッセージの
条件などを指定
(再送、重複チェックなど)
RM:ReliableMessage
RM:MessageOrder
順序保証についての指定
XML Consortium
XML Consortium
WS-Reliability Ver1.0の構成:
MessageHeader
SOAP Envelope
SOAP Header
SOAP Body
RM:Message
Header
RM:Reliable
Message
RM:Message
Order
RM:MessageHeader
RM:From
RM:To
RM:Service
RM:MessageId
RM:Timestamp
HTTP Binding
送信元のエンドポイントを特
定するための情報
宛先のエンドポイントを特定
するための情報
宛先のアプリケーションを特
定するための情報
メッセージを一意に特定す
るためのID
メッセージの作成日時
XML Consortium
XML Consortium
WS-Reliability Ver1.0の構成:
ReliableMessageとMessageOrder
SOAP Envelope
SOAP Header
SOAP Body
RM:Message
Header
RM:Reliable
Message
RM:Message
Order
RM:ReliableMessage
RM:MessageType
RM:ReplyTo
RM:TimeToLive
RM:AckRequested
RM:Duplicate
Elimination
RM:MessageOrder
RM:GroupId
RM:SequenceNumber
メッセージの種別(リクエストメ
ッセージ、Ack、Fault)の識別用
HTTP Binding
AckおよびFaultの返信アドレス
メッセージの有効期限
受信確認用のAckを要求す
るためのもの
重複チェックを要求するため
のもの
順序保証する範囲(グルー
プ)を識別するためのID
グループ内でのメッセージ
の順序を表す数字
XML Consortium
XML Consortium
WS-Reliability Ver1.0 メッセージの例
POST /ItemQuote HTTP/1.1 Host: www.PartsShopServer.com
Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "“ <?xml version=”1.1”?> <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP:Header> <rm:MessageHeader xmlns:rm=”http://schemas.fujitsu.com/rm” SOAP:mustUnderstand=”1”> <rm:From>[email protected]</rm:From> <rm:To>[email protected]</rm:To> <rm:Service>urn:services:ItemQuoteService</rm:Service> <rm:MessageId>[email protected]</rm:MessageId> <rm:Timestamp>2002-09-07T10:19:07</rm:Timestamp> </rm:MessageHeader> <rm:ReliableMessage xmlns:rm=”http://schemas.fujitsu.com/rm” SOAP:mustUnderstand=”1”> <rm:MessageType>Message</rm:MessageType> <rm:ReplyTo>http://server1.anyuri.com/service/</rm:ReplyTo> <rm:TimeToLive>2002-09-14T10:19:00</rm:TimeToLive>
<rm:AckRequested SOAP:mustUnderstand=”1” synchronous="false" /> <rm:DuplicateElimination/>
XML Consortium
XML Consortium
WS-Reliability Ver1.0 メッセージの例(続き)
<rm:MessageOrder xmlns:rm:=”http://schemas.fujitsu.com/rm” SOAP:mustUnderstand=”1”> <rm:GroupId status=”Continue”>[email protected]</rm:GroupId> <rm:SequenceNumber>12</rm:SequenceNumber> </rm:MessageOrder> </SOAP:Header> <SOAP:Body> <gip:GetItemPrice xmlns:gip="Some-URI"> <gip:itemnumber>product12345</gip:itemnumber> </gip:GetItemPrice> </SOAP:Body> </SOAP:Envelope>XML Consortium
XML Consortium
メッセージ送信の流れ
(正常時)
送信側システム
受信側システム
A
WS-Rメッセージサービス
ハンドラ
アプリケーションB
アプリケーションデータ アプリケーションデータ WS-Rメッセージ (アプリケーションデータ)WS-Rメッセージ
(受信通知:Acknowledgment)
永続記憶
(Persistent
Storage)
永続記憶
(Persistent
Storage)
1. 送信データを記録 1. 送信データを記録 2. 受信データを記録 2. 受信データを記録 3. 受信通知を送信 3. 受信通知を送信 4. 送信済み状態へ 4. 送信済み状態へ 5. アプリケーション 処理済み状態へ 5. アプリケーション 処理済み状態へWS-Rメッセージサービス
ハンドラ
アプリケーション
XML Consortium
XML Consortium
メッセージ送信の流れ
(再送発生時)
送信側システム
受信側システム
アプリケーションA
WS-Rメッセージサービス
ハンドラ
アプリケーションB
アプリケーションデータ アプリケーションデータ WS-Rメッセージ (アプリケーションデータ)WS-Rメッセージ
(受信通知:Acknowledgment)
永続記憶
(Persistent
Storage)
永続記憶
(Persistent
Storage)
WS-Rメッセージサービス
ハンドラ
WS-Rメッセージ 再送 (アプリケーションデータ) 1. 何らかの異常が発生し, メッセージが到達しない 1. 何らかの異常が発生し, メッセージが到達しない 2. 送信後,再送間隔が経過して も受信通知を受信しないとメッ セージを再送 2. 送信後,再送間隔が経過して も受信通知を受信しないとメッ セージを再送 再送間隔XML Consortium
XML Consortium
メッセージ送信の流れ
(重複破棄)
送信側システム
受信側システム
アプリケーションA
WS-Rメッセージサービス
ハンドラ
アプリケーションB
アプリケーションデータ アプリケーションデータ WS-Rメッセージ (アプリケーションデータ)WS-Rメッセージ
(受信通知:Acknowledgement)
永続記憶
(Persistent
Storage)
永続記憶
(Persistent
Storage)
3. 送信後,一定時間(リトライ・イ ンターバル)が経過するとメッ セージを再送 3. 送信後,一定時間(リトライ・イ ンターバル)が経過するとメッ セージを再送WS-Rメッセージサービス
ハンドラ
WS-Rメッセージ 再送 (アプリケーションデータ) リトライ・インターバル 2. 何らかの異常が発生し, 受信通知が到達しない 2. 何らかの異常が発生し, 受信通知が到達しないWS-Rメッセージ
(受信通知:Acknowledgment)
4. そのMessageidを受信済み のため,受信通知だけ送信 4. そのMessageidを受信済み のため,受信通知だけ送信 1. 重複破棄が指定された場合 Messageidを一定期間保持 1. 重複破棄が指定された場合 Messageidを一定期間保持XML Consortium
XML Consortium
メッセージ送信の流れ
(順序性保証)
メッセージサービス
ハンドラ
アプリケーションB
アプリケーションデータ① WS-Rメッセージ (シーケンス番号:0)WS-Rメッセージサービス
ハンドラ
2. シーケンス番号が入替った場合 アプリケーションに通知せず保留 2. シーケンス番号が入替った場合 アプリケーションに通知せず保留 WS-Rメッセージ (シーケンス番号:1) WS-Rメッセージ (シーケンス番号:2) アプリケーションデータ② アプリケーションデータ③ 3. シーケンス番号が連続に揃った 時点で保留メッセージも通知 3. シーケンス番号が連続に揃った 時点で保留メッセージも通知 届かなかったWS-Rメッセージを再送 (シーケンス番号:1) エラーにより 届かず送信側システム
受信側システム
アプリケーションA
WS-R
アプリケーションデータ① 1. アプリケーションが出力した順番で シーケンス番号を割り当てて送信 1. アプリケーションが出力した順番で シーケンス番号を割り当てて送信 アプリケーションデータ② アプリケーションデータ③XML Consortium
XML Consortium
標準化に向けた取り組み
OASIS WS-RM TC
活動のポイント
Royalty Freeで利用できるオープンな標準仕様の策定
他のWebサービス標準仕様との整合性を確保
SOAP, セキュリティ, トランザクション, WS-Iなど
OASIS内でもWebサービスのキーテクノロジーとして位置付け
http://xml.coverpages.org/reliableMessaging.html
これまでの活動紹介
WS-Reliability Ver1.0の公開(2003年1月)
Fujitsu, Hitachi, NEC, Oracle, Sonic Software, Sun
WS-RM TCの設立(2003年3月)
12社によるTCの設立
(上記6社 + CommerceOne, IONA, SAP, SeeBeyond, webMethods, WRQ )
Chair : Tom Rutt (Fujitsu) [email protected]
F2Fミーティング(2003年7月)、電話会議(隔週)およびメーリングリストによる活動
WS-RM TCでの活動の成果
リクアイアメントの作成
仕様書のWorking Draft V0.52を承認(2003年9月)
http://www.oasis-open.org/committees/download.php/3549/WS-Reliability-2003-09-05b.pdf
XML Consortium
XML Consortium
今後の活動予定
今後のスケジュール
標準仕様書の作成スケジュール
: 2003年10月にWS-RM TCで承認
その後、
OASIS標準仕様書へ
次回の
F2Fミーティング: 10月28∼30日(South San Francisco)
XML 2003でのデモンストレーション: 12月8日∼10日(Philadelphia)
http://www.xmlconference.org/xmlusa/
その他