Las bases de la navegación dinámica

Publicado en la Revista RED, Junio de 2004.
 
El WWW y el contenido dinámico
En la prehistoria del WWW, o sea por allá de 1989, Tim Berners-Lee se encontraba trabajando en el centro de investigación CERN (http://www.cern.ch/) en Ginebra, Suiza. Entre sus funciones tenía el desarrollo de sistemas que dieran soporte a las diversas actividades de los investigadores del centro.
 
Fue así que en 1990 propuso un sistema para publicación y navegación de información mediante hipertexto al cual bautizó como World Wide Web, o simplemente WWW. Lo que sucedió desde ese entonces hasta la fecha es historia bien conocida. Lo importante es que desde aquel entonces, Berners-Lee tenía la visión de un WWW que permitiese un acceso universal a la información, es decir, que la información fuese accesible desde cualquier lugar, a cualquier hora, y utilizando cualquier dispositivo, sin importar el fabricante, ni la plataforma o el sistema operativo. Quería pues un sistema donde se pudiera publicar y accesar información en forma simple.
 
Para lograr sus propósitos, Berners-Lee creó una serie de tecnologías, incluyendo un protocolo de comunicaciones (HTTP), un sistema para localización de documentos (URL) y un formato básico para publicar y compartir la información (HTML). Así pues, inicialmente el WWW se utilizaba como una plataforma para publicar información y dejarla accesible para todos los interesados que podían consultarla a través de un navegador.
 
En este esquema la información son páginas HTML o documentos estáticos. Sin embargo, eventualmente se tuvo necesidad de acceso a información que cambiara con el tiempo o bajo ciertas condiciones, es decir, acceso a información dinámica.
 
Algunos ejemplos son la consulta a un sitio de noticias que está en constante cambio pues llega nueva información, consultas sobre la temperatura actual en una región dada, el acceso a una base de datos mostrando solo un conjunto determinado de información, etc. Para hacer posible el acceso a información dinámica se idearon varios mecanismos y entraron en juego lenguajes de programación; es precisamente sobre tales temas que hablaremos en este artículo.
 
Programación para el WWW
Para satisfacer las necesidades de tener contenidos dinámicos en el WWW, se requirió de un cambio de paradigma, es decir, el servidor al recibir una petición por parte del navegador no debería restringirse solamente a accesar y entregar páginas, sino debería también ser capaz de ejecutar aplicaciones. De esta forma, el servidor WWW se convertiría en una especie de intermediario entre el navegador y la aplicación. A esto se le llama tener programación del lado del servidor. Posteriormente se inventaron mecanismos para llevar la programación del lado del cliente, instalando entonces programas en el navegador, o al menos dándole capacidades de que corriera programas que le fueran entregados.
 
Uno de los primeros mecanismos para tener programación del lado del servidor fue CGI (Common Gateway Interface). Dicho mecanismo define reglas que deben seguir las aplicaciones para recibir y enviar información a los navegadores teniendo al servidor como intermediario. Un aspecto atractivo de CGI es su independencia de lenguaje, es decir, las aplicaciones pueden desarrollarse en cualquier lenguaje de programación. Al tener tales características CGI cobró gran auge, pues permitía la posibilidad de que muchos de los sistemas ya existentes corrieran en WWW sin tener que reescribirlos complemente; bastaba con algunas leves modificaciones para permitir la comunicación con el servidor. En la actualidad, muchos sitios importantes de comercio electrónico siguen utilizando CGI (o alguna variante como FastCGI) para sus desarrollos.
 
Otro enfoque para tener programación del lado del servidor es permitir la inserción de módulos en el servidor para que se ejecuten de forma más ágil y con un mejor desempeño. Este enfoque fue adoptado por ejemplo con los servlets; con tal mecanismo se tiene un servidor capaz de albergar módulos en Java llamados servlets, los cuales pueden ser ejecutados por el propio servidor al recibirse una petición de un navegador. El servidor Apache es particularmente apto para quienes quieran probar este enfoque, pues permite la inserción de una gran variedad de módulos (por ejemplo: servlets, módulos Perl, etc.).
 
Un enfoque adicional es el de tener programas embebidos dentro de las propias páginas HTML. De esta manera, cuando el servidor recibe la petición de un cliente recupera la página, pero antes de entregarla la revisa y si encuentra instrucciones de estos programas, entonces las ejecuta. Tales programas pueden estar escritos en una variedad de lenguajes tales como JSP, PHP, CFML, ASP y muchos más. El lenguaje PHP goza de una gran popularidad pues es independiente de plataforma, por lo que puede ser ejecutado por una gran variedad de servidores, los cuales pueden correr en diferentes sistemas operativos. Esto no sucede por ejemplo con ASP, el cual está atado a servidores y sistemas operativos de un solo vendedor (Microsoft).
 
 
Independientemente del enfoque y mecanismo que se utilice, la programación del lado del servidor tiene varias bondades. Por ejemplo, no se necesita asumir nada sobre el tipo de navegador utilizado, pues el código es ejecutado en el servidor y el navegador finalmente podrá recibir páginas HTML (generadas dinámicamente) como resultado de las ejecuciones en el servidor. También, los servidores por lo general corren en máquinas de mayor capacidad que las de los navegadores, por lo que es significativo el hecho de liberar al navegador de ejecutar programas, dejando esa tarea al servidor.
 
Programación del lado del cliente
Los programas o aplicaciones ejecutados del lado del cliente se ejecutan en la misma computadora del cliente que la invoca. Para lograr que la ejecución se lleve a cabo en el lado del cliente, será necesario bajar parches (plug-ins) e instalarlos en el navegador de Internet que se esté empleando, tal es el caso de JavaScript, JScript (variante de Microsoft), VBScript (Visual Basic) y Java. Los tres primeros son lenguajes interpretados, con lijeras variantes, que residen dentro del código de HTML. Java sin embargo, es un lenguaje muy diferente. Aunque estos lenguajes comparten una cierta similaridad superficial con Java, tanto en sintaxis como en conceptos, difieren de muchas maneras. Java es un lenguaje más completo.
 
En la invocación, el código de JavaScript, JScript y VBscript, es texto plano encerrado dentro de etiquetas especiales, es transferido del servidor al navegador del cliente cuando el HTML se está invocando a través de un URL. En ese punto, el código simplemente se empieza a ejecutar, antes de que el resto del HTML sea cargado, ya sea por una invocación del ratón, un scroll, teclado o por una instrucción "onLoad". Los applets de Java, por su parte, son cargados desde el servidor cuando el HTML es invocado por el URL, pero el código que es cargado no es texto plano: consiste de archivos de clases precompilados. La activación es hecha a través de etiquetas especiales de la forma . Una vez invocado, el applet puede presentarse de varias maneras, utilizando los elementos de HTML, tales como botones, graficas interactivas, etc. Así como JavaScript, una vez cargado el applet, éste se ejecutará sólo en el cliente.
 
Quizás Java, hasta la fecha es el contendiente líder más importante de los lenguajes de programación para desarrollo de sitios web. Sus principales ventajas son: Es un lenguaje derivado de C++, es independiente de la plataforma ?correra en cualquier plataforma que tenga una máquina virtual de Java, tiene un buen desempeño debido a que es un lenguaje compilado, un último punto es la seguridad, los applets descargados son verificados en integridad y sólo son interpretados por máquina virtuales confiables.
 
Una de las ventajas de la programación del lado del cliente es la velocidad de respuesta, una vez cargado el código. Una de las limitaciones, que se tiene un acceso muy limitado al servidor, pero también a la misma computadora del cliente, excepto por las cookies.
 
Editores y paquetes de desarrollo
Para manipular o codificar los lenguajes de programación, como el HTML, se hacen necesarios los editores. Existen dos tipos de editores, los de texto y los editores WYSIWYG. Los editores de texto, pueden ser desde un simple programa para introducir texto como el notepad (para windows) o el famoso editor vi (para unix/linux). Los editores de texto requieren un conocimiento más amplio del lenguaje por parte del programador. En cambio los editores WYSIWYG (visuales) son más fáciles de usar, ya que requieren de menos conocimientos del lenguaje por parte del programador.
 
Muchos de los desarrolladores de Sitios Web prefieren los editores de texto (código a mano) a los editores WYSIWYG, debido a que tienen más control sobre el código, ya que estos no agregan código o etiquetas inesperadas como ocurre en la mayoría de los lenguajes visuales. En la referencia http://mvp.wiserways.com/2003/compare.htm se hace una comparación entre varios editores visuales tales como el Dreamweaver, FrontPage, GoLive y Visual Studio.Net. Muchos de los Sitios Web contienen cada vez más gráficos animados que hacen uso de lenguajes y paquetes de desarrollo tales como Flash y Shockwave de Macromedia.
 
Existen paquetes de desarrollo para Sitios Web más sofisticados que permiten otras funciones, tales como integración de base de datos, servicios web, comercio electrónico, aplicaciones para dispositivos móviles, etc. Dos ejemplos son ColdFusion (Macromedia) y Visual Studio.NET (Microsoft).
 
Tendencias y conclusiones
Los navegadores de hoy en día reciben información de los servidores de HTTP en formato HTML/XHTML o en un lenguaje de Script como JavaScript. Muy pronto los navegadores serán capaces de interpretar y procesar otros lenguajes.
 
La web semántica o la web de segunda generación es una de las tendencias tecnológicas emergentes y convergentes que están conformando el futuro del WWW, en la cual se da un significado bien definido a la información, permitiendo un mejor trabajo de colaboración, tanto a computadoras como a personas. Mientras que la web actual utiliza HTML como su lenguaje principal, la web semántica esta basada en RDF, el cual integra una variedad de aplicaciones que utiliza XML para sintaxis y URIs para nombrado. La web semántica el dará otro enfoque a los Sitios Web que conocemos hoy en día. La Web solamente puede alcanzar su potencial máximo si se convierte en un lugar en donde los datos se puedan compartir y procesar por las herramientas automatizadas tanto como por las personas.
 
José Antonio García Macias es investigador del Centro de Investigación Científica y de Educación Superior de Ensenada (CICESE); Evelio Martínez Martínez es docente de tiempo completo de la Universidad Autónoma de Baja California (UABC), ambos radican en Ensenada, Baja California y se les puede contactar en jagm[at]cicese.mx y evelio[at]uabc.edu.mx respectivamente.
 
 
 
 
 
 
Hits: 8698

Licencia

Creative Commons License El contenido de la web está bajo licencia Creative Commons. Eres libre de copiar, distribuir y comunicar públicamente la obra. No puedes utilizar esta obra para fines comerciales. Si alteras, transformas o creas una obra a partir de esta obra, solo podrás distribuir la obra resultante bajo una licencia igual a ésta. Debes reconocer la autoría de la obra en los términos especificados por el propio autor o licenciante mediante un enlace a este Sitio. 

<a href="http://www.eveliux.com/mx/"> Eveliux.com </a>