2010-04-26 20 views
9

Hasta ahora, nadie puede ofrecer ninguna ventaja de usar un canal doble en un sistema de sondeo de cliente, a excepción de la notificación inmediata que puede obtener desde el canal doble. Cada otro punto dice que si no necesitas un aviso inmediato, el enlace doble proporciona un valor negativo: ¿hay alguien que no esté de acuerdo con esto?¿Cuál es la ventaja de WSDualHttpBinding en WCF?

¿Cuánto sería beneficioso usar WSDualHttpBinding con el servicio alojado de IIS frente a una encuesta de cliente que llama al servicio WCF, suponiendo que en este último el servicio almacenara en caché los datos en cuestión?

Este es un tipo de servicio de notificación donde los clientes deben ser notificados por el servicio cuando ocurre un evento.

Específicamente, ¿qué ventajas proporcionaría WSDualHttpBinding sobre la votación? es decir: ¿Menos tráfico de red, más rápido de diseñar, más fácil de mantener, más control?

Por lo que entiendo, WSDualHttpBinding es menos escalable que las encuestas de clientes, entonces, ¿por qué usarlo? Editar: como Matt suministrado, el tiempo crítico puede ser una de las razones para el enlace dúplex.

Esto es lo que tengo hasta ahora:

WSDualHttpBinding

adv: puede obtener una respuesta inmediata w/o esperando en el temporizador de sondeo

dis: menos escalable que wsHttpBinding

dis: menos firewall amigable

dis: más lenta que WSHttpBinding

Voy a agregar a esto basándome en los comentarios, por favor avíseme si digo algo incorrectamente.

gracias por vosotros entrada :-)

Respuesta

8

Hay una gran cantidad de información en this SO thread. Básicamente, las encuestas tienen la desventaja de que su cliente está tan actualizado como su última encuesta, por lo que para la información de tiempo crítico necesita aumentar la frecuencia de las encuestas. Cada encuesta toma recursos de red y crea sobrecarga en el cliente. Las soluciones como Long Polling y WSDualHttpBinding son soluciones para ese problema. WSDualHttpBinding tiene la desventaja de que el cliente debe exponer un punto final al servidor (lo que crea problemas en entornos de firewall). BOSH/XMPP u otra forma de larga encuesta es otra alternativa.

+0

gracias, eso parece una de las ventajas de wshttpbinding :-) – schmoopy

4

WSDualHttpBinding se creó por una razón. WCF proporcionó soporte para las 'devoluciones de llamada' del servicio: métodos en el cliente que fueron notificados cuando se completaba la ejecución del servicio. Desafortunadamente, HTTP - al ser un canal unidireccional - no permitiría la devolución de llamadas (por el contrario, TCPBinding lo permite ya que TCP es un canal de dúplex completo). Para evitar la naturaleza unidireccional de HTTP, se inventó DualHttpBinding: dos conexiones HTTP simultáneamente abiertas, una para la solicitud de servicio y otra para la devolución de llamada. No se trata de escalabilidad, sino de necesidad. Si desea utilizar devoluciones de llamada (y las devoluciones de llamadas son geniales, especialmente si su servicio va a consumir mucho tiempo), WSDualHttpBinding puede ser su mejor opción. El sondeo posiblemente sea el peor por las razones ya señaladas: cada encuesta utiliza recursos de red, etc.

Cuestiones relacionadas