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

Web服務(wù)內(nèi)幕,第1部分:我們已走了多遠(yuǎn)?

申請免費試用、咨詢電話:400-8352-114

AMTeam.org

Web服務(wù)內(nèi)幕,第1部分:我們已走了多遠(yuǎn)?

James Snell (jasnell@us.ibm.com)

軟件工程師,Emerging Technologies, IBM

2001 年 4 月

“Web 服務(wù)革命”目前形勢如何?在這個以“Web 服務(wù)內(nèi)幕”命名的新專欄的第一部分中,我將回顧在過去幾年中涌現(xiàn)的一些工具和技術(shù),以突出顯示它們的差異和相似之處。

您好,歡迎光臨本專欄,我們致力于探究 Web 服務(wù)世界。在接下來的幾個月中,我將徹底而詳細(xì)地說明 Web 服務(wù)體系結(jié)構(gòu)的基本原則,并特別關(guān)注核心約定,其推動了新興的、發(fā)展迅猛以及涌現(xiàn)出的技術(shù)范例:互操作性。

但是,我不是要展望 Web 服務(wù)將來會帶來什么,只是想迅速回顧一下 Web 服務(wù)走過的歷程,當(dāng)今它(根據(jù)工具的實用性)的適用范圍,并就使這個令人激動的新技術(shù)具有可行性和競爭性還須付出多少努力的問題,發(fā)表了一些個人見解。

我們的起點

如果您認(rèn)為因特網(wǎng)上的 Web 服務(wù)發(fā)展非常迅速,那么您的看法完全正確。真是難以置信,這個新范例(SOAP、WSDL 和 UDDI)的構(gòu)建模塊都僅僅才出現(xiàn)了幾個月而已,卻已經(jīng)對設(shè)計、開發(fā)和部署基于 Web 的應(yīng)用的觀念產(chǎn)生了巨大的影響。

簡單對象訪問協(xié)議(SOAP,請參閱參考資料)起源要追朔到 1998 年,源自最初由 Vserland Software 的 Dave Winter 創(chuàng)建的基于 XML 的 RPC 機(jī)制的想法。1999 年后期,此想法在 DevelopMentor 的 Winer、Don Box 和 Microsoft 的共同努力下發(fā)展成了 SOAP 版本 0.9。那時,開發(fā)人員社區(qū)的反應(yīng)很復(fù)雜。如果我回憶正確的話,我當(dāng)時的反應(yīng)是 SOAP 看起來象一個很酷的玩具,到離實用還有一大段差距。事情變化得很快。在 SOAP 版本 0.9 發(fā)布沒有多久,就發(fā)布了 SOAP 1.0,它增加了很多的改進(jìn)并擴(kuò)大了所支持開發(fā)人員的范圍。

IBM 于 2000 年 5 月合作開發(fā)了 SOAP 版本 1.1 的規(guī)范(請參閱參考資料),并把它作為 W3C Note 來提交,由此正式加入 SOAP 的開發(fā)行列,從而正式標(biāo)志了“Web 服務(wù)革命”的開始。隨著 IBM 的加入,非 Microsoft 開發(fā)平臺上的開發(fā)人員站了起來并首次關(guān)注了 SOAP。這種可在松散的聯(lián)合和動態(tài)的集成應(yīng)用之間建立的無縫跨平臺互操作的約定具有極大的誘惑力,尤其適用于 Java 開發(fā)的原則。

從這一點講,Microsoft 和 IBM 在把基于 SOAP 的開發(fā)工具發(fā)展為開發(fā)者手頭所使用工具方面起了領(lǐng)導(dǎo)作用。開始很簡單,IBM 是第一個為 SOAP(請參閱參考資料)開發(fā)出基于 Java 的工具包,這為開放源碼 Apache Software Foundation 的進(jìn)一步開發(fā)做出了積極的貢獻(xiàn)。Microsoft 隨后不久發(fā)布了它們的第一個再現(xiàn) SOAP 工具包并在接下來的六月主動公布他們的宏偉的 .NET Web 服務(wù)。

隨著支持 SOAP 產(chǎn)業(yè)的迅速發(fā)展,IBM 和 Microsoft 隨后把他們的注意力轉(zhuǎn)向填補出現(xiàn)的 Web 服務(wù)體系結(jié)構(gòu)的各種漏洞。即,由于基于 SOAP 應(yīng)用即將迅速發(fā)展的潛力,他們需要一個描述此類服務(wù)的機(jī)制和一旦部署了此類服務(wù)就要定位服務(wù)的機(jī)制。在去年九月,Microsoft、IBM 和 Ariba 共同公布了通用描述、發(fā)現(xiàn)和集成(UDDI [請參閱參考資料]),這就為發(fā)現(xiàn)部署在因特網(wǎng)上 Web 服務(wù)提供了一個開放的規(guī)范和一整套工具。然后,僅僅是幾星期的時間,這三個公司又公布了 Web 服務(wù)描述語言(WSDL [請參閱參考資料]),它是一種描述基于 SOAP Web 服務(wù)能力和技術(shù)細(xì)節(jié)的 XML 語法,這種服務(wù)允許動態(tài)跨平臺集成來實現(xiàn) SOAP。

在本專欄以后的部分中,我想探討如何把這三個受到稱贊的、具有不同的技術(shù)的每個規(guī)范組合起來以提供 Web 服務(wù)體系結(jié)構(gòu)的基礎(chǔ),以及 IBM 如何在在 Web 開發(fā)中把大多數(shù)優(yōu)點應(yīng)用于這個新范例中,從而占據(jù)領(lǐng)先地位。

目前形勢

研究下目前形勢通??梢宰屛覀兏玫卮_定現(xiàn)在所處的階段和發(fā)展方向?;仡? Web 服務(wù)的歷程,我很高興地說它正處于技術(shù)成熟的第一個階段 -- 即已被接受。Web 開發(fā)世界已逐漸將 Web 服務(wù)視作可行的工具,用于實現(xiàn)許多更陳舊、更大且更龐大的技術(shù)所不能完成的任務(wù):在平臺和操作系統(tǒng)之間實現(xiàn)無縫互操作性。顯然,在 Web 開發(fā)行業(yè)中,幾乎每個主要的開發(fā)商都在研究如何才能夠最大限度的利用 SOAP 和其它支持 Web 服務(wù)的技術(shù)。

今天,用 Web 服務(wù)體系結(jié)構(gòu)創(chuàng)建的應(yīng)用類型大多數(shù)都是相當(dāng)簡單的“玩具”,主要是幫助開發(fā)人員掌握相對于展示真正企業(yè)規(guī)模平臺適用性的基本概念。應(yīng)該承認(rèn),目前這種情況下仍有例外,如果仔細(xì)觀察成熟的 Web 服務(wù)工具,譬如說 Java Enterprise SDK 或 Microsoft COM+ Platform,顯然在企業(yè)開發(fā)界中仍然需要繼續(xù)努力以發(fā)揮出 Web 服務(wù)的真正潛力。

那么,這句話是什么意思呢?這意味著在企業(yè)環(huán)境中,仍需要嘗試、測試和證明 SOAP、WSDL 和 UDDI 可以發(fā)揮作用而且產(chǎn)生好的效果。它是否表示,作為一位開發(fā)人員者或技術(shù)決策者,不應(yīng)指望 Web 服務(wù)解決企業(yè)層次的問題?或者,甚至說得更徹底一些,在時間和成果已經(jīng)可以使實現(xiàn)這些標(biāo)準(zhǔn)的工具發(fā)展到成熟階段(適合于那些對于任務(wù)比較關(guān)鍵的環(huán)境)之前,您甚至不敢正視 SOAP?絕對不是這樣!如上所述,雖然我還沒有基于 Web 服務(wù)將 SOAP、WSDL 和 UDDI 部署到企業(yè)環(huán)境,此領(lǐng)域的發(fā)展和進(jìn)步就已經(jīng)非常迅猛。Enterprise-ready 工具,如 Microsoft 的 .NET 平臺和 Apache Axis Engine(這兩個工具目前仍然都在開發(fā)中)許諾將開發(fā)出構(gòu)建在企業(yè) Web 服務(wù)之上的高價值、高性能和高穩(wěn)定性的產(chǎn)品。今天通過了解和使用 SOAP,您的開發(fā)隊伍將獲得寶貴的經(jīng)驗,這將幫助他們在這個新的開發(fā)范例中獲得成功。也許同樣重要的是,他們的經(jīng)驗將幫助我們中的這些人來構(gòu)建這些工具,并完善和調(diào)整它們,使之滿足客戶的挑戰(zhàn)性需求。

適用領(lǐng)域

在上一次統(tǒng)計中,隨著支持多種操作系統(tǒng)和開發(fā)語言的不斷增長,我知道至少有 39 種不同方法可實現(xiàn) SOAP 規(guī)范。然而,它們都各自有自己的能力、支持標(biāo)準(zhǔn)和質(zhì)量控制的級別,但他們都至少有一個共同點:都知道如何創(chuàng)建和使用 SOAP Envelopes。不要低估這個事實的重要性。這僅意味著無論如何實現(xiàn)工具,或在哪里部署它,這里都有一個潛在的無縫互操作性,它允許在一個平臺上用一種語言編寫的應(yīng)用程序可以使用在另一個完全不同的平臺上以完全不同語言編寫的應(yīng)用程序的服務(wù)。

在下面并列比較了四種在 Java、Win32 和 Perl 環(huán)境中最常見的 SOAP 實現(xiàn)的特點。從分析的結(jié)果中可以得知,在特定的 SOAP 或相關(guān)的 SOAP 特性中,與其說有更多的差異不如說有更多的相似之處。這是一件好事,因為這意味著我們越來越清楚地意識到 SOAP 的真正潛力。然而,在某些情況下確實存在差異,如果不知道如何避開它們的訣竅,差異會嚴(yán)重到引起一些麻煩(那些試圖將 Microsoft 工具包與 Apache SOAP 一起使用的人可以證明)。我計劃在今后的文章中,深入的討論這些差異,請密切注意。

特性 選項 Apache SOAP 版本 2.1 SOAP::Lite Perl 版本 MS SOAP 工具包 Beta 2 遵循 SOAP 1.1 數(shù)據(jù)類型 定制編碼風(fēng)格 (是/否/有限) 有限 數(shù)組 一維 (是/否/有限) 多維 (是/否/有限) 部分 (是/否/有限) 稀疏 (是/否/有限) 多引用 (是/否/有限) 有限 有限 頭文件/主體交叉引用 (是/否/有限) 有限 有限 循環(huán)引用 (是/否/有限) 實體編碼 (是/否/有限) 容錯 Actor (是/否/有限) 有限 有限 有限 復(fù)雜的細(xì)節(jié) (是/否/有限) 支持 XML Schema 數(shù)據(jù)類型 (是/否/有限) 屬性 mustUnderstand (是/否/有限) 有限 有限 actor (是/否/有限) 有限 有限 有限 root (是/否/有限) 有限 id/href (是/否/有限) 有限 有限 HTTP M-POST (是/否/有限) 對象串行化 (是/否/有限) 支持 UTF8 (是/否/有限) 有限 傳輸 SMTP (否/全部/客戶機(jī)/服務(wù)器) 客戶機(jī) POP3 (否/全部/客戶機(jī)/服務(wù)器) 服務(wù)器 FTP (否/全部/客戶機(jī)/服務(wù)器) 客戶機(jī) TCP (否/全部/客戶機(jī)/服務(wù)器) 全部 HTTP (否/全部/客戶機(jī)/服務(wù)器) 服務(wù)器 IO (否/全部/客戶機(jī)/服務(wù)器) 全部 存取傳輸具體細(xì)節(jié)(如 cookie) (是/否) 擴(kuò)展(如壓縮或加密) (是/否)&8211; 名稱擴(kuò)展 壓縮 支持 SOAP 連接 (是/否/有限) 有限(僅語法分析) 安全性 SSL (是/否/有限) 基本/摘要認(rèn)證 (是/否/有限) 數(shù)字簽名 (是/否/有限) 管理和配置 日志 (是/否/有限) 有限 基于文件的配置 (是/否/有限) 沒有/部署(實用程序、基于 web 地訪問) (是/否/有限) N/A 消息傳遞模式 單向消息 (是/否/有限) 異步消息 (是/否/有限) 調(diào)度 類/對象的名稱空間 (是/否/有限) SOAPAction (是/否/有限) 其它 (名稱) 支持串行化 酬載生成(從描述/手工) (手冊/從描述) 兩者均有 兩者均有 兩者均有 定制串行化 (是/否/有限) 定制非串行化 (是/否/有限) 服務(wù)描述 WSDL 可讀 (是/否/有限) 可生成 (是/否/有限) 可選/必須 (可選/必須) N/A 可選 可選 必需有存根 (靜態(tài)/動態(tài)) 靜態(tài) 兩者均有,可選 動態(tài) 復(fù)數(shù)類型 (是/否/有限) N/A 其它 (名稱) 消息編碼擴(kuò)展 錯誤處理 (是/否/有限)

建立公共基礎(chǔ)

關(guān)于當(dāng)前定義和涉及 Web 服務(wù)領(lǐng)域最令人吃驚的事情不是事物進(jìn)展的速度,而是許多公司簽署了一個開發(fā)項目,共同建立一個能夠共同使用的基本互操作性的公共基礎(chǔ)。Microsoft 和 IBM 長時間以來在 Web 開發(fā)產(chǎn)業(yè)是競爭對手,但現(xiàn)在他們聯(lián)合起來,通過全面支持 SOAP、WSDL 和 UDDI 規(guī)范來確保他們的工具可以無縫地互相通信。顯然,還有很多事要做;事實上,當(dāng)我寫本文時,IBM Web 服務(wù)小組和 Apache SOAP 開發(fā)小組正忙著與 Microsoft 小組就各種實現(xiàn)中存在的互操作性問題進(jìn)行談判。

我在張貼關(guān)于 SOAP 的郵件列表上看到的最常見問題是如何使 Microsoft SOAP 客戶機(jī)或服務(wù)器與 Apache 或 IBM WSTK 客戶機(jī)或服務(wù)器通信。在這個方案中,大多數(shù)開發(fā)者所面臨的問題是總是圍繞著一定的差異或限制 Apache 和 Microsoft 所實現(xiàn)的 SOAP 規(guī)范的方法。在隨后的文章中,我將使用一個有深度的示例來展示如何做到這一點。確保下載最新版本的 Apache SOAP(至少是版本 2.1 [如果已經(jīng)下載了 IBM Web 服務(wù)工具包版本 2.1 或更高版本,那您就有了 Apache SOAP 2.1])和最新的 Microsoft's SOAP 工具包的第二個版本(請參閱參考資料)。這些所做的每一個更新都提供了已改進(jìn)的互操作性和一些其他特性,這些證明它們能夠使您的生活變得更加輕松自在。

Java 開發(fā)人員所使用的 Apache SOAP 工具也可以隨意地下載 IBM Web 服務(wù)工具包 (WSTK) 或 Web 服務(wù)開發(fā)環(huán)境 (WSDE) -- 可以擴(kuò)大和拓展 Apache SOAP 功能的兩套工具。通過 alphaWorks 提供的這些技術(shù)可以支持 WSDL 和 UDDI 以及其它一些特性和開發(fā)工具,這些可以完成 Web 服務(wù)開發(fā)平臺將具有的所有功能。

現(xiàn)在怎么辦?

下一個問題應(yīng)該是:現(xiàn)在怎么辦?我已經(jīng)簡單回顧了 Web 服務(wù)的歷史并大致了解了它現(xiàn)在所處的位置。我已經(jīng)告訴過您當(dāng)今構(gòu)建 Web 服務(wù)需要的工具所處的階段。雖然現(xiàn)在就著手構(gòu)建關(guān)于 Web 服務(wù)的整個企業(yè)來說,這還不是一個好的想法。但同時,如果您有能力去做這件事,那么這個時刻不久就會到來。我們比較了當(dāng)前可以使用的最流行的 SOAP 工具,那么當(dāng)需要在特定平臺上開發(fā) Web 服務(wù)時,知道該從那里下手。

下一步是應(yīng)該開始了解當(dāng)前可以使用的 Web 服務(wù):

如果還未準(zhǔn)備好,請閱讀關(guān)于 SOAP、WSDL 和 UDDI 規(guī)范

下載 IBM Web 服務(wù)工具包最新版本

研究工具包中提供的 Web 服務(wù)樣本

開始實現(xiàn)自己的 Web 服務(wù)

參考資料

  • 請閱讀 SOAP 版本 1.1 規(guī)范
  • 熟悉 WSDL 版本 1.1 規(guī)范
  • 在 UDDI 網(wǎng)站可以找到有關(guān) UDDI 的信息。
  • 在 IBM 的 alphaWorks 網(wǎng)站上可以找到 IBM Web 服務(wù)工具包 2.2。
  • 也可以在 alphaWorks 上預(yù)覽 IBM Web 服務(wù)開發(fā)環(huán)境。
  • IBM 還提供了 WSDL 工具包,以供下載。
  • 可以在 http://msdn.microsoft.com 上找到關(guān)于 Microsoft 的 SOAP 工具包和 .NET 的信息。
  • 請下載 Paul Kulchenko 的 SOAP::Lite Perl 模塊版本。
  • 學(xué)習(xí) Doug Tidwell 的教程 Web 服務(wù) -- Web 的下一次革命,以便了解已經(jīng)開始的 Web 服務(wù)革命。
  • 請閱讀這篇講述 Web 服務(wù)體系結(jié)構(gòu)概述的 文章。
  • 回顧 IBM UDDI4J 發(fā)行版,一個 Universal Discovery、Description 和 Integration 協(xié)議的 Java 實現(xiàn)的開放源碼。
  • 學(xué)習(xí)這個討論使用 SOAP 進(jìn)行 XML 消息傳遞的教程。

關(guān)于作者

James Snell 是一位撰稿人和開發(fā)人員,他也是 IBM Web 服務(wù)開發(fā)小組最新成員之一。他在進(jìn)入 IBM 之前,已經(jīng)具有關(guān)于定制企業(yè)應(yīng)用開發(fā)和商家對商家這些方面的背景,而且他對 Web 技術(shù)前沿方面有極大的熱情??梢酝ㄟ^ jasnell@us.ibm.com

 

 

瀏覽:Web服務(wù)內(nèi)幕,第2部分

Web服務(wù)內(nèi)幕,第3部分

Web服務(wù)內(nèi)幕,第4部分

Web服務(wù)內(nèi)幕,第5部分

Web服務(wù)內(nèi)幕,第6部分

Web服務(wù)內(nèi)幕,第7部分

Web服務(wù)內(nèi)幕,第8部分

Web服務(wù)內(nèi)幕,第9部分

Web服務(wù)內(nèi)幕,第10部分

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

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

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

咨詢:400-8352-114

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

QQ在線咨詢