??????在 SOA 系統中不同的功能模塊可以被分為7層:
??????第1層就是系統已經存在的程序資源,例如ERP或者CRM系統等。
??????第2層就是組件層,在這一層中我們用不同的組件把底層系統的功能封裝起來。
??????第3層就是 SOA 系統中最重要的服務層,在這層中我們要用底層功能組件來構建我們所需要的不同功能的服務。總的來說,SOA 中的服務可以被映射成具體系統中的任何功能模塊,但是從功能性方面可以大致劃分為以下三種類型:(1)商業服務(business service) 或者是商業過程(business process)。這一類的服務是一個企業可以暴露給外部用戶或者合作伙伴使用的服務。比如說提交銷售訂單,產品信息查詢,庫存信息查詢。(2)商業功能服務(business function service), 這類服務會完成一些具體的商業操作,也會被更上層的商業服務調用,不過大多數情況下這類服務不會暴露給外部用戶直接調用,比如說檢索用戶帳戶信息,存儲用戶信息等。(3)技術功能服務(technical function service),這類服務主要完成一些底層的技術功能,比如說日志服務以及安全服務等。?
??????在服務層之上的第4層就是商業流程層,在這一層中我們利用已經封裝好的各種服務來構建商業系統中的商業流程。
??????在商業流程層之上的就是第5層表示層了,我們利用表示層來向用戶提供用戶接口服務,這一層可以用基于portal的系統來構建。以上這5層都需要有一個集成的環境來支持它們的運行,
??????第6層中的企業服務總線(ESB)提供了這個功能。
??????第7層主要為整個 SOA 系統提供一些輔助的功能,例如服務質量管理,安全管理這一類的輔助功能。
??????分層是自下而上的,但是我們在具體的實踐環節是怎么樣的呢?記得在學習計算機網絡這門課程的時候,稱為自頂向下實現計算機網絡。也就大概從那時起,自上而下,自下而上或兩者兼有成了心中一種分析問題的方法。也就是在soa的實現中,我們可以從分析商業模式起,再分析服務,到組件。而根據現有的系統資源,又可以倒推過來需要哪些組件與服務。所以我覺得,根據這個分層模型,我們可以靈活應用,好好體會與應用soa這個思想。