在大型系統中應用中,一個架構設計較好的應用系統,其總體功能肯定是由很多個功能模塊所組成的,而每一個功能模塊所需要的數據對應到數據庫中就是一個或多個表。而在架構設計中,各個功能模塊相互之間的交互點 越統一、越少,系統的耦合度就越低,系統各個模塊的維護性及擴展性也就越好。
在一個系統中特別是較為大型的系統中,如電子商務系 統,可也按照功能,切分為,訂單管理系統、商品管理系統、用戶管理系統、供應商管理系統...等等,在這樣的應用中系統切分了、功能獨立了、耦合降低了、 容易維護了。可是各個系統中的通訊怎么完成呢?如果用戶系統想查詢某個用戶的訂單信息,要怎么做呢?
a,是要直接引用,訂單系統的DLL,
b,還是把這些需要相互調用的功能放在一個叫Common的項目中供所有子系統調用呢,
c,或者干脆直接在用戶系統中跨庫查詢訂單庫,這些方法都不優良,這個時候該到微軟的利器WCF亮相的時候了,先看下面架構圖
這個樣設計的優點:
1.層與層之間的服務器可以靈活組合,每層中的服務器,可水平擴展(集群),可縱向擴展(按系統/域/功能切分)
2.所有中間件服務即可為本系統提供服務也可以為其他系統提供服務(甚至是第三方如:java的),提供系統間的無縫連接,系統之間的耦合不依賴於應用程序也不依賴於數據庫,而依賴於服務接口。
3.所有對數據庫的操作都依賴於中間件,不允許對數據庫直接操作,這樣即達到了數據庫的安全性,又能給應用程序服務器減壓,因為實際的查詢工作不在由應用程序服務器的數據訪問層完成,而是分擔給這個中間件服務器完成。
總結:
WCF分布式體現在:將系統的多個模塊拆分,使其功能獨立,降低耦合,提高模塊的維護性及擴展性。