Hola Marcelo,
 
Lo que quiere decirte Daniel es que los tiempos de respuesta que ves en tu caso
no se deben a limitaciones de IIS o ASP.NET, se deben a que el servicio que
analiza tu archivo y te deja la respuesta en otro tarda demasiado en hacer ese
trabajo. ASP.NET no tiene otra opcion que esperar a que ese otro servicio
externo conteste.
 
Cuando vos hiciste la consulta, yo di por sentado que ese servicio externo no
podia ser mejorado en cuanto a su velocidad de respuesta, por lo tanto, habia
que arreglarselas en el web service para que no tirara abajo toda la aplicacion
web.
 
Por otra parte, el mecanismo de intercambio de datos mediante archivos en disco
es un tanto ineficiente y sujeto a problemas de concurrencia, ademas es mas
lento que otras opciones. Yo tambien asumi que no podias cambiar esto.
 
En otras palabras, creo que no podes comparar ambos casos debido a que en
ASP.NET tenes factores negativos externos (comunicacion por archivos y el
servicio externo que tarda una eternidad en responder).
 
Por ahi corresponde que analices ese otro servicio y el mecanismo de
intercambio.
 
Saludos
 
Carlos Peix



  _____  

From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Marcelo P
Sent: Jueves, 20 de Diciembre de 2007 01:41 p.m.
To: [email protected]
Subject: [puntonet] Web service asincronico ?


Vos decis Daniel , que si en vez de persistir en archivos ,usar un SQL por
ejemplo no tendría este problema ?. Te lo pregunto porque a la larga me tendría
que quedar esperando la respuesta tambié, haciendo consultas al SQL a ver si ya
le dieron la respuesta.
O directamente si hiciera tod sin persistir, en un momento escribo un pedido en
una cola de AS400, por ende me tengo que quedar haciendo Get a una col por la
respuesta.
Saludos y Gracias

Daniel Calvin <[EMAIL PROTECTED]> escribió: 

Hola Marcelo

Me parece que los problemas que tenes no se originan en IIS, tengo armadas
algunas apliaciones sobre web services, grandes, realmente grandes y no tengo
ese tipo de problemas.Y estoy hablando de cientos de invocaciones
concurrentes.... 

Tal vez tu problema pase por intercambiar mensajes via filesystem....

Saludos

Daniel Calvin





El día 19/12/07, Marcelo P <[EMAIL PROTECTED]> escribió: 

Bueno gracias nuevamente
Ahora solo les quiero comentar que yo , por otro tema consumo un web service que
está en Oracle y Java y hago lo que hoy quieren hacer mis clientes , osea ,
mando un pedido y quedo a la espera de la respuesta y es incrible lo rápido que
me responde, osea que da para penser en que tampoco es lo mejor montar esto
sobre un IIS, no ? 
Saludos

Carlos Peix <[EMAIL PROTECTED]> escribió: 

Hola Marcelo,
 
No es tan complicado, solo sale de lo comun. El problema debe ser bastante
comun, esta solucion sale de lo comun porque, en general, los desarrolladores no
se preocupan por este detalle y la aplicacion funciona años en forma
ineficiente. 
 
El caso que estas enfrentando, a mi criterio, esta sobre los limites de la
tecnologia, esto es, desafia los compromisos que tomaron los diseñadores de
ASP.NET. Por este motivo es que, para mantener al maximo la eficiencia de tu
aplicacion, tenes que dar este paso adicional. 
 
Sugiero que dediques el tiempo necesario a entender porque esto es necesario y
porque un request largo mezclado con muchos cortos es un problema para ASP.NET.
Esto, al fin y al cabo, es el trabajo de un arquitecto :-)
 
Quedas comprometido a contarnos como te fue.
 
Carlos Peix

  _____  

From: [email protected] [mailto:  <mailto:[email protected]>
[EMAIL PROTECTED] On Behalf Of Marcelo P
Sent: Martes, 18 de Diciembre de 2007 05:48 p.m.
To: [email protected]
Subject: [puntonet] Web service asincronico ?


Bueno , ante todo , muchas gracias por preocuparse por el tema.
Voy a mirar el artículo y ver como lo implemento. 
Seguro me demorará un poco ya que no tengo demasiado tiempo y por otro lado soy
bastante burrito, pero lo voy a ver y analizar y luego les cuento como me fué.
Ahora, de todas maneras no entiendo como puede ser tan complicado esto!!!!. 
Saludos

Carlos Peix <[EMAIL PROTECTED]> escribió: 

Marcelo, me quede pensando un poco mas en tu caso y creo que si se dan estas
condiciones:
 
- tenes uno o mas webmethods que tardan bastante y, 
- tenes, en la misma aplicacion web, otros webmethods que responden rapido y
- las llamadas al metodo lento son pocas en relacion con el total
 
te conviene implementar el metodo lento (o los lentos) en un segundo webservice,
en otra aplicacion web y llamar a ese webservice desde tu webservice principal.
Esa llamada al segundo webservice la haces como muestra el articulo que te paso
Angel y te recorde hoy mas temprano. 
 
En ese segundo webservice yo bajaria el tiempo del Thread.Sleep el tiempo de
espera, 1200 milisegundos me parece demasiado alto. Un 5% del tiempo promedio de
resolucion con un minimo de 100ms me parece reazonable.
 
Creo que este encuadre es perfecto para tu caso, avisanos si tenes dificultades
con la implementacion.
 
Carlos Peix



  _____  


Tarjeta de crédito Yahoo! de Banco Supervielle. Solicitá tu nueva Tarjeta de
crédito. De tu PC directo a tu casa. 
Visitá www.tuprimeratarjeta.com.ar  <http://www.tuprimeratarjeta.com.ar> 




-- 
Daniel A. Calvin
Cooperator Team Member
http://www.cooperator.com.ar
Microsoft Certified Professional 




  _____  


Tarjeta de crédito Yahoo! de Banco Supervielle. Solicitá tu nueva Tarjeta de
crédito. De tu PC directo a tu casa. 
Visitá www.tuprimeratarjeta.com.ar

Responder a