Feng.Li's Java See

          抓緊時間,大步向前。
          隨筆 - 95, 文章 - 4, 評論 - 58, 引用 - 0
          數(shù)據(jù)加載中……

          架構(gòu)Web Service:什么是Web服務(wù)?

          本文是架構(gòu) Web 服務(wù)的系列文章的第二篇,從 Web 服務(wù)的技術(shù)定義開始,來探討什么是 Web 服務(wù)。首先,作者從技術(shù)角度詳細分析了 Web 服務(wù)作為 Internet 環(huán)境下的軟件組件的基本角色,從這個基本角色開始,詳細介紹了這個組件對象的包裝規(guī)范 Web Service "stack" ,并對 Web 服務(wù)的應(yīng)用做了分類,最后借助 Garnter Group 的材料考察了 Web 服務(wù)的當前發(fā)展狀況。

          在本系列的上一篇文章中,我就為什么需要 Web 服務(wù),從商業(yè)利益需求的角度進行了分析。本文將結(jié)合技術(shù)驅(qū)動的發(fā)展需求,詳細介紹從技術(shù)上來看,到底什么是 Web 服務(wù),以及 Web 服務(wù)的應(yīng)用分類。就技術(shù)角度而言,無論從哪個角度來看, Web 服務(wù)都是對象 / 組件技術(shù)在 Internet 中的延伸。

          本文所引用的資源主要包括兩類,一類是 Web 服務(wù)的技術(shù)資源網(wǎng)站,包含了大量 Web 服務(wù)的技術(shù)信息,另一類是 Web 服務(wù) “stack" 系列技術(shù)規(guī)范,他們是一個整體的技術(shù)體系,包括 UDDI SOAP WSDL XML 等。本文的最后給出了這些資源的鏈接,有興趣的讀者可以通過這些 資源鏈接 找到所需的內(nèi)容。

          Web 對象

          從外部的使用者的角度而言, Web 服務(wù)是一種部署在 Web 上的對象 / 組件,它具備以下特征:

          • 完好的封裝性 Web 服務(wù)既然是一種部署在 Web 上的對象,自然具備對象的良好封裝性,對于使用者而言,他能且僅能看到該對象提供的功能列表。
          • 松散耦合 ,這一特征也是源于對象 / 組件技術(shù),當一個 Web 服務(wù)的實現(xiàn)發(fā)生變更的時候,調(diào)用者是不會感到這一點的,對于調(diào)用者來說,只要 Web 服務(wù)的調(diào)用界面不變, Web 服務(wù)的實現(xiàn)任何變更對他們來說都是透明的,甚至是當 Web 服務(wù)的實現(xiàn)平臺從 J2EE 遷移到了 .NET 或者是相反的遷移流程,用戶都可以對此一無所知。對于松散耦合而言,尤其是在 Internet 環(huán)境下的 Web 服務(wù)而言,需要有一種適合 Internet 環(huán)境的消息交換協(xié)議。而 XML/SOAP 正是目前最為適合的消息交換協(xié)議。
          • 使用協(xié)約的規(guī)范性 ,這一特征從對象而來,但相比一般對象其界面規(guī)范更加規(guī)范化和易于機器理解。首先,作為 Web 服務(wù),對象界面所提供的功能應(yīng)當使用標準的描述語言來描述 ( 比如 WSDL) ;其次,由標準描述語言描述的服務(wù)界面應(yīng)當是能夠被發(fā)現(xiàn)的,因此這一描述文檔需要被存儲在私有的或公共的注冊庫里面。同時,使用標準描述語言描述的使用協(xié)約將不僅僅是服務(wù)界面,它將被延伸到 Web 服務(wù)的聚合、跨 Web 服務(wù)的事務(wù)、工作流等,而這些又都需要服務(wù)質(zhì)量 (QoS) 的保障。其次,我們知道安全機制對于松散耦合的對象環(huán)境的重要性,因此我們需要對諸如授權(quán)認證、數(shù)據(jù)完整性 ( 比如簽名機制 ) 、消息源認證以及事務(wù)的不可否認性等運用規(guī)范的方法來描述、傳輸和交換。最后,在所有層次的處理都應(yīng)當是可管理的,因此需要對管理協(xié)約運用同樣的機制。
          • 使用標準協(xié)議規(guī)范 ,作為 Web 服務(wù),其所有公共的協(xié)約完全需要使用開放的標準協(xié)議進行描述、傳輸和交換。這些標準協(xié)議具有完全免費的規(guī)范,以便由任意方進行實現(xiàn)。一般而言,絕大多數(shù)規(guī)范將最終有 W3C OASIS 作為最終版本的發(fā)布方和維護方。
          • 高度可集成能力 。由于 Web 服務(wù)采取簡單的、易理解的標準 Web 協(xié)議作為組件界面描述和協(xié)同描述規(guī)范,完全屏蔽了不同軟件平臺的差異,無論是 CORBA DCOM 還是 EJB 都可以通過這一種標準的協(xié)議進行互操作,實現(xiàn)了在當前環(huán)境下最高的可集成性。

          Web Service "Stack"

          在前一節(jié)中,我們已經(jīng)了解到為了完成在松散耦合的環(huán)境下的對象訪問,以及在基本對象訪問之上的諸如事務(wù)、工作流、安全機制等。實現(xiàn)一個完整的 Web 服務(wù)體系需要有一系列的協(xié)議規(guī)范來支撐。

          Figure 1. Web Service "stack"
          image002.gif

          其中,綠色部分是先前已經(jīng)定義好的并且廣泛使用的傳輸層和網(wǎng)絡(luò)層的標準: IP HTTP SMTP 等。而藍色部分是目前開發(fā)的 Web 服務(wù)的相關(guān)標準協(xié)議,包括服務(wù)調(diào)用協(xié)議 SOAP 、服務(wù)描述協(xié)議 WSDL 和服務(wù)發(fā)現(xiàn) / 集成協(xié)議 UDDI ,以及服務(wù)工作流描述語言 WSFL 。而橙色部分描述的是更高層的待開發(fā)的關(guān)于路由、可靠性以及事務(wù)等方面的協(xié)議。黃色部分是各個協(xié)議層的公用機制,這些機制一般由外部的正交機制來完成。

          從以上這個技術(shù)層次圖我們看以看到, Web 服務(wù)追求的第一目標是簡單性。可能大家會覺得很奇怪,有那么多協(xié)議,怎么能說他簡單。

          首先,這些協(xié)議本身都是簡單的,無論是 HTTP, FTP 等傳統(tǒng)的 TCP/IP 系統(tǒng)的網(wǎng)絡(luò)協(xié)議,還是 SOAP, WSDL, UDDI, WSFL 等基于 XML 的協(xié)議,他們設(shè)計原則中的一個最重要點就是力求簡單性。相信大家如果對 XML SOAP 等有深入了解的話,一定會深深體會這一點。

          其次,一個可以使用的 Web 服務(wù)應(yīng)當按照需要選用若干層次的功能,而無需所有的特性。比如在目前狀況下,一個簡單應(yīng)用可能只要使用 WSDL/SOAP 就可以架構(gòu)一個符合規(guī)范的 Web 服務(wù)了。

          最后,所有的機制完全是基于現(xiàn)有的技術(shù),并沒有創(chuàng)造一個完全的新體系。無論是 IPv4 HTTP FTP 這些現(xiàn)有的網(wǎng)絡(luò)協(xié)議,還是 SOAP WSDL 等這些基于 XML 而定義的協(xié)議都是遵循著一個原則:繼承原有的被廣泛接受的技術(shù),這樣才能使得 Web 服務(wù)被廣泛接受。

          Web 服務(wù)的類別

          綜合當今的 Web 應(yīng)用以及 Web 服務(wù)的特點,我們認為 Web 服務(wù)實施的領(lǐng)域可以分為四類:

          • Business-Oriented Web Service: 該類服務(wù)針對的是那些面向企業(yè)應(yīng)用服務(wù),包括企業(yè)內(nèi)部的 ERP 系統(tǒng),企業(yè)間的 SCM/CRM 等系統(tǒng)。當這些系統(tǒng)以 Web 服務(wù)的形式在網(wǎng)絡(luò) (Internet intranet) 中出現(xiàn)時,企業(yè)內(nèi)的應(yīng)用集成將更容易,而在企業(yè)間的眾多合作伙伴的系統(tǒng)對接也將不再是無法完成的任務(wù)。目前現(xiàn)有的解決方案和產(chǎn)品的提供商有 Bowstreet Epicentric 等。
          • Consumer-Oriented Web Service: 此類服務(wù)針對的是那些原先的 B2C 的網(wǎng)站的改造,為這些 Browser-Oriented Web 應(yīng)用增加 ( 注意是增加 ) Web 服務(wù)的應(yīng)用界面,使得第三方的桌面工具或其自身提供的增值的桌面工具能夠利用更優(yōu)秀的用戶界面提供跨越多個 B2C 服務(wù)的桌面服務(wù)。這將使得用戶使用 Internet 更為方便,能夠獲得更加便捷的服務(wù)。比如我們完全就可以在個人理財桌面系統(tǒng)中集成 ( 調(diào)用 )Internet 上的股票價格查詢 Web 服務(wù)、機票預(yù)定 Web 服務(wù)等,使得個人理財應(yīng)用的自動化程度更高。
          • Device-Oriented Web Service: 此類服務(wù)的使用終端一般是手持設(shè)備和日用家電,對于前者而言,可以在不用修改網(wǎng)絡(luò)服務(wù)的體系架構(gòu)的前提下,令先前的網(wǎng)絡(luò)服務(wù)支持除 PC 以外的各種終端,比如 Palm PocketPC 、手機等。如此,那些天氣預(yù)報服務(wù)、 Email 服務(wù)、主動信息服務(wù)等將更為有效和便捷。而后者對于日用家電,則可能是一個市場的啟動期,有了 Web 服務(wù)作為基礎(chǔ)框架,智能型的日用家電將真正獲得標準的支持,從而有了廣泛使用的可能。
          • System-Oriented Web Service: 一些傳統(tǒng)意義上的系統(tǒng)服務(wù),比如用戶權(quán)限認證,系統(tǒng)監(jiān)控等,如果被遷移到全球范圍的 Internet 上,或者企業(yè)內(nèi)部的 intranet 上,其作用范圍將從單個系統(tǒng)或局部網(wǎng)絡(luò)拓展到整個企業(yè)網(wǎng)絡(luò)或整個 Internet 。如此,基于同一系統(tǒng)服務(wù)的不同應(yīng)用將得以在整個 Internet 環(huán)境中部署,譬如跨國企業(yè)的所有在線服務(wù)可以使用同一個用戶權(quán)限認證 Web 服務(wù)。

          Web 服務(wù) : 當今的技術(shù)最亮點

          Figure 2. Web 服務(wù)的當前發(fā)展狀況
          image003.gif

          以上這幅圖是 Gartner Group 在研究了所有 IT 主流時尚技術(shù)的發(fā)展道路后,作出的抽象模型。 Y 軸表明技術(shù)的受關(guān)注程度,而 X 軸則表示技術(shù)的應(yīng)用的成熟度。每一項技術(shù)在從出現(xiàn)到成熟的整個過程都將沿著圖中的曲線前進,而且典型地,都將被劃分為五個階段:

          • 技術(shù)顯現(xiàn):一門技術(shù)被發(fā)明或定義之后,開始進入公眾的視野;
          • 不斷膨脹的期望期:由于該項技術(shù)的劃時代的突破,使人們對這項技術(shù)有著無比美好的想象和期望,這一階段類似 " 網(wǎng)絡(luò)的泡沫器 "
          • 希望破滅之后的醒悟期:由于每項技術(shù)都不是萬能的,真正獲得使用仍然需要務(wù)實的加以應(yīng)用研究,因此此時人們發(fā)現(xiàn)這項技術(shù)似乎并沒有期望中那么有用,這一階段類似 " 網(wǎng)絡(luò)的泡沫破滅 "
          • 豁然開朗的應(yīng)用發(fā)展期:經(jīng)過了一個階段的開發(fā)和研究,該項技術(shù)終于走上了良性發(fā)展的軌道,越來越多的人接受并使用了該項技術(shù);
          • 大量的工業(yè)化生產(chǎn)期:該項技術(shù)成為業(yè)界主流,大量應(yīng)用在具體的環(huán)境中。

          posted on 2007-03-28 10:57 小鋒 閱讀(312) 評論(0)  編輯  收藏 所屬分類: J2EE

          主站蜘蛛池模板: 邳州市| 堆龙德庆县| 仲巴县| 乐山市| 怀柔区| 同江市| 家居| 涿鹿县| 桃园市| 边坝县| 浦江县| 安化县| 安泽县| 桑植县| 咸宁市| 涿州市| 襄汾县| 沂水县| 康乐县| 黄冈市| 云阳县| 五河县| 应城市| 绥江县| 高雄县| 广宗县| 依安县| 新田县| 象州县| 桃江县| 阳江市| 东方市| 潢川县| 荔浦县| 平邑县| 安溪县| 鄂托克旗| 永清县| 乌审旗| 牟定县| 临颍县|