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