文出處: http://webservices.org/article/articleprint/663/-1/24/
作者:Uche Ogbuji                    原文發表日期:2002年9月28日
翻譯者:陳劍(jchen@263.net)         譯文發表日期:2002年10月10日


簡介

對Web services的大肆宣傳(hype)已經接近頂峰,它成為了當前流行媒體最喜歡的炒作對象。這種宣傳攻勢同其它技術在全面開發和走向成熟前的狀況沒什 么兩樣。不管媒體的興趣如何,Web services毫無疑問是一項發展前景頗為看好的重要技術。那些對Web Services出現的動機、某些特定技術勝于競爭者的原因以及Web Services可能的技術成熟途徑有透徹理解的公司和開發人員將在Web Services的使用方面獲得成功。

  正是基于這樣的原因,我將以Web Services的歷史作為開篇。這并非出于懷舊的目的,Web Services得以孕育的商業和技術環境以及在其發展歷程中盛衰無常的參與者(公司或者組織)都將對Web Services的未來產生重要的影響。你也許已經注意到了這一趨勢,比如類似結構化信息標準推進組織(OASIS)這樣的團體正在扮演為Web Services制定安全、工作流和事務處理等協議標準的角色。有趣的是,OASIS曾經被看成是Web Services主流技術的反對者。

Web Services的表演舞臺

分布式應用的開發在傳統計算技術由集中式的主機計算向對等的小型計算機和工作站網絡過渡階段開始就 成為了重要的發展領域。在這一趨勢的發展過程中,IT經理仍舊是其所在領域的專家。分布式開發的戰略被限制在IT經理接受必要的輸入并向管理層提交必要的 報告。運行和維護一個良好集成的數據中心才是關鍵,而對異步平臺和環境的支持顯得并不那么重要。在這種狀況下,諸如電子數據交換(EDI)這樣的部門在企 業中通常是作為一個完全獨立的實體而存在。

  雖然幾乎所有的Web Services的技術基礎都是從小型機時代發展起來的,但是由于某些原因,在分布式計算的歷史上,小型機時代卻經常被人忽略。這大概是因為在同一時期 PC的革命性崛起掩蓋了小型機時代的光芒。但是直到Internet投入廣泛商業應用之前,PC并未對分布式計算領域做出什么突出的貢獻。為了組織并提高 數據中心的可伸縮性,服務被分散到多臺工作站上,這就要求一系列包括同步和異步方式在內的通訊機制和底層應用集成機制。結果,這一時期流行的體系架構和操 作系統(比如,DEC VMS、Tandem、HP以及Sun的Unix系統)開發出的分布式消息通訊(distributed messaging)技術,其復雜程度即使在今天看來也讓人咂舌。
 
IBM攜MQSeries進入分布式消息通訊領域的時間稍晚。在 看到要求應用能運行在從小型機直到其大型主機上的需求之后,IBM收購了當時流行的ezBridge軟件,并在其基礎上開發出了MQSeries。 MQSeries從那個時代起就獨領風騷,直到現在。然而,消息通訊技術要求已經習慣了過程化編程語言的程序員們以全新的思路看待和解決問題。程序員卻希 望以自己熟悉的簡單的函數調用方式來訪問遠程的過程。在80年代末期,分布式計算環境(DCE)的推出試圖將多個相互競爭的遠程過程調用技術標準化。這一 努力有意忽略了消息通訊技術,并且主要由于政治方面的原因,DCE并未獲得業界的廣泛支持。此時,新一代(但并不一定更好)的分布式計算技術開始涌現。
 
這個時期,IT經理們開始躋身公司管理高層,信息系統也成為公司戰略的基礎,在投資預算中所占的比例日漸增長。組織中的現實意味著大部分公司的計算技術 重點不再局限于單一的數據中心,與此相反,各類部門級的系統呈爆炸性增長。系統集成代替單一平臺標準成為技術選擇中最重要的考慮因素。IT經理們現在尋求 的是網絡技術的標準化。因為面向對象技術許諾的可管理性、代碼重用、降低成本以及提高投資回報率等等好處,IT公司們開始采用對象系統作為軟件開發的標 準。由此帶來的結果是,這一階段涌現的分布式技術都打上了深深的對象技術的印記。
 
和DCE一樣,CORBA(通用對象請求代理體系 架構)也是業界聯盟試圖對分布式過程技術進行標準化的產物。這一次,規模龐大的對象管理集團(OMG)將重點集中在跨平臺應用中遠程對象的訪問請求之上。 由于CORBA試圖使對象狀態和生命周期的管理透明化,因此在可伸縮性上不如消息機制和DCE理想。同樣的問題也困擾Microsoft推出的與 CORBA競爭的遠程對象協議:組件對象模型(COM)和分布式組件對象模型(DCOM)。與此同時,e-mail和Web被證明是有史以來最成功的分布 式體系架構,其設計者采用的分布式開發技術充分利用了消息通訊技術和Internet的普遍連通性。各大廠商出于降低風險的目的,普遍支持這些標準。
 
在同一時期,其它專業化的分布式技術也相繼出現。Java的流行導致了RMI(遠程方法調用)協議的出現。在MQSeries獲得成功后,Microsoft和Java也推出了自己的消息通訊技術。

在新千年來臨之際,基于信息系統的需求和網絡技術的經驗積累,新一代的分布式計算技術呼之欲出。人們對于分布式計算技術的要求包括:
 
適合單一應用中的分布式操作以及不同應用間通用服務的調用。換句話說就是能夠同時支持開發人員和系統集成商。
適合組織內部以及組織間的信息交換,要求跨平臺支持和數據驅動(data-driven)。
盡可能與現存的Internet基礎設施和諧共處。
在節點數、異構節點數以及節點復雜度增加時,具有良好的可擴展性。
有力的國際化支持。
容錯性。節點緊耦合的網絡通常存在單點失效的問題,在分布式系統中這一問題更加嚴重。 對來自流行廠商的通用軟件開發和商業流程管理工具的有力支持。
在支持最簡單的請求/響應機制的同時,在必要的時候也提供對復雜的流程協作、事務和安全性支持。

Web services橫空出世

HP在其高端的UNIX平臺上直接邁出了由小型機分布式計算時代進入現代Web Services的令人矚目的一步。從90年代早期到中期,HP的實驗室開始著手研究如何解決分布式系統的技術和成本的難題。HP的研究成果被其稱為e- Speak,于1999年下半年正式推出。e-Speak致力于解決上節末尾列出的絕大多數需求,也許是業界的第一個Web Services技術,當然也是第一個商業性Web Services技術。e-Speak使用HTTP這樣的通用協議,數據的表示采用的是XML,并且將各種聯網系統看成能夠快速插接數據流的“電子服務” ("e-services")。不幸的是,e-Speak的理念比目前的Web Services技術內聚性更強 ,HP最近決定淡化e-Speak,轉而支持更主流的Web Services。

  UserLand社團也試圖使用HTTP和XML技術來滿足上述需求。UserLand的Dave Winer領導了XML-RPC的開發工作。XML-RPC是一個簡單的用于調用遠程方法的系統,其協議文本只有短短的幾頁。目前,XML-RPC在開放 原碼領域仍然十分流行。開放原碼領域內相互競爭的項目和眾多開放并且許可證免費的實現使XML-RPC具有良好的互操作性和低廉的成本。但是,由于 XML-RPC的草根出身和較早的推出時間,使其不可避免地存在一些顯著的不足。例如,XML-RPC堅持使用ASCII字符串(雖然它使用的是國際化支 持良好的XML標準),這導致其基本上只能在英文環境中使用。而且,XML-RPC在數據類型的選擇方面也比較隨意。但是,更重要的是,XML-RPC被 限制在使用高度統一和結構化消息格式的簡單請求/響應服務上。
 
在XML-RPC出現的同時,也存在其它更通用的XML消息通訊機 制。雖然它們中的大多數其實更適合于程序語言結構(constructs)的序列化(serialization)和數據庫的內容轉儲(dumps),而 不是用于面向文檔的消息通訊,但是比起嚴格的RPC方式來,還是要更靈活一些。其中最有名的是Allaire 公司提出的Web分布式數據交換協議(WDDX),目前一個相關的社團在繼續這個開放規范的繼續開發。
 
與此同時,XML和 Internet協議也對像EDI業界這樣的其它技術團體帶來革命性的影響。首先,出現了運行在SMTP(e-mail)上的EDI,同時為了避免增值網 絡(VANs)高昂的交易費用,HTTP(Web)也被EDI采納。接下去,諸如歐洲的CEN/ISSS和美國的XML/EDI等團體開始開發將EDI交 易編碼成為XML的技術,因為EDI交易的消息內容以雜亂出名。這一系列的趨勢使得早期出現的Web Services主要解決的不是企業應用集成(EAI)的問題而是主要用于簡化B2B交易。這些早期的XML/EDI系統在設計中利用了現有的穩定和通用 的EDI流程協作、安全等高級機制,而這些恰恰是目前Web Services仍舊缺少的。這些努力導致了一個叫做電子商務XML(ebXML)的正式標準的出臺。ebXML的支持者主要來自EDI陣營,但是稍后一 般被認為是擅長過程和對象的Sun也加入進來。從1999年底開始,ebXML進入了18月的開發周期。ebXML由SGML/XML業界先驅OASIS 和在傳統EDI開發的扮演關鍵角色的聯合國貿易推進和電子商務組織(UN/CEFACT)共同開發和維護。
 
回溯到1998年,一個用于結構化交換XML文檔的規范——簡單對象訪問協議(SOAP)在一個小范圍的組織中間醞釀,其中也包括軟件巨人Microsoft。由于一些政治方面的原因,SOAP直到1999年下半年才正式發布。
 

分布式計算技術的發展歷史(HISTORY OF DISTRIBUTED COMPUTING )

SOAP繁衍增生

SOAP生來就引起各方的爭議。盡管從對SOAP采用的特殊類型系統到是追隨SOAP陣營(由 Microsoft領導)還是ebXML(由Sun領導)等問題都充滿爭論,主要的業界廠商對Web Services將成為下一個重量級技術(the next big thing)都心照不宣。SOAP來源自誕生XML-RPC的同一社團Userland's,因此在草根Web Services陣營得以流行。SOAP不像XML-RPC那樣簡單,但是它確實解決了早期規范中的一些問題。開放源碼的開發者們驚訝地發現,幾乎所有的 商用系統廠商都對這個開放協議提供支持。其實想想XML的成功,這也就不足為奇了。SOAP的出現為分布式開發擺脫大型廠商和社團的嚴格限制提供了良機, 于是,各種SOAP開發組織如雨后春筍一般涌現出來。

  SOAP只是一個通訊協議。很早就有跡象表明,對Web Services的元數據(metadata)的標準化具有重要的意義。在創建這一個特殊的語言方面,多個方面均作出了努力。WebMethods 提出的Web接口定義語言(WIDL)是出現最早的標準之一,其目標是用于像XML-RPC和WDDX這樣的第一代Web Services系統。WIDL的設計效仿了作為CORBA和COM基礎的接口定義語言,但是它是以XML的形式出現的。Microsoft在2000年 為Web Services節點的服務描述開發了服務描述語言(SDL)和SOAP契約語言(SCL)。Microsoft還開發了用于Web服務信息注冊和查找的 Web Services發現協議(DISCO),通過它用戶能夠找到用SCL描述的服務。
 
IBM推出了與之競爭的一系列規范:和 SDL與SCL類似的可訪問網絡服務規范語言(NASSL),和DISCO類似的服務發布和發現協議(ADS)。這些標準都集成到了IBM alphaWorks的Web Services工具包中。IBM, Microsoft以及Ariba等公司在以上提到的這些協議規范基礎上最終提出了Web Services描述語言(WSDL)。

  這三家公司還將其它們各自專有的發現系統整合后,提出了Web Services目錄系統——通用描述、發現和集成協議(UDDI)。UDDI包括白頁、黃頁和綠頁。UDDI被作為一個有36家公司參與的聯盟的產品推 出,現在該聯盟的成員公司已經超過了100家。這一產品的定義非常詳盡而且高度形式化,這和SOAP與WSDL的情況大不一樣。SOAP和WSDL的規范 文本簡單易懂而且易于實現。這一差異反應了Web Services的現狀:諸如核心通訊和服務描述等底層技術細節的演化是由底向上(bottom up),采用了一系列可以免費獲得的語言和工具;而發現和商業/法律描述則根據集中式的信息授權和認證由頂向下(top down)演化。

  這導致了Web Services在“個性”("personality")方面的分化。首先,以“終極Perl黑客”("desperate Perl hacker")為代表的Web Services草根階層在部門級如魚得水,但是和整個公司的戰略背道而馳。其次,企業級Web Services作為電子商務戰略的基礎等到高層的認可。目前,大部分成功的Web Services集中在草根階層。以UDDI為代表的企業級Web Services卻還沒有找到自己的核心價值所在(而且在某些情況下,甚至拒絕吸取EDI團體長期以來得到的教訓)。


開發商站到前臺

   2001年4月召開的W3C Web Services研討會(W3C Workshop on Web services,WSWS)是對Web Services的未來發展的規劃。此前,Web Services主要是在W3C之外由草根階層或者諸如UDDI.org這樣的獨立團體進行開發。W3C對Web Services的支持是自然而然的事情。正如,它也是HTML、XML等其它Web標準的制訂者一樣。WSWS的目標是要確定W3C中有關Web Services的活動的形式和目標。W3C已經成立了XML協議工作組(XML Protocol working group ,XMLPWG),雖然到目前為止,該工作組除了將一系列XML建議和候選協議分門別類之外,沒有完成多少實質性的工作。對WSWS而言,XMLPWG將 不斷充實,以便將SOAP擴展成為一個完善的W3C推薦標準。

  對Web Services而言,機會在于使各種技術戰略獲得新生。WSWS正在考慮在基本協議的基礎上實現一系列的高級特性:
IBM提出的Web Services節點語言(WSEL)試圖解決Web Services的服務質量(QoS)等網絡管理方面的問題,Web Services流語言(WSFL)則致力于Web Services的流程協作。
HP的eSpeak技術提出了更廣泛和雄心勃勃的Web Services戰略,討論各類特定服務的核心概念和運行環境的需求,特別是對小型嵌入式設備的支持。
Microsoft也在強調QoS,并和IBM一起聯合開發。
Jamcracker與BEA強調Web Services在集成方面的重要性。
Verisign強調安全性的重要性和數字認證的作用。Novell則強調在目錄服務中授權和認證的管理。
其它的一些開發商則只是演示各自開發的支持Web Services開發和部署的專有框架,并將其作為未來可能出現的協議標準的模型提出。
WSWS同時擁有來自Web Services草根階層(比如,UserLand 的Dave Winer,XML-RPC和SOAP的開發者)和來自OASIS和ebXML的代表。后者最近剛剛結束了一場Web Services社團內部爭論,決定采用一個基于帶附件email的SOAP傳輸協議(SOAP over e-mail with attachments)來代替一個此前開發出的更加細化的特殊的消息通訊協議。筆者本人也受邀發表一篇關于如何使用W3C的資源描述框架標準 (Resource Description Framework ,RDF)來集成Web Services和其它元數據系統的論文。


協議棧的進展

WSWS的主要目的是構建Web Services的“協議棧”或稱體系結構。諸如Qos(服務質量)、安全性、流程協作(orchestration)以及事務管理等標準都將在這個協議 棧中找到自己的一席之地。SOAP和WSDL已經確立了Web Services核心標準的地位,所以主要廠商間填補協議??杖辈糠值臓幎烦蔀?002下半年的主旋律。

  安全性一直是受到特別重視的領域。很容易理解,在Web Services成為公司防火墻外部流行的通訊機制之前,強有力的安全性必須得到保證。安全性表現于多個方面,其中之一是保證傳輸的內容 (payload)不被篡改。W3C的XML簽名(XML Signature)工作組致力于開發用于XML文檔的數字簽名系統,支持諸如canonicalization (c14n)等協議規范。c14n將XML文檔轉換成一種標準格式以免諸如XML屬性的排列順序不會對XML文檔含義帶來影響的因素造成數字簽名系統的誤 判。XML加密工作組(XML Encryption working group)致力于加密技術,制定包括加密數據并保證結果為格式良好(well-formed)的XML文檔的XML加密句法和處理規范。XML密鑰管理 工作組( XML Key Management working group)則制定用于管理數字密鑰和信用認證令牌(trust certification tokens)的簡單Web Services規范。2002年新出現的標準還包括安全斷言標記語言(SAML)和WS-Security規范框架。我將在本文的下部討論這幾個規范標 準。
 
商業流程和工作流是協議棧中標準制定工作的另一活躍領域。ebXML是該領域的早期成員。ebXML協議族中的商業流程規范模 式(BPSS)和其注冊與存貯(registry and repository)標準提供了對管理業務伙伴能力和協議的支持。它同時還對持續運行交易(long-lived transaction)的管理,安全以及服務質量提供支持。處于發展早期的還包括IBM、HP、Oracle、Sun等提出的交易權限標記語言 (XAML)。該協議已經合并進入其它Web Services的交易規范的制定工作。IBM的WSFL和WSEL分別針對工作流和服務質量(Qos)提出。微軟則提出了名為XLANG的工作流協議。 WSFL和XLANG都是對WSDL的擴展,正如人們預期的那樣,這兩個標準被合并成為一個更為通用的商業流程語言WS-Coordination。在本 文的下部,我將討論WS-Coordination,WS-Transaction 和 BPELWS。
 
邁入2002

當我 們邁步進入2002年,Web Services在各個層面均獲得了長足的進展。在草根階層,多個開發者團體開始著手解決早期Web Services聲名狼藉的互操作性(interoperability)問題。在公司內部,Web Services協議棧逐漸成型,開發商們迫切地期望Web Services相關規范盡快完善。在本文的第二部分,我將勾勒出Web Services在當前(2002年)的狀況,并且展望其未來發展。
 

關于作者:

Uche Ogbuj是Fourthought Inc.的創始人和咨詢師。他的公司為企業知識管理提供專業的XML解決方案,包括軟件開發和咨詢服務。Fourthought開發了用于XML, RDF和知識管理應用的開放源碼平臺4Suite。Ogbuji先生是計算機工程師兼作家,他出生于尼日利亞,現在居住在美國Colorado的 Boulder。你可以通過Email和他聯絡。

關于譯者:
陳劍,IBM中國開發中心軟件工程師。 關注J2EE,Web Services, 面向對象,軟件工程等技術。出生于天府之國四川,現在北京工作和生活。你可以通過Email和他聯絡。