當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 泛普各地 > 河北O(jiān)A系統(tǒng) > 石家莊OA系統(tǒng) > 石家莊OA信息化
XML Web Service 基礎(chǔ)
申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114
AMTeam.orgXML Web Service 基礎(chǔ)
摘要:本文概述了 XML Web Service 對(duì)于開發(fā)人員的價(jià)值,同時(shí)還介紹了 SOAP、WSDL 和 UDDI。
什么是 XML Web Service?
XML Web Service 是在 Internet 上進(jìn)行分布式計(jì)算的基本構(gòu)造塊。開放的標(biāo)準(zhǔn)以及對(duì)用戶和應(yīng)用程序之間的通信和協(xié)作的關(guān)注產(chǎn)生了這樣一種環(huán)境,在這種環(huán)境下,XML Web Service 成為應(yīng)用程序集成的平臺(tái)。應(yīng)用程序是通過使用多個(gè)不同來源的 XML Web Service 構(gòu)造而成的,這些服務(wù)相互協(xié)同工作,而不管它們位于何處或者如何實(shí)現(xiàn)。
有多少個(gè)構(gòu)建 XML Web Service 的公司,就可能有多少種 XML Web Service 定義。不過幾乎所有定義都具有以下共同點(diǎn):
XML Web Service 通過標(biāo)準(zhǔn)的 Web 協(xié)議向 Web 用戶提供有用的功能。多數(shù)情況下使用 SOAP 協(xié)議。
XML Web Service 可以非常詳細(xì)地說明其接口,這使用戶能夠創(chuàng)建客戶端應(yīng)用程序與它們進(jìn)行通信。這種說明通常包含在稱為 Web 服務(wù)說明語言 (WSDL) 文檔的 XML 文檔中。
XML Web Service 已經(jīng)過注冊(cè),以便潛在用戶能夠輕易地找到這些服務(wù),這是通過通用發(fā)現(xiàn)、說明和集成 (UDDI) 來完成的。
本文將介紹這三種技術(shù),但首先需要解釋一下為什么要關(guān)注 XML Web Service。
XML Web Service 體系結(jié)構(gòu)的主要優(yōu)點(diǎn)之一是:允許在不同平臺(tái)上、以不同語言編寫的各種程序以基于標(biāo)準(zhǔn)的方式相互通信。對(duì)這一行業(yè)有所了解的用戶可能馬上會(huì)說:“等一等,CORBA 和之前的 DCE 不是都做過相同的承諾嗎?這和它們有什么區(qū)別?”最重要的區(qū)別在于:SOAP 比以前的方法要簡(jiǎn)單得多,因此要實(shí)現(xiàn)與標(biāo)準(zhǔn)兼容的 SOAP,障礙也要少得多。Paul Kulchenko 在 http://www.soapware.org/directory/4/implementations(英文)上提供了一個(gè) SOAP 實(shí)現(xiàn)方案的列表。上次統(tǒng)計(jì)時(shí),該列表已經(jīng)包含了 79 項(xiàng)。正如您所預(yù)料,多數(shù)大的軟件公司都提供 SOAP 實(shí)現(xiàn)方案,但也有許多實(shí)現(xiàn)方案是由個(gè)別開發(fā)人員創(chuàng)建和維護(hù)的。相對(duì)以前的方案而言,XML Web Service 的另一大優(yōu)點(diǎn)是使用標(biāo)準(zhǔn)的 Web 協(xié)議 - XML、HTTP 和 TCP/IP。許多公司都已經(jīng)建立了 Web 基礎(chǔ)結(jié)構(gòu),同時(shí)它們的員工在維護(hù)方面也都具備相應(yīng)的知識(shí)和經(jīng)驗(yàn)。因此,引入 XML Web Service 與引入以前的技術(shù)相比,其成本要低得多。
我們將 XML Web Service 定義為:通過 SOAP 在 Web 上提供的軟件服務(wù),使用 WSDL 文件進(jìn)行說明,并通過 UDDI 進(jìn)行注冊(cè)。那么,您也許要問:“使用 XML Web Service 能夠做什么?”最初的 XML Web Service 通常是可以方便地并入應(yīng)用程序的信息來源,如股票價(jià)格、天氣預(yù)報(bào)、體育成績(jī)等等。我們很容易想到,可以構(gòu)建一整類應(yīng)用程序以分析和匯總所關(guān)心的信息,并以各種方式提供這些信息;例如,您可以使用 Microsoft? Excel 電子表格來匯總所有的財(cái)務(wù)信息 - 股票、401K、銀行存款、貸款等等。如果能夠通過 XML Web Service 獲得這些信息,Excel 就可以不斷對(duì)其進(jìn)行更新。這些信息中有些是免費(fèi)的,有些則可能需要訂閱才能獲得相應(yīng)服務(wù)。大部分這種信息現(xiàn)在已經(jīng)可以在 Web 上找到了,但是 XML Web Service 可以使編程訪問更簡(jiǎn)單,也更可靠。
以 XML Web Service 方式提供現(xiàn)有應(yīng)用程序,可以構(gòu)建新的、更強(qiáng)大的應(yīng)用程序,并利用 XML Web Service 作為構(gòu)造塊。例如,用戶可以開發(fā)一個(gè)采購(gòu)應(yīng)用程序,以自動(dòng)獲取來自不同供應(yīng)商的價(jià)格信息,從而使用戶可以選擇供應(yīng)商,提交訂單,然后跟蹤貨物的運(yùn)輸,直至收到貨物。而供應(yīng)商的應(yīng)用程序除了在 Web 上提供服務(wù)外,還可以使用 XML Web Service 檢查客戶的信用、收取貨款,并與貨運(yùn)公司辦理貨運(yùn)手續(xù)。
將來,某些最有趣的 XML Web Service 所支持的應(yīng)用程序還可以利用 Web 完成目前無法完成的任務(wù)。例如,日歷服務(wù)就是 Microsoft .NET My Services(英文)項(xiàng)目即將支持的服務(wù)之一。如果您的牙醫(yī)和機(jī)械師通過這一 XML Web Service 提供其日程安排,您就可以通過網(wǎng)絡(luò)與他們安排約會(huì);如果您愿意,他們也可以直接在您的日歷上約定清潔和日常保養(yǎng)的日期。不難想象,只要能夠?qū)?Web 進(jìn)行編程,您就可以創(chuàng)建數(shù)以百計(jì)的應(yīng)用程序。
有關(guān) XML Web Service 及其可以構(gòu)建的應(yīng)用程序的詳細(xì)信息,請(qǐng)參閱 MSDN Web 服務(wù)(英文)主頁(yè)。
SOAP
Soap 是 XML Web Service 的通信協(xié)議。當(dāng)把 SOAP 描述為一種通信協(xié)議時(shí),多數(shù)人都會(huì)想到 DCOM 或 CORBA,并且會(huì)問“SOAP 如何激活對(duì)象?”或“SOAP 使用什么樣的命名服務(wù)?”等問題。雖然 SOAP 實(shí)現(xiàn)方案可能會(huì)包含上述內(nèi)容,但 SOAP 標(biāo)準(zhǔn)并未對(duì)其進(jìn)行規(guī)定。SOAP 一種規(guī)范,用來定義消息的 XML 格式 - 這是規(guī)范中所必需的部分。包含在一對(duì) SOAP 元素中的、結(jié)構(gòu)正確的 XML 段就是 SOAP 消息。這是不是很簡(jiǎn)單?
SOAP 規(guī)范的其他部分介紹如何將程序數(shù)據(jù)表示為 XML,以及如何使用 SOAP 進(jìn)行遠(yuǎn)程過程調(diào)用 (RPC)。這些可選的規(guī)范部分用于實(shí)現(xiàn) RPC 形式的應(yīng)用程序,其中客戶端將發(fā)出一條 SOAP 消息(包含可調(diào)用函數(shù),以及要傳送到該函數(shù)的參數(shù)),然后服務(wù)器將返回包含函數(shù)執(zhí)行結(jié)果的消息。目前,多數(shù) SOAP 實(shí)現(xiàn)方案都支持 RPC 應(yīng)用程序,這是因?yàn)榱?xí)慣于開發(fā) COM 或 CORBA 應(yīng)用程序的編程人員熟悉 RPC 形式。SOAP 還支持文檔形式的應(yīng)用程序,在這類應(yīng)用程序中,SOAP 消息只是 XML 文檔的一個(gè)包裝。文檔形式的 SOAP 應(yīng)用程序非常靈活,許多新的 XML Web Service 都利用這一特點(diǎn)來構(gòu)建使用 RPC 難以實(shí)現(xiàn)的服務(wù)。
SOAP 規(guī)范的最后一個(gè)可選部分定義了包含 SOAP 消息的 HTTP 消息的樣式。此 HTTP 綁定非常重要,因?yàn)閹缀跛挟?dāng)前的 OS(以及許多以前的 OS)都支持 HTTP。HTTP 綁定雖然是可選的,但幾乎所有 SOAP 實(shí)現(xiàn)方案都支持 HTTP 綁定,因?yàn)樗?SOAP 的唯一標(biāo)準(zhǔn)協(xié)議。由于這一原因,人們通常誤認(rèn)為 SOAP 必須使用 HTTP。其實(shí),有些實(shí)現(xiàn)方案也支持 MSMQ、MQ 系列、SMTP 或 TCP/IP 傳輸,但由于 HTTP 非常普遍,幾乎所有當(dāng)前的 XML Web Service 都使用它。由于 HTTP 是 Web 的核心協(xié)議,因此大多數(shù)組織的網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)都支持 HTTP,并且員工已經(jīng)了解了如何對(duì)其進(jìn)行管理。如今,已經(jīng)建立了用于 HTTP 的安全保護(hù)、監(jiān)視和負(fù)載平衡的基礎(chǔ)結(jié)構(gòu)。
開始使用 SOAP 時(shí),最容易混淆的是 SOAP 規(guī)范及其許多實(shí)現(xiàn)方案之間的差異。多數(shù)使用 SOAP 的用戶并不直接編寫 SOAP 消息,而是使用 SOAP 工具包來創(chuàng)建和分析 SOAP 消息。這些工具包通常將函數(shù)調(diào)用從某種語言轉(zhuǎn)換為 SOAP 消息。例如,Microsoft SOAP Toolkit 2.0 將 COM 函數(shù)調(diào)用轉(zhuǎn)換為 SOAP,而 Apache Toolkit 將 JAVA 函數(shù)調(diào)用轉(zhuǎn)換為 SOAP。函數(shù)調(diào)用的類型和支持的參數(shù)的數(shù)據(jù)類型隨每個(gè) SOAP 實(shí)現(xiàn)方案的不同而不同,因此適用于一個(gè)工具包的函數(shù)可能并不適用于另一個(gè)工具包。這并不是 SOAP 的限制,而是所使用的特定實(shí)現(xiàn)方案的限制。
到目前為止,SOAP 最引人注目的特征是它可以在許多不同的軟件和硬件平臺(tái)上實(shí)現(xiàn)。這意味著 SOAP 可用于鏈接企業(yè)內(nèi)部和外部的不同系統(tǒng)。過去曾試過多種方法以提出一個(gè)可用于系統(tǒng)集成的通用通信協(xié)議,但它們都沒有象 SOAP 一樣獲得廣泛的認(rèn)可。為什么呢?因?yàn)榕c許多早期的協(xié)議相比,SOAP 更小巧,而且更易于實(shí)現(xiàn)。例如,DCE 和 CORBA 的實(shí)現(xiàn)需要數(shù)年時(shí)間,所以只發(fā)布了很少幾個(gè)實(shí)現(xiàn)方案。而 SOAP 可以利用現(xiàn)有的 XML 分析器和 HTTP 庫(kù)完成大部分艱苦的工作,因此 SOAP 實(shí)現(xiàn)方案在數(shù)月內(nèi)便可完成。這就是為什么現(xiàn)在已經(jīng)有 70 多個(gè) SOAP 實(shí)現(xiàn)方案的原因。當(dāng)然,SOAP 并不具備 DCE 或 CORBA 的全部功能,雖然功能減少了,但由于其復(fù)雜程度大大降低了,因此 SOAP 更易于應(yīng)用。
HTTP 的普及和 SOAP 的簡(jiǎn)單性使您幾乎可以從任何環(huán)境調(diào)用它們,因此成為 XML Web Service 的理想基礎(chǔ)。有關(guān) SOAP 的詳細(xì)信息,請(qǐng)參閱 MSDN SOAP(英文)主頁(yè)。
安全性如何?
通常,剛接觸 SOAP 的用戶提出的第一個(gè)問題就是 SOAP 如何解決安全性問題。在其早期開發(fā)階段,SOAP 被看作是基于 HTTP 的協(xié)議,所以認(rèn)為 HTTP 的安全性對(duì)于 SOAP 已經(jīng)足夠了。畢竟目前有數(shù)以千計(jì)的 Web 應(yīng)用程序都在使用 HTTP 安全性,所以這對(duì)于 SOAP 確實(shí)已經(jīng)足夠。因此,當(dāng)前的 SOAP 標(biāo)準(zhǔn)假定安全性屬于傳輸問題,而并不作為安全性問題處理。
當(dāng) SOAP 擴(kuò)展至更為通用的協(xié)議,并運(yùn)行于眾多傳輸之上時(shí),安全性問題就變得突出了。例如,HTTP 提供若干種方法對(duì)進(jìn)行 SOAP 調(diào)用的用戶進(jìn)行身份驗(yàn)證,但是當(dāng)消息從 HTTP 路由到 SMTP 傳輸時(shí),怎樣傳播該身份標(biāo)識(shí)呢?SOAP 是作為構(gòu)造塊協(xié)議進(jìn)行設(shè)計(jì)的,所以幸運(yùn)的是,已經(jīng)有了相應(yīng)的規(guī)范以基于 SOAP 為 Web 服務(wù)提供額外的安全保護(hù)功能。WS-Security 規(guī)范(英文)定義了一套完整的加密系統(tǒng),而 WS-License 規(guī)范(英文)定義了相應(yīng)的技術(shù),以保證調(diào)用者的身份標(biāo)識(shí),并確保只有授權(quán)用戶才可以使用 Web 服務(wù)。
WSDL
WSDL (Web Services Description Language) 表示 Web 服務(wù)說明語言。在本文中,我們可以認(rèn)為 WSDL 文件是一個(gè) XML 文檔,用于說明一組 SOAP 消息以及如何交換這些消息。換句話說,WSDL 對(duì)于 SOAP 的作用就象 IDL 對(duì)于 CORBA 或 COM 的作用。由于 WSDL 是 XML 文檔,因此很容易進(jìn)行閱讀和編輯;但大多數(shù)情況下,它由軟件生成和使用。
要查看 WSDL 的值,可以假設(shè)您要調(diào)用由您的一位業(yè)務(wù)伙伴提供的 SOAP 方法。您可以要求對(duì)方提供一些 SOAP 消息示例,然后編寫您的應(yīng)用程序以生成并使用與示例類似的消息,但這樣很容易出錯(cuò)。例如,您可能看到一個(gè) 2837 的客戶 ID,并假設(shè)它為整數(shù),而實(shí)際上它是一個(gè)字符串。WSDL 通過明確的表示法指定請(qǐng)求消息必須包含的內(nèi)容以及響應(yīng)消息的樣式。
WSDL 文件用于說明消息格式的表示法以 XML 架構(gòu)標(biāo)準(zhǔn)為基礎(chǔ),這意味著它與編程語言無關(guān),而且以標(biāo)準(zhǔn)為基礎(chǔ),因此適用于說明可從不同平臺(tái)、以不同編程語言訪問的 XML Web Service 接口。除說明消息內(nèi)容外,WSDL 還定義了服務(wù)的位置,以及使用什么通信協(xié)議與服務(wù)進(jìn)行通信。也就是說,WSDL 文件定義了編寫使用 XML Web Service 的程序所需的全部?jī)?nèi)容。有幾種工具可以讀取 WSDL 文件,并生成與 XML Web Service 通信所需的代碼。其中一些最強(qiáng)大的工具可在 Microsoft Visual Studio? .NET 中找到。
當(dāng)前,許多 SOAP 工具包都包括從現(xiàn)有程序接口生成 WSDL 文件的工具,但卻幾乎沒有直接用于編寫 WSDL 的工具,而且 WSDL 的工具支持也很不完整。但不久就會(huì)出現(xiàn)編寫 WSDL 文件的工具,接著還會(huì)有生成代理和存根的工具(與 COM IDL 工具很相似),這些工具將成為多數(shù) SOAP 實(shí)現(xiàn)方案的一部分。到那時(shí),WSDL 將成為創(chuàng)建 XML Web Service 的 SOAP 接口的首選方法。
這里有一個(gè)非常好的 WSDL 說明(英文),您還可以在 http://www.w3.org/TR/wsdl(英文)找到 WSDL 規(guī)范。
UDDI
通用發(fā)現(xiàn)、說明和集成 (UDDI) 是 Web 服務(wù)的黃頁(yè)。與傳統(tǒng)黃頁(yè)一樣,您可以搜索提供所需服務(wù)的公司,閱讀以了解所提供的服務(wù),然后與某人聯(lián)系以獲得更多信息。當(dāng)然,您也可以提供 Web 服務(wù)而不在 UDDI 中注冊(cè),就象在地下室開展業(yè)務(wù),依靠的是口頭吆喝;但是如果您希望拓展市場(chǎng),則需要 UDDI 以便能被客戶發(fā)現(xiàn)。
UDDI 目錄條目是介紹所提供的業(yè)務(wù)和服務(wù)的 XML 文件。UDDI 目錄條目包括三個(gè)部分?!鞍醉?yè)”介紹提供服務(wù)的公司:名稱、地址、聯(lián)系方式等等;“黃頁(yè)”包括基于標(biāo)準(zhǔn)分類法(例如 North American Industry Classification System 和 Standard Industrial Classification)的行業(yè)類別;“綠頁(yè)”詳細(xì)介紹了訪問服務(wù)的接口,以便用戶能夠編寫應(yīng)用程序以使用 Web 服務(wù)。服務(wù)的定義是通過一個(gè)稱為類型模型(或 tModel)的 UDDI 文檔來完成的。多數(shù)情況下,tModel 包含一個(gè) WSDL 文件,用于說明訪問 XML Web Service 的 SOAP 接口,但是 tModel 非常靈活,可以說明幾乎所有類型的服務(wù)。
UDDI 目錄還包含若干種方法,可用于搜索構(gòu)建您的應(yīng)用程序所需的服務(wù)。例如,您可以搜索特定地理位置的服務(wù)提供商或者搜索特定的業(yè)務(wù)類型。之后,UDDI 目錄將提供信息、聯(lián)系方式、鏈接和技術(shù)數(shù)據(jù),以便您確定能滿足需要的服務(wù)。
UDDI 允許您查找提供所需的 Web 服務(wù)的公司。如果您已經(jīng)知道要與誰進(jìn)行業(yè)務(wù)合作,但尚不了解它還能提供哪些服務(wù),這時(shí)該如何處理呢?WS-Inspection 規(guī)范(英文)允許您瀏覽特定服務(wù)器上提供的 XML Web Service 的集合,從中查找所需的服務(wù)。
其他內(nèi)容
到現(xiàn)在為止,我們已經(jīng)討論了如何與 XML Web Service 通信 (SOAP),XML Web Service 是怎樣進(jìn)行說明的 (WSDL),以及如何查找 XML Web Service (UDDI)。這些內(nèi)容構(gòu)成了一套基本規(guī)范,為應(yīng)用程序的集成和聚合提供了基礎(chǔ)。根據(jù)這些基本規(guī)范,公司可以構(gòu)建實(shí)際的解決方案,并從中獲益。
為實(shí)現(xiàn) XML Web Service,我們已經(jīng)做了許多工作,但仍有大量工作需要完成。今天,人們已經(jīng)使用 XML Web Service 取得了成功,但對(duì)于開發(fā)人員來說,仍有許多環(huán)節(jié)需要完善。例如,安全性、運(yùn)營(yíng)管理、事務(wù)處理以及可靠的消息傳遞等。Global XML Web Services Architecture 將通過以下方式幫助 XML Web Service 進(jìn)入下一個(gè)發(fā)展階段:提供一個(gè)一致的通用模型,以模塊化和可擴(kuò)展的方式向 XML Web Service 添加新的高級(jí)功能。
上面提到的安全模塊(WS-Security [英文] 和 WS-License [英文])就是 Global Web Services Architecture 規(guī)范的一部分。運(yùn)營(yíng)管理的需要(例如在多個(gè)服務(wù)器之間路由消息,以及動(dòng)態(tài)配置這些服務(wù)器以便進(jìn)行處理)也是 Global Web Services Architecture 的一部分,它們是通過 WS-Routing 規(guī)范(英文)和 WS-Referral 規(guī)范(英文)來實(shí)現(xiàn)的。隨著 Global Web Services Architecture 的發(fā)展,還將進(jìn)一步介紹滿足上述需要以及其他需要的規(guī)范。
- 1柴油機(jī)故障診斷專家系統(tǒng)知識(shí)庫(kù)設(shè)計(jì)
- 2石家莊OA信息化:挖掘企業(yè)的隱藏資源(姜鐵虎)
- 3泛普軟件如何實(shí)現(xiàn)知識(shí)庫(kù)雙機(jī)熱備
- 4石家莊OA信息化的基本XML和RDF技術(shù)(二):將文件合并到RDF模型和基本的RDF查詢
- 5Providing Content Through Web Services
- 6圖書出版企業(yè)的信息化建設(shè)
- 7亞馬遜學(xué)習(xí)eBay推網(wǎng)絡(luò)服務(wù)計(jì)劃 免費(fèi)為他人推廣
- 8全球性學(xué)習(xí)型組織的十一個(gè)特征
- 9再次跨越障礙--重新審視XML中的語義透明性
- 10Consuming a Web Service from a Win Form Application
- 11Accessing Server Variables From Within Web Services
- 12Licensing
- 13泛普OA個(gè)性化門戶主要提供了基于用戶的門戶個(gè)性化流程
- 14專家稱XML Web服務(wù)時(shí)代正接近尾聲
- 15兩款常用的測(cè)試bug管理與壓力測(cè)試軟件
- 16OA內(nèi)容管理與知識(shí)管理方案介紹
- 17實(shí)用工具:IT員工的培訓(xùn)補(bǔ)償政策示例
- 18將應(yīng)用程序的功能封裝成為Web Services
- 19Web服務(wù)設(shè)計(jì)師,第4部分:基于付費(fèi)Web服務(wù):術(shù)語
- 20OA辦公系統(tǒng)的信息發(fā)布與管理門戶介紹
- 21如何幫助企業(yè)構(gòu)建安全的協(xié)同辦公系統(tǒng)?
- 22WebLogic Workshop給非開發(fā)人員帶來Web服務(wù)
- 23石家莊OA信息化新典范--深入訪談中華汽車石家莊OA信息化推動(dòng)團(tuán)隊(duì)
- 24觀點(diǎn):微軟的下個(gè)效仿對(duì)象是惠普
- 25Web Service初探
- 26微軟、IBM和BEA制定出Web服務(wù)新規(guī)格
- 27Web Service 的異步調(diào)用
- 28一波“三折”:我的OA選型經(jīng)歷(上)
- 29泛普協(xié)同OA辦公軟件的信息資源共享
- 30為企業(yè)開啟Web服務(wù)之門-Sun ONE軟件產(chǎn)品發(fā)布會(huì)在京舉行
成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓
版權(quán)所有:泛普軟件 渝ICP備14008431號(hào)-2 渝公網(wǎng)安備50011202501700號(hào) 咨詢電話:400-8352-114