論基于Web服務(wù)的企業(yè)應(yīng)用集成
[摘要]
去年,我所在的公司承擔(dān)了一項(xiàng)為X巻煙廠建立企業(yè)應(yīng)用集成的項(xiàng)目。主要目標(biāo)是將該廠原使用的辦公系統(tǒng)、人力資源系統(tǒng)、生產(chǎn)管理系統(tǒng)等系統(tǒng)進(jìn)行集成,使之成為一個(gè)無縫連接的整體。我有幸參與了該項(xiàng)目,并擔(dān)任主要的規(guī)劃設(shè)計(jì)工作。針対該項(xiàng)目,我們綜合運(yùn)用了 J2EE平臺(tái)構(gòu)架、Web service、IBM WebSphere等技術(shù),來實(shí)現(xiàn)基于Web Service的企業(yè)應(yīng)用集成,其效果相當(dāng)顯著。而且如果今后有新的系統(tǒng)加入,也能夠很容易地添加。用戶在使用該系統(tǒng)后,生產(chǎn)、經(jīng)營效率有了大幅度的提高,得到了用戶的一致好評(píng)。
[正文]
去年,我公司承擔(dān)了 x巻煙廠的企業(yè)應(yīng)用集成項(xiàng)目。該巻廠是一家大型國有企業(yè),經(jīng)過多年的發(fā)展和積累,形成一套行之有效的管理機(jī)制,并實(shí)施了一系列的管理、生產(chǎn)自動(dòng)化系統(tǒng),如LOTUS的Domino辦公自動(dòng)化系統(tǒng)、人力資源管理系統(tǒng)、CRM客戶關(guān)系管理系統(tǒng)、用友財(cái)務(wù)軟件等商品化軟件,也有該廠與一家軟件公司合作開發(fā)的生產(chǎn)管理軟件(具有源代碼)。這些軟件實(shí)施于不同時(shí)間,也為各部門的生產(chǎn)、管理效率的提高起到了巨大的推動(dòng)作用。但是各個(gè)分散獨(dú)立的系統(tǒng)也給企業(yè)的發(fā)展造成了瓶頸,生產(chǎn)第一線的數(shù)據(jù)不能隨時(shí)反饋給決策層領(lǐng)導(dǎo),供應(yīng)鏈、銷售鏈不能與生產(chǎn)管理系統(tǒng)銜接,只能用手工方式將數(shù)據(jù)輸入生產(chǎn)管理系統(tǒng),不僅速度慢,而且經(jīng)常容易出錯(cuò)。
隨著企業(yè)的發(fā)展,這些系統(tǒng)也成為了一個(gè)個(gè)信息孤島,給企業(yè)的進(jìn)一歩發(fā)展造成了瓶頸。為徹底消除這些限制企業(yè)發(fā)展的因素,該廠決定實(shí)施企業(yè)應(yīng)用集成,將各個(gè)獨(dú)立的系統(tǒng)集成起來,成為一個(gè)無縫連接的整體,使各種信息在整個(gè)企業(yè)范圍內(nèi)流動(dòng)起來,促進(jìn)企業(yè)的進(jìn)一歩發(fā)展
我公司成立了項(xiàng)目組,我有幸參與了該項(xiàng)目,并擔(dān)任主要的規(guī)劃設(shè)計(jì)工作。根據(jù)以往項(xiàng)目的經(jīng)驗(yàn),我們首先進(jìn)行了技術(shù)方案的選擇。目前企業(yè)應(yīng)用集成目前通行的做法有三種:數(shù)據(jù)層集成、業(yè)務(wù)層集成和表示層集成。數(shù)據(jù)層集成需要修改大量的應(yīng)用程序,而使用的系統(tǒng)中一些是商業(yè)軟件,我們無法得到源代碼。而表示層集成只是集成了各個(gè)應(yīng)用程序的顯示界面,就好像只是做一層外裝修,無實(shí)質(zhì)性的改變,而且有可能成為整個(gè)集成系統(tǒng)的瓶頸。業(yè)務(wù)層集成則克服數(shù)據(jù)層、表示層集成的這些缺點(diǎn),而程序代碼的修改量不大,且只是針対沒有API (應(yīng)用程序接口)的應(yīng)用程序。因此,我們根據(jù)企業(yè)目前系統(tǒng)使用的狀況及我們以往開發(fā)類似項(xiàng)目的成功經(jīng)驗(yàn),經(jīng)項(xiàng)目組討論決定采用業(yè)務(wù)層集成方式來完成該項(xiàng)目。我們采用了 J2EE的平臺(tái)構(gòu)架,并為企業(yè)將來在企業(yè)間和電子商務(wù)的進(jìn)一歩集成,采用了基于Web服務(wù)的集成方案。Web服務(wù)具有各個(gè)應(yīng)用程序之間松散耦合、位貫透明、協(xié)議獨(dú)立的特點(diǎn),某個(gè)應(yīng)用程序的増減變動(dòng)不會(huì)影響到其它應(yīng)用程序的運(yùn)行,并且它所使用的SOAP、XML等協(xié)議和技術(shù)也不被某一家公司所控制。
選定了實(shí)現(xiàn)平臺(tái),我們開始対各個(gè)系統(tǒng)進(jìn)行封裝、組合。各個(gè)系統(tǒng)的接口的異構(gòu)性帶來了訪問上的麻煩。為了屏蔽接口上的差異性,我們采用了將這些接口映射為統(tǒng)一的虛擬組件。虛擬組件一辺通過J2EE底層接口顯示現(xiàn)有應(yīng)用程序的功能,另一辺通過現(xiàn)有應(yīng)用程序接口API和它們進(jìn)行連接。這樣用戶就可以用統(tǒng)一的方式訪問虛擬組件而獲得應(yīng)用程序的功能。我們通過采用J2EE的JCA方式實(shí)現(xiàn)虛擬組件対各個(gè)應(yīng)用程序的訪問,為每一個(gè)應(yīng)用程序定制一個(gè)資源適配器,并插入J2EE的應(yīng)用程序服務(wù)器中。資源適配器拿有一個(gè)指定的原系統(tǒng)庫(用Java寫的或帶有自身接口單元的庫),這個(gè)庫同它描述的原系統(tǒng)具有連通性。通過J2EE平臺(tái)的JCA這樣一種方式,我們向用戶提交了一個(gè)統(tǒng)一的調(diào)用接口。
解決了接口問題,接下來就要將各應(yīng)用程序提供的服務(wù)通過WSDL描述服務(wù),并且注冊到企業(yè)內(nèi)部的UDDI中心.我們米用了 Apache axis 1.0來開發(fā)Web服務(wù),IBM的WebSphere作為消息服務(wù)器。根據(jù)該廠的要求,將各應(yīng)用程序提供的服務(wù)分為5個(gè)種類來提供Web服務(wù),分別是銷售、人事、生產(chǎn)、供應(yīng)、辦公五個(gè)部分,再將各應(yīng)用程序提供的Web服務(wù)具體細(xì)分,如生產(chǎn)部分提供了物料需求計(jì)劃服務(wù)、庫存服務(wù)、產(chǎn)品目錄更新服務(wù)等。并WSDL實(shí)用程序生成代理代碼,發(fā)布Web服務(wù)程序;在統(tǒng)一的服務(wù)發(fā)布服務(wù)器上,通過UDDI服務(wù)實(shí)現(xiàn)發(fā)現(xiàn)web服務(wù)功能,便于查詢系統(tǒng)各模塊提供的Web Service服務(wù)。服務(wù)請求者按照標(biāo)準(zhǔn)接口構(gòu)造XML格式的SOAP Request并通過HTTP方式向UDDI注冊中心發(fā)出請求。當(dāng)有一個(gè)新的物料需求計(jì)劃生成時(shí),我們通過使用JMS中間件來發(fā)布物料需求計(jì)劃,使得訂閱該主題的供應(yīng)商得到消息
企業(yè)信息門戶EIP我們采用了 IBM WebSphere Portal Server來實(shí)現(xiàn)。対用戶帳號(hào)采用統(tǒng)一管理,統(tǒng)一授權(quán),用戶登錄系統(tǒng)時(shí)采用統(tǒng)一認(rèn)證服務(wù)調(diào)用接口以實(shí)現(xiàn)用戶身份的認(rèn)證過程,并通過單點(diǎn)登錄SSO,從根本上改變了現(xiàn)有各應(yīng)用程序帳號(hào)之間進(jìn)行漫游,不需要進(jìn)行重新登錄,給用戶提供了極大的便利,并減少了不法用戶利用認(rèn)證攻擊應(yīng)用程序的可能,極大地提高了系統(tǒng)的安全性和可用性。
在系統(tǒng)實(shí)施過程中,我們也遇到了一些困難。生產(chǎn)部門使用的生產(chǎn)管理系統(tǒng)是由該廠與一家軟件合作開發(fā)的,沒有預(yù)留API,我們便対該系統(tǒng)進(jìn)行了改造,由于該軟件公司已找不到,而且該系統(tǒng)文檔難以找到,因此我們対接
口改造會(huì)対原應(yīng)用程序造成的兼容性、穩(wěn)定性的問題估計(jì)不足,改造完成后只進(jìn)行了接口改造的回歸測試,使得該應(yīng)用程序一直不穩(wěn)定。于是我們重新対該系統(tǒng)進(jìn)行了深入透徹的了解,決定采用CORBA規(guī)范的接口定義語言IDL描述接口,而J2EE與CORBA又有極大的相關(guān)性,便于今后的封裝、組合。接口改造完成后,我們進(jìn)行了反復(fù)的回歸測試和穩(wěn)定性測試,才使系統(tǒng)又恢復(fù)原來的運(yùn)行水平。
還有就是與各應(yīng)用程序供應(yīng)商的協(xié)調(diào),大家都站在各自的立場上,設(shè)想対方的系統(tǒng)接口應(yīng)該如何改,以適應(yīng)自己的接口。經(jīng)過我們和該廠的努力,最終大家都同意以最有利于集成系統(tǒng)的角度進(jìn)行改造。
在本項(xiàng)目中,我們綜合運(yùn)用了 J2EE平臺(tái)構(gòu)架、Web service、IBM WebSphere等技術(shù),來實(shí)現(xiàn)基于Web Service的企業(yè)應(yīng)用集成,其效果相當(dāng)顯著。而且如果今后有新的系統(tǒng)加入,也能夠很容易地添加。用戶在使用該系統(tǒng)后,生產(chǎn)、銷售、供應(yīng)、辦公成為一體化的無縫連接的一個(gè)整體,生產(chǎn)、經(jīng)營效率有了大幅度的提高,得到了用戶的一致好評(píng)。
我從實(shí)踐中領(lǐng)會(huì)到,企業(yè)應(yīng)用集成是一項(xiàng)技術(shù)復(fù)雜,工程繁雜的工程,但也是企業(yè)目前最急需解決的問題。同時(shí)我也認(rèn)識(shí)到,企業(yè)應(yīng)用集成還有很多領(lǐng)域和知識(shí)點(diǎn)需要繼續(xù)研究和實(shí)踐,新技術(shù)的應(yīng)用也帶來了新的要求和挑戰(zhàn),我將在企業(yè)應(yīng)用集成領(lǐng)域不斷探索,不斷實(shí)踐。
本文摘自 :https://blog.51cto.com/u