2010-04-26 15 views
9

Bis jetzt kann niemand wirklich den Vorteil der Verwendung von Dual-Channel über ein Client-Abfragesystem bieten, außer für die sofortige Benachrichtigung, die Sie vom Dual-Channel erhalten können. Jeder andere Punkt sagt, wenn Sie nicht sofort bemerken müssen, liefert die doppelte Bindung negativen Wert - irgendjemand stimmt dem nicht zu?Welchen Vorteil hat WSDualHttpBinding in WCF?

Welchen Nutzen hätte die Verwendung von WSDualHttpBinding mit dem gehosteten IIS-Dienst im Vergleich zu einer Clientabfrage, die den WCF-Dienst aufruft, unter der Annahme, dass der Dienst die fraglichen Daten zwischengespeichert hat?

Dieses Szenario würde für einen Benachrichtigungsdiensttyp gelten, bei dem die Clients vom Dienst benachrichtigt werden müssen, wenn ein Ereignis eintritt.

Insbesondere, welche Vorteile bietet WSDualHttpBinding über das Abfragen? IE: Weniger Netzwerkverkehr, schneller zu entwerfen, einfacher zu warten, mehr Kontrolle ???

Von was ich verstehe, WSDualHttpBinding ist weniger skalierbar als Clientabfrage, warum also überhaupt verwenden? Edit: Wie Matt lieferte, kann zeitkritisch ein Grund für die Duplex-Bindung sein. Hier

ist das, was ich bisher:

WSDualHttpBinding

adv: kann sofortige Antwort erhalten w/o Warten auf Abruf-Zeitgeber

dis: weniger skalierbar als WSHttpBinding

dis: weniger firewall friendly

dis: langsamer als WSHttpBinding

Ich werde dazu aufgrund von Kommentaren hinzufügen, lassen Sie mich bitte wissen, wenn ich etwas falsch darstelle.

Dank für Sie Eingabe :-)

Antwort

8

Es gibt eine Fülle von Informationen in this SO thread. Grundsätzlich hat das Polling den Nachteil, dass Ihr Client nur so aktuell ist wie seine letzte Abfrage, so dass Sie für zeitkritische Informationen die Häufigkeit der Abfragen erhöhen müssen. Jede Umfrage beansprucht Netzwerkressourcen und verursacht auf dem Client einen Overhead. Lösungen wie Long Polling und WSDualHttpBinding sind Workarounds für dieses Problem. WSDualHttpBinding hat den Nachteil, dass der Client einen Endpunkt für den Server verfügbar machen muss (was zu Problemen in Firewallumgebungen führt). BOSH/XMPP oder eine andere Form von Long Polling ist eine weitere Alternative.

+0

danke, das scheint ein Vorteil zu sein: – schmoopy

4

WSDualHttpBinding wurde aus einem bestimmten Grund erstellt. WCF bot Unterstützung für Service-Callbacks - Methoden auf dem Client, die bei jeder Ausführung des Service benachrichtigt wurden. Leider würde HTTP - da es sich um einen Ein-Weg-Kanal handelt - keine Rückrufe erlauben (im Gegensatz dazu erlaubt TCPBinding es, da TCP ein Vollduplex-Kanal ist). Um die One-Way-Natur von HTTP zu umgehen, wurde das DualHttpBinding erfunden - zwei gleichzeitig offene HTTP-Verbindungen - eine für die Serviceanfrage - und eine für den Callback. Es ist keine Frage der Skalierbarkeit - sondern der Notwendigkeit. Wenn Sie Rückrufe verwenden möchten (und Rückrufe sind großartig, besonders wenn Ihr Dienst ein zeitaufwendiger (lang andauernder) Dienst ist), ist WSDualHttpBinding möglicherweise die beste Option. Polling ist möglicherweise das Schlimmste aus bereits erwähnten Gründen - jede Umfrage beansprucht Netzwerkressourcen usw.

Verwandte Themen