Aunque no es una nueva tecnología, sino una arquitectura que utiliza una serie de herramientas ya existentes, AJAX (Asynchronous JavaScript and XML) abre innovadoras posibilidades para optimizar las aplicaciones Web, reduciendo el uso de ancho de banda y las transacciones con el servidor Web. ¿El resultado? Los usuarios de Internet ya no deben esperar tanto y pueden acceder a aplicaciones más interactivas. Un ejemplo: GoogleMaps.
Google no sólo ha deslumbrado por su exitoso modelo de negocios, sino también por sus novedades tecnológicas. De hecho, GoogleMaps y Gmail son hoy por hoy las demostraciones más emblemáticas de la innovación en el ámbito de las aplicaciones Web, a partir del uso de un nuevo acrónimo: AJAX.
AJAX (Asynchronous JavaScript and XML) no es una tecnología en sí, sino más bien una técnica o un set de herramientas ya conocidas que, al ser usadas en conjunto, representan una nueva cara para las posibilidades de las aplicaciones Web.
Podría decirse que lo único nuevo es el enfoque, la visión que conlleva AJAX. Aunque su nombre sí lo es, porque AJAX es un término creado por Jesse James Garrett, de la consultora Adaptive Path, recién el año 2005.
Arquitectura Innovadora
AJAX incorpora diferentes tecnologías Web, algunas más conocidas que otras, pero todas existentes. Entre ellas, se puede mencionar a HTML, hojas de estilo en cascada (CCS-Cascading Style Sheets), Document Object Model (DOM), JavaScript y XML (Extensible Markup Language).
Para entender a esta nueva tecnología Web, hay que entender cómo funciona el mundo de las aplicaciones Web, las cuales, por esencia, siempre habían tenido limitaciones respecto de las aplicaciones de escritorio.
En el mundo Internet, cada vez que un usuario está navegando y realiza alguna acción, como apretar una tecla o hacer un clic, se comunica con el servidor Web haciéndole una petición, después de ella, desde ese servidor se envían los datos que permiten ir visualizando una página Web. Esto hacía que tradicionalmente existiera una brecha de tiempo y uso de recursos en la red al navegar, limitando el nivel de interacción, lo cual es precisamente un déficit que AJAX se propone superar, ya que permite lograr importantes ahorros de ancho de banda y de transacciones en los servidores Web.
Para lograrlo, AJAX utiliza capacidades que, si bien han estado presentes en muchos browsers, no han sido utilizadas por los desarrolladores. La primera de ellas es realizar peticiones al servidor sin tener que volver a cargar la página, mientras que la segunda es la posibilidad de analizar y trabajar con documentos XML. Por eso, las aplicaciones AJAX funcionan en varios de los navegadores actuales, como Mozilla, Firefox, Internet Explorer, Opera y Safari.
A partir de las tecnologías y herramientas conocidas, pero con un enfoque innovador, AJAX cumple el objetivo de llevar a las aplicaciones Web a un nuevo nivel de interactividad. De esta suerte, AJAX usa XHTML y CCS para presentar la información, DOM para la exhibición e interacción dinámica con los datos, XML y XSLT para el intercambio y manipulación de los datos y XMLHttpRequest, para la recuperación de datos asincrónica.
Aunque algunos se han resistido aludiendo que AJAX no es más que una denominación de XMLHttRequest, ya que éste es el componente técnico que hace las comunicaciones asincrónicas con el servidor, es importante destacar que dicho componente no tiene todo el enfoque aproximación que promueve AJAX, ni incorpora tecnologías como las mencionadas CSS y DOM.
Ventajas de AJAX
Según Jesse James Garrett, con AJAX se evita el constante arrancar-detener de la interacción Web tradicional. Para eso se utiliza un intermediario, que no es otra cosa que un motor "AJAX", entre el usuario y el servidor. En apariencia, sumar una nueva capa a la aplicación podría hacerla menos reactiva, sin embargo, el efecto es exactamente al revés.
Así, en vez de cargar un página Web, al inicio de la sesión el browser carga el motor AJAX, escrito en JavaScript y normalmente en un frame oculto. El motor será el responsable de representar la interfaz que ve el usuario y la comunicación con el servidor, en donde la interacción será asincrónica (independiente de la comunicación con el servidor). Por eso, como destaca Jesse James Garrett, el usuario ya no verá ventanas en blanco o el clásico reloj de área mientras espera que el servidor haga algo.
Cada acción del usuario, que normalmente generaría un requerimiento http, toma ahora forma de un llamado JavaScript al motor AJAX en lugar de ese requerimiento. La respuesta a una acción del usuario que no requiera un viaje de regreso al servidor -como una validación de datos, edición de datos en memoria o incluso navegación- es manejada por el motor. Si éste requiere del servidor para responder, esos pedidos se realizan asincrónicamente, usualmente usando XML, sin retardar la interacción del usuario con la aplicación.
Iniciativas AJAX
Garret, que es el creador del nombre, reconoce que la denominación "AJAX" no pertenece a su empresa ni a él ni a Google, definiéndolo como "un acercamiento, una manera de pensar la arquitectura de las aplicaciones Web usando ciertas tecnologías". Por eso, se lo cataloga como un conjunto de estándares, que ha permitido impulsar una iniciativa denominada "Open AJAX", preocupada de estandarizar el desarrollo de esta nueva arquitectura. Entre los miembros fundadores de Open AJAX se encuentran destacadas compañías, como IBM, Google, Oracle, Mozilla, Yahoo, Red Hat, Zimbra y Eclipse Foundation.
Según han anunciado, los miembros del grupo colaborarán informalmente para favorecer el desarrollo AJAX. Sin embargo, ejecutivos de algunas compañías participantes, como Zimbra, han declarado públicamente que, junto con contribuir al avance de AJAX, buscan asegurarse de que existirá una plataforma en código abierto, procurando evitar que AJAX se transforme en propietario, en clara alusión a Microsoft. La compañía del Bill Gates cuenta con su propio entorno de programación basado en AJAX denominado "Atlas" y es considerada por algunos la empresa creadora de la primera aplicación AJAX con la herramienta Microsoft Exchange Server.
Entendiendo que AJAX se basa en tecnologías que no son nuevas, invariablemente AJAX conlleva innumerables desafíos, los cuales no son principalmente de corte técnico, sino más bien desde el punto de vista del diseño de aplicaciones, ya que se debe dejar atrás la visión tradicional sobre el mundo de las aplicaciones Web para explorar sus nuevos usos y capacidades.