系統(tǒng)架構設計方案_第1頁
系統(tǒng)架構設計方案_第2頁
系統(tǒng)架構設計方案_第3頁
系統(tǒng)架構設計方案_第4頁
系統(tǒng)架構設計方案_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、erp 系統(tǒng)架構設計方案2009 年 5 月版本控制版本注釋作者時間erp系統(tǒng)架構設計方案初稿麥仲博2009-05-28一、前言二、架構設計架構分析架構定義架構說明軟件邏輯結構三、具體功能簡述自定義工作流解決方案多語言解決方案消息發(fā)布 / 訂閱系統(tǒng)方案報表 & 打印方案四、系統(tǒng)平臺 &支撐組件五、系統(tǒng)網絡結構六、開發(fā)管理層面一、前言一個企業(yè)級的商業(yè)軟件能夠滿足用戶需要、正常運行、易于維護、易于擴展,必須擁有一個良好的軟件架構支撐。本文主要是分析和構建一個企業(yè)級商業(yè)軟件架構。二、架構設計架構分析企業(yè)級的商業(yè)軟件架構在技術層面的要求主要體系在高性能、健壯性和低成本。高性能對于企業(yè)級

2、商業(yè)軟件來說,軟件架構需要盡可能地使軟件具有最高的性能,支持最大的并發(fā)性。健壯性企業(yè)級的商業(yè)軟件要求軟件是可靠的和無缺陷的?,F在的架構一般是,服務器模式的。 軟件的可靠和健壯主要依賴與服務器。服務器的穩(wěn)定通過良好的代碼和完備的測試能夠解決這個問題。低成本企業(yè)級商業(yè)軟件還有一個很重要的要求:低成本。 軟件架構要求簡單、易掌握, 復雜度低,易于維護和擴展,易于測試。架構定義本架構以 xml為整個系統(tǒng)的交互接口,包括系統(tǒng)架構內部和外部。整個系統(tǒng)分為界面展示層,流程控制層和數據存儲層。架構說明系統(tǒng)架構圖企業(yè)控制系統(tǒng)資源倉庫安全服務適配器連通服務流程服務協(xié)作服務交互服務信息服務輔助工具運行管理工具報表配

3、置 &規(guī)則web 客戶端 (b/s)智能客戶端 (c/s)mobile功能服務erp 架構中各核心服務之間滿足松散耦合特性,具有定義良好的接口,可通過拆分與組合,可以有針對性地構建滿足不同應用場景需求的erp 應用系統(tǒng)。2.3.1 適配器在集成環(huán)境中需要復用已有的應用系統(tǒng)和數據資源,通過適配器可以將已有應用系統(tǒng)和數據資源接入到erp應用系統(tǒng)中。通過適配器可以實現已有資源與erp系統(tǒng)中其它服務實現雙向通訊和互相調用。首先通過適配器可以實現對已有資源的服務化封裝,將已有資源封裝為一個服務提供者,可以為erp應用系統(tǒng)中的服務消費者提供業(yè)務和數據服務,其次通過適配器,也可以使已有資源可以消費

4、erp應用系統(tǒng)中的其它服務。2.3.2 資源倉庫資源倉庫主要功能是提供服務描述信息的存儲、分類和查詢功能。 對于廣義的資源倉庫而言, 除了提供服務類型的資源管理外,還需要提供對其它各種資源的管理能力,可管理對象包括:人員和權限信息、流程定義和描述、資源封裝服務、服務實現代碼、服務部署和打包內容、以及環(huán)境定義和描述信息。資源倉庫首先需要提供服務描述能力,需要能夠描述服務的各種屬性特征,包括: 服務的接口描述、服務的業(yè)務特性、服務的質量特征( 如:安全、可靠和事務等) 以及服務運行的qos屬性。2.3.3 連通服務連通服務是erp基礎技術平臺中的一個重要核心服務,典型的連通服務就是企業(yè)服務總線(e

5、nterprise service bus,esb),它是服務之間互相通信和交互的骨干。連通服務的主要功能是通信代理,如服務消費的雙向交互、代理之間的通信、代理之間的通信質量保障以及服務運行管理功能等。連通服務還需要保證傳輸效率和傳輸質量。連通服務一般應用于連接一個自治域內部的各個服務,在自治域內部服務都是相對可控的,所以連通服務更多應該考慮效率問題。2.3.4 流程服務流程服務是為業(yè)務流程的運行提供支撐的一組標準服務。業(yè)務流程是一組服務的集合,可以按照特定的順序并使用一組特定的規(guī)則進行調用。業(yè)務流程可以由不同粒度的服務組成,其本身可視為服務。流程服務是業(yè)務流程的運行環(huán)境,提供流程驅動,服務調

6、用,事務管理等功能。流程服務需要支持機器自動處理的流程,也需要支持人工干預的任務操作,它支持的業(yè)務流程主要適用于對運行處理時間要求不高的,多方合作操作的業(yè)務過程。2.3.5 交互服務交互服務實現人與服務之間的交互功能。交互服務就是需要提供一組完整的功能,以實現人與服務的便捷交互,既能支持多種交互渠道( 如瀏覽器方式,富客戶端方式和移動接入方式等 ) ,也能支持多種交互能力( 如單點登錄、 個性化、 支持各種資源的統(tǒng)一內容管理等) 。2.3.6 協(xié)作服務協(xié)作服務用來解決自治域之間及自治域內部的交互通信。協(xié)作服務強調標準的采用,強調平等協(xié)作。 具體實現技術時將更多的考慮采用wcf 相關技術, 以實

7、現流程協(xié)同, 服務交互,和各種質量屬性管理( 如事務管理、可靠傳輸和安全管理等) 。2.3.7 安全服務像 erp這樣強調松散耦合的分布式集成系統(tǒng),安全性顯得尤為重要。安全有時被稱為一種“事關全局的考慮” ,是全方位的問題,它跨越erp參考架構模型的各個部分。安全服務向erp參考架構模型中其他服務提供基本的安全服務功能,包括:身份驗證、訪問控制、數據加密、數據完整性和抗抵賴性,以及安全信任、身份聯邦、安全會話、安全策略等。2.3.8 信息服務信息服務特指為利用上述各種基本的核心服務提供信息管理和使用的服務。具體包括提供元數據管理功能,以一種統(tǒng)一的方式描述erp系統(tǒng)中所需要使用的各種信息數據。它

8、也提供對各種類型數據(包括結構化數據和非結構化數據) , 以及分布在不同地方的數據進行統(tǒng)一的訪問管理。信息服務其目標是使應用系統(tǒng)能夠統(tǒng)一、透明、高效地訪問和操縱位于網絡環(huán)境中的各種分布、異構的數據資源,為實現全局數據訪問、加快應用開發(fā)、 增強網絡應用和方便系統(tǒng)管理提供支持。2.3.9 運行管理工具運行管理工具提供界面友好的圖形化方式的監(jiān)控和管理工具,提供對各種資源和服務對象的運行管理功能。監(jiān)控管理工具需要管理核心服務,也需要管理應用服務??梢圆榭锤鱾€服務的運行狀態(tài)和歷史信息,也能對服務進行啟動、停止、暫停、恢復、版本升級等管理控制操作, 同時需要提供分析和統(tǒng)計功能,可以根據服務運行信息實現對系

9、統(tǒng)的調整和優(yōu)化操作。軟件邏輯結構軟件架構圖view(silverlight)( 表示層 )view(winform)( 表示層 )view(web form)(表示層 )view(wpf)( 表示層 )binding( 數據通道 )iviewmodel(數據源接口 )view model(表示模式 )wcf( 服務層 )model(數據邏輯、業(yè)務 )數據訪問接口數據庫控制器平面文本數據xmlrss框架從層次結構上分主要分為:表示層、服務層、業(yè)務層、數據層表示層表示層由ui(user interface)和 ui 控制邏輯組成。c/s 選用 wpf+智能客戶端 ,b/s選用 mvcwpf的出現解

10、決了三個問題:(1) 更快速的去開發(fā)更豐富的用戶體驗: 使用 wpf, 可以在更加快速的時間內開發(fā)出來更加豐富的界面 ,滿足用戶的需求。wpf 借助 xaml 來利用標記而不是編程語言(如 c#)來構造精美逼真的用戶界面 (ui), 只要稍微具備一些html基礎知識,就可以快速地掌握xaml中的大部分內容。(2) 消除用戶界面差異:wpf 可以以 ie 為宿主的?;騭ilverlight(3) 軟件開發(fā)團隊的協(xié)作問題: 在軟件團隊中 , 我們比較熟悉developer 、dba 、tester 、 it pro、architect等。 designer 可能往往被我們忽視, 但實際上 ,des

11、igner的工作成果才是與客戶距離最近的。 而且 designer 與 developer 如何配合工作 , 是很多團隊所頭疼的,而 wpf 正可以解決此問題。智能客戶端的優(yōu)勢1)充分利用終端設備的優(yōu)勢2)能夠調用wcf 3)支持在線和離線兩種狀態(tài)4)能夠如同web應用程序一般簡單方便的部署 mvc內置 ajax支持。本身含的 mvc(模型 - 視圖 - 控制器 ) 和本系統(tǒng) mvvm(model-view-viewmodel) 就是雙胞胎,在 demo里已經有很好的集成*注:因 xaml 和 html 是標記語言,此層大部分可用代碼生成器生成。服務層采用微軟的wcf ,windows com

12、munication foundation (wcf)是 microsoft為構建面向服務的應用提供的分布式通信編程框架平臺,是.net framework 的重要組成部分。使用該框架,開發(fā)人員可以構建跨平臺、安全、可靠和支持事務處理的企業(yè)級互聯應用解決方案。wcf 從一開始就是工程化的,能夠簡化應用程序的開發(fā)與部署,降低開發(fā)成本。用于構建面向服務的應用程序,不管這些程序是獨立的桌面應用程序,還是 web應用程序和服務,還是高端的企業(yè)應用程序。邏輯、業(yè)務層業(yè)務層封裝了實際業(yè)務邏輯,包含數據驗證,事物處理,權限處理等業(yè)務相關操作,是整個應用系統(tǒng)的核心。因此設計一個能夠真實反映實際需要的業(yè)務層是非

13、常必要的,我們將實際業(yè)務具體分為業(yè)務數據與業(yè)務操作兩部分。業(yè)務數據domain model 則是根據實際業(yè)務按照現實方式用oo 思想建模,這樣很適合業(yè)務復雜的系統(tǒng)。通常采用自定義數據實體(custom data entity)方式表達。自定義數據實體,有著良好的性能, 編譯時的類型檢查,數據表現方式非常直觀符合實際業(yè)務的操作方式等優(yōu)點,但需要自己定義維護類,在分布式環(huán)境下需要自己編寫序列化方法。此階段負責數據交換( 傳輸 ) 的業(yè)務實體被稱之為dto ( data transfer object) 。dto要能夠支持:數據綁定、數據驗證、歷史記錄、級聯觸發(fā)、合并集合、序列化與反序列化, 要實現

14、一個大的遞歸,從其中的任何一個對象開始,能夠找出整個傳遞的所有數據。(1) 、數據的綁定支持。要實現ieditableobject接口,對于狀態(tài)的變化要實現inotifypropertychanged接口,這樣才能夠實現數據的觸發(fā),這樣就要實現一個對象能夠找到其所有的集合,一個集合要能夠其所有的對象,這樣一樣,就必須實現從對象、集合、對象的遞歸,再深入一點,就實現了數據的級聯觸發(fā),實現了雙向數據觸發(fā)、綁定。數據源的每個屬性變更,要能夠在界面上反映出來,綁定界面的改變,能夠記錄到后臺的數據源,并且要能夠支持回滾。對于容納這些數據的observablecollection集合也支持綁定處理。(2)

15、 、數據驗證。實現idataerrorinfo接口(3) 對于歷史記錄。當實現ieditableobject這個接口,則必然實現了歷史記錄。能夠找到集合的所有更改的記錄,包括刪除的記錄。 對于單個對象而言是能夠得到歷史記錄和當前數據,對于集合而言,則能夠找出差異集,同時,集合也要具備集合回滾的功能。(4) 級聯觸發(fā), 則是在實現數據綁定的基礎上的,對于常見的主從結構,當從對象的一個屬性改變了, 要能夠自動通知其所在的集合、集合再通知所在的對象數據改變了,如果是多層結構,則能夠自動的從最底層開始一路通知到頂層。(5) 合并集合、集合的處理。集合的處理與數據綁定是直接相當的。數據源找出差異集之后,

16、 要對差異集進行處理,處理完之后,要對原始集合進行更進一步的處理,要把兩個集合進行合并處理,主要是為了同步引用。(6) 同時,另外要實現的就是data 與 sdo 之間的轉換以及其他格式的數據與sdo 、data數據之間的數據轉換,比如binary/xml/text/key/文件 / 等,最基本的是sdo與 data 之間的轉換,這些轉換根據需要,有時候是單向的,有時候是雙向的,根據業(yè)務需求而定。(7) 序列化與反序列化,主要是涉及到binary和 xml序列化。業(yè)務操作業(yè)務操作負責對業(yè)務數據進行各種業(yè)務相關的處理,例如驗證,流向, 整合, 事物,權限等,但它不負責有關對數據源的操作。采用整合

17、業(yè)務數據與業(yè)務方式來操作,將業(yè)務數據與相關的業(yè)務操作封裝在一起稱為業(yè)務實體, 業(yè)務實體作為統(tǒng)一的業(yè)務層為表示層提供服務,同時也負責作為dto在各個層次間傳輸,這樣完整的domain model 設計方式,每個業(yè)務實體都可以做為一個單獨組件形式存在,對于組件化復用有著莫大的好處。數據層數據層的宗旨就是為數據源提供一個可供外界訪問的接口,我們應該選用一種能夠提供數據源無關的抽象數據訪問接口并通過在其下掛接各種不同的dataproviador來訪問數據源的數據層組件,這樣做便于移植到不同的數據源上。從紛繁蕪雜的關系數據模型中抽象出概念模型。這樣開發(fā)人員可以只需著眼概念模型,而不必要去關心紛繁蕪雜的關

18、系數據模型,從而提高開發(fā)效率。那么如何能夠做到這一點?答案就是: linq 和 entity frameworklinq幾乎支持你所期望的所有數據源:數據對象、 sql server 數據庫、 xml和數據集,當然也支持 entity(linq to entities),linq有如下優(yōu)勢:1、 無需復雜學習過程即可上手下面我給出一個簡單的c# 示例。string querystring = one, two, three, four, five ;要想查找其中長度大于3 的字符串,你可以使用以下查詢語句:var thisquery = from stringvalue in querystr

19、ing where 3select stringvalue;2、 編寫更少代碼即可創(chuàng)建完整應用。3、 更快開發(fā)錯誤更少的應用程序。4、 無需求助奇怪的編程技巧就可合并數據源。5、 讓新開發(fā)者開發(fā)效率更高。 entity framework包括1. 實體數據模型 (entity data model),開發(fā)人員通過edm 抽象出非常合適的模型。2. 非常強大的client-view/mappping引擎,用于映射數據關系3. entity sql語言和 linq查詢對 edm schemas的全面支持4. ojbect services layer供您選擇以何種方式去處理查詢結果。比如(行,列或

20、作為對象)。5. 提供一個開放的模型使 entity framework可以處理其他的數據存儲。6. entity framework 實現了樂觀的并發(fā)模式(optimistic concurrency model)7. 事務處理三、具體功能簡述工作流解決方案工作流引擎:該部分為工作流模型的核心部分,用于生成、管理、角度和監(jiān)控工作流的各個活動執(zhí)行情況,并實現相應的人機交互。由于采用xpdl等語言定義的工作流文件記載了相應的業(yè)務邏輯,隱藏工作流引擎通過解析該文件來了解業(yè)務流轉的邏輯。然后依據某種運行模式按照解析出來的業(yè)務邏輯進行驅動,最終實現業(yè)務流程的流轉。工作流定義接口: 通過該接口可以進行工作流程的分析、建模、描述和歸檔等工作,并將設計完畢的業(yè)務流程生成工作流引擎能夠識別的語言。工作流客戶接口:處理工作流運行過程中需要人為參與的操作。工作流調用應用程序接口:工作流引擎調用外部應用程序的規(guī)范。工作流引擎協(xié)作接口:不同工作流引擎之間的協(xié)作。工作流管理監(jiān)控接口:監(jiān)控和管理工作流所有實例狀態(tài)。多語言 &用戶自定義標簽方案

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論