版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第十講 Web 服務(wù)技術(shù)標(biāo)準(zhǔn)與規(guī)范所謂Web服務(wù)(Web Services)是指由企業(yè)發(fā)布的完成其特別商務(wù)需求的在線應(yīng)用服務(wù), 其它公司或應(yīng)用軟件能夠通過 Internet 來訪問并使用這項(xiàng)在線服務(wù)。 Web 服務(wù)技術(shù)促進(jìn)了 Internet 上企業(yè)之間的協(xié)作, 使用 Web 服務(wù)可以使合作伙伴的信息系統(tǒng)之間更容易地進(jìn)行通 信。但隨之而來的問題是:如何集成來自不同企業(yè)的服務(wù)?為了使Web 服務(wù)易于使用,眾多組織已經(jīng)致力于Web服務(wù)技術(shù),進(jìn)行標(biāo)準(zhǔn)協(xié)議的制定,提供Web服務(wù)的創(chuàng)建工具和解決本講將以 WebWSDL 、 UDDI 等。服務(wù)棧為中心介紹 Web 服務(wù)技術(shù)涉及的一些關(guān)鍵標(biāo)準(zhǔn)和規(guī)范, 如
2、SOAP、 Web 服務(wù)標(biāo)準(zhǔn)本身是不斷發(fā)展變化的,文中著重介紹目前被普遍接受的 底層標(biāo)準(zhǔn),并對(duì)還需要進(jìn)行標(biāo)準(zhǔn)化的領(lǐng)域進(jìn)行簡單的討論。1Web 服務(wù)Web 服務(wù)是可以在組織內(nèi)部或者公司之間的異構(gòu)計(jì)算資源中被共享、組合、使用和復(fù) 用的商業(yè)資產(chǎn)。 Web 服務(wù)是一個(gè)可編程的部件,它提供一種易于通過 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ò)提供一個(gè)能夠跨企業(yè)集成的松散耦合的底層基礎(chǔ)結(jié)構(gòu)
3、。Web 服務(wù)是基于 Internet 的模塊化應(yīng)用, 它們執(zhí)行特定的商業(yè)任務(wù)并遵循特定的技術(shù)格 式。如果應(yīng)用中的某過程可以在In ternet上以一種標(biāo)準(zhǔn)格式被調(diào)用, 稱之為Web服務(wù)的服務(wù)器;類似的,如果通過 Internet 調(diào)用本應(yīng)用以外的某過程,則是 Web 服務(wù)的客戶。因此,實(shí) 質(zhì)上 Web 服務(wù)是 Internet 上應(yīng)用之間的客戶服務(wù)器,目的是實(shí)現(xiàn) B2B 伙伴之間的個(gè)性化信 息交換, 并以一種易用的格式提供和發(fā)布應(yīng)用模塊。 為了實(shí)現(xiàn)這種開放工作, 必須要有標(biāo)準(zhǔn) 的格式和方法。幾乎所有的主流技術(shù)公司都已相繼涉足 Web 服務(wù)的標(biāo)準(zhǔn)化工作,參與了各種標(biāo)準(zhǔn)化組 織。當(dāng)前,最主要的標(biāo)
4、準(zhǔn)化組織是 W3C( World Wide Web 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(Internet Inter-ORB Protocol )、COM 和 DCOM 以及 Java和 RMI( Remote Method Invocation )。 Web 服務(wù)可以用任何語言編寫,并且可以使用 HTTP 訪問。從技術(shù)上
5、看,一個(gè) Web 服務(wù)是 一個(gè)由內(nèi)容、應(yīng)用代碼、過程邏輯、或者這些部分的任意組合所構(gòu)成的XML 對(duì)象,并且可以通過任何 TCP/IP 網(wǎng)絡(luò)訪問, 只要網(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)來表示,高層 在低層的基礎(chǔ)之上構(gòu)建。10Web 服務(wù) & WSDLSOAP/XMLJ-HTTP/HTTPS, SMTP, FTP服務(wù)描述層基于XML的消息層
6、網(wǎng)絡(luò)層UDDI服務(wù)發(fā)現(xiàn)層圖1 Web服務(wù)棧圖中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é)議來定義兩個(gè)并發(fā)過程之間的通信機(jī)制。概念上,Web服務(wù)的設(shè)計(jì)是與協(xié)議無關(guān)的,在圖1的分層體系結(jié)構(gòu)模型中,從底向上任何標(biāo)準(zhǔn)的In ternet協(xié)議都可以用于在網(wǎng)絡(luò)上調(diào)用 Web服務(wù)。但目前主要是 HTTP (Hypertext Tran s
7、port Protocol )和 HTTPS (Hypertext Tran sport Protocol Secure )協(xié)議。HTTP/1.1是一個(gè)基于文本的、"請(qǐng)求響應(yīng)”(request-respons©型的協(xié)議,它規(guī)定一個(gè)客戶打開到服務(wù)器的一個(gè)連接,然后以專門的格式發(fā)送一個(gè)請(qǐng)求,服務(wù)器進(jìn)行響應(yīng),同時(shí)如果必要?jiǎng)t保持連接的打開狀態(tài)。HTTP使用的普遍性及其固有的穿防火墻的能力使它成為主導(dǎo)的Web服務(wù)網(wǎng)絡(luò)協(xié)議。但同時(shí)由于HTTP是基于文本的協(xié)議而缺乏表示遠(yuǎn)程過程調(diào)用(RPC )消息參數(shù)值的機(jī)制。其它的請(qǐng)求/響應(yīng)類型的傳輸協(xié)議,如文件傳輸協(xié)議( File Transfer
8、Protocol , FTP)和簡 單郵件協(xié)議(Simple Mail Tran sport Protocol , SMTP)也可以使用,但是并沒有在 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ù)來說是一個(gè)非常關(guān)鍵的方面,雖然目前對(duì)由協(xié)議層實(shí)現(xiàn)是否最 適合仍然有爭議,但在不遠(yuǎn)的將來它肯定會(huì)以某種形式出現(xiàn)。3. XML (Extensible Markup Language,可擴(kuò)展標(biāo)記語
9、言)基于XML的消息層包括數(shù)據(jù)表示、數(shù)據(jù)格式和消息傳輸協(xié)議。XML為信息交換定義了描述和格式。數(shù)據(jù)表示HTTP是一種基于文本的協(xié)議,因而缺乏表示RPC消息中的參數(shù)值的機(jī)制,這也是XML 作為Web服務(wù)的一個(gè)重要成分出現(xiàn)的原因。XML是一種元語言,可以通過標(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)記語言, 標(biāo)記在 XML 中不是預(yù)先確定的, 而必須由使用者自己定義。 XML 允許使用 者自由發(fā)表有用的信
10、息, 不僅可以是有關(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ù)表示層來說,可擴(kuò)展性是一個(gè)關(guān)鍵因素。為了支持可擴(kuò)展性, Web 服務(wù)需要 一種機(jī)制以避免名字沖突,并允許一個(gè)程序只處理自己所關(guān)心的元素。 XML 名空間(namespaces)提供了一種簡單、通用的方式以區(qū)分相同名字的元素或?qū)傩?。為了支持可擴(kuò) 展性, XML 中的每個(gè)元素和屬性都有一個(gè)相關(guān)的名空間 URI 。數(shù)據(jù)格式Web 服務(wù)需要一種方法定義 Web 服務(wù)消息中使用的數(shù)據(jù)類型。 XML Schema 規(guī)范標(biāo)準(zhǔn) 化了一個(gè)描述 XML 數(shù)
11、據(jù)類型的符號(hào)集, 還定義了一個(gè)內(nèi)置簡單數(shù)據(jù)類型的集合和在各 XML 文檔中建立元素類型的機(jī)制。XML Schema 規(guī)定了 XML 文檔的邏輯結(jié)構(gòu),定義了元素、元素屬性以及元素和元素屬性之間的關(guān)系。XML 仍然處于不斷的發(fā)展中。 需要說明的是, XML 本身只是一種標(biāo)記語言, 只是進(jìn)行 描述,并不提供商務(wù)邏輯, Web服務(wù)提供對(duì)這些邏輯的訪問。這也是為什么 Web服務(wù)的 更高層的、基于 XML 概念同樣非常重要的原因。4SOAP (Simple Object Access Protocol,簡單對(duì)象訪問協(xié)議)SOAP 是目前被廣泛接受的消息傳輸協(xié)議。 SOAP 是一個(gè)為信息交換設(shè)計(jì)的輕量協(xié)議,
12、 用于在網(wǎng)絡(luò)應(yīng)用程序之間交換結(jié)構(gòu)化數(shù)據(jù),是一種基于 XML 的機(jī)制。 SOAP 主要是在分布 的、分散的環(huán)境中提供了一個(gè)跨 Internet 調(diào)用服務(wù)的框架結(jié)構(gòu),并提供了獨(dú)立于編程語言和 分布對(duì)象底層基礎(chǔ)結(jié)構(gòu)的跨平臺(tái)集成機(jī)制。 SOAP 代表了 xml-rpc 的發(fā)展,已經(jīng)被 W3C 作為一種 Internet 標(biāo)準(zhǔn)采納。SOAP是一個(gè)遠(yuǎn)程過程調(diào)用(RPC)協(xié)議,使用標(biāo)準(zhǔn)的In ternet協(xié)議進(jìn)行傳輸:同步調(diào) 用時(shí)的HTTP或異步調(diào)用時(shí)的 SMTP。由于可以在HTTP上運(yùn)行,這使得SOAP在穿防火墻 進(jìn)行操作的方面優(yōu)于 DCOM、RMI和IIOP,而在嵌入設(shè)備上實(shí)現(xiàn) SOAP也比開發(fā)一個(gè) O
13、RB 更簡單。SOAP 的主要設(shè)計(jì)目標(biāo)是簡單性和可擴(kuò)充性。為了到達(dá)這兩個(gè)目標(biāo),SOAP 中省略了在其它消息系統(tǒng)和分布式對(duì)象系統(tǒng)中常見的一些特性,如無用存儲(chǔ)單元收集、消息批處理等。SOAP 沒有定義一種編程模型或?qū)崿F(xiàn), 而是定義了一個(gè)模塊化的包裝模型, 并在模塊內(nèi) 定義了編碼數(shù)據(jù)的編碼機(jī)制。這使得 SOAP 可以在從消息傳遞系統(tǒng)到遠(yuǎn)程過程調(diào)用的任何 系統(tǒng)中應(yīng)用。SOAP的組成SOAP 由四個(gè)部分組成:( 1)一個(gè) SOAP 封皮( Envelope) ,定義了描述消息所包含信息的框架結(jié)構(gòu),即消 息中包含什么信息、由誰來處理以及是必需的或可選的。(2) 一組SOAP編碼規(guī)則(Encoding ru
14、les),定義了一個(gè)串行化機(jī)制,用于交換應(yīng) 用定義的數(shù)據(jù)類型的實(shí)例。 SOAP 編碼的類型使用簡單的標(biāo)量類型和復(fù)合類型, 如結(jié)構(gòu)和數(shù) 組。這些類型以 XML 文檔元素的形式表現(xiàn), XML Schema 規(guī)范中定義的數(shù)據(jù)類型以及這些 數(shù)據(jù)類型的派生類型都可以直接用作 SOAP 元素。( 3)SOAP RPC 表示,定義如何表示遠(yuǎn)程過程調(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)來建模, 結(jié)構(gòu)中包含了返回值, 或者還可能包 括傳入的參數(shù)。(4)SOAP 綁定(
15、 binding ),定義如何使用底層傳輸協(xié)議進(jìn)行SOAP 消息的交換。雖然SOAP本身可以和多種協(xié)議結(jié)合使用,但SOAP1.2中只描述了在HTTP中的使用。SOAP和 HTTP 綁定可以同時(shí)使用 SOAP 的形式方法與分散的靈活性以及 HTTP 豐富的特性集。 在HTTP中使用SOAP并不意味著 SOAP覆蓋了 HTTP現(xiàn)有的語義,而是SOAP繼承了 HTTP 的語義。SOAR肖息SOAP 消息是用 XML 編碼的文檔,由三個(gè)部分組成:(1)SOAP 封皮( SOAP Envelope ) ,是描述 SOAP 肖息的 XML 文檔的頂點(diǎn)元素。(2) SOAP消息頭(SOAP Header),
16、提供了一種靈活的機(jī)制對(duì) SOAP消息以分散 的、模塊化的方式進(jìn)行擴(kuò)充, 而通信的各方 (SOAP 發(fā)送者, SOAP 接收者以及 SOAP 中介) 不必預(yù)先知道。 SOAP 消息頭是可選的。(3) SOAP消息體(SOAP Body),定義了一個(gè)簡單的機(jī)制來交換要發(fā)送給最終 SOAP 接收者的消息中的必要信息,是這些信息的容器。典型的使用是編組RPC 調(diào)用和 SOAP 錯(cuò) 誤報(bào)告。SOAF肖肖息交換模型SOAP消息是單方向的,從一個(gè) SOAP發(fā)送者(sender)到一個(gè) SOAP接收者(receiver)。但單獨(dú)的消息通常可以被組合在一起形成其它消息機(jī)制。例如,SOAP通過在 HTTP 請(qǐng)求中
17、提供一個(gè) SOAP 請(qǐng)求消息和在 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)用。SOAP 只是一種包裝和綁定調(diào)用一個(gè) Web 服務(wù)所需信息的方式, Web 服務(wù)也可以使用
18、其它的編碼技術(shù)調(diào)用。另外, SOAP 本身沒有嚴(yán)格地歸入 Web 服務(wù), SOAP 可以作為一種 對(duì)任何類型的遠(yuǎn)程對(duì)象或過程的訪問機(jī)制使用,也可以只是一個(gè)簡單的消息傳遞機(jī)制。除了 SOAP 以外, W3C 創(chuàng)建的 XMLP 工作組還建立了 XML 協(xié)議( Extensible Markup Language Protocol , XMLP )。 XMLP 是類似于 SOAP 的 XML 消息協(xié)議,包括封皮、對(duì)象 串行化方式、 HTTP 傳輸綁定以及進(jìn)行遠(yuǎn)程過程調(diào)用的方式幾個(gè)部分。甚至有人認(rèn)為XMLP將逐步取代 SOAP 。5WSDL ( Web Services Description Lan
19、guage,Web 服務(wù)描述語言)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)用訪問指定的 Web 服務(wù)所 必需的全部信息,描述服務(wù)提供了什么功能、服務(wù)位于何處以及服務(wù)如何調(diào)用。WSDL 以 XML 格式描述網(wǎng)絡(luò)服務(wù), 將服務(wù)描述為在包含面向過程或面向文檔信息的消 息上進(jìn)行操作的
20、一組端點(diǎn)。 操作和消息是抽象描述的, 然后綁定到具體的網(wǎng)絡(luò)協(xié)議和消息格 式以定義一個(gè)端點(diǎn)。相關(guān)的具體端點(diǎn)被組合成為抽象端點(diǎn)(服務(wù))。 WSDL 是可擴(kuò)展的, 允許描述任何端點(diǎn)和消息,而不考慮通信使用的消息格式或網(wǎng)絡(luò)協(xié)議。WSDL 使用下面的元素定義網(wǎng)絡(luò)服務(wù):類型(Types),使用某種類型系統(tǒng)的數(shù)據(jù)類型定義的容器。WSDL并沒有引入新的類型定義語言,而將 XSD 作為自己的標(biāo)準(zhǔn)類型系統(tǒng),并允許通過可擴(kuò)展性使用其它的類型 定義語言。消息(Message),對(duì)要傳送的數(shù)據(jù)的一個(gè)抽象定義。操作( Operation ) ,對(duì)服務(wù)支持的動(dòng)作的抽象描述。端口類型( Port Type) ,一個(gè)或多個(gè)端點(diǎn)
21、支持的操作的一個(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ī)范的一組 抽象操作和消息定義。 操作和消息的抽象是為了使它們可以復(fù)用和綁定到不同的協(xié)議和數(shù)據(jù) 格式,如 SOAP、 HTTP GET/POST 或 MIME 。在 WSDL 中,端點(diǎn)和消息的抽象定義是和它們的具體網(wǎng)絡(luò)配置和數(shù)據(jù)格式綁定相分離 的;另外, WSDL 定義了一個(gè)公共的綁定機(jī)制,用于將特定的協(xié)議
22、或數(shù)據(jù)格式或結(jié)構(gòu)連接 到抽象的消息、操作或端點(diǎn),這些都允許對(duì)抽象定義的復(fù)用。WSDL 目前已經(jīng)被廣泛支持,但還不是 W3C 推薦的標(biāo)準(zhǔn)語言。6UDDI ( Universal Description , Discovery ,and Integration ,統(tǒng)一描述、 發(fā)現(xiàn)和集成)面對(duì)極度豐富的服務(wù),最常出現(xiàn)的問題是 “在哪里以及如何找到需要的信息?”。 統(tǒng)一 UDDI 規(guī)范在底層協(xié)議的基礎(chǔ)上又定義了一層,在這一層,不同的企業(yè)能夠以相同的方式描 述自己提供的服務(wù)和查詢對(duì)方提供的服務(wù)。UDDI是一套基于 Web的、分布式的、為 Web服務(wù)提供的信息注冊(cè)中心的實(shí)現(xiàn)標(biāo)準(zhǔn)規(guī) 范,同時(shí)也包含一組使企業(yè)
23、能將自身提供的 Web 服務(wù)注冊(cè)以使別的企業(yè)能夠發(fā)現(xiàn)的訪問協(xié) 議的實(shí)現(xiàn)標(biāo)準(zhǔn)。信息結(jié)構(gòu)UDDI 為表示 XML 中商業(yè)服務(wù)描述定義了一個(gè)數(shù)據(jù)結(jié)構(gòu)標(biāo)準(zhǔn),提供了更高層次的商業(yè) 信息以補(bǔ)充 WSDL 中的說明。 UDDI 定義了四種基本的結(jié)構(gòu):商業(yè)實(shí)體(Business entity),描述商業(yè)信息,如名稱、類型等。商業(yè)服務(wù)(Business service),已發(fā)布的 Web服務(wù)的集合。綁定模板( Binding template ),訪問信息,如 URL 。技術(shù)規(guī)范(tModel),對(duì)服務(wù)類型的技術(shù)規(guī)格說明,如接口定義、消息格式、消息協(xié) 議、安全協(xié)議等。服務(wù)發(fā)布和發(fā)現(xiàn)在進(jìn)行一個(gè) Web 服務(wù)調(diào)用之
24、前,必須先找到具有所需服務(wù)的企業(yè),發(fā)現(xiàn)調(diào)用接口和語 義,然后編寫或配置自己的軟件以便與服務(wù)合作。 UDDI 的核心部件是 UDDI 商業(yè)注冊(cè),它 用一個(gè) XML 文檔來描述企業(yè)及其提供的 Web 服務(wù)。 UDDI 商業(yè)注冊(cè)是一個(gè)基于 SOAP 的 Web 服務(wù),提供企業(yè)用于將它們的服務(wù)發(fā)布到注冊(cè)中心的接口。注冊(cè)中心是分布式的,彼 此之間不斷進(jìn)行復(fù)制操作。Web 服務(wù)基本上是機(jī)器到機(jī)器的通信,為了有效工作,這種體系結(jié)構(gòu)必須具有進(jìn)行基 于 Web 的應(yīng)用和業(yè)務(wù)過程集成的有效工具。 UDDI 商業(yè)注冊(cè)中心包含三類信息,企業(yè)可以 通過這些信息發(fā)現(xiàn)一個(gè) Web 服務(wù)。白頁,包括企業(yè)的名稱、地址、聯(lián)系方式
25、和企業(yè)標(biāo)識(shí),并允許其它公司按照名稱查 找目錄。黃頁,包括基于標(biāo)準(zhǔn)分類法的行業(yè)類別。 綠頁,包括了關(guān)于該企業(yè)所提供的 Web 服務(wù)的技術(shù)信息,其形式可能是一些指向文 件或 URL 的指針, 而這些文件或 URL 是為服務(wù)發(fā)現(xiàn)機(jī)制服務(wù)的。 綠頁還允許注冊(cè)的公司之 間使用 XML 進(jìn)行連接,提供了業(yè)務(wù)過程自動(dòng)化的關(guān)鍵機(jī)制。編程接口UDDI 規(guī)范提供了編程接口,允許商業(yè)注冊(cè)一個(gè) Web 服務(wù),以及查找指定 Web 服務(wù)的 注冊(cè)。一旦想要的 Web 服務(wù)被確定,將提供一個(gè)指向 WSDL 文檔所在位置的指針。編程接 口分為查詢 API 和發(fā)布 API 兩個(gè)邏輯部分。查詢 API 又分為兩個(gè)部分:一部分用來
26、構(gòu)造搜 索和瀏覽 UDDI 注冊(cè)信息的程序,另一部分在 Web 服務(wù)出現(xiàn)錯(cuò)誤時(shí)使用。發(fā)布 API 可以用 來創(chuàng)建各種類型的工具, 以直接與 UDDI 注冊(cè)中心進(jìn)行交互, 便于企業(yè)技術(shù)人員管理發(fā)布信 息。使用 UDDIUDDI 規(guī)范包含了對(duì)基于 Web 的 UDDI 商業(yè)注冊(cè)中心可以實(shí)施的整套共享操作。一般 來說,程序或程序員通過 UDDI 商業(yè)注冊(cè)中心來獲得 Web 服務(wù)的位置及其技術(shù)信息。其中 對(duì)于程序員來說,是對(duì)自己的系統(tǒng)實(shí)現(xiàn)準(zhǔn)備,以使自己的系統(tǒng)能和那些 Web 服務(wù)實(shí)現(xiàn)訪問 兼容,或是描述自己的 Web 服務(wù)從而能讓別人使用。從商業(yè)層次上來說, UDDI 商業(yè)注冊(cè) 中心可以被用于核查某個(gè)
27、合作伙伴是否擁有特定的 Web 服務(wù)的調(diào)用接口,或是找出在某行 業(yè)中能提供某種類型服務(wù)的公司,并確定某合作伙伴的 Web 服務(wù)的技術(shù)描述及交互時(shí)所需 的技術(shù)細(xì)節(jié)。UDDI 是完全可選的,也就是說,具有 Web 服務(wù)的公司,如果只是想對(duì)有限的人員或 設(shè)備提供特定功能,它們不需要對(duì)外發(fā)布它們的服務(wù)。其它標(biāo)準(zhǔn)除了 UDDI 以外,服務(wù)發(fā)現(xiàn)層還有其它一些標(biāo)準(zhǔn)。如由 Microsoft 開發(fā)的 DISCO (Discovery of Web Services )規(guī)范。 DISCO 定義了一個(gè)基于 XML 的發(fā)現(xiàn)文檔格式和一個(gè)檢 索該發(fā)現(xiàn)文檔的協(xié)議。 DISCO 允許開發(fā)人員通過一個(gè) HTTP GET 操
28、作發(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è)需要集成來自多方的 Web 服務(wù)并為終端用戶組織這些服務(wù)時(shí), 必須掌握其系統(tǒng)的過程和順序。 對(duì)于這些具有異步特征 的應(yīng)用, 適合使用工作流引擎。 要使 Web 服務(wù)的實(shí)現(xiàn)不僅僅停留在簡單的請(qǐng)求 /響應(yīng)模式上,商業(yè)過程協(xié)作和工作流是必不可少的,其中包括跨企業(yè)邊界的 Web 服務(wù)的合成與自動(dòng)化。 要成功進(jìn)行企業(yè)間的自動(dòng)化和協(xié)作的必需條件是要有一個(gè)標(biāo)準(zhǔn)化的商業(yè)協(xié)議來描述這些
29、商 業(yè)過程。服務(wù)工作流領(lǐng)域目前尚未形成固定的標(biāo)準(zhǔn),有一定影響的是WSFL 、Xlang 以及BPMI 。WSFLWeb 服務(wù)流程語言( Web Services Flow Language , WSFL )是一個(gè)描述商業(yè)過程的規(guī) 范。 WSFL 提出了兩種 Web 服務(wù)組合的類型:一是商業(yè)過程,一是合作伙伴交互。商業(yè)過 程作為一組為達(dá)到一個(gè)特定的商業(yè)目標(biāo)而順序執(zhí)行的 Web 服務(wù)建模。合作伙伴交互描述 Web 服務(wù)之間如何彼此交互。 Web 服務(wù)被連接在一起以表明一個(gè) Web 服務(wù)與另一個(gè) Web 服務(wù)接口的操作交互作用。XLangXlang 是 Microsoft 的 BizTalk 服務(wù)器
30、使用的 XML 商業(yè)過程語言。 Xlang 用于描述商業(yè) 過程,這些過程在運(yùn)行時(shí)由 BizTalk 控制引擎 ( Orchestration engine )執(zhí)行。 Xlang 還允許將 Web 服務(wù)結(jié)合到商業(yè)過程中以及 Web 服務(wù)的組合。 另外, Xlang 支持補(bǔ)償過程。 Xlang 不支 持代價(jià)較高的兩階段提交協(xié)議, 而是提供了一個(gè)可供選擇的開放式模型的表示方法, 其中可 以為活動(dòng)明確指定抵消該活動(dòng)影響的補(bǔ)償活動(dòng)。由于 Microsoft 先前與 IBM 在 WSDL 和 UDDI 上的合作,有人認(rèn)為將來二者可能會(huì)向 W3C 提出將 Xlang 和 WSFL 結(jié)合起來的提議。BPMIB
31、PMI ( Business Process Management Initiative )推進(jìn)公共商業(yè)過程的標(biāo)準(zhǔn)化。這些過程 可能跨多個(gè)應(yīng)用、部門或商業(yè)合作伙伴,可能在防火墻之后或者可以通過 Internet 訪問。 BPMI.org 制定了一些開放規(guī)范,如 BPML 和 BPQL ,這使得可以對(duì)電子商務(wù)過程用即將出 現(xiàn)的 BPMS ( Bus in ess Process Man ageme nt System)進(jìn)行基于標(biāo)準(zhǔn)的管理。BPML ( Business Process Modeling Language),是商業(yè)過程建模的元語言。BPML 將商業(yè)過程定義為為了達(dá)到一個(gè)共同目標(biāo)在參
32、與者和根據(jù)定義的規(guī)則集合執(zhí)行的活動(dòng)之間的 交互作用。BPQL ( Bus in ess Process Query Lan guage)是到一個(gè)過程服務(wù)器的管理接口,允許商 業(yè)分析員查詢由過程服務(wù)器管理的過程實(shí)例的狀態(tài), 并控制過程實(shí)例的執(zhí)行。 該接口是基于 SOAP 的。為了過程的注冊(cè)、廣告和發(fā)現(xiàn),由過程庫管理的過程模型通過BPQL 接口可以作為 UDDI 服務(wù)對(duì)外提供。BPML 和 BPQL 都是開放規(guī)范。8其它相關(guān)標(biāo)準(zhǔn)和領(lǐng)域其它許多組織在 Web 服務(wù)規(guī)范的制定方面也做了大量的工作。這里只簡單介紹幾種比 較知名的規(guī)范。ebXMLEbXML的結(jié)構(gòu)類似 Web服務(wù)棧,是在In ternet上
33、用標(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)的需求的方面。JAX PackJAX Pack是Sun封裝了 Java領(lǐng)域的各種標(biāo)準(zhǔn)的結(jié)果。JAX是一組XML的Java
34、 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 Messaging ),一個(gè)發(fā)送
35、消息的基于 SOAP 的協(xié)議。JAXR (Java API for XML Registries ),一個(gè)包羅眾多的規(guī)范, 其中為 UDDI 和 ebXML 注冊(cè)及其它可能的注冊(cè)提供了統(tǒng)一接口。JAX-RPC (Java API for XML-based Remote Process Communication ),一個(gè)請(qǐng)求遠(yuǎn) 程服務(wù)器上操作的基于 SOAP 的協(xié)議。除了上面描述的各種規(guī)范以外,還需要提及一些其它的重要領(lǐng)域,這些領(lǐng)域涉及Web服務(wù)棧的所有層,其中包括安全性、管理、服務(wù)質(zhì)量和事務(wù)等。在Web 服務(wù)具有轉(zhuǎn)換企業(yè)商業(yè)關(guān)系的能力之前, 企業(yè)需要這些額外的特性以及隨之而來的附加機(jī)制、
36、安全、身份確認(rèn)、 合同管理、質(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ù)委員會(huì)支持其統(tǒng)一標(biāo)準(zhǔn)化。BTP事務(wù)在 Web 服務(wù)中有獨(dú)特的需求。在保證相關(guān)聯(lián)的工作流可靠協(xié)調(diào)的同時(shí),事務(wù)協(xié)議 必須能夠處理長時(shí)間運(yùn)行的企業(yè)之間的商業(yè)事務(wù)。商務(wù)事務(wù)協(xié)議(Business TransactionProtocol, BTP)是一個(gè)基于 XML的規(guī)范,用于描述和管理這些In
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版?zhèn)€體廂貨車出租及車輛監(jiān)控系統(tǒng)合同3篇
- 2025版土地居間業(yè)務(wù)規(guī)范化合同書(2025版)6篇
- 2025版建筑塑料材料買賣合同范本解讀3篇
- 《手機(jī)送分析》課件
- 【中學(xué)課件】香港和澳門
- 二零二五版汽車銷售退換貨處理合同模板2篇
- 二零二五版智慧城市建設(shè)項(xiàng)目工程勘察設(shè)計(jì)勞務(wù)分包合同3篇
- 家用紡織品的消費(fèi)趨勢與市場需求預(yù)測考核試卷
- 《波爾多液配制》課件
- 2025版事業(yè)單位聘用合同起草與審查要點(diǎn)3篇
- 2024-2025學(xué)年山東省濰坊市高一上冊(cè)1月期末考試數(shù)學(xué)檢測試題(附解析)
- 數(shù)學(xué)-湖南省新高考教學(xué)教研聯(lián)盟(長郡二十校聯(lián)盟)2024-2025學(xué)年2025屆高三上學(xué)期第一次預(yù)熱演練試題和答案
- 決勝中層:中層管理者的九項(xiàng)修煉-記錄
- 幼兒園人民幣啟蒙教育方案
- 高考介詞練習(xí)(附答案)
- 單位就業(yè)人員登記表
- 衛(wèi)生監(jiān)督協(xié)管-醫(yī)療機(jī)構(gòu)監(jiān)督
- 記錄片21世紀(jì)禁愛指南
- 腰椎間盤的診斷證明書
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(吳洪貴)任務(wù)七 裂變傳播
- 單級(jí)倒立擺系統(tǒng)建模與控制器設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論