WCF-Client und -Server

7

Ich brauche mehrere Clients, die mit einem WCF-Dienst kommunizieren. Der WCF-Dienst muss auch in der Lage sein, eine Verbindung zu einem der Clients herzustellen.

Also - es klingt wie der Server und die Clients müssen sowohl einen WCF-Server als auch einen Client haben.

Ist das korrekt oder gibt es einen Weg dazu?

Ich habe mir NetPeerTcpBinding angeschaut, aber das ist veraltet. Um ehrlich zu sein, bin ich mir nicht sicher, ob das auch eine gültige Lösung ist.

Hintergrund:

  • Ich plane, einen Windows-Dienst auf hunderten von Computern in unserem Netzwerk mit einem WCF -Dienst und einem WCF-Client zu installieren eingebaut.
  • Ich werde einen Windows-Dienst auf einem Server mit einem WCF-Dienst und einem eingebauten Client installieren lassen.
  • Ich werde eine Windows Forms -Anwendung
  • haben
  • Ich werde eine Datenbank haben

Die Clients im Netzwerk stellen eine Verbindung mit dem Dienst her, der auf dem Server ausgeführt wird, um einige Informationen in die Datenbank einzufügen.

Der Benutzer verwendet die Windows Forms-Anwendung, um eine Verbindung mit dem Windows-Dienst auf dem Server herzustellen, und dieser Windows-Dienst stellt eine Verbindung mit dem relevanten Client in der Fabrik her (um das Durchsuchen von Dateien und Ordnern zu ermöglichen).

Daher glaube ich, dass sowohl die Maschinen auf dem Boden als auch der Server WCF cleint und Service benötigen.

    
user1438082 02.03.2013, 19:26
quelle

3 Antworten

5

Verwenden Sie wsDualHttpBinding, wenn Ihr Dienst mit Ihren Clients kommunizieren soll.

Lesen Sie WS Dual HTTP .

    
Alex 02.03.2013, 19:52
quelle
18

Der Grund für die Empfehlung von wsHttpDualBinding ist, dass es sich um eine sichere und interoperable Bindung handelt, die für die Verwendung mit Duplex-Serviceverträgen konzipiert ist, die sowohl Dienste als auch Clients das Senden und Empfangen von Nachrichten ermöglicht.

Die Art der Kommunikation, die "Duplex" genannt wird, hat mehrere Varianten. Halb und Voll sind die einfachsten.

  • Half Duplex: Funktioniert wie ein Walkie-Talkie, eine Person kann jederzeit sprechen.
  • Vollduplex: Wie ein Telefon kann jede Person zu jeder Zeit sprechen.

Jede wird einen Nutzen und ein Problem einführen, sie bieten auch Möglichkeiten, diese Kommunikation basierend auf Ihren Bedürfnissen effektiver zu gestalten.

Ich bin etwas verwirrt, aber ich werde versuchen, zu klären.

Sie haben eine Reihe von Ansätzen, die hier auftreten können, ein Windows Communication Foundation (WCF) -Dienst erfordert Folgendes:

  • Adresse
  • Bindung
  • Vertrag

Das sind im Wesentlichen die "ABCs" für WCF. Die Erstellung von diesen stellt ein Bild wie folgt dar:

Wie Sie sehen können, enthält der Service:

  • Gastgeber
  • Service
  • Kunde

Der Host enthält den Dienst, den der Client konsumieren , so dass diese Dienstmethoden eine gewünschte Aufgabe ausführen. Eine Beispieldarstellung:

Wie Sie sehen, geht Client-1 über das Internet (HTTP, HTTPS usw.) und trifft den Host, der diese Aufgaben vom Dienst ausführen lassen wird.

Jetzt Client-n konsumiert den Dienst lokal, so dass als Beispiel gesprochen wird (TCP, usw.).

Der einfachste Weg sich zu erinnern: Ein Service kann konsumiert werden, egal wie viele Clients diese Methoden benötigen, um eine Aufgabe auszuführen. Sie können sehr komplexe Modelle mithilfe einer serviceorientierten Architektur (SOA) erstellen.

  

All WCF ist, ist ein Mittel, um Ihre Anwendung mit einem Host oder zu verbinden   zentraler Ort, auf den Sie möglicherweise keinen Zugriff haben.

Wie Sie im obigen Bild sehen können, kommuniziert der Client über einen Service mit dem Host. Welche führt eine Reihe von Aufgaben durch. WCF wird über eine Reihe von Protokollen sprechen. Hoffentlich wird dies ein besseres Verständnis dafür liefern, wie WCF strukturiert ist.

Es gibt viele Tutorials und sogar Post, um loszulegen. Einige ausgezeichnete Bücher wie "WCF Schritt für Schritt" .

Sie suchen im Wesentlichen nach einer asynchronen Vollduplex-Verbindung oder einem synchronen Vollduplex-Dienst. Wie oben erwähnt, ist Ihre Aufgabe im Wesentlichen der Zweck eines Dienstes.

Die Frage: Wie funktioniert das am besten?

Es wird auf Ihr Design herunterkochen. Es gibt Einschränkungen und Strukturen, die Sie einhalten müssen, um sie wirklich für Ihr Ziel zu optimieren.

Solche Hindernisse können sein:

  1. Server laden
  2. Kommunikationspfad
  3. Sicherheit
  4. Mehrere Clients ändern UI / gleiche Daten
  5. usw.

Die Liste wird fortgesetzt und fortgesetzt. Ich würde wirklich Tutorials oder ein paar Bücher über WCF nachschlagen. Hier sind ein paar:

Sie werden Ihnen helfen, mit der Service-Struktur zu arbeiten, um Ihr gewünschtes Ziel zu erreichen.

Merken Sie sich die "ABCs" für den größten Erfolg mit WCF.

    
Greg 02.03.2013 19:49
quelle

Tags und Links