enterprise java beans (ejb’s) sistemas de operación 3

68
ENTERPRISE JAVA ENTERPRISE JAVA BEANS (EJB’s) BEANS (EJB’s) Sistemas de Operación 3 Sistemas de Operación 3

Upload: benita-barbas

Post on 23-Jan-2016

228 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

ENTERPRISE JAVA ENTERPRISE JAVA BEANS (EJB’s)BEANS (EJB’s)

Sistemas de Operación 3Sistemas de Operación 3

Page 2: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Introducción a J2EEIntroducción a J2EE

Es un estandar. Plataformas Es un estandar. Plataformas comerciales: IBM WebSphere, BEA comerciales: IBM WebSphere, BEA Weblogic, Oracle9iAS o Sun ONEWeblogic, Oracle9iAS o Sun ONE

J2EE (Java2 Enterprise Edition) ofrece J2EE (Java2 Enterprise Edition) ofrece un conjunto de aplicaciones con un conjunto de aplicaciones con especificaciones para diseñar, especificaciones para diseñar, desarrollar, ensamblar y desplegar desarrollar, ensamblar y desplegar aplicaciones de negocio. aplicaciones de negocio.

Provee una plataforma independiente, Provee una plataforma independiente, basada en componentes, distribuída, basada en componentes, distribuída, debilmente acoplada, confiable y debilmente acoplada, confiable y segura en un ambiente de segura en un ambiente de aplicaciones.aplicaciones.

Page 3: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Multitired = Multitired = MultithreadMultithread

Page 4: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Especificaciones de Especificaciones de J2EEJ2EE

Las especificaciones de J2EE define los Las especificaciones de J2EE define los siguientes componentes: siguientes componentes:

Application clients and applets are Application clients and applets are components that run on the client. components that run on the client.

Java Servlet and JavaServer Pages (JSP ) Java Servlet and JavaServer Pages (JSP ) technology components are Web technology components are Web components that run on the server. components that run on the server.

Enterprise JavaBeans (EJB ) components are Enterprise JavaBeans (EJB ) components are business components that run on the server.business components that run on the server.

Componentes J2EE != Java Class en las especificacionesComponentes J2EE != Java Class en las especificaciones

Page 5: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Antes de seguir…Antes de seguir…

¿Enterprise JAVA Bean == JAVA ¿Enterprise JAVA Bean == JAVA Bean?Bean?

No

Page 6: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

JAVA BeanJAVA Bean

Componente utilizado en JAVA que Componente utilizado en JAVA que permite agrupar funcionalidades que permite agrupar funcionalidades que forman parte de una aplicación.forman parte de una aplicación.

Un JAVA Bean puede agrupar Un JAVA Bean puede agrupar información personal, datos sobre un información personal, datos sobre un pedimento, requerimientos de pedimento, requerimientos de órdenes, etc.órdenes, etc.

Requiere ser integrado con otros Requiere ser integrado con otros componentes para ser funcional.componentes para ser funcional.

Page 7: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Enterprise JAVA BeanEnterprise JAVA Bean

Agrupa funcionalidades para una Agrupa funcionalidades para una aplicación. aplicación.

Es un componente de despliegue, es Es un componente de despliegue, es decir, que existe un ambiente de decir, que existe un ambiente de ejecución (Enterprise Java Bean ejecución (Enterprise Java Bean Container) . Container) .

No requiere ser integrado, ya que No requiere ser integrado, ya que puede ser activado mediante el puede ser activado mediante el Contenedor de los EJBContenedor de los EJB

Page 8: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Tipos de clientes en Tipos de clientes en J2EE J2EE

Web Client: Web Client: contenido dinámico y browsercontenido dinámico y browser

– AppletsApplets

Application ClientsApplication Clients– JavaBeans Component Arquitecture: JavaBeans Component Arquitecture:

no J2EEno J2EE

– Server CommunicationsServer Communications

Page 9: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Componentes del Componentes del ServidorServidor

Page 10: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Servidor: Web TierServidor: Web Tier

Page 11: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Servidor: Business Tier Servidor: Business Tier y EIS Tiery EIS Tier

Page 12: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Java BeanJava Bean

En general, un bean es una clase que obedece En general, un bean es una clase que obedece ciertas reglas: ciertas reglas:

Un bean tiene que tener un constructor por Un bean tiene que tener un constructor por defecto (sin argumentos) defecto (sin argumentos)

Un bean tiene que tener persistencia, es Un bean tiene que tener persistencia, es decir, implementar el decir, implementar el interfaceinterface SerializableSerializable. .

Un bean tiene que tener introspección. Los Un bean tiene que tener introspección. Los IDE reconocen ciertas pautas de diseño, IDE reconocen ciertas pautas de diseño, nombres de las funciones miembros o nombres de las funciones miembros o métodos y definiciones de las clases, que métodos y definiciones de las clases, que permiten a la herramienta de programación permiten a la herramienta de programación mirar dentro del bean y conocer sus mirar dentro del bean y conocer sus propiedades y su conducta. propiedades y su conducta.

Page 13: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Más sobre los EJB´sMás sobre los EJB´s

Un EJB es un conjunto de código que Un EJB es un conjunto de código que contiene campos y métodos para la contiene campos y métodos para la implementación de módulos en una implementación de módulos en una lógica de negocio.lógica de negocio.

Puede pensarse en un EJB como un Puede pensarse en un EJB como un bloque de construcción que puede ser bloque de construcción que puede ser empleado de manera independiente o empleado de manera independiente o en conjunto con otros EJB’s para la en conjunto con otros EJB’s para la ejecución de una lógica de negocio en ejecución de una lógica de negocio en un servidor J2EE.un servidor J2EE.

Page 14: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

J2EE Technology J2EE Technology ArchitectureArchitecture

Serverplatform

JTS JMAPI JNDI JMS JDBCJAXP JAAS

Enterprise Java Beans Components

Java Serverpages

Servlets

Application clients Web clients

IIOP

html

Page 15: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Elementos que lo Elementos que lo componencomponen

Page 16: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3
Page 17: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Aplicación con Aplicación con múltiples EJBsmúltiples EJBs

WebClient

ApplClient

EJB1

EJB2

EJB3

EJB4

EJB5

EJB6

Page 18: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Enterprise Java Enterprise Java Bean(EJB)Bean(EJB) An An enterprise beanenterprise bean is a server-side is a server-side

component that contains the business component that contains the business logic of an application. At runtime, the logic of an application. At runtime, the application clients execute the application clients execute the business logic by invoking the business logic by invoking the enterprise bean's methods.enterprise bean's methods.

Main goal of Enterprise Java Bean (EJB) Main goal of Enterprise Java Bean (EJB) architecture is to free the application architecture is to free the application developer from having to deal with the developer from having to deal with the system level aspects of an application. system level aspects of an application. This allows the bean developer to This allows the bean developer to focus solely on the logic of the focus solely on the logic of the applicationapplication

Page 19: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Roles in EJB Roles in EJB DevelopmentDevelopment Bean developer: Develops bean component.Bean developer: Develops bean component. Application assembler: composes EJBs to Application assembler: composes EJBs to

form applicationsform applications Deployer: deploys EJB applications within an Deployer: deploys EJB applications within an

operation environment.operation environment. System administrator: Configures and System administrator: Configures and

administers the EJB computing and administers the EJB computing and networking infrastructure.networking infrastructure.

EJB Container Provider and EJB server EJB Container Provider and EJB server provider: Vendors specializing in low level provider: Vendors specializing in low level services such as transactions and application services such as transactions and application mgt.mgt.

Page 20: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

¿Cuándo usarlos?¿Cuándo usarlos?

Debe considerarse la opción de Debe considerarse la opción de emplearlos cuando la aplicación a emplearlos cuando la aplicación a desarrollarse cumple con alguno de los desarrollarse cumple con alguno de los siguientes requerimientos:siguientes requerimientos:

Si la aplicación debe ser escalable. Si la aplicación debe ser escalable. – Para adaptarse al crecimiento en el Para adaptarse al crecimiento en el

número de usuarios podría ser necesario número de usuarios podría ser necesario distribuir los componentes de la aplicación distribuir los componentes de la aplicación en diversas máquinas. Los EJB no sólo en diversas máquinas. Los EJB no sólo pueden ser ejecutados de distintas pueden ser ejecutados de distintas máquinas sino que su ubicación máquinas sino que su ubicación permanece transparente para los usuarios.permanece transparente para los usuarios.

Page 21: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

¿Cuándo usarlos?¿Cuándo usarlos?

Si debe asegurarse la integridad de Si debe asegurarse la integridad de datos en transacciones. datos en transacciones. – Los EJB soportan las transacciones así Los EJB soportan las transacciones así

como mecanismos que controlan el acceso como mecanismos que controlan el acceso concurrente a los objetos compartidos.concurrente a los objetos compartidos.

Si la aplicación tendrá una variedad de Si la aplicación tendrá una variedad de clientes.clientes.– Con solo unas cuántas líneas de código, Con solo unas cuántas líneas de código,

clientes remotos pueden localizar clientes remotos pueden localizar fácilmente los EB. Estos clientes pueden fácilmente los EB. Estos clientes pueden ser pocos, varios o numerosos.ser pocos, varios o numerosos.

Page 22: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

¿Por qué usarlos?¿Por qué usarlos?

Porque simplifican el desarrollo de Porque simplifican el desarrollo de grandes aplicaciones distribuidas.grandes aplicaciones distribuidas.

El contenedor de EJB provee servicios El contenedor de EJB provee servicios a nivel de sistema para los EJB, el bean a nivel de sistema para los EJB, el bean de desarrollo puede concentrarse en de desarrollo puede concentrarse en resolver problemas de negocios. El resolver problemas de negocios. El contenedor del EJB es el responsable contenedor del EJB es el responsable por los servicios a nivel de sistema por los servicios a nivel de sistema tales como manejo de transacciones y tales como manejo de transacciones y seguridad de autorización.seguridad de autorización.

Page 23: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

¿Por qué usarlos?¿Por qué usarlos?

Los beans contienen las aplicaciones Los beans contienen las aplicaciones de la lógica de negocios y el de la lógica de negocios y el desarrollador de interfaz puede desarrollador de interfaz puede concentrarse en la presentación al concentrarse en la presentación al cliente. El desarrollador no tiene que cliente. El desarrollador no tiene que codificar las rutinas que implementan codificar las rutinas que implementan las reglas de negocio o los accesos a las reglas de negocio o los accesos a bases de datos. Como resultado, las bases de datos. Como resultado, las interfaces (o clientes) pueden ser tan interfaces (o clientes) pueden ser tan ligeros como sea necesario; beneficio ligeros como sea necesario; beneficio particularmente importante para particularmente importante para clientes que ejecutan en dispositivos clientes que ejecutan en dispositivos pequeños. pequeños.

Page 24: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

¿Por qué usarlos?¿Por qué usarlos?

Debido a que son componentes Debido a que son componentes portables, el ensamblador de la portables, el ensamblador de la

aplicación puede construir nuevas aplicación puede construir nuevas aplicaciones partiendo de beans aplicaciones partiendo de beans existentes (reuso) las cuales existentes (reuso) las cuales pueden ejecutarse en cualquier pueden ejecutarse en cualquier servidor de J2EE.servidor de J2EE.

Page 25: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Entidades de negocio, Entidades de negocio, Procesos y ReglasProcesos y Reglas Las aplicaciones de EJB agrupan las reglas de Las aplicaciones de EJB agrupan las reglas de

negocio en componentes.negocio en componentes. Los componentes usualmente representan Los componentes usualmente representan

una entidad o proceso de negocio.una entidad o proceso de negocio. Entidad: es un objeto representando alguna Entidad: es un objeto representando alguna

información relevante para la empresa. información relevante para la empresa. Posee un “estado” que puede ser o no Posee un “estado” que puede ser o no persistente. Algunos ejemplos son: Cliente, persistente. Algunos ejemplos son: Cliente, orden, empleado.orden, empleado.

Dependencia: es una relación definida entre Dependencia: es una relación definida entre dos entidades.dos entidades.

Page 26: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

ProcesoProceso

Es un objeto que típicamente encapsula la Es un objeto que típicamente encapsula la interacción de un usuario con las entidades interacción de un usuario con las entidades de negocio. de negocio.

Un proceso usualmente actualiza y cambia Un proceso usualmente actualiza y cambia los estados de las entidades. los estados de las entidades.

Un proceso de negocio puede tener su Un proceso de negocio puede tener su propio estado, el cual puede existir sólo propio estado, el cual puede existir sólo mientras exista el proceso. Cuando se mientras exista el proceso. Cuando se completa el proceso su estado deja de completa el proceso su estado deja de existir. existir.

El estado de un proceso puede ser El estado de un proceso puede ser transitorio o permanente. transitorio o permanente.

Page 27: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Reglas de negocioReglas de negocio

Las reglas de negocio se definen según Las reglas de negocio se definen según los componentes sobre los que aplica:los componentes sobre los que aplica:

Las reglas que refieren a las entidades Las reglas que refieren a las entidades deben ser implementadas en el deben ser implementadas en el componente que representa a la componente que representa a la entidad.entidad.

Las reglas que aplican a los procesos Las reglas que aplican a los procesos deben ser implementadas en los deben ser implementadas en los componentes que representan a los componentes que representan a los procesos.procesos.

Page 28: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

MiddlewareMiddleware

TiposTipos Middleware explícitoMiddleware explícito: ofrece servicios : ofrece servicios

pero requiere que los desarrolladores de pero requiere que los desarrolladores de data objectsdata objects programen los puntos de programen los puntos de acceso a dichos servicios.acceso a dichos servicios.

Page 29: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Middleware ExplícitoMiddleware Explícito

Page 30: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

MiddlewareMiddleware

Tipos (cont.)Tipos (cont.) Middleware implícito: Middleware implícito: el soporte para el soporte para

estos servicios es intrínseco. Los puntos estos servicios es intrínseco. Los puntos de acceso son provistos por la de acceso son provistos por la especificación de los componentes, de especificación de los componentes, de manera que los desarrolladores solo manera que los desarrolladores solo deben cumplir con la especificación de deben cumplir con la especificación de la lógica del proceso de negocio. El la lógica del proceso de negocio. El middleware implícito genera receptores middleware implícito genera receptores de peticiones que proveen acceso de peticiones que proveen acceso automático a los servicios de automático a los servicios de middleware.middleware.

Page 31: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Middleware ImplícitoMiddleware Implícito

Page 32: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Servicios Implícitos Vs. Servicios Implícitos Vs. ExplícitosExplícitos Usualmente los servicios como Usualmente los servicios como

transacciones, seguridad, drivers de base de transacciones, seguridad, drivers de base de datos, etc. se incluían en el código de punto datos, etc. se incluían en el código de punto de acceso, obligando a cada programador a de acceso, obligando a cada programador a entender los detalles de todos los posibles entender los detalles de todos los posibles servicios necesarios en una aplicación.servicios necesarios en una aplicación.

Ahora podemos decidir qué servicios Ahora podemos decidir qué servicios dejamos llevar a cabo por el contenedor.dejamos llevar a cabo por el contenedor.

La declaración de estos servicios se hace a La declaración de estos servicios se hace a través de un través de un XML deployment descriptorXML deployment descriptor..

Page 33: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Tipos de EJBTipos de EJB

Existen 3 tipos de EJB:Existen 3 tipos de EJB:– Beans de sesiónBeans de sesión

Con estadoCon estado Sin estadoSin estado

– Beans de entidadBeans de entidad– Beans Beans dirigido por mensajedirigido por mensaje

Page 34: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Tipos de EJBTipos de EJB

Actúa como un “message listener”, procesando los mensajes que recibe de manera asíncrona.

Dirigido por

Mensaje

Representa un objeto de la entidad de negocios que existe en una unidad de almacenaje permanente.

Entidad

Realiza una tarea para un cliente.Resuelve la lógica de negocio.

Sesión

PropósitoTipo

Page 35: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Beans de sesiónBeans de sesión

Representan a un solo cliente dentro del Representan a un solo cliente dentro del servidor J2EE.servidor J2EE.

Para acceder a una aplicación el cliente Para acceder a una aplicación el cliente invoca los métodos del bean.invoca los métodos del bean.

El Bean ejecuta el trabajo para su cliente, El Bean ejecuta el trabajo para su cliente, excluyéndolo de la complejidad al ejecutar excluyéndolo de la complejidad al ejecutar las tareas de negocio dentro del servidor.las tareas de negocio dentro del servidor.

Es similar a una sesión interactiva.Es similar a una sesión interactiva. No compartido. Sólo puede tener un cliente.No compartido. Sólo puede tener un cliente. No es persistente.No es persistente. Cuando el cliente termina, su bean de sesión Cuando el cliente termina, su bean de sesión

finaliza y anula su asociación con el cliente.finaliza y anula su asociación con el cliente.

Page 36: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Tipos de beans de Tipos de beans de sesiónsesión

Bean de sesión sin estadoBean de sesión sin estado– Las variables de la instancia pueden Las variables de la instancia pueden

mantener un estado pero solo mantener un estado pero solo mientras dure la invocación.mientras dure la invocación.

– Soporta múltiples usuarios.Soporta múltiples usuarios.– Mayor escalabilidad.Mayor escalabilidad.– Mejor desempeño.Mejor desempeño.

Page 37: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Ciclo de Vida (Sin Ciclo de Vida (Sin estado)estado)

Page 38: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Tipos de beans de Tipos de beans de sesiónsesión

Bean de sesión con estadoBean de sesión con estado– Las variables instanciadas representan Las variables instanciadas representan

el estado.el estado.– También se le conoce como “Estado También se le conoce como “Estado

Conversacional”.Conversacional”.– El estado se mantiene durante toda la El estado se mantiene durante toda la

sesión y desaparece cuando el cliente sesión y desaparece cuando el cliente se desconecta o finaliza la sesión.se desconecta o finaliza la sesión.

Page 39: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Ciclo de Vida (Con Ciclo de Vida (Con estado)estado)

Page 40: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

¿Cuándo emplearlos?¿Cuándo emplearlos?

Si tengo un cliente el cual solo tendrá acceso Si tengo un cliente el cual solo tendrá acceso a una instancia del bean.a una instancia del bean.

Cuando el estado no sea persistente (sólo Cuando el estado no sea persistente (sólo existira en un corto periodo de tiempo, existira en un corto periodo de tiempo, algunas horas). algunas horas).

(Estado) Si el estado representa una (Estado) Si el estado representa una interacción entre el bean y un cliente interacción entre el bean y un cliente específicoespecífico

(Estado) Si se requiere mantener la (Estado) Si se requiere mantener la información del cliente a través de la información del cliente a través de la invocación de métodosinvocación de métodos

(Estado) Si el bean es un intermediario entre (Estado) Si el bean es un intermediario entre el cliente y otros métodos de la aplicación el cliente y otros métodos de la aplicación presentándole una vista simplificadapresentándole una vista simplificada

Page 41: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

¿Cuándo emplearlos?¿Cuándo emplearlos?

(Estado) El Bean controla el manejo del flujo (Estado) El Bean controla el manejo del flujo de trabajo de varios EJB.de trabajo de varios EJB.

(Sin estado) El estado del bean no tiene (Sin estado) El estado del bean no tiene datos para un cliente específico.datos para un cliente específico.

(Sin estado) El bean realiza una tarea (Sin estado) El bean realiza una tarea genérica para todos los clientes. Por ejemplo, genérica para todos los clientes. Por ejemplo, se puede usar un bean sin sesión para enviar se puede usar un bean sin sesión para enviar un correo que confirme una orden en línea.un correo que confirme una orden en línea.

(Sin estado) El bean busca en una BD un (Sin estado) El bean busca en una BD un conjunto de datos de solo-lectura que es conjunto de datos de solo-lectura que es frecuentemente usado por los clientes. Tal frecuentemente usado por los clientes. Tal bean podría, por ejemplo, recuperar las filas bean podría, por ejemplo, recuperar las filas de la tabla que representan los productos de la tabla que representan los productos que están en venta este mes.que están en venta este mes.

Page 42: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Beans de entidadBeans de entidad

Representa un objeto de Representa un objeto de negocios en un mecanismo de negocios en un mecanismo de almacenaje persistente.almacenaje persistente.

Algunos ejemplos: clientes, Algunos ejemplos: clientes, órdenes, productos, etc.órdenes, productos, etc.

Normalmente cada bean tiene Normalmente cada bean tiene una tabla y cada instancia del una tabla y cada instancia del bean representa una línea en bean representa una línea en una tabla.una tabla.

Page 43: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Beans de entidadBeans de entidad

Persistentes (el estado existe más Persistentes (el estado existe más allá del tiempo de vida de la allá del tiempo de vida de la aplicación o del proceso de la aplicación o del proceso de la aplicación)aplicación)

Permiten acceso compartidoPermiten acceso compartido Contienen claves primarias Contienen claves primarias

(identificador)(identificador) Pueden interactuar con otros beans Pueden interactuar con otros beans

de entidad (p. ej. EstudianteBean de entidad (p. ej. EstudianteBean con CursoBean).con CursoBean).

Page 44: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Ciclo de vidaCiclo de vida

Page 45: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

¿Cuándo usarlos?¿Cuándo usarlos?

Cuando se representa una entidad de Cuando se representa una entidad de negocios y no un procedimiento. (p. ej. negocios y no un procedimiento. (p. ej. TarjetaCreditoBean será un bean de TarjetaCreditoBean será un bean de entidad mientras que entidad mientras que VerificadorTarjetaCredito será un bean VerificadorTarjetaCredito será un bean de sesión)de sesión)

Cuando el estado deba ser persistente. Cuando el estado deba ser persistente. Si la instancia termina o se apaga el Si la instancia termina o se apaga el servidor de la aplicación, el estado del servidor de la aplicación, el estado del bean existe en una BD.bean existe en una BD.

Page 46: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Beans Beans dirigido por dirigido por mensajemensaje

Permite a las aplicaciones de J2EE Permite a las aplicaciones de J2EE procesar mensajes de manera procesar mensajes de manera asíncrona.asíncrona.

Actua como un “listener” de mensajes, Actua como un “listener” de mensajes, similar a un “listener” de eventos.similar a un “listener” de eventos.

Los mensajes pueden ser enviados Los mensajes pueden ser enviados desde cualquier componente de J2EE u desde cualquier componente de J2EE u otra aplicación JMS que no emplee otra aplicación JMS que no emplee tecnología J2EE.tecnología J2EE.

Pueden procesar mensajes JMS.Pueden procesar mensajes JMS.

Page 47: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Beans Beans dirigido por dirigido por mensajemensaje

Se ejecutan por un mensaje del Se ejecutan por un mensaje del cliente.cliente.

Son invocados de manera Son invocados de manera asíncrona. asíncrona.

Tienen un periodo de vida corto. Tienen un periodo de vida corto. No mantiene estado para un cliente No mantiene estado para un cliente

específico. específico. Un Bean puede procesar mensajes Un Bean puede procesar mensajes

de multiples clientes.de multiples clientes. Pueden ser transaction-aware. Pueden ser transaction-aware.

Page 48: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Ciclo de VidaCiclo de Vida

Page 49: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

¿Cuándo usarlos?¿Cuándo usarlos?

Cuando no se desea saturar los Cuando no se desea saturar los recursos del sistema por el envío recursos del sistema por el envío de mensajes de manera síncrona de mensajes de manera síncrona (beans de sesión y de entidad)(beans de sesión y de entidad)

Page 50: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Compilation and Compilation and DeploymentDeployment Compilation (building the Compilation (building the

executables) uses build tool such executables) uses build tool such as as Apache Ant.Apache Ant.

The components of the various The components of the various tiers are packaged: .jar, .war, .eartiers are packaged: .jar, .war, .ear

Declarative resources are added.Declarative resources are added. A deploy tool or management tool A deploy tool or management tool

is used to deploy the packaged is used to deploy the packaged units into a J2EE server units into a J2EE server (container).(container).

Page 51: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Creating a EJB-jar fileCreating a EJB-jar file

LocalInterfaces

VendorSpecific

Files

RemoteInterfaces

DeploymentDescriptor

EnterpriseBean

Classes

Homeinterfaces

EjbJarfile

Jar file creator

Page 52: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Ejemplos de UsosEjemplos de Usos

Oferta de SubastaParticipante de la subasta

PedidoFormulario para el pedido

Cuentas Tarjetas de Credito

Autoriza la tarjete de Credito

Cuentas BancariasCaja del Banco

Entity beanSession bean

Page 53: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Escogiendo entre Escogiendo entre Entity o Session BeanEntity o Session Bean Una entidad del negocio se implemente como Una entidad del negocio se implemente como

entity beanentity bean Proceso de un negocio como session bean.Proceso de un negocio como session bean. Cualquier proceso que necesite persistencia es Cualquier proceso que necesite persistencia es

representado con un entity bean.representado con un entity bean. Cuando un proceso o una entidad no tienen la Cuando un proceso o una entidad no tienen la

necesidad de interactuar con otras necesidad de interactuar con otras aplicaciones, estos se implementas como aplicaciones, estos se implementas como objetos dependientes del bean.objetos dependientes del bean.

Page 54: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Partes de un EJBPartes de un EJB

EJB classEJB class implementan los metodos implementan los metodos del negocio y del ciclo de vida.del negocio y del ciclo de vida.

Client-view APIClient-view API: consiste en las : consiste en las interfaces locales y remotas del EJB.interfaces locales y remotas del EJB.– Interfaz local: controla en ciclo de vida: Interfaz local: controla en ciclo de vida:

invoca los metodos locales: create, invoca los metodos locales: create, remove, find methodsremove, find methods

– Interfaz Remota: invoca el metodo del EJBInterfaz Remota: invoca el metodo del EJB

Page 55: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Partes de un EJBPartes de un EJB

Deployment DescriptorDeployment Descriptor: un : un documento XML para el contenedor; documento XML para el contenedor; – Declaraciones del EJB necesaria para Declaraciones del EJB necesaria para

modificar el bean al ambiente de modificar el bean al ambiente de operación.operación.

– Servicios del contenedor al momento de Servicios del contenedor al momento de ejecución como: ejecución como: seguridad,distribución,balanceo de cargas, seguridad,distribución,balanceo de cargas, multihilos, presistencia, recuperación ante multihilos, presistencia, recuperación ante fallas, colas de recursos, manejo de fallas, colas de recursos, manejo de estado, etc.estado, etc.

Page 56: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Partes de un EJBPartes de un EJB

<<Home Interface>>AccountHome

create()find()remove()

<<Remote Interface>>Accountdebit()credit()getBalance()

<<Enterrpise Bean class>AccountBean

ejbCreate()ejbFind()ejbRemove()debit()credit()getBalance()

Deployment Descriptor

name = AccountEJBclass = AccountBeanhome = AccountHomeremote = Accounttype = Entitytransaction = required…..

Page 57: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

AccountHome AccountHome InterfaceInterfaceimport java.rmi.RemoteException;import javax.ejb.CreateException;import javax.ejb.FinderException;import java.util.Collection;

public interface AccountHome extends javax.ejb.EJBHome {//create methodsAccount create (String lastName, String firstName) throws

RemoteException, CreateException, BadNameException;Account create (String lastName) throws RemoteException,

CreateException;

// find methodsAccount findByPrimaryKey (AccountKey primaryKey) throws

RemoteException, FinderException;Collection findInActive(Date sinceWhen) throws RemoteException, FinderException, BadDateException;

Page 58: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Account InterfaceAccount Interface

import java.rmi.RemoteException;

public interface Account extends javax.ejb.EJBObject {

BigDecimal getBalance() throws RemoteException;

void credit(BiGDecimal amount) throws RemoteException;

Void debit(BigDecimal amount) throws RemoteException,

InSufficientFundsException;

}

Page 59: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

AccountBean classAccountBean class

public class AccountBean implements javax.ejb.EntityBean {// life cycle methods from home interfacepublic AccountKey ejbCreate (String latName, String firstName) throws

… {…}public AccountKey ejbCreate(String lastName) throws …{…}public AccountKey ejbFindByPrimaryKey(AccountKey primarykey)… {…}Public Collection ejbFindInactive( Data sinecWhen).. {…}

// business methods from remote interfacepublic BigDecimal getBalance() {….}public void credit(BigDecimal amt) {…}Public void debit(BigDecimal amt) throws InsufficientFundException

{….}

// container callbacks from EntityBean containerpublic ejbRemove( ) throws RemoveException{ …}public void setEntityContext(EntityContext ec) {…}public unsetEntityContext(EntityContext ec) {…}public void ejbActivate() {…}public void ejbLoad() {….}public void ejbStore() {….} }

Page 60: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Deployment DescriptorDeployment Descriptor

…<entity-bean> <ejb-name>AccountEJB</ejb-name> <home>com.wombat.AccopuntHome</home> <remote>com.wombat.Account</remote> <ejb-class>com.wombat.AccountBean</ejb-class> <persistence-type>Bean<\persistence-type> <primary-key-class>com.wombat.AccountKey</primary-key-class></entity-bean>

…<container-transaction> <method> <ejb-name>AcoountEJB</ejb-name> <method-name>*</method-name> </method> <trans-attribute>required</trans-attribute></container-transaction>…

Page 61: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3
Page 62: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

EmpaquetadoEmpaquetado

Una vez proporcionados los Una vez proporcionados los componentes, deben componentes, deben empaquetarse en un archivo EJB empaquetarse en un archivo EJB JAR (módulo que guarda al EB).JAR (módulo que guarda al EB).

Este archivo es portable y puede Este archivo es portable y puede ser empleado en diversas ser empleado en diversas aplicaciones.aplicaciones.

Para una aplicación J2EE se Para una aplicación J2EE se ensamblan uno o varios módulosensamblan uno o varios módulos

Page 63: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Step 1: Retrieve Home Step 1: Retrieve Home Object reference using Object reference using JNDIJNDI EJB Container/Server

EJB Object

HomeObject

Client codeAs servlets,applets

Remoteinterface

EnterpriseBeans

JNDI

1: RetrieveHomeObjectReference

2: ReturnHome Object Ref.

Page 64: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Step 2: Retrieve Step 2: Retrieve EJBObject using Home EJBObject using Home Interface and ObjectsInterface and ObjectsEJB Container/Server

EJB Object

HomeObject

Client codeAs servlets,applets

1:create

2:Create EJBObject

3: ReturnEJBObject Reference

Remoteinterface

EnterpriseBeans

Page 65: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Step 3: Invoke Business Step 3: Invoke Business Methods Using Remote Methods Using Remote Interface and EJB ObjectsInterface and EJB Objects

EJB Container/Server

EJB Object

Client codeAs servlets,applets

Remoteinterface

EnterpriseBean

1: call a method

Transaction,Security,

Persistenceservices2: call middleware API

3: call a bean

4: method returns

5: return result

Page 66: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Contents of an Contents of an Enterprise BeanEnterprise Bean Interfaces: The remote and home Interfaces: The remote and home

interface for remote access. Local and interface for remote access. Local and local home accesses for local access.local home accesses for local access.

Enterprise bean class: Implements the Enterprise bean class: Implements the methods defined in the above methods defined in the above interfaces.interfaces.

Deployment descriptor: An XML file Deployment descriptor: An XML file that specifies information about the that specifies information about the bean such as its type, transaction bean such as its type, transaction attributes, etc.attributes, etc.

Helper classes: non-bean classes Helper classes: non-bean classes needed by the enterprise bean class needed by the enterprise bean class such as utility and exception classes.such as utility and exception classes.

Page 67: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Naming ConventionsNaming Conventions

LocalAccountLocal<name>Local interface

LocalAccountHome

Local<name>Home

Local home interface

Account<name>Remote interface

AccountHome<name>HomeHome interface

AccountBean<name>BeanEnterprise bean class

Account<name>EJB JAR display name (DD)

Account-ear<name>-earDirectory Name

ExampleSyntaxItem

Page 68: ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3

Más información…Más información…

http://java.sun.com/products/ejb/http://java.sun.com/products/ejb/docs.html docs.html

http://java.sun.com/products/ejb http://java.sun.com/products/ejb