Web服務(wù)技術(shù)標(biāo)準(zhǔn)與規(guī)范_第1頁
Web服務(wù)技術(shù)標(biāo)準(zhǔn)與規(guī)范_第2頁
Web服務(wù)技術(shù)標(biāo)準(zhǔn)與規(guī)范_第3頁
Web服務(wù)技術(shù)標(biāo)準(zhǔn)與規(guī)范_第4頁
Web服務(wù)技術(shù)標(biāo)準(zhǔn)與規(guī)范_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、web服務(wù)技術(shù)標(biāo)準(zhǔn)與規(guī)范第十講web 服務(wù)技術(shù)標(biāo)準(zhǔn)與規(guī)范所謂 web 服務(wù)(web services)是指由企業(yè)發(fā)布的完成其特別商務(wù)需求的在線應(yīng)用服務(wù), 其它公司或應(yīng)用軟件能夠通過 internet 來訪問并使用這項在 線服務(wù) 。 web 服務(wù) 技術(shù)促進了internet 上企業(yè)之間的協(xié)作,使用 web 服務(wù)可以使合作伙伴的信息系統(tǒng)之間更容易地進行通信。但隨之而來的問題是: 如何集成來自不同企業(yè)的服務(wù)?為了使 web 服務(wù)易于使用,眾多組織已經(jīng)致力于 web 服務(wù)技術(shù),進行標(biāo)準(zhǔn)協(xié)議的制定,提供 web 服務(wù)的創(chuàng)建工具和解決方案。本講將以 web 服務(wù)棧為中心介紹web 服務(wù)技術(shù)涉及的一些關(guān)鍵標(biāo)

2、準(zhǔn)和規(guī)范,如 soap、 wsdl 、uddi 等。web 服務(wù)標(biāo)準(zhǔn)本身是不斷發(fā)展變化的,文中著重介紹目前被普遍接受的底層標(biāo)準(zhǔn),并對還需要進行標(biāo)準(zhǔn)化的領(lǐng)域進行簡單的討論。1web 服務(wù)web 服務(wù)是可以在組織內(nèi)部或者公司之間的異構(gòu)計算資源中被共享、 組合、使用和復(fù)用的商業(yè)資產(chǎn)。 web 服務(wù)是一個可編程的部件,它提2供一種易于通過 internet 獲取的商業(yè)服務(wù)。 web 服務(wù)可以是獨立的, 也可以連接在一起向外部世界提供更強大的系統(tǒng)功能。web 服務(wù)將逐漸成為構(gòu)建電子商務(wù)應(yīng)用的基礎(chǔ)體系結(jié)構(gòu)?;?web 服務(wù)的體系結(jié)構(gòu)是從一個分布式面向?qū)ο蟛考南到y(tǒng)向一個服務(wù)網(wǎng)絡(luò)的邏輯演進,該服務(wù)網(wǎng)絡(luò)提供

3、一個能夠跨企業(yè)集成的松散耦合的底層基礎(chǔ)結(jié)構(gòu)。web 服務(wù)是基于 internet 的模塊化應(yīng)用,它們執(zhí)行特定的商業(yè)任務(wù)并遵循特定的技術(shù)格式。如果應(yīng)用中的某過程可以在 internet 上以一種標(biāo)準(zhǔn)格式被調(diào)用,稱之為 web 服務(wù)的服務(wù)器;類似的,如果通過 internet 調(diào)用本應(yīng)用以外的某過程,則是 web 服務(wù)的客戶。因此,實質(zhì)上web 服務(wù)是 internet 上應(yīng)用之間的客戶服務(wù)器,目的是實現(xiàn) b2b 伙伴之間的個性化信息交換,并以一種易用的格式提供和發(fā)布應(yīng)用模塊。 為了實現(xiàn)這種開放工作,必須要有標(biāo)準(zhǔn)的格式和方法。幾乎所有的主流技術(shù)公司都已相繼涉足 web 服務(wù)的標(biāo)準(zhǔn)化工作, 參與了各

4、種標(biāo)準(zhǔn)化組織。 當(dāng)前,最主要的標(biāo)準(zhǔn)化組織是 w3c (world wide3web consortium )。其它組織也做了大量的工作,如 uddi.org , oasis , un/cefact , bpmi.org ,以及 ebxml.org 等。web服務(wù)棧( web services stack)web 服務(wù)不同于已有的構(gòu)件對象模型以及相關(guān)的對象模型協(xié)議,如 corba 和 iiop(internetinter-orb protocol )、com 和 dcom 以及 java和 rmi (remote method invocation )。 web服務(wù)可以用任何語言編寫, 并且可以

5、使用 http 訪問。從技術(shù)上看,一個 web 服務(wù)是一個由內(nèi)容、應(yīng)用代碼、過程邏輯、或者這些部分的任意組合所構(gòu)成的 xml 對象,并且可以通過任何tcp/ip 網(wǎng)絡(luò)訪問,只要網(wǎng)絡(luò)中使用 soap 標(biāo)準(zhǔn)集成,使用 wsdl 標(biāo)準(zhǔn)進行自描述, 使用 uddi 標(biāo)準(zhǔn)在一個公共的或者私有的目錄中注冊和發(fā)現(xiàn)。如圖 1 所示,web 服務(wù)由多個層構(gòu)成,這些層堆疊在一起形成了發(fā)現(xiàn)和調(diào)用一個獨立的web 服務(wù)所提供功能的標(biāo)準(zhǔn)機制的基礎(chǔ)。即,web 服務(wù)棧以層次結(jié)構(gòu)來表示,高層在低層的基礎(chǔ)之上構(gòu)建。4uddi服務(wù) 發(fā)web 服務(wù) &服務(wù) 描soap/x基 于xmlhttp/http網(wǎng) 絡(luò)圖 1 web 服 務(wù)

6、 棧圖中 http 提供了分布式應(yīng)用之間的通信機制,xml 定義了數(shù)據(jù)交換和描述的格式, soap 是調(diào)用 web 服務(wù)的協(xié)議, wsdl 描述 web 服務(wù)的格式,而 uddi 則是注冊、查找和使用 web 服務(wù)的中樞組織。 下面分別介紹這些協(xié)議及相關(guān)的規(guī)范。2 httpweb 服務(wù)棧中的最底層是網(wǎng)絡(luò)層,也可以稱為協(xié)議層。分布式的應(yīng)用需要有網(wǎng)絡(luò)協(xié)議來定義兩個并發(fā)過程之間的通信機制。概念上, web 服務(wù)的設(shè)計是與協(xié)議無關(guān)的, 在圖 1 的分層體系結(jié)構(gòu)模型中,從底向上任何標(biāo)準(zhǔn)的 internet 協(xié)議都可以用于在網(wǎng)絡(luò)上調(diào)用 web 服務(wù)。但目前主5要是 http (hypertext tran

7、sport protocol)和https (hypertext transport protocol secure)協(xié)議 。http/1.1 是一個基于文本的、 “請求響應(yīng)”( request-response)型的協(xié)議,它規(guī)定一個客戶打開到服務(wù)器的一個連接, 然后以專門的格式發(fā)送一個請求, 服務(wù)器進行響應(yīng), 同時如果必要則保持連接的打開狀態(tài)。 http 使用的普遍性及其固有的穿防火墻的能力使它成為主導(dǎo)的 web 服務(wù)網(wǎng)絡(luò)協(xié)議。但同時由于 http 是基于文本的協(xié)議而缺乏表示遠程過程調(diào)用 (rpc )消息參數(shù)值的機制。其它的請求 /響應(yīng)類型的傳輸協(xié)議,如文件傳輸協(xié)議( file transf

8、er protocol ,ftp )和簡單郵件協(xié)議( simple mail transport protocol , smtp )也可以使用,但是并沒有在 web 服務(wù)的各種標(biāo)準(zhǔn)中定義, 目前也只有極少數(shù)實現(xiàn)支持這些協(xié)議。另外,最近 ibm 發(fā)布了一個可靠通信協(xié)議的提案,稱作 httpr 。httpr 在 http 的基礎(chǔ)上加強了可靠性,在保持 http 優(yōu)點的同時能夠保證消息可以不受阻礙地發(fā)送到目的地。 可靠的通信對 web 服務(wù)來說是一個非常關(guān)鍵的方6面,雖然目前對由協(xié)議層實現(xiàn)是否最適合仍然有爭議,但在不遠的將來它肯定會以某種形式出現(xiàn)。3xml (extensible markup la

9、nguage,可擴展標(biāo)記語言)基于 xml 的消息層包括數(shù)據(jù)表示、 數(shù)據(jù)格式和消息傳輸協(xié)議。 xml 為信息交換定義了描述和格式。數(shù)據(jù)表示http 是一種基于文本的協(xié)議, 因而缺乏表示rpc 消息中的參數(shù)值的機制, 這也是 xml 作為web 服務(wù)的一個重要成分出現(xiàn)的原因。xml 是一種元語言,可以通過標(biāo)準(zhǔn)的編碼和格式化信息的方法進行跨平臺的數(shù)據(jù)交換。xml允許數(shù)據(jù)被串行化為易于被任何平臺解碼的消息格式,提供了在網(wǎng)絡(luò)應(yīng)用之間交換結(jié)構(gòu)化數(shù)據(jù)的機制。xml采用純文本表示, 設(shè)計的初衷是為了存儲、傳送和交換數(shù)據(jù)的。xml 是一種標(biāo)記語言,標(biāo)記在 xml 中不是預(yù)先確定的,而必須由使用者自己定義。 x

10、ml 允許使用者自由發(fā)表有用的信息, 不僅可以是有關(guān)數(shù)據(jù)結(jié)構(gòu)的, 也可以是關(guān)于數(shù)據(jù)意義的。 另外, xml 文檔的結(jié)構(gòu)、內(nèi)容和外觀可以作為三個不同的部分進行維護,提供了更高的獨立性。對于數(shù)據(jù)表示層來說, 可擴展性是一個關(guān)鍵因素。為了支持可擴展性, web 服務(wù)需要一種機制以避免名字沖突, 并允許一個程序只處理自己所關(guān)心的元素。 xml 名空間( namespaces)提7供了一種簡單、通用的方式以區(qū)分相同名字的元素或?qū)傩浴榱酥С挚蓴U展性, xml 中的每個元素和屬性都有一個相關(guān)的名空間 uri 。數(shù)據(jù)格式web 服務(wù)需要一種方法定義 web 服務(wù)消息中使用的數(shù)據(jù)類型。 xml schema

11、規(guī)范標(biāo)準(zhǔn)化了一個描述 xml 數(shù)據(jù)類型的符號集, 還定義了一個內(nèi)置簡單數(shù)據(jù)類型的集合和在各 xml 文檔中建立元素類型的機制。 xml schema 規(guī)定了 xml 文檔的邏輯結(jié)構(gòu),定義了元素、元素屬性以及元素和元素屬性之間的關(guān)系。xml 仍然處于不斷的發(fā)展中。 需要說明的是, xml 本身只是一種標(biāo)記語言,只是進行描述,并不提供商務(wù)邏輯,web 服務(wù)提供對這些邏輯的訪問。這也是為什么 web 服務(wù)的更高層的、基于xml概念同樣非常重要的原因。4soap (simple object access protocol,簡單對象訪問協(xié)議)soap 是目前被廣泛接受的消息傳輸協(xié)議。 soap 是一個

12、為信息交換設(shè)計的輕量協(xié)議, 用于在網(wǎng)絡(luò)應(yīng)用程序之間交換結(jié)構(gòu)化數(shù)據(jù), 是一種基于 xml 的機制。 soap 主要是在分布的、分散的環(huán)境中提供了一個跨 internet 調(diào)用服務(wù)的框架結(jié)構(gòu),并提供了獨立于編程語言和分布對象底8層基礎(chǔ)結(jié)構(gòu)的跨平臺集成機制。 soap 代表了 xml-rpc 的發(fā)展,已經(jīng)被 w3c 作為一種 internet 標(biāo)準(zhǔn)采納。soap 是一個遠程過程調(diào)用( rpc)協(xié)議,使用標(biāo)準(zhǔn)的 internet 協(xié)議進行傳輸:同步調(diào)用時的http 或異步調(diào)用時的 smtp 。由于可以在 http 上運行,這使得 soap 在穿防火墻進行操作的方面優(yōu)于 dcom 、rmi 和 iiop

13、 ,而在嵌入設(shè)備上實現(xiàn) soap 也比開發(fā)一個 orb 更簡單。soap 的主要設(shè)計目標(biāo)是簡單性和可擴充性。為了到達這兩個目標(biāo), soap 中省略了在其它消息系統(tǒng)和分布式對象系統(tǒng)中常見的一些特性, 如無用存儲單元收集、消息批處理等。soap 沒有定義一種編程模型或?qū)崿F(xiàn), 而是定義了一個模塊化的包裝模型, 并在模塊內(nèi)定義了編碼數(shù)據(jù)的編碼機制。 這使得 soap 可以在從消息傳遞系統(tǒng)到遠程過程調(diào)用的任何系統(tǒng)中應(yīng)用。soap的組成soap 由四個部分組成:( 1)一個 soap 封皮( envelope),定義了描述消息所包含信息的框架結(jié)構(gòu), 即消息中包含什么信息、由誰來處理以及是必需的或可選的。9

14、( 2)一組 soap 編碼規(guī)則(encoding rules ),定義了一個串行化機制, 用于交換應(yīng)用定義的數(shù)據(jù)類型的實例。 soap 編碼的類型使用簡單的標(biāo)量類型和復(fù)合類型, 如結(jié)構(gòu)和數(shù)組。 這些類型以xml 文檔元素的形式表現(xiàn), xml schema 規(guī)范中定義的數(shù)據(jù)類型以及這些數(shù)據(jù)類型的派生類型都可以直接用作 soap 元素。( 3)soap rpc 表示,定義如何表示遠程過程調(diào)用和響應(yīng)。 soap 的設(shè)計目標(biāo)之一是用xml 的可擴展性和靈活性封裝 rpc 功能,在 soap1.2 中詳細定義了 rpc 和響應(yīng)的統(tǒng)一表示,將對一個方法的調(diào)用和響應(yīng)作為結(jié)構(gòu)來建模,結(jié)構(gòu)中包含了返回值, 或

15、者還可能包括傳入的參數(shù)。( 4)soap 綁定( binding ),定義如何使用底層傳輸協(xié)議進行 soap 消息的交換。雖然soap 本身 可以 和 多 種 協(xié)議 結(jié)合 使用 ,但 soap1.2 中只描述了在 http 中的使用。soap和 http 綁定可以同時使用 soap 的形式方法與分散的靈活性以及 http 豐富的特性集。在http 中使用 soap 并不意味著 soap 覆蓋了10http 現(xiàn)有的語義,而是soap 繼承了 http的語義。soap消息soap 消息是用 xml 編碼的文檔,由三個部分組成:( 1)soap 封皮( soap envelope ),是描述 soa

16、p 消息的 xml 文檔的頂點元素。( 2)soap 消息頭( soap header ),提供了一種靈活的機制對 soap 消息以分散的、模塊化的方式進行擴充,而通信的各方( soap 發(fā)送者,soap 接收者以及 soap 中介)不必預(yù)先知道。 soap 消息頭是可選的。( 3)soap 消息體( soap body ),定義了一個簡單的機制來交換要發(fā)送給最終 soap 接收者的消息中的必要信息,是這些信息的容器。典型的使用是編組 rpc 調(diào)用和 soap 錯誤報告。soap消息交換模型soap 消息是單方向的,從一個soap發(fā)送者( sender )到一個soap接收者(receiver

17、 )。但單獨的消息通??梢员唤M合在一起形成其它消息機制。例如,soap通過在 http 請求中提供一個soap 請求消息11和在 http 響應(yīng)中提供一個 soap 響應(yīng)消息實現(xiàn) http 的請求 /響應(yīng)消息模型。soap 消息交換模型要求接收到一個 soap 消息的應(yīng)用程序執(zhí)行下列操作:( 1)識別 soap 消息中意圖供給本應(yīng)用的部分,本應(yīng)用可以作為 soap 中介將消息的其它部分傳遞給另外的應(yīng)用。( 2)檢驗 soap 消息中指定的所有必須處理的部分,并進行相應(yīng)的處理。( 3)如果 soap 應(yīng)用不是消息的最終目的地,它應(yīng)該在刪除所有自己消耗的部分后將消息轉(zhuǎn)發(fā)給消息要供給的下一個應(yīng)用。s

18、oap 只是一種包裝和綁定調(diào)用一個web 服務(wù)所需信息的方式, web 服務(wù)也可以使用其它的編碼技術(shù)調(diào)用。另外, soap 本身沒有嚴格地歸入 web 服務(wù), soap 可以作為一種對任何類型的遠程對象或過程的訪問機制使用, 也可以只是一個簡單的消息傳遞機制。除了 soap 以外,w3c 創(chuàng)建的 xmlp 工作組還 建 立 了xml協(xié) 議 ( extensiblemarkuplanguage protocol ,xmlp )。xmlp 是類似于 soap 的 xml 消息協(xié)議,包括封皮、對象串行12化方式、http 傳輸綁定以及進行遠程過程調(diào)用的方式幾個部分。甚至有人認為 xmlp 將逐步取代

19、 soap。5wsdl ( web services description language,web 服務(wù)描述語言)web 服務(wù)的目標(biāo)之一是允許應(yīng)用程序以標(biāo)準(zhǔn)的方式在兩個或多個同等的服務(wù)之間進行選擇,因為有時應(yīng)用可以由作為支持網(wǎng)絡(luò)的服務(wù)而實現(xiàn)的構(gòu)件構(gòu)造而成, 甚至可以從這些服務(wù)中進行動態(tài)選擇。服務(wù)描述層定義了為程序提供足夠信息所需的描述機制, 使程序能夠根據(jù)一定的準(zhǔn)則選擇服務(wù),如服務(wù)的質(zhì)量、安全性、可靠性等。到 web 服務(wù)的接口由基于 xml 的 wsdl 定義,它提供了應(yīng)用訪問指定的 web 服務(wù)所必需的全部信息, 描述服務(wù)提供了什么功能、 服務(wù)位于何處以及服務(wù)如何調(diào)用。wsdl 以 x

20、ml 格式描述網(wǎng)絡(luò)服務(wù), 將服務(wù)描述為在包含面向過程或面向文檔信息的消息上進行操作的一組端點。操作和消息是抽象描述的,然后綁定到具體的網(wǎng)絡(luò)協(xié)議和消息格式以定義一個端點。相關(guān)的具體端點被組合成為抽象端點(服務(wù))。 wsdl 是可擴展的,允許描述任13何端點和消息,而不考慮通信使用的消息格式或網(wǎng)絡(luò)協(xié)議。wsdl 使用下面的元素定義網(wǎng)絡(luò)服務(wù):類型(types),使用某種類型系統(tǒng)的數(shù)據(jù)類型定義的容器。wsdl 并沒有引入新的類型定義語言,而將 xsd 作為自己的標(biāo)準(zhǔn)類型系統(tǒng),并允許通過可擴展性使用其它的類型定義語言。消息( message),對要傳送的數(shù)據(jù)的一個抽象定義。操作(operation ),

21、對服務(wù)支持的動作的抽象描述。端口類型( port type ),一個或多個端點支持的操作的一個抽象集合。綁定(binding ),對特定端口類型的一個具體協(xié)議和數(shù)據(jù)格式規(guī)格。端口( port ),一個單獨的端點,由一個綁定和一個網(wǎng)絡(luò)地址組合在一起定義。服務(wù)( service),一組相關(guān)的端點的集合。一個 web 服務(wù)由一組端口定義,而端口由綁定到一個具體協(xié)議和數(shù)據(jù)格式規(guī)范的一組抽象操作和消息定義。 操作和消息的抽象是為了使它14們可以復(fù)用和綁定到不同的協(xié)議和數(shù)據(jù)格式, 如soap、 http get/post 或 mime 。在 wsdl 中,端點和消息的抽象定義是和它們的具體網(wǎng)絡(luò)配置和數(shù)據(jù)格

22、式綁定相分離的; 另外,wsdl 定義了一個公共的綁定機制, 用于將特定的協(xié)議或數(shù)據(jù)格式或結(jié)構(gòu)連接到抽象的消息、操作或端點,這些都允許對抽象定義的復(fù)用。wsdl 目前已經(jīng)被廣泛支持,但還不是w3c推薦的標(biāo)準(zhǔn)語言。6uddi ( universal description , discovery ,and integration ,統(tǒng)一描述、發(fā)現(xiàn)和集成)面對極度豐富的服務(wù), 最常出現(xiàn)的問題是 “在哪里以及如何找到需要的信息?”。統(tǒng)一 uddi 規(guī)范在底層協(xié)議的基礎(chǔ)上又定義了一層, 在這一層,不同的企業(yè)能夠以相同的方式描述自己提供的服務(wù)和查詢對方提供的服務(wù)。uddi 是一套基于 web 的、分布式

23、的、為 web服務(wù)提供的信息注冊中心的實現(xiàn)標(biāo)準(zhǔn)規(guī)范, 同時也包含一組使企業(yè)能將自身提供的 web 服務(wù)注冊以使別的企業(yè)能夠發(fā)現(xiàn)的訪問協(xié)議的實現(xiàn)標(biāo)準(zhǔn)。15信息結(jié)構(gòu)uddi 為表示 xml 中商業(yè)服務(wù)描述定義了一個數(shù)據(jù)結(jié)構(gòu)標(biāo)準(zhǔn), 提供了更高層次的商業(yè)信息以補充 wsdl 中的說明。 uddi 定義了四種基本的結(jié)構(gòu):商業(yè)實體(business entity ),描述商業(yè)信息,如名稱、類型等。商業(yè)服務(wù)(business service),已發(fā)布的 web 服務(wù)的集合。綁定模板( binding template ),訪問信息,如 url 。技術(shù)規(guī)范( tmodel ),對服務(wù)類型的技術(shù)規(guī)格說明,如接口

24、定義、消息格式、消息協(xié)議、安全協(xié)議等。服務(wù)發(fā)布和發(fā)現(xiàn)在進行一個 web 服務(wù)調(diào)用之前,必須先找到具有所需服務(wù)的企業(yè), 發(fā)現(xiàn)調(diào)用接口和語義, 然后編寫或配置自己的軟件以便與服務(wù)合作。uddi 的核心部件是 uddi 商業(yè)注冊,它用一個xml文檔來描述企業(yè)及其提供的web 服務(wù)。uddi商業(yè)注冊是一個基于soap 的 web 服16務(wù),提供企業(yè)用于將它們的服務(wù)發(fā)布到注冊中心的接口。注冊中心是分布式的, 彼此之間不斷進行復(fù)制操作。web 服務(wù)基本上是機器到機器的通信,為了有效工作,這種體系結(jié)構(gòu)必須具有進行基于 web 的應(yīng)用和業(yè)務(wù)過程集成的有效工具。 uddi 商業(yè)注冊中心包含三類信息, 企業(yè)可以通

25、過這些信息發(fā)現(xiàn)一個 web 服務(wù)。白頁,包括企業(yè)的名稱、地址、聯(lián)系方式和企業(yè)標(biāo)識,并允許其它公司按照名稱查找目錄。黃頁,包括基于標(biāo)準(zhǔn)分類法的行業(yè)類別。綠頁,包括了關(guān)于該企業(yè)所提供的web 服務(wù)的技術(shù)信息,其形式可能是一些指向文件或url 的指針,而這些文件或 url 是為服務(wù)發(fā)現(xiàn)機制服務(wù)的。綠頁還允許注冊的公司之間使用xml進行連接,提供了業(yè)務(wù)過程自動化的關(guān)鍵機制。編程接口uddi 規(guī)范提供了編程接口, 允許商業(yè)注冊一個 web 服務(wù),以及查找指定 web 服務(wù)的注冊。一旦想要的 web 服務(wù)被確定,將提供一個指向wsdl 文檔所在位置的指針。編程接口分為查詢17api 和發(fā)布 api 兩個邏

26、輯部分。查詢api 又分為兩個部分:一部分用來構(gòu)造搜索和瀏覽 uddi 注冊信息的程序,另一部分在 web 服務(wù)出現(xiàn)錯誤時使用。發(fā)布 api 可以用來創(chuàng)建各種類型的工具,以直接與 uddi 注冊中心進行交互, 便于企業(yè)技術(shù)人員管理發(fā)布信息。使用 uddiuddi 規(guī)范包含了對基于web 的 uddi 商業(yè)注冊中心可以實施的整套共享操作。一般來說,程序或程序員通過 uddi 商業(yè)注冊中心來獲得 web 服務(wù)的位置及其技術(shù)信息。其中對于程序員來說,是對自己的系統(tǒng)實現(xiàn)準(zhǔn)備, 以使自己的系統(tǒng)能和那些 web 服務(wù)實現(xiàn)訪問兼容,或是描述自己的 web 服務(wù)從而能讓別人使用。從商業(yè)層次上來說, uddi

27、商業(yè)注冊中心可以被用于核查某個合作伙伴是否擁有特定的 web 服務(wù)的調(diào)用接口,或是找出在某行業(yè)中能提供某種類型服務(wù)的公司,并確定某合作伙伴的 web 服務(wù)的技術(shù)描述及交互時所需的技術(shù)細節(jié)。uddi 是完全可選的,也就是說,具有 web 服務(wù)的公司,如果只是想對有限的人員或設(shè)備提供特定功能,它們不需要對外發(fā)布它們的服務(wù)。18其它標(biāo)準(zhǔn)除了 uddi 以外,服務(wù)發(fā)現(xiàn)層還有其它一些標(biāo)準(zhǔn)。如由 microsoft 開發(fā)的 disco(discovery ofweb services)規(guī)范。 disco定義了一個基于xml 的發(fā)現(xiàn)文檔格式和一個檢索該發(fā)現(xiàn)文檔的協(xié)議。 disco 允許開發(fā)人員通過一個 ht

28、tpget 操作發(fā)現(xiàn)服務(wù)。使用發(fā)現(xiàn)文檔格式,可以將一個發(fā)現(xiàn)文檔發(fā)送到一臺遠程服務(wù)器, 如果存在支持 soap 的 web 服務(wù),則收回一個服務(wù)所提供的 wsdl 描述。7服務(wù)集成和工作流工作流的概念在設(shè)計電子商務(wù)應(yīng)用時愈加重要。當(dāng)一個企業(yè)需要集成來自多方的 web 服務(wù)并為終端用戶組織這些服務(wù)時, 必須掌握其系統(tǒng)的過程和順序。對于這些具有異步特征的應(yīng)用,適合使用工作流引擎。要使 web 服務(wù)的實現(xiàn)不僅僅停留在簡單的請求 /響應(yīng)模式上,商業(yè)過程協(xié)作和工作流是必不可少的, 其中包括跨企業(yè)邊界的 web 服務(wù)的合成與自動化。要成功進行企業(yè)間的自動化和協(xié)作的必需條件是要有一個標(biāo)準(zhǔn)化的商業(yè)協(xié)議來描述這些

29、商業(yè)過程。服務(wù)工作19流領(lǐng)域目前尚未形成固定的標(biāo)準(zhǔn),有一定影響的是 wsfl 、xlang 以及 bpmi 。wsflweb 服 務(wù)流 程 語言 ( web services flow language ,wsfl )是一個描述商業(yè)過程的規(guī)范。 wsfl 提出了兩種 web 服務(wù)組合的類型:一是商業(yè)過程, 一是合作伙伴交互。 商業(yè)過程作為一組為達到一個特定的商業(yè)目標(biāo)而順序執(zhí)行的 web 服務(wù)建模。合作伙伴交互描述 web 服務(wù)之間如何彼此交互。 web 服務(wù)被連接在一起以表明一個 web 服務(wù)與另一個 web 服務(wù)接口的操作交互作用。xlangxlang 是 microsoft 的 bizta

30、lk 服務(wù)器使用的 xml 商業(yè)過程語言。 xlang 用于描述商業(yè)過程,這 些 過 程 在 運 行 時 由 biztalk 控 制 引 擎( orchestration engine )執(zhí)行。 xlang 還允許將web 服務(wù)結(jié)合到商業(yè)過程中以及 web 服務(wù)的組合。另外, xlang 支持補償過程。 xlang 不支持代價較高的兩階段提交協(xié)議, 而是提供了一個可供選擇的開放式模型的表示方法, 其中可以為活動明確指定抵消該活動影響的補償活動。20由于 microsoft 先前與 ibm 在 wsdl 和 uddi 上的合作,有人認為將來二者可能會向 w3c 提出將 xlang 和 wsfl

31、結(jié)合起來的提議。bpmibpmi ( business process management initiative )推進公共商業(yè)過程的標(biāo)準(zhǔn)化。這些過程可能跨多個應(yīng)用、 部門或商業(yè)合作伙伴, 可能在防火墻之后或者可以通過 internet 訪問。 bpmi.org 制定了一些開放規(guī)范,如 bpml 和bpql ,這使得可以對電子商務(wù)過程用即將出現(xiàn)的 bpms ( business process management system)進行基于標(biāo)準(zhǔn)的管理。bpml(businessprocessmodelinglanguage),是商業(yè)過程建模的元語言。bpml將商業(yè)過程定義為為了達到一個共同目標(biāo)

32、在參與者和根據(jù)定義的規(guī)則集合執(zhí)行的活動之間的交互作用。bpql (business process query language)是到一個過程服務(wù)器的管理接口, 允許商業(yè)分析員查詢由過程服務(wù)器管理的過程實例的狀態(tài), 并控制過程實例的執(zhí)行。該接口是基于 soap 的。為了過程的注冊、 廣告和發(fā)現(xiàn), 由過程庫管理的21過程模型通過 bpql 接口可以作為 uddi 服務(wù)對外提供。bpml 和 bpql 都是開放規(guī)范。8其它相關(guān)標(biāo)準(zhǔn)和領(lǐng)域其它許多組織在 web 服務(wù)規(guī)范的制定方面也做了大量的工作。 這里只簡單介紹幾種比較知名的規(guī)范。ebxmlebxml 的結(jié)構(gòu)類似 web 服務(wù)棧,是在 intern

33、et 上用標(biāo)準(zhǔn)技術(shù)引導(dǎo)電子商務(wù)的協(xié)議和規(guī)范的一個棧。 ebxml 曾被考慮作為 web 服務(wù)的另一個選擇,其時間也早于 web 服務(wù)模型。然而這兩個模型之間有一些重疊, 而 ebxml 更注重 edi 方式的信息交換。一種可能的設(shè)想是 web 服務(wù)模型和 ebxml 之間的逐步合并。 un/cefact 和 oasis 最近已經(jīng)采納 soap 作為 ebxml 消息傳遞底層結(jié)構(gòu)的基礎(chǔ)。 w3c 也積極考慮 ebxml 規(guī)范,并將并入規(guī)范中那些滿足作為標(biāo)準(zhǔn)化 web 服務(wù)體系結(jié)構(gòu)的需求的方面。22jax packjax pack 是 sun 封裝了 java 領(lǐng)域的各種標(biāo)準(zhǔn)的結(jié)果。 jax 是一

34、組 xml 的 java api ,其設(shè)計支持 web 服務(wù)標(biāo)準(zhǔn) api ,包括 soap、 xmlp 、wsdl 和 uddi 等。jax pack 中包括的 api 如下:jaxp (java api for xml parsing ),包含sax(simple api for xml ),dom(document object model )和 xslt 。jaxb (java api for xml binding),一種將 xml 數(shù)據(jù)類型定義編譯到能夠?qū)?xml 讀入 java 對象并將再其寫回的 java 類中的機制。jaxm ( java api for xml-based m

35、essaging),一個發(fā)送消息的基于 soap 的協(xié)議。jaxr (java api for xml registries ),一個包羅眾多的規(guī)范,其中為 uddi 和 ebxml 注冊及其它可能的注冊提供了統(tǒng)一接口。jax-rpc( javaapiforxml-basedremote process communication ),一個請求遠程服務(wù)器上操作的基于soap 的協(xié)議。23除了上面描述的各種規(guī)范以外, 還需要提及一些其它的重要領(lǐng)域,這些領(lǐng)域涉及 web 服務(wù)棧的所有層,其中包括安全性、管理、服務(wù)質(zhì)量和事務(wù)等。在 web 服務(wù)具有轉(zhuǎn)換企業(yè)商業(yè)關(guān)系的能力之前,企業(yè)需要這些額外的特性以及隨之而來的附加機制、安全、身份確認、合同管理、質(zhì)量控制等。其中最重要的是安全性和事務(wù)。安全性xml 密鑰管理系統(tǒng)( xml key management system,xkms )是將 pki 和數(shù)字化證書與 xml 應(yīng)用集成的結(jié)果,由 w3c xml 簽名工作組開發(fā)。該領(lǐng)域的其它規(guī)范包括安全服務(wù)標(biāo)記語言( security services markup language ,s2ml )和 authxml ,正由 oasis xml 安全服務(wù)委員會支持其統(tǒng)一標(biāo)準(zhǔn)化。btp事務(wù)在 web 服務(wù)中有獨特的需求。在保證相關(guān)聯(lián)的工作流可靠協(xié)調(diào)的同時, 事務(wù)協(xié)議必

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論