0 引言
企業資源計劃(EntERPrise Resource Planning,ERP)集先進企業管理思想與信息技術于一身,隨著我國企業信息化不斷推進。越來越多中小型企業紛紛采用ERP提升企業競爭力;然而由于現存ERP系統功能模塊固化、擴展性不高、中小型企業個性化業務模式特殊化等原因直接或間接導致ERP實施在中小企業失敗率極高。
近些年為從根本上解決ERP開發周期長、實施失敗率商的問題,“平臺化”逐漸成為國內外ERP廠商的主要開發模式,例如SAP NetWeaver,用友UAP,金蝶BOS等。SAP Netweaver產品過于龐大復雜,簡單的需求變化解決起來卻很復雜等缺點注定了其不適合于我國的中小企業。國內金蝶、用友為緩和企業“二次開發”迫切需求倉促推出BOS、UAP,可以針對已實施的系統進行局部少量的二次修改,但對于復雜的業務流程的改變仍然需要軟件研發中心二次開發完成。由此可見這些平臺沒有真正解決中小型企業的個性化問題,更談不上被市場接受,究其原因有三:1)不是基于面向服務架構(Service-Oriented Architecture。SOA),無法根據個性化需求快速構建企業適合的ERP系統;2)不是基于ERP-BPEL(Business Process Execution Language,業務流程執行語言)理念,無法幫助企業提高業務流程靈活性和敏捷性;3)設計路線錯誤,大都為ERP系統集成產品,獨立性、擴展性太差。因此,研究開發—個專門針對中小企業使用的、高效的、低成本的EBP系統開發支撐平臺是目前辱須解決的一個迫切問題。
可重用性、可擴展性一直都是軟件行業所追求的,Eclipse插件技術使得這一愿望成為現實。因此本文提出基于Eclipse插件的可視化Web ERP系統開發支撐平臺VWESA(Visual Web ERP System Architecl,可視化Web ERP系統構建者)的研究。該平臺采用插件技術對軟件架構及其設計進行劃分,將平臺的功能模塊在Eclipse擴展點基礎上擴展開發為獨立插件;采用頁面編輯環境和EBP—BPEL(即將BPEL的建模圖符陋]按ERP企業系統的業務流特點進行擴展而成)進行可視化業務流程建模,使用平臺的解釋引擎進行流程部署與代碼生成;以最終實現企業ERP系統的開發。
1 VWESA平臺組織框架
VWESA平臺采用SOA進行平臺邏輯架構系統設計;基于Eclipse開發環境,按照插件(plug-in)的開發理念進行功能模塊劃分與開發,模塊之間的接口定義明確,最終形成一個具有模塊插件功能的ERP系統開發支撐平臺。
1.1 VWESA系統開發平臺邏輯結構
VWESA系統開發平臺按SOA劃分為用戶接入層、后臺協同層、業務流程層、服務供應層和數據訪問層五個部分組成。
用戶接八層 用戶接人層采用Tiles、HTML、AJAX等技術,用于實現目標ERP系統的Web界面顯示。通過Tiles定義了目標系統Web頁面的框架,該層主要負責提交用戶請求,并通過HTML和AJAX技術與后臺協同層進行交互反饋,接受并返回數據,呈現給用戶。
后臺協同層 后臺協同層采用JSF(Java server Faces)框架和Servlet技術來實現,它的作用為:協助控制頁面的跳轉、接受由用戶接人層發送來的請求、數據并以控件的形式調用業務流程層所實現的業務流程進而完成對業務邏輯的訪問等。利用JSF框架可以驗證用戶輸入的值,實現頁面導航,使用XML來控制頁面之間的跳轉關系。
業務流程層 業務流程層采用ERP-BPEL技術實現,符合BPEL規范,ERP—BPEL是具體ERP業務流程的表現,其所定義的流程實質上是對一系列單個無狀態服務的調用與編排,是本文通過對BPEL的語法、圖符功能含義進行深人研究,并結合分析中小企業業務流程,研究、設計出一套具有更高抽象級別、更適合企業建模開發人員使用的圖符標簽。在平臺中通過定義的建模圖符進行業務建模,并在圖符參數中添加Web服務的web服務描述語言(Web Service Description Language,WSDL)文件,調用服務供應層所提供的可重用的服務元素,從而實現一個業務流程的功能。定義好的ERP-BPEL流程通過ODE解釋引擎進行部署,對外發布為Web服務,以控件的方式供上兩層調用。
服務供應層 服務供應層采用Axis2方式,用Java語言開發一些根據企業業務流程而抽取出的粒度較適中的服務元素.并將服務元素進行部署生成WDSL文件以供上面的業務流程層進行調用。平臺中嚴格采用SOA技術設計服務元素。各種粒度服務元素只有在數量、種類上達到一定規模時,才能滿足軟件復用和基于服務重構的需求。數據訪問層數據訪問層的核心功能是供其他層次訪問數據資源,包括數據庫、XML文件等。為了在其他不同層次采用統一的方式訪問數據訪問層所提供的數據資源,VWESA采用Hibemate技術以對象的形式實現可視化操作數據庫,并向其他層次提供訪問的接口Hibemate文件。
由圖1可見,VWESA通過符合BPEL規范的ODE解釋引擎對ERP-BPEL業務流程進行部署及代碼生成;而Web頁面解釋引擎Ⅱ通過servlet文件和htmlf文件與界面部分交互,最終實現快速生成、部署滿足中小企業業務需求的ERP Web系統。
圖1 VWESA開發支撐平臺SOA技術架構
1.2 VWESA系統開發平臺插件結構
VWESA系統基于Eclipse插件體系,通過ERP-BPEL流程為導向,結合ODE解釋引擎、web服務、SOA架構、面向對象的數據庫設計方法等先進技術實現一個能快速生成基于B/S架構的ERP Web系統。整個VWESA平臺的功能可分為:資源管理器、Web系統界面設計、業務流程建模及其解釋引擎、服務元素庫、數據庫建模與管理。平臺以Eclip6e插件體系結構進行設計,平臺的插件結構如圖2所示。
圖2 VWESA系筑開發平臺插件結構
VWESA的各部分功能插件通過預定義的Eclipse擴展點進行擴展來向平臺添加新功能:
項目資源管理器插件 主要提供項目的資源管理,包括項目的目錄結構管理、項目文件管理、調用其他插件和項目部署等。其使用WTP(Web Tools Platform)提供的Projects Facets擴展技術,擴展WTP工程向導,進而添加創建VWESA項目類型的向導。創建向導主要完成Java web項目所依賴的JAR包加載,項目結構的初步規劃及項目所需配置文件設置等。通過擴展點coln.v-wesa.builder.vweaaNature的實現來完成VWESA項目特性的添加和刪除;通過擴展點orgeclipse.wst.common.project.facet.Core.facets,實現VWESA類型選項、JAR包的加載、項且工程結構規劃(數據資源包、業務流程包、服務元素包、Web界面包、解釋引擎包)等。
展現邏輯設計插件 涵蓋兩部分:基于圖形化編輯框架(娜jcal Editor Framework,GEF)的圖形化編輯與界面代碼生成,其提供給用戶一個可視化網頁編輯環境,通過將環境中控件與業務建模部分的ERP—BPEL流程對應。使得用戶通過拖拉控件即可完成目標ERP系統界面編輯。GEF可視化編輯器基于org.eclipse.ui.editors擴展點,分別設計Palette和Editor兩個基于GEF的小模塊。代碼生成器在每次圖形化界面設計完成后保存時觸發,根據頁面所用的元素產生相應的Web代碼和與解釋引擎交互的*.do文件。可視化編輯器讀取解釋引擎提供的*.htmlf的動作描述文件,經過代碼生成器分析利用,通過Web解釋引擎傳回動作名稱等參數與ERP-BPEL流程交互。Web解釋引擎根據*.do完成Servlet代碼二次生成,同時將*.jsp部署為Web應用。
業務邏輯設計插件 采用ERP-BPEL和CEF技術實現一個可視化業務流程建模環境。業務流程建模環境設計思想是:利用平臺提供的高級圖符,通過屬性調用服務元素庫中Web服務進而完成業務流程的編排。ERP-BPEL流程通過JET技術進行模型驅動代碼生成,包括ERP-BPEL文件、WSDL文件、Deploy.xml文件,并經過ODE解釋引擎部署、自動生成代碼,同時將ERP-BPEL流程對外發布為一個WebServiee以供開發者調用。該插件通過擴展editor、view,使用GEF實現基本的畫圖功能,包括畫圖、圖符工具集合;通過擴展propertyPages,結合GEF實現對圖符的屬性進行修改:通過擴展actionSet、popMenu,結合GEF實現對流程圖修改命令的實現,并響應Eclipse工具欄命令;通過擴展perspectives以實現對圖中的節點的透視瀏覽。
自定義元素開發插件 中小企業根據自己特有的業務模式,長期摸索并累積的適合自身業務流程的服務元素。
服務元素庫插件 該插件提供對服務進行描述、分類、存儲、檢索和版本更新管理等功能。服務元素庫存放、管理從企業業務流程中抽取、編寫的小粒度服務,以支持用戶的快速開發。如符合SOA規范的n3訂單錄入、訂單修改、訂單審核、訂單查詢等小粒度服務。插件基于org.eclipse.ui.views擴展點,實現服務元素管理功能,如:服務列表展示采用Eclipse JFace的TreeViewer控件,以樹型結構的形式列舉在視圖中。
數據庫建模插件 該插件提供一個可視化的面向對象的數據庫建模環境,可以實時對模型進行修改,采用JET技術實現模型自動生成Java文件、對象關系映射文件和Hibernate配置文件等,以便VWESA其他模塊可以通過Hibernate插件直接訪問數據庫。此外插件還支持數據庫數據管理,選中設計的對象可以直接查看該對象映射到數據表中的數據,可以對數據進行各種操作。該數據管理插件,通過擴展org.eliPSe.ui.editom擴展點實現可視化數據庫建模環境,方便開發人員開發,使開發人員不需懂得太多關系數據庫的知識,即可對數據庫表結構和數據進行可視化的管理。極大地提高ERP Web應用系統數據庫的設計效率,降低設計難度。
2 VWESA平臺模塊通信接口設計與實現
VWESA的SOA架構和插件結構使得各層問有著清晰的職責劃分,各模塊之問通過良好定義的通信接口Do]低耦合地實現企業ERP Web應用系統的快速構建。圖3明確定義了各模塊間的通信方式和接口表現形式。
圖3 VWESA各模塊問通信接口設計
1)資源管理器模塊與其他模塊。
VWESA開發平臺基于Eclipse插件。其各組成模塊均以獨立的插件形式存在。資源管理器模塊提供了用戶在使用VWESA開發平臺開發工程時的工程資源管理。資源管理器模塊為工程處理好對jar包的依賴關系、工程屬性的配置,以確保其他模塊在平臺上順暢運行。
2)數據庫建模、管理模塊與服務層開發模塊。
數據庫建模、管理模塊為設計好的數據庫生成數據庫操作所使用的Hibernate技術封裝API,然后以Hibernate的XML文件形式提供給Web服務;服務層開發模塊便可以通過使用這個XML文件獲得對數據庫操作的API,然后對其進行調用。
3)服務層開發模塊與BPEL業務建模模塊。
業務流程建模模塊中,當業務流程需要調用Web服務的時候,只需要Web服務的描述文檔WSDL文件。當用戶使用服務層開發模塊開發并部署好Web服務之后,服務層開發模塊便會為Web服務生成WSDL文件。然后在業務流程建模環境中配置圖符屬性,導人WSDL文件,便可完成對Web服務調用。
4)BPEL業務建模模塊與解釋引擎模塊。
根據系統架構設計,業務流程建模模塊與解析引擎模塊間接口是業務流程圖的WS-BPEL文件、WSDL文件和Deploy.xml文件。解析引擎模塊中第一引擎是ODE解析引擎,而該引擎負責部署、解析業務流程時需要相應ERP-BPEL文件。
5)解釋引擎模塊與web系統界面設計模塊。
解釋引擎模塊中ODE解釋引擎完成ERP-BPEL文件部署、解析,并將BPEL流程發布為web服務。Web解釋引擎通過ws2java方法將剛發布的Web服務生成Java文件,然后利用java2servlet將生成的Java文件解析成相應的servlet代碼,且生成供Web界面設計模塊調用的htmlf文件;在Web系統界面設計模塊中,對控件的屬性進行設置,調用解釋引擎生成servlet的*.do文件及jsp文件。最后Web解釋引擎對Web界面設計模塊JSP文件進行解析部署,最終生成可運行的目標ERP web系統。
3 應用實例
圖4就是我校ERP項目組利用VWESA平臺開發的某玩具廠ERP系統銷售供應商務平臺的一個界面,開發實踐證明了本平臺生成ERP Web系統的可行性。
圖4玩具廠ERP系統銷售供應商務平臺界面
首先在VWESA平臺中利用項目資源管理器插件,新建一個目標項目“ToysERP”,同時完成jar包的加載、項目結構搭建及目標工程項目的初始化工作;接著由展現邏輯設計插件的可視化網頁編輯環境,通過拖拉控件完成圖4目標系統界面的編輯及其控件元素的屬性設置,以完成與去其他頁面和ERP-BPEL建模結果的銜接;同時用戶必須利用服務元素庫插件、數據庫建模插件所提供的可視化環境完成案例中菜單和功能鍵所涉及的小粒度服務的編寫與積累(只涉及網頁鏈接的,如:菜單上的“首頁”和“企業介紹”則只需涉及網頁不同編輯界面的銜接關系,不涉及功能服務的編寫,服務編寫后編譯成Web service、生成WSDL文件、并打包、部署到AXIS2服務器);接著利用業務邏輯設計插件所提供的ERP-BPEL可視化業務流程建模環境,實現案例中菜單和功能鍵所涉及的業務流程調用的建模。通過添加綁定所需要的服務WSDL,調用所需的服務,再通過平臺提供的“生成BPEL代碼”完成WS-BPEL、WSDL、Deploy.xml的代碼生成;最后由解釋引擎模塊中ODE引擎部署、解析ERP-BPEL流程文件(解析WS-BPEL、WSDL、Deploy.xml文件,并將ERP-BPEL流程對外發布為Web服務,并生成servlet供Web系統界面編輯環境調用);由“部署Web應用”,完成圖4所示的運行界面的代碼生成,因篇幅關系這里略去生成的代碼。
4 結語
熟練使用VWESA平臺后,可以簡單、快速地構建出所需要的B/S ERP目標系統。構建實踐證明本平臺技術方案可行、高效。其特點在于:1)整個平臺開發為基于Eclipse的獨立插件,開發效率高、擴展性好;2)采用ERP-BPEL技術,實現可視化的業務流程建模,使得流程建模更開放、靈活,提高了企業業務流程重組的靈活性和業務敏捷性;3)VWESA實現了多種Web界面編輯組合與敏捷業務流程的無縫連接,適合開發、生成需求多變的ERP系統,下來將力爭達到規模應用的水平。
轉載請注明出處:拓步ERP資訊網http://m.guhuozai8.cn/
本文網址:http://m.guhuozai8.cn/html/consultation/1082007981.html