0 引 言
企業(yè)資源計劃(EntERPrise Resources Planning,ERP)在我國已被越來越多企業(yè)認同和接受,實施ERP已成為企業(yè)信息化的重要標志之一。傳統(tǒng)的ERP系統(tǒng)主要是面向企業(yè)內(nèi)部管理的,其體系結(jié)構(gòu)缺少靈活性,IT組織很難對不同的功能和系統(tǒng)進行集成,很難對變化的商務需求和競爭需求做出及時反應。只要不是由單獨的一個開發(fā)商來提供所有的功能,就一定存在著不嚴格的應用程序。主要問題是:
(1)不能適應企業(yè)經(jīng)營管理模式的變化,企業(yè)組織架構(gòu)、經(jīng)營管理模式的變化,導致原有的ERP系統(tǒng)要重新開發(fā)或做較大的改進,造成投資浪費。
(2)不能靈活地支持供應鏈管理功能,不能實現(xiàn)企業(yè)與供應商、企業(yè)與分銷商之間的信息集成,以及不同軟件之間的互操作。
如何使企業(yè)原有系統(tǒng)間實現(xiàn)無縫集成;應用系統(tǒng)具有快速可重構(gòu)性;動態(tài)調(diào)整其結(jié)構(gòu)和行為,以支持這種持續(xù)進行的企業(yè)管理創(chuàng)新與流程重組優(yōu)化;構(gòu)建適合于企業(yè)信息集成的平臺,已成為當前的一個挑戰(zhàn)。為了解決現(xiàn)有ERP系統(tǒng)難以重構(gòu)。難以與企業(yè)之外的供應商、分銷商集成的問題,提出基于面向服務架構(gòu)(Service Oriented Architecture,SOA)的ERP系統(tǒng)體系結(jié)構(gòu)。該結(jié)構(gòu)充分體現(xiàn)了在Web服務平臺上實現(xiàn)跨平臺、語言獨立、松散耦合的異構(gòu)應用交互和集成,使得建立在此平臺上的ERP系統(tǒng)更具易用性和可擴展性。
1 面向服務架構(gòu)SOA
面向服務架構(gòu)是一種面向服務的企業(yè)應用體系結(jié)構(gòu),是一種分布式的軟件架構(gòu)模型。在該模型中,任何業(yè)務功能都被用作提供一個服務使用,應用程序的不同功能(服務)通過這些服務之聞定義的結(jié)構(gòu)和合約聯(lián)系起來,所以應用系統(tǒng)可以看作是一系列的服務集成。
SOA的體系結(jié)構(gòu)由三個參與者和三個基本操作構(gòu)成。三個參與者分別為服務提供者、服務請求者和服務注冊代理者。三個基本操作分別是發(fā)布、查找和綁定,如圖1所示。SOA體系結(jié)構(gòu)中的角色功能為:
(1)服務請求者。它是一個應用程序、一個軟件模塊,或需要一個服務的另一個服務。它發(fā)起對注冊代理中的服務查詢,通過傳輸綁定服務,并且執(zhí)行服務功能,服務請求者根據(jù)接口契約來執(zhí)行服務;
(2)服務提供者。它是一個可通過網(wǎng)絡尋址的實體,可以接受和執(zhí)行來自請求者的請求。它將自己的服務和接口契約發(fā)布到服務注冊中心,以便服務請求者可以發(fā)現(xiàn)和訪問該服務;
(3)服務注冊代理。它是服務發(fā)現(xiàn)的支持者。它包含一個可用服務的存儲庫,并允許感興趣的服務請求者查找服務提供者接口。
圖1 SOA協(xié)作關系
SOA中的每個實體都扮演著服務提供者、請求者和注冊代理這三種角色中的某一種(或多種)。面向服務體系結(jié)構(gòu)中的操作包括:
(1)發(fā)布。為使服務可訪問,需要發(fā)布服務描述,使服務請求者可以發(fā)現(xiàn)和調(diào)用它;
(2)查詢。服務請求者定位服務,方法是在服務注冊中心查詢到滿足標準的服務;
(3)綁定和調(diào)用。在檢索完服務描述之后,服務請求者繼續(xù)與服務描述中的信息調(diào)用服務。
2 基于SOA的ERP系統(tǒng)體系結(jié)構(gòu)
為了解決現(xiàn)有ERP存在的問題,實現(xiàn)互聯(lián)網(wǎng)環(huán)境下企業(yè)之間的供應鏈集成和響應企業(yè)內(nèi)部流程重組的變化,要求ERP系統(tǒng)具有給外部企業(yè)提供服務和從外部企業(yè)獲取服務的功能。為了能夠靈活地實現(xiàn)企業(yè)內(nèi)部流程重組的要求,可以把ERP系統(tǒng)功能分解成粗粒度服務和細粒度服務,然后通過服務組合實現(xiàn)ERP系統(tǒng)的整體功能。當重組企業(yè)業(yè)務流程時,通過重新組合已編寫的服務部件即可容易地實現(xiàn)改造。為此,提出了基于SOA架構(gòu)的ERP系統(tǒng)體系結(jié)構(gòu),如圖2所示。該系統(tǒng)把服務定義為三個抽象級別:操作、服務和業(yè)務流程。設計時采用自頂向下的方式,對主要功能進行分析,確定業(yè)務流程,然后抽象成服務,再通過操作重用服務,實現(xiàn)主要功能或生成新的功能。
圖2 基于SOA架構(gòu)的ERP系統(tǒng)體系結(jié)構(gòu)
在圖2所示的ERP系統(tǒng)體系結(jié)構(gòu)中,ERP各個業(yè)務模塊的功能作為粗粒度服務發(fā)布,而每個模塊的功能又由多個子功能組成。這里把這些子功能作為細粒度服務發(fā)布,而一個粗粒度服務由多個細粒度服務組合而成,每個細粒度服務都利用數(shù)據(jù)訪問邏輯組件對數(shù)據(jù)庫表進行查找、更新、保存等操作。在該系統(tǒng)中,本地企業(yè)提供的服務在本地服務注冊中心注冊,可由本地企業(yè)客戶端訪問;而需要提供給合作企業(yè)訪問的服務,則發(fā)布到公共注冊中心,供外部合作企業(yè)訪問?蛻舻恼埱笸ㄟ^通道控制(公司網(wǎng)關)被傳遞給主控制器。使用Web Services Gateway,則來自客戶的請求可以被轉(zhuǎn)換成服務所要求的任何消息協(xié)議。請求服務的客戶端通過web環(huán)境顯示用戶界面,用SOAP客戶接口實現(xiàn)與服務提供方和服務注冊中心通信,達到查詢服務和綁定服務的目的。
3 基于SOA的ERP系統(tǒng)實現(xiàn)技術
面向服務架構(gòu)最常用的一種實現(xiàn)方法是WebServices技術。Web Services技術使用一系列標準和協(xié)議實現(xiàn)相關的功能。其中,XML作為Web Services技術的基礎,是開放環(huán)境下描述數(shù)據(jù)和信息的標準技術。服務提供者可以用Web服務描述語言(WSDL)描述Web服務,用統(tǒng)一描述、查詢和集成(UDDI)向服務注冊代理發(fā)布和注冊Web服務。服務請求者通過UDDI進行查詢,找到所需服務后,利用簡單對象協(xié)議(SOAP)來綁定、調(diào)用這些服務。
實現(xiàn)Web服務的主流開發(fā)平臺有J2EE平臺和Microsoft.net平臺。由于J2EE的最主要特點是與平臺無關性,它是簡化的、基于組件的開發(fā)模型,具有隨處運行的可移植性,遵循J2EE標準的所有服務器都支持該模型,從而使基于J2EE的應用程序不依賴任何特定操作系統(tǒng),中間件或硬件具有很好的可重用性。因此,設計合理的基于J2EE的程序只需開發(fā)一次就可以部署到各種平臺,這在典型的異構(gòu)企業(yè)環(huán)境中是十分關鍵的。圖3是采用J2EE平臺實現(xiàn)ERP系統(tǒng)的Web服務體系結(jié)構(gòu)。其中,JAXR(Java API for XMI。Registries,用于為XMI。注冊表的Java API)使得應用程序能夠在注冊表中注冊、或者查詢其他公司提供的Web服務,用于XMI。消息交換的Java API(Java API for XM Messaging,JAXM)提供Web服務環(huán)境中的異步和消息交換功能,并可以通過內(nèi)部網(wǎng)和Internet進行XML文檔交換。JAXM是基于SOAP 1.1規(guī)范和SOAP附件定義中消息交換協(xié)議的一種API框架。
圖3 基于J2EE的Web服務體系結(jié)構(gòu)
該系統(tǒng)的運行過程為服務請求者向主控制器發(fā)出HTTP請求,主控制器讀出請求內(nèi)容,并利用JAXR發(fā)現(xiàn)UDDI服務注冊表中的服務,然后根據(jù)請求內(nèi)容創(chuàng)建一條SOAP Message,利用JAXM把SOAP Message提交給服務提供者,以調(diào)用相關的Web服務,由Web服務程序處理數(shù)據(jù)庫。服務提供者用JAXR向UDDI服務注冊表發(fā)布Web服務。使用JSP和JSTL來實現(xiàn)。JSTL標記將輔助完成條件處理和對Web服務所返回XML數(shù)據(jù)進行分析。并將最后的結(jié)果用瀏覽器形式通過頁面顯示給用戶。
具體的實現(xiàn)工具和軟件包括:
①ESB平臺:Mule 1.3;
②持久層框架:Hibernate 3.2;
③業(yè)務層框架:Spring 1.2;
④Web服務發(fā)布框架:XFire 1.2;
⑤Web服務安全設置:JSR 181;
⑥表示層框架:Struts 1.4 JSP;
⑦Web服務器:Tomcat 6.0;
⑧開發(fā)軟件:MyEclipse 5.5。
4 結(jié) 語
ERP已成為現(xiàn)代企業(yè)不可或缺的管理手段,但企業(yè)在實施ERP產(chǎn)品過程中有較多失敗的案例,其中一個最大的原因在于ERP產(chǎn)品不能真正滿足用戶的需求。當前的ERP系統(tǒng)大都基于網(wǎng)絡能力的單一層次,有的雖然可以提供多個層次的能力接口,但是相互之間都相互獨立。SOA為ERP系統(tǒng)的發(fā)展注入了新的動力,使得未來的ERP系統(tǒng)具有更好的可擴充性、可維護性、可交互性和靈活性。本文利用面向服務體系架構(gòu)中的粗粒度、松耦合、可重用服務及服務標準化接口設計管理等特點,將原有的ERP系統(tǒng)改造成為了一個更迅速、更可靠、更具重用性架構(gòu)的業(yè)務系統(tǒng)。實現(xiàn)了在Web服務平臺上交互和集成跨平臺、語言獨立、松散耦合的異構(gòu)應用,使建立在該平臺上的ERP系統(tǒng)更具易用性和可擴展性。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標題:基于SOA體系結(jié)構(gòu)的ERP系統(tǒng)應用研究
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/1082054185.html