2012-07-02 30 views
0

我有我需要在Azure服務總線上託管Web服務(WCF)並將其暴露給跨平臺客戶端(.NET或Java或任何其他)使用的場景。什麼不同的協議可以滿足這種情況?我正在考慮使用預定義的xsd或REST或SOAP甚至JSON數據包的純XML格式。我正在考慮一個basicHttpRelayBinding來揭露合約。請指教。可供跨平臺客戶端使用的WCF

回答

0

REST爲您提供最佳的可移植性,因爲這些URL非常直觀易於調試,並且很容易在任何平臺上創建此類接口。 JSON基本上是此路由的一個可選擴展,以統一的方式處理更復雜的類型;當然,當接口設計得儘可能簡單時,REST客戶端工作得最好,帶有或不帶有JSON。

假設您使用HTTP綁定而不是TCP綁定,那麼SOAP是與Java接口的優雅可能性。但是,您可能會遇到SOAP工具包不可用或不可靠的平臺,並且SOAP的所有優點都將開始對您不利。

1

公開一個SOAP服務應該適用於絕大多數平臺和語言。

1

既然你想要的服務,由許多不同的客戶端使用,我會避免使用基於SOAP綁定像basicHttpRelayBinding,去一個webHttpRelayBinding代替

http://msdn.microsoft.com/en-us/library/microsoft.servicebus.webhttprelaybinding.aspx

這將使它更容易爲像PHP框架,瀏覽器或移動設備來使用您的服務。

此外,如果您要定位移動客戶端,那麼絕對要考慮JSON而不是XML。它可以顯着減少您的消息有效負載大小 - 對於人們可能使用每字節付費數據計劃的移動客戶端非常重要。

JSON對於JavaScript(瀏覽器)客戶端顯然也會更好。