Walter, que tal.
 
La idea que estaba pensando era implementar algo de la logica que aplica Comet al mantener un canal entre cliente y servidor.
 
Recorda que Comet funciona en un entorno web y no requiere abrir puerto ni nada especial, ni requiere instalacion en el cliente.
 
La idea es que el servicio windows funcione como cliente (como si fuera el browser del cliente) y establezca un enlace con el servidor, en este caso podria ser un asmx, o un servicio de WCF, la cuestion es como hacer  que el canal se mantenga, cosa que desde el server pueda recuperlo y enviar info. de nuevo por este.
 
Lo que enviaria seria por ahi un reporte de Crystal report serializado, por supuesto la generacion la haria en el servidor web, y se envia como xml o texto por el canal.
 
El servicio windows tomaria esta comunicacion y ejecutaria el proceso de impresion previa generacion del reporte que fue envio por el canal de forma serializada.
 
Aca truco estaria estaria en descubrir como puedo mantener el canal como lo hace Comet, (si es esta una solucion, o hay alguna otra mejor), y poder enviar info por esta pasando por el firewall.
 
Se que Comet usar _javascript_, pero este es un lenguaje de programacion que calculo se puede implementar la misma idea en otra tecnologia en este caso c#.
Calculo que si bien es _javascript_ de este Comet usa socket y puertos, no creo que inventara nada nuevo.
 
 
La funcionalidad Duplex de WCF es justo lo que busco, pero funciona en un entorno de Internet?
 
 
Gracias por la ayuda.
Saludos 


--- El jue 4-sep-08, Walter Poch <[EMAIL PROTECTED]> escribió:
De: Walter Poch <[EMAIL PROTECTED]>
Asunto: [patrones] Observer Pattern Remoto
Para: "patrones List Member" <patrones@mug.org.ar>
Fecha: jueves, 4 de septiembre de 2008, 2:49 pm

Mirá Leandro, el tema de la configuración de la VPN es FACILISIMO con Hamachi, es ejecutar un servicio Windows y te olvidas. Es muy pero muy simple.
 
Respecto a lo de Commet, si he leido en el pasado, como una alternativa a AJAX donde se mantiene un canal de comunicación, pero cuando lo leí estaba medio verde y siempre lo vi con un browser como cliente y que mediante JS creaba el canal de comunicación, en este caso que tenes que hacer impresiones no se como lo harías.
 
Saludos!
 
Walter G. Poch
.NET Developer
--------------------------------------------
Cell: +54 (9 341) 3353273
--------------------------------------------
e-Mail: [EMAIL PROTECTED]
MSN: [EMAIL PROTECTED]
Skype: walter.poch
--------------------------------------------
wpoch.com.ar

Sent: Thursday, September 04, 2008 12:14 PM
Subject: [patrones] Observer Pattern Remoto

 
Hola Walter, gracias por la respuesta.
 
Si es una solucion el utilizar una VPN, pero creo que requiere mucha configuracion, yo queria algo que e deploy sea mas simple.
 
Habia pensado en utilizar algun concepto como el que usa la tecnologia "Comet", no se si estas familiarizado con esta, nada mas que no desde un exporador sino desde un servicio de windows desarrollado custom.
 
Pero el concepto podria servir, al momento de registrar mantener una conexion abierta entre server y client, para que se comuniquen, pero aun estoy vieno como se podria llevar esta teoria a la practica.
Mas que nada por como persistir la conexion abierta.
 
Se que en java hay mas framework que implementan Comet de forma simple, aun no se si en .net esto esta tan cerrado, como para sacar alguna idea en limpio.
 
Igual lo que me intriga es como funciona logmein, tiene que ser simple el concepto, pero no encuentro ningun ejemplo de implementar algo parecido, aunque sea solo para enviar string de datos, no pretendo que sea tan complejo como el producto logmein de control remoto.
 
Bueno cualqueir sugerencia, sera de ayuda.
 
Saludos


--- El jue 4-sep-08, Walter Poch <[EMAIL PROTECTED]> escribió:
De: Walter Poch <[EMAIL PROTECTED]>
Asunto: [patrones] Observer Pattern Remoto
Para: "patrones List Member" <patrones@mug.org.ar>
Fecha: jueves, 4 de septiembre de 2008, 10:51 am

Hola Leandro,
 
Mirá yo no soy arquitecto, y no se si tu solución será la óptima; pero para hacer lo que queres de abrir puertos etc, lo que podrías es crear una VPN entre el server Web y tus clientes; y de esta forma crear una zona segura con puertos abiertos.
 
Una herramienta de la gente de LogMeIn que te permite hacer esto es Hamachi, tiene dos version, una gratuita y otra paga.
 
Es sólo un granito de arena Smile emoticon
 
Saludos!
 
Walter G. Poch
.NET Developer
--------------------------------------------
Cell: +54 (9 341) 3353273
--------------------------------------------
e-Mail: [EMAIL PROTECTED]
MSN: [EMAIL PROTECTED]
Skype: walter.poch
--------------------------------------------
wpoch.com.ar

Sent: Thursday, September 04, 2008 10:36 AM
Subject: [patrones] Observer Pattern Remoto

 
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



¡Buscá desde tu celular! Yahoo! oneSEARCH ahora está en Claro
http://ar.mobile.yahoo.com/onesearch



¡Buscá desde tu celular! Yahoo! oneSEARCH ahora está en Claro
http://ar.mobile.yahoo.com/onesearch



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer.yahoo.com/cocina/

Responder a