ERP即企業(yè)資源計劃(EntERPrise Resources Planning),是由美國加特納公司(Gartner Group Inc.)最早于90 年代初提出的一種管理理念。它是建立不斷發(fā)展的信息技術基礎之上,利用現代企業(yè)的先進管理思想,全面地集成了企業(yè)的所有資源信息,并為企業(yè)提供決策、計劃、控制與經營業(yè)績評估的全方位和系統(tǒng)化的管理平臺。傳統(tǒng)ERP 主要有財務管理、生產管理、供應鏈等在企業(yè)內部使用的系統(tǒng);軟件主要在局域網中以客戶機服務器(CS:Client-Server)方式運行,也有少數公司的產品能在Internet 上以瀏覽器服務器(BS:Browser-server)方式運行。隨著企業(yè)規(guī)模不斷擴大、競爭更加激烈、管理更加科學,現代ERP包括更多的內容,如CRM(Customer Relationship Management)、電子商務(E-COMMERCE)、辦公自動化等。同時要求ERP 系統(tǒng)不僅能在局域網上運行,也要能在Internet 上運行,以便解決企業(yè)與企業(yè)、企業(yè)與客戶之間的協(xié)作及遠程辦公等需要。.net 平臺是一個功能強大、高效、可擴展的新型的編程環(huán)境,提供了生成應用系統(tǒng)所需要的先進技術和支持未來計算的高效開發(fā)工具,帶來了全新的、快速而敏捷的企業(yè)計算能力。利用.net 平臺,許多過去極端復雜、費時費力、甚至讓人望而生畏的開發(fā)任務現已經變得非常容易。
文章下面結合筆者的研究成果及實踐經驗,提出一個基于.net 系統(tǒng)平臺的先進的新一代ERP 技術架構。此架構充分結合了CS 結構開發(fā)容易、使用方便、效率高等優(yōu)點,和BS 結構易于安裝部署維護、在Internet 上運行等優(yōu)點,滿足了企業(yè)要求ERP 系統(tǒng)安全、高效、易用、能在Internet 上運行等需要,以及開發(fā)商要求系統(tǒng)便于開發(fā)的優(yōu)點。
1 技術架構
圖1 展示了該文提出的基于.net 的多模ERP 技術架構。此架構主要采用了先進的三層分布式結構、易于部署和開發(fā)的智能客戶端技術、以及可根據企業(yè)需要進行選擇的多模運行技術。
圖1 基于.net 的多模ERP 技術架構
1.1 三層結構
在三層系統(tǒng)結構中,第一層是表示層,主要完成應用系統(tǒng)與用戶的交互, 負載輕。它通過統(tǒng)一的界面對象(Interface Object)訪問應用服務器中的業(yè)務對象。第二層是業(yè)務層,應用系統(tǒng)的業(yè)務邏輯主要在此實現,它承受整個系統(tǒng)大多數負載。業(yè)務層采用組件對象技術進行開發(fā),使用應用服務器(Application Server)進行管理。業(yè)務層中業(yè)務組件通過數據庫引擎(這里是ADO.nET)訪問關系數據庫。第三層是數據層,完成數據的存儲和管理。
三層結構把整個系統(tǒng)的表示邏輯、業(yè)務邏輯、數據庫系統(tǒng)分開管理,使得每個層次的任務明確、結構清晰。應用服務器的使用使得大量客戶端的情況下改善了性能。由于運行業(yè)務邏輯的應用服務器和數據庫服務器是集中存放集中管理的,提高整個系統(tǒng)的可靠性、安全性。三層系統(tǒng)中功能邏輯的合理劃分使得組件更容易復用,系統(tǒng)更易于集成。此外三層系統(tǒng)中服務器集中進行業(yè)務處理,便于系統(tǒng)部署及維護,負載平衡技術保障了隨著企業(yè)規(guī)模擴大系統(tǒng)具有很強的可擴展性、保護了企業(yè)投資。
業(yè)務層是整個系統(tǒng)最復雜的部分,限于篇幅這里作了許多簡化。實體(Entity)指業(yè)務活動中所涉及到的物或人的計算機描述,如單據、憑證等,通常表現為數據。從開發(fā)角度上講,實體一般是值對象(Value Object),可在需要時進行串行化(Serialize)及反串行化操作,以便在網絡中傳輸以及由數據恢復對象。業(yè)務活動及其行為可以改變實體的狀態(tài),如審核單據等。把這些改變實體狀態(tài)的業(yè)務活動進行抽象化,稱其為服務(Service)。服務一般表現為計算和行為,從開發(fā)角度上看是數據處理。另外在程序設計中,也把那些為其它模塊完成某些功能提供支持的對象,稱為這些模塊的服務。業(yè)務層中業(yè)務組件一般表現為服務。界面對象是服務的一種,直接為客戶端界面(這里是基于Windows Form 的智能客戶端)提供服務,是客戶端通過服務器處理業(yè)務的門戶。起到隔離客戶端與服務器、減少客戶端與服務器的交互次數以提高性能、簡化體系結構的作用。界面對象代替?zhèn)鹘y(tǒng)的控制類,但它職責更明確、更容易創(chuàng)建和使用。
1.2 智能客戶端
傳統(tǒng)ERP 系統(tǒng)計算模型主要有兩種,以CS 為代表的胖(Rich)客戶端模型和以BS 為代表的瘦(Thin)客戶端模型。前者一般在局域網中運行,效率高、易于開發(fā)和使用但不易于部署和維護;后者通常在Internet 上運行,效率低、易于部署維護但不易于開發(fā)和使用。智能客戶端(Smart Client)是一種新型的客戶端模型,它結合胖客戶端和瘦客戶端的優(yōu)點,克服了它們的缺點成為新一代ERP 系統(tǒng)更好的選擇。
基于.net 的智能客戶端模型充分滿足了開發(fā)人員、維護人員和用戶三方需求,結合胖客戶端開發(fā)用戶界面的強大功能與彈性以及瘦客戶端的容易部署與維護。智能客戶端基于Windows窗體(Forms)技術開發(fā),借助于Visual Studio.net 等先進的集成可視化開發(fā)環(huán)境,開發(fā)人員能夠非常方便、高效地開發(fā)出靈活易用的圖形用戶界面。它比傳統(tǒng)的B / S 架構用HTML及腳本寫的Web 界面更易于用戶使用、開發(fā)成本也要低的多。系統(tǒng)安裝時只要將一個主程序文件下載到本地,直接運行即可,甚至可以直接通過Web 訪問直接運行。其他應用組件將在需要的時候由主程序自動發(fā)現服務器上最新版本的程序集和應用組件,自動下載和更新。解決了CS 結構中的部署問題,這也是基于BS 架構的ERP 的主要優(yōu)點之一。
在此架構中,客戶端主程序文件指應用程序瀏覽器(Application Browser),它是一個負責運行、配置及管理應用組件的容器。與應用服務器不同的是,應用程序瀏覽器負責管理應用組件與用戶交互的客戶端界面,而應用服務器負責管理應用組件中業(yè)務處理部分,即業(yè)務組件。當用戶完成業(yè)務時候,應用程序瀏覽器根據需要自動從服務器下載最新用戶界面(Form 或User Control)組件,用戶與界面通過交互完成任務。表1 描述了三種客戶端模型的特性比較。
表1 三種客戶端的比較
1.3 多種運行模式
使用基于此架構的ERP 系統(tǒng),企業(yè)可以根據自身需要有選擇地進行部署?梢圆捎帽阌趩蝹局域網上使用的本地(Local)模式,或者大型企業(yè)內部使用的Intranet 模式,及具有完全Web 能力的Internet 模式,也可以根據需要采用三種模式的混合模式。
本地模式邏輯上屬于三層結構,而部署類似于傳統(tǒng)的CS結構。它適合于企業(yè)內部的應用系統(tǒng),客戶端界面和業(yè)務組件在同一個進程中運行,對象之間直接引用而不需要遠程訪問或在網絡上傳輸。優(yōu)點是速度快、安全性高、對硬件要求低。缺點是所有用戶被限制在同一個局域網區(qū)域,部署時需要在每一臺客戶端機器上安裝,比較麻煩。如果設置一臺部署服務器,則可解決此問題。本地模式適合許多中小企業(yè)或大企業(yè)某些部門使用。
在Intranet 模式中,智能客戶端通過TCP / IP 通道訪問位于應用服務器中的業(yè)務組件,遠程調用及數據實體(Entity)以二進制形式在通道中傳輸;赥CP / IP 協(xié)議的特性使其能在跨越局域網時還能很好運行,理論上也可以在Internet 上運行,但企業(yè)的防火墻常常會阻止直接TCP / IP 通信?傊甀ntranet模式對于需要跨越多個局域網的企業(yè)內部系統(tǒng)是一個比較好的選擇,速度也比較快。
在Internet 模式中。智能客戶端通過HTTP 通道訪問位于應用服務器的業(yè)務組件,遠程調用及數據實體(Entity)以XML文本形式在通道中傳輸。客戶端與服務器通訊用SOAP(Simple Object Access Protocol)協(xié)議,它是基于XML 和HTTP(理論上也可以是其它協(xié)議)的遠程對象訪問協(xié)議,其開放的國際標準及純文本特性非常適合Internet 上使用。
本地模式是邏輯上的三層結構,代碼實際運行在一個進程中。Intranet 模式和Internet 模式是真正的三層結構,兩者底層傳輸協(xié)議不同、實體(值對象)串行化方式不同,適用于不同的場合。選擇哪種模式是企業(yè)自身的需要,部署時做簡單的配置就可完成,且三種模式開發(fā)人員只需編寫一套代碼,節(jié)省開發(fā)成本。表2 是三種模式各種特性的比較。
表2 三種運行模式特性的比較
2 實現技術
智能客戶端的實現如圖2 所示。主要原理是在裝入應用組件的程序集(Assembly)時,如果本地不存在對應的程序集,或者本地存在的程序集比服務器上的程序集舊,則從服務器上下載最新的程序集。下載可以在實際需要時自動進行(網絡運行方式),也可以使用更新組件一次性下載最新組件(本地運行方式),詳細實現參照相關Net資料。
圖2 智能客戶端實現原理
多模技術的實現原理如圖3 所示,筆者采用變形的抽象工廠(Abstract Factory)[4]模式。抽象工廠模式中,要對每一個需要根據配置創(chuàng)建的對象編寫一個工廠實現方法(如Create ProductA)。考慮ERP 系統(tǒng)的規(guī)模以及對靈活性擴充性的要求高,對抽象工廠做適當變形,把要創(chuàng)建的對象類型作為參數傳入工廠的創(chuàng)建方法(Create 方法),同時可選擇地傳入要創(chuàng)建對象的構造函數參數。這里把Intranet 模式和Internet 模式的工廠合并為一個Remote Servie Factory 實現,由系統(tǒng)配置區(qū)分;本地模式的服務對象工廠為Local Servie Factory。
圖3 多模技術的實現模式
系統(tǒng)使用的服務工廠根據系統(tǒng)配置創(chuàng)建,客戶端使用服務工廠創(chuàng)建服務對象,由服務工廠決定創(chuàng)建的是遠程服務的代理還是本地服務對象的直接引用,客戶端通過同服務對象的接口訪問服務而不需區(qū)分是服務本身還是代理。遠程服務與其代理符合代理模式(Proxy Pattern),使用.net 中遠程(Remoting)技術很容易實現。
3 部署
基于此技術架構實現的系統(tǒng)有多種部署方式,圖4 是常見典型的混合模式部署。系統(tǒng)的業(yè)務組件放在企業(yè)防火墻后面的應用服務器上。使用智能客戶端的各種用戶在企業(yè)內部通過Intranet 訪問系統(tǒng)、在企業(yè)外部通過Internet 訪問系統(tǒng)。基于此技術架構的系統(tǒng),總體上實現了部署維護簡單、用戶使用方便、開發(fā)低成本、運行高效率的優(yōu)點。
圖4 典型的系統(tǒng)部署
4 小結
文章闡述了一個基于.net 的新一代ERP 技術架構,重點討論新架構的三層結構、智能客戶端、多種運行模式幾個特性。需要一提的是,圖1所描述的架構是一個經過抽象簡化了的技術架構,有些內容如組件技術及面向服務(service-oriented)都沒有介紹。而對于開發(fā)一個大型的先進的ERP 系統(tǒng)來講,涉及到技術及方法、工具及過程等眾多因素,需要支持企業(yè)的業(yè)務流程重組、協(xié)同工作、系統(tǒng)集成等特性,這里也都不再描述了。另外,此技術架構不僅適用于ERP 系統(tǒng),它先進的特性,極低的開發(fā)成本對于許多信息系統(tǒng)來講都是一個很好的選擇。此架構提到的一些技術也不僅是在.net 下才能實現,有些技術在一些系統(tǒng)中早已存在,只是.net 平臺從系統(tǒng)和語言級別對這些技術提供了支持,使得基于此架構開發(fā)應用系統(tǒng)變得更為簡單、有效、便捷。在實踐方面,得到國家支持,由國內外眾多專家設計的新一代用友U8.net ERP 系統(tǒng)正在緊鑼密鼓地進行,此技術架構在U8.net 產品中得到充分的應用,獲得了很好的效果。
轉載請注明出處:拓步ERP資訊網http://www.ezxoed.cn/
本文標題:基于.net 的多模ERP 技術架構