PROXY goes wild

Esta es una experiencia sobre la instalación de una aplicación WEB con Ajax, con GX 9.0.

En uno de nuestros clientes tienen un servidor ISA que funciona como proxy y firewall, que es administrada por otra empresa encargada de la infraestructura y seguridad.

Cuando instalamos la aplicación desarrollada con GX 9.0, y le habilitamos la funcionalidad de Suggest y la funcionalidades Ajax, la misma se tornó INUTILIZABLE.

La misma funcionaba correctamente y con una performance muy buena cuando se ejecutaba desde cualquier lado, pero cuando se ejecutaba atras del proxy, la performance se venia al suelo.

En la investigacion previa, vimos que con FireFox la performance era mucho mejor que cuando se ejecutaba con Internet Explorer, por lo que dedujimos que el problema venia por el lado de JavaScript.

A pesar de ser un tema que no me gusta nada, tuve que empezar a mirar que era lo que estaba pasando a nivel del tráfico http, pues habia algo que estaba muy mal.

Instalé el Fiddler (permite ver los paquetes http que viajan en la red) en mi máquina, y
capturé los paquetes http intercambiados.

Con la misma aplicacion y llamando a la misma URL (una web transaccion, con combos, editor html, suggest), desde afuera de proxy, habia un trafico de unos 83 K. Cuando lo hacemos desde atras del proxy, el tráfico es de mas de 9Mb. O sea + de 100 veces el trafico !!.

Eso explicaba porque la aplicacion era inutilizable, pues solamente el llamar a una transaccion era como hacer un download de 9Mb.

Analizando el trafico, se ve que el gran volumen del trafico es por mensajes 407 y 401, errores que se relacionan con la autenticacion del proxy. Las aplicaciones que no necesitan autenticacion funcionan correctamente, pero las que necesitan autenticación (en el IIS, en este caso), generan un trafico muy superior entre el cliente y el proxy.

O sea, al tener aplicaciones web, no es totalmente cierto el que el deployment es casi sin costo. Hay varios factores que pueden intervenir y complicar el asunto... Sigue siendo clara la primer ley de la informática :

"Nada se pierde, todo se complica".


Al final, para dejar algo operativo, hicimos algunos cambios, que fueron recomendar la utilización de Firefox 2.0 (acelera todo el manejo de JavaScript), cambiamos la autenticación de la aplicación y suspendimos la utilización de Ajax en algunos lugares donde no era indispensable. Tambien ayudó no grabar la contraseña del usuario en el proxy, que aunque trae como inconveniente que la pide una vez al dia, disminuye muchisimo el trafico entre el proxy y el cliente.

UPDATE: Cambie unos detalles, pues me habia equivocado en la cuenta con la cantidad de bytes transmitidos.



Comentarios

Entradas más populares de este blog

Aplicación monolítica o distribuida?

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.