2015-12-25 170 views
0

我正在嘗試構建一個具有至少16或20個模塊的大型.NET應用程序,我正在使用Service Oriented Architecture SOA來實現此目標,因此目前我只有4個服務僅用於一個模塊。大型應用程序體系結構

四個服務之一是core service,我需要包含在每個模塊,因爲這包含例如Logging , Security etc..我沒有問題,包括在每個新服務中。

我面臨着很多問題,我需要一個建議。

  1. 難道我把我的class libraries在一個解決方案或將在多重解決方案,現在我已經40級的存儲庫中。
  2. 對於database我現在有一個數據庫我也分開數據庫,或讓它在一個數據庫中。

幫助我在把建築師對我的應用程序的任何指導,以考慮使用SOA和高可維護性也不要混淆開發團隊這個大建築師

回答

0

我不知道,我得到了你的問題100 %。然而,SOA服務(以及更近期的微服務)是自包含的並且鬆散耦合的。實際上,這通常意味着服務會按照不同的條件發展,並且應該可以分開部署/測試。我相信你的項目結構應該反映這一點。

我個人會爲每個服務去兩個模塊。模塊A將是一個接口規範,可以在依賴於該服務的其他模塊中使用。模塊B將是服務實現。每個項目/解決方案都由這兩個模塊組成。

對於數據庫:我認爲每個服務都應該對它自己的數據庫負責。當然你可能在服務之間共享數據庫服務器,但是每個服務都應該管理它自己的數據庫,或者至少在這臺機器上架構。數據庫中的不同服務的數據之間不應存在外鍵關係或其他依賴關係,因爲這些服務是通過內部服務通信處理的。