La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

JEE Introducción a Java Enterprise Edition (JEE) y el modelo Enterprise Java Beans (EJB)

Presentaciones similares


Presentación del tema: "JEE Introducción a Java Enterprise Edition (JEE) y el modelo Enterprise Java Beans (EJB)"— Transcripción de la presentación:

1 JEE Introducción a Java Enterprise Edition (JEE) y el modelo Enterprise Java Beans (EJB)

2 Arquitecturas Multi-capas
Presentación, lógica de negocios y datos bien separados Servlet JSP Servidor Presentación Lógica Negocios Java Applet HTML Cliente Aplicación Otros PDAs, etc Desktop Browser Web Server Enterprise Information Systems (EIS) DB Contenedor EJB Plataforma JEE

3 Aplicaciones multi-capas
Client-Tier Clientes gráficos o de consola Clientes web / Applets Web-Tier Web server Business Tier Application Server Contenedor / Componentes EIS Tier Servidores Base de Datos Aplicaciones Legacy

4 Qué es JEE? JEE es un conjunto de tecnologías para el desarrollo de aplicaciones multi-capas Es una especificación que se implementa en Servidores de Aplicación. Las aplicaciones desarrolladas en JEE pueden ejecutarse en diferentes Servidores de Aplicación, sin modificar el código. Define la interacción y API entre diferentes servicios de base como Directorios, Transacciones, Bases de Datos, Mensajería y otros sistemas empresariales. Elimina la necesidad de codificar los servicios de base dentro de la aplicación: Facilita el desarrollo Reduce el tiempo de desarrollo Evita la introducción de errores por estos servicios

5 Objetivos de JEE Define una plataforma para construir aplicaciones Servidor portables Las aplicaciones pueden ser instaladas en diferentes Servidores de Aplicación sin cambiar el código. Todos los Servicios comunes se acceden de una forma estándar: Transacciones Seguridad Directorio Mensajería Persistencia Concurrencia Ciclo de Vida Antes, las aplicaciones tenian que manejar esto en su propio código o usar mecanismos propietarios. Estandariza la forma de empaquetar aplicaciones e instalarlas Uso de Java Archive (JAR), Web Archive (WAR), Enterprise Application Archive (EAR) y otros. Favorece la configuración externa por sobre el código Descriptores en XML favorecen el cambio sin recompilación de código (versiones 1 y 2) Anotaciones en código fuente (versión 3)

6 Tecnologías usadas EJB Servlets, JSP, tags, JSF JMS Java Transaction
Java Mail JAX (SAX, DOM, XSLT) Web Services (SOAP, WSDL) JDBC, JCA Java Persistence JNDI Otras …

7 El Modelo de EJB Desarrollo rápido de lógica en el Servidor.
Delega todos los Servicios de base fuera de la aplicación de negocios Distribución: invocación remota o local Manejo Transaccional Manejo de Concurrencia Persistencia Seguridad

8 Desarrollo rápido de lógica en el Servidor
No hay necesidad de codificar cuestiones de bajo nivel, solo lógica de negocio: Sin administración de concurrencia, un solo thread de ejecución por componente Sin código SQL, la persistencia es automática Sin código transaccional, semántica declarativa por método Sin código de seguridad, semántica declarativa Sin código de comunicación remota (RMI) Sin código de directorio y publicación

9 Qué es un Contenedor? Es el servicio que administra Componentes (EJBs) dentro de un Servidor de Aplicación: Instalación y configuración Ciclo de vida: creación y destrucción de instancias en memoria Ejecución: el thread de ejecución lo asigna el contenedor Acceso: todo el acceso de los clientes es a travez del contenedor Provee acceso a los Servicios de Base Directorio, Seguridad, Transacciones, etc.

10 Consideraciones del uso de Contenedores
El modelo de EJB sólo puede ejecutarse sobre un Contenedor Para ejecutarse dentro del Contenedor, los componentes deben respetar una interface determinada Siempre el acceso de los clientes a un componente es a través del Contenedor Indirección Un componente no puede acceder directamente a otro, sólo a través del Contenedor

11 Los 3 tipos de EJB Session Beans Entity Beans – Java Persistence API
Provee acceso a Servicios de negocio para los clientes. Pueden ser stateless (sin estado interno, compartidos) o stateful (con estado interno, uno por cliente). No tienen estado persistente en la BD. Entity Beans – Java Persistence API Representan objetos persistentes del módelo de negocios. Empleado, Factura, Producto, Pedido, etc. Compartido entre diferentes clientes, con acceso sincronizado. Message Driven Beans (MDB) Beans de ejecución asincrónica. Invocados por un mensaje, no por una llamada a un método.

12 Session Beans Una representación de un cliente en el Servidor
Clientes ejecutando lógica de negocios. Pueden ser stateless o stateful Los Stateless beans no tienen un “conversación” abierta con el Servidor, ejecutan y terminan. Los Stateful beans mantienen la “conversación” (estado) del cliente en el Servidor. No tienen acceso compartido, pertenecen a un solo cliente por ejecución El acceso es sincronizado. Dos clientes no pueden llamar a la misma instancia de bean simultaneamente. No sobreviven una caída del Servidor Su estado solo se mantiene en memoria Pueden ser accedidos en forma remota o local

13 Stateless Session Beans
Ejecutan el pedido de un cliente por vez. Ejecutan lógica que no mantiene estado entre invocaciones. Cuando un Stateless bean termina de servir a un cliente, puede atender el pedido de otro cliente Ej: AdministradorProductos.getPrecioProducto(codigo) No necesita más de una llamada para ejecutar su lógica Los Stateless beans son más escalables No mantienen estado del cliente, no consumen mucha memoria Se puede usar un poolvarias instancias reusadas entre muchos clientes 10 instancias pueden servir a 1000 clientes.

14 Stateful Session Beans
Mantienen la conversación (estado) del cliente entre invocaciones y durante el tiempo. Son asignados a un cliente en particular No se puede reusar la instancia entre llamadas y clientes. Ej: CarritoCompra.sumarProducto(codigo) Necesita mantener todos los productos en memoria hasta ir a la caja y completar el pedido. Mayores posibilidades para lógica Se puede aplicar lógica interactiva (entre llamadas). Pasivación por el Contenedor El Contenedor puede “pasivar” las instancias no usadas a disco para liberar memoria. Los Stateful beans son menos escalables Mantienen estado del cliente, consumen más memoria.

15 Entity Beans – Java Persistence API
Representan datos persistentes Se mantienen en almacenamiento persistente con un identificador (PK) El estado se persiste en la BD, por lo que sobreviven una caída del Servidor No están necesariamente asociados a un cliente Son compartidos entre diferentes clientes, con acceso sincronizado Existen independientemente de cualquier usuario y/o sesión Soportan lenguajes de consulta Para ubicar una instancia o varias

16 Descriptores Archivo XML
Contiene información de configuración para el bean. Es estándar y funciona en cualquier Servidor de Aplicación. Se pueden hacer muchos cambios en este archivo, sin modificar y recompilar el código del componente. Opcional Se puede usar para complementar o reemplazar las anotaciones de la clase. Se pueden definir varios beans en el mismo descriptor. Incluye información de configuración como: Tipo de bean (session/entity). Nombres de las clases que implementan el componente. Nombres de las interfaces que publica el componente. Propiedades de entorno. Manejo Transaccional y de Seguridad.

17 Descriptores de Aplicaciones JEE
ejb-jar.xml Describe EJBs. Información estructural del Bean. web.xml Describe componentes Web. Informacion de mapeo de URLs, Seguridad, etc. application.xml Describe la composición de modulos JEE. Informacion de ensamblado de la aplicación.

18 Empaquetado de Aplicaciones JEE
app.ear classes META-INF application.xml app.war app.jar index. html Servlet1.class ejb-jar.xml vendor.xml Servlet2.class EJB1.class EJB2.class support.jar WEB-INF web.xml file.jsp lib

19 Referencia “The JEE Tutorial” java.sun.com


Descargar ppt "JEE Introducción a Java Enterprise Edition (JEE) y el modelo Enterprise Java Beans (EJB)"

Presentaciones similares


Anuncios Google