2009-05-06 17 views
5

Me pregunto si alguien ha intentado esto una técnica para obtener eventos para el cliente desde el lado del servidor. Tengo un entorno que usa servidores basados ​​en Unix y no puedo usar WCF duplex/callbacks, etc.WCF Self hosting en el cliente? Bueno o malo

La idea es que mis clientes son cajas de Windows que ejecutan una gruesa aplicación .net activaría un host auto WCF y registraría su auto host URL en el servidor para esa sesión. Tendrían un contrato muy simple y el servidor, cuando tiene una actualización, llama al servidor del cliente diciéndole que hay una actualización esperando en el servidor y que el cliente la recibirá, etc.

Todavía intento tener mi cabeza redonda WCF así que no estoy seguro de si este es un buen camino a seguir, ¿hay alguna implicaciones de seguridad que debería preocuparme? ¿Hay formas de hacer que las llamadas dúplex funcionen en la plataforma?

He hecho algo similar antes de usar sockets o tal vez una cola de mensajes multiplataforma sería una mejor manera de seguir con esto de todos modos.

Gracias

76mel

Respuesta

1

Como mínimo, que suena como si se debe trabajar, aunque yo supongo que se podría alojar en IIS, así ya que los servidores * nix podrían entonces simplemente hacer una web llamar, ¿verdad? No estoy seguro de lo que ganaría el alojamiento propio, aunque debería funcionar bien, pero podría ser un poco más difícil de configurar, etc.

Actualízate aquí cada vez que hayas tomado una decisión porque suena como un desafío interesante y a algunos de nosotros nos gustaría ver cómo te diviertes.

+0

Sí, he pensado en poner en un nivel intermedio de IIS es una gran idea. Mi pensamiento, sin embargo, es que tenemos 10,000 clientes y 1/3 de ellos concurrentes y, por lo tanto, eso supone un costo en cajas IIS. Voy a buscar una prueba de concepto y los mantendré informados, pero les agradecería si alguien tiene más pensamientos, ideas e inquietudes sobre si esto es algo bueno como spinning TCP oyentes es una práctica común por qué no WCF servicios. – 76mel

+0

Ok He intentado esto y lo tengo todo funcionando. Creo que esto funcionaría muy bien para los proyectos que están dentro del firewall. Si desea abarcar el firewall, creo que usar un bus/queue es una mejor forma de conectarse a un nivel inferior. Lo que hice aquí fue tener un contrato de evento simple que el servidor de Unix conocía. Ejecuté el servicio WCF dentro de un servicio de Windows que primero se registra con el servidor con su punto final. el servidor puede disparar eventos en mi punto final y puedo responder a ellos extrayendo datos del servidor. – 76mel

+0

¡Excelente! Eso suena como que sería un buen artículo de blog. –

1

Usamos WCF alojado en un entorno similar. También queríamos evitar que nuestra aplicación cliente dependa de IIS, para evitar problemas de licencia y despliegue.

Funciona bastante bien para nosotros, aunque WCF puede ser excesivo para lo que necesita. Como usa HTTP, puede crear un servicio web simple creado directamente en Http.sys.

+0

¿El servicio web simple en http.sys sería más simple de escribir y mantener que usar WCF? Lo dudo. –

+0

No he intentado implementar un servicio web en http.sys, por lo que no puedo asegurarlo. Pero he trabajado un tiempo con WCF y descubrí que es mucho menos flexible de lo que me gustaría. – dthrasher

+0

¿Has probado el servidor web cassini? – 76mel

1

Otra forma de obtener resultados similares podría ser realizar una encuesta al cliente. Esto depende en gran medida de los requisitos que existen. Si necesita una actualización casi en tiempo real, esto obviamente no funciona, ya que tendría que haber muchas encuestas para hacerlo, pero si está bien tomarse un minuto o más para obtener actualizaciones para el cliente, las encuestas podrían ser solo la respuesta.

Cuestiones relacionadas