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

3 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 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 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 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 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 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 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 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 –Indirección

11 11 Los 3 tipos de EJB Session Beans –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 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 13 Stateless Session Beans Stateless –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 14 Stateful Session Beans Stateful –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 15 Entity Beans – Java Persistence API Entity –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 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 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 18 Empaquetado de Aplicaciones JEE app.ear classes META-INF application.xml app.war app.jar index. html Servlet1.class META-INF ejb-jar.xmlvendor.xml Servlet2.class EJB1.classEJB2.class support.jar WEB-INF web.xmlvendor.xml file.jsp lib

19 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