María Jesús Lamarca Lapuente. Hipertexto: El nuevo concepto de documento en la cultura de la imagen. |
HTML dinámico o DHTML (Dinamic HyperText Markup Language) es un término colectivo que sirve para designar una combinación de nuevas etiquetas del lenguaje HTML y nuevas opciones de estilo y programación que permiten crear páginas web más dinámicas y animadas, a la vez que ofrecen una mayor interactividad por parte del usuario que las versiones previas de HTML. Muchas de las especificaciones de DHTML en HTML 4.0 son simples ejemplos de páginas HTML dinámicas que pueden incluir acciones diversas, como establecer que el color de la cabecera de un texto cambie cuando el usuario pasa el ratón sobre él, permitir a los usuarios que desplieguen o contraigan un menú, hacer que aparezca una línea en la barra de estatus del navegador, etc. El lenguaje HTML dinámico permite que los documentos web tengan un aspecto más atractivo, además de actuar sobre determinadas aplicaciones de escritorio o producir efectos multimediales. En la World Wide Web se pueden encontrar 2 tipos de páginas hipertextuales:
Las páginas estáticas se construyen con lenguaje HTML, que no permite grandes alardes a la hora de crear efectos y funcionalidades más allá de los enlaces. Estas páginas son muy sencillas de crear y suelen ofrecer las morfologías más comunes como texto, imágenes y contenidos multimedia como audio y vídeo que convierten al hipertexto en hipermedia. Por el contrario, las páginas dinámicas son más complejas de elaborar ya que incluyen algún efecto especial o funcionalidad distinto al proporcionado por el lenguaje HTML. Para ello, es preciso utilizar otros lenguajes de programación además del simple HTML, ya que las páginas dinámicas son más complejas de elaborar y más versátiles que las páginas estáticas. Estas nuevas funcionalidades se llevan a cabo mediante los denominados scripts. Un script es un programa o secuencia de instrucciones que son trasladadas y ejecutadas por un programa (por ejemplo el navegador web). Algunos lenguajes han sido concebidos expresamente como lenguajes de scripting. Los más populares son VBScript, JavaScript y Perl. En el contexto de la World Wide Web, Perl, VBScript, y otros lenguajes de scripting similares a menudo se escriben para dar entrada a otras funciones u otros servicios para un sitio web que son procesados en el servidor Web. En la actualidad existen diferentes modelos de objetos y diferentes implementaciones de "scripts". Los scripts más conocidos son:
Todos estos scrips se efectúan desde el lado del cliente. Sin embargo, existen otra serie de componentes que se efectúan desde el servidor. Hay defensores y detractores del lenguaje DHTML o HTML dinámico. Los detractores afirman que añade complejidad al HTML, crea también confusión en la comprensión de la página y añade código que no puede trabajar en todos los contextos y que, incluso, lo rompe en algunos. Sin embargo, no cabe duda, de que muchas nuevas funciones interactivas, dejando a un lado el diseño web, no podrían llevarse a cabo sin la presencia de estas nuevas etiquetas que aporta el HMTL dinámico. En realidad, DHTML no es precisamente un lenguaje de programación. Más bien se trata de una nueva capacidad de la que disponen los navegadores modernos, por la cual se puede tener un mayor control sobre la página que con el HTML simple. Cualquier página que responde a las actividades del usuario y realiza efectos y funcionalidades se puede englobar dentro del lenguaje DHTML, pero en este caso nos referimos más a efectos en el navegador por los cuales se pueden mostrar y ocultar elementos de la página, se puede modificar su posición, dimensiones, color, etc. DHTML nos da más control sobre la página, gracias a que los navegadores modernos incluyen una nueva estructura para visualizar en páginas web denominada capa. Las capas se pueden ocultar, mostrar, desplazar, etc. Para realizar las acciones sobre la página, como modificar la apariencia de una capa, seguimos necesitando un lenguaje de programación del lado del cliente como Javascript o VBScript. Sin embargo, DHTML también puede englobar la programación en el servidor. Algunos autores incluyen a este tipo de programación dentro de DHTML y otros no, pero lo cierto es que las fronteras del lenguaje DHTML quedan poco definidas y hay quienes afirman que DHTML no sólo debe englobar los procesos en el cliente, sino que DHTML es cualquier cosa que hace que una página sea dinámica, ya sea en el lado del cliente, en el servidor o en ambos. El uso de HTML dinámico también es útil para desarrollar aplicaciones web en las que el usuario puede interaccionar con la página o con una aplicación que ofrece algún servicio tales como un buscador, un gestor web de correo, etc. DHTML es lo que hace posible crear una páginas web que salven todas las limitaciones del HTML. DHTML es muy amplio y engloba muchas técnicas que se pueden realizar con multitud de lenguajes de programación y programas distintos . Para acotar un poco el concepto de DHTML y sus funcionalidades, podemos distinguir estas 2 clases distintas diferenciando entre DHTML de cliente y DHTML de servidor. DHTML de cliente Por un lado tenemos el DHTML que se desarrolla en el ámbito de una página web, cuando la página se está viendo en la pantalla de los usuarios, es decir, en los navegadores. En estos casos, para realizar cualquier tipo de efecto o interactividad en la página tenemos que recurrir al navegador, por eso se llama de cliente (el navegador es un programa que se haya en el ordenador cliente). La programación en el cliente sirve para muchas cosas, como dotar de diversos efectos a las páginas, añadir sonidos, vídeos, menús interactivos, control y respuesta a las acciones de un usuario en la página, control sobre los formularios, etc. Para hacer muchas de estas cosas podemos utilizar diversos lenguajes de programación como Javascript y VBScript, o incluso podemos incluir aquí programas como Flash. Un scritp en una página web que corre del "lado del cliente", es traducido y ejecutado por el navegador web. El scripting del lado del cliente está basado en el reconocimiento que el ordenador situado del lado del cliente usa del navegador, de esta forma, el servidor se ahorra un excesivo poder de computación, ya que el proceso llevado a cabo al descargar una página web, se comparte entre el cliente y el servidor. Por lo general, se programan scripts dentro de la página web con lenguajes del lado del cliente. Para ello se utiliza Javascript, válido para todos los navegadores, y VBScript, válido para Internet Explorer. Estos lenguajes trabajan integrados en el navegador y dependen del modelo y la versión de éste. Muchos de los llamados programas CGI o Common Gateway Interface, que es un sistema para la programación de las páginas dinámicas de servidor, también pueden ser acometidas en el ordenador cliente. Se trata de ocupar solamente el servidor durante el tiempo que se necesita para llevar a cabo una aplicación web cuando se precisa enviar un e-mail o acceder a un archivo de datos. Cosas como el mantenimiento del estado, llenar formularios, mostrar errores de página o llevar a cabo cálculos numéricos, pueden ser fácilmente llevados a cabo por el ordenador del cliente. El navegador web no necesita controlarlos con un programa CGI cada vez que el usuario hace algo. Un script en una página HTML puede contener las instrucciones necesarias para realizar un número de eventos comunes. En general, los lenguajes de scripting son más fáciles y rápidos de codificar que los lenguajes más estructurados y compilados tales como C y C++ y son ideales para programas de capacidad muy limitada o que pueden reutilizarse y unirse a programas compilados existentes. Sin embargo, un script tarda más tiempo en ejecutarse que un programa compilado porque cada instrucción está siendo llamada por otro programa primero, requiriendo instrucciones adicionales, más que directamente por las instrucciones básicas del procesador. Estos lenguajes no permiten el desarrollo de cualquier proyecto en Internet, ya que al ser ejecutados en el navegador del cliente, no tienen acceso a todos los recursos del sistema del usuario, para evitar agujeros de seguridad, ni a los recursos del servidor donde están alojadas las páginas. Esta limitación, añadida a la de su dependencia del navegador, los hacen insuficientes para desarrollos avanzados, siendo más bien un complemento de programación que el núcleo de verdaderas aplicaciones en la Web. En la versión 4 de los navegadores Netscape y Microsoft ya había un programa de scripts dinámicamente interactivo con el documento HTML, pero los scripts dinámicos de HTML escritos para Internet Explorer 4 no trabajaban con Netscape, y viceversa.
Además, como los buscadores no lo soportaban, se intentó crear una forma común para escribir los programas que interactuasen con el documento. Este mecanismo común se conoce con el nombre de Modelo de Objeto de Documento DOM (Document Object Model). Tanto Netscape como Microsoft se comprometieron a dar soporte el estándar que hará más fácil la labor a los creadores de scripts. La información sobre la especificación del World Wide Web Consortium sobre DOM se puede encontrar en (http://www.w3.org/DOM/). De cualquier forma, se explica con más detalle en qué consiste DOM al tratar el lenguaje XML. DHTML de servidor Existen una serie de lenguajes que se basan en el servidor para ejecutar sus scripts, al igual que la programación del cliente se basa en el navegador. Cuando una página es solicitada por parte de un cliente, el servidor ejecuta los scripts y genera una página resultado, que envía al cliente. La página resultado contiene únicamente código HTML, por lo que puede ser interpretada por cualquier navegador sin lugar a errores, independientemente de su versión. Esta independencia del navegador ya es una ventaja significativa con respecto a la programación en el cliente, pero lo es aun más si tenemos en cuenta que contamos con todos los recursos del servidor donde están alojadas las páginas. Estos recursos, como podrían ser gestores de bases de datos, servidores de correo o el propio sistema de archivos del servidor, son los que nos van ha permitir construir todo tipo de aplicaciones. Como ventajas adicionales se puede destacar que el código de las páginas con los scripts nunca llega al cliente, puesto que al navegador sólo le llega HTML, y esto implica que los visitantes de una página nunca van a poder acceder al corazón de las aplicaciones que se hayan desarrollado, es decir, a los scripts del lado del servidor. Lenguajes del lado del servidor son ASP, desarrollado por Microsoft, PHP de código libre, JSP para programar en Java, o alguna otra interfaz como CGI, que se desarrolla en lenguajes como C o Perl. Dentro del concepto de DHTML también se engloban otros atributos dinámicos como los que permiten el lenguaje Flash y las Hojas de Estilo en Cascada -CSS (Cascade Style Sheets), a las que dedicamos una capítulo aparte. Así pues, analizaremos uno por uno todos estas aplicaciones y atributos que convierten el lenguaje HTML en DHTML, esto es, que confieren dinamismo al clásico HTML: JavascriptJavascript es un lenguaje simple de scripts, no se trata propiamente de un lenguaje de programación como lo es Java. Javascript fue desarrollado por Netscape para su navegador Netscape Navigator 2.0 y permite la ejecución de código dentro de las páginas en HTML con el fin de crear pequeños programas encargados de realizar acciones dentro del ámbito de una página web. Gracias a los programas (llamados guiones) escritos en este lenguaje y embebidos en las páginas HTML, se pueden conseguir interesantes efectos en las páginas web, comprobar la validez de la entrada de formularios, abrir y cerrar ventanas, cambiar dinámicamente el aspecto y los contenidos de una página, interactuar con la disposición del texto, hacer que aparezcan varias disposiciones sobre la pantalla, crear menús y marquesinas desenrollables, hacer cálculos matemáticos sencillos, etc. Microsoft posee su propia versión para su navegador Internet Explorer, llamada JScript, que presenta algunas incompatibilidades con los navegadores de Netscape, pero prácticamente son el mismo lenguaje. Para poner un script en una página web se utiliza la etiqueta de HTML <SCRIPT> y todo lo que pongamos entre esa etiqueta y la de cierre, </SCRIPT>, tiene que ser código del lenguaje de scripting que estemos utilizando. También debemos indicar el lenguaje con el que estamos programando. En el caso de JavaScript pondremos: <SCRIPT LANGUAGE="JavaScript"> </SCRIPT> A continuación se muestra un ejemplo de código para hacer que aparezca un mensaje de alerta con una frase de bienvenida cuando el usuario abra la página web. <script> JavaScript es un lenguaje de programación del lado del cliente, porque es el navegador el que soporta la carga de procesamiento, aunque también se puede programar del lado del servidor. Gracias a su compatibilidad con la mayoría de los navegadores, se ha convertido en uno de los lenguajes de programación más utilizados. Con Javascript podemos crear efectos especiales y definir determinadas funciones interactivas. El navegador del cliente es el encargado de interpretar las instrucciones Javascript y ejecutarlas para realizar estos efectos e interactividades, de modo que el mayor recurso, y tal vez el único, con que cuenta este lenguaje es el propio navegador. Javascript es el siguiente paso, después del HTML, que puede dar un diseñador y programador de webs para mejorar sus páginas y dar una mayor potencia a sus proyectos. Se trata de un lenguaje de programación bastante sencillo y de rápida ejecución que incluso puede ser utilizado por personas que no tengan una experiencia previa en programación.
Entre las acciones típicas que se pueden realizar en Javascript podemos distinguir dos aspectos diferenciados. Por un lado los efectos especiales sobre páginas web, con el fin de crear contenidos dinámicos y elementos de la página que tengan movimiento, cambien de color o cualquier otro dinamismo. Y, por otro lado, Javascript nos permite ejecutar instrucciones como respuesta a las acciones del usuario, con lo que podemos crear páginas interactivas con programas como calculadoras, agendas o tablas de cálculo.
El lenguaje Javascript ofrece muchas posibilidades distintas, permite la programación de pequeños scripts, pero también de programas más grandes, orientados a objetos, con funciones y estructuras de datos complejas, etc. Además, Javascript pone a disposición del programador todos los elementos que forman la página web, para que éste pueda acceder a ellos y modificarlos dinámicamente. Con Javascript el programador se convierte en un verdadero controlador de cada cosa que ocurre en la página cuando la está visualizando el cliente en el navegador. Visual Basic ScriptVBScript o Visual Basic Scripting es similar a los lenguajes Visual Basic que utilizan los desarrolladores de Windows y tiene, esencialmente, la misma estructura que JavaScript. Visual Basic Script o VBScript es el lenguaje de scripting desarrollado por Microsoft para páginas web con el que se pueden realizar efectos para el navegador Internet Explorer y otros sistemas de esta compañía, por lo que en principio es una ventaja para programadores experimentados en estos sistemas, pero una desventaja para los demás. Igual que hacíamos en el caso de JavaScript, cuando se introduce un elemento SCRIPT en la cabecera o cuerpo del documento, este elemento puede contener un script ejecutable con el que podemos programar alguna funcionalidad. En el caso de VBScript pondremos: <script
language="VBScript" > De esta forma se ejecuta VBScript desde el lado del cliente porque será el navegador quien lo interpreta y ejecuta, pero también podemos programar VBScript desde el lado del servidor. Se trata de las páginas ASP, e, en donde el código lo interpreta y ejecuta el servidor Internet Information Server antes de enviarlo al cliente que solicitó la página. La sintaxis de los dos usos es la misma, pero los recursos a los que podemos acceder son distintos. En el primer caso accedemos al navegador y en el segundo podremos acceder a los recursos del servidor, como una bases de datos. Visual Basic es un lenguaje muy amplio desarrollado por Microsoft y que tiene muchas facetas distintas, de tal forma que VBScript es un sublenguaje limitado a pequeños ámbitos ya sea en la programación en el cliente de una página web o en el servidor de páginas web. VBScript no tiene mucha relación con Javascript, se trata de dos lenguajes que en realidad están compitiendo, pero que sirven para conseguir las mismas funciones. Con el lenguaje Java ocurre algo similar, no tiene mucho que ver salvo sus similares objetivos y recursos, aunque Java es mucho más de propósito general que VBScript. Salvando las distancias, Java se podría comparar más con Visual Basic que con el limitado VBScript.
ASPASP (Active Server Pages) o páginas del servidor activas es la tecnología para la creación de páginas dinámicas del lado del servidor desarrollada por Microsoft. El tipo de servidores que emplean este lenguaje son aquellos que funcionan con el sistema operativo de la familia Windows NT, aunque también podemos visualizar páginas ASP sobre todos los tipos de sistemas operativos Windows desde Windows 95. Hay varios servidores web disponibles libremente en http://www.microsoft.com/iis. También se pueden utilizar otro tipo de servidores no Windows utilizando un traductor de ASP antes de enviarlo al cliente. Para escribir páginas ASP se utiliza un lenguaje de scripts. Estos se colocan en la misma página web junto con el código HTML. En el caso del HTML simple, el cliente pide una página del servidor, el servidor se la envía y ésta se muestra en el navegador. Los scripts ASP, en cambio, se ejecutan antes de ser enviados. El servidor los procesa a través de una DLL llamada ASP.DLL, que es la que interpreta los mandatos ASP. En realidad, ASP es la alternativa de Microsoft al lenguaje PHP de distribución gratuita. Si se utiliza un servidor de Microsoft para desarrollar páginas ASP, lo único que hay que hacer es crear un archivo en el servidor con extensión .asp. Cuando el cliente pida la página, el servidor la preprocesará y la enviará. Se puede hacer que el código ASP se conecte y acceda a una base de datos (Access, SQL, Oracle, o cualquiera que cumpla ODBC) e inserte dinámicamente los datos en el HTML. Esto ofrece grandes posibilidades en el terreno del comercio electrónico, en la creación de sitios web personalizables, en algunos aspectos concretos como generación y validación de formularios y su inserción y almacenamiento automático en bases de datos, en la creación de foros de discusión, enviar correos y en general, en cualquier otro sistema de entrada y salida de datos a través de Internet, etc. Además, ASP permite acceder a una gran cantidad de objetos, formularios y bases de datos. Comúnmente este lenguaje de scripts es Visual Basic Script, que deriva del conocido Visual Basic, aunque también se pueden escribir los scripts ASP en JScript, que deriva a su vez de Javascript. Existe una versión de Visual Basic Script en el lado cliente y otra en el lado del servidor con el mismo lenguaje de base Visual Basic. Ambos tienen prácticamente las mismas sentencias y sintaxis. En ASP, al estar programando páginas del lado del servidor, se utiliza Visual Basic Script del lado del servidor. Existen editores específicos de ASP como MS Visual Interdev de Microsoft (http://msdn.microsoft.com/vinterdev) o Ultradev de Macromedia (http://www.macromedia.com/support/ultradev/), pero también hay otros editores web no específicos con los que se puede desarrollar ASP. En realidad, las páginas Active Server son archivos de texto, igual que las páginas HTML puras, así que podemos escribir ASP tanto con el Bloc de Notas como con cualquier editor de texto. ASPs corre perfectamente desde servidores Windows. Cualquier persona puede instalarse su servidor web personal sobre máquinas Windows para testear su código o construir sus propias aplicaciones. Microsoft ASPs tiene soporte nativo para VBScript (por defecto) y JScript (JavaScript de Microsoft), pero se pueden también usar otros lenguajes como ActivePerl. Por el contrario, PHP y JSP corren sobre todas la máquinas, tanto en plataforma Windows como sistemas Unix. Además, es posible incluir fácilmente XML, XSLT y XML DOM en ASP, usando el parser MSXML. Lo dicho anteriormente funcionaba para la versión de ASP, pero la nueva versión sacada por Microsoft y llamada ASP.net puede escribirse en cualquier lenguaje soportado por .net Framework, es decir: VB.net; C# y JScript.net. En esta versión ya no se puede utilizar VBScript sino VB.net que es lo que más se aproxima. Otro cambio radical es que ASP.net se ha convertido en un lenguaje totalmente orientado a objetos.
PHPPHP es el acrónimo de Hipertext Preprocesor. Se trata de un lenguaje de programación del lado del servidor gratuito e independiente de la plataforma, rápido, con una gran librería de funciones y mucha documentación. Como hemos dicho anteriormente, un lenguaje del lado del servidor es aquel que se ejecuta en el servidor web, justo antes de que se envíe la página a través de Internet al cliente. Las páginas que se ejecutan en el servidor pueden realizar accesos a bases de datos, conexiones en red, y otras tareas para crear la página final que verá el cliente. El cliente solamente recibe una página con el código HTML resultante de la ejecución de PHP. Como la página resultante contiene únicamente código HTML, es compatible con todos los navegadores. Al igual que ASP, PHP se escribe embebido dentro del código HTML, lo que lo hace realmente fácil de utilizar, pero con algunas ventajas como su gratuidad, independencia de plataforma, rapidez y seguridad. Cualquiera puede descargar a través de la página principal de PHP http://www.php.net y de manera gratuita, un módulo que hace que nuestro servidor web comprenda los scripts realizados en este lenguaje. Es independiente de la plataforma, puesto que existe un módulo de PHP para casi cualquier servidor web. Esto hace que cualquier sistema pueda ser compatible con el lenguaje y significa una ventaja importante, ya que permite migrar el sitio desarrollado en PHP de un sistema a otro sin prácticamente ningún trabajo. Además, si tenemos PHP montado sobre un servidor Linux u Unix, es más rápido que ASP, ya que se ejecuta en un único espacio de memoria y esto evita las comunicaciones entre componentes COM que se realizan entre todas las tecnologías implicadas en una página ASP. Otra ventaja es la seguridad, pues en muchas ocasiones PHP se encuentra instalado sobre servidores Unix o Linux, que son más veloces y seguros que el sistema operativo donde se ejecutan las ASP, Windows NT o 2000. Además, PHP permite configurar el servidor de modo que se permita o rechacen diferentes usos, lo que puede hacer al lenguaje más o menos seguro dependiendo de las necesidades de cada cual. PHP fue concebido en 1994 por Rasmus Lerdorf, pero como está desarrollado como código abierto, a lo largo de su historia ha tenido las contribuciones de muchos otros desarrolladores. Las primeras versiones no distribuidas al público las usó Lerdorf en un sus páginas web para llevar un control de quienes consultaban su currículum. La primera versión pública de 1995 se llamó "Herramientas para paginas web personales" (Personal Home Page Tools) y consistían en un analizador sintáctico muy simple que solo entendía unas cuantas macros y una serie de utilidades comunes en las páginas web de entonces, un libro de visitas, un contador y otras pequeñas utilidades. El analizador sintáctico fue reescrito a mediados de 1995 y fue nombrado PHP/FI version 2. FI viene de otro programa que había escrito Lerdorf y que procesaba los datos de formularios. Así que combinó las "Herramientas para páginas web personales", el "intérprete de formularios", añadió soporte para mSQL y PHP/FI vio la luz. En poco tiempo, PHP se expandió como la pólvora y muchos usuarios empezaron a contribuir en el código. De esta forma surgió la versión PHP 3, creada por Andi Gutmans y Zeev Zuraski en 1997 que rescribieron completamente el código. Una de las mejores características de PHP 3 era su gran extensibilidad y esto condujo a que docenas de desarrolladores enviaran nuevos módulos de extensión. Además, PHP 3 era capaz de proveer a los usuarios finales de una sólida infraestructura para muchísimas bases de datos, protocolos y APIs. Todo el nuevo lenguaje fue liberado bajo un nuevo nombre, que borraba la implicación de uso personal limitado que tenía el nombre PHP/FI y pasó a llamarse PHP como acrónimo recursivo de "PHP: Hypertext Preprocessor". A finales de 1998, PHP estaba instalado en cientos de miles de sitios web, lo utilizaban miles de usuarios y estaba instalado en aproximadamente un 10% de los servidores web en Internet. Los mismos autores que desarrollaron la versión 3 comenzaron a trabajar en PHP 4 rescribiendo de nuevo el núcleo de PHP con el fin de mejorar la ejecución de aplicaciones complejas y la modularidad del código base de PHP. El nuevo motor, apodado 'Motor Zend' (comprimido de sus apellidos, Zeev y Andi), alcanzó estos objetivos de diseño y se introdujo por primera vez a mediados de 1999. PHP 4, basado en este motor, y acoplado con un gran rango de nuevas características adicionales, fue oficialmente liberado en Mayo de 2000. En junio de 2003 se liberó la primera versión beta de PHP 5, con más mejoras sobre el motor Zend y otras importantes características como el soporte de datos XML y adaptación al protocolo IP versión 6. Este lenguaje de programación está preparado para realizar muchos tipos de aplicaciones web gracias a la extensa librería de funciones con la que está dotado. La librería de funciones cubre desde cálculos matemáticos complejos hasta tratamiento de conexiones de red, por poner dos ejemplos. Algunas de las más importantes capacidades de PHP son: compatibilidad con las bases de datos más comunes, como MySQL, mSQL, Oracle, Informix, y ODBC, etc. Además, incluye funciones para el envío de correo electrónico, subida de archivos, crear dinámicamente en el servidor imágenes en formato GIF, incluso animadas y una lista interminable de utilidades adicionales.
CGILa CGI o Common Gateway Interface es el sistema más antiguo que existe para la programación de las páginas dinámicas del servidor. En la actualidad se encuentra un poco desfasado por diversas razones entre las que destaca la dificultad con la que se desarrollan los programas y la pesada carga que supone para el servidor que los ejecuta. Los CGI se escriben habitualmente en lenguaje Perl, sin embargo, también pueden utilizarse otros lenguajes como C, C++ o Visual Basic.
El funcionamiento de un programa CGI es parecido al aplicado al conjunto de las páginas dinámicas del servidor, con algunas particularidades.
Funcionamiento de CGI y llamada Perl-CGI Algunos usos de CGIs son los siguientes:
Algunas desventajas de la programación en CGI son las siguientes:
Además, en Internet se pueden numerosos tutoriales sobre esta tecnología, y también existen directorios de programas CGI ya creados para hacer cosas tan variadas como gestionar tiendas online, foros, envío de formularios, etc. En el apartado sobre Bases de Datos de esta tesis, se analiza también el funcionamiento de la CGI o Common Gateway Interface.
JavaJava es un lenguaje de programación de objetos con el que podemos realizar cualquier tipo de programa. En la actualidad es un lenguaje muy extendido y que ha cobrado mucha importancia tanto en el ámbito de Internet como en la informática en general. Este programa ha sido desarrollado por la compañía Sun Microsystems (http://java.sun.com/). Una de las principales características por las que el lenguaje Java ha cobrado fama es que se trata de un lenguaje independiente de la plataforma. Esto quiere decir que si hacemos un programa en Java podrá funcionar en cualquier ordenador. Es una ventaja significativa para los desarrolladores de software, pues antes tenían que hacer un programa para cada sistema operativo, por ejemplo Windows, Linux, Apple, etc. Esto se consigue porque se ha creado una Máquina de Java para cada sistema que hace de puente entre el sistema operativo y el programa de Java y esto posibilita que este último se entienda perfectamente.
Editor Java Además de la ventaja que para JAVA supone la independencia de plataforma, también existe otro beneficio más: Java se está desarrollando para otro tipo de dispositivos distintos además del ordenador como móviles, agendas y en general para un gran número de dispositivos industriales. Java fue pensado originalmente para utilizarse en cualquier tipo de electrodoméstico pero la idea fracasó. Uno de los fundadores de Sun rescató la idea para utilizarla en el ámbito de Internet y convirtieron a Java en un lenguaje potente, seguro y universal gracias a que lo puede utilizar todo el mundo y es gratuito. Una de los primeros triunfos de Java fue que se integró en el navegador Netscape y permitía ejecutar programas dentro de una página web, hasta entonces impensable con el lenguaje HTML. La programación dinámica con Java se ha extendido de tal forma que encontramos "servlets" en el lado del servidor (al igual que ocurría con CGI y PHP) y applets de Java en el lado del navegador. Los applets o apliques son pequeñas aplicaciones escritas en Java que permiten obtener una gran variedad de efectos en las páginas web. Los applets de Java son una forma de incluir código a ejecutar en los clientes que visualizan una página web. Se trata de pequeños programas hechos en Java, que se transfieren con las páginas web y que el navegador ejecuta en el espacio de la página. Los applets de Java están programados en Java y precompilados, es por ello que la manera de trabajar de éstos varía un poco con respecto a los lenguajes de script como Javascript. Los applets son más difíciles de programar que los scripts en Javascript y requerirán unos conocimientos básicos o medios del lenguaje Java, aunque en la World Wide Web podemos encontrar muchos ejemplos útiles y complejos de applets de Java para ser copiados directamente y añadidos a nuestras páginas HTML. La principal ventaja de utilizar applets consiste en que son mucho menos dependientes del navegador que los scripts en Javascript, e incluso son independientes del sistema operativo del ordenador en el que se ejecutan. Además, Java es más potente que Javascript, por lo que el número de aplicaciones de los applets podrá ser mayor. Como desventajas en relación con Javascript cabe señalar que los applets son más lentos de procesar y además no se mezclan con todos los demás componentes de la página ni tienen acceso a ellos. Así, con los applets de Java no podremos hacer directamente cosas como abrir ventanas secundarias, controlar Frames, formularios, capas, etc; pero sí ofrecen otras muchas funcionalidades espectaculares, sobre todo para el diseño de imágenes en tres dimensiones, efectos y animaciones de texto, audio, creación de menús y organización de enlaces, gestión de relojes, cronómetros y horarios, etc. (He aquí 2 ejemplos espectaculares de lo que se puede hacer con los applets de Java: http://www.htmlpoint.com/java/65/65.htm y http://www.htmlpoint.com/java/57/57.htm) Desde el lado del servidor encontramos los servlets. Los servlets son módulos que extienden los servidores orientados a petición-respuesta, como los servidores web compatibles con Java. Para aclarar esto pongamos algunos ejemplos: un servlet podría ser responsable de tomar los datos de un formulario de entrada de pedidos en HTML y aplicarle la lógica de negocios utilizada para actualizar la base de datos de pedidos de una compañía. Tambiénlos servlets permiten la colaboración entre la gente ya que un servlet puede manejar múltiples peticiones concurrentes y puede sincronizarlas. Esto permite a los servlets soportar sistemas como conferencias on-line. Podríamos decir que los servlets son para los servidores lo que los applets son para los navegadores. Sin embargo, al contrario que los applets, los servlets no tienen interfaz gráfica de usuario. Los servelts pueden ser incluidos en muchos servidores diferentes porque el API Servlet, el que se utiliza para escribir Servlets, no asume nada sobre el entorno o protocolo del servidor. Los servlets se están utilizando ampliamente dentro de servidores HTTP y muchos servidores web soportan el API Servlet. La primera generación de servlets se diseñó para reemplazar a los programas CGI, pero era tediosa y producía errores y además dejaba al margen de la creación de págians webs a los no programadores. Aunque lo general es escribir el código en fragmentos modulares de código HTML, todavía se requería modificar el código fuente ante cualquier nuevo requerimiento. Java Server Pages (JSP) vino a solventar este problema, pero lo cierto es que JSP sólo invierte el problema. En lugar de embeber código HTML en servlets, normalmente se termina embebiendo código Java en las páginas HTML. Las etiquetas JSP personalizadas nos permiten eliminar todo el código Java, en teoría, pero no sin la dificultad de crear las etiquetas o encontrar una librería existente que cubra nuestras necesidades. Los servlets también solucionan el problema de hacer la programación del lado del servidor con APIs específicos de la plataforma ya que están desarrollados con el API Java Servlet, una extensión estándar de Java. El dinamismo que se pretende conferir a las páginas web ha llevado a que el diseño web haya pasado del dominio de los artistas gráficos y maquetadores al dominio de los programadores especializados. Surge así un problema de competencias a la hora de crear un sitio web para que cumpla con los dos objetivos principales de tener un buen diseño y una perfecta funcionalidad. Creatividad y tecnología se tienen que dar la mano, pero es precisamente ahí donde surgen los problemas porque o bien el diseño necesita integrarse en el código o bien el código aparece en documentos HTML. Java es un lenguaje de programación que tiene muchas aplicaciones diferentes y existen diferentes ediciones de la plataforma Java con distintas funcionalidades para poder programar con ellas. Por un lado encontramos J2SE (Java 2 Standard Edition) es el entorno de desarrollo de aplicaciones Java orientado a las aplicaciones solitarias y los applets. También podemos utilizar J2EE (Java 2 Enterprise Edition) que es la plataforma Java para crear aplicaciones Web. Por su parte, J2ME (Java 2 Micro Edition) es una versión reducida de la plataforma Java 2 para su uso en pequeños dispositivos como teléfonos móviles o agendas electrónicas. Por medio de un servidor que ejecute Java Server Pages (JSP) se puede conseguir integrar datos dinámicos en el sitio web. Los JSPs son documentos HTML en los que se puede integrar código Java. Cuando un JSP se solicita al servidor Web, esto es, al motor JSP/servlet, éste lo compila y lo convierte en un servlet Java que contiene implícitamente código HTML. La ejecución del código genera los datos dinámicos y se combina con el HTML enviándolo de vuelta al navegador Web. Actualmente Java se utiliza en un amplio abanico de posibilidades y casi cualquier cosa que se puede hacer en cualquier lenguaje se puede hacer también en Java y muchas veces con grandes ventajas. Con Java podemos programar páginas web dinámicas, con accesos a bases de datos, utilizando tanto HTML como XML, con cualquier tipo de conexión de red entre cualquier sistema. En general, cualquier aplicación que deseemos hacer con acceso a través de la Web se puede realizar utilizando Java. Cuando apareció la programación Orientada a Objetos (OO) en el desarrollo de software, los desarrolladores podían visualizar sistemas como grupos de entidades y la interacción entre esas entidades, lo que les permitía realizar sistemas más grandes y más complicados y desarrollarlos en mucho menos tiempo. El único problema con la programación OO es que era esencialmente estática, y un cambio en los requerimientos podía tener un profundo impacto en el tiempo de desarrollo además de que el código crecía de tamaño debido a la inclusión de requerimientos secundarios como el manejo de excepciones, la seguridad, y el establecimiento de de contraseñas u otros mecanismos de seguridad cuya función principal era aceptar una entrada y procesarla. Para solventar estos problemas surgió la programación Orientada al Aspecto (AOP) que permite modificar dinámicamente el modelo estático para incluir el código requerido y cumplir los requerimientos secundarios sin tener que modificar el modelo estático original. De hecho, ni siquiera se necesita tener el código original, puesto que podemos tener este código adicional en una única localización en vez de tenerlo repartido por el modelo existente. AOP permite introducir interfaces, métodos y campos a clases existentes. Todo esto se puede hacer con Java.
PerlPerl (Practical Extraction and Report Language) es un lenguaje de programación muy utilizado para construir aplicaciones CGI para la Web. Se trata de un lenguaje de programación muy práctico para extraer información de archivos de texto y generar informes a partir del contendido de dichos archivos. Este lenguaje fue creado por Larry Wall con el objetivo principal de simplificar las tareas de administración de un sistema UNIX, aunque actualmente se ha convertido en un lenguaje de propósito general, y una de las principales herramientas de Internet y la Web que está disponible en muchos sistemas operativos, incluido Windows. Perl es un lenguaje de programación interpretado, al igual que muchos otros lenguajes de Internet como Javascript o ASP. Esto quiere decir que el código de los scripts en Perl no se compila, sino que cada vez que se quiere ejecutar se lee el código y se pone en marcha interpretando lo que hay escrito. Además es extensible a partir de otros lenguajes, ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes. También desde otros lenguajes podremos ejecutar código Perl. Perl está inspirado a partir de lenguajes como C y otros similares, algunos provenientes de los sistemas Unix, pero está enfocado a ser más fácil y práctico que estos últimos ya que la forma de este lenguaje facilita una programación rápida y "sucia", esto es, permite hacer un programa de forma rápida para que funcione. Una diferencia fundamental de Perl con respecto a los otros lenguajes es que no limita el tamaño de los datos con los que trabaja, sino que el límite lo pone la memoria que en ese momento se encuentre disponible. Si queremos trabajar con Perl será necesario tener instalado el intérprete de dicho lenguaje. A partir de ese momento podemos ejecutar CGIs en nuestros servidores web. El proceso para conseguirlo puede variar de unos servidores a otros, pero se suelen colocar en un directorio especial del servidor llamado cgi-bin donde hemos colocado los correspondientes permisos CGI. Además, los archivos con el código también deberán tener permiso de ejecución. La utilización de Perl para su aplicación en la escritura de CGI (Common gateway interface), o scripts ejecutados desde páginas de la World Wide Web se ha convertido en algo muy común. La mayoría de los programas que se encuentra uno para procesar formularios en Internet llevan la extensión .pl, lo cual denota que están escritos en Perl. Escribir CGI en Perl es tan simple como:
Esto habrá que colocarlo en la zona correspondiente al servidor para que sea accesible como CGI. Otra forma, es la siguiente:
que usa el módulo estándar CGI.pm, que sirve precisamente para escribir CGIs. En general, los programas en Perl se ejecutan en el servidor, como todos los programas CGI, a diferencia de otros programas ejecutados por el cliente (generalmente un navegador), como los escritos en JavaScript o Java. Existen además extensiones para otro servidores que permiten ejecutar directamente programas en Perl desde el servidor de HTTP. Mediante una serie de módulos adicionales (que están accesibles desde CPAN http://www.capan.org como el módulo DBI), con un driver específico para el gestor de base de datos o usando DBD ó ODBC, Perl puede servir para acceder a bases de datos, desde bases de datos gratuitas como MySQL hasta Microsoft SQL server usando ODBC. Todo esto se puede combinar con un CGI para hacer aplicaciones tales como un "carrito de la compra" para un sitio web.
AjaxAjax o Asynchronous JavaSript and XML es una nueva tecnología acuñado por Adaptive Path que dota de una mayor interactividad y dinamismo a la Web. Esta tecnología utiliza:
Lo que hace Ajax es introducir un intermediario entre las acciones del usuario y el servidor. Este intermediario se denomina motor Ajax. El funcionamiento es el siguiente: cuando se inicia la sesión, la página que recibe el navegador, en vez de ser una página HTML, es un motor Ajax enviado por el servidor, escrito en JavaScript y normalmente incluido en un marco o frame invisible. De esta forma, el motor Ajax proporciona un marco independiente del servidor que contiene las herramientas programadas en JavaScript, y la interacción se hace de forma asíncrona pues el navegador puede estar en comunicación con el servidor, pero no se necesita esperar a que acabe la transmisión de datos completa para poder ver la página web. La interacción se hace contra el motor Ajax y no contra el servidor y todo el contenido que no esté cargado y se necesite del servidor, se puede pedir usando XML en segundo plano sin tener que refrescar la página ni parar la interacción del usuario.
FlashFlash no es un lenguaje, sino un programa que también permite crear páginas web dinámicas desde el lado del cliente, esto es, que se ejecutan en el navegador del usuario. El uso de las animaciones Flash se ha convertido en algo muy común para el diseño de páginas web. Se trata de una tecnología que hace posible incorporar animaciones, audio y efectos realmente sorprendentes. En un principio se trataba de una tecnología que necesitaba de la instalación de un plug-in o pequeño programita para poder visualizarse en el navegador. Sin embargo, con el tiempo, flash se ha convertido en un estándar que viene en la instalación básica de la mayoría de los navegadores o exploradores web, y se instala automáticamente si el navegador no lo tiene y lo utilizan muchas páginas. El resultado ha sido que los diseñadores de webs lo vienen utilizando para crear todo tipo de efectos, incluso en la página principal, ya que Flash es un programa que permite aplicar toda nuestra creatividad en el diseño web. Por otro lado, la clave de Flash es que se trata de un programa de animación vectorial. Esto significa que se pueden crear animaciones complejas: aumentar y reducir elementos de la animación, mover de posición estos objetos, y otras funcionalidades sin que la animación ocupe mucho espacio de memoria en disco. Los vectores con los que trabaja Flash sólo son, por decirlo de alguna manera, siluetas que casi no ocupan espacio y se pueden modificar fácilmente y sin gasto de memoria en disco. Se puede descargar una versión de prueba de Flash desde el sitio web de la compañía que lo desarrolla, Macromedia: (http://www.macromedia.com). La sección de Flash se encuentra en: http://www.macromedia.com/software/shockwaveplayer/ .swf es el formato contenedor de Flash y puede comprender imágenes de otros formatos gráficos como jpg, gif, png, vídeos avi, mov, ó imágenes vectoriales propias de este software que tienen la capacidad de movimiento.
BibliografíaÁLVAREZ, Miguel Ángel. Qué es DHTML. Desarrolloweb.com http://www.desarrolloweb.com/articulos/391.php ÁLVAREZ, Miguel Ángel. Qué es CGI .Desarrolloweb.com http://www.desarrolloweb.com/articulos/758.php ÁLVAREZ, Miguel Ángel. Qué es JAVA. Desarrolloweb.com http://www.desarrolloweb.com/articulos/497.php ÁLVAREZ, Miguel Ángel. ¿Qué es JavaScript? Desarrolloweb.com http://www.desarrolloweb.com/articulos/25.php ÁLVAREZ, Miguel Ángel. Qué es PERL. Desarrolloweb.com http://www.desarrolloweb.com/articulos/541.php ÁLVAREZ, Miguel Ángel. Qué es PHP. Desarrolloweb.com http://www.desarrolloweb.com/articulos/392.php ÁLVAREZ, Rubén. Introducción a la programación en ASP. Desarrolloweb.com http://www.desarrolloweb.com/articulos/244.php?manual=8 CASTILLO VALDIVIESO. HTML dinámico. http://geneura.ugr.es/~pedro/dhtml/index.html Desarrolloweb.com. Páginas dinámicas. http://www.desarrolloweb.com/manuales/7/ Desarrolloweb.com. ASP a fondo. http://www.desarrolloweb.com/asp/ Desarrolloweb.com. Introducción a los lenguajes web. http://www.desarrolloweb.com/manuales/27/ Desarrolloweb.com. CGI. http://www.desarrolloweb.com/directorio/programacion/cgi/ Desarrolloweb.com. Manual de Flash. http://www.desarrolloweb.com/manuales/39/ ECMA International: Standards@Internet Speed. http://www.ecma-international.org/ Gamelan.com. Developer Java. http://www.developer.com/java/ HTML Writers Guide. CSS Frequently Asked Questions. http://www.hwg.org/resources/faqs/cssFAQ.html Java Technology http://java.sun.com/ Java FAQ Archives. Team Java Discussion Forum. Active Words Networks. http://www.www-net.com/java/faq/ Microsoft. HTML and Dinamic HTML. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vbstutor.asp Microsoft. Scripting. http://msdn.microsoft.com/scripting MONTEIRO LÁZARO, Juliana. CSS Hojas de estilo. Desarrolloweb.com http://www.desarrolloweb.com/manuales/2/ MONTEIRO LÁZARO, Juliana. Qué es CSS. Desarrolloweb.com http://www.desarrolloweb.com/articulos/26.php?manual=27 Tutorial de Java. http://toro.itapizaco.edu.mx/paginas/JavaTut/froufe/introduccion/indice.html VALENTE, Massimiliano. Tutorial Dynamic HTML. http://www.htmlpoint.com/dhtml/ W3C. Cascading Style Sheets, level 1. http://www.w3.org/TR/REC-CSS1 (traducción al castellano: POZO, Juan R. Hojas de Estilo en Cascada. Nivel 1. http://html.conclase.net/w3c/css1-es.html W3C. Cascading Style Sheets, level 2 CSS2 Specification. http://www.w3.org/TR/REC-CSS2/ (traducción al castellano: BENAVIDES, Juan Carlos. Hojas de Estilo en Cascada. Nivel 2. http://www.sidar.org/recur/desdi/traduc/es/css/cover.html Web Design Group. The WDG Reference section. http://www.htmlhelp.com/reference/ Web Design Group. Validators and Checkers. http://www.htmlhelp.com/links/validators.htm Wikipedia. PHP. http://es.wikipedia.org/wiki/PHP
Mapa de navegación / Tabla de contenido / Mapa conceptual / Tabla de documentos / Buscador / Bibliografía utilizada / Glosario de Términos / Índice Temático / Índice de Autores
|
|