Anhang C. Entdeckung
Alle WCF-Aufrufe, die in diesem Buch gezeigt werden, haben zwei Einschränkungen. Erstens muss der Port oder die Pipe, die dem Dienst zugewiesen sind, verfügbar sein. Der Anwendungsentwickler oder der Administrator muss buchstäblich raten oder auf irgendeine Weise wissen, dass der Port oder die Pipe nicht von einer anderen Anwendung auf diesem Computer verwendet wird. Die gemeinsame Nutzung von TCP-Ports kann dieses Problem lindern, hilft aber nicht bei der zweiten Bedingung: Der Client muss von vornherein die Adresse der Endpunkte des Dienstes kennen - nicht nur die Portnummer oder den Namen der Pipe, sondern auch den Namen des Dienstrechners (im Falle von TCP).
Es wäre toll, wenn der Dienst jede verfügbare Adresse verwenden könnte, die zur Laufzeit festgelegt wird. Der Client wiederum müsste diese Adresse zur Laufzeit ermitteln. Es gibt sogar eine auf Industriestandards basierende Lösung, die festlegt, wie diese Erkennung erfolgen soll. Diese Lösung, die sogenannte Discovery (und die dazugehörigen Mechanismen), ist Gegenstand dieses Anhangs.
Hinweis
Die Idee der Entdeckung ist nicht neu, und erfahrene Entwickler haben sich oft dafür entschieden, den Typ der zu instanzierenden Klasse nicht in ihren Code einzubetten und stattdessen auf eine Klassenfabrik zurückzugreifen, um den tatsächlichen Typ, der die gewünschte Schnittstelle unterstützt, aufzulösen oder zu entdecken:
IMyInterface obj = MyClassFactory.CreateInstance <IMyInterface>();
Da der Client in WCF ...
Get Programmierung von WCF-Diensten, 4. Auflage now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.