Está en la página 1de 25

C.F.G.S.

DESARROLLO DE APLICACIONES WEB

MÓDULO:

Despliegue de Aplicaciones Web

Unidad 1
Implantación de Arquitecturas Web
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo: Despliegue de Aplicaciones Web
AVILÉS Unidad 1: Implantación de arquitecturas Web

ÍNDICE DE CONTENIDOS

1.- Aspectos generales de arquitectura Web. ……………………………………………………………… 3


1.1.- Evolución de los servicios Web. …………………………………………………………..…… 4
1.2.- Tecnologías asociadas a las aplicaciones Web. ………………………………………..…… 6
1.3.- Tipos de aplicaciones web. …………………………………………………………….………. 8
1.4.- Arquitecturas web. Modelos. …………………………………………………………………… 9
1.5.- Plataformas web libres y propietarias. ……………………………………………………….. 11
1.6.- Escalabilidad. ……………………………………………………………………………………. 13

2.- Servidor web Apache. ……………………………………………………………………………………. 15

3.- Aplicaciones web y servidores de aplicaciones. ………………………………………………..………16


3.1.- El servidor de aplicaciones Tomcat. ……………………………………………………………18

4.- Estructura y despliegue de una aplicación web. ………………………………………………………19


4.1.- Archivos WAR. ……………………………………………………………………………...…… 20
4.2.- Despliegue de aplicaciones con Tomcat. ……………………………………………………. 20
4.3.- Descriptor de despliegue ……………………………………………………………….……….22

GLOSARIO. …………………………………………………………………………………………..………. 24

2
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo: Despliegue de Aplicaciones Web
AVILÉS Unidad 1: Implantación de arquitecturas Web

1.- Aspectos generales de arquitectura web.


La arquitectura World Wide Web (WWW) de Internet provee un modelo de programación sumamente
poderoso y flexible. Las aplicaciones y los contenidos son presentados en formatos de datos estándar
y son localizados por aplicaciones conocidas como "web browsers", que envían requerimientos de
objetos a un servidor y éste responde con el dato codificado según un formato estándar.

Los estándares WWW especifican muchos de los mecanismos necesarios para construir un ambiente
de aplicación de propósito general, por ejemplo:

• Modelo estándar de nombres: todos los servidores, así como el contenido de la WWW se
denominan según un Localizador Uniforme de Recursos (Uniform Resource Locator: URL).

• Contenido: a todos los contenidos en la WWW se les especifica un determinado tipo


permitiendo de esta forma que los browsers (navegadores) los interpreten correctamente.

• Formatos de contenidos estándar: todos los navegadores soportan un conjunto de


formatos estándar, por ejemplo HTML, ECMA, JavaScript, etc.

• Protocolos estándar: éstos permiten que cualquier navegador pueda comunicarse con
cualquier servidor web. El más comúnmente usado en WWW es HTML (Protocolo de
Transporte de HiperTexto), que opera sobre el conjunto de protocolos TCP/IP.

Esta infraestructura permite a los usuarios acceder a una gran cantidad de aplicaciones y servicios de
terceros. También permite a los desarrolladores crear aplicaciones y servicios para una gran
comunidad de clientes.

Los aspectos generales a destacar en una arquitectura web son los siguientes:

• Escalabilidad.
• Separación de responsabilidades.
• Portabilidad.
• Utilización de componentes en los servicios de
infraestructura.
• Gestión de las sesiones del usuario.
• Aplicación de patrones de diseño.

3
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo: Despliegue de Aplicaciones Web
AVILÉS Unidad 1: Implantación de arquitecturas Web

El esquema de funcionamiento de los servicios web requiere de tres elementos fundamentales:

1. Proveedor del servicio Web: que es quien lo diseña, desarrolla e implementa y lo pone
disponible para su uso, ya sea dentro de la misma organización o en público.
2. Consumidor del servicio: que es quien accede al componente para utilizar los servicios que
éste presta.
3. Agente del servicio: que sirve como enlace entre proveedor y consumidor para efectos de
publicación, búsqueda y localización del servicio.

De forma genérica podríamos decir que la arquitectura Web es un modelo compuesto de tres capas:

1. Capa de Base de Datos: donde estaría toda la documentación de la información que se


pretende administrar mediante el servicio Web y emplearía una plataforma del tipo MySQL,
PostgreSQL, etc.
2. Capa de servidores de aplicaciones Web: ejecutando aplicaciones de tipo Apache, Tomcat,
Resin, etc.
3. Capa de clientes del servicio Web: al que accederían mediante un navegador web como
Firefox, Internet Explorer, Opera, Google Chrome, etc.

1.1.- Evolución de los servicios Web.


La evolución del uso de Servicios Web en
las organizaciones está fuertemente
ligada al desarrollo de Internet como red
prestadora de servicios.

4
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo: Despliegue de Aplicaciones Web
AVILÉS Unidad 1: Implantación de arquitecturas Web

Entre los factores que han impulsado el uso de los servicios Web se encuentran:

• El contenido se está volviendo más dinámico: Los sitios Web actuales proporcionan
contenidos "instantáneos". Un Servicio Web debe ser capaz de combinar contenido
proveniente de fuentes muy diferentes.

• El ancho de banda es menos costoso: Actualmente un Servicio Web puede entregar tipos
variables de contenidos como vídeo o audio. A medida que crezca el ancho de banda, los
servicios Web deben adaptarse a nuevos tipos de contenidos.

• El almacenamiento es más barato: Un Servicio Web debe ser capaz de manejar cantidades
masivas de datos, y debe poder hacerlo de forma inteligente.

• El éxito de la computación extendida se está volviendo más importante: Con cientos de


millones de dispositivos como teléfonos móviles, agendas electrónicas, etc. existentes
actualmente, estamos llegando a un momento en el cual las computadoras están dejando de
ser el dispositivo más común en Internet. A medida que las plataformas se hacen más
diversas, tecnologías como XML se volverán más importantes. Un servicio Web no puede
exigir que los usuarios ejecuten, por ejemplo, un navegador Web tradicional en alguna
versión de Microsoft Windows; por el contrario, los servicios Web deben servir a todo tipo de
dispositivos, plataformas y navegadores, entregando contendido sobre una amplia variedad
de tipos de conexión.

Estos factores, unidos a los beneficios proporcionados por los servicios Web en la organización y los
buenos productos disponibles para su desarrollo, han hecho que su utilización se extienda sin
mayores obstáculos.

En términos generales, cuando se empiezan a utilizar servicios Web en una organización, estos se
desarrollan e implementan como servicios simples, que poco a poco se van integrando hasta llegar a
servicios Web mucho más complejos.

En los orígenes del mundo Web nos situábamos ante un entorno estático, con páginas en formato
HTML que raramente sufrían modificaciones o actualizaciones y en las que apenas había interacción
con el usuario.

La Web 2.0 es la transición que se ha dado desde las aplicaciones tradicionales hacia aplicaciones
que funcionan a través de la Web y que están fuertemente enfocadas al usuario final.

5
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo: Despliegue de Aplicaciones Web
AVILÉS Unidad 1: Implantación de arquitecturas Web

En este nuevo entorno existen una serie de nuevas tecnologías que, en general, tienen como
objetivo:

• Transformar software de escritorio hacia la Web.


• Separar hojas de estilo.
• Potenciar el trabajo colaborativo y la utilización de redes sociales.
• Dar control total a los usuarios en el manejo de su información.

1.2.- Tecnologías asociadas a las aplicaciones Web.


Las aplicaciones Web emplean páginas dinámicas, éstas se ejecutan en un servidor Web y se
muestran en el navegador de un equipo cliente que es el que ha realizado previamente la solicitud.
Cuando una página Web llega al navegador, es posible que también incluya algún programa o
fragmento de código que se deba ejecutar. Ese código, normalmente en lenguaje JavaScript, lo
ejecutará el propio navegador. Es por ello que en este apartado nos centraremos en las tecnologías
asociadas a las aplicaciones Web que se ejecutarán tanto del lado del servidor como del cliente,
especificando lo que corresponda en cada uno de los casos.

 ASP (Active Server Pages): Las "Páginas Activas" se ejecutan del lado del servidor, de este
modo se forman los resultados que luego se mostrarán en el navegador de cada equipo
cliente que ha realizado la solicitud. Un buen ejemplo de ello son los buscadores, donde un
usuario realiza una petición de información y el servidor nos entrega un resultado a medida de
nuestra petición.
Existen versiones de ASP para Unix y Linux, a pesar de que fue una tecnología desarrollada
por Microsoft para la creación dinámica de páginas Web ofrecida junto a su servidor IIS.

 CGI (Common Gateway Interface): La "Interface Común de Entrada" es uno de los


estándares más antiguos en Internet para trasladar información desde una página a un
servidor web. Este estándar es utilizado para bases de datos, motores de búsqueda,
formularios, generadores de email automático, foros, comercio electrónico, rotadores y mapas
de imágenes, juegos en línea, etc.
Las rutinas de CGI son habitualmente escritas en lenguajes interpretados como Perl o por
lenguajes compilados como C.

 CSS (Cascading Style Sheets): Las "Hojas de Estilo en Cascada" se usan para formatear
las páginas web; se trata de separar el contenido de un documento de su presentación.
Cualquier cambio en el estilo marcado para un elemento en la CSS afectará a todas las
páginas vinculadas a esa CSS.

6
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo: Despliegue de Aplicaciones Web
AVILÉS Unidad 1: Implantación de arquitecturas Web

 Java: Este es un lenguaje que trabaja en el cliente, es decir: se ejecuta en el navegador del
equipo cliente y no en el servidor. Es un lenguaje eficiente y muy poderoso, que se
caracteriza por:

• Una misma aplicación puede funcionar en diversos tipos


de ordenadores y sistemas operativos: Windows, Linux,
Solaris, MacOS, etc., así como en otros dispositivos
inteligentes.
• Los programas Java pueden ser aplicaciones
independientes (que corren en una ventana propia) o
"applets", que son pequeños programas interactivos que
se encuentran incrustados en una página web y pueden
funcionar con cualquier tipo de navegador: Explorer, Netscape, Ópera, etc.
• Se trata de un lenguaje "orientado a objetos". Esto significa que los programas se
construyen a partir de módulos independientes, y que estos módulos se pueden
transformar o ampliar fácilmente. Un equipo de programadores puede partir de una
aplicación existente para extenderla con nuevas funcionalidades.
• Desarrollado por la empresa Sun Microsystems, pero posteriormente liberado bajo
licencia GNU GPL, con lo cual es un software libre.

 JavaScript: Lenguaje que se interpreta y se ejecuta en el cliente. Útil para realizar tareas
como mover imágenes por la pantalla, crear menús de navegación interactivos, utilizar
algunos juegos, etc. En las páginas web suele preferirse JavaScript porque es aceptado por
muchos más navegadores que VBScript (creado por Microsoft)

 PHP (Hypertext Preprocessor): Este lenguaje es, como


ASP, ejecutado en el lado del servidor. PHP es similar a
ASP y puede ser usado en circunstancias similares. Es muy
eficiente, permitiendo el acceso a bases de datos
empleando servidores como MySQL y, por lo tanto, suele
utilizarse para crear páginas dinámicas complejas.

 VBScript (Visual Basic Scripting): La respuesta de Microsoft a JavaScript. VBScript es una


buena herramienta para cualquier sitio destinado a ser mostrado exclusivamente en el
navegador Microsoft Internet Explorer. El código en VBScript puede, además, estar diseñado
para su ejecución en el lado del cliente o en el del servidor, la diferencia es que un código que
se ejecuta en el lado del servidor no es visible en el lado del cliente. Éste recibe los
resultados, pero no el código.

7
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo: Despliegue de Aplicaciones Web
AVILÉS Unidad 1: Implantación de arquitecturas Web

1.3.- Tipos de aplicaciones web.


Cualquier proyecto que se quiera desarrollar en Internet, bien sea comercio electrónico, reservas de
billetes de vuelo on-line, información meteorológica, registro de usuarios, simuladores de hipotecas,
etc, conlleva el desarrollo de una aplicación web. En definitiva, una aplicación web es una plataforma
orientada a automatizar los procesos de servicios que se quieran ofrecer a usuarios.
Establecer una clasificación de los tipos de aplicaciones web es una tarea compleja debido a la
dificultad existente para poder establecer algún parámetro en función del cual establecer dicha
clasificación, junto con la innumerable cantidad de aplicaciones existentes en el actual entorno
web 2.0.

En función de cómo se presenta la aplicación web junto con el contenido que pretende mostrar, se ha
establecido la siguiente clasificación:

• Página web Estática. Están implementadas en HTML y pueden mostrar en alguna parte de
la página objetos en movimiento tales como banners, GIF animados, vídeos, etc.

• Página web Animada. Se realizan con la tecnología FLASH; ésta permite que una página
web presente el contenido con ciertos efectos animados continuados. El uso de esta
tecnología permite diseños más vanguardistas, modernos y creativos.

8
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo: Despliegue de Aplicaciones Web
AVILÉS Unidad 1: Implantación de arquitecturas Web

• Página web Dinámica. Existen muchos lenguajes de programación que son la base para la
mayoría de páginas web dinámicas. Los que destacamos aquí son los lenguajes PHP y ASP.
Estos lenguajes permiten una perfecta estructuración del contenido. Por una parte crearíamos
la estructura de las páginas web y por otra, almacenaríamos el contenido en determinados
archivos. A partir de ahí, crearíamos el código de llamada, que insertaría el contenido en la
propia página web estructurada. Este es el principio básico que siguen los lenguajes de
programación. A partir de aquí se desarrollan aplicaciones para poder gestionar el contenido
a través de un panel de control.

• Portal. Es un sitio web que en su página principal permite el acceso a múltiples secciones
que, por lo general, son foros, chats, cuentas de correo, buscador, acceso registrado para
obtener ciertas ventajas, las últimas noticias de actualidad, etc.

• Tienda virtual o comercio electrónico. Sitio web que publica los productos de una tienda en
Internet. Permite la compra on-line a través de tarjeta de crédito, domiciliación bancaria o
transferencia bancaria en general. Ofrece al administrador un panel de gestión para poder
subir los productos, actualizarlos, eliminarlos, etc.

• Página web con "Gestor de Contenidos". Se trata de un sitio web cuyo contenido se
actualiza a través de un panel de gestión por parte del administrador del sitio. Este panel de
gestión suele ser muy intuitivo y fácil de usar. En aquellas páginas web que requieran una
actualización constante, se suele incorporar este panel de gestión para que la web pueda
controlarse día a día por parte del cliente.

1.4.- Arquitecturas web. Modelos.


Se puede establecer que la arquitectura de un sitio web comprende los sistemas de organización y
estructuración de los contenidos junto con los sistemas de recuperación de información y navegación
que provea el sitio web, con el objetivo de servir de ayuda a los usuarios a encontrar y manejar la
información.
Centraremos el estudio de los modelos de arquitectura web relacionados, en función de cómo
implementan cada una de las capas establecidas en una aplicación web:

9
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo: Despliegue de Aplicaciones Web
AVILÉS Unidad 1: Implantación de arquitecturas Web

 Capa de presentación: es la encargada de la navegabilidad, validación de los datos de entrada,


formateo de los datos de salida, presentación de la web, etc.; se trata de la capa que se presenta
al usuario.
 Capa de negocio: es la que recibe las peticiones del usuario y desde donde se le envían las
respuestas; en esta capa se verifican que las reglas establecidas se cumplen.
 Capa de acceso a datos es la formada por determinados gestores de datos que se encargan de
almacenar, estructurar y recuperar los datos solicitados por la capa de negocio.

La evolución experimentada por los medios informáticos en los últimos años ha convivido con otra
evolución paralela, la evolución de la arquitectura de las aplicaciones web, que permite aprovechar
las nuevas características que éstas ofrecen.
De esta forma, el modelo arquitectónico de las aplicaciones de Internet ha sufrido dos grandes saltos,
con algún paso intermedio, desde la aparición de los primeros portales web.
Los distintos modelos de aplicación sobre los que se ha ido desarrollando, según diversos autores, se
podrían clasificar del siguiente modo:

 Modelo 1
En este caso las aplicaciones se diseñan en un modelo web CGI (Common Gateway Interface),
basadas en la ejecución de procesos externos al servidor web, cuya salida por pantalla era el
HTML que el navegador recibía en respuesta a su petición. Presentación, negocio y acceso a
datos se confundían en un mismo script (perl).

 Modelo 1.5
Aplicado a la tecnología java, se da con la aparición de las JSP y los servlets. En este modelo,
las responsabilidades de presentación recaen en las páginas JSP, mientras que los beans
incrustados en las mismas son los responsables del modelo de negocio y acceso a datos.

 Modelo 2
Como evolución del modelo anterior, con la incorporación del patrón MVC en este tipo de
aplicaciones, se aprecia la incorporación de un elemento controlador de la navegación de la
aplicación. El modelo de negocio queda encapsulado en los javabeans que se incrustan en las
páginas JSP.

 Modelo 2X
Aparecen con el objetivo de dar respuesta a la necesidad, cada vez más habitual, de desarrollar
aplicaciones multicanal, es decir, aplicaciones web que pueden ser atacadas desde distintos
tipos de clientes remotos. Así, una aplicación web multicanal podrá ejecutarse desde una PDA,
desde un terminal de telefonía móvil, o desde cualquier navegador HTML estándar. El medio
para lograr publicar la misma aplicación para distintos dispositivos es emplear plantillas XSL para
transformar los datos XML.

10
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo: Despliegue de Aplicaciones Web
AVILÉS Unidad 1: Implantación de arquitecturas Web

1.5.- Plataformas web libres y propietarias.


Una plataforma web es el entorno de desarrollo de software empleado para diseñar y ejecutar un sitio
web. En términos generales, una plataforma web consta de cuatro componentes básicos:

1. El sistema operativo, bajo el cual opera el equipo donde se hospedan las páginas web y que
representa la base misma del funcionamiento del computador. En ocasiones limita la elección
de otros componentes.

2. El servidor web es el software que maneja las peticiones desde equipos remotos a través de
la Internet. En el caso de páginas estáticas, el servidor web simplemente provee el archivo
solicitado, el cual se muestra en el navegador. En el caso de sitios dinámicos, el servidor web
se encarga de pasar las solicitudes a otros programas que puedan gestionarlas
adecuadamente.

3. El gestor de bases de datos se encarga de almacenar sistemáticamente un conjunto de


registros de datos relacionados para ser usados posteriormente.

4. Un lenguaje de programación interpretado que controla las aplicaciones de software que


corren en el sitio web.

Diferentes combinaciones de los cuatro componentes señalados, basadas en las distintas opciones
de software disponibles en el mercado, dan lugar a numerosas plataformas web:

La plataforma LAMP.
Trabaja enteramente con componentes de software libre y no está sujeta a restricciones
propietarias. El nombre LAMP surge de las iniciales de los componentes de software que la
integran:

• Linux: Sistema operativo.


• Apache: Servidor web.
• MySQL: Gestor de bases de datos.
• PHP: Lenguaje interpretado PHP, aunque a veces se sustituye por Perl o Python.

La plataforma WISA.
Está basada en tecnologías desarrolladas por la compañía Microsoft; se trata, por lo tanto, de
software propietario. La componen los siguientes elementos:

• Windows: Sistema operativo.


• Internet: Servidor web.
• SQL Server: Gestor de bases de datos.
• ASP o ASP.NET: Lenguaje para scripting del lado del servidor.

11
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo: Despliegue de Aplicaciones Web
AVILÉS Unidad 1: Implantación de arquitecturas Web

Plataforma XAMPP.
Es un servidor independiente de plataforma, software libre. El programa está liberado bajo la
licencia GNU y actúa como un servidor web libre, fácil de usar y capaz de interpretar páginas
dinámicas. La componen los siguientes elementos:

• X- Window, GNU/Linux, Solaris y MacOS X: Sistema operativo.


• Apache: Servidor web.
• MySQL: Gestor de bases de datos.
• PHP y Perl: Lenguaje para scripting del lado del servidor.

Plataforma WAMP
El uso de un WAMP permite servir páginas html a internet, además de poder gestionar datos en
ellas, al mismo tiempo un WAMP, proporciona lenguajes de programación para desarrollar
aplicaciones web.
Es un sistema de infraestructura de internet que usa las siguientes herramientas:

• Windows, como sistema operativo;


• Apache, como servidor web;
• MySQL, como gestor de bases de datos;
• PHP (generalmente), Perl, o Python, como lenguajes de programación.

Plataforma MAMP
Se refiere al conjunto de programas software comúnmente usados para desarrollar sitios web
dinámicos sobre sistemas operativos Apple Macintosh, MAC OS X... La componen los siguientes
elementos:

• Mac OS X: Sistema operativo.


• Apache: Servidor Web.
• MySQL: Sistema Gestor de Bases de Datos
• PHP, Perl ó Python, lenguajes de programación usados para la creación de sitios web.

Existen muchas otras plataformas que trabajan con distintos sistemas operativos (Unix, MacOS,
Solaris), servidores web (incluyendo algunos que se han cobrado relativa popularidad como Lighttpdy
LiteSpeed), bases de datos (Postgre SQL) y lenguajes de programación.

12
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo: Despliegue de Aplicaciones Web
AVILÉS Unidad 1: Implantación de arquitecturas Web

1.6.- Escalabilidad.
Las aplicaciones web se ejecutan en un entorno donde el número de clientes que solicitan el servicio
puede variar en gran medida en función del momento. Es por ello que hay una característica de
esencial importancia como es la escalabilidad.
En el entorno en que se ubican las aplicaciones web, uno de los principales factores que puede
afectar al rendimiento de las mismas es el número de usuarios, ya que éste puede verse
incrementado de forma vertiginosa en un periodo de tiempo relativamente corto.
El éxito o el fracaso de un sitio web orientado al usuario común vendrá determinado, entre otros
aspectos, por el dimensionamiento del sistema sobre el que se instala y soporta el software que
sustenta dicho sitio.
En consecuencia, uno de los requisitos fundamentales de una aplicación web es que sea
completamente escalable sin que un aumento de los recursos dedicados a la misma suponga
modificación alguna en su comportamiento o capacidades.

13
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo: Despliegue de Aplicaciones Web
AVILÉS Unidad 1: Implantación de arquitecturas Web

La escalabilidad de un sistema web puede ser:

• Verticalmente: de manera ascendente "upgrades" a cada nodo.


• Horizontalmente: consiste en aumentar el número de nodos.
• Cluster: consiste en crear agrupaciones de servidores.

Escalabilidad vertical.
Habitualmente, la separación lógica en capas se implementa de tal forma que se permita una
separación física de las mismas.
Interponiendo elementos conectores que actúen de middlewareses posible distribuir la aplicación de
forma vertical (una máquina por cada capa del sistema), e incluso si esto no fuera suficiente,
distribuyendo los elementos de una misma capa entre distintas máquinas servidoras.

Escalabilidad horizontal.
Se trata de clonar el sistema en otra máquina de características similares y balancear la carga de
trabajo mediante un dispositivo externo. El balanceador de carga puede ser:

• Balanceador Software: Por ejemplo, habitualmente encontramos un servidor web apache


junto con el módulo mod_jk, que permite la redirección de las peticiones http que a tal efecto
sean configuradas entre las distintas máquinas que forman la granja de servidores. Este tipo de
balanceadores examinan el paquete http e identifican la sesión del usuario, guardando registro
de cuál de las máquinas de la granja se está encargado de servir a dicha sesión. Este aspecto
es importante, dado que nos permite trabajar (de cara al diseño de la aplicación) apoyándonos
en el objeto sesión propio del usuario y almacenando información relativa a la sesión del
mismo, puesto que tenemos la garantía de que todas las peticiones de una misma sesión http
van a ser redireccionadas hacia la misma máquina.

• Balanceador hardware: Se trata de dispositivos


que, respondiendo únicamente a algoritmos de
reparto de carga (Round Robin, LRU, etc.),
redireccionan una petición http del usuario a la
máquina que, según dicho algoritmo, convenga que
se haga cargo de la petición. Son mucho más
rápidos que los anteriores, dado que se basan en
conmutación de circuitos y no examinan ni
interpretan el paquete http. Sin embargo, el no
garantizar el mantenimiento de la misma sesión de

14
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo: Despliegue de Aplicaciones Web
AVILÉS Unidad 1: Implantación de arquitecturas Web

usuario en la misma máquina, condiciona seriamente el diseño, dado que fuerza a que la
información relativa a la sesión del usuario sea almacenada por el implementador del mismo,
bien en cookies o bien en base de datos.

• Balanceador hardware http: Se trata de dispositivos hardware pero que examinan el paquete
http y mantienen la relación usuario-máquina servidora. Mucho más rápidos que los
balanceadores software, pero algo menos que los hardware, suponen hoy en día una de las
soluciones más aceptadas en el mercado.

Cluster.
Con la aparición de los servidores de aplicaciones en cluster se abre una nueva capacidad de
escalabilidad que, dependiendo de cómo se aplique, podría clasificarse como vertical u horizontal.

Un cluster de servidores de
aplicaciones permite el
despliegue de una aplicación
web corriente, de forma que su
carga de trabajo vaya a ser
distribuida entre la granja de
servidores que forman el
cluster, de modo transparente
al usuario y al administrador.

El cluster, mediante el mecanismo de replicación de sesión, garantiza que sea cual sea la máquina
que sirva la petición http, tendrá acceso a la sesión del usuario (objeto HttpSession en java). Este
tipo de sistemas, debido precisamente a la replicación de sesión, suele presentar problemas de
rendimiento.

2.- Servidor web Apache.


Un servidor web es un programa que se ejecuta de forma continua en un ordenador (también se
utiliza el término para referirse al ordenador que lo ejecuta), se mantiene a la espera de peticiones por
parte de un cliente (un navegador de Internet) y contesta a estas peticiones de forma adecuada,
sirviendo una página web que será mostrada en el navegador o mostrando el mensaje
correspondiente si se detectó algún error.
Uno de los servidores web más populares del mercado y el más utilizado actualmente es Apache, de
código abierto y gratuito, disponible para Windows y GNU/Linux, entre otros.

15
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo: Despliegue de Aplicaciones Web
AVILÉS Unidad 1: Implantación de arquitecturas Web

En cuanto a su arquitectura podemos destacar lo siguiente:

• Estructurado en módulos.

• Cada módulo contiene un conjunto de funciones relativas a un aspecto concreto del servidor.

• El archivo binario httpd contiene un conjunto de módulos que han sido compilados.

• La funcionalidad de estos módulos puede ser activada o desactivada al arrancar el servidor.

• Los módulos de Apache se pueden clasificar en tres categorías:

 Módulos base: Se encargan de las funciones básicas.


 Módulos multiproceso: Encargados de la unión de los puertos de la máquina,
aceptando las peticiones y atendiéndolas.
 Módulos adicionales: se encargan de añadir funcionalidad al servidor.

El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software
Foundation. La licencia de software, bajo la cual el software de la fundación Apache es distribuido, es
una parte distintiva de la historia de Apache HTTP Server y de la comunidad de código abierto. La
Licencia Apache permite la distribución de derivados de código abierto y cerrado a partir de su
código fuente original.

Para saber más


Esta web sirve como manual de referencia, guía de usuario, tutoriales prácticos, etc., sobre el
servidor web Apache. Se trata de la web oficial de Apache Software Foundation.

Documentación Servidor Apache en español

3.- Aplicaciones web y servidores de aplicaciones.


Se define una aplicación web como una aplicación informática que se ejecuta en un entorno web, de
forma que se trata de una aplicación cliente-servidor junto con un protocolo de comunicación
previamente establecido:

• Cliente: navegador.
• Servidor: servidor web
• Comunicación: protocolo HTTP

16
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo: Despliegue de Aplicaciones Web
AVILÉS Unidad 1: Implantación de arquitecturas Web

Un servidor de aplicaciones es un software que proporciona aplicaciones a los equipos o


dispositivos cliente, por lo general, a través de Internet y utilizando el protocolo http. Los servidores de
aplicación se distinguen de los servidores web en el uso extensivo del contenido dinámico y por su
frecuente integración con bases de datos.

Un servidor de aplicaciones también es una máquina en una red de computadores que ejecuta
determinadas aplicaciones, gestionando la mayor parte de las funciones de acceso a los datos de la
aplicación.

Las principales ventajas de la tecnología de los servidores de aplicaciones son la centralización y


disminución de la complejidad en el desarrollo de las aplicaciones, ya que no necesitan ser
programadas, sino que son ensambladas desde bloques provistos por el servidor de aplicación.

Otra de las ventajas es la integridad de datos y código ya que, al estar centralizada en una o un
pequeño número de máquinas servidoras, las actualizaciones están garantizadas para todos los
usuarios.

El término servidor de aplicaciones se aplica a todas las plataformas. Dicho término se utiliza
para referirse a los servidores de aplicaciones basadas en web, como el control de las plataformas de
comercio electrónico integrado, sistemas de gestión de contenido de sitios web y asistentes o
constructores de sitios de Internet.

Uno de los ejemplos destacados es el de Sun Microsystems, la plataforma J2EE. Los servidores de
aplicaciones Java se basan en la Plataforma Java TM2 Enterprise Edition (J2EE TM).
J2EE utiliza un modelo de este tipo y en general, incluye un nivel Cliente, un nivel Medio, y un EIS. El
servidor de tipo Cliente puede contener una o más aplicaciones o navegadores. La Plataforma J2EE
es del Nivel Medio y consiste en un servidor web y un servidor EJB. (Estos servidores son también
llamados "contenedores".) También podría haber subniveles adicionales en el nivel intermedio. El
nivel del Sistema Enterprise Information System (EIS, o "Sistema de Información Empresarial")
contiene las aplicaciones existentes, archivos y bases de datos.

Para saber más


Esta web detalla 120 aplicaciones disponibles gratuitamente vía web en donde se especifica la
función de cada una de ellas.
120 Soluciones gratis web 2.0

17
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo: Despliegue de Aplicaciones Web
AVILÉS Unidad 1: Implantación de arquitecturas Web

3.1.- El servidor de aplicaciones Tomcat.


Tomcat es el servidor web (incluye el servidor Apache) y de aplicaciones del proyecto Yakarta, con lo
cual, gestiona las solicitudes y respuestas http y, además, es servidor de aplicaciones o contenedor
de Servlets y JSP.
Incluye el compilador Jasper, que compila JSP convirtiéndolas en
servlets.

Tomcat es un contenedor de servlets con un entorno JSP. Un


contenedor de servlets es un shell de ejecución que maneja e invoca
servlets por cuenta del usuario.
Podemos dividir los contenedores de servlets en:

1. Contenedores de servlets stand-alone (independientes): Estos son una parte integral del
servidor web. Este es el caso en el que se usa un servidor web basado en Java, por ejemplo,
el contenedor de servlets es parte de JavaWebServer (actualmente sustituido por iPlanet).
Por defecto Tomcat trabaja en este modo, sin embargo, la mayoría de los servidores no están
basados en Java.

2. Contenedores de servlets dentro-de-proceso: El contenedor servlets es una combinación de


un plugin para el servidor web y una implementación de contenedor Java. El plugin del
servidor web abre una JVM (Máquina Virtual Java) dentro del espacio de direcciones del
servidor web y permite que el contenedor Java se ejecute en él. En el caso de que una
petición debiera ejecutar un servlet, el plugin toma el control sobre la petición y lo pasa al
contenedor Java usando JNI (Java Native Interface)). Un contenedor de este tipo es
adecuado para servidores multi-thread de un sólo proceso y proporciona un buen rendimiento
pero está limitado en escalabilidad.

3. Contenedores de servlets fuera-de-proceso: El contenedor servlets es una combinación de


un plugin para el servidor web y una implementación de contenedor Java que se ejecuta en
una JVM fuera del servidor web. El plugin del servidor web y el JVM del contenedor Java se
comunican usando algún mecanismo IPC (Interprocess Communication) normalmente
sockets TCP/IP. Si una cierta petición tuviese que ejecutar un servlets, el plugin toma el
control sobre la petición y lo pasa al contenedor Java (usando IPCs). El tiempo de respuesta
en este tipo de contenedores no es tan bueno como el anterior, pero obtiene mejores
rendimientos en otras cosas (escalabilidad, estabilidad, etc.).

Tomcat puede utilizarse como un contenedor solitario (principalmente para desarrollo y depuración) o
como plugin para un servidor web existente, actualmente soporta los servidores Apache, IIS. Esto
significa que siempre que despleguemos Tomcat tendremos que decidir cómo usarlo y, si
seleccionamos las opciones 2 o 3, también necesitaremos instalar un adaptador de servidor web.

18
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo: Despliegue de Aplicaciones Web
AVILÉS Unidad 1: Implantación de arquitecturas Web

4.- Estructura y despliegue de una aplicación web.


Una aplicación web está compuesta de una serie de servlets, páginas jsp, ficheros html, ficheros de
imágenes, ficheros de sonidos, texto, clases, etc.; de forma que todos estos recursos se pueden
empaquetar y ejecutar en varios contenedores distintos.

Un servlets es una aplicación java encargada de realizar un servicio específico dentro de un servidor
web. La especificación Servlet2.2 define la estructura de directorios para los ficheros de una
aplicación web. El directorio raíz debería tener el nombre de la aplicación y define la raíz de
documentos para la aplicación web. Todos los ficheros debajo de esta raíz pueden servirse al cliente
excepto aquellos ficheros que están bajo los directorios especiales META-INF y WEB-INF en el
directorio raíz. Todos los ficheros privados, al igual que los ficheros class de los servlets, deberían
almacenarse bajo el directorio WEB-INF.

Durante la etapa de desarrollo de una aplicación web se emplea la estructura de directorios, a pesar
de que luego en la etapa de producción, toda la estructura de la aplicación se empaqueta en un
archivo .war
El código necesario para ejecutar correctamente una aplicación web se encuentra distribuido en una
estructura de directorios, agrupándose ficheros según su funcionalidad. Un ejemplo de la estructura
de carpetas de una aplicación web puede ser el siguiente:

/index.jsp
/WebContent/jsp/welcome.jsp
/WebContent/css/estilo.css
/WebContent/js/utils.js
/WebContent/img/welcome.jpg
/WEB-INF/web.xml
/WEB-INF/struts-config.xml
/WEB-INF/lib/struts.jar
/WEB-INF/src/com/empresa/proyecto/action/welcomeAction.java
/WEB-INF/classess/com/empresa/proyecto/action/welcomeAction.class

De forma genérica podríamos decir que una aplicación web se estructura en tres capas:

1. Navegador web.
2. Tecnología web dinámica (PHP, Java Servlets, ASP, etc.)
3. Base de datos encargada de almacenar de forma permanente y actualizada la información
que la aplicación web necesita.

19
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo: Despliegue de Aplicaciones Web
AVILÉS Unidad 1: Implantación de arquitecturas Web

4.1.- Archivos WAR


Su nombre procede de Web Application Archive (Archivo de Aplicación Web); permiten empaquetar
en una sola unidad aplicaciones web de Java completas, es decir que su contenido será:

• Servlets y JSP.
• Contenido estático: HTML, imágenes, etc.
• Otros recursos web.

Aportan como ventaja, la simplificación del despliegue de aplicaciones web, debido a que su
instalación es sencilla y solamente es necesario un fichero para cada servidor en un cluster, además
de incrementar la seguridad ya que no permite el acceso entre aplicaciones web distintas.
Su estructura es la siguiente:

• /: En la carpeta raíz del proyecto se almacenan elementos empleados en los sitios web, tipo
documentos html, CSS y los elementos JSP (*.html *.jsp *.css).

• /WEB-INF/: Aquí se encuentran los elementos de configuración del archivo .WAR como
pueden ser: la página de inicio, la ubicación de los servlets, parámetros adicionales para
otros componentes. El más importante de éstos es el archivo web.xml.

• /WEB-INF/classes/: Contiene las clases Java empleadas en el archivo .WAR y,


normalmente, en esta carpeta se encuentran los servlets.

• /WEB-INF/lib/: Contiene los archivos JAR utilizados por la aplicación y que normalmente son
las clases empleadas para conectarse con la base de datos o las empleadas por librerías
de JSP.

Para generar archivos .WAR se pueden emplear diversas herramientas desde entorno IDE"Integrated
Development Environment".
Por ejemplo, encontramos: NetBeans y Eclipse, ambos Open-Sourcey también Jbuilder de
Borland, Jdeveloper de Oracle; otro modo de construir archivos war es mediante Ant. Se trata de
una herramienta Open-Source que facilita la construcción de aplicaciones en Java. No es
considerado un IDE pero para los que conocen el entorno Linux, es considerado el make de Java.

4.2.- Despliegue de aplicaciones con Tomcat.


Una aplicación web puede ser desplegada empleando uno de los siguientes métodos:

• Por medio de archivos WAR (Web Archive).


• Editando los archivos web.xml y server.xml.

20
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo: Despliegue de Aplicaciones Web
AVILÉS Unidad 1: Implantación de arquitecturas Web

Este método es el que se pasa a tratar a continuación.

Los directorios que forman una aplicación compilada suelen ser:


 www
 bin
 src
 tomcat
 gwt-cache.

La carpeta www contiene, a su vez, una carpeta con el nombre y ruta del proyecto que contiene los
ficheros que forman la interfaz (html, js, css, etc.).

La carpeta bin contiene las clases de java de la aplicación.

Para desplegar la aplicación en Tomcat:

1. Copiar la carpeta contenida en www (con el nombre del proyecto) en el directorio webapps
de Tomcat.
2. Renombrar la nueva carpeta así creada en Tomcat con un nombre más sencillo. Esa será la
carpeta de la aplicación en Tomcat.
3. Crear, dentro de dicha carpeta, otra nueva, y darle el nombre WEB-INF (respetando las
mayúsculas).
4. Crear, dentro de WEB-INF, otros dos subdirectorios, llamados lib y classes.
5. Copiar en lib todas las librerías (.jar) que necesite la aplicación para su funcionamiento.
6. Copiar el contenido de la carpeta bin de la aplicación en el subdirectorio WEB-INF/classes de
Tomcat.
7. Crear en WEB-INF un fichero de texto llamado web.xml, con las rutas de los servlets
utilizados en la aplicación.
8. A la aplicación ya puede accederse en el servidor, poniendo en el navegador la ruta del
fichero html de entrada, que estará ubicado en la carpeta de la aplicación en Tomcat.

Para saber más


En la siguiente web se muestran los pasos implicados en el despliegue de un servlet. Describe
cómo tomar un servlet y crear una aplicación web, tanto en formato expandido como en un WAR.
Ilustra cómo desplegar una aplicación web en Apache Tomcat y en WebLogic Server 6.0, un
completo servidor de aplicaciones J2EE.

Despliegue de aplicaciones en Tomcat

21
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo: Despliegue de Aplicaciones Web
AVILÉS Unidad 1: Implantación de arquitecturas Web

4.3.- Descriptor de despliegue.


Un Descriptor de Despliegue es un documento XML que describe las características de despliegue de
una aplicación, un módulo o un componente.
Por esto, la información del descriptor de despliegue es declarativa, y esta puede ser cambiada sin la
necesidad de modificar el código fuente.

Cualquier aplicación web tiene que aportar un descriptor de despliegue situado en WEB-INF/web.xml.

En el caso concreto de Tomcat el descriptor <TOMCAT_HOME>/conf/web.xml es un descriptor por


defecto que se ejecuta siempre antes del descriptor de la aplicación y, solamente, debería contener
información general y no específica de la aplicación.

Un ejemplo de descriptor de despliegue puede ser el siguiente archivo web.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>


<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<!-- Tus definiciones van aquí -->
</web-app>

22
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo: Despliegue de Aplicaciones Web
AVILÉS Unidad 1: Implantación de arquitecturas Web

Situadas entre las etiquetas <web-app>y /<web-app>estarían los descriptores de despliegue de


servlets, los cuales deben contener las siguientes etiquetas en el siguiente orden:

<servlet>
<servlet-name>nombre</servlet-name>
<servlet-class>package.nombre.MiClass</servlet-class>
</servlet>

Para probar el servlet, una vez arrancado el servidor Tomcat, abrimos un navegador web, en el cual
escribiríamos una URL con el siguiente formato:

http://{address}:{port}/{servletName}

por ejemplo:

http://localhost:8080/Servlet_de_prueba

23
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo: Despliegue de Aplicaciones Web
AVILÉS Unidad 1: Implantación de arquitecturas Web

GLOSARIO

Beans
Abreviatura científica del botánico Willian Jackson Bean (18631947). Un bean es un componente
software que tiene la particularidad de ser reutilizable y así evitar la tediosa tarea de programar los
distintos componentes uno a uno.

GNU GPL
La Licencia Pública General de GNU, o más conocida por su nombre en inglés GNU General Public
License es una licencia creada por la " Free Software Fundation" y está orientada, principalmente, a
proteger la libre distribución, modificación y uso de software. Su propósito es declarar que el software
cubierto por esta licencia es software libre y protegerlo de intentos de apropiación que restrinjan esas
libertades a los usuarios. El proyecto GNU (GNU es un acrónimo recursivo para "GNU No es Unix").
Comenzó en 1984 a desarrollar un sistema operativo completo con la principal propiedad de ser
Software Libre.

Java
Lenguaje de programación orientado a objetos, desarrollado por Sun Microsystems a principios de los
años 90, aunque a finales de 2006 liberó la mayor parte de sus tecnologías Java bajo la licencia GNU
GPL

Javabeans
Son un modelo de componentes creado por Sun Microsystems para la construcción de aplicaciones
en Java; se usan para encapsular varios objetos en un único objeto (bean), para hacer uso de un solo
objeto en lugar de varios más simples. La especificación de JavaBeans los define como;
componentes de software reutilizables que se puedan manipular visualmente en una herramienta de
construcción.

MySQL
Es un potente gestor de bases de datos relacional, sencillo de usar e increíblemente rápido. También
es uno de los motores de bases de datos más usados en Internet, la principal razón de esto es que se
distribuye bajo la licencia GNU GPL para aplicaciones no comerciales.

Perl
Es un lenguaje de programación diseñado por Larrry Wall en 1987. Perl toma características del
lenguaje C, del lenguaje interpretado shell (sh), awk, sed, Lisp y, en un grado inferior, de muchos
otros lenguajes de programación.

24
DEPARTAMENTO DE INFORMÁTICA Y COMUNICACIONES
Desarrollo de Aplicaciones Web
Módulo: Despliegue de Aplicaciones Web
AVILÉS Unidad 1: Implantación de arquitecturas Web

Servlet
Son objetos que se ejecutan dentro del contexto de un contenedor de servlets, por ejemplo Tomcat y
amplían su funcionalidad. La palabra servlet deriva de otra anterior, applet, que se refería a pequeños
programas que se ejecutan en el contexto de un navegador web. Por contraposición, un servlet es un
programa que se ejecuta en un servidor. El uso más común de los servlets es generar páginas web
de forma dinámica a partir de los parámetros de la petición que envíe el navegador web.

Shell
En informática este término se emplea para referirse a programas que proveen una interfaz de
usuario para acceder a los servicios del sistema operativo.

25

También podría gustarte