Ich kenne die Unterscheidung zwischen UDDI und Ws-Discovery (gut bekannt Ort, um einen Dienst vs Broadcast zu suchen). Aber meine Frage ist: Was ist der einfachste Weg, einen Webservice in WCF zu entdecken? Mit einfachsten meine ich, was ist bereits in WCF implementiert und kann jetzt verwendet werden? Ich habe keine integrierte Implementierung in WCF für UDDI oder Ws-Discovery gesehen.
Haben Sie einen Link oder eine Erfahrung, die Sie in WCF über diese beiden Protokolle teilen möchten?
AKTUALISIEREN
Ich denke jetzt über drei Lösungen nach, die auf WS-Discovery unter .NET 4.0 warten, oder vielleicht meine eigene Discovery-Bindung mit der von WCF bereitgestellten Peer-to-Peer-Bindung erstellen. Auf diese Weise kann ich eine Anfrage senden. Oder verwenden Sie die Implementierung, die durch den Link von eed3si9n bereitgestellt wird.
Ich denke, dass ich eine Gateway-Schnittstelle machen werde, um die Implementierung später zu ändern.
.NET 4.0 wird WS-Discovery haben. Siehe Messaging-Verbesserungen in .NET 4.0: (Entdeckungsteil I) WS-Discovery in WCF 4.0 verwenden . In der Zwischenzeit hat Claudio Masieri eine Implementierung zur Verfügung gestellt. Siehe WS-Discovery für WCF .
Es gibt auch eine benutzerdefinierte Discovery-Implementierung, die ähnlich wie UDDI ausgeführt wird. Siehe Windows Communication Service-Erkennung .
%Vor%Stellen Sie sich vor, Sie verwenden 200 Clients Ihr funky Wcf-Service. Sie würden alle Habe in ihrer Konfig Datei einen Abschnitt wie dieser:
Nun entscheidest du dich, das Bestehende zu ändern Endpunkt (Serverseite) mit einem neuen das verwendet SSL aus Sicherheitsgründen. Wie Aktualisieren Sie Ihre Kunden? Sie können schnell sehen, dass es werden kann langweilig. Also die Idee, die ich detailliert machen möchte Hier ist eine Entdeckung zu implementieren Service ähnlich wie UDDI und Verwenden eines Metadaten-Resolvers zum Abrufen des Konfiguration aus dem Dienst in um einen Proxy dynamisch zu erstellen dem Kunden erlauben, mit ihm zu diskutieren der Service.
Diese Person hat ähnliche Bedenken wie Sie und scheint eine funktionierende Lösung zu haben.
UDDI stellt eine zentrale Registrierung zur Verfügung Informationen über verfügbar speichern Dienstleistungen. Es liefert einen Katalog, wo Verbraucher können Dienste finden, die sich treffen ihre Bedürfnisse. Dieses Telefonbuch ähnlich Verzeichnis von Informationen erlauben Verbraucher, um Dienstleistungen mit Namen zu finden, Adresse, Vertrag, Kategorie oder nach andere Daten. UDDI kann man sich vorstellen als das DNS von Webdiensten.
Auf der anderen Seite, WS-Discovery bietet ein Protokoll zu entdecken Dienstleistungen, die kommen und gehen aus einem Netzwerk. Wenn ein Service beitritt das Netzwerk, informiert es seine Kollegen von seine Ankunft durch Ausstrahlung eines Hello Botschaft; ebenso, wenn Dienstleistungen fallen Aus dem Netzwerk Multicasting ein Bye Botschaft. WS-Discovery verlässt sich nicht darauf ein einzelner Knoten zum Hosten von Informationen über alle verfügbaren Dienste als UDDI tut. Vielmehr wird jeder Knoten weitergeleitet Informationen über verfügbare Dienste auf Ad-hoc-Basis. Das reduziert sich die Menge der Netzwerkinfrastruktur benötigt, um Dienste zu entdecken und erleichtert Bootstrapping.
Zitat aus: Ссылка
Hier ist eine gute Liste von Eigenschaften: Ссылка
jUDDI hat einen .NET-Client, den Sie verwenden können. Es vereinfacht eine Menge Dinge für die Arbeit mit UDDI.
Aus Erfahrung gibt es nur zwei oder drei funktionierende Implementierungen von WS-Discovery.
UDDI können Sie von allem zugreifen. Es gibt viele Client- und Serverimplementierungen. (Nur die Version 3 Zeug ist hier aufgeführt)
Es gibt sogar einen REST-Endpunkt für UDDI3 (jUDDI 3.2 hat es, XML- oder JSON-Antworten), was dies für viele weitere Möglichkeiten öffnet.
Außerdem sind die Daten, die mit WS-Discovery gemeinsam genutzt werden können, im Vergleich zu den praktisch unbegrenzten Daten, die Sie an UDDI anhängen können, etwas eingeschränkt.
Das sind nur meine 2 Cent.