2 Enterprise JavaBeans - it.uc3m.es · 2005 Software de Comunicaciones (c) UC3M Natividad Martínez...

47
Parte II: Java 2 Enterprise Edition Enterprise JavaBeans Ignacio Ramos Zapata Departamento de Ingeniería Telemática Universidad Carlos III de Madrid [email protected]

Transcript of 2 Enterprise JavaBeans - it.uc3m.es · 2005 Software de Comunicaciones (c) UC3M Natividad Martínez...

Parte II: Java 2 Enterprise Edition

Enterprise JavaBeans

Ignacio Ramos Zapata

Departamento de Ingeniería Telemática

Universidad Carlos III de Madrid

[email protected]

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 2

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

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 3

Qué son los Enterprise JavaBeans?

� Componentes que se ejecutan en el servidor, usadoscomo parte de aplicaciones corporativas distribuidas.

� Cada bean encapsula parte de la lógica de negociode 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 unoo varios contenedores EJB

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 4

Instalación típica J2EE

EIS

Bases de datos

Aplicaciones legado

Sistemas ERP

EJB Contenedor

EnterpriseBeans

Web Contenedor

JSP

JSP

Servlets

Servlets

EnterpriseBeans

EnterpriseBeans

Servidor EJB

JDBC

Messaging (EJB 2.0: JMS, EJB 2.1: +JAXM, …)

ClienteWeb

Browser

Aplicac. Applet,ClienteCORBA

ClienteServicios

Web JAX RPC (EJB 2.1)

HTTP

RMI-IIOP Con

ecto

res

Fire

wal

l

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 5

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 )

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 6

Ejemplo aplicación con múltiples EJBs

Asociación unidireccional

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 7

Aplicación distribuida en múltiples contenedores

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 8

Arquitectura EJB

EJB Contenedor

JNDI JDBC JTA JMS Enterprise Services

Inte

rface

s de

com

pone

ntes

EJB

EJB Server

Enterprise Beans

ComponentesEnterprise Beans

instalados

InstanciasBean

Clientes

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 9

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ándarEl 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

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 10

Entidades de negocio

� Objeto de negocio que representa informaciónmantenida 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)

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 11

Procesos de negocio

� Objeto de negocio que encapsula unainteracció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 porun actor durante una conversación: proceso de negocioconversacional

– Ejemplo: sacar dinero de un cajero automático

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 12

Reglas de negocio

� Distribuidas entre los componentes queimplementan 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 unacuenta no puede ser negativo (es independientedel proceso que lo cause)

– Ejemplo para un proceso: no se pueden sacar másde 500€ de un cajero automático (independientede la entidad Cuenta)

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 13

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

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 14

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

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 15

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

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 16

Tipos de EJBs (II)

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 17

Entity Bean vs. Stateful Session Bean

Estado almacenado en BD. Otros programas (query SQL) pueden acceder al estado

El contenedor mantiene el estado del objetointernamente. Estadoinaccesible a otrosprogramas

Externalización de estado

Puede ser compartido pormúltiples clientes. Un clientepuede pasar una referencia al objeto a otro cliente

Sólo puede ser usado porun cliente

Compartición objeto

Mantenido en BD. Mantenido por el contenedor en memoriaprincipal.

Estado objeto

Entity BeanSession BeanÁrea funcional

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 18

Entity Bean vs. Stateful Session Bean

Sobrevive el fallo y rearranquedel contenedor. El clientepuede usar las mismasreferencias

No se garantiza quesobreviva un fallo y rearranque del contenedor. Las referencias al objetosesión pueden ser inválidastras el fallo

Recuperación de fallos

Estado cambiado de forma transaccional y es recuperable

El estado puede ser sincronizado mediante unatransacción, pero no esrecuperable

Transacciones

Entity BeanSession BeanÁrea funcional

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 19

Elección de Entity Bean o Session Bean

� Las entidades de negocio se implementantí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

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 20

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

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 21

Ejemplo Enterprise Beans

Cliente A

Cliente B

Cliente CServidor EJB

Contenedor EJBStateless Session Bean

Instance Pool

Entity Bean

Entity Bean

Entity Bean

StatefulSession Bean:

Instance 1 StatefulSession Bean:

Instance 1

DatabaseTable

Línea 1

Línea 2

Línea 3

Línea n

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 22

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

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 23

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)

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 24

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

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 25

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)

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 26

Esquema vista de cliente

Cliente B

Contenedor EJB

Instancia Bean

Instancia Bean

Objeto Home

Objeto EJB

Home Interface

Remote Interface

Create/find, remove

Métodos de negocio

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 27

Patrón de diseño proxy/broker

Objetocliente

Proxy ladocliente (Stub)

Proxy ladoservidor (Skeleton)

Objetoproductor

1. Petición 2. Petición

3. Respuesta4. Respuesta

Red

Broker BrokerCoordinación dela comunicación

Sistema de transporte (ej. IIOP)

Cliente Servidor

Protocolo de transporte común

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 28

Ejemplo: Account EJB

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 29

Ejemplo: Home Interface

import 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;

...}

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 30

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;}

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 31

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;}

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 32

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;}

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 33

Ejemplo: Clase EJB

import java.rmi.RemoteException;public class AccountBean implements javax.ejb.EntityBean {

// life cycle methods from home interfacepublic 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 { ... }...

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 34

Ejemplo: Clase EJB (cont.)

...// business methods from remote interfacepublic BigDecimal getBalance() { ...}public void credit(BigDecimal amount) { ...}public void debit(BigDecimal amount)

throws InsufficientFundsException { ...}...// container callbacks from EntityBean interfacepublic 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() { ...}

}

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 35

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>...

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 36

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

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 37

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

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 38

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)

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 39

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 Naminigand 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

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 40

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 llamadasartefactos de contenedor (container artifacts)

� Los artefactos de contenedor permiten al contenedor inyectar los servicios de nivel de sistema (intercepción)

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 41

Artefactos de contenedor

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 42

Objetos RMI-IIOP

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 43

Llamada de un cliente: servicio de nombres

Cliente

Contenedor EJB

Ho

me

Stub

JND

IServicio de nombres

Ho

me

Objeto Home

1

2

3

bind

lookup

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 44

Llamada de un cliente: creación Entity Bean

Cliente Contenedor EJB

Ho

me

Stub

Ho

me

Objeto Home

12

3

createinsert

Rem

ote

Objeto EJB

InstanciaEntity Bean

JDB

C

Base de datos

Identidad

Rem

ote

Stub

Identidad

4

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 45

Llamada a un método de negocio

Cliente Contenedor EJB

InstanciaEntity Bean

JDB

C

Base de datos

IdentidadIdentidad

1

JTA Monitor

Transacciones

2

3

4

5

6

Rem

ote

Objeto EJBRem

ote

Stub incPrecio

Empezar y terminartransacción

Comparación datos(cargar/almacenar)

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 46

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

Software de Comunicaciones (c) UC3M Natividad Martínez Ignacio Ramos Zapata2005 47

Pasos realización e instalación EnterpriseJavaBeans

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 descriptor5. 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 EJB8. 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