最近,我讀2本書,我用下面的語句「服務封裝業務功能」與「服務可以被組合成業務流程」
學習WCF由米歇爾·勒魯碰到:
服務封裝業務功能
Service orientented architecture in real world:
個服務可被組裝(或-composed‖)到業務流程
鬆耦合 系統導致鬆散耦合的業務流程,[...]。服務及其 相關的接口必須保持穩定,使他們能夠被重新配置或重新聚合到 滿足業務內容
閱讀SOA在現實世界中,我明白,我是假設的不斷變化的需求讓我的獨立(最初無用的)服務從業務環境中抽象出來,然後編寫和編排,然後做一些有用的事情,創建業務層並制定業務需求。
然後,閱讀學習WCF讓我覺得,我應該(在非平臺特定的格式,當然)讓我的業務層,以滿足特定的需求,然後將其暴露爲服務
目前,我正在做我的業務層,然後通過定義良好的接口公開一些公共方法,但我喜歡創建更多獨立服務的想法,然後構建業務層。
我想聽聽有經驗的SOA開發人員,這些方法對於獲得SOA的好處以及爲什麼是理想的,爲什麼?
我很困惑這個話題。示例和開源項目將會非常有幫助。
謝謝,你的回答很明確。爲了做得更好,請確認這是否屬實:「銷售服務」是一個很好的候選人,因爲它涉及(產品,服務,運輸,佣金等)。 ProductService,ServicesService,ShippingService和ComissionService將是實體服務。 我是如何實現它的?一個IProductService和ProductService類(等)以及SalesBusiness中的業務規則公開爲ISalesServices? 我仍在尋找示例 –
銷售服務可以是任務服務(用C#或Java開發並作爲Web服務公開),或者它可以是在BPEL/SCA引擎中實現的組合服務,並且使用產品,服務,航運和佣金實體服務。實體服務很可能被開發爲c#或Java中的Web服務。沒有太多的例子,因爲它會非常複雜 - 幾個項目和對BPEL/SCA引擎,企業服務總線,發現註冊表等的依賴。 –
@DaviFiamenghi以及上面,我推薦這些書:SOA實踐:Nicolai M. Josuttis的「分佈式系統設計的藝術」和Jeff Davis的「開源SOA」 –