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