Azure Service BusでWebサービス(WCF)をホストし、クロスプラットフォームクライアント(.NETまたはJavaまたはその他)で使用できるように公開する必要があるシナリオがあります。このシナリオに対応できるプロトコルは何ですか?事前定義されたxsd、REST、SOAP、さらにはJSONデータパックを使用した純粋なXML形式を検討していました。コントラクトを公開するためにbasicHttpRelayBindingを検討しています。ご意見をお聞かせください。
3 に答える
SOAPサービスの公開は、大多数のプラットフォームと言語で問題なく機能するはずです。
サービスを多くの異なるクライアントで使用したいので、basicHttpRelayBindingのようなSOAPベースのバインディングの使用を避け、代わりにwebHttpRelayBindingを使用します。
http://msdn.microsoft.com/en-us/library/microsoft.servicebus.webhttprelaybinding.aspx
これにより、PHP、ブラウザ、モバイルデバイスなどのフレームワークがサービスを簡単に利用できるようになります。
また、モバイルクライアントをターゲットにしている場合は、XMLではなくJSONを検討してください。これにより、メッセージのペイロードサイズを大幅に削減できます。これは、バイト単位のデータプランを利用している可能性のあるモバイルクライアントにとって非常に重要です。
JSONは、JavaScript(ブラウザー)クライアントによる消費にも明らかに適しています。
URLはデバッグが非常に直感的であり、どのプラットフォームでもそのようなインターフェースを簡単に作成できるため、RESTは究極の移植性を提供します。JSONは基本的に、このルートのオプションの拡張機能であり、より複雑なタイプを統一された方法で処理します。もちろん、RESTクライアントは、JSONの有無にかかわらず、インターフェイスが可能な限りシンプルになるように設計されている場合に最適に機能します。
TCPバインディングではなくHTTPバインディングを使用することを前提とすると、SOAPはJavaとのインターフェースをとるための洗練された可能性です。ただし、SOAPツールキットが利用できない、または信頼できないプラットフォームに遭遇する可能性があり、SOAPのすべての美しさがあなたに不利に働き始めます。