1) 分散服務器的壓力
大型系統中,模塊眾多,並發量大,僅用壹個服務器承載往往會發生壓力過大而導致系統癱瘓的情況。可以在橫向和縱向兩方面來進行拆分,把這些模塊部署到不同的服務器上。這樣整個系統的壓力就分布到了不同的服務器上。
l 橫向:按功能劃分。
l 縱向:N層架構,其中的壹些層分布到不同的服務器上(分層的概念會在後文進行介紹)。
2) 提供服務,功能重用
使用服務進行功能重用比使用組件進行代碼重用更進壹層。舉例來說,如果在壹個系統中的三個模塊都需要用到報表功能,壹種方法是把報表功能做成壹個單獨的組件,然後讓三個模塊都引用這個組件,計算操作由三個模塊各自進行;另壹種方法是把報表功能做成單獨的服務,讓這三個模塊直接使用這個服務來獲取數據,所有的計算操作都在壹處進行,很明顯後者的方案會比前者好得多。
服務不僅能對內提供還能對外提供,如果其他合作夥伴需要使用我們的報表服務,我們又不想直接把所有的信息都公開給它們。在這種情況下組件方式就不是很合理了,通過公開服務並對服務的使用方做授權和驗證,那麽我們既能保證合作夥伴能得到他們需要的數據,又能保證核心的數據不公開。