N-Tier 和 SOA 架構有什麼區別
根據我對 N 層和 SOA 架構的理解。
N層
N-Tier 意味著將應用程序劃分為層,例如我在 asp.net 中開發應用程序並將整個 DB 層推送到 WCF,然後它被稱為 N-tier。[緊密耦合]
SOA[松耦合]
根據我對 SOA 的理解,它是一個非常通用的術語,以及我們如何鬆散地耦合我們的架構,然後將其稱為 SOA。SOA 服務的最佳範例 - 股票源/天氣源。
我的結論:
即使我們使用 WCF 開發應用程序,如果它與單個客戶端/或 .net 應用程序緊密耦合,它並不意味著它的 SOA 只能理解服務。
你能幫助我理解 SOA VS N-Tier。
這兩個無法比較,因為每個都描述了不同的事物。另外,請注意,層與層不同。
層 - 流程邊界。當您建構 3 層應用程序時,您知道 UI、BL 和 DB 將位於 3 個不同的程序中,這些程序可以位於三台不同的機器上。
層 - 邏輯邊界。一個層可以包含多個層。這正是您建構應用程序以遵循 OO 原則的方式。
SOA - SOA 應用程序可以是多層的,但通常不是必須的。SOA 是一種架構應用程序的方法,其含義是可重用、自主、可互操作的遠端呼叫組件。SOA 服務必須遵循四個原則。
為了展示 N-Tier 和 SOA 之間的簡單區別,讓我們假設您正在使用一些數據庫的業務邏輯之上建構一個服務層。看起來您正在建構一個 N 層 SOA 應用程序,不是嗎?不幸的是,並不是每個暴露服務的應用程序都遵循這些原則。在這種情況下,最關鍵的可能是“顯式服務邊界”和“服務是自治的”。如果您的服務共享數據庫中的某些業務邏輯功能或數據,則它們沒有明確的邊界並且它們不是自治的 => 應用程序不是作為 SOA 設計的。
小型 SOA 和大型 SOA 之間也存在差異。提到的應用程序是一個小型 SOA - 每個服務都必須遵循原則。大型 SOA 用於企業集成,您可以將應用程序及其所有服務視為必須遵循原則的單個單元。