邏輯體系結構
從邏輯上講,您需要規劃解決方案以標識數據存儲、數據訪問、業務規則、用戶界面等之間的“邊界”。通常,Web 開發人員會選擇一個兩階段模型,并用 Web 窗體存儲用于訪問現有數據存儲系統(例如 Microsoft SQL Server)的所有代碼。一個更有效的方法是創建一個位于 Web 窗體用戶界面與 SQL Server 數據存儲系統之間的中間層組件庫。這種三層方法(Web 窗體、組件、數據庫)通常是大多數應用程序所需的。但是,在某些情況下,可能需要一個其他層來處理服務器之間傳輸的數據。這個傳輸層可以使用獨立于平臺的協議(例如 XML-SOAP)來實現。但是,如果您從頭到尾都使用 Microsoft .NET 技術,則可以使用 .NET 遠程協議的二進制版來完成這一任務,而且速度比使用 XML-SOAP 要快得多。
對于我們的示例,我們將定義三個邏輯邊界:用戶界面(Web 窗體)、中間層(一個 .NET 組件程序集)和數據層(SQL Server 數據庫)。圖 1 顯示了如何表示這一內容。
圖 1:三層圖
現在我們有一個簡單的邏輯模型。它是如何起作用的?它有助于我們考慮各個邏輯組之間的邊界。每個邏輯層應盡量與其他層獨立。理想的情況是,圖層中的更改應該對整體產生最小的影響。例如,如果將數據存儲從 SQL Server 更改到 XML 數據文件,唯一受到影響的圖層應是中間層圖層。用戶界面應該根本無需考慮更改。這會使您進行思考:如何實現解決方案的實際編碼以實現此原則。
另外,邏輯層有助于我們考慮安全問題。各個圖層之間的邊界都存在潛在的安全漏洞。而且,各個圖層可能有自己特定的安全措施(SQL Server 權限、.NET 運行時權限、ASP.NET 安全等)。同樣,我們稍后會在本節中詳細討論這個問題。
物理體系結構
確定邏輯層后,考慮物理層也很重要。例如,您可以在同時安裝有 SQL Server、Internet Information Server、ASP.NET 和 .NET 運行時的單個實際計算機上實現這個應用程序。這將是一個物理層。但更可靠且可擴展的方法是:在由三個 Web 服務器組成的簇上部署 Web 窗體,在兩個應用服務器上部署 .NET 組件程序集,在兩個故障恢復模式的 SQL Server 上部署數據庫。這樣產生的物理體系結構將七個 Windows 服務器包含在三個主要組中:Web 簇、組件簇和數據庫簇。如果您了解系統的不同邏輯部件可以位于不同的計算機上,您可能會實現不同的代碼。
原文轉自:http://www.anti-gravitydesign.com