Академический Документы
Профессиональный Документы
Культура Документы
Objetivos didcticos
ndice (1/2)
Bloque I: Conceptos
Enterprise Java Bean
Enterprise Application
Interfaz cliente de un EJB
Session Beans
Entity Beans
Message Beans
Ejemplo: Aplicacin con Entity Session y Message Beans
Diferencia entre EntityBean y Stateful Session Bean
Elegir entre Entity o Session Bean
Cundo utilizar Message Beans
Software de Comunicaciones I.T.T.T. - Nivel de negocio EJBs
Pg. 3
ndice (2/2)
Bloque II: Estructura de un EJB
Estructura de un EJB
Particularidades de la vista cliente
Ejemplo AccountBean
ndice (3/3)
Bloque IV: Roles en el desarrollo de aplicaciones
Roles en J2EE
Herramientas
Enterprise Application
Una enterprise aplication consta de EJBs y otros
componentes (web y aplicaciones cliente)
En el ejemplo tenemos 6 EJBs (EJB, EJB2, EJB3, EJB4,
EJB5, EJB6), un aplicacin web (WebApp1) y una aplicacin
cliente (Client1)
Fuente:
Applying Enterprise JavaBeans:Component-Based Development for the J2EE Platform, Second Edition
By: Vlada Matena; Sanjeev Krishnan; Linda DeMichiel; Beth Stearns Publisher: Prentice Hall
Enterprise Application
Una EA puede estar desplegada en un contenedor o en varios
En el ejemplo, webContainer contiene WebApp1, ClientContainer
a Client1, EJBContainer1 a {EJB1,EJB2,EJB3}, EJBContainer
a EJB4 y EJBContainer a {EJB5, EJB6}
Fuente:
Applying Enterprise JavaBeans:Component-Based Development for the J2EE Platform, Second Edition
By: Vlada Matena; Sanjeev Krishnan; Linda DeMichiel; Beth Stearns Publisher: Prentice Hall
Entidades de negocio
Representan un objeto de negocio que contiene alguna
informacin mantenida por una empresa
Tpicamente estado o valores almacenados en una base de
datos
Por ejemplo los clientes, sus compras y un cdigo postal
almacenado en una base de datos
Proceso de negocio
Es un proceso que tpicamente encapsula una
interaccin de un usuario con entidades de negocio.
Actualiza el estado de la entidad de negocio
Reglas de negocio
Se reparten entre los componentes que representan las
diferentes entidades de negocio y los procesos de
negocio
Dependiendo de la naturaleza de la aplicacin
Hay reglas que tpicamente se asocian a entidades de negocio
Saber si el saldo de una cuenta es negativo aparece ligado a la
entidad Cuenta en un balance
Session Beans:
Representan procesos ejecutados en respuesta a una solicitud del cliente
(ej. Transaccionesbancarias, clculos, realizacin de pedidos)
Tpicamente usan Entity Beans para el procesado de datos
Llamada sncrona
Message-Driven Beans:
Representan procesos ejecutados como respuesta a la recepcin de un
mensaje
Llamada asncrona
Session Beans
Entity Beans
Modelan conceptos y objetos de negocio cuyos datos
son persistentes
Tpicamente la base de datos
Message Beans
Receptores de mensajes
Cliente A
Entity Bean
Database
Table
Lnea 1
Entity Bean
Cliente B
Stateful
Session Bean:
Instance 1
Lnea 2
Entity Bean
Lnea 3
Lnea n
Stateful
Session Bean:
Instance 1
Cliente C
Message Bean:
correo
Servidor EJB
Session Bean
Entity Bean
Mantenido en BD.
Tpicamente cach en
memoria en una transaccin
Session Bean
Entity Bean
Estado cambiado de forma
transaccional y es recuperable
se
Estructura de un Enterprise
Java Bean
Consta de tres partes fundamentales:
Clase Enterprise Bean:
Mtodos de negocio (definido por la aplicacin)
Mtodos del ciclo de vida (llamados por el contenedor)
Interfaz de cliente:
Home Interface (create, remove y find)
Remote Interface (mtodos de negocio como getSaldo)
Descriptor de despliegue:
Informacin (xml) sobre el EJB y su entorno
Estructura de un Enterprise
Java Bean
contenedor EJB
EnterpriseBean
Home Interface
Mtodos del ciclo de la vida
create,find,remove
EJBHome
(account home)
ejbCreate
ejbpostCreate
ejbFindByKey
getBalance
credit
Cliente
EJBObject
(Account)
ejbCreate
getBalance, credit
servidor EJB
ejbRemove
Mtodos de negocio
ejbRemove
ejbActiave
ejbPassivate
ejbLoad
ejbStore
getBalance
Remote Interface
(AcountBean)
Fuente:
Applying Enterprise JavaBeans:Component-Based Development for the J2EE Platform, Second Edition
By: Vlada Matena; Sanjeev Krishnan; Linda DeMichiel; Beth Stearns Publisher: Prentice Hall
java.rmi.RemoteException;
javax.ejb.CreateException;
javax.ejb.FinderException;
java.util.Collection;
La interfaz EJBObject
import java.rmi.RemoteException;
public interface EJBObject extends java.rmi.Remote{
public EJBHome getEJBHome()
throws RemoteException;
public Object getPrimaryKey()
throws RemoteException;
public void remove()
throws RemoteException, RemoveException;
public Handle getHandle()
throws RemoteException;
boolean isIdentical(EJBObject obj2)
throws RemoteException;
}
Descriptor de descripcin
<entity-bean>
<ejb-name>AccountEJB</ejb-name>
<home>com.wombat.AccountHome</home>
<remote>com.wombat.Account</remote>
<ejb-class>com.wombat.AccountBean</ejb-class>
<persistence-type>Bean</persistence-type>
<prim-key-class>com.wombat.AccountKey</prim-key-class>
...
</entity-bean>
...
<container-transaction>
<method>
<ejb-name>AccountEJB</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
...
Fuente:
Applying Enterprise JavaBeans:Component-Based Development for the J2EE Platform, Second Edition
By: Vlada Matena; Sanjeev Krishnan; Linda DeMichiel; Beth Stearns Publisher: Prentice Hall
Web Contenedor
Bases de datos
JSP
Aplicac.
Applet,
Cliente
CORBA
Servlets
JDBC
JSP
Enterprise
Beans
Aplicaciones legado
Enterprise
Beans
Conectores
Cliente
Servicios
Web
EJB Contenedor
HTTP
Firewall
Cliente
Web
Browser
Servlets
Sistemas ERP
lookup
Home
Contenedor EJB
Objeto Home
Cliente
3
bind
Stub
JNDI
Home
Servicio de nombres
1 create
Stub
Instancia
Entity Bean
Objeto Home
Identidad
4
Stub
Remote
2
Remote
insert
Objeto EJB
Identidad
JDBC
Home
Cliente
Base de datos
Invocando un mtodo de un
EJB
incPrecio
4
Objeto EJB
Identidad
6
3
Empezar y terminar
transaccin
Instancia
Entity Bean
Comparacin datos
(cargar/almacenar)
JDBC
Identidad
JTA
Stub
Contenedor EJB
Remote
Remote
Cliente
Monitor
Transacciones
Base de datos
Fuente:
Applying Enterprise JavaBeans:Component-Based Development for the J2EE Platform, Second Edition
By: Vlada Matena; Sanjeev Krishnan; Linda DeMichiel; Beth Stearns Publisher: Prentice Hall
Stub
Contenedor EJB
Session
Bean
deploy.xml
Remote
Cliente
Transacciones
Seguridad
Distribucin
Balance de carga
Concurrencia
Persistencia
Recuperacin
if !autorized(){
return SecurityException()
}
Software de Comunicaciones I.T.T.T. - Nivel de negocio EJBs
Pg. 40
Acceso remoto:
El servidor EJB proporciona protocolos de comunicacin para
el acceso remoto a objetos distribuidos (RMI-IIOP)
El interfaz y semntica de llamada deben seguir las
convenciones de Java RMI
El protocolo de comunicacin debe soportar IIOP (segn
especificacin CORBA)
La gestin de la distribucin de las llamadas remotas es tarea
del contenedor
Software de Comunicaciones I.T.T.T. - Nivel de negocio EJBs
Pg. 41
Persistencia:
Las instancias de Entity Beans en la memoria de trabajo
pueden estar enlazadas con datos de negocio de cualquier EIS.
El contenedor garantiza la consistencia de datos (carga y
almacenamiento peridicos)
Persistencia gestionada por Beans: la instancia usa las conexiones
JDBC a bases de datos proporcionadas por el contendor
Persistencia gestionada por contenedor: en general se soportan
bases de datos relacionales
El medio de persistencia depende del contenedor y es
independiente del Bean
Software de Comunicaciones I.T.T.T. - Nivel de negocio EJBs
Pg. 42
Mensajera:
El contendor proporciona a los beans acceso al servicio de
mensajera mediante el API JMS (Java Messaging Service):
comunicacin asncrona de mensajes entre dos o ms
participante mediante un sistema de colas de mensajes
Los receptores de mensajes son los Message-Driven Beans y
cualquier Enterprise Bean puede ser emisor
Otros componentes
El desarrollador del
bean escribe la lgica de
negocio
ensamblador
de aplicaciones
Proveedor
de contenedores
y servidores
Aplicacin
Administrador
instala el contenedor
Contenedor +
servicios de sistema
Desplegador
Contenedor configurado
en un entorno especfico
Aplicacin operacional
1.
2.
3.
4.
5.
Desarrollador
Ensamblador
Desplegador
Administrador
Proveedor
Herramientas
El desarrollo de EJBs requiere habitualmente la
utilizacin de herramientas auxiliares:
IDE para el desarrollo de EJBs y sus diferentes interfaces
Data Access para configurar la base datos y acceder a sus
recursos (borrar datos, crear tablas, ..)
UML para facilitar el diseo de la lgica de la aplicacin
empresarial
Edicin Web para facilitar el diseo de pginas web
complejas (flash, )
De Integracin para interactuar EIS preexistentes como por
ejemplo sistemas ERP
Despliegue para resolver dependencias entre diferentes
EJBs y el entorno operacional
Gestin del contenedor y del servidor para monitorizar y
controlar el estado del servidor
Software de Comunicaciones I.T.T.T. - Nivel de negocio EJBs
Pg. 46
De todos los roles existentes en los EJB, indique aquellos que piensa que
utilizar en el laboratorio
Software de Comunicaciones I.T.T.T. - Nivel de negocio EJBs
Pg. 47