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.