Comments
Description
Transcript
SOAP
ACM SIGMOD日本支部 ネットワークトランザクション技術専門委員会(TCNT) Webサービス関連技術のご紹介 湯原雅信 [email protected] 富士通研究所 2002年7月12日 1 【1】Webサービスの概要 【1】Webサービスの概要 【2】SOAP 【3】WSDL 【4】UDDI 【5】Webサービスとeビジネス Copyright © 2002 FUJITSU LIMITED.All rights reserved. 2 Webサービス(Web Services)とは? • 広義 – インターネット上のサービス(従来のWebページ も含む) – あるいは,XMLを使ったインターネット上の サービス • 狭義( 本日の定義) – SOAPを使ったサービス – SOAP/WSDL/UDDIを使ったサービス Copyright © 2002 FUJITSU LIMITED.All rights reserved. 3 Webサービスの意義 (1)ビジネス的意義 (2) 部品化技術的意義 (3) 通信技術的意義 (4) 知識技術的意義 Copyright © 2002 FUJITSU LIMITED.All rights reserved. 4 (1)ビジネス的意義 • 自社のコアコンピタンスを生かすため,バ リューチェイン(ビジネスコラボレーション)を ダイナミックに構築 – 自社の機能をインターネット上で他社に提供 (販売チャネルの拡大) – インターネット上の他社の機能を利用 (アウトソーシング) 例:知らない海外の会社と即座にビジネス Copyright © 2002 FUJITSU LIMITED.All rights reserved. 5 (2)部品化技術的意義 • ソフトウェアの機能をサービスという観点で部品 化(コンポーネント化) – インターネット上に分散する部品を組合わせること で,高度な機能を簡単に実現しようという考え方 – サービス部品を動的に,かつ,自動的に組合わせ る世界の実現を目指している – プラットフォーム(OS,ハード)非依存,プログラミング 言語非依存,通信プロトコル非依存 – WWW(HTML)は,人間用で機械向きではない – CORBAやDCOMはインターネットで広がっていな い(ファイアウォール問題,難しい) Copyright © 2002 FUJITSU LIMITED.All rights reserved. 6 (3)通信技術的意義 • 通信の標準レイヤが上がってきている(どこ が統一されているか) – Ethernet(MAC) à TCP/IP à HTTP à XML • バイナリ通信からテキスト通信へ – 開発者,開発ツールの裾野の広がり(1桁∼2 桁?違う) • 人間( ブラウザ)用から機械用に – HTML à XML Copyright © 2002 FUJITSU LIMITED.All rights reserved. 7 (4)知識技術的意義 • メタ情報を利用した知識処理への道が開け る – データに関するメタ情報: 例:XML Schema – サービスに関するメタ情報:例:WSDL – データ間,サービス間の意味的な関係付けのた めの最低限の基盤が整った – Semantic Webは,AI的発想からアプローチ (Semantic Net のインターネット版,RDF Schema).Webサービスは,実世界からのアプ ローチ. Copyright © 2002 FUJITSU LIMITED.All rights reserved. 8 Webサービス関連技術の歴史 インターネット ARPANET TCP (1969) (1974) IETF結成 (1986) WWW MOSAIC IE (1991) (1993) (1995) iMode (1999) 商用ISP (1990頃) 構造化 ドキュメント 分散オブジェクト B2B SGML (1986) HTML (1989) OMG結成 (1989) XML (1998) CORBA COM(OLE2) (1991) (1993) EDI (1975) Copyright © 2002 FUJITSU LIMITED.All rights reserved. DCOM (1997?) Rosettanet結成 (1998) XHTML (2000) SOAP (1999) ebXML結成 (1999) 9 Webサービスの基本仕様 • XML (eXtensible Markup Language) – 構造化された情報のテキスト表現形式 • SOAP (Simple Object Access Protocol) – メッセージの形式 (Webサービスは,SOAPメッ セージをやりとりする.XMLの一種) • WSDL (Web Service Definition Language) – サービスの形式的記述(XMLの一種) • UDDI (Universal Description, Discovery and Integration) – 企業等のビジネス(サービスの集合)の記述 (XMLの一種).UDDIサーバに登録する(電 話帳に相当) Copyright © 2002 FUJITSU LIMITED.All rights reserved. 10 Webサービス関連の仕様 ワークフロー/プロセス記述 WSFL(IBM), XLANG(MS), WSCL(W3C), Wf-XML(WfMC), BTP(OASIS) ビジネス関連(RosettaNet, OASIS, UN/CEFACT) コンシューマ関連 GRID関連 .NET My Services, .NET Passport, Liberty Alliance RosettaNet, ebXML, その他業界標準 OGSA WS-I Web Services関連(W3C, MS/IBM, uddi.org, OASIS) SOAP, SOAP with Attachment, WSDL, UDDI, WS-Routing, WS-Referral, WS-Security, WS-Inspection, WSRP, WSIA XML関連(主にW3C) XML, namespaces in XML, XML Schema, Xpath, XPointer, XLink, XML Signature, XML Encryption, Canonical XML, DOM, XSLT, SAX, HTML, XHTML, voiceXML, CC/PP, RDF, SAML, XACML Copyright © 2002 FUJITSU LIMITED.All rights reserved. 11 Webサービスの実例(1) • Microsoft (.NET) – .NET My Services (一般消費者向けサービス) • トライアルいろいろ(eBay, Amex, Groove, Accenture, イースト, JTB, JR東日本,ニッセン,NTT東日本情報システム) – OPW(Online Printing Wizard) • WinXP標準搭載.MSN+富士写真フィルムなどでSOAP利用 – その他 • ebXML実証デモ(2000.11.10; 富士通も参加) • Terrarium (エコシステムのゲーム) • IBM (Web Sphere他) – DB2のWebサービス対応 • UPnP (Universal Plug and Play) – SOAPを利用. ルータ,WinXPですでに利用されている Copyright © 2002 FUJITSU LIMITED.All rights reserved. 12 Webサービスの実例(2) • 富士通(Interstage,NetCOBOL for .NET,他) – MS .NETとの接続に成功(2001.01.29) – B-Front • 従業員向けポータルサイトの構築/運営サービス • ポータルとサービス提供企業の間の連携(の1つ)としてSOAP を採用 – 企業間電子商取引(ebXML)の相互接続実験(2001.05 など) – ファンクラブサービス • NTT情報通信プラットフォーム研究所と共同実験 • ファンクラブホームページと,バックの個々のサービスの間を Webサービスで結ぶ Copyright © 2002 FUJITSU LIMITED.All rights reserved. 13 Webサービスの実例(3) • Google – Google Web APIs:検索をWebサービス化してトライ アル提供中(1人1日1000回まで) • 日本IBM(WebSphere)系 – 日立ソフトのB2CのECサイト「@Buy24」 • ユーザとECサイトの間をSOAPで. – KDDIの決済Webサービスである「PayCounter」 • イースト社(www.est.co.jp) – MS, JTBとビジネストラベルシステムのパイロット版 – 凸版などと書籍検索(Books.or.jp) Webサービスの本格的な運用は今後 Copyright © 2002 FUJITSU LIMITED.All rights reserved. 14 【2】SOAP 【1】Webサービスの概要 【2】SOAP 【3】WSDL 【4】UDDI 【5】Webサービスとeビジネス Copyright © 2002 FUJITSU LIMITED.All rights reserved. 15 SOAPとは? • Simple Object Access Protocol • XMLを基本としたメッセージ交換プロトコル • プラットフォーム非依存,プログラミング言語 非依存,通信プロトコル非依存 • シンプルがモットー – 複雑なことはあとから決める • RPC ( SOAP-RPC) だけでなく,一方向のメッ セージもあり Copyright © 2002 FUJITSU LIMITED.All rights reserved. 16 SOAPが規定すること • SOAPの処理モデル – 中継点(Intermediary)を含めたSOAP Nodeでの動作 – ヘッダでのMustUnderstand属性の扱い • SOAPのメッセージの構造 – Envelope/Header/Body や,SOAP Fault • Encoding – もともとXMLでないデータを,モデル化し,XMLで表現 する方法 • プロトコルへのバインディングの枠組みと具体的な バインディング規則 – SOAP over HTTP (HTTP binding)のみ具体的に規定さ れている Copyright © 2002 FUJITSU LIMITED.All rights reserved. 17 SOAPが規定しないこと • SOAP Header の具体的な形式 – To/From/Via,認証情報,暗号化情報,セッショ ン情報など ⇒ それぞれ別の規格で定義 (別のnamespaceになる) • SOAP Body の具体的な形式 Copyright © 2002 FUJITSU LIMITED.All rights reserved. 18 メッセージ交換パターン SOAP メッセージ SOAP メッセージ 一般のSOAP Intermediary Initial Sender Ultimate Receiver 要求 SOAP RPC 応答 いろいろなMessage Exchange Patternがある.RPCはその1つ. Copyright © 2002 FUJITSU LIMITED.All rights reserved. 19 SOAPメッセージの構造 SOAP 1.1の場合 <SOAP-ENV:Envelope xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/envelope/> <SOAP-ENV:Header> <…>(Header Block)</…> <…>(Header Block)</…> </SOAP-ENV:Header> <SOAP-ENV:Body> <…>(Body Child)</…> <…>(Body Child)</…> 属性として, actor(V1.1)/role(V1.2) mustUnderstand が規定されている グローバル属性として, encodingStyle が規定されている </SOAP-ENV:Body> </SOAP-ENV:Envelope> Copyright © 2002 FUJITSU LIMITED.All rights reserved. 20 SOAPの長所・短所 • 長所 – インターネット(疎結合),XMLと相性がよい – 拡張性が非常に高い – プラットフォーム,言語,プロトコルに非依存 • 短所 – 性能が悪い • CORBAなどと比べて,XMLを経由する分遅い – メッセージサイズが大きい • テキストかつXMLであるため大きくなりがち Copyright © 2002 FUJITSU LIMITED.All rights reserved. 21 SOAP仕様の経過 • • • • V0.9 Draft (1999.09) V1.0 Draft (1999.12.10) V1.1 W3C Note (2000.05.08) ← 現在のメイン V1.2 W3C Last Call Working Draft (2000.06.27) • 関連ドキュメント – SOAP Messages with Attachments (W3C Note, 2000.12.11) Copyright © 2002 FUJITSU LIMITED.All rights reserved. 22 【3】WSDL 【1】Webサービスの概要 【2】SOAP 【3】WSDL 【4】UDDI 【5】Webサービスとeビジネス Copyright © 2002 FUJITSU LIMITED.All rights reserved. 23 WSDLとは? • Web Services Description Language • サービスの仕様を記述するためのXML フォーマット – プロトコル非依存(SOAPに限らない) – データスキーマ言語非依存(XML Schemaに限 らない) – データバインディング非依存(SOAP bindingに 限らない) Copyright © 2002 FUJITSU LIMITED.All rights reserved. 24 WSDLの要素 抽象的記述 <PortType> <type> msg <input> msg データモデル <operation> <output>,<fault> <operation> <PortType> <operation> 具体的データ表現方法 (バインディング) 具体的記述 <Port> <service> URL= <input> <operation> <output>,<fault> <operation> <Port> URL= <operation> バインディング先の例: SOAP, HTTP GET/POST, MIME WSDLドキュメントの構造 <wsdl:definitions name=“..” targetNamespace=“..” xmlns:wsdl=http://schemas.xmlsoap.org/wsdl/> 抽象的 定義 <wsdl:import namespace=“..” localion=“..”/> 0∼N <wsdl:types> </…> 0∼1 <wsdl:message name=“..”> メッセージ型定義 </…> 0∼N <wsdl:portType name=“..”> 抽象I/F定義 0∼N データ型定義 operation, input, output, fault 具体的 定義 </…> メッセージフォーマットや転送プロト コルを具体的に指定 <wsdl:binding name=“..” type=“…”> </…> 0∼N <wsdl:service name=“..” > </…> 0∼N </wsdl:definitions> Copyright © 2002 FUJITSU LIMITED.All rights reserved. port(エンドポイント,URL)の集合 26 4つのタイプの operation request-response one-way <input> <input> <output> サービス提供者 notification サービス提供者 solicit-response <output> <output> サービス提供者 Copyright © 2002 FUJITSU LIMITED.All rights reserved. <input> サービス提供者 27 WSDL仕様の経過 • WIDL(WebMethods), NASSL(IBM), SDL(MS), SCL(MS)などがもと • V1.0 W3C Note (2000.11) • V1.1 W3C Note (2001.03.15) ←現在はこれを利用 • V1.2 W3C WGで検討中 (2002.07.09に最初の public draft公開) Copyright © 2002 FUJITSU LIMITED.All rights reserved. 28 【4】UDDI 【1】Webサービスの概要 【2】SOAP 【3】WSDL 【4】UDDI 【5】Webサービスとeビジネス Copyright © 2002 FUJITSU LIMITED.All rights reserved. 29 UDDI • Universal Description, Discovery, and Integration • Microsoft, IBM, Ariba が半年で設計(V1 2000.09) • APIもXML形式のメッセージで規定(SOAP) Copyright © 2002 FUJITSU LIMITED.All rights reserved. 30 UDDIの利用形態 UDDI Registry (1)登録 (2)検索 (3)利用 サービス利用者 Copyright © 2002 FUJITSU LIMITED.All rights reserved. サービス提供者 31 パブリックUDDI どのUDDIレジストリノードを使っても同じ結果が得られる 登録 HP IBM 相互に 同期 MS 検索 Copyright © 2002 FUJITSU LIMITED.All rights reserved. NTT Com SAP 32 White/Yellow/Greenページ White Pages 企業情報 企業名,テキストでの説明,連絡先(電話番号, Webサイト等),企業のカテゴリ <businessEntity> 1 N Yellow Pages サービス分類 ビジネスサービスのカテゴリ(産業:NAICS,製品・ サービス:UN/SPSC,位置 <businessService> 1 N Green Pages バインド情報 <bindingTemplate> Service Type サービス技術仕様 <tModel> ECを行うためのビジネス情報.実際のサービスにバイ ンド. ネストしたモデル(ビジネスプロセス,サービス表記, バインディング情報),プラットフォーム・実装非依存 サービスタイプを示すネームスペースをポイント サービス提供者のID サービスタイプ登録のID(tModelKey) Copyright © 2002 FUJITSU LIMITED.All rights reserved. 33 UDDIの登録情報 <businessEntity> <businessService> <bindingTemplate> <tModel Instance Info> <bindingTemplate> <tModel Instance Info> <businessService> <bindingTemplate> <tModel Instance Info> Copyright © 2002 FUJITSU LIMITED.All rights reserved. <bindingTemplate> <tModel Instance Info> 34 UDDIへのアクセス • SOAPインターフェイス – Inquiry 系 • find_business, find_service, find_binding, find-tModel, など • get_businessDetail, get_businessDetailExt, get_serviceDetail, get_bindingDetail, get_tModelDetail – Publishing 系 • save_business他,delete_business他,など • Webブラウザ向けインターフェイス – http://www.uddi.org/ の”Find”からたどれる • V1は,IBM, MS • V2(beta)は,HP, IBM, MS, SAP Copyright © 2002 FUJITSU LIMITED.All rights reserved. 35 UDDI登録情報の例 • 例:UDDIレジストリのSOAPサービス自体に 関する UDDI登録情報 – ビジネス名:Microsoft – サービス名:UDDI Web Services • ブラウザからアクセスして得た情報を示す http://uddi.microsoft.com/Details/ServiceDetail.aspx?s erviceID=33c3d124-e967-4ab1-8f51-d93d95fac91a Copyright © 2002 FUJITSU LIMITED.All rights reserved. 36 UDDI登録情報の例(続き) • Business detail: Microsoft Corporation - 0076B468-EB27-42E5AC09-9955CFF462A3 Empowering people through great software - any time, any place and on any device is Microsofts vision. As the worldwide leader in software for personal and business computing, we strive to produce innovative products and services that meet our customer's Contacts: Microsoft本社のコンタクト情報(住所,電話),など Services: UDDI Web Sites, UDDI Web Services, Home Page, Online Shopping, Microsoft Developper Network, Technet, Volume Licensing Select Program, Electronic Business Integration Services, Web services for smart searching (多くは Webページをさしているだけ) Copyright © 2002 FUJITSU LIMITED.All rights reserved. 37 UDDI登録情報の例(続き) • Service detail: UDDI Web Services - 33C3D124- E967-4AB1-8F51-D93D95FAC91A UDDI SOAP/XML message-based programmatic web service interfaces. • Bindings: (Production/Test×Publish/Inquireの4 つ.そのうち1つを示す) Access pointURL: http://uddi.microsoft.com/inquire type:http Description: Production UDDI server, Inquiry interface Binding Key: ED223839-4A96-482C-86BF-FED8AE6427E4 Instance details: Specification signature: tModel: uddi-org:inquiry (uddi.orgによる定義を参照) Description: UDDI SOAP Inquiry Interface Copyright © 2002 FUJITSU LIMITED.All rights reserved. 38 UDDI登録情報の例(続き) • tModel detail: uddi-org:inquiry - UUID:4CD7E4BC-648B-426D-9936-443EAAC8AE23 UDDI Inquiry API - Core Specification Overview URL: http://www.uddi.org/wsdl/inquire_v1.wsdl 次ページ Description: This tModel defines the inquiry API calls for interacting with the UDDI registry. Copyright © 2002 FUJITSU LIMITED.All rights reserved. 39 UDDI登録情報の例(続き) • WSDL (tModelの参照先) データ型定義: http://www.uddi.org/schema/2001/uddi_v1.xsd をインポート メッセージ定義: find_business, find_service, find_binding, find_tModel , businessList, serviceList, bindingList, tModelList, … など ポート型定義: InquireSoap operation: find_business (input: find_business, output: businessList), find_service(…), …. binding定義: SOAP over HTTP へのバインディング Copyright © 2002 FUJITSU LIMITED.All rights reserved. 40 UDDI仕様の経過と現状 • V1⇒V2⇒V3 V1: 仕様 2000.9 ,現在運用中 V2:仕様 2001.6.18,beta運用開始 2001.11.19 V3:ドラフト公開 2002.07.03 • 仕様は当面V3で固定の方向 • パブリックUDDI – 現在は有用な登録情報が少ない(鶏と卵) • 実際にWebサービスを運用している企業はまだ少な い(テストやWebページ参照のみが多い) • 動的にサービスを探す必要/価値がまだ(?) ない • 与信機関などの環境が整っていない Copyright © 2002 FUJITSU LIMITED.All rights reserved. 41 UDDI仕様の経過と現状(続き) • プライベートUDDI – 企業内で,他社(や社内)のサービス情報のリ ポジトリとして利用 – パブリックUDDIより,先に広がりそう – 標準のUDDIだけでは不足している情報を付加 • 自社のみに意味があったり,公開できない情報(各 社の評価,取引の優先順位など) Copyright © 2002 FUJITSU LIMITED.All rights reserved. 42 【5】Webサービスとeビジネス 【1】Webサービスの概要 【2】SOAP 【3】WSDL 【4】UDDI 【5】Webサービスとeビジネス • RosettaNet • ebXML • BTP Copyright © 2002 FUJITSU LIMITED.All rights reserved. 43 eビジネスでのWebサービス利用 • SOAP/WSDL/UDDIなどWebサービスの仕様だけ では,ビジネスを行うには不十分 • ビジネスコラボレーションについては,古くEDIで検 討されてきていて,そのレベルの仕様が必要 – 1対1で closed なEDIから,open ediへの流れがあった – DELL のSCMに刺激を受けたRosettaNet(IT/PC業界, 電子部品業界,半導体業界) – より一般的な ebXMLへの流れ Copyright © 2002 FUJITSU LIMITED.All rights reserved. 44 ビジネスに必要なもの • ボキャブラリ(用語)やビジネスプロセスの部品 • ビジネスプロセス(手順)の記述方法 • ボキャブラリやプロセス記述を登録するリポジトリ /レジストリ • 契約/合意の記述 Copyright © 2002 FUJITSU LIMITED.All rights reserved. 45 ビジネスコラボレーション RosettaNet V1.1, V2.0 RosettaNet V3.0(検討開始) xx xx 業界 業界 仕様 仕様 PC xx PC xx 業界 業界 業界 業界 仕様 仕様 仕様 仕様 PIPs PIPs RosettaNet Dictionaries Dictionaries xx xx 業界 業界 仕様 仕様 ebXML 純SOAP (.NET流) 自動車 自動車 JEITA Rosetta 業界 JEITA Rosetta 業界 仕様 仕様 仕様 仕様 仕様 仕様 BPSS BPSS CC CC UN/CEFACT OASIS CPP/CPA CPP/CPA ebXMLMessaging Messaging ebXML RNIF RNIF Registry/ Repository W3C UDDI SOAP SOAP IETF等 HTTP等 等 HTTP RosettaNet • 情報機器(IT)業界,電子部品(EC)業界,半導体製 造(SM)業界,およびソリューション提供(SP)業界 のコンソーシアム • Dellのサプライチェーンに対抗 • 規格 PIPs(Partner Interface Processes):取引企業間のビジネ ス・プロセス Dictionaries: 共通の用語定義 (Business Directory, Technical Directories) RNIF(RosettaNet Implementation Framework):PIPのメッ セージやシグナルのpackaging, routing, transport 現在はWebサービス準拠ではないが,3.0ではSOAP準 拠の ebXMLに準拠すると宣言している Copyright © 2002 FUJITSU LIMITED.All rights reserved. 47 当社でのRosettaNet適用例 http://xml.fujitsu.com/jp/standard/10_jisso.pdf より Copyright © 2002 FUJITSU LIMITED.All rights reserved. 48 RosettaNet の PIPs • PIP 3A4 のような指定の仕方 クラスタ( 0∼8) 3は発注管理 セグメント 3Aは見積もりと発注 – 3A4は,Request Purchase Order • 現在公開されているものが 87個位あり,さ らに検討中のものがある Copyright © 2002 FUJITSU LIMITED.All rights reserved. 49 RosettaNet PIP の例(3A4) Table 3-1: Partner Role Descriptions Role Name Role Description Role Type Buyer An employee or organization that buys products for a partner type in the supply chain. Functional Seller An organization that sells products to partners in the supply chain. Organizational Table 3-4: PIP Business Documents Business Document Description Purchase Order Request A request to accept a purchase order for fulfillment. Purchase Order Confirmation Formally confirms the status of line item(s) in a Purchase Order. A Purchase Order line item may have one of the following states: accepted, rejected, or pending. Copyright © 2002 FUJITSU LIMITED.All rights reserved. 50 3A4のメッセージ交換 :Buyer Service :Seller Service transaction(exactly once) 発注伝票 (要求) 受注伝票 受信確認 1. request (PurchaseOrderRequestAction) 1.1 signal (ReceiptAcknowledgment) 発注伝票 受信確認 1.2 response (PurchaseOrderConfirmationAction) 受注伝票 (応答) 1.2.1 signal (ReceiptAcknowledgment) transaction(exactly once) Copyright © 2002 FUJITSU LIMITED.All rights reserved. 51 3A4のメッセージ交換制御 Table 4-3: Message Exchange Controls - Request Purchase Order # Time to Acknowl edge Receipt Signal Time to Ackno wledg e Accept ance Signal 2 hrs Time to Respond to Action Include d in Time to Perfor m Is Author ization Requir ed? Is NonRepudi ation Requir ed? Is Secure Transp ort Requir ed? N/A 24 hrs Y Y Y Y N/A N/A N/A Y Y Y Y 2 hrs N/A N/A Y Y Y Y N/A N/A N/A N Y Y Y Name 1. Purchase Order Request Action 1.1. Receipt Acknowledgment 1.2. Purchase Order Confirmation Action 1.2.1. Receipt Acknowledgment Copyright © 2002 FUJITSU LIMITED.All rights reserved. 52 RosettaNetのプロトコルスタック 添付以外はXML (スキーマ記述はDTD) Copyright © 2002 FUJITSU LIMITED.All rights reserved. 53 ebXML • e-ビジネスの情報を利用するための,相互運用可 能で安全で一貫性が保たれた,XMLベースの オープンなインフラを提供する • OASIS(下位,XMLの流れ)とUN/CEFACT(上位, EDIの流れ)で標準化 Copyright © 2002 FUJITSU LIMITED.All rights reserved. 54 [ebXML] ebXMLによるビジネス ebXML ebXML Business Business Process Process Specification Specification Context For Reference To Business Business Document Document Specification Specification 伝票のやりとり方法 Built With 伝票の形式 登録 ebXML ebXML Core Core Components Components 用語,構造部品 登録 登録 Registry/ Repository A社のビジネス Collaboration Collaboration Protocol Protocol Profile Profile 一方の PartnerRole を実装 Business Service Interface B社のビジネス 合意 Collaboration Collaboration Protocol Protocol Agreement Agreement 通信 Collaboration Collaboration Protocol Protocol Profile Profile Business Service Interface 他方の PartnerRole を実装 [ebXML] ebXMLでのSOAP利用 通信プロトコル envelope (HTTP等) SOAP with Attachements MIME envelope MIME Part SOAP-ENV:Envelope SOAP-ENV:Header eb:MessageHeader eb:Error eb:なんとか 他:なんとか SOAP-ENV:Body eb:Manifest eb:なんとか 他:なんとか MIME Part(s) ペイロード Copyright © 2002 FUJITSU LIMITED.All rights reserved. 56 [ebXML] Reliable Messaging Once-and-only-once (Exactly-once, all-or-nothing)の実現 Party A MSH Party B MSH Message Acknowledgement ebXMLメッセージ レベルの再送 ebXMLメッセージ レベルのAck Message Message 重複のため廃棄 ただし,Ack再送 Acknowledgement Copyright © 2002 FUJITSU LIMITED.All rights reserved. MSH: Message Service Handler 57 (続き) • Reliable Messagingのパラメータ (多くはCPAで指定) n <DuplicateElimination> 重複チェック要請 n <AckRequested> 確認要請 n <Retries> 最大再送回数 n <RetryInterval> 最小再送間隔 n <TimeToLive> 有効期限 n <PersistDuration> 最低保管期限 n <syncReplyMode> 同期応答要請 Copyright © 2002 FUJITSU LIMITED.All rights reserved. 58 (続き) Copyright © 2002 FUJITSU LIMITED.All rights reserved. 59 ビジネスプロセスとトランザクション • 管理ドメインが複数で,疎に分散し,それぞれが自 律している – 相手の会社のシステムに口出しできない(自社のマシン がクラッシュしたからといって,他社のシステムを停止し てリカバリ処理を行うことなどできない) – 相手が意図したように動作してくれるとは限らない(相手 が自分の資源をロックしたまま何もしてくれないかもしれ ない) – 相手が信用できない(言った言わない問題) – 期間の長いビジネスプロセスがある ビジネスプロセス全体を,ACIDトランザクションとするのは 不適切,ACID性だけでは不十分 Copyright © 2002 FUJITSU LIMITED.All rights reserved. 60 予約の例 • デフォルトキャンセル型予約システム – 予約後一定時間内に確認(confirm,例:支払 い)をしないと自動的にキャンセル • 例: チケット電話予約で予約番号ゲット – 予約金(手付金)が必要な場合あり • デフォルト契約型予約システム – 予約後なにもしなければ自動的に契約成立 • 例: ホテルの予約(3日前までキャンセル無料) – 違約金が必要な場合あり Copyright © 2002 FUJITSU LIMITED.All rights reserved. 61 時間感覚の問題 ロング トランザクション 人間社会のタイムフレーム 社会的動作が必要 • ロックでなく,予約 • ロールバックというより,逆操作 (compensation) • ビジネスプロセスとして, 時間条件や金銭条件も含めて契約 • 特に,予約や契約違反には金銭が関係 ショート トランザクション Copyright © 2002 FUJITSU LIMITED.All rights reserved. 機械のタイムフレーム 機械的動作(ロック/ACID)でOK 62 BTP • Business Transaction Protocol (OASIS) – 2002.05.16に,TCが approve – v1.0 の仕様書 (2002.06.03) • 複数の自律組織の管理する参加者の間で,ビジ ネスプロセスを調停する • Two-Phase Outcome coordination protocol I .Provisional Effect (Prepare) I I .Final Effect (Confirm) / Counter Effect (Cancel) • Webサービスに限定していないが,SOAPバイン ディングが示されている Copyright © 2002 FUJITSU LIMITED.All rights reserved. 63 [BTP] Two-Phase Outcome いくつかの例(参加者が状態をどのように管理するかは規定しない) Provisional Effect (Prepare) Final Effect (Confirm) Counter Effect (Cancel) 変更を記憶,実行 はせず 変更を実行 記憶した変 更を削除, 実行はせず 変更を行い,結果 を公開.変更の undo 情報を記憶 undo情報を undo動作を compensation 方式の1例 削除 行う コメント もとの状態を記憶. アクセスを許 もとの状態 典型的なデー 外部のアクセスを 可 に戻す.アク タベース方式 禁止,変更を実行 セスを許可 Copyright © 2002 FUJITSU LIMITED.All rights reserved. 64 [BTP] Superior : Inferior 関係 • 2者間の関係が基礎 – Superior : Inferior の関係 initiating application element BTP Superior service アプリケーション application メッセージ element BTPメッセージ BTP Inferior PREPARE PREPARED CONFIRM CANCEL CONFIRMED CANCELED Copyright © 2002 FUJITSU LIMITED.All rights reserved. 65 [BTP] Business Transaction Tree A Superior Superior Inferior Inferior C Inferior Inferior B Superior Superior E F Superior Inferior D Copyright © 2002 FUJITSU LIMITED.All rights reserved. 66 [BTP] Atom とCohesion • Atom (Atom Business Transaction) – 全ての Inferior を Cancel,または全ての Inferior を Confirm のどちらか • そのような Superior を,Atom Coordinator(トップ)ま たは,Sub-coordinator(中間)と言う • Cohesion (Cohesive Business Transaction) – どの Inferior を Cancelし,どの Inferior を Confirm するかは,Superior に結びついたアプ リケーションが決定する • そのような Superior を,Cohesive Composer(トップ) または Sub-composer(中間)と言う Copyright © 2002 FUJITSU LIMITED.All rights reserved. 67 [BTP] 自律的判断の許容 • Autonomous Cancel, Autonomous Confirm – Inferior は,"prepared"の状態を保持する有効 期限を示すことができる – その期限後は,勝手に(自律的に)Cancel また は Confirm 相当の処理をして,CANCELED ま たは CONFIRMED メッセージを送ってよい – Superior の outcome(判断)と,Inferior の判断 が異なった場合には,Superior から CONTRADICTION メッセージが送られる.ど のように処置するかは Superior 次第 Copyright © 2002 FUJITSU LIMITED.All rights reserved. 68 [BTP] コメント • 2者間の Superior : Inferior を基盤としているのは, 互いに自律したシステム(例:他社)を扱うため. • Superior が,対応する Inferiors との関係において トランザクション処理モニタ的役割を果たす. • 階層化しているところは,Nested Transaction の考 え方.Superior が,別の関係では Inferior の役割 となり得るため,全体を集中管理しているわけで はない.階層に合わせて分散管理している. • prepared に有効期限を設け,Inferior が自律的に 判断することを許している Copyright © 2002 FUJITSU LIMITED.All rights reserved. 69 おしまい Copyright © 2002 FUJITSU LIMITED.All rights reserved. 70