Ing. Pablo Almeida Haro Msc.

ENTERPRISE BEANS

*Son Componentes JEE que implementan la tecnología EJB (Enterprise Javabeans)

*Corren en un container EJB

*Provee servicios como transaccionalidad y seguridad de manera transparente

*Es escrito en lenguaje Java

*Es un componente del lado del servidor

*Permite encapsular la lógica de negocio de una aplicación

*Simplifica el desarrollo de las aplicaciones distribuidas

*Elimina la responsabilidad del desarrollador de la programación de acceso a base de datos

*Ayudan a que los clientes sean livianos

*Son componentes portables

*Corren en cualquier servidor JEE

*Son reutilizables

 

APLICACION DE ENTERPRISE BEANS

 

*Cuando se desea desarrollar aplicaciones escalables

*Cuando se requiere instalar componentes en varias máquinas

*Cuando las transacciones deben mantener integridad (Acceso concurrente,  manejo de transacciones)

*cuando se requiere una variedad de clientes

 

TIPOS DE ENTERPRISE BEANS

 

*Session

*Mesage Driven Bean

 

SESSION

 

*Encapsula la lógica de negocio

*Pueden ser invocados local, remotamente o desde un web service

*Se encuentran registrados en el servidor

*Los clientes invocan métodos

*Un bean de sesión no es persistente

 

 

STATEFUL SESSION BEANS

 

*El estado de un objeto consiste en el valor de las variables de instancia

*Cuando un cliente interactúa con un bean se denomina estado conversacional

*Un bean de sesión no es compartido.

*Un solo cliente lo puede utilizar

*Cuando el cliente finaliza, también finaliza la sesión

*El estado es mantenido durante la sesión del usuario

*El estado del bean es importante para la conversación de un cliente y el servidor

*El bean puede mantener información del cliente en cada llamada

*El bean maneja el flujo de varios beans

 

STATELESS SESION BEANS

 

*No mantienen una conversación de estado con el cliente

*Cuando se invoca un método el bean mantiene un estado pero solo durante la llamada

*Cuando la llamada al método es finalizada el estado no se mantendrá

*Pueden soportar un gran número de clientes

*Tienen la posibilidad de implementar un servicio web

*Se puede usar cuando  no se necesita el estado del cliente


SINGLETON SESSION BEANS

 

*Sube a memoria una sola vez por cada aplicación

*Existe durante el tiempo de vida de la aplicación

*Diseñado para que todos los clientes puedan acceder

*Permite la implementación de un servicio web

*No mantiene el estado cuando el servidor se reinicia

*Se puede configurar para que inicie cuando la aplicación inicie

*Al iniciar la aplicación realiza tareas de configuración y al finalizar también

*Se usa cuando el estado se requiere que conozcan varios clientes

*Se usa cuando se requiere que sea accedido por varios clientes simultáneamente

*Se usa cuando se requiere realizar ciertas actividades al inicio y al finalizar el bean

 

MESSAGE DRIVEN BEAN

 

*Es un bean que permite procesar  mensajes de forma asincrónica

*Actúa como un listener de mensajes (JMS)

*Recibe mensajes del tipo JMS

*Los mensajes pueden ser enviados por:

                Una aplicación cliente

                Otro EJB

                Un componente WEB

                Una aplicación tipo JMS

                Sistemas que no usan la tecnología de Java

*Pueden procesar mensajes del tipo JMS u otro tipo de mensajes

*No mantiene datos o estado conversacional del cliente

*Los clientes no acceden mediante interfaces a diferencia de los session beans

*El contenedor permite la formación de un pool para los mensajes

*Un message driven bean puede procesar mensajes de varios clientes

*Los métodos no son invocados directamente. En su lugar se envían mensajes

*La invocación es asincrónica

*No representan a información directa de la base de datos, sin embargo, pueden acceder a base de datos

*No poseen estado (stateless)

*No manejan un estado conversacional

TIPOS DE ACCESO LOCAL Y REMOTO

 

LOCAL

 

*Cuando los beans están estrechamente ligados. Ej: una confirmación por mail luego de una ejecución

*Cuando bean llama a otro

*Cuando se requiere un mejor rendimiento

 

REMOTO

*Cuando los clientes no se encuentran en el mismo equipo del servidor

*Cuando son llamados desde aplicaciones diferentes

*Cuando no importa mucho el tiempo de respuesta

*Si no se conoce como implementar, es mejor colocar como Remote

 

ENTITY BEANS

*Son clases persistentes

*Una entidad representa una tabla en la base de datos

*Cada instancia corresponde a una fila en la tabla

*Los atributos de la clase corresponden a las columnas en la tabla

*Pueden existir relaciones entre entidades

*Posee una anotación @Entity

*El constructor no debe tener argumentos

*Poseen atributos y funciones

*Deben contener elementos get y set

*Poseen clave primaria

*Se puede incluir validaciones para los atributos

*Soportan herencia

*Facilitan la sincronización con base de datos

*Permiten las operaciones básicas como insertar, eliminar, buscar, modificar

*Utilizan Java persistence Query Languaje