2010-03-26 182 views
1

由於(幾乎)您知道調用服務的所有內容都出現在服務契約(如WSDL)中,所以我認爲自述/自動描述服務在SOA架構中是件好事。自我描述/自描述服務是鬆散還是緊密耦合在SOA架構中?

對於我來說,一個非自我描述的服務的示例是Facebook查詢語言(FQL http://wiki.developers.facebook.com/index.php/FQL)或任何Web服務在一個String參數中交換XML流,然後解析XML並執行處理。

最後一個在技術上看起來更加分離,因爲從技術上講,您可以切換實現而不會對調用者產生技術影響,從而在業務級別處理實現/版本之間的兼容性。另一方面,沒有強大的接口(稀釋到服務及其版本中)使服務與現有實現緊密結合(更難以交換服務並確保完美的兼容性)。

這個問題是關係到How to Implement Loose Coupling with a SOA Architecture

因此,在自我描述/自動描述的服務地或緊密地在SOA架構結合?對ESB有什麼影響?

任何指針將不勝感激。

+1

你應該讓它成爲一個社區Wiki,因爲沒有「asnwer」。這只是一個討論。你已經提供了證據表明它「在技術上更加分離」。 – 2010-03-26 15:29:30

回答

1

問題是,鬆散耦合的SOA服務將傾向於使用WSDL(僅支持請求/響應)不支持的發佈/訂閱語義進行交互。

當您引入類似NServiceBus的ESB時,它將重點放在消息和所有權上,而不是工具從WSDL生成的方法調用。這些消息可以表示爲代碼中的類或XSD中的互操作性。

的XML消息,從一個端點到另一個的運輸與標準的Web服務做看起來很愚蠢的合同沒有在WSDL出現,而這也正是ESB產品進來的地方之一。

希望有所幫助。