WCFでのWebサービス検出:Ws-DiscoveryまたはUDDI?
質問
UDDIとWs-Discoveryの違いを知っています(サービスとブロードキャストを検索する場所をよく知っています)。しかし、私の質問は次のとおりです。WCFでWebサービスを発見する最も簡単な方法は何ですか?最も簡単なことは、WCFに既に実装されており、現在使用できるものを意味しますか? UDDIまたはWs-Discovery用のWCFの組み込み実装を見たことはありません。
WCFでこれらの2つのプロトコルについて共有するリンクや経験はありますか?
更新
今、3つのソリューション、.NET 4.0でのWS-discoveryの待機、またはWCFが提供するPeer to Peerバインディングを使用した独自のディスカバリバインディングの作成について考えています。これにより、リクエストをブロードキャストできます。 または、eed3si9nのリンクによって提供される実装を使用します。
私は、後者の実装を簡単に変更するためにゲートウェイインターフェイスを使用すると思います。
解決
.NET 4.0にはWS-Discoveryが含まれます。 .NET 4.0のメッセージングの機能強化:(発見パートI) WCF 4.0でのWS-Discoveryの使用。それまでの間、Claudio Masieriは実装を提供しました。 WS-Discovery for WCF を参照してください。
UDDIと同様の方法で実行されるカスタム検出の実装もあります。 Windows Communication Service Discovery を参照してください。
使用しているクライアントが200人いるとします ファンキーなWcfサービス。彼らはすべてだろう confファイルに次のようなセクションがあります これ:
<client>
<endpoint configurationName="default"
address="http://localhost/servicemodelsamples/service.svc"
binding="wsHttpBinding"
bindingConfiguration="Binding1"
contract="IDataContractCalculator" />
</client>
<bindings>
<wsHttpBinding>
<binding configurationName="Binding1" />
</wsHttpBinding>
</bindings>
今、あなたは既存の 新しいエンドポイント(サーバー側) セキュリティ上の理由でSSLを使用しています。どうやって クライアントを更新しますか?あなたはできる それがなる可能性があることをすぐに見る 退屈。だから私は詳細にしたいアイデア ここで発見を実装することです UDDIと同様のサービスと メタデータリゾルバーを使用して サービス外の構成 プロキシを動的に作成するための順序 クライアントが話し合うことを許可する サービス。
この人はあなたと同じような懸念を持ち、実用的な解決策を持っているようです。
他のヒント
UDDIは、中央レジストリを提供します 利用可能に関する情報を保存する サービス。カタログを提供します 消費者は会うサービスを見つけることができます 彼らのニーズ。この電話帳のような 情報ディレクトリ サービスを名前で検索する消費者、 住所、契約、カテゴリ、または その他のデータ。 UDDIについて考えることができます WebサービスのDNSとして。
一方、WS-Discovery 発見するためのプロトコルを提供します 行き来するサービス ネットワークから。サービスとして参加する ネットワーク、それはそのピアに通知します Helloをブロードキャストして到着 メッセージ;同様に、サービスがドロップしたとき ネットワークから、Byeをマルチキャストします メッセージ。 WS-Discoveryは依存していません 情報をホストする単一ノード UDDIとして利用可能なすべてのサービスについて します。むしろ、各ノードは転送します 利用可能なサービスに関する情報 アドホックな方法で。これにより ネットワークインフラストラクチャの量 サービスを発見するために必要と ブートストラップを容易にします。
引用元: http://travisspencer.com/blog/2007/09/ post.html
プロパティの適切なリストは次のとおりです。 http://laflour.spaces.live.com/Blog/cns! 7575E2FFC19135B4!728.entry
jUDDIには、使用できる.NETクライアントがあります。 UDDIを使用するための多くの作業を大幅に簡素化します。
経験から、WS-Discoveryの機能実装は2つまたは3つしかありません。
- Apache CXF、ただしコンテナの外部で実行された場合のみ
- これ: https://code.google.com/p/java- ws-discovery / はJbossでは機能せず、メンテナンスされていません
- Microsoft .NET 4.0ish
UDDIは何からでもアクセスできます。多くのクライアントとサーバーの実装があります。 (バージョン3のものだけがここにリストされています)
- IBM WS-Registry
- Apache jUDDI
- Microsoft UDDI v3 with Biztalk(2008サーバーでは無料)
- HP SOA / Systinetまたは現在の呼び名
- WSO2には何かがあります
- ebXMLには、ある種のブリッジまたはアダプターがあります
UDDI3用のRESTエンドポイント(jUDDI 3.2にはXMLまたはJSON応答があります)があり、これによりさらに多くの可能性が開かれます。
さらに、WS-Discoveryで共有可能なデータは、UDDIに添付できる実質的に無制限のデータと比較して、ある程度制限されています。
2セントです。