COMPONENTES Y CONTENEDORES - Universidad … · orientada a objetos: herencia, polimorfismo. Los...

27
COMPONENTES Y CONTENEDORES Ingeniería de Software II

Transcript of COMPONENTES Y CONTENEDORES - Universidad … · orientada a objetos: herencia, polimorfismo. Los...

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 por mensajes

Entidad

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:

1) Crear la interface que contiene los servicios que

expondrá el EJB de sesión.

Los servicios pueden correr de la misma JVM.

Los servicios se encuentran distribuidos.

Web service.

2) 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.