1 綜述
企業資源計劃(ERP:EntERPrise Resource Planning)系統集信息技術與先進的管理思想于一身,實現了對企業的采購,生產。銷售,分析,決策的全面管理,已經成為當前信息化企業管理的基礎。以ERP軟件系統為基礎,企業能夠及時準確的收集數據,分析經營狀況、財務狀況,提高管理的效率。
隨著企業管理理念的變化,當前ERP軟件系統不僅要實現對企業供應鏈資源的全面管理,還要完成上下游企業協同工作的管理,為了實現這些功能,現在的ERP軟件系統的規模一般比較龐大,例如金蝶K3 Wise 12.0標準版有八萬個以上的頁面組成。此外,ERP軟件系統還有大量的復雜的業務邏輯需要處理。
傳統的軟件開發流程是先根據需求確定各個模塊的功能,然后分別對每個界面上的所有元素進行設計,最后對界面的邏輯功能進行編碼實現。對每個界面,及界面上的每個元素都需要單獨進行設計和編碼。界面上任何功能的調整,都需要對整個代碼進行重新編譯和發布。系統的開發效率很低,發布成本很高。
ERP軟件系統的大量頁面需求與頁面開發的低效率產生了矛盾。傳統的開發模式已經不能滿足現代大型ERP軟件開發的需求。為了解決這個問題,金蝶公司將領域模型應用到ERP軟件建模中,提出了ERP動態領域模型的概念。
2 領域模研究現狀
領域模型是對領域內的概念類或現實世界中對象的可視化表示。它專注于分析問題領域本身,發掘重要的業務領域概念,并建立業務領域概念之間的關系。
在進行領域建模時,一般先根據業務分析得到一個名詞列表,然后對名詞列表進一步抽象,確定業務對象實體及實體間的關系。業務對象實體要不僅反映目前的經營實體,還要給需求分析人員和系統功能提供了一定的擴展視野。接著,從業務實體集合中抽象業務模型,建立問題域的概念。最后。用使用UML提供的方法和圖例進行領域模型設計、確定模型之間的關系。
中國科學院計算技術研究所的王宇等阿通過機器學習方法對信息抽取過程進行領域建模,實現了互聯網信息挖掘的研究。
吉林大學的王曉燕等既使用領域模型捕獲系統業務的靜態需求,描述領域內業務對象之間的靜態關系,建立一套軟件開發框架。
華中科技大學的黃靖等通過擴展FODA(Feature-Oriented Domain Analysis)方法,將實時特征作為實時應用需求空間的一階實體來認識和組織實時應用系統領域模型。
可以發現這些研究是以靜態領域模型為基礎,以名詞列表為最小分析對象,因此業務對象實體的粒度較大,模型的通用性不高。
3 ERP軟件建模的現狀
ERP系統作為一類重要的應用軟件系統,真有自己的特點,主要有兩個方面:
①系統規模大,目前市場上常見的ERP系統一般都有幾百個頁面。
②頁面邏輯相似性強。經過比較可以發現,大部分ERP頁面具有類似的功能,以數據的錄入,修改,顯示為主。
結合ERP系統的這兩個方面的特點,國內外多個組織進行了系統建模的研究,希望能夠提高ERP系統的開發效率和軟件質量。
合肥工業大學的吳冒等川提出了一種基于元模型的業務建模方法。對WFMC工作流過程定義元模型進行改進.擴展出了一個從組織、功能、信息、資源和過程五個個側面對ERP業務進行描述的領域元模型。
哈爾濱理工大學的高長元等結合集成化企業建模和DEM的思想,設計了面向制造業ERP的企業建模框架,并對其中的視圖維、生命周期維、通用層次維以及它們之間的關系進行了詳細設計。
重慶工學院的王柯柯等網在分析UML建模特點的基礎上,提出了使用統一建模語言UML對ERP系統建模。
這些ERP建模方法在其特定的環境下,部分解決了ERP軟件建模的問題。但這些建模方法還是基于粗粒度的實體進行研究的,不能實現動態的構建和解析。
4 ERP動態領域建模
ERP系統規模龐大,除了要設計大量的頁面外,還有復雜的工作流程,業務邏輯等需要處理。如果對每個功能模塊分別進行設計、實現,必然造成開發效率低下,開發成本高的問題。
領域建模作為一種有效的應用建模方法,可以方便的將應用項目需求轉化為計算機軟件模型。但傳統的領域建模研究對象的粒度較大,不能靈活適應動態變化的需求。
金蝶公司在分析ERP系統特點的基礎上,進一步細化領域模型的對象實體,提出了ERP動態領域模型的概念,較好的解決了ERP軟件開發中的一系列問題。
4.1傳統的領域模型
構建領域模型一般包括如下四個步驟:
①根據業務分析列出系統中的名詞列表。
②對名詞列表進行抽象,得到對象實體。
③從業務實體集合中抽象業務模型,建立問題域的概念。
④使用UML提供的方法和圖例進行領域模型設計、確定模型之間的關系。
確定對象實體是整個領域建模的核心問題,對象實體的抽象層次決定了最終的領域模型。
針對ERP系統,使用傳統的領域建模理論有如下兩種選擇對象實體的方法。
①選取ERP應用的對象作為對象實體,例如:原材料、供應商、皮付款、中間件、產品、經銷商、應收款等,使用這種領域模型能夠很好的分析系統的各種需求。但是這種方法沒有抓住不同業務模塊(頁面,工作流等)的共有特性,軟件設計必然是以單個業務模塊為單位。
②先使用第一種領域建模得到單個業務模塊的概要設計,然后以此為基礎,根據不同模塊的特點,將相似的模塊歸類,以相似的模塊作為領域模型的實體對象。
這種方法得到的領域模型的對象實體是模塊級的,界面設計是以頁面組為單位,相似的多個頁面可以共用一個模型作為母板,比第一種方法有較大的改進。但是如果界面上的元素或操作發生變化,就必須重新設計界面模型,修改代碼。不能實現界面在部署環境的按需動態構建。
4.2動態領域建模框架
金蝶公司的技術人員在傳統的粗粒度的領域模型的基礎上,以模塊上的基本元素為研究對象,提出了ERP動態領域模型的概念。
動態領域建模由模型庫,領域模型,領域模型動態解釋引擎三個部分組成。如圖l所示。
圖1 動態領域建模框架
先根據多個ERP系統分別進行抽象,得到多組基本對象實體。然后對這些對象實體再進一步抽象,得到模型庫(包括通用的元模型庫和特定行業的定制的專用模型庫)。接著使用這些模型元素構建ERP系統的功能模塊,當需要加載某個模塊時,使用動態解釋引擎將設計好的功能轉換為內存中的映射。
模型庫被封裝成動態鏈接庫的形式提供給開發人員使用,動態解釋引擎將設計好的功能轉換為內存中的映射。開發人員可以使用Silverlight,JSP等多種形式將內存中的映射展示給用戶。系統具有很好的跨平臺性和兼容性。
4.3領域元模型
領域元模型是進行動態領域建模的基礎。金蝶公司結合80萬家ERP客戶的最佳實踐,建立了一套完整的ERP領域元模型。
結合ERP系統的特點,ERP動態領域模型包括模型——元素——屬性三層體系結構。
圖2 三層領域模型結構圖
模型對應于ERP系統中模塊的種類。例如頁面,工作流,電子報表,算法等。每一類有自己獨特的特點,需要使用不同的方法進行設計。
針對ERP系統中常見的功能模塊,建立了界面模型、工作流模型、算法模型等十多種ERP領域模型,如圖3所示。并根據部分特定行業的特殊要求,定制的一些專用元模型。
圖3 ERP動態領域模型
ERP領域模型確定了模塊的大的分類.粒度較大,還需要進一步細化。針對一個個具體的基本元素進行研究。
例如一個典型的頁面的由菜單、文本輸入框、時間輸入框、列表、顯示信息等多個控件組成。每一種控件可以看作是一個基本元素,圖4是一個典型的頁面包含的元素示意圖。
圖4頁面元素示意圖
在一個頁而上相同種類的控件可能會有很多個,它們顯示的內容和格式都可能不同。例如,一個應收單上有兩個文本輸入框,一個要輸入應收金額,一個要輸入收款單位。應收金額只能輸入數字,長度20個像素。收款單位可以輸入中文和英文,長度100個像素。
在金蝶ERP動態領域模型中,元素的差異性使用元素的屬性來表示。每個元素都有多個可以動態修改的屬性。例如文本框有類型、長度、高度、綁定的數據庫字段等多種屬性。
除了頁面外,ERP系統中常見的多種功能模塊,也都使用類似的方法進行分析,得到元模型。
例如工作流由多個動作及連線組成。可以分別抽象成元模型。動作的具體操作、執行者、條件等都作為該元模型的屬性。設計一個業務流程模式后,改變動作的屬性值可以根據需要設計出不同的業務流程。
再例如。設計電子報表時。在不同的場景下需要不同的計算公式,傳統的方法是將具體的公式作為程序代碼的一部分,這就增加了修改和維護的難度。使用動態領域建模的方法,將公式定義為一種元模型,具體的公式表達武作為該元素的屬性值。可以在不需要修改代碼的前提下,得到各種滿足需要的公式。
4.4基于動態領域模型的業務模塊設計
經過以上的步驟,元模型數據就確定了。所有的這些元模型數據的定義都是抽象的。與具體的業務邏輯無關的。
要使用領域元模型來設計具體的業務模塊,先要以領域元模型為基礎建立一個業務模塊設計平臺。這里不詳細介紹該平臺的建立過程。
業務模塊設計平臺建立后,可以使用該平臺來進行具體的業務模塊的設計。
業務模塊的設計分為以下幾個步驟:
①確定模塊的需求。
②使用設計平臺提供的環境,使用領域元素進行模塊設計。
③分別指定各領域元素的屬性,完成模塊的特定需求。
④將設計好的模塊保存為XML文件,以備調用。
作為一個典型的例子,使用動態領域模型設計一個具體的頁面的步驟如下:
①確定該頁面要完成的功能(需求)。
②將選定的基本元素(文本輸入欄,列表,菜單,按鈕等)放置到頁面上。
③設定各元素的屬性。不同的頁面元素對應不同的屬性值。屬性值可能是頁面元素的位置,長度等外觀信息,也可能是校驗規則,數據庫字段等邏輯信息,也可能是操作等控制信息。
④將頁面上的所有元素及它們的屬性保存到XML文件中。
4.5模塊設計的繼承和組合
前面提到了使用領域建模的基本元素進行模塊設計的過程。該過程是從基本元素開始的。
ERP系統中的模塊很多,而且很多模塊有一定的相似之處,如果能夠利用設計好的模塊來簡化其他模塊的設計將大大提高系統的開發效率。在動態領域模型中,使用繼承和組合兩個方法來實現這個功能。
繼承就是先使用基本元素設計好一個模塊。然后以這個設計好的模塊為基礎,增加,修改,刪除部分元素,或修改部分元素的屬性值來完成新的模塊的設計。
圖5 模塊繼承
被繼承的模塊的修改將引起子模塊的自動修改。
使用繼承的方法設計模塊,將得到兩個XML文件。一個是被繼承的模塊的XML文件,一個是子模塊的差量XML文件。差量XML只保存子模塊相對干被繼承模塊修改的部分。
組合是先使用基本元素設計好一個模塊。然后將這個設計好的模塊作為新的模塊的一個組成部分來完成新的模塊的設計。
圖6 模塊組合
一個新的模塊可以包含多個設計好的模塊。并且可以修改所包含的模塊。例如新的模塊A包含設計好的模塊B和C。可以根據需要修改為包含模塊C和D。被包含的模塊的修改將引起最終模塊的自動修改。
采用組合方法設計模塊時,將得到多個XML文件,分別為被包含模塊的XML文件和最終模塊的XML文件。修改被包含模塊的XML文件將直接引起最終模塊功能的變化。
4.6領域模型動態解釋引擎
經過以上的步驟,ERP系統中的模塊(包括頁面。業務流程。報表等)以XML文件的形式保存了起來,當要加載模塊時,需要將XML文件轉換為模塊在內存中的映射,這部分工作由動態解釋引擎負責。圖7是動態解釋引擎的示意圖。
圖7動態解釋引擎示意圖
動態解釋引擎由展示層,服務層,內核層組成。當XML文檔輸入解釋引擎后,內核層讀取元模型數據解析XML文檔,并將結果交給服務層。服務層將解析結果封裝成可以在網絡中傳輸的JSON數據包,并發送到展示層。展示層收到JSON數據包后。使用不同的方式晨示綺用戶。具體說明如下:
內核層:負責根據存儲的元模型數據動態解析模塊XML文檔。模塊的種類不向,解析時使用的模型也不同。動態頁面,報表等顯示類的模塊與業務流程等處理類模塊處理方式有較大的不同。服務層:將內核層處理的結果組裝成模塊在內存的映射。動態頁面,報表等顯示類的模塊轉化為可以在網絡傳輸的JSON數據包。業務流程等模塊中的自動動作將直接執行,需要與用戶交互的動作將轉化為JSON數據包。
展示層:由一系列標準的UI控件組成,根據服務層返回的結果進行窗體控件動態創建并接受用戶數據輸入,完成系統與用戶的交互。不同的模塊給用戶展示的方式不同。
4.7模塊設計的擴展
使用前面介紹的基于動態領域建模的模塊設計方法可以完成大部分模塊的設計工作。但是可能還有一些模塊的特殊功能無法實現,這部分功能使用插件的方法來實現。
例如在業務流程設計時。系統內置了大量的動作,但如果要執行特殊的沒有內置的功能,就需要定義新的動作,必須使用插件來實現。
插件的設計也是基于動態領域模型的。每一種元素在系統中有相應的基類和一系列虛方法。插件就是在這些基類和虛方法及基礎上通過繼承的方法來擴充基本元素的功能。
一個基本元素可以定義多個插件,實現多種擴充,具體進行模塊設計時,通過將合適的插件在模塊上注冊的方法實現不同的擴充。
將插件在系統中注冊后,在解析時,將使用插件中定義的類和方法覆蓋系統中的基類和虛方法,從而在不改變平臺的基礎上擴充功能。
5 實現
經過大量金蝶人的共同努力,已經成功的將動態領域建模應用到了ERP軟件建模中。
金蝶公司結合80萬家ERP客戶的最佳實踐,抽象出10多種ERP領域模型、365種基本元素、7000多個元素屬性、上百個業務邏輯構件,并以此為基礎,設計一個BOS(Business Operating system)系統。作為模型設計器和模型動態解釋引擎。BOS系統已經在金蝶ERP系統開發中得到了應用。
使用動態領域建模后,ERP系統開發變成了在BOS平臺上界面的設計,幾乎不需要修改任何代碼,而且可以很好地保持界面質量的一致性。經過簡單的培訓,實施顧問和最終用戶都可以配置出專業的ERP應用,、
將動態領域建模技術應用到ERP應用系統開發后,開發效率大幅上升,系統的可遷移性得到了顯著提高。采用這種技術前,90%的精力花費在具體頁面的設計上,無法專注與ERP業務流程的設計。采用動態領域建模技術啟,頁面開發的時問降低為10%。開發人員90%的精力關注業務邏輯設計和系統建模。從而可以開發出更加適合企業需求的產品。
另一方面,采用新的技術后,系統開發的難度大幅下降,新員工經過簡單培訓就可以開始工作。同時。由于減少了代碼修改的數量,系統的質量也得到了大幅提高。
6 結論
動態領域建模是對模型驅動架構MDA似(Model Driven Architecture)一設計思想一種擴展。金蝶公司在ERP動態領域建模方面進行了大量的探索和實踐,經過3000家以上平臺客戶實踐,抽象出獨特的標準、行業、伙伴、客戶的多層次開發模型。能夠支持成果組合應用與平滑升級,形成平臺批量交付能力。
動態領域模型具有以下幾方面的優勢:
①可以大幅提高了ERP系統的設計和開發效率,有效提升軟件產品的質量。
②獨特的模型解釋系統,設計出來的產品具有良好的動態性。
③微內核架構設計,模型可持續發展,是一個能夠自我學習和自動進行行業知識積累的智慧無模型系統。
④技術無關性,適應IT技術發展變化。
基于動態領域模型的設計方法可以推廣到其他類似的大型軟件系統中,具有較高的理論和應用價值。
轉載請注明出處:拓步ERP資訊網http://m.guhuozai8.cn/
本文標題:ERP動態領域模型
本文網址:http://m.guhuozai8.cn/html/consultation/1082066186.html