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