Está en la página 1de 50

www.javasoft.

com

Ventajas
Independencia de la plataforma portabilidad Gran conjunto de APIs Reusabilidad y modularidad Seguro en la ejecucin de cdigo mvil Gratis

Inconvenientes
Curva de aprendizaje pronunciada En el caso de sistemas Web, inadecuado para proyectos pequeos que puedan construirse con una solucin simple y rpida.

Internet y WWW representan el fundamento sobre los cuales se esta construyendo la economa de la informacin. La meta de JEE es definir un estndar que ayude a suplir los retos tecnolgicos en esta nueva era. JEE soporta aplicaciones distribuidas que toma ventajas de las tecnologas existentes y en desarrollo simplificando el proceso a travs de un modelo de aplicaciones basados en componentes. JEE soporta aplicaciones desde las C/S corporativas hasta ecommerce con Web en Internet. Defines estndares que son implementados por distintos proveedores y fabricantes, no fuerza a emplear ningn producto especfico. Mxima interoperabilidad (Web services, IIOP, RMI, etc.).

Conjunto de especificaciones y prcticas coordinadas que juntas permiten soluciones para el desarrollo, despliegue y gestin de aplicaciones multicapa centradas en servidor. Provee soporte tanto para el lado del servidor como para el lado del cliente para aplicaciones corporativas multinivel (multi-tier) Client-tier: interface de usuario Middle-tier (1 o ms): servicios al cliente y la lgica del negocio para la aplicacin. Backend-tier: gestin de datos

Web Services Technologies Implementing Enterprise Web Services (JSR 109) Java API for XML-Based Web Services (JAX-WS) 2.0 (JSR 224) Java API for XML-Based RPC (JAX-RPC) 1.1 (JSR 101) Java Architecture for XML Binding (JAXB) 2.0 (JSR 222) SOAP with Attachments API for Java (SAAJ) (JSR 67) Streaming API for XML (JSR 173) Web Service Metadata for the Java Platform (JSR 181) Web Application Technologies Java Servlet 2.5 (JSR 154) JavaServer Faces 1.2 (JSR 252) JavaServer Pages 2.1 (JSR 245) JavaServer Pages Standard Tag Library (JSR 52)

Enterprise Application Technologies Enterprise JavaBeans 3.0 (JSR 220) JEE Connector Architecture 1.5 (JSR 112) Common Annotations for the Java Platform (JSR 250) Java Message Service API (JSR 914) Java Persistence API (JSR 220) Java Transaction API (JTA) (JSR 907) JavaBeans Activation Framework (JAF) 1.1 (JSR 925) JavaMail (JSR 919) Management and Security Technologies JEE Application Deployment (JSR 88) JEE Management (JSR 77) Java Authorization Contract for Containers (JSR 115)

En continua revisin y expansin

De la mano de un modelo basado en componentes esta la nocin de contenedor. Un contenedor provee un ambiente estandarizado de ejecucin que provee servicios especficos a componentes. Por ejemplo todos los contenedores Web proveen soporte para requerimientos de clientes, realizar un procesamiento y retornar los resultados.
Ej.: Todos los contenedores EJB proveen soporte para gestin de transacciones, ciclo de vida, localizacin y otros servicios.

Los contenedores tambin poseen acceso a sistemas de informacin empresarial (RDBMS, JDBC, etc.)

Tres categoras:
componentes servicios comunicaciones

Componentes: utilizados por desarrolladores para crear partes esenciales de una aplicacin empresarial Utilizados en la interfaz de usuario y lgica del negocio

Componente: unidad de software de nivel aplicacin


Ej: Javabeans, applets, componentes web, etc.

Los componentes JEE se ejecutan dentro de su correspondiente contenedor. El contenedor proporciona los servicios necesarios a los componentes en tiempo de ejecucin Permite declarar en lugar de programar determinados aspectos de comportamiento de los componentes

Cuatro aspectos:
Contrato de componentes API de servicio del contenedor Servicios Declarativos Otros servicios de contenedores

Los componentes son gestionados por el contenedor. Para eso, deben cumplir el contrato del contenedor para el tipo de componentes en concreto: conjunto de mtodos a

implementar por el componente y que permiten al contenedor interactuar con l.

Los contratos son interfaces java.

El contenedor aporta una implementacin para las APIs de extensin de java. Ejemplo: Implementa el servicio de JMS ofreciendo al desarrollador

un driver que cumple la especificacin Gestores de colas y apartados

Otro contenedor ofrecer una implementacin diferente de la misma especificacin.

Algunos de los servicios ofrecidos por el contenedor a los componentes se declaran en

lugar de programarse.

La declaracin (por ejemplo, especificar que un mtodo tiene que estar inmerso en una transaccin) se realiza mediante descriptores de despliegue. Descriptor de despliegue: Contrato entre el contenedor y el componente.

El contenedor ofrece servicios adicionales que implementan partes de la aplicacin no ligadas a negocio:
Gestin del ciclo de vida del componente Reserva de recursos Publicacin de componentes y otros recursos en espacio JNDI Clustering. Etc.

Cuatro tipos de componentes Componentes Web Componentes EJB Componentes de aplicaciones cliente
Aplicaciones java que viven dentro de la jvm

Applets
Requieren un contenedor de applets

Entidades que sirven respuestas a peticiones http Normalmente generan interfaces de usuario basadas en Web Servlets:
Extienden la funcionalidad de un servidor Web Portables Se ejecutan en un contenedor de servlets.

JSP:

Respuesta de Sun a las ASP de Microsoft Cuando se compilan, generan un servlet. Son pginas html con cdigo java incrustado.

Se ejecutan en un contenedor Web: Contenedor web = contenedor JSPs + contenedor servlets Proporciona los servicios necesarios para la ejecucin de servlets y jsps, y controla su ciclo de vida. Escucha, decodifica y responde peticiones http/https.

EJB: Tecnologa de servidor para el

desarrollo y despliegue de componentes que contienen la lgica de negocio de una aplicacin empresarial
Lo EJBs son escalables, transaccionales y seguros en utilizacin multiusuario.

Tres tipos:
De sesin, con estado y sin estado De entidad. Dirigidos por mensajes.

Contenedores EJB: Proporcionan los servicios de transacciones y persistencia y accede a las APIS de servicios y comunicaciones de JEE.

Simplifican el desarrollo de aplicaciones poniendo recursos a su disposicin


Servicios de nombrado: Proporcionan a las aplicaciones cliente, EJBs y componentes WEB el acceso al entorno de nombrado JNDI. Permite personalizar un componente sin necesidad de acceder o cambiar su cdigo. Servicios de despliegue: Permiten personalizar los componentes y aplicaciones en el momento del empaquetamiento de despliegue.
Aplicacin JEE = conjunto de unidades o mdulos. Mdulo = uno o ms componentes JEE para el mismo tipo de contenedor En cada mdulo, un descriptor de despliegue.

Servicio de transacciones
Operaciones atmicas Un sistema transaccional garantiza que cada unidad o transaccin se termina completamente sin interferencia de otros procesos.
Commit Rollbak

Servicio de seguridad Garantiza que los recursos son accedidos por los usuarios autorizados. Distinguimos:
Tcnicas
Autentificacin Autorizacin Declarativa Programtica

API JDBC
Proporciona conectividad independiente de la base de datos entre la plataforma JEE y un amplio rango de orgenes de datos

JAXP
Soporta el procesamiento de documentos XML mediante DOM y SAX, y transformaciones XSLT.

JNDI
Proporciona acceso a servicio de nombrado y directorio Independiente de implementaciones especficas (LDAP, NIS, etc.).

JCA
API estndar para la conexin de la plataforma JEE a otros sistemas de informacin, ej: SAP.

JTA (Java Transaction API)


API estndar para el acceso a los monitores transaccionales con independencia de implementaciones especficas.

JTS (Java Transaction Service).


Especificacin para la implementacin de un gestor de transacciones que soporte JCA. Impone como debe comunicarse un monitor transaccional con sus clientes.

Mecanismos de comunicacin, implementaciones de protocolos.


Protocolos de Internet
TCP/IP, http, SSL

Protocolos de invocacin remota Protocolos OMG


Java IDL RMI-IIOP

Tecnologas de mensajera.
JMS JavaMail. Conjunto de clases e interfaces para el acceso a servidores de email. Ej, POP3, SMTP, IMAP4.

Son aplicaciones modulares autodescriptivas que se pueden publicar, ubicar e invocar desde cualquier punto de la Web o desde el interior de una red local basada en estndares abiertos de Internet
Multiplataforma multilenguaje, tanto para el proveedor del servicio como para el usuario del mismo El acceso a servicios web se realiza a travs de protocolos de Internet como HTTP o SMTP basados en XML

Localizacin
UDDI (Universal Description Discovery and integration): Medio para la publicacin de servicios web en los registros de servicios web. Las empresas publican en los registros los servicios que ofrecen y la informacin tcnica para acceder a ellos. XML, http, DNS, SOAP.

Descripcin
WSDL (Web Services Definition Languge) Define y describe los servicios web SOAP, XML.

Invocacin
SOAP (Simple Object Acceso Protocol) XML Formatos de mensajes para encapsula invocaciones a objetos en XML Puede emplear distintos protocolos de Internet para el transporte (SMTP, http, etc.

Es un programa que provee la infraestructura necesaria para las aplicaciones empresariales Qu quiere decir esto?
Que los programadores van a poder dedicarse casi en exclusiva a implementar la lgica del dominio, ya que servicios de uso comn, como transacciones, seguridad, persistencia, etc. ya son proporcionados por el servidor Web Se ha convertido en una pieza de software clave para cualquier empresa dedicada al comercio electrnico Es una capa intermedia (middleware) que se sita entre el servidor Web y las aplicaciones y bases de datos subyacentes

Aplicacin cliente

Aplicacin cliente

Aplicacin cliente

(Transacciones, mensajera, servicios Web)

Servidor de aplicaciones
J2EE

CORBA

.NET

SGBD

Comienzan a surgir cuando queda claro las aplicaciones cliente/servidor no iban a ser escalables a un gran nmero de usuarios Se haca necesario mover las reglas de negocio a algn lugar intermedio entre los clientes y la base de datos (Separation of Concerns). Empezaron a surgir productos para hacer esa tarea
Cada compaa los llamaba de una forma distinta Servidores de transacciones, servidores de aplicaciones

Los llamasen como los llamasen, estaban diseados para gestionar de forma centralizada el modo en que los clientes deban conectarse a la base de datos o a los servicios con los que tenan que interoperar

Creacin y gestin de los componentes del servidor

Clustering

Por aquel entonces, basados en CORBA o COM

Equilibrado de carga Transacciones Seguridad Acceso a datos

El servidor ha de conservar informacin entre peticiones del usuario a lo largo de la duracin de una sesin

Como sabemos, HTTP es un protocolo sin sesin


No permite mantener una conexin abierta entre el cliente y el servidor ms all de lo que dura la transferencia del documento en cuestin

En cualquier aplicacin de comercio electrnico, es necesario poder identificar al usuario a travs de su navegacin por el sitio Web
Autenticacin, adicin de productos al carrito de la compra, etc.

La implementacin a mano se complicara enormemente en el caso de contar con varios servidores (equilibrado de carga)
La peticin de un usuario registrado en la mquina A puede ser redirigida al servidor B

Lo lgico es que sea el servidor de aplicaciones quien se encargue de gestionar la sesin


Adems, debera ser ms eficiente que si lo programamos nosotros mismos

Los servidores de aplicaciones proporcionan mecanismos de equilibrado de carga (aspecto clave para la escalabilidad)

Por equilibrado de carga (load balancing) se entiende la capacidad de repartir el procesamiento entre distintos servidores

No es tan sencillo como aadir una nueva mquina y ya est Adems de la escalabilidad, se consigue una mayor tolerancia a fallos

Las peticiones de los clientes se redirigen a la mquina que ms desocupada se encuentre en ese momento Mejora de rendimiento de la aplicacin

Los servidores de aplicaciones proveen facilidades para administrar conexiones a bases de datos relacionales
Oracle, SQL Server, DB2

Los componentes (las clases que implementan la lgica del negocio) acceden a ellas de forma estndar
Independiente de la base de datos subyacente

Tambin suelen permitir acceder a otros tipos de fuentes de datos:


Tales como distintos ERP (SAP, Vaan...), repositorios XML, etc. Los servidores de aplicaciones son tambin importantes, por tanto, como mecanismo de integracin de sistemas heredados

Abrir una conexin a una base de datos suele ser un proceso costoso
No es viable abrir una nueva conexin por cada consulta a la base de datos Penalizara enormemente el rendimiento de la aplicacin

Los servidores de aplicaciones suelen contar con una serie de conexiones permanentemente abiertas que distribuye de forma transparente a los distintos procesos
Se debera poder configurar el nmero de conexiones abiertas, e incluso la poltica de asignacin

Transaccin: secuencia de pasos que, o se ejecutan todos, o si no el sistema queda en el estado original

Son un elemento bsico de cualquier aplicacin comercial Sera complejsimo implementarlas a mano Con un servidor de aplicaciones que tenga esta caracterstica, bastara con indicarle dnde empieza y termina la transaccin
Encargndose l de deshacer los pasos intermedios en caso de un error del sistema Evitan que haya informacin inconsistente

Actualmente, las dos plataformas ms comunes son JEE y.NET, pero adems ColdFussion Tibco CORBA Tuxedo ETC

Mquina Cliente Navegador

Servidor JEE Contenedor Web Servlets Pginas JSP

Servidor de Aplicaciones ligero (light weigth)

Contenedor Aplicacin Cliente Aplicacin Cliente

Contenedor EJBs EJB EJB

Base Datos

Contenedores EJBs Contenedores Web Servidores de aplicaciones completos


Weblogic IBM WebSphere Caucho Resin JOnAS (Open Source Jee app. Server). iPlanent Orin OC4J Jboss + Tomcat Otros Tomcat Jboss

También podría gustarte