Hola que tal.
Queria plantear una situacion a ver que cosnejos me dan, y si es posible
implementarla.
La idea es aplicar el patron observer pero de forma remota.
Planteo el escenario:
Tengo una aplicacion expuesta en la web, que expone una aplicacion web y varios
servicios, usando wcf y asmx, es indistinto.
Por otro lado tengo aplicaciones de escritorio que estan dentro de un red
local, y tienen salida a internet para utilizar la aplicacion.
Resulta que ante cierta operacion con la aplicacion se deberia procesar la
logica de negocio (en el servidor remoto) y lanzar una impresion en ciertos
print server (que se encuentran locales en el red), esto ultimo de imprimir es
solo una idea, puede se que mas adelante se necesite para enviar otras cosas
comos e un cash dispenser, o alertas, etc.
La cuestion es que los clientes tienen salida a internet con lo cual pueden
acceder a la aplicacion y sus servicios, pero desde el servidor expuertos en la
web no me puedo comunicar hacia adentro de la empresa, ya que como sabran hay
firewall y demas aspectos de seguridad.
Nota: el cliente no tiene servicio expuestos en la web, ni posee
infraestructura para poder tenerlos, es por eso que la aplicacion esta hosteada
en servidores de terceros expuestos a internet, con toda la seguridad que esto
requiere (uso de SSL, etc)
Entonces que pense, desarrollar un servicio de windows que corrar en los
sevidores de impresion o en alguna otro pc local a la empresa y que al
iniciarse se subscriba mediante la llamada a un servicio web, pasandoles la
informacion de su localizacion, esto se puede sin problemas ya que se tiene
salida.
Ahora la otra pata es la compleja y por la cual queria consultar, como comunico
el servidor con el servicio corriente en las maquians locales, habia pensado
implementar algo parecido a los que hace la aplicacion de LogMeIn
(https://secure.logmein.com/home.asp).
Creo que por ahi saben como funciona, se descarga un cliente que envia info a
un servidor para registrase, y cuando entra una peticion el server es el que se
contacta con el cliente, y lo mas interesante es que pasa todos los firewall
sin necesidad de abrir puertos.
Esto me permitiria que al procesar en el servidor enviar un mensaje al servicio
de windows (que se registro) para que imprima localmente o envie un mensaje, o
etc.
Se que me diran que realice un servicio que cada cierto tiempo realice una
consulta a un servicio web para ver si tiene alguna peticion que puede
estar almacenada en un msqueue, o en una table en la db; pero justamente por
eso consulto por el patron observer, es mas linda la solucion, ya que los
clientes se subscriben y desde el servidor se envian los mensajes, ante un
evento
La pregunta es: tienen idea como se puede implementar algo similar a como
funciona logmein, y como es que este servicio puede funcionar sin que los
firewalls le molesten e identificar una pc en particular.
Bueno cualquier sugerencia sera de gran ayuda.
Saludos
Yahoo! Cocina
Recetas prácticas y comida saludable
http://ar.mujer.yahoo.com/cocina/