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
> > >
> >
> >
> >
>

Responder a