Elaborado por Samantha Gabriela Zamora Hernandez 5A. Construcción de Sistemas Distribuidos.
Los beans dirigidos por mensajes permiten que las aplicaciones J2EE reciban mensajes JMS
de forma asíncrona. Así, el hilo de ejecución de un cliente no se bloquea
cuando está esperando que se complete algún método de negocio de otro enterprise bean.
Los beans de entidad se diferencian de los beans de sesión,
principalmente, en que son persistentes, permiten el acceso compartido,
tienen clave primaria y pueden participar en relaciones con otros beans de entidad
Introducción a la tecnología EJB
Express your feeling and opinions about the people in your life, the books you have been reading, the weather and your favorite food.
Ventajas de la tecnología EJB
Recursos educativos y herramientas de desarrollo.
Integración con sistemas no-Java.
Interoperabilidad entre aplicaciones.
Despliegue distribuido.
Despliegue en muchos entornos operativos.
Separación de la lógica de presentación de la lógica de negocio.
Posibilidad de construcción de aplicaciones complejas.
Reusabilidad de componentes.
Portabilidad de la aplicación.
Simplicidad.
Evolución de la especificación EJB
EJB 2.1
Soporte para servicios web.
Temporizador manejado por el contenedor de beans. Mejora en el EJB QL.
EJB 2.0
Manejo de mensajes con los beans dirigidos por mensajes.
Relaciones entre beans manejadas por el contenedor. Uso de interfaces locales entre beans que se encuentran en el mismo servidor. Consultas de beans declarativas, usando el EJB QL.
EJB 1.1
Implementación obligatoria de los
beans de entidad. Acceso al entorno de los beans mediante JNDI.
EJB 1.0
Propuesta inicial de la arquitectura EJB. Se introducen los beans de sesión y los de entidad (de implementación opcional). Persistencia manejada por el contendedor en los beans de entidad. Manejo de transacciones. Manejo de seguridad.
Roles EJB
Proporcionador del Contenedor EJB y Proporcionador del Servidor EJB:
un fabricante (o fabricantes) especializado en manejo de transacciones y de aplicaciones y otros servicios de bajo nivel. Desarrollan el servidor de aplicaciones.
Administrador del sistema
configura y administra la infraestructura de computación y de red del negocio
Desplegador
despliega la aplicación en un entorno operacional particular (servidor de aplicaciones)
Ensamblador de aplicaciones
compone los enterprise beans y las aplicaciones cliente para conformar una aplicación completa
Desarrollador de beans
desarrolla los componentes enterprise beans.
Clientes de los beans
El cliente puede ser una clase Java cualquiera, ya sea un cliente aislado o un servlet que se está ejecutando en el contenedor web del servidor de aplicaciones. El código que deben ejecutar los clientes del bean es básicamente el mismo en cualquier caso.
Desarrollo de beans
Consta de los siguientes 5 pasos:
1. Escribe y compila la clase bean que contiene a todos los métodos
de negocio.
2. Escribe y compila las dos interfaces del bean: home y componente.
3. Crea un descriptor XML del despliegue en el que se describa qué es el bean y cómo debe manejarse. Este fichero debe llamarse ejb- jar.xml.
4. Pon la clase bean, los interfaces y el descriptor XML del despliegue en un fichero EJB JAR . Podría haber más de un bean el mismo fichero EJB JAR, pero nunca habrá más de un descriptor de despliegue.
5. Despliega el bean en el servidor usando las herramientas proporcionadas por el servidor de aplicaciones.
Tipos de beans
Los bean de sesión
Representa un proceso o una acción de
negocio. No almacenan sus datos en una base de datos
después de que el cliente termine el proceso.
Beans de sesión con estado
Cada bean de sesión con estado almacena el estado
conversacional de un cliente que interactúa con el bean. Este estado conversacional se modifica conforme el cliente va realizando llamadas a los métodos de negocio del bean. El estado conversacional no se guarda cuando el cliente termina la sesión.
Ejemplo. Un ejemplo típico es un carrito de la compra, en donde el cliente va guardando uno a uno los ítem que va comprando.
Un enterprise bean que reserva un vuelo y alquila un coche en un sitio Web de una agencia de viajes.
Beans de sesión sin estado
No se modifican con las llamadas de los
clientes. Los métodos que ponen a disposición de las aplicaciones clientes son llamadas que reciben datos y devuelven resultados, pero que no modifican internamente el estado del bean.
Ejemplo. Un componente que comprueba si un símbolo de compañía está
disponible en el mercado de valores y devuelve la última cotización registrada.
Un componente que calcula la cuota del seguro de un cliente, basándose en los datos que se le pasa del cliente.
Los beans dirigidos por mensajes
Los beans dirigidos por mensajes no necesitan
objetos EJBObject porque los clientes no se comunican nunca con ellos directamente.
Los beans de entidad
Representan un objeto concreto que tiene
existencia en alguna base de datos de la empresa.
Funcionamiento de componentes EJB
El contenedor EJB se preocupa de cuestiones como:
¿Tiene el cliente permiso para llamar al método?
Hay que abrir la transacción al comienzo de la llamada y cerrarla al terminar.
¿Es necesario refrescar el bean con los datos de la base de datos?
Pasos a seguir: 1. Cliente: "Necesito realizar una petición de compra al bean Broker."
2. EJBObject: "Espera un momento, necesito comprobar tus
permisos."
3. Contenedor EJB: "Sí, el cliente tiene permisos suficientes para llamar al método compra."
4. Contenedor EJB: "Necesito un bean Broker para realizar una
operación de compra. Y no olvidéis comenzar la transacción en el momento de instanciaros."
5. Pool de beans: "A ver... ¿a quién de nosotros le toca esta vez?".
6. Contenedor EJB: "Ya tengo un bean Broker. Pásale la petición del cliente."
El contenedor EJB es un programa Java que corre en el servidor y que contiene todas las clases y objetos necesarios para el correcto funcionamiento de los enterprise beans.
El cliente nunca se comunica directamente con el enterprise bean, sino que
el contenedor EJB proporciona unEJBObject que hace de interfaz.
Servicios proporcionados por el contenedor EJB
Adaptación en tiempo de despliegue
Posibilidad de modificación de todas estas características en el momento del despliegue del bean.
Escalabilidad
Posibilidad de constituir clusters de servidores de aplicaciones con múltiples hosts
Gestión de mensajes
Manejo de Java Message Service (JMS).
Persistencia
Sincronización entre los datos del bean y tablas de una base de datos.
Gestión de recursos
Gestión automática de múltiples recursos en aplicaciones que no han sido traducidas a nuevos lenguajes
Ejemplos: colas de mensajes, bases de datos o fuentes de datos
Servicios de red
Comunicación entre el cliente y el bean en máquinas distintas.
Concurrencia
Llamada simultánea a un mismo bean desde múltiples clientes
Seguridad
Comprobación de permisos de acceso a los métodos del bean
Manejo de transacciones
Apertura y cierre de transacciones asociadas a las llamadas a los métodos del bean.
Desarrollo basado en componentes
RMI.
Con RMI es posible enviar peticiones a objetos que están ejecutándose en otra máquina virtual Java.
Se puede ver un componente como un objeto tradicional con un conjunto de servicios adicionales soportados en tiempo de ejecución por el contenedor de componentes.
Who is the best person in the world for you? Type in the answer.
motherfathergrandfathersisterbrothergrandmotherbest friend
El contenedor de componentes se denomina contenedor EJB funge como el sistema operativo en el que los componentes se encuentran.
Describe how he/she acts or behaves. Try to come up with various adjectives that best describe the meaning of good and nice in this situation.
kindattentivelovingpolitecaring
Con la tecnología J2EE Enterprise JavaBeans es posible desarrollar componentes (enterprise beans)
Who is the person you like the least?
Type in the answer.
celebritypoliticianrelativeacquaintanceneighbor
2.Usar "bean Cliente" en una aplicación de comercio electrónico en el que se requiera representar un cliente.
Describe how he/she acts or behaves. Try to come up with various adjectives that best describe the meaning of bad in this situation.
impoliteirresponsibleaggressivemanipulativeevil
1.Desarrollar un bean Cliente que represente un cliente en una base de datos.