Ah! Yo voy entendiendo mas
Vi algo de lejos, algun caso asi, en un call center, tanto de llamadas salientes (un sistema que elige nros. TE y campanias, y las deriva a los operadores que estan libres y activos ( no se fueron al banio, etc ), como de llamadas entrantes (donde el sistema, antes de derivar el llamado a una PC de operador, donde estaria el SoftPhone, preparaba info adicional del llamante). Andres, con respecto a las dos opciones de abajo, hmmm quitaria lo de Windows Services. Por que? Primero, hay que instalarlo, levantarlo, vigilarlo, etc una pieza mas a vigilar. Por que no hacerlo directamente en el SoftPhone? Ademas, si el windows service toma un nro. a llamar, deberia reservarlo como tomado por mi, pero si luego se lo manda al SoftPhone, y este esta caido? O el operador se fue al banio? O esta ocupado hablando en la anterior llamada? De nuevo, todo eso se puede solucionar, pero a costa de mayor Comunicacion entre el SoftPhone y el Windows Service local. Me parece mas facil directamente lanzar un thread en el SoftPhone, y que desde ahi se consulte numeros a llamar. Ese thread seguramente estara mejor preparado para saber el estado del operador, etc En un caso que vi, hasta el operador era el que indicaba: estoy listo, y ahi el sistema veia si habia un numero. Ni siquiera habia sincronizacion de cuando pedir un nro: el operador activamente lo requeria al software local. Como facturaban por llamada/venta, estaban motivados ;-) (justamente, mi trabajo en el sistema que describi al principio, hace ya unos anios, fue proponer alternativas, y la de arriba es mas o menos la que referi como la mas recommendable: los operadores se instalaban el softphone y salia andando como pinia ;-) creo que tambien tenian pensado teletrabajo, cualquier operador se bajaba el softphone y comenzaba a trabajar en llamadas . Si habia un chamuyo de venta, cuestionario a completar, etc. todo eso se veia por la web). En cuanto donde guarder el pedido del ERP, y donde ir a buscar numeros, pensaria en algun sistema de colas. Si no te seduce Azure en el cloud, se puede instalar una maquina local con los emuladores de azure, y configurarlo para que acepte llamadas desde la intranet. Esto implica que el web server del ERP tenga llegada a esa maquina. Pero seria una sola maquina: problemas (probables) de cuello de botella. Pero seguramente debe haber parva de sistemas persistentes de cola a usar. Otra alternativa: La aplicacion web mantiene un servicio web (recomendaria algo simple, WCF Web API, con REST). Los clientes consultan (poleando) ese servicio. El problema de este approach es la escalabilidad: la aplicacion web puede quedar saturada. Pero para eso, hace falta conocer mas contexto de tu aplicacion, y ponerse a medir rendimiento con pruebas de carga concretas. Por eso se prefiere un middleware como un sistema de colas probado, o aun un servidor de base de datos. Nos leemos! Angel Java Lopez http://www.ajlopez.com http://twitter.com/ajlopez From: [email protected] [mailto:[email protected]] On Behalf Of Andres Guzman Sent: Thursday, October 27, 2011 11:55 AM To: [email protected] Subject: [puntonet] Coneccion WebForm a Windows Application via Web Service csalvatore, de lo casos que me indicas es el primero, pero esto no lo puedo resolver con un OCX ya que si me cierran el browser no podrian recivir llamadas. Las formas que se me han ocurrido para solucionar esto son 2, se las comento para que me den su opinion. Primera: ERP (Web Form) Se quiere llamar al Nº x ==> Web Service (Informo que el usuario conectado quiere realizar una llamada a Nª x) ==> Windows Service en Cliente (Por cada usuario existira un windows service corriendo y preguntando si existe llamada) ==> (Windows Form SoftPhone) Si existe alguna llamada este windows service le informara a mi SoftPhone que llame al Nª Segundo: ERP (Web Form) Se quiere llamar al Nº x ==> BD Sql Server (Ingreso registro a Base de Datos) ==> Windows Service en Cliente (Por cada usuario existira un windows service corriendo y preguntando en la bd si existe nº nuevo) ==> (Windows Form SoftPhone) Si existe alguna llamada este windows service le informara a mi SoftPhone que llame al Nº Saludos y gracias. El 27 de octubre de 2011 11:28, <[email protected]> escribió: Me parece que están hablando de escenarios distintos sin especificarlo. Un caso sería en el softphone (la aplicación WF) a la que se quiere transmitir el mensaje para que realice la acción, está en la misma máquina en la que el usuario está browseando. En ese caso es el browser el que debería comunicarse de algún modo con el SP. OK, esto es lo mismo que hacer click en un número de teléfono y que skype intente conectarse. Otra caso distinto es si el SP se ejecuta en el Web Server y es el web server el que tiene que actuar derivando la acción ante un request determinado. Ponele que estás tan contento de que al fin alguien completa el proceso de suscripción a tu servicio y querés que el servidor te llame por teléfono para avisarte (reutilizando un SP que en algún momento programaste y se te ocurrió instalar en un servidor web). En el primer caso hay muchas maneras de resolverlo, desde las viejas OCX hasta Silverlight. No importa que estés en el contexto del navegador, eso no te va a limitar de ningún modo el acceso a ningún recurso del SO. Lo que sí va a requerir es que el usuario ejecute distintas acciones como instalar componentes o asignar privilegios. Ir al webserver para que de vuelta se mande un mensaje a la PC que le indique al SP que realice la acción me parece un despropósito. Si lo que querés es verificar créditos disponible o algo por el estilo tenés que buscar otra estrategia más sencilla. En el segundo caso, sí, parecería que lo recomendable sería ir por el encapsulamiento de la funcionalidad. From: Angel "Java" Lopez Sent: Thursday, October 27, 2011 11:02 AM To: [email protected] Subject: [puntonet] Coneccion WebForm a Windows Application via Web Service Perdon, me meto rapido en este thread . Pero tener una libreria comun no parece que sea lo que se necesita. Digamos WA == aplicacion Web Digamos WF == aplicacion WinForm Lo que entendi que se pide es: WA ----> envia mensaje a -----> X WF ß--- recibe mensaje de ß---- X No se resuelve esto haciendo X == libreria comun. Lo que entiendo que se pregunta es, que podemos poner en X (una instancia real de algo, un artefacto corriendo algo) para que el escenario propuesto funcione. Como comentaron, puede ser: - Una cola (en el caso de Microsoft, una cola en Azure) - Dos servicios: uno que recibe un mensaje, y otro que es polleado por WF par aver si hay un mensaje - Un table en una base de datos, donde WF va polleando que registros nuevos hay Me atrevo a sugerir uno: - Dos cuentas de Twitter, una para WF, y otra para WA. Con mensajes protegidos si quieren. WA envia mensaje a la cuenta de twitter de WF. WF lee los mensajes que le llegan de WA. Pueden usar un cliente de Twitter para .NET Es este escenario el que se pedia al comienzo del thread? Nos leemos! Angel Java Lopez http://www.ajlopez.com http://twitter.com/ajlopez From: [email protected] [mailto:[email protected]] On Behalf Of Gustavo Azcona Sent: Wednesday, October 26, 2011 7:07 PM To: [email protected] Subject: [puntonet] Coneccion WebForm a Windows Application via Web Service Como muchos te lo han dicho, lo ideal es que la funcionalidad de tu Softphone la encapsules en un componente reutilizable (líbrería y/o web services) de forma tal que la puedas consumir en ambas aplicaciones (web y desktop), mediante una referencia local si creaste una librería o una referencia web si creaste un web service. Este enfoque puede serte fácil o difícil según como tengas desarrollado tu Softphone. Básicamente tu Aplicación Web NO puede enviarle comandos a tu aplicación Windows, ya que, por cuestiones de seguridad, las aplicaciones web corren en un sandbox dentro del browser. Es decir, tu aplicación web no puede acceder (o tiene acceso muy limitado) a recursos locales (disco, memoria, procesador, periféricos, aplicaciones, servicios, etc.). La única forma que tu aplicación web pueda interactuar con otras aplicaciones o recursos locales, es mediante add-ins (Complementos o extensiones del browser), con lo cual ya te estarías metiendo en otro gran lío interesante. Insisto que lo mejor sería que aísles la funcionalidad de tu softphone en una librería o componente reutilizable. Saludos, Gus De: [email protected] [mailto:[email protected]] En nombre de Andres Guzman Enviado el: miércoles, 26 de octubre de 2011 01:16 p.m. Para: [email protected] Asunto: [puntonet] Coneccion WebForm a Windows Application via Web Service Mira mejor te cuento lo que necesito, necesito que al presionar un boton en mi web form, le envie un numero telefonico a mi softphone (windows form este softphone fue codificado por mi asi que tengo el codigo y lo puedo modificar) y el softphone realize la llamada El 26 de octubre de 2011 13:03, Carlos Peix <[email protected]> escribió: Hola Andres, Olvidate del asincronismo, de WCF y todo lo demas. Construi un componente (una clase o conjunto de clases) en un proyecto de tipo "class library" y usalo desde las dos aplicaciones (referenciandola como haces con otros assemblies). Para darte mas detalles, supongo que tendrias que decirnos cual es esa tarea que queres compartir. ---------------------------------- Carlos Peix 2011/10/26 Andres Guzman <[email protected]> Carlos pero como construyo un componente con la funcionalidad para compartirla (sincronicamente), a través de WCF (Hosting Services) como me indica Sebastian El 26 de octubre de 2011 12:00, Carlos Peix <[email protected]> escribió: Entonces te recomiendo que no lo hagas de esa manera y te evitaras dolores de cabeza. Sugiero que construyas un componente con la funcionalidad que deseas comartir entre las dos aplicaciones y los uses en ambas. Si crees que esto no es posible, explicanos un poco mas sobre los motivos Por otro lado, deberias analizar si deseas ejecutar esa accion "sincronicamente" o "asincronicamente". El primer caso es el mas sencillo suponiendo que necesites el valor retornado por la accion para la ejecucion de tu pagina web y que la accion se ejecute rapidamente (medio segundo o algo asi). Estos consejos asumen una aplicacion de baja carga, es decir, no estoy hablando de twitter o facebook o amazon.com ---------------------------------- Carlos Peix 2011/10/26 Andres Guzman <[email protected]> Si tengo oportunidad de modificar, ambas las estoy desarrollando yo. El 26 de octubre de 2011 11:06, Carlos Peix <[email protected]> escribió: Tenes oportunidad de modificar la aplicacion WinForms? ---------------------------------- Carlos Peix 2011/10/26 Andres Guzman <[email protected]> Estimados. Junto con saludarlos y esperando que se encuentren bien, les escribo para ver si alguien me pude ayudar con esto, lo que necesito es poder conectar mi aplicación WEB Form con mi Windows Application a través de un Webservice. Lo que necesito hacer es que al presionar un botón dentro de mi Web Form, le envié un parámetro a mi Windows Application y esta ejecute una acción con el parámetro enviado. Alguien a realizado esto antes, como puedo empezar?- Desde y muchas gracias. -- Andrés Guzmán [email protected] -- Andrés Guzmán 09-9319111 [email protected] -- Andrés Guzmán 09-9319111 [email protected] -- Andrés Guzmán 09-9319111 [email protected] _____ Se certificó que el correo no contiene virus. Comprobada por AVG - www.avg.es Versión: 2012.0.1834 / Base de datos de virus: 2092/4575 - Fecha de la versión: 26/10/2011 -- Andrés Guzmán 09-9319111 [email protected]
