Presentacion proyectoJEE 2x1

1. Plataforma Java EE (Java Enterprise Edition) ¿Qué es? • Es una colección de especificaciones que definen una infraest

Views 21 Downloads 0 File size 190KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

1. Plataforma Java EE (Java Enterprise Edition) ¿Qué es? • Es una colección de especificaciones que definen una infraestructura para desarrollar aplicaciones distribuidas multicapa (3-tier, n-tier) ¿Para qué sirve?. ¿Qué ofrece? • Facilita el desarrollo de aplicaciones distribuidas en Java • Ofrece un marco y una serie de convenciones, junto un conjunto de servicios sobre los cuales desarrollar aplicaciones multicapa • Objetivo: permitir que el desarrollador se centre en el diseño e implementación del sistema, delegando las tareas típicas y cuestiones de más bajo nivel ajenas a la propia aplicación a la infraestructura del servidor de aplicaciones JEE

3. Servidores de aplicaciones y contenedores • Implementan las APIs y especificaciones JEE • Ofrecen soporte y servicios a los componentes de la aplicación JEE • Tipos: • contenedor de EJB (Enterprise JavaBeans) • contenedor de Servlets • contenedor de clientes

Versiones • Java EE 5 (versión actual): simplificó el desarrollo de componentes de la capa de negocio • Java EE 6 (siguiente versión): aplicará mismas ideas para simplificar desarrollo de la capa web • Versiones anteriores: J2EE 1.4 y anteriores

2. Arquitectura n-tier en Java EE Java EE prevee un arquitectura con 3 o 4 capas diferenciadas • no todas las aplicaciones JEE tienen que seguir es esquema • Independientes del fabricante • Servidores de aplicaciones JEE libres: • JBOSS, GlassFish • Tomcat, Jetty (sólo contenedores de servlets) •

Aplicaciones JEE

• Se despliegan en el servidor de aplicaciones • Hacen uso de los servicios del contendor • Formadas por módulos JEE • web modules, EJB modules, client modules • Empaquetados como archivos .jar (módulos EJB y cliente), .war (módulos web), .ear (empaqueta módulos de una aplicación JEE)

4. Proyecto JEE de SCS

6. Capa de aplicación (2). EJB

Objetivos: • conocer la plataforma Java EE • diseñar y construir una aplicación distribuida 3-tier

Enterprise Java Beans Objetos remotos gestionados por el contenedor de EJBs • Contenedor los crea y los pone a disposición de los clientes que los invocan • Invocación y acceso mediante RMI/IIOP (RMI compatible con CORBA) • Contenedor gestiona los accesos concurrentes y ofrece soporte transaccional (commit y rollback) a las operaciones invocadas • También: servicios de seguridad, replicación (pool de objetos), etc Usados para conformar una “capa de servicios” • Uso típico: implementar el patrón fachada (Facade) • ocultan los detalles internos de la aplicación ofreciendo un interfaz “limpio” • simplifican el acceso a los recursos y la interacción • Pueden publicar su interfaces como puntos finales en servicios web (SOAP y REST)

Enunciado: • Se desarrollará una aplicación de gestión de reservas hoteleras a modo de central de reservas que ofertará habitaciones en distintos hoteles. • Se definirán los componentes de servidor que implementarán la lógica de la aplicación (generación y cancelación de reservas, control de disponibilidad, etc) • Se implementará un interfaz web para la búsqueda y confección de reservas por parte de los clientes, así como para la gestión de las plazas ofertadas y reservas recibidas por parte de los hoteles. • Se incluirá a modo de ejemplo una aplicación de escritorio con un soporte limitado para las tareas de gestión que se indiquen. Tecnologías a emplear: • Capa de aplicación: JPA, EJB • Capa de presentación WEB: JSF • Aplicación de escritorio: SWING

5. Capa de aplicación (1). JPA

Java Persistence API • Permite definir una capa de persistencia para los objetos del dominio • Inspirada en Hibernate (y compatible con él) • Uso de JavaBeans con anotaciones JPA • Especificación para dar soporte al mapeo O/R (objetorelacional) • tabla ↔ clase (entidades JPA) • tupla ↔ objeto • atributos ↔ atributos + relaciones (claves foráneas) • Entity Manager: gestiona el mapeo entre los objetos (entidades) gestionados en memoria y su representación persistente en la BD • JPQL: lenguaje de consulta sobre entidades • Sintaxis similar a SQL aplicada sobre entidades JPA

7. EJBs Encapsulan operaciones accesibles de modo remotos desde los clientes finales o desde los componentes de la capa de presentación WEB • cada método de un EJB se ejecuta en su propio hilo • la ejecución de cada método de un EJB conforma una transacción (o se ejecuta completamente con éxito o las posible modificaciones realizadas son anuladas) Tipos • Message driven EJBs • Implementan operaciones asíncronas • Suscripción, escucha y notificación de eventos • Session EJBs Implementan operaciones síncronas (llamada-respuesta) • stateful: mantienen el estado conversacional con cliente • atienden a un cliente específico • sus atributos se mantienen entre llamadas • stateless: no mantienen estado (son independientes de los clientes) • singleton (en Java EE 6): aseguran una instancia única compartida por todos los clientes

Acceso: • Mediante llamadas RMI-IIOP: sobre los métodos declarados como remotos (interfaz Remote) • Llamada local: sobre los métodos declarados como remotos (interfaz Local) • desde dentro del contenedor EJB (otros EJB) • desde dentro del contenedor de Servlet en la misma JVM (Servlets o JavaBeans) Localización mediante JNDI (Java Naming and Directory Interface) • Servicio de nombres jerárquico (cada tipo de EJB tiene un nombre que lo identifica)

8. Capa WEB: JSF Framework web MVC (model-view-controller) • Incluido como estándar para la capa web en Java EE 5. (versión 2.0 en Java EE 6) Basado en componentes (del lado del servidor) y en eventos • acciones del usuario sobre la página HTML desencadenan la ejecución de código en el servidor para tratarlas • analogia con desarrollo de aplicaciones de escritorio • facilidad para integración con IDEs (editores visuales: componentes+eventos+acciones) Elementos: • Librerías de componentes • Usados para definir la Vista en formato HMLT • componentes incluidos en páginas JSP (JSF como libería de etiquetas) • incluidos en Facelets (ficheros XHTML con etiquetas JSF) • Librería estandar: incluye componentes que “renderiza” en forma de elementos de formularios HTML • Otras librerias incluyen soporte para interacciones AJAX (ICEFaces, RichFaces, …) • Managed Beans • JavaBeans que implementan el modelo • Proporcionan/mantienen los datos que presentan/capturan las páginas JSF • Implementan las acciones desencadenadas en respuesta a los eventos

• Toman decisiones de flujo entre páginas • Faces servlet • Actúa como controlador, separando y manejando la Vista y el Modelo • Apoyado en el fichero de configuración faces-config.xml • declara los Managed Beans y su alcance (sesión, petición, aplicación,...) • define las reglas de navegación • Otras funcionalidades: • posibilidad de definir plantillas, fragmentos y componentes propios mediante etiquetas JSF • uso de Managed Beans propios responsables de validaciones y conversiones de tipo definidas por el usuario • soporte para internacionalización mediante ficheros de mensajes fuera de las páginas JSF

9. Aplicación de ejemplo

Tienda WEB simplificada + aplicación de escritorio SWING con gestión básica de catálogo y pedidos. Estructura de la aplicación web: • Capa de presentación: JSF + Managed Beans • JSF: visualización y captura de datos • Beans de sesión (ProductoController, UsuarioController, CarritoController, …) • proveen de datos a las páginas JSF • almacenan los datos introduccidos por el usuario • interaccionan con los EJBs que se encarga de la implementación real del Modelo [~ patrón Bussines Delegate] • Capa de aplicación: • Entidades JPA: capa de objetos persistentes del dominio (almacenados en BD MySQL) • EJBs (ProductoFacade, UsuarioFacade, PedidoFacade, …): implementan la lógica de la aplicación y el acceso a objetos persistentes (altas, bajas, modificaciones, ...) [~ patrón Session Facade]

10. Entorno de desarrolllo • IDE recomendado: Netbeans versión 6.8 (beta) • Servidor de Base de Batos: MySQL • Servidor de aplicaciones: GlassFish v3 (incluido en Netbeans 6.8)

11. Tareas iniciales Tarea 1- Documentación y estudio del ejemplo aportado • alfa, beta: JPA + EJB • Puntos a tratar • mapeo O/R en JPA y uso del EntityManager • lenguaje de consultas JPQL • definición de EJB de sesión • localización y acceso a EJB de sesión desde aplicaciones de escritorio • despliegue de módulos EJB en GlassFish • estructura fichero .jar • ficheros de configuración • definición PersistenceUnit, Datasources, etc • Referencias: Capítulos 13, 14 (EJB) y 16,17,18 (JPA) de “Java EE 6 Tutorial” • gamma, delta: JSF • Facelets y uso de los juegos de etiquetas estándar • definición de templates y componentes • validación de entradas y mensajes de error • uso de Managed Beans • reglas de navegación • despliegue de JSF en GlassFish • Referencias: Capítulos 3, 5, 6, 7 y 9 de “Java EE 6 Tutorial”