Agrego algo mas. El metodo IniciarTarea podría estar escribiendo los parametros de la consulta en una Queue y del otro lado de la Queue podría haber N servidores leyendo la Queue y tomando el requerimiento de la consulta (haciendo la consulta y escribiendo en la table de resultados).
Me gusta la idea ... me parece que me fui de mambo, pero me gusta. SaludOZ, PS: No creo ser muy original con esto, ya debe estar implementado mil veces y seguro seguro seguro ... hay un patron con nombre para resolver esto. On 12/4/07, Oscar Zárate <[EMAIL PROTECTED]> wrote: > > Yo creo que la idea sería escribir algo que responda "inmediatamente" o > responda ... "preguntame luego con este ticket. > > No se cual es el negocio, pero me imagino algo que tenga mucho tiempo de > procesamiento ... entonces el web service tiene un metodo iniciar tarea (no > el proxy, el web service) este metodo inmediatamente retorna un ticket y > dispara un proceso y cuando finaliza el proceso guarda el resultado completo > en una tabla con ID igual al numero de ticket. Luego, otro metodo que recibe > el ticket y devuelve "resultado" o "preguntame luego". Este segundo metodo, > busca en la tabla si existe algun resultado para ese ticket, si existe > retorna el resultado, sino retorna "preguntame luego". > Incluso la respuesta del proceso deberia ser formateada para que el metodo > que devuelve sea lo mas rapido posible (solo lee y retorna, no pierde tiempo > en ningun formateo). > > De este modo, haces un "servicio" (sea web o no) que es "asincronico". > Incluso en el caso de una consulta MUY RAPIDA, la consulta completa consta > igual de una llamada a dos metodos. > > Espero haber sido claro, creo que de ese modo solucionas el problema. > > SaludOZ, > > On 12/4/07, Diego Jancic <[EMAIL PROTECTED]> wrote: > > > > Hola, > > Lo que no vas a poder hacer es que sea asincrónico desde el punto de > > vista > > del cliente. El cliente (desarrollado por cualquier otra persona) se > > conecta, recibe una respuesta y ya esta, no podes hacer nada mas. > > Lo que podrías hacer es trabajar dentro del web service para que no > > funcione > > dentro de un thread de IIS, y asi sobrecargas menos al IIS. > > > > Cuando decis "o que se comporte de alguna manera de atender muchas > > peticiones", no se bien a que te referis. Los WS están preparados para > > recibir muchas peticiones, y si al usuario final le molesta que tarde > > tanto > > (imaginemos que realiza un proceso largo, pero no se está sobre cargando > > el > > servidor del WS), es trabajo del que arma el cliente hacer que le > > aparezca > > un hermoso "loading..." > > > > Posiblemente la solución sea escribir un help para enseñarle a los otros > > desarrolladores a hacer las cosas asincrónicas :) > > > > Saludos! > > > > > > -----Original Message----- > > From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of > > Leonardo > > Micheloni > > Sent: Lunes, 03 de Diciembre de 2007 05:55 p.m. > > To: [email protected] > > Subject: [puntonet] Web service asincronico ? > > > > Entonces no te puedo ayudar, no tengo idea > > > > On Dec 3, 2007 3:15 PM, Marcelo P <[EMAIL PROTECTED]> wrote: > > > Gracias por la respuesta > > > El tema es que yo tengo que desarrollar un web service para que sea > > > consumido por cualquiera, yo no programo ni armo el proxy. Lo que > > tengo > > que > > > hacer es que el web service sea asyncronico o que se comporte de > > alguna > > > manera de atender muchas peticiones. > > > Saludos > > > > > > > > > >
