申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114
AMTeam.org
Web
Services和J2EE:集成中的伙伴
長(zhǎng)期以來(lái),對(duì)于如何集成遺留的系統(tǒng)一直并存著多種解決方案。Web服務(wù)的出現(xiàn)為如何利用已存在的EAI(企業(yè)應(yīng)用集成)投資帶來(lái)了曙光。Web服務(wù)可以將后端應(yīng)用和數(shù)據(jù)改造成為一種簡(jiǎn)單、可重用和長(zhǎng)生命周期的服務(wù),通過(guò)Web服務(wù),后端的應(yīng)用和數(shù)據(jù)走向了前臺(tái)。
過(guò)去,以EAI集成應(yīng)用時(shí)程序員不得不編寫(xiě)專(zhuān)用的連接程序來(lái)實(shí)現(xiàn)應(yīng)用A和應(yīng)用B的互通。但是,如果有第三方應(yīng)用C需要與A、B實(shí)現(xiàn)集成時(shí),程序員們必須在應(yīng)用A與應(yīng)用C之間以及應(yīng)用B與應(yīng)用C之間開(kāi)發(fā)新的連接程序。這樣,隨著需要集成的應(yīng)用的增多整個(gè)集成將成為一張?jiān)絹?lái)越復(fù)雜的集成網(wǎng)絡(luò),因?yàn)槲覀冃枰谌我鈨蓚€(gè)應(yīng)用之間開(kāi)發(fā)專(zhuān)用的連接程序。
在一些企業(yè)里,采用集成代理的方法可以緩解諸如EAI所帶來(lái)的負(fù)擔(dān)。所有的集成提供者都認(rèn)為采用一種依賴(lài)于私有協(xié)議的中間件作為應(yīng)用之間通信的代理是非常好的一個(gè)想法。這樣,每個(gè)應(yīng)用之間只需要一個(gè)單獨(dú)的連接器即可,應(yīng)用之間的映射關(guān)系則由代理來(lái)解決。這種集中輻射式技術(shù)最大的缺點(diǎn)就是其缺少可移植性。一旦選中了一種集成代理,那么將意味著集成中的所有的設(shè)計(jì)都不得不一直以這種集成代理作為基礎(chǔ)。
解決上面所提到的兩個(gè)問(wèn)題的一個(gè)明顯的答案就是開(kāi)發(fā)出一種能夠?qū)崿F(xiàn)系統(tǒng)松耦合從而實(shí)現(xiàn)更簡(jiǎn)單應(yīng)用集成的標(biāo)準(zhǔn)。這個(gè)標(biāo)準(zhǔn)就是Web服務(wù)技術(shù)。為了使集成框架工作得更好,建立的標(biāo)準(zhǔn)必須涵蓋服務(wù)的通信、服務(wù)描述和服務(wù)發(fā)現(xiàn)等標(biāo)準(zhǔn)。通信的標(biāo)準(zhǔn)用來(lái)限定Web服務(wù)的通信方式;服務(wù)描述標(biāo)準(zhǔn)向用戶解釋一個(gè)服務(wù)到底具有哪些功能;服務(wù)發(fā)現(xiàn)標(biāo)準(zhǔn)告訴用戶如何尋找到一個(gè)Web服務(wù)并為服務(wù)提供商提供了一種發(fā)布其Web服務(wù)的一種方法。這三種功能標(biāo)準(zhǔn)分別由SOAP
(Simple Object Access Protocol)、UDDI (Universal Description, Discovery and
Integration) 和WSDL (Web Services Description
Language)來(lái)實(shí)現(xiàn)。SOAP提供通信機(jī)制,WSDL負(fù)責(zé)服務(wù)的描述,UDDI則是發(fā)現(xiàn)服務(wù)的一種工具。
Web服務(wù)的工作方式如下:
首先,作為一個(gè)服務(wù)的制造商,公司將它的應(yīng)用想要公開(kāi)的功能進(jìn)行標(biāo)記。
接下來(lái),Web服務(wù)的服務(wù)器通過(guò)調(diào)用相應(yīng)的程序?qū)崿F(xiàn)對(duì)這些已標(biāo)記功能的包裝(Web服務(wù)的服務(wù)器通過(guò)Internet的HTTP協(xié)議和基于XML的SOAP文檔通信;SOAP是一種用來(lái)定義應(yīng)用間通信方式的協(xié)議)。
然后,公司將開(kāi)發(fā)出一個(gè)WSDL文檔用來(lái)定義服務(wù)。WSDL也是一種基于XML的技術(shù),它是Web服務(wù)功能性描述的一種協(xié)議。各個(gè)服務(wù)的制造商們將它們的Web服務(wù)加入到UDDI的目錄列表中,這個(gè)目錄列表就象是Web服務(wù)的電話本一樣。
最后,Web服務(wù)的用戶通過(guò)查詢UDDI目錄中的服務(wù)來(lái)找到自己需要調(diào)用的遠(yuǎn)程應(yīng)用。UDDI為用戶返回一個(gè)WSDL文檔,通過(guò)這個(gè)文檔用戶就可以通過(guò)某種工具的幫助創(chuàng)建自己的客戶端應(yīng)用。這個(gè)客戶端調(diào)用服務(wù)的過(guò)程與通過(guò)HTTP協(xié)議調(diào)用SOAP文本的過(guò)程沒(méi)有區(qū)別。
通過(guò)上面的介紹可以看出,Web服務(wù)是一種大量依靠XML的技術(shù),這是因?yàn)閄ML技術(shù)已經(jīng)被大部分流行的編程語(yǔ)言所支持。Web服務(wù)的這種跨平臺(tái)和跨語(yǔ)言特性可以滿足任意兩個(gè)應(yīng)用之間的通信需要。
舉個(gè)例子。假設(shè)有一個(gè)后端的COBOL應(yīng)用正在通過(guò)5270端口與一個(gè)運(yùn)行在基于Windows的Java應(yīng)用服務(wù)器上的應(yīng)用共享信息。共享的信息可能顯示在一個(gè)iMac上的Opera瀏覽器中或者顯示在Nokia手機(jī)的顯示屏上。通過(guò)Web服務(wù),你就可以以這種方式共享任何信息和應(yīng)用的功能。
Java應(yīng)用服務(wù)器和Web服務(wù)
既然標(biāo)準(zhǔn)已經(jīng)存在了,隨之而來(lái)的就是那些越來(lái)越多的對(duì)服務(wù)器的需求。這些服務(wù)器是能夠代理Web服務(wù)處理任務(wù)的一類(lèi)服務(wù)器。所以,應(yīng)用服務(wù)器的提供商們開(kāi)始在他們的商品中提供對(duì)Web服務(wù)的支持。因?yàn)榇蠖鄶?shù)的企業(yè)已經(jīng)采用應(yīng)用服務(wù)器來(lái)建立它們的Web使能應(yīng)用,所以應(yīng)用服務(wù)器就理所當(dāng)然的成為了Web服務(wù)的服務(wù)器。
目前的應(yīng)用服務(wù)器市場(chǎng)已經(jīng)證明了Sun公司的J2EE (Java 2 Enterprise
Edition)規(guī)范的成功。J2EE平臺(tái)不僅是一種技術(shù)成熟的平臺(tái)而且比它的對(duì)手Microsoft的.NET平臺(tái)更好地支持工業(yè)的標(biāo)準(zhǔn)。
J2EE應(yīng)用服務(wù)器提供了一種跨供應(yīng)商的標(biāo)準(zhǔn),這樣用戶就可以容易地將他們的J2EE應(yīng)用從一個(gè)供應(yīng)商的J2EE應(yīng)用服務(wù)器移植到另外一個(gè)供應(yīng)商的J2EE應(yīng)用服務(wù)器上。已經(jīng)證明,只需要非常小的修改或者根本不修改,J2EE應(yīng)用就可以運(yùn)行在許多不同的操作系統(tǒng)上并與Web瀏覽器集成。Java和J2EE平臺(tái)為EAI解決方案帶來(lái)了可移植性。任何投資都會(huì)帶來(lái)風(fēng)險(xiǎn),而運(yùn)行在J2EE平臺(tái)上的Web服務(wù)則可以最小化這些風(fēng)險(xiǎn)并為采用這種方案的集成商們帶來(lái)可觀的回報(bào)。
與其它的底層組件相比,J2EE的功能要更加復(fù)雜并且容易混淆。以J2EE作為應(yīng)用服務(wù)器的統(tǒng)一模式將造成性能的降低,例如,與企業(yè)后臺(tái)應(yīng)用的不兼容。
另外,J2EE規(guī)范的1.3版增加了更易于移植和重用的Java集成工具——JCA (Java Connector
Architecture)。該工具為開(kāi)發(fā)人員提供了一種開(kāi)發(fā)或者購(gòu)買(mǎi)可嵌入的Java連接器的標(biāo)準(zhǔn),該連接器通過(guò)將遺留的系統(tǒng)集成到Java應(yīng)用服務(wù)器上來(lái)實(shí)現(xiàn)遺留數(shù)據(jù)基于Internet或Intranet的共享。
為了更好的支持Web服務(wù)的部署,許多Java應(yīng)用服務(wù)器現(xiàn)在都包含必要的工具來(lái)幫助應(yīng)用開(kāi)發(fā)人員通過(guò)UDDI路徑發(fā)現(xiàn)Web服務(wù)。一旦該路徑返回了WSDL的文檔,這個(gè)工具就能夠生成訪問(wèn)該Web服務(wù)的客戶端的基本代碼。然后,這些工具通過(guò)SOAP協(xié)議建立和共享Web服務(wù)并將Web服務(wù)注冊(cè)到UDDI注冊(cè)表。
采用Web服務(wù)的風(fēng)險(xiǎn)
今天我們已經(jīng)建立了一系列的Web服務(wù)標(biāo)準(zhǔn),應(yīng)用服務(wù)器的供應(yīng)商們也正在將這些標(biāo)準(zhǔn)融入到他們的產(chǎn)品中。我們也擁有一個(gè)支撐Web服務(wù)開(kāi)發(fā)的正在趨于完美的平臺(tái)——J2EE。那么,我們?yōu)槭裁催€要限制開(kāi)發(fā)人員都來(lái)采用Web服務(wù)作為集成的解決方案呢?
采用Web服務(wù)的體系框架給人們帶來(lái)了兩個(gè)方面的困惑和恐懼:
1.Web服務(wù)是一種前沿的技術(shù),它的支撐軟件還不夠成熟。
2.各種各樣的新規(guī)范誕生的非??欤藗冃枰度氪罅康馁Y金來(lái)緊跟和測(cè)試這些新的規(guī)范。
對(duì)于上面的第2點(diǎn)來(lái)說(shuō),盡管新的規(guī)范必須兼容早期的版本并且由多個(gè)團(tuán)體共同制定,但是,隨著技術(shù)的逐漸成熟,規(guī)范修改的內(nèi)容和次數(shù)也會(huì)越來(lái)越少(例如HTTP)。
對(duì)于上面的第1點(diǎn)來(lái)說(shuō),
J2EE已經(jīng)是一種相對(duì)成熟的技術(shù),而Web服務(wù)市場(chǎng)的激烈競(jìng)爭(zhēng)也很快為Web服務(wù)的開(kāi)發(fā)人員確定了一批優(yōu)秀的開(kāi)發(fā)工具。
Web服務(wù)的回報(bào)
采用Web服務(wù)和J2EE來(lái)集成遺留的系統(tǒng),其潛在的回報(bào)是巨大的。你可以充分使用集成服務(wù)器所帶來(lái)的優(yōu)點(diǎn)而不需要考慮其它集成系統(tǒng)所存在的一個(gè)很大的不足:缺少可移植性。如果一個(gè)集成方案是在某個(gè)Web服務(wù)提供商的J2EE和Web服務(wù)平臺(tái)所建立的,那么它的應(yīng)用可以非常容易地移植到其它供應(yīng)商的服務(wù)器上。
另外,無(wú)論是已經(jīng)擁有的應(yīng)用服務(wù)器還是準(zhǔn)備在一個(gè)電子商務(wù)項(xiàng)目中購(gòu)買(mǎi)的應(yīng)用服務(wù)器都可以較為經(jīng)濟(jì)的享有Web服務(wù)和J2EE所提供的集成所帶來(lái)的一切優(yōu)點(diǎn)。通過(guò)這個(gè)集成服務(wù)器,用戶只需要針對(duì)每一個(gè)應(yīng)用建立一個(gè)連接,而不需要為任意兩個(gè)應(yīng)用的每個(gè)聯(lián)系建立連接。Web服務(wù)和J2EE是建立在一些容易理解的技術(shù)(例如,Java
和
XML)基礎(chǔ)之上的,在過(guò)去的幾年里這些技術(shù)已經(jīng)贏得了大量的支持和使用。所以,基于Web服務(wù)和J2EE的集成解決方案就成為一種不斷發(fā)展、功能不斷增強(qiáng)的方案,這是其帶來(lái)的另一個(gè)好處。
最后,隨著基于標(biāo)準(zhǔn)的開(kāi)發(fā)工具的不斷完善,這些工具將大大提高用戶的生產(chǎn)能力,它將使用戶通過(guò)圖形操作界面和簡(jiǎn)單的點(diǎn)擊、拖拉操作在短短的幾個(gè)小時(shí)內(nèi)建立應(yīng)用的連接。
總結(jié)
通過(guò)簡(jiǎn)化和利用現(xiàn)有的技術(shù)和知識(shí),Web
服務(wù)和J2EE能夠減少遺留系統(tǒng)集成的必要投資,提供可移植性和可重用性。通過(guò)使用一系列單一的標(biāo)準(zhǔn)技術(shù)——XML, Java 和 Web
服務(wù)——集成項(xiàng)目的周期將會(huì)大大的縮短。同時(shí),由于所采用的技術(shù)是標(biāo)準(zhǔn)的,所以集成方案的透明化也就變得可能了。
通過(guò)實(shí)施基于Web服務(wù)和J2EE的集成方案,IT的管理者們可以降低他們的投資成本,縮短項(xiàng)目周期和擴(kuò)展項(xiàng)目的應(yīng)用。不容置疑,今天Web服務(wù)已經(jīng)引起了開(kāi)發(fā)人員和集成人員的注意,并為之興奮。
|