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