ENTERPRISE JAVA BEANS (EJB’s) Sistemas de Operación 3.
-
Upload
benita-barbas -
Category
Documents
-
view
233 -
download
0
Transcript of 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
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.
Multitired = Multitired = MultithreadMultithread
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
Antes de seguir…Antes de seguir…
¿Enterprise JAVA Bean == JAVA ¿Enterprise JAVA Bean == JAVA Bean?Bean?
No
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.
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
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
Componentes del Componentes del ServidorServidor
Servidor: Web TierServidor: Web Tier
Servidor: Business Tier Servidor: Business Tier y EIS Tiery EIS Tier
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.
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.
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
Elementos que lo Elementos que lo componencomponen
Aplicación con Aplicación con múltiples EJBsmúltiples EJBs
WebClient
ApplClient
EJB1
EJB2
EJB3
EJB4
EJB5
EJB6
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
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.
¿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.
¿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.
¿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.
¿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.
¿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.
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.
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.
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.
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.
Middleware ExplícitoMiddleware Explícito
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.
Middleware ImplícitoMiddleware Implícito
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..
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
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
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.
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.
Ciclo de Vida (Sin Ciclo de Vida (Sin estado)estado)
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.
Ciclo de Vida (Con Ciclo de Vida (Con estado)estado)
¿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
¿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.
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.
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).
Ciclo de vidaCiclo de vida
¿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.
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.
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.
Ciclo de VidaCiclo de Vida
¿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)
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).
Creating a EJB-jar fileCreating a EJB-jar file
LocalInterfaces
VendorSpecific
Files
RemoteInterfaces
DeploymentDescriptor
EnterpriseBean
Classes
Homeinterfaces
EjbJarfile
Jar file creator
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
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.
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
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.
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…..
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;
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;
}
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() {….} }
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>…
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
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.
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
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
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.
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
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