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

下載本文檔

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

文檔簡(jiǎn)介

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)用軟件能夠通過(guò) internet 來(lái)訪問(wèn)并使用這項(xiàng)在 線服務(wù) 。 web 服務(wù) 技術(shù)促進(jìn)了internet 上企業(yè)之間的協(xié)作,使用 web 服務(wù)可以使合作伙伴的信息系統(tǒng)之間更容易地進(jìn)行通信。但隨之而來(lái)的問(wèn)題是: 如何集成來(lái)自不同企業(yè)的服務(wù)?為了使 web 服務(wù)易于使用,眾多組織已經(jīng)致力于 web 服務(wù)技術(shù),進(jìn)行標(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),并對(duì)還需要進(jìn)行標(biāo)準(zhǔn)化的領(lǐng)域進(jìn)行簡(jiǎn)單的討論。1web 服務(wù)web 服務(wù)是可以在組織內(nèi)部或者公司之間的異構(gòu)計(jì)算資源中被共享、 組合、使用和復(fù)用的商業(yè)資產(chǎn)。 web 服務(wù)是一個(gè)可編程的部件,它提2供一種易于通過(guò) internet 獲取的商業(yè)服務(wù)。 web 服務(wù)可以是獨(dú)立的, 也可以連接在一起向外部世界提供更強(qiáng)大的系統(tǒng)功能。web 服務(wù)將逐漸成為構(gòu)建電子商務(wù)應(yīng)用的基礎(chǔ)體系結(jié)構(gòu)。基于 web 服務(wù)的體系結(jié)構(gòu)是從一個(gè)分布式面向?qū)ο蟛考南到y(tǒng)向一個(gè)服務(wù)網(wǎng)絡(luò)的邏輯演進(jìn),該服務(wù)網(wǎng)絡(luò)提供

3、一個(gè)能夠跨企業(yè)集成的松散耦合的底層基礎(chǔ)結(jié)構(gòu)。web 服務(wù)是基于 internet 的模塊化應(yīng)用,它們執(zhí)行特定的商業(yè)任務(wù)并遵循特定的技術(shù)格式。如果應(yīng)用中的某過(guò)程可以在 internet 上以一種標(biāo)準(zhǔn)格式被調(diào)用,稱之為 web 服務(wù)的服務(wù)器;類似的,如果通過(guò) internet 調(diào)用本應(yīng)用以外的某過(guò)程,則是 web 服務(wù)的客戶。因此,實(shí)質(zhì)上web 服務(wù)是 internet 上應(yīng)用之間的客戶服務(wù)器,目的是實(shí)現(xiàn) b2b 伙伴之間的個(gè)性化信息交換,并以一種易用的格式提供和發(fā)布應(yīng)用模塊。 為了實(shí)現(xiàn)這種開(kāi)放工作,必須要有標(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)件對(duì)象模型以及相關(guān)的對(duì)象模型協(xié)議,如 corba 和 iiop(internetinter-orb protocol )、com 和 dcom 以及 java和 rmi (remote method invocation )。 web服務(wù)可以用任何語(yǔ)言編寫, 并且可以

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

6、 棧圖中 http 提供了分布式應(yīng)用之間的通信機(jī)制,xml 定義了數(shù)據(jù)交換和描述的格式, soap 是調(diào)用 web 服務(wù)的協(xié)議, wsdl 描述 web 服務(wù)的格式,而 uddi 則是注冊(cè)、查找和使用 web 服務(wù)的中樞組織。 下面分別介紹這些協(xié)議及相關(guān)的規(guī)范。2 httpweb 服務(wù)棧中的最底層是網(wǎng)絡(luò)層,也可以稱為協(xié)議層。分布式的應(yīng)用需要有網(wǎng)絡(luò)協(xié)議來(lái)定義兩個(gè)并發(fā)過(guò)程之間的通信機(jī)制。概念上, web 服務(wù)的設(shè)計(jì)是與協(xié)議無(wú)關(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 是一個(gè)基于文本的、 “請(qǐng)求響應(yīng)”( request-response)型的協(xié)議,它規(guī)定一個(gè)客戶打開(kāi)到服務(wù)器的一個(gè)連接, 然后以專門的格式發(fā)送一個(gè)請(qǐng)求, 服務(wù)器進(jìn)行響應(yīng), 同時(shí)如果必要?jiǎng)t保持連接的打開(kāi)狀態(tài)。 http 使用的普遍性及其固有的穿防火墻的能力使它成為主導(dǎo)的 web 服務(wù)網(wǎng)絡(luò)協(xié)議。但同時(shí)由于 http 是基于文本的協(xié)議而缺乏表示遠(yuǎn)程過(guò)程調(diào)用 (rpc )消息參數(shù)值的機(jī)制。其它的請(qǐng)求 /響應(yīng)類型的傳輸協(xié)議,如文件傳輸協(xié)議( file transf

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

9、nguage,可擴(kuò)展標(biāo)記語(yǔ)言)基于 xml 的消息層包括數(shù)據(jù)表示、 數(shù)據(jù)格式和消息傳輸協(xié)議。 xml 為信息交換定義了描述和格式。數(shù)據(jù)表示http 是一種基于文本的協(xié)議, 因而缺乏表示rpc 消息中的參數(shù)值的機(jī)制, 這也是 xml 作為web 服務(wù)的一個(gè)重要成分出現(xiàn)的原因。xml 是一種元語(yǔ)言,可以通過(guò)標(biāo)準(zhǔn)的編碼和格式化信息的方法進(jìn)行跨平臺(tái)的數(shù)據(jù)交換。xml允許數(shù)據(jù)被串行化為易于被任何平臺(tái)解碼的消息格式,提供了在網(wǎng)絡(luò)應(yīng)用之間交換結(jié)構(gòu)化數(shù)據(jù)的機(jī)制。xml采用純文本表示, 設(shè)計(jì)的初衷是為了存儲(chǔ)、傳送和交換數(shù)據(jù)的。xml 是一種標(biāo)記語(yǔ)言,標(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)容和外觀可以作為三個(gè)不同的部分進(jìn)行維護(hù),提供了更高的獨(dú)立性。對(duì)于數(shù)據(jù)表示層來(lái)說(shuō), 可擴(kuò)展性是一個(gè)關(guān)鍵因素。為了支持可擴(kuò)展性, web 服務(wù)需要一種機(jī)制以避免名字沖突, 并允許一個(gè)程序只處理自己所關(guān)心的元素。 xml 名空間( namespaces)提7供了一種簡(jiǎn)單、通用的方式以區(qū)分相同名字的元素或?qū)傩浴榱酥С挚蓴U(kuò)展性, xml 中的每個(gè)元素和屬性都有一個(gè)相關(guān)的名空間 uri 。數(shù)據(jù)格式web 服務(wù)需要一種方法定義 web 服務(wù)消息中使用的數(shù)據(jù)類型。 xml schema

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

33、et 上用標(biāo)準(zhǔn)技術(shù)引導(dǎo)電子商務(wù)的協(xié)議和規(guī)范的一個(gè)棧。 ebxml 曾被考慮作為 web 服務(wù)的另一個(gè)選擇,其時(shí)間也早于 web 服務(wù)模型。然而這兩個(gè)模型之間有一些重疊, 而 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è)計(jì)支持 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 對(duì)象并將再其寫回的 java 類中的機(jī)制。jaxm ( java api for xml-based m

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論