Download Enterprise Java Beans
Document related concepts
no text concepts found
Transcript
COMPONENTES Y CONTENEDORES Ingeniería de Software II Motivación Los componentes son paquetes de software o módulos que encapsulan un conjunto de funciones similares. Estos componentes viven dentro de un contenedor el cual se encarga de administrar el ciclo de vida del componente, entre muchas otras operaciones. [1] Motivación Componentes pueden ser reutilizados para crear nuevas aplicaciones. Se pueden reutilizar que fueron creados por otros equipos de trabajo. [1] Motivación En vez de reutilizar clases se reutilizan funcionalidades completas. Funcionalidades que han sido altamente probadas y que en algunos casos pueden configurarse sin necesidad de modificar el código. Modelos de Componentes OSGi (Open Services Gateway iniciative) Fractal EJB (Enterprise Java Beans) Otros… EJB Especificación para crear aplicaciones empresariales. Anotaciones Incluidas en el JDK 5 para hacer el desarrollo más sencillo y eficiente. Las anotaciones son metadatos que permiten especificar información complementaria, que puede ser entendida en tiempo de ejecución por la JVM. Se pueden añadir a elementos Java tales como clases, métodos, atributos, etc. Anotaciones Motivación Permiten enfocarse en la lógica del negocio. No es necesario reinventarse servicios como: Seguridad Concurrencia Persistencia … Especificación independiente de la plataforma. Escribir la aplicación una vez y desplegarla donde sea. Motivación Redesplegar componentes sin necesidad de reiniciar el contenedor. Alta escalabilidad. Estándar abierto. Enterprise Java Beans (EJB) Los EJBs corren dentro de un contenedor. Utilizados para crear aplicaciones empresariales: Grandes volúmenes de datos Concurrencia Escalabilidad Aplicaciones distribuidas Transaccionalidad … Enterprise Java Beans (EJB) Tres tipos de EJBs: Sesión Dirigidos Entidad por mensajes Enterprise Java Beans (EJB) [1] Enterprise Java Beans (EJB) [1] EJB de Sesión Contienen la lógica de negocio y pueden ser accedidos por los clientes. Exponen los servicios que prestara el componente. Utilizan los EJB de entidad para acceder a los datos. Hay dos tipos: Stateless Stateful EJB de Sesión Stateless No mantienen un estado cada vez que se invoque a un servicio sobre el componente. [1] EJB de Sesión Stateful Mantiene el estado del bean para múltiples llamados del cliente. [1] EJB de Sesión Creando un EJB de sesión: Crear la interface que contiene los servicios que expondrá el EJB de sesión. 1) 2) Los servicios pueden correr de la misma JVM. Los servicios se encuentran distribuidos. Web service. Crear la implementación del bean. Esta implementación contiene la lógica del negocio. EJB Dirigido por Mensajes (MDB) Contienen la lógica del negocio. Basados en el servicio de mensajería de Java (JMS). Los clientes no invocan directamente los servicios. Los mensajes llegan a un servidor de mensajes, el cual utiliza MDB para procesarlos. [1] EJB Dirigido por Mensajes (MDB) No es necesario que el productor y el consumidor se encuentren disponibles. Bajo acoplamiento en la integración de sistemas. Modelos de mensajería: Punto a punto Publicador – suscriptor EJB Dirigido por Mensajes (MDB) Modelos de mensajería punto a punto: Los mensajes viajan de un único punto A a un único punto B. Si existe más de un potencial receptor del mensaje, se selecciona uno aleatoriamente. [1] EJB Dirigido por Mensajes (MDB) Modelos de mensajería productor – suscriptor: Un productor de mensajes envía un mensaje que es recibido por varios consumidores. [1] EJB de Entidad Utilizados para manejar la persistencia de datos con bases de datos relacionales o de objetos. La información de los objetos Java es automáticamente almacenada en la base de datos a través del Mapeo Relacional de Objetos (ORM). No es necesario escribir sentencias SQL. EJB de Entidad Java Persistence API (JPA) es el framework ORM que utiliza EJB 3 para persistencia de datos. JPA soporta características de programación orientada a objetos: herencia, polimorfismo. Los EJB de entidad no son manejados por el contenedor sino por JPA. EJB de Entidad Acceso a la base de datos se realiza a través de JDBC. Java Persistence Query Language (JPQL): «SELECT * FROM empleado e WHERE e.name LIKE :name» Soporte para expresar sentencias SQL. Entity Manager: Lo provee el framework JPA que se esté utilizando. Tiene servicios para utilizar operaciones CRUD sobre las entidades. Inyección de Dependencias El contenedor se encarga de instanciar y referenciar los servicios que necesita el componente de manera automática. El desarrollador no debe preocuparse por obtener referencias a los servicios. Referencias [1] Panda, D., Rahman, R., and Lane, D. 2007 Ejb 3 in Action. Manning Publications Co. [2] Sierra, K. and Bates, B. 2003 Head First EJB (Brain-Friendly Study Guides; Enterprise Javabeans). O'Reilly Media, Inc.