La plataforma J2EE. Conceptos y arquitectura de los Enterprise

Anuncio
Parte II: Java 2 Enterprise Edition
Enterprise JavaBeans
Ignacio Ramos Zapata
Departamento de Ingeniería Telemática
Universidad Carlos III de Madrid
irzapata@it.uc3m.es
Introducción a Enterprise JavaBeans
Ÿ Tecnología central de J2EE para la creación de lógica y datos de negocio
Ÿ Simplifica el desarrollo de componentes de negocio transaccionales, escalables y
portables (independientes de la plataforma)
–
Gracias a una serie de servicios que permiten que el desarrollador se concentre en la lógica de
negocio
Ÿ Une los distintos APIs de J2EE en una arquitectura integradora.
–
–
Componentes que residen en el servidor
Base de las aplicaciones distribuidas escritas en Java
Ÿ La especificación EJB describe un modelo de programación para componentes
consistente en convenciones, interfaces y excepciones
Ÿ Establece contratos entre el diseñador de componentes EJB y el proveedor del servidor
de aplicaciones, referentes al desarrollo, instalación y soporte de ejecución para los
componentes:
–
–
–
–
–
Roles y actividades de los distintos diseñadores de aplicaciones
Tipos de EJBs y su dominio de aplicación
Elementos que componen un EJB
Interfaces entre los EJB y otros elementos de la aplicación, principalmente los clientes
Directivas para los proveedores de servidores y contenedores EJB para garantizar la
independencia respecto a la plataforma
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
2
Qué son los Enterprise JavaBeans?
Ÿ Componentes que se ejecutan en el servidor, usados
como parte de aplicaciones corporativas distribuidas.
Ÿ Cada bean encapsula parte de la lógica de negocio
de la aplicación
Ÿ Se pueden invocar desde distintos tipos de clientes:
EJBs, servlets, clientes de aplicación, etc.
Ÿ En tiempo de ejecución, residen en un contenedor de
EJB: servicios de seguridad, transacción, instalación
(deployment), concurrencia, y gestión del ciclo de
vida
Ÿ Una aplicación puede tener uno o varios EJBs en uno
o varios contenedores EJB
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
3
Instalación típica J2EE
EIS
Web Contenedor
Bases de datos
JSP
Aplicac.
Applet,
Cliente
CORBA
Servlets
JDBC
JSP
Enterprise
Beans
Aplicaciones legado
Enterprise
Beans
JAX RPC (EJB 2.1)
Enterprise
Beans
RMI-IIOP
Messaging
Conectores
Cliente
Servicios
Web
EJB Contenedor
HTTP
Firewall
Cliente
Web
Browser
Servlets
Sistemas ERP
(EJB 2.0: JMS, EJB 2.1: +JAXM, …)
Servidor EJB
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
4
Entorno Básico
Ÿ Un cliente puede acceder a un EJB desde la misma JVM o desde
otra, usando una interfaz remota.
Ÿ El componente EJB Home es similar a una factoría de objetos (crear,
encontrar o borrar instancias )
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
5
Ejemplo aplicación con múltiples EJBs
Asociación unidireccional
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
6
Aplicación distribuida en múltiples contenedores
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
7
Arquitectura EJB
JNDI
JDBC
JTA
JMS
Enterprise Services
Clientes
Interfaces de
componentes EJB
EJB Contenedor
Enterprise Beans
Instancias
Bean
Componentes
Enterprise Beans
instalados
EJB Server
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
8
Elementos de la arquitectura EJB
Ÿ Servidor EJB: proporciona a lo contenedores la conexión con la
infraestructura de comunicaciones, alta disponibilidad y balanceo de
carga así como otras funciones de administración: gestión de errores,
vigilancia de threads que corren en el contenedor, gestión de
conexiones etc …
Ÿ Contenedor EJB: ofrece un entorno de ejecución a los componentes
instalados: manejo de las instancias-Bean, control del ciclo de vida y
acceso a los servicios Enterprise estándar
El conjunto Servidor EJB y Container EJB proporciona un servidor de
aplicaciones
Ÿ Enterprise Beans: son los componentes de servidor en los que está
encapsulada la lógica de negocio. Hay tres tipos:
– Session Beans representan procesos de negocio
– Entity Beans representan datos de negocio
– Message-Driven Beans procesan mensajes asíncronos
Ÿ Clientes: a EJB pueden acceder clientes basados en browser, clientes
Java, Servlets, clientes CORBA u otros Entreprise Beans
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
9
Entidades de negocio
Ÿ Objeto de negocio que representa información
mantenida por la empresa
– Estado, mantenido en la BD (persistente)
– Ejemplos: cliente, pedido, cuenta, empleado
– Las reglas de negocio asociadas con una entidad
• Restringen los valores de su estado (Ej: código postal 5
cifras)
• Mantienen relaciones entre entidades (Ej: un cliente con
varios pedidos)
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
10
Procesos de negocio
Ÿ Objeto de negocio que encapsula una
interacción de un usuario con una entidad de
negocio
– Actualiza el estado de una entidad de negocio
– Puede tener su propio estado
• Estado persistente: proceso en varios pasos realizado
por distintos actores: proceso de negocio colaborativo
– Ejemplo: procesamiento de una solicitud de préstamo
• Estado transistorio: proceso de negocio completado por
un actor durante una conversación: proceso de negocio
conversacional
– Ejemplo: sacar dinero de un cajero automático
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
11
Reglas de negocio
Ÿ Distribuidas entre los componentes que
implementan las entidades y procesos de
negocio
– En función de si la regla aplica a la entidad o al
proceso
– Ejemplo para una entidad: el balance de una
cuenta no puede ser negativo (es independiente
del proceso que lo cause)
– Ejemplo para un proceso: no se pueden sacar más
de 500€ de un cajero automático (independiente
de la entidad Cuenta)
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
12
Tipos de EJBs
Ÿ Componentes de servidor (especificación EJB), implementa la lógica de
negocio
Ÿ Entity Beans:
– modelan conceptos de negocio como objetos persistentes asociados a
datos
– Soporte pasivo de información. Ofrece métodos para las operaciones sobre
los datos (ej. Cuenta bancaria, producto, pedido…)
– Llamada síncrona
Ÿ Session Beans:
– Representan procesos ejecutados en respuesta a una solicitud del cliente
(ej. Transacciones bancarias, cálculos, realización de pedidos…)
– Típicamente usan Entity Beans para el procesado de datos
– Llamada síncrona
Ÿ Message-Driven Beans:
– Representan procesos ejecutados como respuesta a la recepción de un
mensaje
– Llamada asíncrona
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
13
Entity Beans
Ÿ Modelan conceptos y objetos de negocio
cuyos datos son persistentes
Ÿ Pueden ser usados por varios clientes de
forma conjunta y simultánea
Ÿ Identidad visible externamente: clave primaria
Ÿ Larga duración (tanto como los datos
asociados): incluso sobreviven caídas del
ordenador
Ÿ Persistencia en Entity Beans: gestionada por
beans o por contenedor, diferencia no visible
para el cliente
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
14
Session Beans
Ÿ Realizan la parte del servidor de la lógica de negocio de una
aplicación
Ÿ Cuando un cliente realiza una llamada a un Session Bean se
crea una instancia (Objeto Session) asociada a ese cliente. El
objeto Session se borra o libera al acabar el proceso del cliente
Ÿ Stateless Session Beans (sin estado):
– No almacenan datos del cliente (sólo utilizan los datos
pasados como parámetros)
– Todos los objetos Session de un bean poseen la misma
identidad
Ÿ Stateful Session Beans (con estado):
– Tienen estados dependientes del cliente
– El estado no es persistente, se pierde cuando el objeto
Session se deja de utilizar
– Cada objeto Session tiene distintas identidades
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
15
Tipos de EJBs (II)
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
16
Entity Bean vs. Stateful Session Bean
Área funcional
Session Bean
Entity Bean
Estado objeto
Mantenido por el
contenedor en memoria
principal.
Mantenido en BD.
Compartición objeto
Sólo puede ser usado por
un cliente
Puede ser compartido por
múltiples clientes. Un cliente
puede pasar una referencia al
objeto a otro cliente
Externalización de
estado
El contenedor mantiene el
estado del objeto
internamente. Estado
inaccesible a otros
programas
Estado almacenado en BD.
Otros programas (query SQL)
pueden acceder al estado
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
17
Entity Bean vs. Stateful Session Bean
Área funcional
Session Bean
Entity Bean
Transacciones
El estado puede ser
sincronizado mediante una
transacción, pero no es
recuperable
Estado cambiado de forma
transaccional y es recuperable
Recuperación de
fallos
No se garantiza que
sobreviva un fallo y
rearranque del contenedor.
Las referencias al objeto
sesión pueden ser inválidas
tras el fallo
Sobrevive el fallo y rearranque
del contenedor. El cliente
puede usar las mismas
referencias
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
18
Elección de Entity Bean o Session Bean
Ÿ Las entidades de negocio se implementan
típicamente como Entity Beans
Ÿ Los procesos de negocio conversacionales se
implementan típicamente como Session
Beans
Ÿ Los procesos de negocio colaborativos se
implementan típicamente como Entity Beans
– El estado representa los pasos intermedios
realizados
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
19
Message-driven Beans
Ÿ Receptores de mensajes
Ÿ Intermediario entre cliente emisor y Message-driven
Bean: servicio de mensajería
Ÿ Diferencia con Session y Entity Beans: Comunicación
asíncrona en lugar de llamada síncrona a métodos (el
cliente se bloquea hasta el fin de la llamada)
Ÿ Emisor y Message-driven Beans son mutuamente
anónimos
Ÿ Los Message-driven Beans no poseen identidad
– No pueden mantener información del estado del emisor,
como los stateless Session Beans
Ÿ Los mensajes entrantes son capturados por el
contenedor, quien los redirige a una instancia de
Bean
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
20
Ejemplo Enterprise Beans
Contenedor EJB
Stateless Session Bean
Instance Pool
Cliente A
Entity Bean
Database
Table
Línea 1
Entity Bean
Cliente B
Stateful
Session Bean:
Instance 1
Línea 2
Entity Bean
Línea 3
Línea n
Stateful
Session Bean:
Instance 1
Cliente C
Servidor EJB
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
21
Estructura de los Enterprise Beans
Ÿ Clase Enterprise Bean: implementa
– métodos de negocio
– métodos de ciclo de vida (llamados directamente
por el contenedor)
Ÿ API vista-cliente: define
– Home interface
• métodos create, remove y find
– Remote interface
• Métodos de negocio
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
22
Estructura de los Enterprise Beans
Ÿ Deployment descriptor: Documento XML
declara:
– Información de los EJB y su entorno
•
•
•
•
•
Nombre del EJB
Nombre de los interface Home y Remote
Nombre de la clase EJB
Tipo del EJB
Servicios que el EJB espera de su contenedor, como
transacciones
• Entradas del entorno EJB (dependencias con otros EJBs
y gestores de recursos)
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
23
Vista cliente sobre Session y Entity Beans
Ÿ Los session y entity beans ofrecen distintos interfaces
a los clientes
Ÿ Los messege-driven beans no tienen clientes
propiamente dichos sino que reaccionan a mensajes,
por lo que no ofrecen interfaces sino que anuncian su
canal de mensajes (JMS-Topic o JMS-Queue)
– Distinto modo de programación y comportamiento que los
session y entity beans
Ÿ Importante para los clientes:
– Servicio de nombres y directorios a través de JNDI para
localización de EJBs
– Protocolo RMI-IIOP para llamadas remotas a métodos
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
24
Características de la vista del cliente
Ÿ Home Interface: Crear y borrar beans (session y entity beans), encontrar
(entity beans)
Ÿ (Remote) Component Interface: Exporta los métodos de negocio
Ÿ Estos interfaces son implementados por Objetos-Home y Objetos-EJB:
vista del cliente sobre los session y entity beans
– Interfaces creados por el diseñador
– Durante la instalación, el contenedor genera las clases que implementan los
interfaces
Ÿ Intercepción: el cliente nunca opera directamente sobre las instancias
de beans sino sobre objetos generados por el contenedor
– El contenedor controla las llamadas y realiza pre- y post-procesado
– Proporciona el entorno de ejecución a los EJBs llamados
• Ej: Control de permisos, enlace dinámico del objeto-bean a las instancias-bean,
generación de instancias-bean si es necesario (Just-in-Time-Activation), o
creación previa y gestión (Pooling)
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
25
Esquema vista de cliente
Contenedor EJB
Home Interface
Objeto Home
Create/find, remove
Instancia Bean
Cliente B
Métodos de negocio
Instancia Bean
Objeto EJB
Remote Interface
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
26
Patrón de diseño proxy/broker
Cliente
Red
Servidor
1. Petición
Objeto
cliente
2. Petición
Proxy lado
cliente (Stub)
Proxy lado
servidor (Skeleton)
4. Respuesta
Coordinación de
la comunicación
Objeto
productor
3. Respuesta
Broker
Broker
Protocolo de transporte común
Sistema de transporte (ej. IIOP)
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
27
Ejemplo: Account EJB
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
28
Ejemplo: Home Interface
import
import
import
import
java.rmi.RemoteException;
javax.ejb.CreateException;
javax.ejb.FinderException;
java.util.Collection;
public interface AccountHome extends javax.ejb.EJBHome {
// create methods
Account create(string lastName, String firstName)
throws RemoteException, CreateException,
BadNameException;
Account create(string lastName)
throws RemoteException, CreateException;
...
// find methods
Account findByPrimaryKey(AccountKey primaryKey)
throws RemoteException, FinderException;
Collection findInActive(Date sinceWhen)
throws RemoteException, FinderException,
BadDateException;
...
}
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
29
Ejemplo: EJBHome Interface
import java.rmi.RemoteException;
public interface EJBHome extends java.rmi.Remote {
void remove(Handle handle)
throws RemoteException, RemoveException;
void remove(Object primaryKey)
throws RemoteException, RemoveException;
EJBMetaData getEJBMetaData()
throws RemoteException;
HomeHandle getHomeHandle()
throws RemoteException;
}
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
30
Ejemplo: Remote 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;
}
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
31
Ejemplo: EJBObject Interface
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;
}
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
32
Ejemplo: Clase EJB
import java.rmi.RemoteException;
public class AccountBean implements javax.ejb.EntityBean {
// life cycle methods from home interface
public AccountKey ejbCreate(String lastName, String firstName)
throws CreateException, BadNameException { ... };
public AccountKey ejbCreate(String lastName)
throws CreateException { ... }
public void ejbPostCreate(String lastName, firstName)
throws CreateException, BadNameException { ... };
public void ejbPostCreate(String lastName)
throws CreateException { ... }
public AccountKey ejbFindByPrimaryKey(AccountKey primaryKey)
throws FinderException { ... }
public Collection ejbFindlnActive(Date sinceWhen)
throws FinderException, BadDateException { ... }
...
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
33
Ejemplo: Clase EJB (cont.)
...
// business methods from remote interface
public BigDecimal getBalance() { ...}
public void credit(BigDecimal amount) { ...}
public void debit(BigDecimal amount)
throws InsufficientFundsException { ...}
...
// container callbacks from EntityBean interface
public ejbRemove() throws RemoveException { ...}
public void setEntityContext(EntityContext ec) { ...}
public void unsetEntityContext(EntityContext ec) { ...}
public void ejbActivate() { ...}
public void ejbPassivate() { , " }
public void ejbLoad() { ., .}
public void ejbStore() { ...}
}
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
34
Ejemplo: Deployment descriptor
<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>
...
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
35
Contenedor EJB
Entorno de ejecución para los componentes EJB
instalados
Ÿ Administración de instancias:
– Gestión del ciclo de vida de las instancias
– Los estados y procesos del ciclo de vida dependen del tipo
de Bean
Ÿ Acceso remoto:
– El servidor EJB proporciona protocolos de comunicación
para el acceso remoto a objetos distribuidos (RMI-IIOP)
– El interfaz y semántica de llamada deben seguir las
convenciones de Java RMI
– El protocolo de comunicación debe soportar IIOP (según
especificación CORBA)
– La gestión de la distribución de las llamadas remotas es
tarea del contenedor
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
36
Contenedor EJB (cont.)
Ÿ Seguridad:
– Autorización de acceso a componentes: concepto declarativo basado en
roles: En el Deployement Descriptor (descriptor de instalación) se definen
roles de usuario y sus derechos de acceso a los métodos de los
componentes
– El instalador (deployer) asigna roles a los usuarios, la gestión de usuarios y
roles la realiza el servidor EJB, el control de acceso el contenedor
Ÿ 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 periódicos)
• 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
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
37
Contenedor EJB (cont.)
Ÿ Transacciones:
– Secuencia de acciones (accesos a datos) ejecutadas de
forma “atómica” (no interrumpida), evitando problemas por
acceso concurrente a datos, que se puede “deshacer” por
completo en caso de fallo
– Coordinación de transacciones mediante un monitor de
transacciones
– El contenedor proporciona los protocolos para manejo de
transacciones (por ejemplo 2-Phases-Commit-Protocol)
– El contendor proporciona al Bean una interfaz única JTA
(Java Transaction API)
– Las transacciones pueden ser empezadas y terminadas por
el Bean o dejadas al control del contenedor (especificando
en el Deployment Descriptor qué métodos deben ser
protegidos por transacciones)
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
38
Contenedor EJB (cont.)
Ÿ Servicio de nombres y directorios:
– Asociación de referencias a objetos con nombres en una
estructura de directorios jerárquica (JNDI API: Jave Naminig
and Directory Interface)
– el contenedor asocia los Beans de forma automática, y
proporciona además diversa información a los Beans en un
directorio privado (Entorno)
Ÿ Mensajería:
– El contendor proporciona a los beans acceso al servicio de
mensajería mediante el API JMS (Java Messaging Service):
comunicación asíncrona de mensajes entre dos o más
participantes mediante un sistema de colas de mensajes
– Los receptores de mensajes son los “Message-Driven
Beans”, cualquier Enterprise Bean puede ser emisor
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
39
Herramientas de contenedor
Ÿ Elementos de una aplicación operativa:
– EJBs (lógica de negocio)
– Contenedor (implementación de los servicios de
nivel de sistema)
– Artefactos de contenedor:
• Las herramientas del contenedor leen el deployment
descriptor y generan clases adicionales llamadas
artefactos de contenedor (container artifacts)
Ÿ Los artefactos de contenedor permiten al
contenedor inyectar los servicios de nivel de
sistema (intercepción)
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
40
Artefactos de contenedor
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
41
Objetos RMI-IIOP
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
42
Llamada de un cliente: servicio de nombres
2
lookup
Home
Contenedor EJB
Objeto Home
Cliente
3
Stub
bind
JNDI
Home
1
Servicio de nombres
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
43
Llamada de un cliente: creación Entity Bean
Contenedor EJB
Stub
2
insert
Objeto Home
4
Stub
Remote
Remote
3
Objeto EJB
JDBC
1 create
Home
Home
Cliente
Base de datos
Instancia
Entity Bean
Identidad
Identidad
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
44
Llamada a un método de negocio
Stub
1
incPrecio
Objeto EJB
Identidad
3
2005
Empezar y terminar
transacción
6
4
Monitor
Transacciones
Instancia
Entity Bean
Identidad
5 Comparación datos
(cargar/almacenar)
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
JDBC
2
JTA
Contenedor EJB
Remote
Remote
Cliente
Base de datos
45
Escenarios
Ÿ Escenario Desarrollo:
– Conocimientos en el dominio de aplicación
– Diseñan los componentes EJB en forma de un archivo Java: clases
compiladas y los interfaces de los componentes, junto con un “Descriptor de
aplicación” en XML (características y requisitos de ejecución de los
componentes)
Ÿ Escenario Ensamblaje:
– Conocimientos en el dominio de aplicación
– Utiliza los componentes EJB para una aplicación concreta, enlazándolos de
forma adecuada, en un archivo común “Módulo EJB” o “Unidad de
instalación”
– Añade código de integración para el control de los EJB y la gestión de
entrada/salida
Ÿ Escenario Instalación:
– Pasos para la instalación de una “Unidad de instalación” en una plataforma
objetivo
– Experto en un entorno de sistema, en el servidor y containers
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
46
Pasos realización e instalación Enterprise
JavaBeans
1. Desarrollo código fuente del Enterprise Bean: Interfaz Home local y remoto,
interfaz de componente local y remoto, y clase Bean
2. Creación del Deployment Descriptor (ejb-jar.xml)
3. Compilación del código fuente Java ( -> ficheros .class)
4. Creación del fichero .jar del Enterprise Bean: con la herramienta jar, contiene
los .class y el deployment descriptor
5. Instalación (Deployment) del fichero .jar en el Contenedor
1. Generación de la configuración de deployment (depende del servidor EJB)
2. Anuncio del módulo EJB al Contenedor (depende del servidor EJB): puede ser copia
del fichero .jar en un directorio especial, o un proceso más complicado
6. Configuración del servidor EJB para el módulo EJB (depende del servidor EJB):
preparación de conexiones a bases de datos, caché, thread-pools, etc.
7. Arranque del Contenedor EJB
8. Opcional: desarrollo y arranque de un cliente: los ficheros .class o .jar deben
estar en el path. El enlace con el servidor EJB es específico del producto
2005
Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata
47
Descargar