監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 甲方項(xiàng)目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉

Web服務(wù)設(shè)計(jì)師,第3部分:Web服務(wù)是CORBA的翻版嗎?

申請(qǐng)免費(fèi)試用、咨詢電話: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ù)傳播的初期,客戶們就已經(jīng)開始詢問這一技術(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à)值的建議。
可通過點(diǎn)擊文章頂部或者底部的討論,加入這篇文章的討論論壇。

在以前的文章中,我曾論述過動(dòng)態(tài)電子商務(wù)的構(gòu)想以及能讓我們得以實(shí)現(xiàn)這一構(gòu)想的可用技術(shù),也就是 SOAP、WSDL 和 UDDI。對(duì)于好奇的讀者來說,動(dòng)態(tài)電子商務(wù)的整個(gè)課題只是分布式計(jì)算的另一種形式。對(duì)于這一新的分布式計(jì)算模型所作的調(diào)整改進(jìn)是跨平臺(tái)以及跨編程語言的互操作性。自從分布式計(jì)算成為主流概念以來,我們首次擁有了一個(gè)建立在真正支持互操作性的開放標(biāo)準(zhǔn)基礎(chǔ)上的解決方案。

在宣傳 Web 服務(wù)的整個(gè)行程中,我所面對(duì)的聽眾總會(huì)產(chǎn)生一種善意的疑問。拋開聽眾不談,對(duì)于 Web 服務(wù)的疑問通常是通過以下(及相關(guān)的)問題中的某一個(gè)表現(xiàn)出來:

Web 服務(wù)技術(shù)與 CORBA 有何區(qū)別?

為什么 Web 服務(wù)能在 CORBA 失敗的領(lǐng)域獲得成功?

有兩個(gè)原因使得我對(duì)這些問題持歡迎態(tài)度。首先,它們反映了人們對(duì)于分布式計(jì)算有一定的熟悉程度,這有助于交流的開展。分布式計(jì)算編程模型在 IT 產(chǎn)業(yè)內(nèi)成為主流已經(jīng)有些時(shí)日了。我估計(jì)這一情形至少在近二十年內(nèi)是如此。因此交流能著重于以前解決方案的缺點(diǎn)以及將來對(duì)于成功的解決方案的要求。

其次,由于我們討論的并非一個(gè)全新的概念,那么人們能否接受 Web 服務(wù)的有關(guān)風(fēng)險(xiǎn)就小了。這也反映了它的開放標(biāo)準(zhǔn)基礎(chǔ)以及這些標(biāo)準(zhǔn)在廠商解決方案中的普遍性。低風(fēng)險(xiǎn)還反映了在改進(jìn) Web 服務(wù)互操作性方面所做的實(shí)際努力(這與以前解決方案所作出的關(guān)于廠商互操作性的“圓滑”承諾形成了對(duì)比 — 我在后面還將詳細(xì)講述這一點(diǎn))。

過去,對(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è)的角度來說不存在實(shí)現(xiàn)互操作性的動(dòng)機(jī)。事實(shí)上,真正的 ORB 廠商的商業(yè)目的是能在分布式計(jì)算應(yīng)用程序的兩端同時(shí)出售其解決方案:請(qǐng)求者和 提供者節(jié)點(diǎn)。

SOAP 是一個(gè)出色的分布式計(jì)算解決方案,因?yàn)樗ㄟ^規(guī)范級(jí)別和實(shí)現(xiàn)級(jí)別上的開放標(biāo)準(zhǔn),實(shí)現(xiàn)了互操作性。我跳到后面的內(nèi)容上去了。讓我們回過頭來看一下 CORBA 和 DCOM,最后再來看 SOAP。我將提供一些關(guān)鍵區(qū)別,并舉例說明為什么基于 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é)議來建立消息傳遞系統(tǒng)。Microsoft 分布式計(jì)算環(huán)境(Distributed Computing Environment,DCE)就是這樣的。對(duì)于遠(yuǎn)程過程調(diào)用(Remote Procedure Call,RPC)應(yīng)用程序來說,同步請(qǐng)求/響應(yīng)的設(shè)計(jì)風(fēng)格通常是自然契合的。

在 20 世紀(jì) 80 年代,通信協(xié)議模型集中在網(wǎng)絡(luò)層上,如最初由 Sun Microsystems 開發(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é)議鏈接起來的對(duì)象 RPC(ORPC)協(xié)議。ORPC 和先于它們的 RPC 協(xié)議之間的主要區(qū)別是 ORPC 將通信端點(diǎn)的映射編碼至一個(gè)語言級(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)名稱中)被用來實(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)能允許不同種類的環(huán)境進(jìn)行對(duì)象級(jí)通信,而無需考慮是誰設(shè)計(jì)了分布式應(yīng)用程序的兩個(gè)端點(diǎn)。

CORBA 1.1 由對(duì)象管理組(Object Management Group,OMG)于 1991 年提出。它定義了允許客戶機(jī)/服務(wù)器對(duì)象在對(duì)象請(qǐng)求代理(Object Request Broker,ORB)的特定實(shí)現(xiàn)中相互作用的接口定義語言(Interface Definition Language,IDL)和應(yīng)用程序編程接口(Application Programming Interfaces,API)。ORB 是在分布式對(duì)象間建立請(qǐng)求者-提供者關(guān)系的中間件。

CORBA 2.0 于 1994 年 12 月被采用,它通過指定來自不同廠商的 ORB 如何相互操作解決了互操作性問題。(請(qǐng)參閱參考資料)。

ORB 將收到一條調(diào)用消息,來為注冊(cè)的對(duì)象調(diào)用一個(gè)特定的方法。ORB 截獲這條消息,并負(fù)責(zé)搜索一個(gè)能執(zhí)行該請(qǐng)求的對(duì)象,將參數(shù)傳遞給它,調(diào)用它的方法,然后返回結(jié)果。理論上,請(qǐng)求節(jié)點(diǎn)無需知道對(duì)象的位置、它的編程語言、它的操作系統(tǒng)或不屬于對(duì)象接口的一部分的任何其它系統(tǒng)方面的信息。

接口用一系列方法在外部把 CORBA 對(duì)象表現(xiàn)出來。一個(gè)對(duì)象引用可以識(shí)別對(duì)象的一個(gè)特殊實(shí)例。CORBA 對(duì)象的一個(gè)客戶程序獲取了其對(duì)象引用,并將它用作句柄進(jìn)行方法調(diào)用,就好像對(duì)象是位于客戶程序的地址空間中一樣。ORB 負(fù)責(zé)搜索對(duì)象的實(shí)現(xiàn)所需要的所有機(jī)制,讓它做好接收請(qǐng)求的準(zhǔn)備,隨后將請(qǐng)求傳達(dá)給它,并將回應(yīng)(如果有的話)送回客戶程序。

什么是 DCOM?

DCOM 是 Microsoft 的 COM(組件對(duì)象模型,Component Object Model)的分布式擴(kuò)展(請(qǐng)參閱參考資料中的 COM95),它在 DCE RPC (請(qǐng)參閱參考資料中的 DCE95)的頂端建立了一個(gè)對(duì)象遠(yuǎn)程過程調(diào)用(ORPC)的層來支持遠(yuǎn)程對(duì)象。COM 服務(wù)器能創(chuàng)建多對(duì)象類的對(duì)象實(shí)例。一個(gè) COM 對(duì)象可以支持多個(gè)接口,每個(gè)接口代表對(duì)象的一種不同的視圖或行為。一個(gè)接口由一套功能相關(guān)的方法組成。COM 的客戶程序通過獲取指向一個(gè)對(duì)象接口的一個(gè)指針,并通過該指針來調(diào)用方法以實(shí)現(xiàn)與 COM 對(duì)象之間的互相作用,就好像對(duì)象駐留在客戶程序的地址空間中一樣。COM 指定任何接口都必須遵循一個(gè)標(biāo)準(zhǔn)的內(nèi)存規(guī)劃,這與 C++ 的虛擬函數(shù)表(請(qǐng)參閱參考資料中的 Rogerson96)相同。由于該規(guī)范是二進(jìn)制級(jí)別的,因此它允許集成可能用不同編程語言如 C++、Java 和 Visual Basic(請(qǐng)參閱參考資料)等編寫的二進(jìn)制組件。

基礎(chǔ) RPC 架構(gòu)

在 DCOM 和 CORBA 中,客戶進(jìn)程與對(duì)象服務(wù)器之間的互相作用是作為面向?qū)ο蟮?RPC 式通信來實(shí)現(xiàn)的。圖 1 展示了一個(gè)典型的 RPC 結(jié)構(gòu)。為調(diào)用一個(gè)遠(yuǎn)程函數(shù),客戶程序要調(diào)用客戶機(jī)存根。然后存根將調(diào)用參數(shù)打包成一個(gè)請(qǐng)求消息并調(diào)用傳輸協(xié)議將該消息傳送到服務(wù)器。在服務(wù)器端,傳輸協(xié)議將消息傳送給服務(wù)器存根,隨后服務(wù)器存根解包請(qǐng)求消息并調(diào)用對(duì)象中真正的函數(shù)。在 DCOM 中,客戶機(jī)存根被稱為代理(Proxy),而服務(wù)器存根被稱為存根(Stub)。相反,CORBA 中的客戶機(jī)存根稱為存根(Stub),而服務(wù)器存根稱為框架(Skeleton)。有時(shí), 代理這個(gè)名稱還被用來指 CORBA 中正在運(yùn)行的存根實(shí)例。至于在 SOAP 和 Web 服務(wù)中,我們稱客戶機(jī)存根為服務(wù)代理(Service Proxy),稱服務(wù)器存根為服務(wù)實(shí)現(xiàn)模板(Service Implementation Template)。表 1 說明了這些概念的不同名稱

表 1:不同 RPC 架構(gòu)中的客戶機(jī)與服務(wù)器組件

RPC 架構(gòu) 客戶機(jī)存根 服務(wù)器存根 CORBA 存根 框架 DCOM 代理 存根 Web 服務(wù) 服務(wù)代理 服務(wù)實(shí)現(xiàn)模板

圖 1:基本 RPC 架構(gòu)



細(xì)微的差別影響互操作性

DCOM 和 CORBA IIOP 有許多相似之處。這兩個(gè)協(xié)議都使用端點(diǎn)標(biāo)識(shí)符來識(shí)別服務(wù)器端中間件中的目標(biāo)對(duì)象,且它們都使用方法標(biāo)識(shí)符來確定待調(diào)用方法的簽名。

表 2:CORBA 和 DCOM 中實(shí)現(xiàn)屬性名稱比較

實(shí)現(xiàn)屬性 DCOM CORBA 端點(diǎn)命名 OBJREF IOR 接口/對(duì)象 多個(gè) 單個(gè) 有效負(fù)載參數(shù)值格式 DR CDR

然而,與這些相似之處同時(shí)存在的還有一些影響互操作性的差別。 如表 2 所示,存在三個(gè)主要的差別:

通信端點(diǎn)的命名:在 ORPC 協(xié)議中,需要 ORPC 端點(diǎn)的一些消息表示法以便通過網(wǎng)絡(luò)傳達(dá)對(duì)象引用。在 CORBA/IIOP 中,這種表示法被稱為可互操作的對(duì)象引用(Interoperable Object Reference,IOR)。IOR 包含可移植格式的尋址信息,任何基于 CORBA 的產(chǎn)品都能把這些信息解析到對(duì)象端點(diǎn)上去。在 DCOM 中,這種表示法被稱為 OBJREF,它能將分布式引用計(jì)數(shù)與端點(diǎn)/對(duì)象識(shí)別結(jié)合起來。遺憾的是,IOR 不能與 OBJREF 相互關(guān)聯(lián),這就導(dǎo)致了 CORBA 和 DCOM 應(yīng)用程序之間的互操作性問題。

支持一對(duì)象多接口:在 CORBA 中,接口標(biāo)識(shí)符是固有的,因?yàn)樗恢С忠环N對(duì)象接口。然而 DCOM 能支持一對(duì)象多接口。

有效負(fù)載參數(shù)值的格式:在 DCOM 中,有效負(fù)載是以一種稱為網(wǎng)絡(luò)數(shù)據(jù)表示法(Network Data Representation,DR)的格式編寫的。在 IIOP/GIOP 中,有效負(fù)載是用通用數(shù)據(jù)表示法(Common Data Representation,CDR)編寫的。DR 和 CDR 都處理各種平臺(tái)上使用的不同數(shù)據(jù)表示法。需要注意的是,這兩種格式之間存在著一些細(xì)微的差別,使得它們彼此無法兼容。

為什么 CORBA 和 DCOM 的成功是有限的

盡管 CORBA 和 DCOM 已經(jīng)在各種平臺(tái)上得到了實(shí)現(xiàn),然而實(shí)際情況是建立在這些協(xié)議之上的任何解決方案都依賴于單一廠商的實(shí)現(xiàn)。因此,如果要開發(fā)一個(gè) DCOM 應(yīng)用程序,分布式應(yīng)用程序中所有參與的節(jié)點(diǎn)都必須以 Windows 風(fēng)格運(yùn)行。如果要開發(fā) CORBA 應(yīng)用程序,應(yīng)用程序環(huán)境中的每個(gè)節(jié)點(diǎn)都要運(yùn)行相同的 ORB 產(chǎn)品?,F(xiàn)在也有來自不同廠商的 CORBA ORB 能夠相互操作。但是那種互操作性并不能擴(kuò)展到像安全與事務(wù)管理那樣的更高級(jí)別的服務(wù)中去。不僅如此,所有特定于廠商的優(yōu)化在這種情況下將丟失殆盡。

這兩種協(xié)議都依賴于嚴(yán)格管理的環(huán)境。要找到能成功地在外部調(diào)用 DCOM 或 IIOP 的任意兩臺(tái)計(jì)算機(jī)的幾率比較?。ㄕ?qǐng)參閱參考資料)。此外,程序員們必須處理數(shù)據(jù)排列和數(shù)據(jù)類型所需的協(xié)議唯一的消息格式規(guī)則。DCOM 和 CORBA 都是服務(wù)器對(duì)服務(wù)器通信的合適的協(xié)議。然而,它們?cè)诳蛻魴C(jī)對(duì)服務(wù)器通信方面都存在嚴(yán)重的缺陷,特別是當(dāng)客戶機(jī)遍布因特網(wǎng)時(shí)。

改進(jìn)的 RPC 解決方案需要些什么

盡管 CORBA 和 DCOM 存在著局限性,但由于我們迫切需要一個(gè)分布式計(jì)算模型,因此它們還是得到了廣泛的應(yīng)用。事實(shí)上,隨著因特網(wǎng)的出現(xiàn),企業(yè)越來越強(qiáng)烈地希望在公司外部與分布式應(yīng)用程序結(jié)合。那么一個(gè)成功的分布式計(jì)算模型需要有一些什么樣的特征呢?首先,解決方案一定是廠商、平臺(tái)以及語言都不確定的。此外,它所提供的必須不只是互操作性的承諾;它必須使互操作性有很大的提高。另外,它必須能方便程序員們使用協(xié)議及部署應(yīng)用程序。這就要求能方便地訪問協(xié)議的客戶機(jī)和服務(wù)器端的實(shí)現(xiàn)。簡(jiǎn)單地說,我們需要一個(gè)建立在開放因特網(wǎng)標(biāo)準(zhǔn)基礎(chǔ)上的新的分布式計(jì)算模型。

依賴開放因特網(wǎng)標(biāo)準(zhǔn)

Web 服務(wù)技術(shù)組件是一套開放的規(guī)范,它們要么是現(xiàn)有的因特網(wǎng)標(biāo)準(zhǔn),要么是被廣泛接受并正在通過正常步驟成為標(biāo)準(zhǔn)的規(guī)范。組件的基本部分包含 HTTP、XML、SOAP、WSDL、UDDI 以及 WSFL。

這部分的基礎(chǔ)是 HTTP,它是一個(gè)被廣泛運(yùn)用的、類似 RPC 的簡(jiǎn)單協(xié)議,并且是防火墻友好的。接下來,是 XML 中的通用數(shù)據(jù)表示法語言,它同樣被廣泛使用。SOAP 是一個(gè)基于 XML 的消息傳遞協(xié)議,它不確定平臺(tái)及語言。它同時(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)容類型。并且 HTTP 使用 TCP/IP 作為其請(qǐng)求/響應(yīng)消息的網(wǎng)絡(luò)通信協(xié)議。HTTP 客戶機(jī)利用 TCP 連接到 HTTP 服務(wù)器。建立了 TCP 連接以后,客戶機(jī)可以向服務(wù)器發(fā)送 HTTP 請(qǐng)求消息。然后服務(wù)器對(duì)請(qǐng)求進(jìn)行處理后將 HTTP 響應(yīng)消息發(fā)送回客戶機(jī)。簡(jiǎn)單地說,HTTP 是一種出色的不確定有效負(fù)載的傳輸方式,它提供了 CORBA 和 DCOM 中所能找到的大部分連接管理功能。它還使用 URL 進(jìn)行對(duì)象引用,它們與分別在 CORBA 和 DCOM 中找到的 IOR 和 OBJREF 相一致。

由于 HTTP 是不確定有效負(fù)載的,它確實(shí)缺少一個(gè)在 RPC 消息中表示參數(shù)值的機(jī)制。這就需引入 XML 了。XML 是一種與平臺(tái)無關(guān)的標(biāo)記數(shù)據(jù)表示語言。它允許數(shù)據(jù)串行化為一種消息格式,從而能輕易地在任何平臺(tái)上進(jìn)行解碼。然而,與 DR 和 CDR 不同,XML 很容易使用,它提供了一種靈活的、易于擴(kuò)展的數(shù)據(jù)格式,并且能獲得幾乎所有計(jì)算平臺(tái)的支持。不僅如此,它還是開放的,并且被廣泛采用。表 2 描述了 HTTP 和 XML 是如何解決困擾 CORBA 和 DCOM 的互操作性問題的。

Web 服務(wù)技術(shù)組件提供了 SOAP 作為映射應(yīng)用程序?qū)ο蟮骄W(wǎng)絡(luò)協(xié)議的開放標(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)者來決定如何將對(duì)象端點(diǎn)標(biāo)識(shí)符映射到服務(wù)器端的對(duì)象上。在 SOAP 中檢查方法名稱的名稱空間 URI 與在 DCOM 或 CORBA 中檢查方法名稱的接口 ID 在功能上是相同的。

表 3:Web 服務(wù)的互操作性特征

實(shí)現(xiàn)特征 Web 服務(wù) 端點(diǎn)命名 URL 接口/對(duì)象 多個(gè) — WSDL 有效負(fù)載參數(shù)值格式 XML

通向成功之路

依靠開放的、被廣泛采用的標(biāo)準(zhǔn)只是解決方案的一部分。我們還需確保該解決方案能提供高度的互操作性并且協(xié)議的實(shí)現(xiàn)容易訪問。這也是我看好 Web 服務(wù)前景的原因。廠商們紛紛開始支持包含 Web 服務(wù)組件的標(biāo)準(zhǔn)。這也許是由于時(shí)間選擇和省錢的原因,或者也許是因?yàn)橐蛱鼐W(wǎng)對(duì)編程模型的影響。拋開原因不談,結(jié)果是十分令人滿意的。不同于由 DCOM 和 CORBA 解決方案所造成的單一廠商的實(shí)現(xiàn)要求,廠商們一致認(rèn)為,定義一個(gè)能讓應(yīng)用程序?qū)崿F(xiàn)互操作性的分布式計(jì)算模型是每個(gè)人的最大利益所在。

最近,IBM 為一大群 SOAP 廠商主辦了一個(gè)互操作性專題研討會(huì)。Microsoft 和 WebMethods 等公司都自愿參與,以保證它們的 SOAP 解決方案能與其他廠商的解決方案實(shí)現(xiàn)互操作。這是 90 年代 ORB 之爭(zhēng)的 180 度文化轉(zhuǎn)彎。這個(gè)專題研討會(huì)只是個(gè)開始。另一個(gè)由其他廠商主辦的專題研討會(huì)已經(jīng)在計(jì)劃之中。

當(dāng)我們介紹開放源代碼實(shí)現(xiàn)的概念時(shí),情況變得更好了。Web 服務(wù)組件的核心,即 HTTP、XML 和 SOAP 的實(shí)現(xiàn)可自由地通過 Apache 開放源代碼社區(qū)得到。WSDL 的免費(fèi)實(shí)現(xiàn)可從 Microsoft 和 IBM 處獲得。因此一般的程序員能公開獲取必需的工具以快速開發(fā)分布式應(yīng)用程序,此外,他們很放心,為這些應(yīng)用程序部署的支持可以被應(yīng)用程序用戶簡(jiǎn)單、劃算地解決。

翻版

Web 服務(wù)是 CORBA 的翻版嗎?不,至少我不把 Web 服務(wù)編程模型看作是 CORBA 的再現(xiàn)或再生。我把它看作是一個(gè)全新的開放的解決方案,它解決了 CORBA 所解決的相同的分布式計(jì)算問題,同時(shí)又有更進(jìn)一步的目標(biāo),那就是改進(jìn) CORBA 的一些缺陷。

Web 服務(wù)技術(shù)提供了一個(gè)全新的編程模型來利用開放因特網(wǎng)標(biāo)準(zhǔn)建立分布式應(yīng)用程序。這一全新的分布式計(jì)算解決方案采用特定因特網(wǎng)技術(shù)的開放性解決了許多 CORBA 和 DCOM 的互操作性問題。特別是,Web 服務(wù)

使用 HTTP 來實(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)概念來解決對(duì)象識(shí)別問題;并且提供的不只是互操作性的承諾。廠商們正積極工作以證明它們的 SOAP 實(shí)現(xiàn)確有互操作性。

Web 服務(wù)是不是一個(gè)更好的 RPC?我想是的,但只有時(shí)間能夠證明一切。

參考資料

  • 可通過點(diǎn)擊文章頂部或者底部的討論,加入這篇文章的討論論壇
  • 請(qǐng)閱讀我這一系列中的 第 1 篇 第 2 篇專欄文章。
  • 請(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ì)象訪問協(xié)議。
  • 請(qǐng)閱讀 Web 服務(wù)描述語言。
  • 請(qǐng)?jiān)L問對(duì)象管理組的站點(diǎn)以了解更多關(guān)于 CORBA 的信息。
  • 學(xué)習(xí)如何將 CORBA ORB 與 WebSphere Application Server 集成起來。
  • WebSphere Application Server 支持 CORBA、Web 服務(wù)以及 J2EE。
  • 請(qǐng)?jiān)L問主頁,了解更多有關(guān)通用描述、發(fā)現(xiàn)和集成方面的信息。
  • 了解誰是 XML 協(xié)議工作組的成員。
  • 更多 dW Web 服務(wù)參考資料



關(guān)于作者

作為在 IBM 工作了 13 年的老員工,Dan Gisolfi 擁有 Polytechnic 大學(xué)的人工智能碩士學(xué)位和 Manhanttanville 大學(xué)計(jì)算機(jī)科學(xué)的學(xué)士學(xué)位。1999 年以前,他致力于從專家系統(tǒng)、OS/2 到網(wǎng)絡(luò)安全付費(fèi)系統(tǒng)的軟件和產(chǎn)品開發(fā)。作為 jStart(jump-Start)新興技術(shù)組的一員,他既從事商業(yè)活動(dòng),又從事客戶約定的技術(shù)方面工作。從商業(yè)開發(fā)經(jīng)理和宣傳者到解決方案的設(shè)計(jì)師和合同的談判代表,他有很多頭銜。作為 jStart 的 Web 服務(wù)方面的領(lǐng)導(dǎo),他幫助 IBM 通過真實(shí)的商業(yè)解決方案,加速采用這一新興技術(shù)??赏ㄟ^
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部分

發(fā)布:2007-03-25 13:26    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]
相關(guān)文章:
石家莊OA系統(tǒng)
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢:400-8352-114

加微信,免費(fèi)獲取試用系統(tǒng)

QQ在線咨詢