前言
模型是整個(gè)架構設計的理論基礎,模式是整個(gè)架構得以實(shí)現的方法論。以模型為基礎,以模式為方法,以相關(guān)技術(shù)為手段去構建一個(gè)可行、可靠、可重用的平臺架構。
▓模型是在一個(gè)更高的層次對現有的概念或實(shí)體進(jìn)行抽象,它脫離了具體的基礎平臺,在這種概念的設計下,我們的平臺架構會(huì )獨立于任何基礎平臺。
▓模式是一個(gè)久經(jīng)考驗的、可行的、可靠的、可重用的針對某一類(lèi)問(wèn)題的解決方案。在架構設計中大量的采用相關(guān)模式進(jìn)行設計,使我們的設計是經(jīng)得起考驗、已被證明是可行、可靠、可重用的。
▓在整個(gè)架構設計中我們必須考慮的模型如下:
遠程、分布式組件模型
數據模型
業(yè)務(wù)模型
安全模型
這些模型的建立也就意味著(zhù)我們的架構是多層、分布式的;我們的整個(gè)架構設計主要是針對中間層進(jìn)行設計。
內容
◆在整個(gè)架構設計中我們不能不考慮到表示層與中間層之間的交互。在整個(gè)的交互設計中我們必須采用相關(guān)模式。在現有的模式中,MVC模式是這種問(wèn)題域的最佳解決方案。通過(guò)MVC模式我們主要要達到如下目標:
降低藕合(表示層與中間層)
隱藏中間層實(shí)現細節
隱藏組件類(lèi)型及位置
◆在中間層與數據層之間我們也必須提供存取接口,在現有的數據存取接口之上,我們可以自由選擇(決定于您選擇的基礎平臺),不過(guò)為了整個(gè)設計獨立于基礎平臺的特性,我們可以在基礎平臺之上定義自己的數據存取接口。在整個(gè)接口的設計中我們應該做到以下目標:
數據源類(lèi)型、位置無(wú)關(guān)性
接口健壯、友善
◆業(yè)務(wù)模型的建立和具體的業(yè)務(wù)緊密相關(guān),當我們在導入現實(shí)世界的業(yè)務(wù)模型到計算機世界的過(guò)程中,我們應該采用相關(guān)的模式,以使我們的每個(gè)業(yè)務(wù)組件之間的層次更加合理、清晰;組件之間的交互更加有效。業(yè)務(wù)模型的建立必須與計算機模型一一對應,以使我們的導入更加流暢、無(wú)縫。關(guān)于業(yè)務(wù)模型與計算機模型對應關(guān)系如下:
功能組織結構圖 ―――― 軟件結構
業(yè)務(wù)流程 ―――― 業(yè)務(wù)組件邏輯流程
業(yè)務(wù)數據 ―――― 系統數據
業(yè)務(wù)單據 ―――― 系統界面、報表
在業(yè)務(wù)模型的建立過(guò)程中,我們會(huì )采用相關(guān)的組件模型去實(shí)現。對每種組件模型的充分理解會(huì )使我們在設計的過(guò)程中能夠充分的利用這種組件模型的優(yōu)勢,從而更好的為我們的業(yè)務(wù)模型提供服務(wù)。通用的組件模型如下:
組件的注冊機制
組件的發(fā)現機制
組件的創(chuàng )建方式
組件的調用信息的傳輸機制(協(xié)議、編碼格式)
組件的調用約定
組件的生成期管理
組件與容器的交互
組件的特別規范
◆既然是一個(gè)多層、分布式架構,我們就不得不考慮我們的數據、信息在各層之間的傳輸機制。為了使我們的系統能夠很容易的被其它后續系統集成,在我們的整個(gè)數據、信息傳輸過(guò)程中我們都采用了XML編碼格式。在處理數據的傳輸的時(shí)候,我們可以采用值對象模式(value object)以減少在物理分布式的情況下多次遠程調用帶來(lái)的性能犧牲。在遠程調用參數的處理上,我們又要考慮到本地調用的特點(diǎn),盡量采用系統提供的序列化功能,由系統來(lái)確定什么情況下序列化而不是我們自己去做偽序列化操作(比如自己先將對象導出為字符串等)。在值對象模式的應用中,我們主要針對數據,通過(guò)對值對象模式的擴展,將其擴展到數據集合的級別,我們將整個(gè)數據處理過(guò)程分為兩個(gè)階段,一階段是RDBMS階段,一階段是客戶(hù)端階段。在客戶(hù)端階段我們必須能夠提供一個(gè)類(lèi)DBMS的內存數據管理系統模型。
讓系統可以把所需要的數據一次性抽取到客戶(hù)端,然后在客戶(hù)端進(jìn)行操作而不是通過(guò)頻繁的客戶(hù)端、服務(wù)器端交互來(lái)完成數據的操作,在用戶(hù)完成操作后,由用戶(hù)一次性提交到服務(wù)器端以進(jìn)行持久化處理。為了滿(mǎn)足這種需求,我們必須在建立一個(gè)簡(jiǎn)單的客戶(hù)端數據庫管理系統模型。參考模型如下:
數據庫結構、表結構、關(guān)系定義
數據保存
數據庫常用操作(新增、刪除、編輯、查詢(xún)、計算、排序)
數據合法性保護
數據完整性保護
事務(wù)或偽事務(wù)支持
◆隨著(zhù)信息化進(jìn)程的深入,客戶(hù)對關(guān)鍵業(yè)務(wù)數據的安全要求越來(lái)越迫切。在這種形式下,如果一個(gè)平臺架構缺少了安全的解決方案,將是致命的,無(wú)論對客戶(hù)還是對整個(gè)平臺。在整個(gè)平臺架構中我們可以從安全模型入手去建立自己的安全方案。整個(gè)安全模型如下,我們可以基于基礎平臺的安全框架去實(shí)現它。
身份驗證: 你是否可以進(jìn)入系統
訪(fǎng)問(wèn)控制: 你是否可以訪(fǎng)問(wèn)當前資源
日志功能: 你做了什么
數據合法性: 數據是否符合業(yè)務(wù)規則
數據完整性: 是否會(huì )出現不完整數據
關(guān)鍵數據的保密性: 關(guān)鍵數據是否可以被輕易盜取
后記
【以抽象模型和模式為背景去設計平臺架構,可以使我們的架構在設計上獨立于各種基礎平臺(J2EE、。NET等),也使我們在切換平臺時(shí)只是在開(kāi)發(fā)語(yǔ)言上有所差別。】
聯(lián)系客服