Está en la página 1de 35

Servidor de Aplicaciones Web

Se denomina servidor de aplicaciones a un servidor en una red de computadoras que ejecuta ciertas aplicaciones Un dispositivo de software que proporciona servicios de aplicacin a las computadoras cliente.

Servidor de aplicaciones Sistemas Distribuidos


Permite mejorar tres aspectos fundamentales en una aplicacin:
Alta disponibilidad Escalabilidad Mantenimiento.

Alta Disponibilidad
hace referencia a que un sistema debe estar funcionando las 24 horas del da los 365 das al ao. Para poder alcanzar esta caracterstica es necesario el uso de tcnicas de balanceo de carga y de recuperacin ante fallos (failover).

Escalabilidad
Es la capacidad de hacer crecer un sistema cuando se incrementa la carga de trabajo (el nmero de peticiones). Cada mquina tiene una capacidad finita de recursos y por lo tanto slo puede servir un nmero limitado de peticiones. Ejemplo, tenemos una tienda que incrementa la demanda de servicio, debemos ser capaces de incorporar nuevas mquinas para dar servicio.

Mantenimiento
tiene que ver con la versatilidad a la hora de actualizar, depurar fallos y mantener un sistema. La solucin al mantenimiento es la construccin de la lgica de negocio en unidades reusables y modulares.

Si bien el trmino es aplicable a todas las plataformas de software, hoy en da el trmino servidor de aplicaciones se ha convertido en sinnimo de la plataforma J2EE de Sun Microsystems.

J2EE
Es una plataforma de programacin para desarrollar y ejecutar software de aplicaciones en Lenguaje de programacin Java con arquitectura de n niveles distribuida Basndose ampliamente en componentes de software modulares ejecutndose sobre un servidor de aplicaciones.

La especificacin original J2EE fue desarrollada por Sun Microsystems.


Comenzando con J2EE 1.3, la especificacin fue desarrollada bajo el Java Community Process. JSR 58 especifica J2EE 1.3 y JSR 151 especifica J2EE 1.4.

El SDK de J2EE 1.3 fue liberado inicialmente como beta en Abril de 2001. La beta del SDK de J2EE 1.4 fue liberada por Sun en Diciembre de 2002.
La especificacin Java EE 5 fue desarrollada bajo el JSR 244 y la liberacin final fue hecha el 11 de Mayo de 2006.

10

Java EE Incluye varias especificaciones de API, tales como:


JDBC RMI e-mail JMS Servicios Web XML, etc

Y define cmo coordinarlos.

11

Entre los servidores de aplicacin J2EE privativos ms conocidos:


WebSphere (IBM) Oracle Application Server (Oracle Corporation) WebLogic (BEA) Jboss Glassfish

12

Una aplicacin desarrollada con las tecnologas J2EE permite ser desplegada en cualquier servidor de aplicaciones o servidor web que cumpla con el estndar Es considerada como un estndar debido a que los suministradores deben cumplir ciertos requisitos de conformidad para declarar que sus productos son conformes a Java EE

13

La arquitectura J2EE es la siguiente:

14

Conceptos
Cliente web (contenedor de applets):
Es usualmente un navegador e interacta con el contenedor web haciendo uso de HTTP. Recibe pginas HTML o XML y puede ejecutar applets y cdigo JavaScript. Son clientes que no se ejecutan dentro de un navegador y pueden utilizar cualquier tecnologa para comunicarse con el contenedor web o directamente con la base de datos.

Aplicacin cliente:

15

Conceptos

Contenedor web:

Servidor de aplicaciones:

Es lo que comnmente denominamos servidor web. Es la parte visible del servidor de aplicaciones. Utiliza los protocolos HTTP y SSL (seguro) para comunicarse.
Proporciona servicios que soportan la ejecucin y disponibilidad de las aplicaciones desplegadas. Es el corazn de un gran sistema distribuido.

16

17

Cliente Servidor usada en los 80s y 90s

BD

18

La lgica de negocio y la lgica de presentacin son mezcladas, lo que resulta difcil de entender el sistema y realizar mantenimiento

19

Separa la lgica de presentacin y la lgica de negocio en 2 Capas

BD

PC

Servidor de Negocios

Servidor
20

Desventajas
Complejidad involucrada en desarrollar la aplicacin Se requiere conocimientos de computo distribuido( Ej.. RMI, CORBA )

21

Pueden proporcionar un Framework que es necesario para desarrollar una aplicacin multicapa Proporcionan servicios tales como computo distribuido, multihilo, seguridad y persistencia En el pasado cada servidor de aplicacin era desarrollado independientemente y por lo tanto implementaba los servicios de diferente manera Cambiar de un servidor de aplicaciones a otro era difcil imposible
22

J2EE define tres tipos de componentes que un programador puede desarrollar:


Servlets JSP Enterprise Java Beans

23

Java Servlets
Proporcionan un mtodo para escribir programas del lado del servidor Su uso comn es la generacin de paginas web dinmicas

24

Java Server Pages ( JSP )


Permiten a los diseadores web construir paginas web interactivas sin entrar en detalles del lenguaje java Se ven muy similares al estndar HTML La diferencia es que JSP permite fragmentos de cdigo Java incrustado en la pagina web

25

Enterprise Java Beans ( EJB )

De los tres tipos de componentes los EJBs son los mas importantes Un EJB es una clase java que tiene varias caractersticas por Ej.:
Son distribuidos Usan transacciones Multi Hilos Persistentes

Muchas de las caractersticas de los EJBs son proporcionadas por los distintos servidores de aplicacin

26

27

La portabilidad de Java tambin ha permitido que los servidores de aplicacin J2EE se encuentren disponibles sobre una gran variedad de plataformas, como Unix, Microsoft Windows y GNU/Linux.

28

Ventajas
Integridad de datos y cdigos:
Al estar centralizada en una o un pequeo nmero de mquinas servidoras, las actualizaciones estn garantizadas para todos sus usuarios. No hay riesgos de versiones viejas.
Los cambios en la configuracin de la aplicacin, como mover el servidor de base de datos o la configuracin del sistema, pueden ser hechos centralmente.

Configuracin centralizada:

29

Ventajas
Seguridad:
Se consideran ms seguras.

Performance:
Limitando el trfico de la red solamente al trfico de la capa de presentacin, es percibido como un modelo cliente/servidor que mejora la performance de grandes aplicaciones.

30

Servicios aadidos
Generacin de HTML:
debe incorporar generacin dinmica de contenido (HTML, XHTML, XML, etc.), para enviar al cliente.

Trabajo con bases de datos:


existirn objetos que faciliten el acceso a bases de datos, ocupndose de gestionar las conexiones y proporcionando un acceso uniforme. Otros objetos se encargarn de la gestin de transacciones englobando diversas sentencias y ocupndose de los commit o rollback

31

Servicios aadidos
Funcionamiento multiproceso o multihilo:
el servidor es el responsable de tener funcionando un nmero de hilos o procesos que atiendan a distintas peticiones. HTTP es un protocolo sin estados. Un servidor de aplicaciones provee de persistencia a los datos del usuario mediante objetos de sesin (session). Elimina la necesidad de incluir cdigo en las aplicaciones para diferenciar las peticiones de distintos usuarios.

Sesiones:

32

Servicios aadidos
Lgica de negocio:
la lgica de negocio propia de cada aplicacin debe poder ser encapsulada en componentes. A cada uno de ellos se le podrn asignar mecanismos propios de seguridad, gestin de transacciones, ... debe poseer caractersticas de seguridad que den soporte a aplicaciones seguras. Los clientes deben autentificarse contra al servidor, y este es el responsable de darles acceso a sus diferentes componentes, como puede ser una base de datos. La mayora de servidores disponen de un mecanismo para incorporar nuevos usuarios y grupos. El control de a que partes del servidor puede acceder un usuario puede ser controlado por diversos mtodos, por ejemplo en un directorio LDAP (Lightweight Directory Access Protocol).

Seguridad:

33

Servicios aadidos
Balanceo de carga:
Trabajando sobre un cluster de servidores, puede enviar la peticiones a diferentes equipos en funcin de la carga y la disponibilidad. Este balanceo es la base para implementar sistemas tolerantes a fallos o herramientas para la monitorizacin centralizada de todos los equipos del cluster.

34

El trmino servidor de aplicaciones tambin ha sido aplicado a otros productos no-J2EE. Por ejemplo, con el aumento de la popularidad de .NET, Microsoft califica a su producto Internet Information Server como un servidor de aplicaciones. Adicionalmente, se pueden encontrar servidores de aplicacin de cdigo abierto y comerciales de otros provedores; algunos ejemplos son Base4 Server y Zope.

35