?
本文提供了一個Web環境下基于構件的IERP系統軟件的框架設計,在論文中首先分析了IERP的定義,包括IERP、ERP的含義和集成過程。其次,分析了IERP系統的體系結構,包括框架結構和分塊體系結構,最后討論了系統框架的實現技術,包括EJB、CORBA和Web Service集成構件的優缺點,并提出了IERP系統構件的集成方案。
一、IERP的定義和資源集成
ERP首先是1990年初由Gartner Group提出的,在Gartner Group信息技術詞匯表(Gartner Group's IT Glossary—Enterprise Resource Planning (ERP))中關于ERP的定義如下:一個由Gartner Group提出的概念,描述下一代制造商業系統和制造資源計劃(Manufacturing Resource Planning MRP II)軟件的集成。它包含了客戶端/服務器(Client/Server,C/S)體系結構,使用圖形用戶接口,應用開放式系統進行規劃。除了已有的標準功能外,它還包括其它功能,如質量、過程運作管理和報表等。另外,基礎技術在ERP中的使用,使軟件和硬件分離而易于升級。ERP的關鍵在于它能夠量身定制,因而具有固有的易用性。
F. Robert Jacobs and Elliot Bendoly 從“概念”和“系統”兩個方面對ERP的定義進行了探討,概念研究主要集中在ERP對不同商業功能執行的潛在沖擊上,而“系統”研究主要是對錯綜復雜的軟件包和過程進行設計以實現相應的概念對象。
David C. Yen、David C. Chou and Jane Chang把ERP系統看作是一個軟件,能夠用它來集成企業內部所有的功能信息,并且自主執行業務處理。也就是說,ERP系統是一個商業管理系統,它集成了企業的方方面面的內容,包括計劃、市場和制造。
以上定義無論是從概念上,還是從系統上、軟件上都可以看出它們具有一個共同點,ERP是對企業所有的信息流、物流、資金流和工作流的無縫集成,是企業集成內部所有資源,包括財務、成本、物流、制造、人力資源等,進行有效的計劃和控制,以達到最大效益的工具。然而,隨著Internet的廣泛應用,傳統ERP逐漸顯示出了它的局限性,它主要集中在對企業內部資源的管理,缺乏自主性和柔性,針對這一問題,本文提出了網絡ERP的概念,IERP是以WEB為平臺,充分利用網絡通信技術,實現企業內部資源和外部資源的無縫集成,達到企業內部資源的共享和外部資源的協同,最終實現企業的在線運作。圖1描述了IERP系統的資源集成過程。
圖1 IERP系統資源流動集成圖
二、IERP系統體系結構
1.IERP系統分塊體系結構
軟件體系結構代表了系統公共的高層次的抽象,是軟件開發過程中的重要產品和系統性重用的主要資產,基于構件的軟件開發必須以體系結構為中心。為解決不同部門或公司的邏輯處理的協同,我們在設計時引入了軟構件以提供協同服務,使軟件具有足夠的靈活性和互操作性。
傳統的ERP系統采用基于瀏覽器/服務器 (Browse/Server,B/S)的層次體系結構,分為表現層、業務邏輯層和數據層,雖然三層結構在Web應用系統開發中,被證明是行之有效的,但是它的表現層、業務邏輯層和數據層緊耦合,如果一層發生變動,其它層也必須隨之變動,不利于軟件的復用和重構。為了克服三層結構的局限性,我們將系統分成五快,從而在軟件體系結構上保證了構件的可復用性,軟件的可重構性、可擴展性。圖2為基于構件的IERP系統分塊體系結構,分為前臺表現塊、界面構件塊、業務功能塊、數據訪問塊和后臺管理系統塊。根據定義,分層方法只允許一個層與其相鄰的上下層之間通信。如果按層次結構將系統體系結構分為五層,那么通信只能在相鄰兩層間進行,而系統實際運作時前臺表現層與后臺管理系統層的操作需要業務功能層與前臺表現層、界面構件層與數據訪問層通信。而這違反了分層原則,因此IERP系統體系結構是按塊而不是按層來組織。這種結構將數據模型與數據源分離開來,我們可以用最小的代價改變數據庫管理系統。各塊和各構件之間使用對象請求代理(Object Request Broker,ORB)、EJB( Enterprise Java Beans,由SUN公司提出的基于Java的面向對象的組件標準)和Web Service實現相互合作。
圖2 IERP系統分塊體系結構
(1)前臺表現塊 用Web客戶端構成表現塊,為Web瀏覽器準備
顯示內容,用于和用戶進行交互,主要包括圖形用戶界面和所有的顯示邏輯,前臺表現塊函數獨立于頁面內容,因此,可以改變業務功能或界面構件而不會對表現塊造成影響。
(2)界面構件塊 為前臺表現塊提供用戶顯示的界面構件,把客戶端應用程序從復雜的業務服務中孤立出來,使表現塊不受復雜的業務干擾,降低表現塊和業務功能塊的耦合度。系統采用了軟構件技術,將部分腳本塊(如報表格式、圖像格式等)封裝為構件,既有利于大量腳本的重用又增加了系統的安全性。
(3)業務功能塊 業務功能塊是IERP框架的核心部分,用于封裝大量可重用業務構件。業務構件的設計既要滿足系統需求,又要具備高內聚、低耦合、易重用的特點。
(4)數據訪問塊 該塊提供了接口適配器和數據庫適配器,主要用于數據為業務功能塊和界面構件塊服務,提供數據訪問服務,使業務邏輯脫離后臺管理系統塊的干擾,同時有利于基于構件的事務的實現,包括數據有效性的驗證,數據記錄集的添加、修改、刪除等。
(5)后臺管理系統塊 該塊包括數據庫、知識庫、底層硬件、分布式計算環境、操作系統和網絡配置與維護,數據庫用于存儲信息數據,包括基本信息,貨物信息和生產信息等。知識庫用于存儲本地規則和部門或公司間的合作協議,支持工作流引擎的執行。
2.IERP系統框架結構
基于構件的框架是由一組相互協作的構件組成,通過用構件替代框架內部相互協作的類,以增大框架構成成分的粒度,用構件接口的調用替代類方法的重載,便于框架的組裝,從而使軟件具有更大的構件粒度以及良好的擴展機制,使其更易于被重用和重構,易于滿足軟件的客戶化要求,這些構件及其協作關系定義了應用系統的體系結構。綜上所述,并參照文獻[12]給出了IERP系統的框架結構(如圖3所示),系統主要由十三個核心構件、一個備用構件庫、一個客戶關系管理構件庫、一個供應鏈管理構件庫、三個引擎和三個平臺構成。圖中虛線部分為框架內部構件,即框架核心構件,它實現了系統的共性。其余為由用戶定制的、待組裝構件,即應用構件,它代表了系統的變化性。在系統定制時,根據應用的具體特點,對非核心構件庫進行篩選,通過構件接口將框架核心構件和所篩選的構件銜接起來,進行組裝,形成最終的應用系統框架,實現軟件構件的復用和系統的重構。
圖3 IERP系統框架結構
在IERP系統框架結構中,通信引擎實現構件之間、構件與用戶之間的通信。主要包括數據通信、信息轉換與流動等。企業應用集成引擎主要實現構件之間、構件和用戶之間的請求和響應,例如用戶通過WEB瀏覽器提出他們的請求,企業應用集成引擎則要找到所需要的請求,并且將結果返回給用戶。工作流引擎是系統構件協同的關鍵,負責商業過程的建模、執行與監控。基于用戶命令,工作流管理程序按存儲在知識庫中的規則分析形成工作流,并利用工作流來協調完成企業內部各部門及其相應的應用軟件系統之間的工作。
圖4 EJB、CORBA和Web Service在IERP系統體系結構中的技術實現
三、實現技術
實現技術是系統實現的關鍵,基于構件的IERP系統的框架設計主要實現三個方面的內容:構件的設計、構件接口設計和服務。應用的技術主要包括:EJB、CORBA和Web Service。IERP系統框架設計是一個基于構件的設計,是構件的集成。構件封裝了存儲數據的屬性和執行功能的方法,它對外界隱藏設計和實現細節,僅通過接口與外界交換信息,接口是理解構件和使用構件的唯一信息源。綜上所述,我們可以看出,IERP系統的構件組合是通過接口集成的,并且IERP框架的實現依賴于一系列的服務、工具以及通信機制。
1.通過CORBA集成
CORBA是由對象管理組織(Object Management Group,OMG)為解決分布式、異構的
軟件和硬件環境下對象之間的互操作問題而提出的基于中間件的構件技術。CORBA使用了中間代理機制,使用對象請求代理(Object Request Broker, ORB),實現構件之間的通信,從而將構件的接口與構件的實現分離開來,客戶可以通過靜態存根(Stub)或者通過運行時動態生成的IDL(Interface Define Language,接口定義語言)來調用服務,并且提供了一個強制性的網間對象請求中介通信協議(the Internet Inter-ORB Protocol, IIOP),可以通過TCP/IP協議實現構件間的通信。CORBA提供了豐富的便于用戶使用的、標準的對象服務,如命名服務、交易服務等。優點:以IDL為標準,與實現構件接口的語言、軟件平臺和硬件平臺無關;以ORB為軟件總線,開放性好。缺點:IDL的實現與軟、硬件平臺相關,無法滿足Internet上大量的移動計算的需求;具有獨立的體系結構和私有協議,不同模型的應用系統之間通信十分不便。
2.通過EJB集成
EJB是Sun公司提出的基于Java的面向對象的組件標準,是Java類與XML的集合,具有平臺無關性、可重用性和可移植性的特點。EJB構件間的相互調用是通過遠程方法調用RMI(Remote method invocation)協議完成的。RMI使用在TCP/IP上的線路集協議JRMP(Java Remote Method Protocol,Java遠程方法協議)和IIOP實現網絡間的傳輸。EJB提供了JNDI(Java naming and directory interface Java ,命名和目錄接口)、JTS(Java Transaction Service,Java事務服務)等一系列服務。缺點:具有語言相關性;具有獨立的體系結構和私有協議,不同模型的應用系統間通信十分不便。
3.通過Web Service集成
Web Service 是建立在XML數據交換基礎上的軟件模型,是一種部署到Internet中,可復用的應用程序構件。Web Service定義了一系列標準和協議,用于接口定義、方法調用、基于Internet的構件注冊以及各種應用的實現。其中主要的標準和協議是:XML、WSDL、SOAP、HTTP、UDDI。這些標準和協議的具體介紹參看文獻[14]。優點:Web Service使用標準的Internet協議,具有協議的通用性;完全的平臺、語言無關性,具有良好的互操作性。缺點:由于基于XML,所以也具有XML的缺點,因為XML數據要經過多步處理才能被系統使用,因此占用大量的CPU資源,對大量數據處理經常出現超時現象。
4.IERP系統構件集成方案
根據上面對CORBA、EJB和Web Service三種集成方案的優缺點分析,我們在設計IERP系統時將三種技術融合起來,取長補短。由于CORBA具有豐富的服務和良好的開放性,系統中除需要移動計算的構件之外的企業內部交互性大的構件全部通過CORBA集成,從而避免了EJB和Web Service數據處理速度慢的缺點。企業內部需要移動計算的構件,像物料需求計算,成本核算等,采用EJB集成,從而發揮了EJB可移植性和平臺無關性的優點。對于數據交互量不大的供應商和客戶服務構件以及其他的與客戶、合作伙伴相關的構件采用Web Service進行集成,從而充分發揮了協議通用性、平臺和語言無關性的優勢。
四、結論
隨著Internet和Intranet的廣泛使用,傳統的ERP系統已經不能完全滿足企業的需要,網絡ERP的設計為企業提供了一個以WEB為平臺的網絡管理系統,基于構件的軟件開發方法和作為面向領域具有大粒度可復用軟件成分的框架設計實現了IERP系統的互操作性,可擴展性、可重用性和可重構性,EJB、CORBA和Web Service為IERP系統的實現提供了技術支持。
評論