Arquitectura Web: CGI, Applets y Middleware para el Desarrollo de Aplicaciones
1. Interfaz de Pasarela Común (CGI)
El CGI (Common Gateway Interface) permite a un cliente (navegador web) solicitar datos de un programa ejecutado en un servidor web. En una aplicación CGI, el servidor web pasa las solicitudes del cliente a un programa externo. Este programa puede estar escrito en cualquier lenguaje que soporte el servidor, aunque por razones de portabilidad se suelen usar lenguajes de script. La salida de dicho programa es enviada al cliente en lugar del archivo estático tradicional.
Ventajas de CGI
- Capacidad de respuesta dinámica.
- Aplicaciones desarrolladas en cualquier lenguaje de programación.
Desventajas de CGI
- No existe relación directa entre el programa CGI y el servidor web.
- No existe control explícito sobre la ejecución, resultado, etc.
2. Ampliaciones en el Cliente
Aplicaciones Ligeras (Componentes Binarios)
Estos componentes extienden el comportamiento y la funcionalidad de los navegadores web.
- Han sido compilados previamente a su utilización, por lo que el navegador web recibe código binario.
- Suelen ser más potentes que los lenguajes de script.
Applets: Aplicaciones Ligeras en Java
Un Applet es un programa escrito en lenguaje Java que se puede incluir en una página HTML. Cuando el navegador interpreta la página HTML, llega hasta la etiqueta que incluye el Applet y posteriormente solicita al servidor la transmisión del código binario del Applet.
Inconvenientes de los Applets
- Tiempo de transmisión del Applet.
Ventajas de los Applets
- Son mucho menos dependientes del navegador que los scripts de JavaScript.
- Java es más potente que JavaScript, lo que permite que las aplicaciones de los Applets sean mayores.
- No puede tomar privilegios para realizar acciones malignas (seguridad inherente).
3. Middleware
El Middleware actúa como un nivel de abstracción en términos de servicios, cuya finalidad es proporcionar una visión única del sistema, independiente de la infraestructura que lo conforme.
- Abstrae la heterogeneidad y complejidad de las redes de comunicaciones, sistemas operativos y lenguajes de programación.
Arquitectura del Middleware
Desde el punto de vista de la propia infraestructura, el middleware se define por los elementos que componen el núcleo de servicios, ubicado entre el sistema operativo local y las aplicaciones. Resaltan los siguientes elementos: el modelo de representación de datos, el modelo de comunicaciones y los servicios fundamentales que proporciona la plataforma.
Middleware para el Programador
Desde el punto de vista del diseñador de aplicaciones, el middleware representa un modelo de programación que define nítidamente la estructura que deben tener los componentes software a diseñar, así como los mecanismos que deben emplearse para acceder a los recursos y a los servicios que proporciona la plataforma.