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