關於三層架構中各層次的關係與實現模型 (轉)
??在三層架構體系中,應用表示層(客戶端)和商業邏輯層(中間層)及資料層之間可能位於不同的端,因此他們之間的通訊、排程就會變得很困難,而且在中間層廣泛使用的之間的事務也會變得錯綜複雜,為此,提供瞭解決這些問題的方案,其中具體實現技術/工具主要包括:MS Remote Data Services、MS Transaction Server、COM/DCOM/COM+等。
??在客戶端,透過 RDS 來建立中間層的資料服務元件。
??在中間層的 Transaction Server 執行時環境中執行 RDSServer.DataFactory 或自定義業務時,共享機制產生作用。只使用數百個而不是上千個連線仍然可以支援上千個客戶端。這是 Transaction Server 中 OC 資源分配器的功能。
??在中間層和資料層之間可透過ADO來連線,實現資料讀寫操作。
??使用 RDS 可以有三種方式將 Recordset 從返回給客戶端。這三種方式分別為:
??(一)、使用自動 RDSServer.DataFactory 物件的 RDS.DataControl 方法和屬性。
??(二)、手工呼叫 RDSServer.DataFactory 物件。
??(三)、建立資料訪問功能的自定義 DLL。
??在此,我們的客戶端使用自行定義的中間層物件(DCOM/COM+),來處理商業邏輯並訪問資料。
??首先,讓我們來看看基本的 RDS 模型:
??RDS 為在如下環境中存在的應用確定地址:客戶應用程式指定將在伺服器上執行的程式,並指定用來返回相應資訊的引數。伺服器上被呼叫的程式訪問指定的資料來源,檢索資訊,對資料進行相應處理,然後將結果資訊按易於使用的格式返回給客戶應用程式。
??具體的實現模型如下列表。
??(1)、指定在伺服器上被呼叫的程式,並得到從客戶端引用該程式的途徑。(該引用有時稱為“”,它代表遠端伺服器程式。客戶應用程式象呼叫本地程式一樣“呼叫”代理,但實際上呼叫的是遠端伺服器程式。)
??(2)、呼叫伺服器程式。將引數傳送到標識資料來源及所要釋出命令的伺服器程式。(伺服器程式實際上使用 ADO 訪問資料來源。ADO 與所給引數中的一個建立連線,然後釋出在其他引數中指定的命令)。
??(3)、伺服器程式從資料來源獲得了 Recordset 物件。可以選擇在伺服器上處理 Recordset 物件。
??(4)、伺服器程式將最終的 Recordset 物件返回客戶應用程式。
??(5)、在客戶端,Recordset 物件被轉換成為便於視覺化使用的格式。
??(6)、任何對 Recordset 物件所作的修改都將返回給伺服器程式,伺服器程式用這些修改來資料來源。
??對應其上的程式設計模型如下(RDS 提供執行以下動作序列的途徑),程式設計模型是指為完成這個目的所必需的活動序列:
??(1)、指定在伺服器上被呼叫的程式,並獲得透過客戶端呼叫該程式的方式(代理)。(RDS.Datace)
??(2)、呼叫伺服器程式。將引數傳遞給標識資料來源及所要釋出的命令的伺服器程式。(代理或 RDS.DataControl)
??(3)、伺服器程式從資料來源獲得 Recordset 物件(一般透過使用 ADO)。可選擇在伺服器上處理 Recordset 物件。(RDSServer.DataFactory)
??(4)、伺服器程式將最終的 Recordset 物件返回客戶端應用程式。(代理)
??(5)、在客戶端,Recordset 物件被轉換成可視控制元件能方便使用的格式。(可視控制元件和 RDS.DataControl)
??(6)、對 Recordset 物件所作的更改被返回伺服器並用於更新資料來源。(RDS.DataControl 或 RDSServer.DataFactory)
??以上是微軟提供的標準三層架構程式設計解決方案,事實上我們可利用自行實現的中間層來替代RDSServer.DataFactory,而自行定製的各種Active Control/DLL則完全可替用RDS.DataControl。合理定製符合我們要求的元件將大大模組化整個系統,並使得客戶端變得邏輯簡單、易於移植。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-993772/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於三層架構的一些想法架構
- Java中各程式碼層級的關係Java
- 基於SSM的小程式中後端各結構層作用及關係SSM後端
- 關於Spring Cloud的特性與層次結構SpringCloud
- 計算機網路基礎-三種網路模型(OSI七層模型 TPC/IP四層模型 五層模型)的關係計算機網路模型
- 由淺入深:CNN中卷積層與轉置卷積層的關係CNN卷積
- 關於MVP分層架構在專案中的實際運用MVP架構
- .Net三層架構 (轉)架構
- 關於Laravel框架中Guard的底層實現Laravel框架
- MVC 與三層架構MVC架構
- 三層架構--理論與實踐架構
- 關於多層架構一些思考架構
- 三層架構與養豬架構
- 關於表現層、業務層、持久層及他們所包含的物件之間的關係的理解,高手指點物件
- 三層架構及分層架構
- MVC專案實踐,在三層架構下實現SportsStore,從類圖看三層架構MVC架構
- 各硬體在OSI參考模型中的層次模型
- spring框架中三層架構相關的註解Spring框架架構
- WebLogic引數調整的各檔案層疊關係(上層到下層)[final]Web
- MVC專案實踐,在三層架構下實現SportsStore-02,DbSession層、BLL層MVC架構Session
- MVC與三層架構區別MVC架構
- 艾德·希恩的三層次文化模型(轉載)模型
- 層次式架構案例架構
- 三層架構理解架構
- EF架構~基於EF資料層的實現架構
- 利用connect by顯示類目層次關係
- net三層架構與MVC的區別架構MVC
- 關於Hibernate多層1對多關係查詢
- andio:android 音訊的程式碼層次關係Android音訊
- 不同層之間的物件關係物件
- 底層剖析 Window 、Activity、 View 三者關係View
- Java三層架構sshJava架構
- 部門層級關係表
- 架構與資料庫的關係架構資料庫
- 卷積層和全連線層之間的關係卷積
- 記MyBaits-Plus 實現選單的無限層關係AI
- 計算機的層次化架構計算機架構
- Asp.net 2.0三層架構的構建與理解ASP.NET架構