關於三層架構中各層次的關係與實現模型

來源:互聯網
上載者:User

在三層架構體系中,應用展示層(用戶端)和商業邏輯層(中介層)及資料層之間可能位於不同的網路端,因此他們之間的通訊、調度就會變得很困難,而且在中介層廣泛使用的組件之間的事務也會變得錯綜複雜,為此,微軟提供瞭解決這些問題的系統方案,其中具體實現技術/工具主要包括:MS Remote Data Services、MS Transaction Server、COM/DCOM/COM+等。
在用戶端,通過 RDS 來遠程建立中介層的資料服務組件。
在中介層的 Transaction Server 運行時環境中運行 RDSServer.DataFactory 或自訂業務對象時,共用機制產生作用。只使用數百個而不是上千個資料庫連接仍然可以支援上千個用戶端。這是 Microsoft Transaction Server 中 ODBC 資源發送的功能。
在中介層和資料層之間可通過ADO來串連,實現資料讀寫操作。
?
使用 RDS 可以有三種方式將 Recordset 從伺服器返回給用戶端。這三種方式分別為:
(一)、使用自動調用 RDSServer.DataFactory 對象的 RDS.DataControl 方法和屬性。
(二)、手工調用 RDSServer.DataFactory 對象。
(三)、建立執行資料訪問功能的自訂 ActiveX DLL。
在此,我們的用戶端使用自行定義的中介層對象(DCOM/COM+),來處理商業邏輯並訪問資料。
首先,讓我們來看看基本的 RDS 編程模型:
RDS 為在如下環境中存在的應用程式確定地址:客戶應用程式指定將在伺服器上執行的程式,並指定用來返回相應資訊的參數。伺服器上被調用的程式訪問指定的資料來源,檢索資訊,對資料進行相應處理,然後將結果資訊按便於使用的格式返回給客戶應用程式。

具體的實現模型如下列表。
(1)、指定在伺服器上被調用的程式,並得到從用戶端引用該程式的途徑。(該引用有時稱為“代理”,它代表遠程伺服器程式。客戶應用程式象調用本地程式一樣“調用”代理,但實際上調用的是遠程伺服器程式。)
(2)、調用伺服器程式。將參數傳送到標識資料來源及所要發布命令的伺服器程式。(伺服器程式實際上使用 ADO 訪問資料來源。ADO 與所給參數中的一個建立串連,然後發布在其他參數中指定的命令)。
(3)、伺服器程式從資料來源獲得了 Recordset 對象。可以選擇在伺服器上處理 Recordset 對象。
(4)、伺服器程式將最終的 Recordset 對象返回客戶應用程式。
(5)、在用戶端,Recordset 對象被轉換成為便於可視化控制項使用的格式。
(6)、任何對 Recordset 對象所作的修改都將返回給伺服器程式,伺服器程式用這些修改來更新資料來源。
?
對應其上的編程模型如下(RDS 提供執行以下動作序列的途徑),編程模型是指為完成這個目的所必需的活動序列:
(1)、指定在伺服器上被調用的程式,並獲得通過用戶端調用該程式的方式(代理)。(RDS.DataSpace)
(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。合理定製符合我們要求的組件將大大模組化整個系統,並使得用戶端變得邏輯簡單、易於移植。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.