當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 泛普各地 > 河北O(jiān)A系統(tǒng) > 石家莊OA系統(tǒng) > 石家莊OA信息化
Web服務(wù)設(shè)計(jì)師,第3部分:Web服務(wù)是CORBA的翻版嗎?
申請(qǐng)免費(fèi)試用、咨詢(xún)電話(huà):400-8352-114
AMTeam.org
Web服務(wù)設(shè)計(jì)師,第3部分:Web服務(wù)是CORBA的翻版嗎?
Dan Gisolfi (gisolfi@us.ibm.com)
解決方案設(shè)計(jì)師,IBM jStart
Emerging Technologies
2001 年 7 月
早在 Web 服務(wù)傳播的初期,客戶(hù)們就已經(jīng)開(kāi)始詢(xún)問(wèn)這一技術(shù)與 CORBA 有何區(qū)別。 它是不是分布式計(jì)算的另一種形式?在 Web
服務(wù)設(shè)計(jì)師的這一部分,Dan Gisolfi 簡(jiǎn)要概述了 SOAP、DCOM 和 CORBA 之間的區(qū)別,并為分布式計(jì)算領(lǐng)域內(nèi)的 Web
服務(wù)提出了一個(gè)有價(jià)值的建議。
可通過(guò)點(diǎn)擊文章頂部或者底部的討論,加入這篇文章的討論論壇。
在以前的文章中,我曾論述過(guò)動(dòng)態(tài)電子商務(wù)的構(gòu)想以及能讓我們得以實(shí)現(xiàn)這一構(gòu)想的可用技術(shù),也就是 SOAP、WSDL 和 UDDI。對(duì)于好奇的讀者來(lái)說(shuō),動(dòng)態(tài)電子商務(wù)的整個(gè)課題只是分布式計(jì)算的另一種形式。對(duì)于這一新的分布式計(jì)算模型所作的調(diào)整改進(jìn)是跨平臺(tái)以及跨編程語(yǔ)言的互操作性。自從分布式計(jì)算成為主流概念以來(lái),我們首次擁有了一個(gè)建立在真正支持互操作性的開(kāi)放標(biāo)準(zhǔn)基礎(chǔ)上的解決方案。
在宣傳 Web 服務(wù)的整個(gè)行程中,我所面對(duì)的聽(tīng)眾總會(huì)產(chǎn)生一種善意的疑問(wèn)。拋開(kāi)聽(tīng)眾不談,對(duì)于 Web 服務(wù)的疑問(wèn)通常是通過(guò)以下(及相關(guān)的)問(wèn)題中的某一個(gè)表現(xiàn)出來(lái):
Web 服務(wù)技術(shù)與 CORBA 有何區(qū)別?
為什么 Web 服務(wù)能在 CORBA 失敗的領(lǐng)域獲得成功?
有兩個(gè)原因使得我對(duì)這些問(wèn)題持歡迎態(tài)度。首先,它們反映了人們對(duì)于分布式計(jì)算有一定的熟悉程度,這有助于交流的開(kāi)展。分布式計(jì)算編程模型在 IT
產(chǎn)業(yè)內(nèi)成為主流已經(jīng)有些時(shí)日了。我估計(jì)這一情形至少在近二十年內(nèi)是如此。因此交流能著重于以前解決方案的缺點(diǎn)以及將來(lái)對(duì)于成功的解決方案的要求。
其次,由于我們討論的并非一個(gè)全新的概念,那么人們能否接受 Web 服務(wù)的有關(guān)風(fēng)險(xiǎn)就小了。這也反映了它的開(kāi)放標(biāo)準(zhǔn)基礎(chǔ)以及這些標(biāo)準(zhǔn)在廠商解決方案中的普遍性。低風(fēng)險(xiǎn)還反映了在改進(jìn) Web 服務(wù)互操作性方面所做的實(shí)際努力(這與以前解決方案所作出的關(guān)于廠商互操作性的“圓滑”承諾形成了對(duì)比 — 我在后面還將詳細(xì)講述這一點(diǎn))。
過(guò)去,對(duì)象管理組(Object Management Group,OMG)及其 700 多個(gè)成員公司曾試圖規(guī)定廠商們需如何設(shè)計(jì)對(duì)象請(qǐng)求代理程序(object request brokers,ORB)以實(shí)現(xiàn)互操作性。然而,現(xiàn)實(shí)情況是廠商們?cè)?ORB 的實(shí)現(xiàn)上存在競(jìng)爭(zhēng),因此從商業(yè)的角度來(lái)說(shuō)不存在實(shí)現(xiàn)互操作性的動(dòng)機(jī)。事實(shí)上,真正的 ORB 廠商的商業(yè)目的是能在分布式計(jì)算應(yīng)用程序的兩端同時(shí)出售其解決方案:請(qǐng)求者和 提供者節(jié)點(diǎn)。
SOAP 是一個(gè)出色的分布式計(jì)算解決方案,因?yàn)樗ㄟ^(guò)規(guī)范級(jí)別和實(shí)現(xiàn)級(jí)別上的開(kāi)放標(biāo)準(zhǔn),實(shí)現(xiàn)了互操作性。我跳到后面的內(nèi)容上去了。讓我們回過(guò)頭來(lái)看一下 CORBA 和 DCOM,最后再來(lái)看 SOAP。我將提供一些關(guān)鍵區(qū)別,并舉例說(shuō)明為什么基于 SOAP 技術(shù)的 Web 服務(wù)擁有更好的分布式計(jì)算解決方案。
通信協(xié)議模型的簡(jiǎn)單歷史
分布式應(yīng)用程序需要一個(gè)定義兩個(gè)并發(fā)進(jìn)程間通信機(jī)制的協(xié)議。存在兩種建立這種應(yīng)用程序的通信協(xié)議模型:
消息傳遞/排隊(duì)以及請(qǐng)求/響應(yīng)。消息傳遞和請(qǐng)求/響應(yīng)模型各有所長(zhǎng),可以相互代替執(zhí)行。例如,能用較低級(jí)別的請(qǐng)求/響應(yīng)協(xié)議來(lái)建立消息傳遞系統(tǒng)。Microsoft
分布式計(jì)算環(huán)境(Distributed Computing Environment,DCE)就是這樣的。對(duì)于遠(yuǎn)程過(guò)程調(diào)用(Remote Procedure
Call,RPC)應(yīng)用程序來(lái)說(shuō),同步請(qǐng)求/響應(yīng)的設(shè)計(jì)風(fēng)格通常是自然契合的。
在 20 世紀(jì) 80 年代,通信協(xié)議模型集中在網(wǎng)絡(luò)層上,如最初由 Sun Microsystems 開(kāi)發(fā)的網(wǎng)絡(luò)文件系統(tǒng)(Network File System,NFS)— 大多數(shù)聯(lián)網(wǎng)的 Unix 系統(tǒng)都用它作為分布式文件系統(tǒng) — 以及 Microsoft 的運(yùn)行在 Windows NT 上的 DCE RPC 應(yīng)用程序。到了 90 年代,面向?qū)ο蟮木幊虉F(tuán)體迫切要求一個(gè)能將應(yīng)用程序?qū)ο笈c網(wǎng)絡(luò)協(xié)議鏈接起來(lái)的對(duì)象 RPC(ORPC)協(xié)議。ORPC 和先于它們的 RPC 協(xié)議之間的主要區(qū)別是 ORPC 將通信端點(diǎn)的映射編碼至一個(gè)語(yǔ)言級(jí)別的對(duì)象中(請(qǐng)參閱參考資料中的 A Young Person's Guide to The Simple Object Access Protocol )。
這一映射允許服務(wù)器端的中間件在服務(wù)器進(jìn)程中定位并實(shí)例化一個(gè)目標(biāo)對(duì)象。有一些技術(shù)(如將索引作為散列表鍵映射到一個(gè)數(shù)組或相關(guān)聯(lián)的符號(hào)名稱(chēng)中)被用來(lái)實(shí)現(xiàn)端點(diǎn)到對(duì)象的映射。在 SOAP 和 Web 服務(wù)出現(xiàn)以前,在通用內(nèi)部 ORB 協(xié)議(GIOP)中,Microsoft DCOM 和 CORBA 的因特網(wǎng)內(nèi)部 ORB 協(xié)議(Internt Inter-ORB Protocol,IIOP)風(fēng)格是業(yè)界的主流 ORPC 協(xié)議。
什么是 CORBA?
公共對(duì)象請(qǐng)求代理架構(gòu)(Common Object
Request Broker
Architecture,CORBA)是對(duì)象管理組實(shí)現(xiàn)分布式計(jì)算節(jié)點(diǎn)間的互操作性的規(guī)范。他們的目標(biāo)是定義一個(gè)架構(gòu),該架構(gòu)能允許不同種類(lèi)的環(huán)境進(jìn)行對(duì)象級(jí)通信,而無(wú)需考慮是誰(shuí)設(shè)計(jì)了分布式應(yīng)用程序的兩個(gè)端點(diǎn)。
CORBA 1.1 由對(duì)象管理組(Object Management Group,OMG)于 1991 年提出。它定義了允許客戶(hù)機(jī)/服務(wù)器對(duì)象在對(duì)象請(qǐng)求代理(Object Request Broker,ORB)的特定實(shí)現(xiàn)中相互作用的接口定義語(yǔ)言(Interface Definition Language,IDL)和應(yīng)用程序編程接口(Application Programming Interfaces,API)。ORB 是在分布式對(duì)象間建立請(qǐng)求者-提供者關(guān)系的中間件。
CORBA 2.0 于 1994 年 12 月被采用,它通過(guò)指定來(lái)自不同廠商的 ORB 如何相互操作解決了互操作性問(wèn)題。(請(qǐng)參閱參考資料)。
ORB 將收到一條調(diào)用消息,來(lái)為注冊(cè)的對(duì)象調(diào)用一個(gè)特定的方法。ORB 截獲這條消息,并負(fù)責(zé)搜索一個(gè)能執(zhí)行該請(qǐng)求的對(duì)象,將參數(shù)傳遞給它,調(diào)用它的方法,然后返回結(jié)果。理論上,請(qǐng)求節(jié)點(diǎn)無(wú)需知道對(duì)象的位置、它的編程語(yǔ)言、它的操作系統(tǒng)或不屬于對(duì)象接口的一部分的任何其它系統(tǒng)方面的信息。
接口用一系列方法在外部把 CORBA 對(duì)象表現(xiàn)出來(lái)。一個(gè)對(duì)象引用可以識(shí)別對(duì)象的一個(gè)特殊實(shí)例。CORBA 對(duì)象的一個(gè)客戶(hù)程序獲取了其對(duì)象引用,并將它用作句柄進(jìn)行方法調(diào)用,就好像對(duì)象是位于客戶(hù)程序的地址空間中一樣。ORB 負(fù)責(zé)搜索對(duì)象的實(shí)現(xiàn)所需要的所有機(jī)制,讓它做好接收請(qǐng)求的準(zhǔn)備,隨后將請(qǐng)求傳達(dá)給它,并將回應(yīng)(如果有的話(huà))送回客戶(hù)程序。
什么是 DCOM?
DCOM 是 Microsoft 的
COM(組件對(duì)象模型,Component Object Model)的分布式擴(kuò)展(請(qǐng)參閱參考資料中的 COM95),它在 DCE RPC (請(qǐng)參閱參考資料中的
DCE95)的頂端建立了一個(gè)對(duì)象遠(yuǎn)程過(guò)程調(diào)用(ORPC)的層來(lái)支持遠(yuǎn)程對(duì)象。COM 服務(wù)器能創(chuàng)建多對(duì)象類(lèi)的對(duì)象實(shí)例。一個(gè) COM
對(duì)象可以支持多個(gè)接口,每個(gè)接口代表對(duì)象的一種不同的視圖或行為。一個(gè)接口由一套功能相關(guān)的方法組成。COM
的客戶(hù)程序通過(guò)獲取指向一個(gè)對(duì)象接口的一個(gè)指針,并通過(guò)該指針來(lái)調(diào)用方法以實(shí)現(xiàn)與 COM 對(duì)象之間的互相作用,就好像對(duì)象駐留在客戶(hù)程序的地址空間中一樣。COM
指定任何接口都必須遵循一個(gè)標(biāo)準(zhǔn)的內(nèi)存規(guī)劃,這與 C++ 的虛擬函數(shù)表(請(qǐng)參閱參考資料中的
Rogerson96)相同。由于該規(guī)范是二進(jìn)制級(jí)別的,因此它允許集成可能用不同編程語(yǔ)言如 C++、Java 和 Visual
Basic(請(qǐng)參閱參考資料)等編寫(xiě)的二進(jìn)制組件。
基礎(chǔ) RPC 架構(gòu)
在 DCOM 和 CORBA
中,客戶(hù)進(jìn)程與對(duì)象服務(wù)器之間的互相作用是作為面向?qū)ο蟮?RPC 式通信來(lái)實(shí)現(xiàn)的。圖 1 展示了一個(gè)典型的 RPC
結(jié)構(gòu)。為調(diào)用一個(gè)遠(yuǎn)程函數(shù),客戶(hù)程序要調(diào)用客戶(hù)機(jī)存根。然后存根將調(diào)用參數(shù)打包成一個(gè)請(qǐng)求消息并調(diào)用傳輸協(xié)議將該消息傳送到服務(wù)器。在服務(wù)器端,傳輸協(xié)議將消息傳送給服務(wù)器存根,隨后服務(wù)器存根解包請(qǐng)求消息并調(diào)用對(duì)象中真正的函數(shù)。在
DCOM 中,客戶(hù)機(jī)存根被稱(chēng)為代理(Proxy),而服務(wù)器存根被稱(chēng)為存根(Stub)。相反,CORBA
中的客戶(hù)機(jī)存根稱(chēng)為存根(Stub),而服務(wù)器存根稱(chēng)為框架(Skeleton)。有時(shí), 代理這個(gè)名稱(chēng)還被用來(lái)指 CORBA 中正在運(yùn)行的存根實(shí)例。至于在 SOAP
和 Web 服務(wù)中,我們稱(chēng)客戶(hù)機(jī)存根為服務(wù)代理(Service Proxy),稱(chēng)服務(wù)器存根為服務(wù)實(shí)現(xiàn)模板(Service Implementation
Template)。表 1 說(shuō)明了這些概念的不同名稱(chēng)
表 1:不同 RPC 架構(gòu)中的客戶(hù)機(jī)與服務(wù)器組件
圖 1:基本 RPC 架構(gòu)
細(xì)微的差別影響互操作性
DCOM 和 CORBA IIOP
有許多相似之處。這兩個(gè)協(xié)議都使用端點(diǎn)標(biāo)識(shí)符來(lái)識(shí)別服務(wù)器端中間件中的目標(biāo)對(duì)象,且它們都使用方法標(biāo)識(shí)符來(lái)確定待調(diào)用方法的簽名。
表 2:CORBA 和 DCOM 中實(shí)現(xiàn)屬性名稱(chēng)比較
然而,與這些相似之處同時(shí)存在的還有一些影響互操作性的差別。 如表 2 所示,存在三個(gè)主要的差別:
通信端點(diǎn)的命名:在 ORPC 協(xié)議中,需要 ORPC 端點(diǎn)的一些消息表示法以便通過(guò)網(wǎng)絡(luò)傳達(dá)對(duì)象引用。在 CORBA/IIOP
中,這種表示法被稱(chēng)為可互操作的對(duì)象引用(Interoperable Object Reference,IOR)。IOR 包含可移植格式的尋址信息,任何基于
CORBA 的產(chǎn)品都能把這些信息解析到對(duì)象端點(diǎn)上去。在 DCOM 中,這種表示法被稱(chēng)為
OBJREF,它能將分布式引用計(jì)數(shù)與端點(diǎn)/對(duì)象識(shí)別結(jié)合起來(lái)。遺憾的是,IOR 不能與 OBJREF 相互關(guān)聯(lián),這就導(dǎo)致了 CORBA 和 DCOM
應(yīng)用程序之間的互操作性問(wèn)題。
支持一對(duì)象多接口:在 CORBA 中,接口標(biāo)識(shí)符是固有的,因?yàn)樗恢С忠环N對(duì)象接口。然而 DCOM
能支持一對(duì)象多接口。
有效負(fù)載參數(shù)值的格式:在 DCOM 中,有效負(fù)載是以一種稱(chēng)為網(wǎng)絡(luò)數(shù)據(jù)表示法(Network Data
Representation,DR)的格式編寫(xiě)的。在 IIOP/GIOP 中,有效負(fù)載是用通用數(shù)據(jù)表示法(Common Data
Representation,CDR)編寫(xiě)的。DR 和 CDR
都處理各種平臺(tái)上使用的不同數(shù)據(jù)表示法。需要注意的是,這兩種格式之間存在著一些細(xì)微的差別,使得它們彼此無(wú)法兼容。
為什么 CORBA 和 DCOM 的成功是有限的
盡管 CORBA 和 DCOM
已經(jīng)在各種平臺(tái)上得到了實(shí)現(xiàn),然而實(shí)際情況是建立在這些協(xié)議之上的任何解決方案都依賴(lài)于單一廠商的實(shí)現(xiàn)。因此,如果要開(kāi)發(fā)一個(gè) DCOM
應(yīng)用程序,分布式應(yīng)用程序中所有參與的節(jié)點(diǎn)都必須以 Windows 風(fēng)格運(yùn)行。如果要開(kāi)發(fā) CORBA 應(yīng)用程序,應(yīng)用程序環(huán)境中的每個(gè)節(jié)點(diǎn)都要運(yùn)行相同的 ORB
產(chǎn)品?,F(xiàn)在也有來(lái)自不同廠商的 CORBA ORB
能夠相互操作。但是那種互操作性并不能擴(kuò)展到像安全與事務(wù)管理那樣的更高級(jí)別的服務(wù)中去。不僅如此,所有特定于廠商的優(yōu)化在這種情況下將丟失殆盡。
這兩種協(xié)議都依賴(lài)于嚴(yán)格管理的環(huán)境。要找到能成功地在外部調(diào)用 DCOM 或 IIOP 的任意兩臺(tái)計(jì)算機(jī)的幾率比較小(請(qǐng)參閱參考資料)。此外,程序員們必須處理數(shù)據(jù)排列和數(shù)據(jù)類(lèi)型所需的協(xié)議唯一的消息格式規(guī)則。DCOM 和 CORBA 都是服務(wù)器對(duì)服務(wù)器通信的合適的協(xié)議。然而,它們?cè)诳蛻?hù)機(jī)對(duì)服務(wù)器通信方面都存在嚴(yán)重的缺陷,特別是當(dāng)客戶(hù)機(jī)遍布因特網(wǎng)時(shí)。
改進(jìn)的 RPC 解決方案需要些什么
盡管 CORBA 和 DCOM
存在著局限性,但由于我們迫切需要一個(gè)分布式計(jì)算模型,因此它們還是得到了廣泛的應(yīng)用。事實(shí)上,隨著因特網(wǎng)的出現(xiàn),企業(yè)越來(lái)越強(qiáng)烈地希望在公司外部與分布式應(yīng)用程序結(jié)合。那么一個(gè)成功的分布式計(jì)算模型需要有一些什么樣的特征呢?首先,解決方案一定是廠商、平臺(tái)以及語(yǔ)言都不確定的。此外,它所提供的必須不只是互操作性的承諾;它必須使互操作性有很大的提高。另外,它必須能方便程序員們使用協(xié)議及部署應(yīng)用程序。這就要求能方便地訪(fǎng)問(wèn)協(xié)議的客戶(hù)機(jī)和服務(wù)器端的實(shí)現(xiàn)。簡(jiǎn)單地說(shuō),我們需要一個(gè)建立在開(kāi)放因特網(wǎng)標(biāo)準(zhǔn)基礎(chǔ)上的新的分布式計(jì)算模型。
依賴(lài)開(kāi)放因特網(wǎng)標(biāo)準(zhǔn)
Web
服務(wù)技術(shù)組件是一套開(kāi)放的規(guī)范,它們要么是現(xiàn)有的因特網(wǎng)標(biāo)準(zhǔn),要么是被廣泛接受并正在通過(guò)正常步驟成為標(biāo)準(zhǔn)的規(guī)范。組件的基本部分包含
HTTP、XML、SOAP、WSDL、UDDI 以及 WSFL。
這部分的基礎(chǔ)是 HTTP,它是一個(gè)被廣泛運(yùn)用的、類(lèi)似 RPC 的簡(jiǎn)單協(xié)議,并且是防火墻友好的。接下來(lái),是 XML 中的通用數(shù)據(jù)表示法語(yǔ)言,它同樣被廣泛使用。SOAP 是一個(gè)基于 XML 的消息傳遞協(xié)議,它不確定平臺(tái)及語(yǔ)言。它同時(shí)支持消息傳遞和請(qǐng)求/響應(yīng)通信模型。與 CORBA 和 DCOM 一樣,它需要一個(gè) IDL。它所使用的 WSDL 是一個(gè)基于 XML 的服務(wù) IDL,定義了服務(wù)接口和其實(shí)現(xiàn)特征。
讓我們回顧一下表 2,并注意 HTTP 和 XML 作為一個(gè)新的分布式計(jì)算模型帶給 Web 服務(wù)的價(jià)值。在 HTTP 中,請(qǐng)求和響應(yīng)消息都能包含任意的有效負(fù)載信息。HTTP 報(bào)頭(HTTP header)只是純文本,這使得一般的因特網(wǎng)程序員便于使用。通常,這些報(bào)頭包含內(nèi)容長(zhǎng)度和內(nèi)容類(lèi)型。并且 HTTP 使用 TCP/IP 作為其請(qǐng)求/響應(yīng)消息的網(wǎng)絡(luò)通信協(xié)議。HTTP 客戶(hù)機(jī)利用 TCP 連接到 HTTP 服務(wù)器。建立了 TCP 連接以后,客戶(hù)機(jī)可以向服務(wù)器發(fā)送 HTTP 請(qǐng)求消息。然后服務(wù)器對(duì)請(qǐng)求進(jìn)行處理后將 HTTP 響應(yīng)消息發(fā)送回客戶(hù)機(jī)。簡(jiǎn)單地說(shuō),HTTP 是一種出色的不確定有效負(fù)載的傳輸方式,它提供了 CORBA 和 DCOM 中所能找到的大部分連接管理功能。它還使用 URL 進(jìn)行對(duì)象引用,它們與分別在 CORBA 和 DCOM 中找到的 IOR 和 OBJREF 相一致。
由于 HTTP 是不確定有效負(fù)載的,它確實(shí)缺少一個(gè)在 RPC 消息中表示參數(shù)值的機(jī)制。這就需引入 XML 了。XML 是一種與平臺(tái)無(wú)關(guān)的標(biāo)記數(shù)據(jù)表示語(yǔ)言。它允許數(shù)據(jù)串行化為一種消息格式,從而能輕易地在任何平臺(tái)上進(jìn)行解碼。然而,與 DR 和 CDR 不同,XML 很容易使用,它提供了一種靈活的、易于擴(kuò)展的數(shù)據(jù)格式,并且能獲得幾乎所有計(jì)算平臺(tái)的支持。不僅如此,它還是開(kāi)放的,并且被廣泛采用。表 2 描述了 HTTP 和 XML 是如何解決困擾 CORBA 和 DCOM 的互操作性問(wèn)題的。
Web 服務(wù)技術(shù)組件提供了 SOAP 作為映射應(yīng)用程序?qū)ο蟮骄W(wǎng)絡(luò)協(xié)議的開(kāi)放標(biāo)準(zhǔn) ORPC(請(qǐng)參閱表 3)。盡管 SOAP 不受特定的傳輸協(xié)議的約束,HTTP 還是成為了早先在 SOAP 采納者中最受歡迎的協(xié)議。使用 HTTP 時(shí),SOAP 信封使用 XML 作為請(qǐng)求和響應(yīng)參數(shù)的編碼方案。SOAP 消息實(shí)質(zhì)上是一個(gè)遵循 SOAP 編碼規(guī)則的 HTTP 請(qǐng)求和響應(yīng)。SOAP 端點(diǎn)就是一個(gè)基于 HTTP 的、識(shí)別方法調(diào)用目標(biāo)的 URL。與 CORBA 一樣,SOAP 并不要求一個(gè)特定對(duì)象被連接到給定的端點(diǎn)上。相反,需要由實(shí)現(xiàn)者來(lái)決定如何將對(duì)象端點(diǎn)標(biāo)識(shí)符映射到服務(wù)器端的對(duì)象上。在 SOAP 中檢查方法名稱(chēng)的名稱(chēng)空間 URI 與在 DCOM 或 CORBA 中檢查方法名稱(chēng)的接口 ID 在功能上是相同的。
表 3:Web 服務(wù)的互操作性特征
通向成功之路
依靠開(kāi)放的、被廣泛采用的標(biāo)準(zhǔn)只是解決方案的一部分。我們還需確保該解決方案能提供高度的互操作性并且協(xié)議的實(shí)現(xiàn)容易訪(fǎng)問(wèn)。這也是我看好
Web 服務(wù)前景的原因。廠商們紛紛開(kāi)始支持包含 Web
服務(wù)組件的標(biāo)準(zhǔn)。這也許是由于時(shí)間選擇和省錢(qián)的原因,或者也許是因?yàn)橐蛱鼐W(wǎng)對(duì)編程模型的影響。拋開(kāi)原因不談,結(jié)果是十分令人滿(mǎn)意的。不同于由 DCOM 和 CORBA
解決方案所造成的單一廠商的實(shí)現(xiàn)要求,廠商們一致認(rèn)為,定義一個(gè)能讓?xiě)?yīng)用程序?qū)崿F(xiàn)互操作性的分布式計(jì)算模型是每個(gè)人的最大利益所在。
最近,IBM 為一大群 SOAP 廠商主辦了一個(gè)互操作性專(zhuān)題研討會(huì)。Microsoft 和 WebMethods 等公司都自愿參與,以保證它們的 SOAP 解決方案能與其他廠商的解決方案實(shí)現(xiàn)互操作。這是 90 年代 ORB 之爭(zhēng)的 180 度文化轉(zhuǎn)彎。這個(gè)專(zhuān)題研討會(huì)只是個(gè)開(kāi)始。另一個(gè)由其他廠商主辦的專(zhuān)題研討會(huì)已經(jīng)在計(jì)劃之中。
當(dāng)我們介紹開(kāi)放源代碼實(shí)現(xiàn)的概念時(shí),情況變得更好了。Web 服務(wù)組件的核心,即 HTTP、XML 和 SOAP 的實(shí)現(xiàn)可自由地通過(guò) Apache 開(kāi)放源代碼社區(qū)得到。WSDL 的免費(fèi)實(shí)現(xiàn)可從 Microsoft 和 IBM 處獲得。因此一般的程序員能公開(kāi)獲取必需的工具以快速開(kāi)發(fā)分布式應(yīng)用程序,此外,他們很放心,為這些應(yīng)用程序部署的支持可以被應(yīng)用程序用戶(hù)簡(jiǎn)單、劃算地解決。
翻版
Web 服務(wù)是 CORBA 的翻版嗎?不,至少我不把 Web
服務(wù)編程模型看作是 CORBA 的再現(xiàn)或再生。我把它看作是一個(gè)全新的開(kāi)放的解決方案,它解決了 CORBA
所解決的相同的分布式計(jì)算問(wèn)題,同時(shí)又有更進(jìn)一步的目標(biāo),那就是改進(jìn) CORBA 的一些缺陷。
Web 服務(wù)技術(shù)提供了一個(gè)全新的編程模型來(lái)利用開(kāi)放因特網(wǎng)標(biāo)準(zhǔn)建立分布式應(yīng)用程序。這一全新的分布式計(jì)算解決方案采用特定因特網(wǎng)技術(shù)的開(kāi)放性解決了許多 CORBA 和 DCOM 的互操作性問(wèn)題。特別是,Web 服務(wù)
使用 HTTP 來(lái)實(shí)現(xiàn)防火墻友好和不確定有效負(fù)載;
將 XML 作為一個(gè)編碼模式使用,它能比 DR 和 CDR
更為廣泛地被采用;
提供關(guān)于 HTTP/SOAP 服務(wù)器環(huán)境的免費(fèi)的經(jīng)濟(jì)價(jià)值建議,或提供關(guān)于 ORB 框架的收費(fèi)的經(jīng)濟(jì)價(jià)值建議;
使用廣泛深入的 URL 因特網(wǎng)概念來(lái)解決對(duì)象識(shí)別問(wèn)題;并且提供的不只是互操作性的承諾。廠商們正積極工作以證明它們的 SOAP 實(shí)現(xiàn)確有互操作性。
Web 服務(wù)是不是一個(gè)更好的 RPC?我想是的,但只有時(shí)間能夠證明一切。
參考資料
- 可通過(guò)點(diǎn)擊文章頂部或者底部的討論,加入這篇文章的討論論壇。
- 請(qǐng)閱讀我這一系列中的 第 1 篇和 第 2 篇專(zhuān)欄文章。
- 請(qǐng)閱讀 Web Services Conceptual Architecture 以獲得 Web
服務(wù)的概述。
- 請(qǐng)查閱關(guān)于動(dòng)態(tài)電子商務(wù)的 realworld adoption scenarios。
- 請(qǐng)回顧簡(jiǎn)單對(duì)象訪(fǎng)問(wèn)協(xié)議。
- 請(qǐng)閱讀 Web 服務(wù)描述語(yǔ)言。
- 請(qǐng)?jiān)L問(wèn)對(duì)象管理組的站點(diǎn)以了解更多關(guān)于 CORBA 的信息。
- 學(xué)習(xí)如何將 CORBA ORB 與 WebSphere Application Server 集成起來(lái)。
- WebSphere Application Server 支持 CORBA、Web 服務(wù)以及
J2EE。
- 請(qǐng)?jiān)L問(wèn)主頁(yè),了解更多有關(guān)通用描述、發(fā)現(xiàn)和集成方面的信息。
- 了解誰(shuí)是 XML 協(xié)議工作組的成員。
- 更多 dW Web 服務(wù)參考資料。
關(guān)于作者
作為在 IBM 工作了 13 年的老員工,Dan Gisolfi 擁有 Polytechnic
大學(xué)的人工智能碩士學(xué)位和 Manhanttanville 大學(xué)計(jì)算機(jī)科學(xué)的學(xué)士學(xué)位。1999 年以前,他致力于從專(zhuān)家系統(tǒng)、OS/2
到網(wǎng)絡(luò)安全付費(fèi)系統(tǒng)的軟件和產(chǎn)品開(kāi)發(fā)。作為
jStart(jump-Start)新興技術(shù)組的一員,他既從事商業(yè)活動(dòng),又從事客戶(hù)約定的技術(shù)方面工作。從商業(yè)開(kāi)發(fā)經(jīng)理和宣傳者到解決方案的設(shè)計(jì)師和合同的談判代表,他有很多頭銜。作為
jStart 的 Web 服務(wù)方面的領(lǐng)導(dǎo),他幫助 IBM 通過(guò)真實(shí)的商業(yè)解決方案,加速采用這一新興技術(shù)??赏ㄟ^(guò) gisolfi@us.ibm.com
和他聯(lián)系。
瀏覽:Web服務(wù)設(shè)計(jì)師,第1部分
Web服務(wù)設(shè)計(jì)師,第2部分
Web服務(wù)設(shè)計(jì)師,第4部分
Web服務(wù)設(shè)計(jì)師,第5部分
Web服務(wù)設(shè)計(jì)師,第6部分
- 1重慶OA信息化
- 2成都OA信息化
- 3貴陽(yáng)OA信息化
- 4西安OA信息化
- 5武漢OA信息化
- 6北京OA信息化
- 7廣州OA信息化
- 8深圳OA信息化
- 9天津OA信息化
- 10沈陽(yáng)OA信息化
- 11長(zhǎng)春OA信息化
- 12福州OA信息化
- 1WebLogic Workshop給非開(kāi)發(fā)人員帶來(lái)Web服務(wù)
- 2搜索:非結(jié)構(gòu)化信息管理的核心
- 3TIBCO來(lái)華布道Web服務(wù)戰(zhàn)略
- 4復(fù)明集團(tuán)網(wǎng)上審批管理OA辦公軟件系統(tǒng)系統(tǒng) V1.0 ...
- 5[原創(chuàng)]母子公司間的知識(shí)管控模式探討
- 6泛普OA個(gè)性化門(mén)戶(hù)主要提供了基于用戶(hù)的門(mén)戶(hù)個(gè)性化流程
- 7送你一雙慧眼 識(shí)破偽石家莊OA信息化軟件
- 8面向服務(wù)的應(yīng)用集成——EAI和Web服務(wù)
- 9知識(shí)的經(jīng)濟(jì)學(xué)性質(zhì)
- 10當(dāng)軟件變成服務(wù)時(shí)
- 11全球性學(xué)習(xí)型組織的十一個(gè)特征
- 12BEA向Web服務(wù)互操作發(fā)展
- 13XML Web Service 安全性
- 14從知識(shí)的角度回顧企業(yè)能力理論-摘錄
- 15美國(guó)三大IT巨頭將向OASIS提交Web服務(wù)安全標(biāo)準(zhǔn)
- 16架構(gòu)Web Service:描述與注冊(cè),發(fā)布Web服務(wù)
- 17協(xié)同之惑
- 18非常漂亮的一個(gè)模型
- 19[原創(chuàng)]OA選擇首先要清晰概念
- 20APQC是如何看石家莊OA信息化的?
- 21BEA實(shí)現(xiàn)安全的在線(xiàn)交易的web服務(wù)
- 22石家莊OA信息化的“三四五六七”(by AMT 石家莊OA信息化小組)
- 23微軟在宣布.Net計(jì)劃進(jìn)入第二階段時(shí)預(yù)測(cè)——Web服務(wù)掀起下一次IT泛普
- 24A Platform for Web Services
- 25架構(gòu)Web Service:實(shí)戰(zhàn)Web服務(wù)
- 26無(wú)SOAP的Web服務(wù),第一部分
- 27bindingTemplate與Web服務(wù)調(diào)用
- 28資本的冬天是協(xié)同軟件行業(yè)的春天
- 29固化組織知識(shí)
- 30泛普軟件如何實(shí)現(xiàn)知識(shí)庫(kù)雙機(jī)熱備
成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓