監(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)閉

技術(shù)刨析:傳統(tǒng)應(yīng)用與Web服務(wù)的接口

申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114

AMTeam.org

技術(shù)刨析:傳統(tǒng)應(yīng)用與Web服務(wù)的接口

Web應(yīng)用的不斷發(fā)展,使人們發(fā)現(xiàn)在Web應(yīng)用和傳統(tǒng)桌面應(yīng)用(比如企業(yè)內(nèi)部管理系統(tǒng)、辦公自動(dòng)化系統(tǒng)等)之間存在著連接的鴻溝。他們不得不重復(fù)地將數(shù)據(jù)從Web應(yīng)用遷移到傳統(tǒng)桌面應(yīng)用,又從傳統(tǒng)桌面應(yīng)用將數(shù)據(jù)遷移到Web應(yīng)用。這成為阻礙Web應(yīng)用進(jìn)入主流工作流的一個(gè)巨大障礙。

Internet的發(fā)展,以及基于Internet的B2B電子商務(wù)的不斷發(fā)展,為各種類(lèi)型的商業(yè)實(shí)體提供了發(fā)現(xiàn)新客戶、供應(yīng)流、新服務(wù)的各種機(jī)會(huì),體現(xiàn)了Internet巨大的價(jià)值。但是,在B2B的高速發(fā)展中,有一個(gè)主要的屏障阻礙了電子商務(wù)向開(kāi)放的全球一體化的貿(mào)易模式發(fā)展。

目前,大多數(shù)電子商務(wù)的應(yīng)用與基于Web的商業(yè)服務(wù)在處理購(gòu)買(mǎi)者、供應(yīng)商、交易市場(chǎng)和服務(wù)提供者的聯(lián)系方式上各不相同。如何將這些應(yīng)用方便、低代價(jià)地連接在一起,從而實(shí)現(xiàn)大范圍的、跨企業(yè)實(shí)體的商務(wù)應(yīng)用系統(tǒng)對(duì)接,這是擺在開(kāi)發(fā)人員面前的一大問(wèn)題。不同的應(yīng)用(尤其是不同企業(yè)的)使用的開(kāi)發(fā)語(yǔ)言不同,部署的平臺(tái)不同,通訊協(xié)議和對(duì)外交換的數(shù)據(jù)格式也有差異。如何解決語(yǔ)言差異、平臺(tái)差異、協(xié)議差異和數(shù)據(jù)差異帶來(lái)的高代價(jià)系統(tǒng)集成是這個(gè)問(wèn)題的關(guān)鍵。

從1998年開(kāi)始發(fā)展的XML及其相關(guān)技術(shù),被證明有可能解決以上這個(gè)問(wèn)題。近期開(kāi)始蓬勃發(fā)展的Web服務(wù)技術(shù)(Web Services Technology)正是基于XML技術(shù)、針對(duì)這一問(wèn)題的最佳解決方案。XML Web服務(wù)是當(dāng)今IT業(yè)界關(guān)注的焦點(diǎn)。Web服務(wù)技術(shù)主要目標(biāo)就是在現(xiàn)有各種平臺(tái)基礎(chǔ)上構(gòu)筑一個(gè)通用的平臺(tái)無(wú)關(guān)、語(yǔ)言無(wú)關(guān)的技術(shù)層,各種不同平臺(tái)之上的應(yīng)用依靠這個(gè)技術(shù)層來(lái)實(shí)施彼此的連接和集成。如果需要用一句話來(lái)概括Web服務(wù)技術(shù)與傳統(tǒng)Web應(yīng)用技術(shù)的差異的話,就是傳統(tǒng)Web應(yīng)用技術(shù)解決的問(wèn)題是如何讓人來(lái)使用Web應(yīng)用提供的服務(wù),而Web服務(wù)技術(shù)則要解決如何讓計(jì)算機(jī)系統(tǒng)使用Web應(yīng)用所提供的服務(wù)。我們知道,在PC的軟件系統(tǒng)中除桌面應(yīng)用外,還有很多底層的Service(可以參照Windows NT/2000中的對(duì)應(yīng)概念)為應(yīng)用提供基礎(chǔ)服務(wù)。Web服務(wù)同樣也可以看成是為應(yīng)用提供基礎(chǔ)服務(wù),不同點(diǎn)在于可以被自由地部署在Internet上,使用Web服務(wù)技術(shù)實(shí)施訪問(wèn)。

構(gòu)筑Web服務(wù)的技術(shù)家族主要成員有XML Schema、SOAP、WSDL和UDDI,它們都是完全基于新一代Internet種子技術(shù)XML的。XML Schema為在不同系統(tǒng)(Web服務(wù))之間交換數(shù)據(jù)提供了一個(gè)核心的數(shù)據(jù)建模工具。SOAP為在不同系統(tǒng)之間實(shí)施平臺(tái)無(wú)關(guān)的交互定義了一套基本的元規(guī)則,WSDL則是描述Web服務(wù)界面的基本工具,依靠Web服務(wù)的交互界面就能被系統(tǒng)自動(dòng)處理。UDDI是在動(dòng)態(tài)服務(wù)集成解決方案中的首次嘗試。這組技術(shù)使得底層平臺(tái)對(duì)應(yīng)用交互是透明的,并且應(yīng)用的互操作能力得到了前所未有的提升。

Web服務(wù)技術(shù)帶動(dòng)了現(xiàn)代計(jì)算機(jī)技術(shù)的革命。

商業(yè)需求驅(qū)動(dòng)Web服務(wù)

現(xiàn)在,電子商務(wù)發(fā)展的重心已經(jīng)從過(guò)去的.COM的模式,轉(zhuǎn)到傳統(tǒng)企業(yè)電子商務(wù)化進(jìn)程中來(lái)。既然是企業(yè)的電子商務(wù)化,模式是否嶄新是次要的,能否為企業(yè)帶來(lái)經(jīng)濟(jì)利益是主要的。在規(guī)劃企業(yè)電子商務(wù)應(yīng)用的時(shí)候,企業(yè)管理人員和系統(tǒng)架構(gòu)師更多關(guān)注的是該電子商務(wù)應(yīng)用是否能為企業(yè)帶來(lái)直接的經(jīng)濟(jì)收益、是否有利于削減某方面的開(kāi)支、是否能夠優(yōu)化資源使用等,這些都是由企業(yè)的商業(yè)利益驅(qū)動(dòng)的。在這一輪的電子商務(wù)發(fā)展中,技術(shù)完全是為商業(yè)服務(wù)的,任何脫離商業(yè)需求的“新”技術(shù)必然是毫無(wú)用武之地。

系統(tǒng)架構(gòu)師們廣泛考證,在對(duì)企業(yè)運(yùn)作機(jī)制經(jīng)過(guò)務(wù)實(shí)的調(diào)研后,總結(jié)出了7種當(dāng)前最有價(jià)值進(jìn)行實(shí)施的電子商務(wù)應(yīng)用,它們是:

1. 企業(yè)門(mén)戶(Portal);

2. 網(wǎng)上連鎖商店(Storefront);

3. 集團(tuán)內(nèi)聯(lián)網(wǎng)(Intranet)與知識(shí)庫(kù)(Knowledge Base);

4. 供應(yīng)鏈(Supply Chain)管理;

5. 客戶服務(wù)(Customer Service);

6. 分銷(xiāo)(Distribution)管理;

7. 提供ASP(Application Service Provider)服務(wù)。

為了實(shí)施這些電子商務(wù)應(yīng)用,不外乎采用下面幾種手段:由自己的IT部門(mén)具體計(jì)劃并實(shí)施;外包給軟件公司或解決方案提供商計(jì)劃并實(shí)施,當(dāng)然解決方案或?qū)嵤┯?jì)劃中可能會(huì)包含平臺(tái)軟件或?qū)S密浖K的采購(gòu)。然而,無(wú)論自身的IT部門(mén)還是外包的解決方案提供商,給出的實(shí)施計(jì)劃都應(yīng)該是正式運(yùn)營(yíng)前的。一旦應(yīng)用被部署后,由于商務(wù)環(huán)境和商務(wù)需求的改進(jìn)和不斷變化,這些電子商務(wù)應(yīng)用不可避免地需要被修訂和更新,以符合新的電子商務(wù)流程。而到最后,企業(yè)的管理人員甚至?xí)霝槠髽I(yè)的員工、客戶及合作伙伴分別定制具體應(yīng)用,以獲得最大的商業(yè)利益,并保持競(jìng)爭(zhēng)力。

在這些應(yīng)用更新中,下面三個(gè)可能是最主要的、也是最常發(fā)生的:

1. 增加新的電子商務(wù)應(yīng)用,這常常會(huì)每幾個(gè)星期或每幾個(gè)月發(fā)生一次;

2. 對(duì)電子商務(wù)的流程進(jìn)行更改,這常常每周或每幾天發(fā)生一次;

3. 應(yīng)用戶的需求進(jìn)行更改,甚至每個(gè)小時(shí)都會(huì)發(fā)生,尤其是當(dāng)需要為每個(gè)客戶、每個(gè)合作伙伴或每個(gè)企業(yè)員工都定制首選的電子商務(wù)應(yīng)用的時(shí)候。

經(jīng)常的應(yīng)用更新是當(dāng)今電子商務(wù)應(yīng)用部署所面臨的最大問(wèn)題。如何提升企業(yè)的響應(yīng)能力,削減響應(yīng)開(kāi)支,提升企業(yè)的競(jìng)爭(zhēng)力,是所有的信息化企業(yè)必須面對(duì)的問(wèn)題。

復(fù)雜系統(tǒng)對(duì)接是不妥的解決方案

為了達(dá)到保持企業(yè)核心競(jìng)爭(zhēng)力的目的,大部分企業(yè)在IT上投入了極多的資金和資源,那么他們的選擇是否正確呢?在商務(wù)上無(wú)疑是正確的。“沒(méi)有電子商務(wù)將等于無(wú)商可務(wù)”,可是他們采取的方法正確嗎?

首先讓我們來(lái)看一看目前大多數(shù)企業(yè)是如何操作的。

目前,在構(gòu)建電子商務(wù)應(yīng)用的時(shí)候,程序員們一般都是采用“獨(dú)立解決方案”來(lái)實(shí)施的。也就是說(shuō),對(duì)于每個(gè)應(yīng)用都是為需要的企業(yè)資源或外部資源編寫(xiě)連接代碼,使應(yīng)用得以運(yùn)行。這些資源包括:傳統(tǒng)系統(tǒng)(Legacy Systems)、數(shù)據(jù)庫(kù)、Web應(yīng)用及Web資源,以及正在不斷涌現(xiàn)的Web服務(wù)。

程序員還需要編寫(xiě)更多的代碼,使大量的用戶能夠訪問(wèn)每個(gè)應(yīng)用。例如通過(guò)公司的Web站點(diǎn),使用公司內(nèi)部的桌面應(yīng)用程序等等。由于這些應(yīng)用都是“辛苦”編程的產(chǎn)物,幾乎很難再定制。當(dāng)需要融入新的電子商務(wù)流程時(shí),需要為額外的用戶群提供訪問(wèn)界面,需要繼承不同的電子商務(wù)應(yīng)用,為用戶提供更完整的增值服務(wù)。所有的這一切,都不得不從最初的系統(tǒng)設(shè)計(jì)開(kāi)始做起。因?yàn)樗械膽?yīng)用都是從一次性開(kāi)發(fā)的角度實(shí)施的,應(yīng)用的每一個(gè)更改都需要由特定的程序員來(lái)完成。這樣,通過(guò)跨應(yīng)用集成的方式實(shí)現(xiàn)電子商務(wù)應(yīng)用的重用變得異常困難。

由于每個(gè)應(yīng)用都有其自己特有的基礎(chǔ)架構(gòu),這些應(yīng)用在部署、更改和維護(hù)上的代價(jià)都異常高昂。企業(yè)不得不為每套應(yīng)用配置特有的專(zhuān)業(yè)技術(shù)人員,并保持與不同技術(shù)供應(yīng)商或解決方案供應(yīng)商的密切聯(lián)系。這些應(yīng)用既不能方便地繼承,也不能隨著企業(yè)商務(wù)的規(guī)模擴(kuò)展而方便地實(shí)現(xiàn)應(yīng)用的規(guī)模擴(kuò)展。

我們很清楚地認(rèn)識(shí)到,即使只有一個(gè)電子商務(wù)應(yīng)用,創(chuàng)建、維護(hù)和定制的代價(jià),以及復(fù)雜度就已經(jīng)是如此驚人了,何況要涉及多個(gè)這樣的應(yīng)用,其代價(jià)之高是可想而知的。

讓我們來(lái)考察當(dāng)企業(yè)部署若干個(gè)這樣的電子商務(wù)應(yīng)用的情形:

第一個(gè)應(yīng)用,企業(yè)的為之付出的總的費(fèi)用應(yīng)該是該應(yīng)用開(kāi)發(fā)和部署費(fèi)用,以及運(yùn)營(yíng)時(shí)態(tài)的維護(hù)和更新費(fèi)用。

第二個(gè)應(yīng)用,應(yīng)用的開(kāi)發(fā)和部署費(fèi)用是一樣的,但是企業(yè)需要為之花費(fèi)額外的集成費(fèi)用,同時(shí)由于整個(gè)企業(yè)應(yīng)用環(huán)境變得更加復(fù)雜,運(yùn)營(yíng)時(shí)態(tài)的維護(hù)和更新費(fèi)用可能呈指數(shù)形式增加。

同樣,當(dāng)?shù)谌齻€(gè)、第四個(gè)應(yīng)用被部署后,企業(yè)所支出的費(fèi)用可能是高得驚人。

這種電子商務(wù)應(yīng)用的實(shí)際運(yùn)營(yíng)狀況,非但無(wú)法令企業(yè)商務(wù)規(guī)模迅速增長(zhǎng),甚至?xí)斐上喾吹挠绊?。因?yàn)榇藭r(shí),IT部門(mén)不得不雇傭更多的員工和花費(fèi)更多的資金來(lái)管理這些復(fù)雜而紛亂的應(yīng)用,并維護(hù)多種承載應(yīng)用的基礎(chǔ)架構(gòu)。

早先出現(xiàn)的電子商務(wù)技術(shù),比如EDI、Web EDI (也許是基于XML的)、內(nèi)容服務(wù)器、應(yīng)用服務(wù)器、EAI(Enterprise Application Integration),以及那些為創(chuàng)建企業(yè)門(mén)戶和其它單個(gè)電子商務(wù)應(yīng)用(上面提到的7種應(yīng)用)而設(shè)計(jì)的獨(dú)立解決方案,都無(wú)法解決這個(gè)問(wèn)題。之所以無(wú)能為力,是因?yàn)樗鼈兌际腔趶?fù)雜應(yīng)用連接的,不具備良好集成能力的應(yīng)用開(kāi)發(fā)模式,它們都是通過(guò)程序代碼實(shí)現(xiàn)復(fù)雜應(yīng)用連接、電子商務(wù)應(yīng)用及其它信息系統(tǒng)的。這樣的實(shí)現(xiàn)方式既無(wú)法有效地解決經(jīng)常發(fā)生的因電子商務(wù)流程的更改而觸發(fā)的大額費(fèi)用,也無(wú)法有效地解決各類(lèi)用戶的定制需求。

Web服務(wù)和商業(yè)Web

電子商務(wù)需要擺脫獨(dú)立解決方案的實(shí)現(xiàn)模式,需要舍棄復(fù)雜系統(tǒng)連接的實(shí)現(xiàn)方法。一個(gè)有效的電子商務(wù)應(yīng)用不應(yīng)該是僅僅基于程序員和那些復(fù)雜的代碼的。對(duì)于電子商務(wù)而言,傳統(tǒng)的由程序員主導(dǎo)的、由里向外的開(kāi)發(fā)模式,應(yīng)當(dāng)被由用戶主導(dǎo)的、由外向里的開(kāi)發(fā)模式取代。冗長(zhǎng)的、串行開(kāi)發(fā)循環(huán),應(yīng)當(dāng)被即時(shí)的、快速的應(yīng)用裝配所取代,并且這樣的應(yīng)用應(yīng)具備較高的可定制性。

基于XML技術(shù)的Web服務(wù)正是解決這一問(wèn)題的最佳手段。Web服務(wù)的使用,將改變目前的開(kāi)發(fā)模式和應(yīng)用部署的費(fèi)用規(guī)模。各種Web服務(wù)分別實(shí)現(xiàn)了一定的電子商務(wù)功能,將各種電子商務(wù)的Web服務(wù)進(jìn)行組合和集成,以創(chuàng)建動(dòng)態(tài)電子商務(wù)應(yīng)用。Web服務(wù)能夠統(tǒng)一封裝信息、行為、數(shù)據(jù)表現(xiàn),以及商務(wù)流程,而無(wú)需考慮應(yīng)用所在的環(huán)境使用何種系統(tǒng)和設(shè)備。

使用Web服務(wù),企業(yè)能夠通過(guò)抽象和混合將自身的電子商務(wù)組件化。當(dāng)一個(gè)企業(yè)的核心競(jìng)爭(zhēng)力被組件化之后,這些核心競(jìng)爭(zhēng)力就能夠很方便地在不同的企業(yè)之間共享,同時(shí)架構(gòu)跨企業(yè)的電子商務(wù)應(yīng)用,形成商務(wù)Web。

在商務(wù)Web中,不需要因?yàn)槭褂秒娮由虅?wù)應(yīng)用而購(gòu)買(mǎi)所承載的應(yīng)用軟件。Web服務(wù)是一種無(wú)需購(gòu)買(mǎi)并部署的組件,這種組件是被一次部署到Internet中,然后到處可用的一種新型組件,所有應(yīng)用只需要能夠連入Internet,就可以使用和集成Web服務(wù)。采用Web服務(wù)開(kāi)發(fā)的代價(jià)顯著降低了,程序員無(wú)需與多種平臺(tái)進(jìn)行交互,只需要與一種組件進(jìn)行交互,即Web服務(wù)。Web服務(wù)的調(diào)用界面完全采用標(biāo)準(zhǔn)的XML及相關(guān)技術(shù),代碼實(shí)現(xiàn)上的代價(jià)也顯著下降。采用Web服務(wù)部署和集成的費(fèi)用大大降低,流程也無(wú)需更改大量代碼,甚至通過(guò)工具支持根本無(wú)需更改程序代碼。隨著新的Web服務(wù)技術(shù),如WSDL/UDDI/WSFL的大量使用,Web服務(wù)在運(yùn)行時(shí)態(tài)進(jìn)行動(dòng)態(tài)裝配將成為現(xiàn)實(shí),甚至可以應(yīng)用戶的需要實(shí)時(shí)裝配。

Web服務(wù)技術(shù)

Web服務(wù)是一種部署在Web上的對(duì)象(Web Object),因此具有對(duì)象技術(shù)承諾的所有優(yōu)點(diǎn)。Web服務(wù)的基石是以XML為主的開(kāi)放Web服務(wù)技術(shù),因此具有比任何現(xiàn)有的對(duì)象技術(shù)更好的開(kāi)放性。

Web對(duì)象

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

1. 完好的封裝性。Web服務(wù)既然是一種部署在Web上的對(duì)象,自然具備對(duì)象的良好封裝性。對(duì)于使用者而言,它能且僅能看到該對(duì)象提供的功能列表。

2. 松散耦合。這一特征也是源于對(duì)象/組件技術(shù),當(dāng)一個(gè)Web服務(wù)的實(shí)現(xiàn)發(fā)生變更的時(shí)候,調(diào)用者是不會(huì)感到這一點(diǎn)的。對(duì)于調(diào)用者來(lái)說(shuō),只要Web服務(wù)的調(diào)用界面不變,它的實(shí)現(xiàn)任何變更都是透明的,甚至當(dāng)Web服務(wù)的實(shí)現(xiàn)平臺(tái)從J2EE遷移到了.NET,或者是相反的遷移流程,用戶都可以對(duì)此一無(wú)所知。

從前,分布式的應(yīng)用程序邏輯需要使用分布式的對(duì)象模型,諸如:微軟的分布式組件對(duì)象模型(DCOM)、對(duì)象管理集團(tuán)的公用對(duì)象請(qǐng)求代理程序體系結(jié)構(gòu)(CORBA)或Sun的遠(yuǎn)程方法調(diào)用(RMI)。通過(guò)使用這種基本結(jié)構(gòu),開(kāi)發(fā)人員仍可擁有使用本地模型所提供的豐富資源和精確性,并可將服務(wù)置于遠(yuǎn)程系統(tǒng)中。這些系統(tǒng)有一個(gè)共同的缺陷,就是它們無(wú)法擴(kuò)展到互聯(lián)網(wǎng)上。它們要求服務(wù)客戶端與系統(tǒng)提供的服務(wù)之間必須緊密耦合,即要求一個(gè)同類(lèi)基本結(jié)構(gòu)。這樣的系統(tǒng)往往十分脆弱,如果一端的執(zhí)行機(jī)制發(fā)生變化,那么另一端便會(huì)崩潰。例如,如果服務(wù)器應(yīng)用程序的接口發(fā)生更改,那么客戶端便會(huì)崩潰。

對(duì)于松散耦合而言,尤其是在Internet環(huán)境下的Web服務(wù),需要有一種適合Internet環(huán)境的消息交換協(xié)議。XML/SOAP正是目前最為適合的消息交換協(xié)議。

3. 使用協(xié)約的規(guī)范性。這一特征從對(duì)象而來(lái),但相比一般對(duì)象其界面規(guī)范更加規(guī)范化,也易于機(jī)器理解。首先,作為Web服務(wù),對(duì)象界面所提供的功能應(yīng)當(dāng)使用標(biāo)準(zhǔn)的描述語(yǔ)言來(lái)描述(比如WSDL)。其次,由標(biāo)準(zhǔn)描述語(yǔ)言描述的服務(wù)界面應(yīng)當(dāng)是能夠被發(fā)現(xiàn)的,因此這一描述文檔需要被存儲(chǔ)在私有的或公共的注冊(cè)庫(kù)里面。同時(shí),使用標(biāo)準(zhǔn)描述語(yǔ)言描述的使用協(xié)約不僅僅是服務(wù)界面,還被延伸到Web服務(wù)的聚合、跨Web服務(wù)的事務(wù)和工作流等。這些又都需要服務(wù)質(zhì)量(QoS)的保障。再次,我們知道安全機(jī)制對(duì)于松散耦合的對(duì)象環(huán)境的重要性,因此需要對(duì)諸如授權(quán)認(rèn)證、數(shù)據(jù)完整性(比如簽名機(jī)制)、消息源認(rèn)證及事務(wù)的不可否認(rèn)性等,運(yùn)用規(guī)范的方法來(lái)描述、傳輸和交換。最后,在所有層次的處理都應(yīng)當(dāng)是可管理的,因此需要對(duì)管理協(xié)約運(yùn)用同樣的機(jī)制。

4. 使用標(biāo)準(zhǔn)協(xié)議規(guī)范。作為Web服務(wù),其所有公共的協(xié)約完全需要使用開(kāi)放的標(biāo)準(zhǔn)協(xié)議進(jìn)行描述、傳輸和交換。這些標(biāo)準(zhǔn)協(xié)議具有完全免費(fèi)的規(guī)范,以便由任意方進(jìn)行實(shí)現(xiàn)。一般而言,絕大多數(shù)規(guī)范將W3C或OASIS作為最終版本的發(fā)布方和維護(hù)方。

5. 高度可集成能力。由于Web服務(wù)采取簡(jiǎn)單的、易理解的標(biāo)準(zhǔn)Web協(xié)議作為組件界面描述和協(xié)同描述規(guī)范,完全屏蔽了不同軟件平臺(tái)的差異,因此無(wú)論是CORBA、DCOM,還是EJB都可以通過(guò)這一種標(biāo)準(zhǔn)的協(xié)議進(jìn)行互操作,實(shí)現(xiàn)在當(dāng)前環(huán)境下最高的可集成性。

Web Services “Stack”

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

圖1展示了整個(gè)Web服務(wù)技術(shù)體系Web Services“Stack”。其中,底部?jī)蓪拥氖窍惹耙呀?jīng)定義好的并且廣泛使用的傳輸層和網(wǎng)絡(luò)層的標(biāo)準(zhǔn)IP、HTTP、SMTP等。中間部分是目前開(kāi)發(fā)的Web服務(wù)的相關(guān)標(biāo)準(zhǔn)協(xié)議,包括服務(wù)調(diào)用協(xié)議SOAP、服務(wù)描述協(xié)議WSDL和服務(wù)發(fā)現(xiàn)協(xié)議UDDI、WS-Inspection,以及服務(wù)工作流描述語(yǔ)言WSFL、Web服務(wù)的安全協(xié)議和路由協(xié)議等。右邊部分是各個(gè)協(xié)議層的公用機(jī)制,這些機(jī)制一般由外部的正交機(jī)制來(lái)完成。

 

  圖1 Web服務(wù)技術(shù)體系

從以上這個(gè)技術(shù)層次圖可以看到,Web服務(wù)追求的第一目標(biāo)是簡(jiǎn)單性。

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

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

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

Web服務(wù)體系架構(gòu)

Web服務(wù)技術(shù)是為在Internet環(huán)境下,松散耦合的Web服務(wù)之間互相調(diào)用、互相集成而設(shè)計(jì)的技術(shù)框架。以XML/SOAP/WSDL/UDDI為主干的Web服務(wù)技術(shù),賦予了Web服務(wù)一個(gè)與傳統(tǒng)對(duì)象調(diào)用技術(shù)相似但又不太相同的體系架構(gòu)。

在討論體系架構(gòu)之前,我們先弄清楚兩個(gè)概念,即Web Services和Web Service。從英文字面上來(lái)看,兩個(gè)術(shù)語(yǔ)沒(méi)有什么差別,一個(gè)是復(fù)數(shù),一個(gè)是單數(shù)。然而在Web服務(wù)的專(zhuān)業(yè)領(lǐng)域,Web Services是指整個(gè)架構(gòu)Web服務(wù)的技術(shù)框架,比如包括XML/SOAP/WSDL/UDDI等。而Web Service是指使用Web Services構(gòu)架出來(lái)的Web服務(wù)實(shí)例。本文中,Web Services對(duì)應(yīng)的中文名稱(chēng)是Web服務(wù)技術(shù),Web Service則翻譯為Web服務(wù)。

對(duì)于Web服務(wù)而言,其標(biāo)準(zhǔn)的、或者說(shuō)是典型的體系架構(gòu)應(yīng)當(dāng)如圖2所示。

  圖2 體系架構(gòu)

在Web服務(wù)的體系架構(gòu)里,有服務(wù)提供者、服務(wù)注冊(cè)中心和服務(wù)請(qǐng)求者三個(gè)角色。服務(wù)提供者是提供最終Web服務(wù)的供應(yīng)商,它實(shí)現(xiàn)了一個(gè)Web服務(wù),并放置在在線服務(wù)器上,供別人使用。服務(wù)注冊(cè)中心是Web服務(wù)的注冊(cè)地,匯集了很多在線的Web服務(wù)。一般來(lái)說(shuō)服務(wù)提供者將Web服務(wù)安置到在線服務(wù)器之后,會(huì)將Web服務(wù)發(fā)布到服務(wù)注冊(cè)中心中去,從而使得服務(wù)注冊(cè)中心中包含了越來(lái)越多的Web服務(wù)的技術(shù)信息。

對(duì)于想要使用Web服務(wù)的服務(wù)請(qǐng)求者來(lái)說(shuō),一般首先去查詢服務(wù)注冊(cè)中心,嘗試在服務(wù)注冊(cè)中心中尋找所需要的Web服務(wù)。當(dāng)發(fā)現(xiàn)了合適的Web服務(wù)之后,將從服務(wù)注冊(cè)中心獲取這些Web服務(wù)的技術(shù)信息引用,通過(guò)這些引用找到真正的Web服務(wù)及其相關(guān)的技術(shù)信息,從而完成服務(wù)請(qǐng)求者和服務(wù)提供者之間的技術(shù)綁定。

對(duì)于這三個(gè)角色之間任意兩者的交互,使用的都是Web服務(wù)的交互方式(服務(wù)注冊(cè)中心也是以Web服務(wù)的形式來(lái)運(yùn)行的)。一般來(lái)說(shuō),可以使用SOAP。這些被調(diào)用的Web服務(wù),其調(diào)用界面都是使用WSDL來(lái)描述的。

Web服務(wù)和EAI

問(wèn)題再一次回到電子商務(wù)應(yīng)用的集成上。根本是企業(yè)內(nèi)部的EAI(Enterprise Application Integration)與企業(yè)之間的B2Bi(B2B Integration),EAI是兩者中的基礎(chǔ)。

Web服務(wù)提供了一個(gè)分布式的計(jì)算技術(shù),在Internet或者Intranet上通過(guò)使用標(biāo)準(zhǔn)的XML協(xié)議和信息格式來(lái)展現(xiàn)商業(yè)應(yīng)用服務(wù)。使用標(biāo)準(zhǔn)的XML協(xié)議,使得Web服務(wù)平臺(tái)、語(yǔ)言和發(fā)布者能夠互相獨(dú)立。這是EAI解決方案的一個(gè)理想的候選者。

通過(guò)開(kāi)放的Internet標(biāo)準(zhǔn),Web服務(wù)描述語(yǔ)言(WSDL,用于服務(wù)描述)統(tǒng)一描述、發(fā)現(xiàn)和集成規(guī)范(UDDI,用于服務(wù)的發(fā)布和集成)、簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(SOAP,用于服務(wù)調(diào)用)和Web服務(wù)流語(yǔ)言(WSFL,用來(lái)定義工作流,這尚不是一個(gè)W3C標(biāo)準(zhǔn)),Web服務(wù)消除了現(xiàn)存解決方案(如CORBA和DCOM)中的互用性問(wèn)題。

Web服務(wù)不是EAI,或者只是EAI的一部分,它是另外一個(gè)技術(shù)。Web服務(wù)能夠使EAI成為真正可能的和便捷實(shí)施的、同時(shí)又引人注目的解決方案。Web服務(wù)能徹底地改變傳統(tǒng)的EAI中點(diǎn)對(duì)點(diǎn)的集成處理方式。

使用Web服務(wù),通過(guò)松散的應(yīng)用集成,一個(gè)企業(yè)僅僅實(shí)現(xiàn)EAI的一個(gè)子集即能取得實(shí)效。與之相反,EAI實(shí)現(xiàn)一個(gè)全盤(pán)的方案,要緊密地集成和聯(lián)系支持公司業(yè)務(wù)的所有系統(tǒng)和應(yīng)用。在公司內(nèi)部不同的業(yè)務(wù)系統(tǒng)和技術(shù)單體中,可能需要花費(fèi)數(shù)年的持續(xù)努力。

Web服務(wù)以一種松散的服務(wù)捆綁集合形式(也可以說(shuō)是一個(gè)特別得解決方案),快速、低代價(jià)地開(kāi)發(fā)、發(fā)布、發(fā)現(xiàn)和動(dòng)態(tài)綁定應(yīng)用。就當(dāng)代Web服務(wù)的技術(shù)發(fā)展水平來(lái)看,Web服務(wù)可以實(shí)現(xiàn)應(yīng)用程序之間的函數(shù)或方法級(jí)的集成。它們不是自然的基于事務(wù)的,僅提供了基本的“請(qǐng)求/響應(yīng)”功能。在下一代的Web服務(wù)中,在功能上和技術(shù)上都會(huì)更先進(jìn),將會(huì)提供用戶接口封裝和安全性,它們將能夠包裝一個(gè)應(yīng)用程序,并且把它嵌入到其它的應(yīng)用程序中去。

現(xiàn)有主要關(guān)注于應(yīng)用集成的EAI解決方案將不得不因此而改變。將來(lái),包裝好的應(yīng)用程序?qū)⑹褂萌鏧ML、SOAP、WSDL和UDDI技術(shù)來(lái)把函數(shù)或方法作為Web服務(wù)的接口來(lái)顯示。因此,EAI解決方案將不得不提供一個(gè)對(duì)服務(wù)集成的廣泛支持,而不僅僅是應(yīng)用集成。

傳統(tǒng)EAI解決方案和Web服務(wù)之間的顯著的不同

下面是傳統(tǒng)的EAI解決方案和Web服務(wù)之間的一些基本不同點(diǎn)。

注意:有一些不同點(diǎn)所描述的Web服務(wù)可能并非是Web服務(wù)目前有的特性,而是考慮了Web服務(wù)被提議的未來(lái)的改進(jìn)。

1. 簡(jiǎn)單性,相比于典型的EAI解決方案(也許包括分布式技術(shù)如DCOM和CORBA),Web服務(wù)更便于設(shè)計(jì)、開(kāi)發(fā)、維護(hù)和使用。既然開(kāi)發(fā)和使用Web服務(wù)的平臺(tái)框架已經(jīng)準(zhǔn)備好了,創(chuàng)建跨越多個(gè)應(yīng)用程序的商務(wù)流程處理將變得相對(duì)簡(jiǎn)單。

2. 開(kāi)放標(biāo)準(zhǔn),不像有所有權(quán)的EAI解決方案,Web服務(wù)是基于開(kāi)放標(biāo)準(zhǔn)諸如UDDI、SOAP、HTTP的。這個(gè)可能是導(dǎo)致Web服務(wù)被廣泛接受的最重要的因素。事實(shí)上,現(xiàn)存的開(kāi)放標(biāo)準(zhǔn)消除了企業(yè)為了支持新出現(xiàn)的Web技術(shù)投資的需要。

3. 靈活性,既然EAI解決方案需要點(diǎn)對(duì)點(diǎn)集成,一端的改變必須告知另外一端,這自然使集成變得非常的生硬,同時(shí)也浪費(fèi)開(kāi)發(fā)人員的時(shí)間?;赪eb服務(wù)的集成是非常靈活的,因?yàn)樗墙⒃诎l(fā)布服務(wù)的應(yīng)用程序和使用服務(wù)的應(yīng)用程序之間的松散耦合。

4. 便宜,EAI解決方案,諸如消息中介實(shí)施是非常昂貴的。而Web服務(wù)的實(shí)施則便宜而快速。

5. 范圍,EAI解決方案諸如消息中介,把應(yīng)用程序作為一個(gè)單個(gè)的實(shí)體來(lái)集成。然而Web服務(wù)允許企業(yè)把大的應(yīng)用劃分為小的獨(dú)立邏輯實(shí)體,并且進(jìn)行包裝。舉例來(lái)說(shuō),企業(yè)可以為一個(gè)ERP應(yīng)用的不同的商業(yè)組件進(jìn)行包裝,如訂單管理、接受購(gòu)買(mǎi)訂單、訂單情況、訂單確認(rèn)、賬戶接受、賬戶支付等等。

6. 高效性,已在前面幾點(diǎn)提到的Web服務(wù)允許應(yīng)用程序劃分為一些小的邏輯組件。因?yàn)樵谛×6然A(chǔ)上集成應(yīng)用程序,集成將變得更容易。這也使Web服務(wù)的EAI解決方案比傳統(tǒng)的EAI解決方案更有效率。

7. 動(dòng)態(tài),Web服務(wù)通過(guò)提供動(dòng)態(tài)的服務(wù)接口來(lái)實(shí)施一個(gè)動(dòng)態(tài)的集成。在傳統(tǒng)的EAI解決方案里都是靜態(tài)處理的。

Web服務(wù)的EAI示例

圖3展示了在一個(gè)在企業(yè)內(nèi)使用Web服務(wù)的例子。在這個(gè)例子中,應(yīng)用服務(wù)器中運(yùn)行的企業(yè)門(mén)戶從多個(gè)內(nèi)部應(yīng)用集成信息,并提供一個(gè)跨越這些應(yīng)用的業(yè)務(wù)處理的入口點(diǎn)。企業(yè)門(mén)戶應(yīng)用通過(guò)內(nèi)部應(yīng)用程序,使用私有UDDI注冊(cè)中心(Private UDDI Registry)來(lái)獲得可提供的Web服務(wù)的技術(shù)信息,并且在Intranet上調(diào)用這些服務(wù)。一些經(jīng)常被調(diào)用的Web服務(wù)的綁定信息將被企業(yè)門(mén)戶應(yīng)用緩存,這樣得以避免花費(fèi)在動(dòng)態(tài)綁定上的資源和時(shí)間。在這個(gè)例子里面,Web服務(wù)把企業(yè)門(mén)戶和CRM、ERP應(yīng)用程序松散地集成在一起。

 

  圖3 企業(yè)應(yīng)用Web服務(wù)的流程圖


流程步驟如下:

1. 登錄企業(yè)門(mén)戶之后,用戶發(fā)出請(qǐng)求信息;

2. 支持企業(yè)門(mén)戶框架的應(yīng)用程序,通過(guò)瀏覽私有UDDI注冊(cè)中心獲得關(guān)于CRM和ERP應(yīng)用的Web服務(wù)的技術(shù);

3. Web服務(wù)的位置和WSDL綁定信息被傳送給應(yīng)用服務(wù)器;

4. 應(yīng)用程序調(diào)用CRM應(yīng)用發(fā)布的Web服務(wù)得到個(gè)人的信息,如名字、身份證號(hào)碼、地址及用戶的Email,這個(gè)通訊過(guò)程是基于SOAP交互的;

5. 應(yīng)用程序調(diào)用ERP應(yīng)用發(fā)布的Web服務(wù)獲得銀行賬號(hào)信息,諸如銀行帳號(hào)號(hào)碼、結(jié)余和用戶交易歷史記錄,這個(gè)通訊過(guò)程也是基于SOAP交互的;

6. 信息被格式化后,發(fā)給起初的調(diào)用用戶。

從哪里開(kāi)始

如果企業(yè)在內(nèi)部應(yīng)用程序中使用Web服務(wù)來(lái)實(shí)施應(yīng)用集成中的項(xiàng)目,應(yīng)當(dāng)從函數(shù)、應(yīng)用程序接口(API),或者遠(yuǎn)端過(guò)程調(diào)用(RPC)級(jí)別開(kāi)始這一進(jìn)程。這將使企業(yè)內(nèi)使用和實(shí)施Web服務(wù)的IT技術(shù)人員熟悉Web服務(wù)技術(shù)。當(dāng)企業(yè)將來(lái)使用Web服務(wù)進(jìn)行外部集成(B2B集成)項(xiàng)目時(shí),有助于項(xiàng)目的有效進(jìn)行。在Intranet內(nèi)控制、管理、尋找、執(zhí)行和維護(hù)Web服務(wù),相對(duì)來(lái)說(shuō)比通過(guò)企業(yè)防火墻在Internet上使用Web服務(wù)更為容易。進(jìn)一步來(lái)說(shuō),它將幫助企業(yè)進(jìn)行比較和鑒別使用標(biāo)準(zhǔn)化和相對(duì)便宜的Web服務(wù)解決方案相對(duì)于昂貴的傳統(tǒng)的EAI解決方案哪個(gè)對(duì)提高企業(yè)的產(chǎn)出率更有幫助。

然而,要求企業(yè)拋棄現(xiàn)存的EAI底層架構(gòu),并且盲目地轉(zhuǎn)向開(kāi)發(fā)基于Web服務(wù)的解決方案來(lái)替代它是不太現(xiàn)實(shí)的。企業(yè)不會(huì)停止使用提供完整事務(wù)服務(wù)的EAI中間件框架。在使用Web服務(wù)的場(chǎng)所,不是替代(現(xiàn)在還不是),而是應(yīng)該使用Web服務(wù)來(lái)支撐現(xiàn)存的下層結(jié)構(gòu)。

經(jīng)過(guò)一段時(shí)間,Web服務(wù)將逐漸的由一個(gè)EAI解決方案進(jìn)化為一個(gè)B2BI(B2B Intergration)解決方案。

發(fā)布:2007-03-25 10:36    編輯:泛普軟件 · xiaona    [打印此頁(yè)]    [關(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在線咨詢