1 / 19

JEE

JEE. Introducción a Java Enterprise Edition (JEE) y el modelo Enterprise Java Beans (EJB). Servidor. Cliente. Servidor. Enterprise Information Systems (EIS). Lógica Negocios. Presentación. Presentación. Browser. Web Server. Contenedor. HTML. EJB. EJB. JSP. EJB. JSP. Java. DB.

medge-cruz
Download Presentation

JEE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  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 XMLfavorecen 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 • Indirección

  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. 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 • 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. 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. 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. 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. app.ear META-INF app.war app.jar application.xml file.jsp index. html WEB-INF META-INF EJB1.class EJB2.class web.xml vendor.xml lib classes ejb-jar.xml vendor.xml Servlet1.class Servlet2.class support.jar Empaquetado de Aplicaciones JEE

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

More Related