SlideShare una empresa de Scribd logo
1 de 41
Edwin Maraví
emaravi@cjavaperu.com
www.cjavaperu.com
SESION 07
Desarrollo de EJBs
De Sesión con estado
www.cjavaperu.com
AgendaAgenda
En esta lección, usted aprenderá a:
Identificar las características de los beans de sesión
con estado
Crear y desplegar beans de sesión con estado
Implementar beans de sesión con estado
www.cjavaperu.com
4
1. La invocación del método remove() para eliminar instancias
del bean de sesión iniciara la excepción _____________.
a. EJBException
b. CreateException
c. RemoteException
d. RemoveException
2. ¿Cuál método de la interfaz EJBHome es invocado por los
clientes para gestionar de manera remota a un bean de
sesión sin estado?
a. getEJBHome()
b. getHomeHandle()
c. getHandle()
d. isIdentical()
Preguntas de EvaluaciónPreguntas de Evaluación
www.cjavaperu.com
5
3. ¿Cuál es el número de argumentos pasados al método
create() para crear una instancia de un bean de sesión
sin estado?
a. Uno
b. Dos
c. Tres
d. Cero
3. ¿Cuál método de la interfaz PortableRemoteObject es
utilizado por los clientes para recuperar la referencia de
la interfaz home de un bean de sesión sin estado?
a. getHomeHandle()
b. getEJBMetaData()
c. narrow()
d. getEJBHome()
Preguntas de EvaluaciónPreguntas de Evaluación
www.cjavaperu.com
6
5. ¿Cuál método es utilizado por el método
setSessionContext() definido en la interfaz
SessionContext para obtener la interfaz
local de un bean de sesión?
a. getEJBHome()
b. getEJBLocalObject()
c. getEJBObject()
d. getEJBLocalHome()
Preguntas de EvaluaciónPreguntas de Evaluación
www.cjavaperu.com
7
• En una aplicación, un bean de sesión con
estado guarda el estado de un cliente.
• Un cliente inicia una conversación con un
bean de sesión con estado cuando éste
invoca al método del bean en un objeto EJB.
• Cuando la conversación termina, el estado
conversacional es preservado y se
almacenan los datos específicos del cliente
relacionados con la conversación entre el
cliente y el bean.
• Cuando el cliente llama a otro método en el
bean de sesión con estado, el cliente puede
requerir conocer el estado conversacional de
la llamada de método anterior. Un bean de
sesión con estado retiene el estado
conversacional para clientes individuales a
través de las llamadas de método.
Información General de los Beans de Sesión Con EstadoInformación General de los Beans de Sesión Con Estado
www.cjavaperu.com
8
Ciclo de Vida de los Beans de sesión con estado
• Contenedor EJB:
• Controla el ciclo de vida de un bean de
sesión con estado.
• Asigna una instancia del bean de sesión con
estado para dar servicio a un solo cliente a la
vez. Como resultado, hay las mismas
instancias de bean de sesión con estado en el
grupo que el número de clientes.
• No puede destruir de manera aleatoria la
instancia de un bean de sesión con estado ya
que ésta almacena el estado del cliente.
• Se asegura de que el estado del cliente
almacenado en las variables de la instancia
de un bean no es requerido en el
procesamiento de la aplicación, antes de
destruir una instancia del bean de sesión con
estado,.
Información General de los Beans de Sesión Con EstadoInformación General de los Beans de Sesión Con Estado
www.cjavaperu.com
9
Las etapas del ciclo de vida de un
bean de sesión con estado son:
• Listo: En esta etapa, la instancia de un
bean de sesión con estado permanece
en el grupo compartido y da servicio a
las solicitudes del cliente.
• Pasiva: En esta etapa, el contenedor
EJB almacena el estado del cliente en
un almacén secundario y elimina la
instancia del bean de la memoria.
• No Existe: En esta etapa, se elimina
permanentemente a un bean de sesión
con estado del grupo compartido.
Información General de los Beans de Sesión Con EstadoInformación General de los Beans de Sesión Con Estado
www.cjavaperu.com 10
Las etapas del ciclo de vida de un bean de sesiónLas etapas del ciclo de vida de un bean de sesión
Información General de los Beans de Sesión Con Estado
www.cjavaperu.com
11
•La Etapa Listo
• Al inicio de su ciclo de vida, un bean de sesión con
estado está en la etapa Listo.
• La instancia del bean de sesión con estado entra a la
etapa Listo en los siguientes casos:
• Cuando el contenedor EJB crea una nueva
instancia del bean de sesión con estado.
• Cuando el contenedor EJB activa un bean de
sesión con estado que está pasivo.
• El contenedor EJB crea nuevas instancias de un bean
de sesión con estado cuando no hay suficientes
instancias del bean de sesión con estado en el grupo
compartido para dar servicio a las solicitudes de los
clientes.
Información General de los Beans de Sesión Con EstadoInformación General de los Beans de Sesión Con Estado
www.cjavaperu.com
12
• Para crear una nueva instancia del bean de sesión con
estado, el contenedor EJB realiza los siguientes pasos:
• El contenedor EJB invoca a:
1. El método newInstance(), el cual crea una
nueva instancia del bean de sesión con estado.
2. El método setEntityContext() para asociar la
instancia del bean de sesión con estado con el
contexto del bean.
3. El método ejbCreate() de la clase bean de
sesión con estado. Usted puede pasar
argumentos al método ejbCreate() para
inicializar una nueva instancia del bean de
sesión con estado. Un bean de sesión con
estado puede tener más de un método
ejbCreate(), donde cada método tiene un
número y tipo de argumentos diferentes.
Información General de los Beans de Sesión Con EstadoInformación General de los Beans de Sesión Con Estado
www.cjavaperu.com
13
•Una instancia del bean de sesión con estado
también puede pasar a la etapa Listo
cuando el contenedor EJB activa a un bean
de sesión con estado en estado pasivo
invocando al método ejbActivate().
•El método ejbActivate() transfiere el
estado del cliente de un bean de sesión con
estado en estado pasivo a las variables de
la instancia del bean de sesión con estado.
•El contenedor EJB llama al método
ejbActivate() para permitirle al bean
adquirir los recursos liberados por éste
durante su estado pasivo.
Información General de los Beans de Sesión Con EstadoInformación General de los Beans de Sesión Con Estado
www.cjavaperu.com
14
La Etapa Pasiva
• Un bean de sesión con estado entra a la etapa Pasiva
en su ciclo de vida cuando el contenedor EJB lo libera
de dar servicio a un cliente inactivo y devuelve el
bean de sesión con estado al grupo compartido para
dar servicio a las solicitudes de otro cliente.
• Antes de volverlo pasivo, el contenedor EJB guarda el
estado del cliente asociado con la instancia del bean
de sesión con estado en un mecanismo secundario
de almacenamiento, como un disco duro en el
servidor.
• El contenedor EJB llama al método ejbPassivate()
antes de volver pasivo a un bean de sesión. Esto
permite al bean de sesión liberar sus recursos.
Información General de los Beans de Sesión Con EstadoInformación General de los Beans de Sesión Con Estado
www.cjavaperu.com
15
Etapa No Existe
•Al término de su ciclo de vida, la instancia del bean de
sesión con estado entra en la etapa No Existe.
•Una instancia del bean de sesión con estado entra en
esta etapa en los siguientes casos:
• Cuando el contenedor EJB invoca al método
ejbRemove().
• Cuando la desconexión por tiempo del ciclo de
vida de la instancia del bean especificada por el
desarrollador del bean expira.
Información General de los Beans de Sesión Con EstadoInformación General de los Beans de Sesión Con Estado
www.cjavaperu.com
16
•El contenedor EJB destruye a las instancias del bean de
sesión con estado cuando el número de instancias es
mayor al número de solicitudes de clientes activos.
•El contenedor EJB no invoca al método ejbRemove() en
los siguientes casos:
• Cuando ocurre una falla en el contenedor EJB.
• Cuando la ejecución de un método del bean de
sesión con estado inicia una excepción del
sistema.
Información General de los Beans de Sesión Con EstadoInformación General de los Beans de Sesión Con Estado
www.cjavaperu.com
17
Activación y Pasivación de los Beans de Sesión con
Estado
•El contenedor EJB pasiva y activa las instancias del bean de
sesión con estado en el grupo compartido para reducir el
gasto de almacenamiento de un gran número de instancias
del bean.
•El contenedor EJB almacena el estado del bean de una
instancia inactiva del bean en un mecanismo secundario de
almacenamiento. Este proceso es denominado pasivación .
•Cuando el cliente de un bean pasivo llama a otro método
del bean, se restaura el estado del bean. Este proceso es
denominado activación.
Información General de los Beans de Sesión Con EstadoInformación General de los Beans de Sesión Con Estado
www.cjavaperu.com 18
La pasivación del bean de sesión con estadoLa pasivación del bean de sesión con estado
Información General de los Beans de Sesión Con Estado
www.cjavaperu.com
19
Los beans de sesión con estado preservan las
referencias de las siguientes interfaces, además de
la información específica del cliente durante la
pasivación del bean:
• javax.ejb.EJBHome
• javax.ejb.EJBObject
• javax.jta.UserTransaction
• javax.naming.Context
• javax.ejb.EJBLocalHome
• javax.ejb.EJBLocalObject
Información General de los Beans de Sesión Con EstadoInformación General de los Beans de Sesión Con Estado
www.cjavaperu.com
20
•Los distintos algoritmos utilizados para implementar la
pasivación son:
• El Menos Utilizado Recientemente (LRU): Selecciona
la instancia del bean de sesión con estado, la cual ha
estado inactiva por más tiempo. Esto se conoce como
pasivación impaciente.
• No Utilizado Recientemente (NRU): Selecciona la
instancia del bean de sesión con estado, la cual ha estado
recientemente inactiva.
• Primero Dentro Primero Fuera (FIFO): Selecciona la
instancia del bean de sesión con estado, la cual entró
primero al grupo y está inactiva. Este también se conoce
como pasivación floja.
•La mayoría de los servidores EJB utilizan el algoritmo justo a
tiempo, de acuerdo con este algoritmo, un bean pasivo es
activado cuando un cliente decide continuar la interacción con la
instancia del bean.
Información General de los Beans de Sesión Con EstadoInformación General de los Beans de Sesión Con Estado
www.cjavaperu.com 21
Activación de un bean de sesión con estado
Información General de los Beans de Sesión Con Estado
www.cjavaperu.com
22
• Usted necesita desarrollar las interfaces del bean y la
clase bean para crear un bean de sesión con estado.
• Después de crear los archivos, usted necesita
compilarlos para generar los archivos de clase.
• Empaquete los archivos compilados en un solo archivo
Java Archive (JAR). Este archivo JAR se empaqueta
después en un archivo EAR de la aplicación J2EE y se
despliega en el Servidor de Aplicaciones J2EE.
• Después de desplegar el bean de sesión con estado,
usted puede acceder a él utilizando clientes Web o de
Aplicación.
Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
www.cjavaperu.com
23
Utilizando Archivos Java para Crear un Bean de Sesión Con
Estado
•Usted necesita definir tres archivos de clase Java para crear
un bean de sesión con estado.
• Interfaz home del bean de sesión con estado: Define
los métodos para crear y eliminar las instancias del
bean de sesión con estado.
• Interfaz remota del bean de sesión con estado:
Define los métodos empresariales que pueden llamar
los clientes. Estos métodos se implementan el la
clase del bean de sesión con estado.
• Clase del bean de sesión con estado: Implementa los
métodos del ciclo de vida del bean de sesión con
estado y los métodos empresariales declarados en la
interfaz remota del bean de sesión con estado.
Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
www.cjavaperu.com
24
•Creando la Interfaz Home del Bean de Sesión Con Estado
• Los clientes utilizan una implementación de la
interfaz home del bean de sesión con estado para
crear una instancia del bean de sesión con estado.
• La interfaz home del bean de sesión con estado
extiende a la interfaz javax.ejb.EJBHome.
• Los clientes utilizan los métodos definidos en la
interfaz javax.ejb.EJBHome para administrar una
instancia de un bean de sesión con estado.
• La interfaz home del bean de sesión con estado
define al método create() para crear nuevas
instancias del bean de sesión con estado.
Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
www.cjavaperu.com
25
• Puede haber varios métodos create() en la
interfaz home del bean de sesión con estado,
pero la firma de cada método create() debe ser
diferente.
• El tipo de devolución del método create() es
una referencia de la implementación de la
interfaz remota del bean de sesión con estado.
• En la interfaz home del bean de sesión con
estado, la cláusula throws del método create()
incluye a las excepciones,
javax.ejb.CreateException y
javax.ejb.RemoteException.
Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
www.cjavaperu.com
26
Creando la Interfaz Remota del Bean de Sesión Con Estado
• Los clientes remotos acceden a los métodos
empresariales del bean de sesión con estado utilizando
los métodos definidos en la interfaz remota del bean de
sesión con estado.
• La interfaz remota del bean de sesión con estado
extiende a la interfaz javax.ejb.EJBObject.
• La interfaz remota del bean de sesión con estado define
los métodos empresariales implementados en la clase del
bean de sesión con estado.
• La firma de los métodos empresariales debe ser la misma
que la de los métodos empresariales implementados en
la clase del bean de sesión con estado.
• Todos los métodos empresariales deben iniciar la
excepción javax.ejb.RemoteException.
Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
www.cjavaperu.com
27
Creando la Clase del Bean de Sesión Con Estado
• La clase del bean de sesión con estado
implementa el ciclo de vida y los métodos
empresariales de la aplicación del bean de
sesión con estado.
• La clase del bean de sesión con estado
implementa la interfaz
javax.ejb.SessionBean, la cual define los
métodos invocados por el contenedor EJB para
gestionar el ciclo de vida de una instancia del
bean de sesión con estado.
• La clase de un bean de sesión con estado
declara las variables de la instancia para
guardar el estado del cliente. La clase del bean
de sesión con estado se declara como pública.
Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
www.cjavaperu.com
28
Compilando y Desplegando un Bean de Sesión Con Estado
• Después de crear los archivos Java para un bean de sesión con
estado, compile todos los archivos Java utilizando el compilador
javac.
• El comando que se utiliza para compilar los archivos Java es
javac <file_name>.
• Los archivos de clase Java compilados desde la aplicación del
bean de sesión con estado se despliegan en el Servidor de
Aplicaciones J2EE1.4 utilizando la herramienta deploytool.
• El Asistente para el nuevo Enterprise Bean de la herramienta
deploytool despliega a un bean de sesión con estado .
• La herramienta deploytool empaqueta los archivos de clase Java
compilados en un archivo JAR antes de desplegar el bean .
• La herramienta deploytool genera automáticamente el
descriptor de despliegue del bean de sesión con estado.
Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
www.cjavaperu.com
29
Accediendo a un Bean de Sesión Con Estado
• Un cliente accede a los métodos empresariales de un bean de
sesión con estado utilizando las referencias de las interfaces
home y remota del bean.
• Ambos, el cliente Web y el cliente de Aplicación, pueden acceder
a un bean de sesión con estado. Un cliente realiza los siguientes
pasos para acceder a un bean de sesión con estado:
1. Ubica al bean de sesión con estado desplegado en el
Servidor de Aplicaciones J2EE 1.4.
2. Recupera las referencias de las interfaces home y remota del
bean de sesión con estado.
Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
www.cjavaperu.com
30
Ubicando a un Bean de Sesión Con Estado
• Un cliente ubica a un bean de sesión con estado en el
Servidor de Aplicaciones J2EE 1.4 utilizando la Interfaz
del Directorio de Nombres de Java (JNDI).
• Para ubicar a un bean de sesión con estado, un cliente
debe:
• crear un contexto inicial de nombre utilizando la
interfaz InitialContext de JNDI.
• ubicar el bean de sesión con estado desplegado
después de crear un contexto inicial utilizando el
método lookup(). El método lookup() devuelve la
referencia de la interfaz home del bean de sesión
con estado.
Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
www.cjavaperu.com
31
Recuperando las Referencias de las Interfaces del Bean de
Sesión Con Estado
•Un cliente:
• Debe recuperar las referencias de las interfaces home
y remota de un bean de sesión con estado después
de ubicar al bean de sesión con estado.
• Puede utilizar la referencia de la interfaz remota del
bean de sesión con estado para invocar a los
métodos empresariales de un bean.
• utiliza el método narrow() de la interfaz
PortableRemoteObject para recuperar la referencia
de la interfaz home de un bean de sesión con estado.
Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
www.cjavaperu.com
32
• Un cliente local debe utilizar el método lookup() de la
interfaz InitialContext para recuperar una referencia
de la interfaz home local de un bean de sesión con
estado.
• Un cliente recupera una referencia de la interfaz remota
o local del bean de sesión con estado llamando al
método create() en la interfaz home del bean de
sesión con estado.
Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
www.cjavaperu.com
33
Las Responsabilidades del Proveedor del Bean de Sesión y el
Proveedor del Contenedor EJB son:
• Las Responsabilidades del Proveedor del Bean de Sesión
son:
• Crear la interfaz home remota del bean de sesión
con estado.
• Crear la interfaz local remota del bean de sesión con
estado.
• Crear la interfaz remota del bean de sesión con
estado.
• Crear la clase del bean de sesión con estado.
• Cerrar todas las conexiones de la base de datos en
el método ejbPassivate() del bean de sesión con
estado y asignar valores nulos a las variables de
instancia de conexión.
Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
www.cjavaperu.com
34
Las responsabilidades del proveedor del contenedor EJB son:
• Proveer la herramienta de despliegue para desplegar
beans de sesión.
• Gestionar el ciclo de vida de una instancia del bean de
sesión.
• Garantizar que una instancia del bean de sesión dé
servicio a la solicitud de un sólo cliente a la vez. El
contenedor EJB inicia la
javax.ejb.RemoteException o la
javax.ejb.EJBException cuando un cliente intenta
acceder a la instancia del bean de sesión cuando esta está
dando servicio a la solicitud de otro cliente.
• Manejar las excepciones del tiempo de ejecución iniciadas
por las instancias de un bean de sesión
Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
www.cjavaperu.com
35
• Implementar el método
SessionContext.getEJBObject() para recuperar una
referencia de la interfaz remota del bean de sesión.
• Serializar el estado del cliente de una instancia del bean
de sesión con estado después de invocar al método
ejbPassivate().
• Eliminar la instancia de un bean de sesión con estado si
la instancia del bean no se adhiere a los requerimientos
de serialización.
• Guardar y restaurar el estado del cliente durante la
pasivación y activación de la instancia del bean de
sesión con estado.
Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
www.cjavaperu.com
36
En esta lección, usted aprendió:
• Un bean de sesión con estado preserva el estado del cliente a
través de la invocación de métodos y la transacción.
• El ciclo de vida de un bean de sesión con estado consiste de
tres etapas, Listo, Pasiva y No Existe.
• El contenedor EJB invoca al método ejbCreate() para
inicializar una nueva instancia del bean de sesión con estado.
• El contenedor EJB pasiva y activa las instancias de un bean
de sesión con estado para reducir el gasto de mantener un
gran número de instancias del bean en el grupo compartido.
• El contenedor EJB utiliza los algoritmos LRU, NRU y FIFO para
seleccionar la instancia del bean de sesión con estado que
será pasivada.
• El algoritmo justo a tiempo se utiliza para activar un bean de
sesión con estado pasivo.
ResumenResumen
www.cjavaperu.com
37
• Para crear un bean de sesión con estado para clientes
remotos, usted necesita crear los siguientes archivos
Java:
• Interfaz home del bean de sesión con estado
• Interfaz remota del bean de sesión con estado
• Clase del bean de sesión con estado
• La interfaz home de un bean de sesión con estado
extiende a la interfaz javax.ejb.EJBHome.
• El método create() de la interfaz home de un bean de
sesión con estado se utiliza para obtener una referencia
al objeto que implementa la interfaz remota del bean.
• La interfaz remota de un bean de sesión con estado
extiende a la interfaz javax.ejb.EJBObject.
ResumenResumen
www.cjavaperu.com
38
• La clase bean de un bean de sesión con estado
implementa la interfaz
javax.ejb.SessionBean.
• Un cliente utiliza a JNDI para ubicar un bean de
sesión con estado desplegado.
ResumenResumen
www.cjavaperu.com
¿Preguntas ?¿Preguntas ?
www.cjavaperu.com
40
1. a. EJBException
2. b. getHomeHandle()
3. c. Cero
4. c. narrow()
5. b. getEJBLocalObject()
Soluciones a las Preguntas de EvaluaciónSoluciones a las Preguntas de Evaluación
www.cjavaperu.com
Muchas Gracias

Más contenido relacionado

Destacado

Sesion 01 - Introduccion a Net Framework
Sesion 01 - Introduccion a Net FrameworkSesion 01 - Introduccion a Net Framework
Sesion 01 - Introduccion a Net Frameworkeriveraa
 
Servlets exposicion
Servlets exposicionServlets exposicion
Servlets exposicionFlashnet S.A
 
Jsp(java server pages)
Jsp(java server pages)Jsp(java server pages)
Jsp(java server pages)diegob1098
 
Java lenguaje de desarrollo
Java lenguaje de desarrolloJava lenguaje de desarrollo
Java lenguaje de desarrolloDavid
 
Arquitectura tres capas
Arquitectura tres capasArquitectura tres capas
Arquitectura tres capasJenny Gonzalez
 
Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001Jose Emilio Labra Gayo
 
LENGUAJE DE PROGRAMACION R
LENGUAJE DE PROGRAMACION RLENGUAJE DE PROGRAMACION R
LENGUAJE DE PROGRAMACION RShirley Armas
 
Practica de visual basic sistema de facturación
Practica de visual basic sistema de facturaciónPractica de visual basic sistema de facturación
Practica de visual basic sistema de facturaciónmilenka796
 
Arquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EEArquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EECarlos Gavidia-Calderon
 
SISTEMA DE FACTURACION (Ejemplo desarrollado)
SISTEMA DE FACTURACION (Ejemplo desarrollado)SISTEMA DE FACTURACION (Ejemplo desarrollado)
SISTEMA DE FACTURACION (Ejemplo desarrollado)Darwin Durand
 
Diferentes sistemas de ventas
Diferentes sistemas de ventasDiferentes sistemas de ventas
Diferentes sistemas de ventasnuria229
 
Lenguaje de programacion orientado a la estadística R.
Lenguaje de programacion orientado a la estadística R.Lenguaje de programacion orientado a la estadística R.
Lenguaje de programacion orientado a la estadística R.lola-stefy
 

Destacado (20)

Sesion 01 - Introduccion a Net Framework
Sesion 01 - Introduccion a Net FrameworkSesion 01 - Introduccion a Net Framework
Sesion 01 - Introduccion a Net Framework
 
Servlets exposicion
Servlets exposicionServlets exposicion
Servlets exposicion
 
Jsp(java server pages)
Jsp(java server pages)Jsp(java server pages)
Jsp(java server pages)
 
Curso Java Avanzado 5 Ejb
Curso Java Avanzado   5 EjbCurso Java Avanzado   5 Ejb
Curso Java Avanzado 5 Ejb
 
Lenguaje de Programación Ruby
Lenguaje de Programación RubyLenguaje de Programación Ruby
Lenguaje de Programación Ruby
 
XML
XMLXML
XML
 
Java lenguaje de desarrollo
Java lenguaje de desarrolloJava lenguaje de desarrollo
Java lenguaje de desarrollo
 
Base datos
Base datosBase datos
Base datos
 
Arquitectura tres capas
Arquitectura tres capasArquitectura tres capas
Arquitectura tres capas
 
Exposicion JSF
Exposicion JSFExposicion JSF
Exposicion JSF
 
Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001
 
LENGUAJE DE PROGRAMACION R
LENGUAJE DE PROGRAMACION RLENGUAJE DE PROGRAMACION R
LENGUAJE DE PROGRAMACION R
 
Java script
Java scriptJava script
Java script
 
MVC: La Vista
MVC: La VistaMVC: La Vista
MVC: La Vista
 
Practica de visual basic sistema de facturación
Practica de visual basic sistema de facturaciónPractica de visual basic sistema de facturación
Practica de visual basic sistema de facturación
 
Arquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EEArquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EE
 
SISTEMA DE FACTURACION (Ejemplo desarrollado)
SISTEMA DE FACTURACION (Ejemplo desarrollado)SISTEMA DE FACTURACION (Ejemplo desarrollado)
SISTEMA DE FACTURACION (Ejemplo desarrollado)
 
Diferentes sistemas de ventas
Diferentes sistemas de ventasDiferentes sistemas de ventas
Diferentes sistemas de ventas
 
Lenguaje de programacion orientado a la estadística R.
Lenguaje de programacion orientado a la estadística R.Lenguaje de programacion orientado a la estadística R.
Lenguaje de programacion orientado a la estadística R.
 
Frameworks J2EE
Frameworks J2EEFrameworks J2EE
Frameworks J2EE
 

Último

GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docxAleParedes11
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfMARIAPAULAMAHECHAMOR
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 

Último (20)

GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdf
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 

Sesion05

  • 2. www.cjavaperu.com SESION 07 Desarrollo de EJBs De Sesión con estado
  • 3. www.cjavaperu.com AgendaAgenda En esta lección, usted aprenderá a: Identificar las características de los beans de sesión con estado Crear y desplegar beans de sesión con estado Implementar beans de sesión con estado
  • 4. www.cjavaperu.com 4 1. La invocación del método remove() para eliminar instancias del bean de sesión iniciara la excepción _____________. a. EJBException b. CreateException c. RemoteException d. RemoveException 2. ¿Cuál método de la interfaz EJBHome es invocado por los clientes para gestionar de manera remota a un bean de sesión sin estado? a. getEJBHome() b. getHomeHandle() c. getHandle() d. isIdentical() Preguntas de EvaluaciónPreguntas de Evaluación
  • 5. www.cjavaperu.com 5 3. ¿Cuál es el número de argumentos pasados al método create() para crear una instancia de un bean de sesión sin estado? a. Uno b. Dos c. Tres d. Cero 3. ¿Cuál método de la interfaz PortableRemoteObject es utilizado por los clientes para recuperar la referencia de la interfaz home de un bean de sesión sin estado? a. getHomeHandle() b. getEJBMetaData() c. narrow() d. getEJBHome() Preguntas de EvaluaciónPreguntas de Evaluación
  • 6. www.cjavaperu.com 6 5. ¿Cuál método es utilizado por el método setSessionContext() definido en la interfaz SessionContext para obtener la interfaz local de un bean de sesión? a. getEJBHome() b. getEJBLocalObject() c. getEJBObject() d. getEJBLocalHome() Preguntas de EvaluaciónPreguntas de Evaluación
  • 7. www.cjavaperu.com 7 • En una aplicación, un bean de sesión con estado guarda el estado de un cliente. • Un cliente inicia una conversación con un bean de sesión con estado cuando éste invoca al método del bean en un objeto EJB. • Cuando la conversación termina, el estado conversacional es preservado y se almacenan los datos específicos del cliente relacionados con la conversación entre el cliente y el bean. • Cuando el cliente llama a otro método en el bean de sesión con estado, el cliente puede requerir conocer el estado conversacional de la llamada de método anterior. Un bean de sesión con estado retiene el estado conversacional para clientes individuales a través de las llamadas de método. Información General de los Beans de Sesión Con EstadoInformación General de los Beans de Sesión Con Estado
  • 8. www.cjavaperu.com 8 Ciclo de Vida de los Beans de sesión con estado • Contenedor EJB: • Controla el ciclo de vida de un bean de sesión con estado. • Asigna una instancia del bean de sesión con estado para dar servicio a un solo cliente a la vez. Como resultado, hay las mismas instancias de bean de sesión con estado en el grupo que el número de clientes. • No puede destruir de manera aleatoria la instancia de un bean de sesión con estado ya que ésta almacena el estado del cliente. • Se asegura de que el estado del cliente almacenado en las variables de la instancia de un bean no es requerido en el procesamiento de la aplicación, antes de destruir una instancia del bean de sesión con estado,. Información General de los Beans de Sesión Con EstadoInformación General de los Beans de Sesión Con Estado
  • 9. www.cjavaperu.com 9 Las etapas del ciclo de vida de un bean de sesión con estado son: • Listo: En esta etapa, la instancia de un bean de sesión con estado permanece en el grupo compartido y da servicio a las solicitudes del cliente. • Pasiva: En esta etapa, el contenedor EJB almacena el estado del cliente en un almacén secundario y elimina la instancia del bean de la memoria. • No Existe: En esta etapa, se elimina permanentemente a un bean de sesión con estado del grupo compartido. Información General de los Beans de Sesión Con EstadoInformación General de los Beans de Sesión Con Estado
  • 10. www.cjavaperu.com 10 Las etapas del ciclo de vida de un bean de sesiónLas etapas del ciclo de vida de un bean de sesión Información General de los Beans de Sesión Con Estado
  • 11. www.cjavaperu.com 11 •La Etapa Listo • Al inicio de su ciclo de vida, un bean de sesión con estado está en la etapa Listo. • La instancia del bean de sesión con estado entra a la etapa Listo en los siguientes casos: • Cuando el contenedor EJB crea una nueva instancia del bean de sesión con estado. • Cuando el contenedor EJB activa un bean de sesión con estado que está pasivo. • El contenedor EJB crea nuevas instancias de un bean de sesión con estado cuando no hay suficientes instancias del bean de sesión con estado en el grupo compartido para dar servicio a las solicitudes de los clientes. Información General de los Beans de Sesión Con EstadoInformación General de los Beans de Sesión Con Estado
  • 12. www.cjavaperu.com 12 • Para crear una nueva instancia del bean de sesión con estado, el contenedor EJB realiza los siguientes pasos: • El contenedor EJB invoca a: 1. El método newInstance(), el cual crea una nueva instancia del bean de sesión con estado. 2. El método setEntityContext() para asociar la instancia del bean de sesión con estado con el contexto del bean. 3. El método ejbCreate() de la clase bean de sesión con estado. Usted puede pasar argumentos al método ejbCreate() para inicializar una nueva instancia del bean de sesión con estado. Un bean de sesión con estado puede tener más de un método ejbCreate(), donde cada método tiene un número y tipo de argumentos diferentes. Información General de los Beans de Sesión Con EstadoInformación General de los Beans de Sesión Con Estado
  • 13. www.cjavaperu.com 13 •Una instancia del bean de sesión con estado también puede pasar a la etapa Listo cuando el contenedor EJB activa a un bean de sesión con estado en estado pasivo invocando al método ejbActivate(). •El método ejbActivate() transfiere el estado del cliente de un bean de sesión con estado en estado pasivo a las variables de la instancia del bean de sesión con estado. •El contenedor EJB llama al método ejbActivate() para permitirle al bean adquirir los recursos liberados por éste durante su estado pasivo. Información General de los Beans de Sesión Con EstadoInformación General de los Beans de Sesión Con Estado
  • 14. www.cjavaperu.com 14 La Etapa Pasiva • Un bean de sesión con estado entra a la etapa Pasiva en su ciclo de vida cuando el contenedor EJB lo libera de dar servicio a un cliente inactivo y devuelve el bean de sesión con estado al grupo compartido para dar servicio a las solicitudes de otro cliente. • Antes de volverlo pasivo, el contenedor EJB guarda el estado del cliente asociado con la instancia del bean de sesión con estado en un mecanismo secundario de almacenamiento, como un disco duro en el servidor. • El contenedor EJB llama al método ejbPassivate() antes de volver pasivo a un bean de sesión. Esto permite al bean de sesión liberar sus recursos. Información General de los Beans de Sesión Con EstadoInformación General de los Beans de Sesión Con Estado
  • 15. www.cjavaperu.com 15 Etapa No Existe •Al término de su ciclo de vida, la instancia del bean de sesión con estado entra en la etapa No Existe. •Una instancia del bean de sesión con estado entra en esta etapa en los siguientes casos: • Cuando el contenedor EJB invoca al método ejbRemove(). • Cuando la desconexión por tiempo del ciclo de vida de la instancia del bean especificada por el desarrollador del bean expira. Información General de los Beans de Sesión Con EstadoInformación General de los Beans de Sesión Con Estado
  • 16. www.cjavaperu.com 16 •El contenedor EJB destruye a las instancias del bean de sesión con estado cuando el número de instancias es mayor al número de solicitudes de clientes activos. •El contenedor EJB no invoca al método ejbRemove() en los siguientes casos: • Cuando ocurre una falla en el contenedor EJB. • Cuando la ejecución de un método del bean de sesión con estado inicia una excepción del sistema. Información General de los Beans de Sesión Con EstadoInformación General de los Beans de Sesión Con Estado
  • 17. www.cjavaperu.com 17 Activación y Pasivación de los Beans de Sesión con Estado •El contenedor EJB pasiva y activa las instancias del bean de sesión con estado en el grupo compartido para reducir el gasto de almacenamiento de un gran número de instancias del bean. •El contenedor EJB almacena el estado del bean de una instancia inactiva del bean en un mecanismo secundario de almacenamiento. Este proceso es denominado pasivación . •Cuando el cliente de un bean pasivo llama a otro método del bean, se restaura el estado del bean. Este proceso es denominado activación. Información General de los Beans de Sesión Con EstadoInformación General de los Beans de Sesión Con Estado
  • 18. www.cjavaperu.com 18 La pasivación del bean de sesión con estadoLa pasivación del bean de sesión con estado Información General de los Beans de Sesión Con Estado
  • 19. www.cjavaperu.com 19 Los beans de sesión con estado preservan las referencias de las siguientes interfaces, además de la información específica del cliente durante la pasivación del bean: • javax.ejb.EJBHome • javax.ejb.EJBObject • javax.jta.UserTransaction • javax.naming.Context • javax.ejb.EJBLocalHome • javax.ejb.EJBLocalObject Información General de los Beans de Sesión Con EstadoInformación General de los Beans de Sesión Con Estado
  • 20. www.cjavaperu.com 20 •Los distintos algoritmos utilizados para implementar la pasivación son: • El Menos Utilizado Recientemente (LRU): Selecciona la instancia del bean de sesión con estado, la cual ha estado inactiva por más tiempo. Esto se conoce como pasivación impaciente. • No Utilizado Recientemente (NRU): Selecciona la instancia del bean de sesión con estado, la cual ha estado recientemente inactiva. • Primero Dentro Primero Fuera (FIFO): Selecciona la instancia del bean de sesión con estado, la cual entró primero al grupo y está inactiva. Este también se conoce como pasivación floja. •La mayoría de los servidores EJB utilizan el algoritmo justo a tiempo, de acuerdo con este algoritmo, un bean pasivo es activado cuando un cliente decide continuar la interacción con la instancia del bean. Información General de los Beans de Sesión Con EstadoInformación General de los Beans de Sesión Con Estado
  • 21. www.cjavaperu.com 21 Activación de un bean de sesión con estado Información General de los Beans de Sesión Con Estado
  • 22. www.cjavaperu.com 22 • Usted necesita desarrollar las interfaces del bean y la clase bean para crear un bean de sesión con estado. • Después de crear los archivos, usted necesita compilarlos para generar los archivos de clase. • Empaquete los archivos compilados en un solo archivo Java Archive (JAR). Este archivo JAR se empaqueta después en un archivo EAR de la aplicación J2EE y se despliega en el Servidor de Aplicaciones J2EE. • Después de desplegar el bean de sesión con estado, usted puede acceder a él utilizando clientes Web o de Aplicación. Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
  • 23. www.cjavaperu.com 23 Utilizando Archivos Java para Crear un Bean de Sesión Con Estado •Usted necesita definir tres archivos de clase Java para crear un bean de sesión con estado. • Interfaz home del bean de sesión con estado: Define los métodos para crear y eliminar las instancias del bean de sesión con estado. • Interfaz remota del bean de sesión con estado: Define los métodos empresariales que pueden llamar los clientes. Estos métodos se implementan el la clase del bean de sesión con estado. • Clase del bean de sesión con estado: Implementa los métodos del ciclo de vida del bean de sesión con estado y los métodos empresariales declarados en la interfaz remota del bean de sesión con estado. Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
  • 24. www.cjavaperu.com 24 •Creando la Interfaz Home del Bean de Sesión Con Estado • Los clientes utilizan una implementación de la interfaz home del bean de sesión con estado para crear una instancia del bean de sesión con estado. • La interfaz home del bean de sesión con estado extiende a la interfaz javax.ejb.EJBHome. • Los clientes utilizan los métodos definidos en la interfaz javax.ejb.EJBHome para administrar una instancia de un bean de sesión con estado. • La interfaz home del bean de sesión con estado define al método create() para crear nuevas instancias del bean de sesión con estado. Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
  • 25. www.cjavaperu.com 25 • Puede haber varios métodos create() en la interfaz home del bean de sesión con estado, pero la firma de cada método create() debe ser diferente. • El tipo de devolución del método create() es una referencia de la implementación de la interfaz remota del bean de sesión con estado. • En la interfaz home del bean de sesión con estado, la cláusula throws del método create() incluye a las excepciones, javax.ejb.CreateException y javax.ejb.RemoteException. Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
  • 26. www.cjavaperu.com 26 Creando la Interfaz Remota del Bean de Sesión Con Estado • Los clientes remotos acceden a los métodos empresariales del bean de sesión con estado utilizando los métodos definidos en la interfaz remota del bean de sesión con estado. • La interfaz remota del bean de sesión con estado extiende a la interfaz javax.ejb.EJBObject. • La interfaz remota del bean de sesión con estado define los métodos empresariales implementados en la clase del bean de sesión con estado. • La firma de los métodos empresariales debe ser la misma que la de los métodos empresariales implementados en la clase del bean de sesión con estado. • Todos los métodos empresariales deben iniciar la excepción javax.ejb.RemoteException. Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
  • 27. www.cjavaperu.com 27 Creando la Clase del Bean de Sesión Con Estado • La clase del bean de sesión con estado implementa el ciclo de vida y los métodos empresariales de la aplicación del bean de sesión con estado. • La clase del bean de sesión con estado implementa la interfaz javax.ejb.SessionBean, la cual define los métodos invocados por el contenedor EJB para gestionar el ciclo de vida de una instancia del bean de sesión con estado. • La clase de un bean de sesión con estado declara las variables de la instancia para guardar el estado del cliente. La clase del bean de sesión con estado se declara como pública. Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
  • 28. www.cjavaperu.com 28 Compilando y Desplegando un Bean de Sesión Con Estado • Después de crear los archivos Java para un bean de sesión con estado, compile todos los archivos Java utilizando el compilador javac. • El comando que se utiliza para compilar los archivos Java es javac <file_name>. • Los archivos de clase Java compilados desde la aplicación del bean de sesión con estado se despliegan en el Servidor de Aplicaciones J2EE1.4 utilizando la herramienta deploytool. • El Asistente para el nuevo Enterprise Bean de la herramienta deploytool despliega a un bean de sesión con estado . • La herramienta deploytool empaqueta los archivos de clase Java compilados en un archivo JAR antes de desplegar el bean . • La herramienta deploytool genera automáticamente el descriptor de despliegue del bean de sesión con estado. Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
  • 29. www.cjavaperu.com 29 Accediendo a un Bean de Sesión Con Estado • Un cliente accede a los métodos empresariales de un bean de sesión con estado utilizando las referencias de las interfaces home y remota del bean. • Ambos, el cliente Web y el cliente de Aplicación, pueden acceder a un bean de sesión con estado. Un cliente realiza los siguientes pasos para acceder a un bean de sesión con estado: 1. Ubica al bean de sesión con estado desplegado en el Servidor de Aplicaciones J2EE 1.4. 2. Recupera las referencias de las interfaces home y remota del bean de sesión con estado. Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
  • 30. www.cjavaperu.com 30 Ubicando a un Bean de Sesión Con Estado • Un cliente ubica a un bean de sesión con estado en el Servidor de Aplicaciones J2EE 1.4 utilizando la Interfaz del Directorio de Nombres de Java (JNDI). • Para ubicar a un bean de sesión con estado, un cliente debe: • crear un contexto inicial de nombre utilizando la interfaz InitialContext de JNDI. • ubicar el bean de sesión con estado desplegado después de crear un contexto inicial utilizando el método lookup(). El método lookup() devuelve la referencia de la interfaz home del bean de sesión con estado. Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
  • 31. www.cjavaperu.com 31 Recuperando las Referencias de las Interfaces del Bean de Sesión Con Estado •Un cliente: • Debe recuperar las referencias de las interfaces home y remota de un bean de sesión con estado después de ubicar al bean de sesión con estado. • Puede utilizar la referencia de la interfaz remota del bean de sesión con estado para invocar a los métodos empresariales de un bean. • utiliza el método narrow() de la interfaz PortableRemoteObject para recuperar la referencia de la interfaz home de un bean de sesión con estado. Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
  • 32. www.cjavaperu.com 32 • Un cliente local debe utilizar el método lookup() de la interfaz InitialContext para recuperar una referencia de la interfaz home local de un bean de sesión con estado. • Un cliente recupera una referencia de la interfaz remota o local del bean de sesión con estado llamando al método create() en la interfaz home del bean de sesión con estado. Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
  • 33. www.cjavaperu.com 33 Las Responsabilidades del Proveedor del Bean de Sesión y el Proveedor del Contenedor EJB son: • Las Responsabilidades del Proveedor del Bean de Sesión son: • Crear la interfaz home remota del bean de sesión con estado. • Crear la interfaz local remota del bean de sesión con estado. • Crear la interfaz remota del bean de sesión con estado. • Crear la clase del bean de sesión con estado. • Cerrar todas las conexiones de la base de datos en el método ejbPassivate() del bean de sesión con estado y asignar valores nulos a las variables de instancia de conexión. Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
  • 34. www.cjavaperu.com 34 Las responsabilidades del proveedor del contenedor EJB son: • Proveer la herramienta de despliegue para desplegar beans de sesión. • Gestionar el ciclo de vida de una instancia del bean de sesión. • Garantizar que una instancia del bean de sesión dé servicio a la solicitud de un sólo cliente a la vez. El contenedor EJB inicia la javax.ejb.RemoteException o la javax.ejb.EJBException cuando un cliente intenta acceder a la instancia del bean de sesión cuando esta está dando servicio a la solicitud de otro cliente. • Manejar las excepciones del tiempo de ejecución iniciadas por las instancias de un bean de sesión Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
  • 35. www.cjavaperu.com 35 • Implementar el método SessionContext.getEJBObject() para recuperar una referencia de la interfaz remota del bean de sesión. • Serializar el estado del cliente de una instancia del bean de sesión con estado después de invocar al método ejbPassivate(). • Eliminar la instancia de un bean de sesión con estado si la instancia del bean no se adhiere a los requerimientos de serialización. • Guardar y restaurar el estado del cliente durante la pasivación y activación de la instancia del bean de sesión con estado. Creando Beans de Sesión Con EstadoCreando Beans de Sesión Con Estado
  • 36. www.cjavaperu.com 36 En esta lección, usted aprendió: • Un bean de sesión con estado preserva el estado del cliente a través de la invocación de métodos y la transacción. • El ciclo de vida de un bean de sesión con estado consiste de tres etapas, Listo, Pasiva y No Existe. • El contenedor EJB invoca al método ejbCreate() para inicializar una nueva instancia del bean de sesión con estado. • El contenedor EJB pasiva y activa las instancias de un bean de sesión con estado para reducir el gasto de mantener un gran número de instancias del bean en el grupo compartido. • El contenedor EJB utiliza los algoritmos LRU, NRU y FIFO para seleccionar la instancia del bean de sesión con estado que será pasivada. • El algoritmo justo a tiempo se utiliza para activar un bean de sesión con estado pasivo. ResumenResumen
  • 37. www.cjavaperu.com 37 • Para crear un bean de sesión con estado para clientes remotos, usted necesita crear los siguientes archivos Java: • Interfaz home del bean de sesión con estado • Interfaz remota del bean de sesión con estado • Clase del bean de sesión con estado • La interfaz home de un bean de sesión con estado extiende a la interfaz javax.ejb.EJBHome. • El método create() de la interfaz home de un bean de sesión con estado se utiliza para obtener una referencia al objeto que implementa la interfaz remota del bean. • La interfaz remota de un bean de sesión con estado extiende a la interfaz javax.ejb.EJBObject. ResumenResumen
  • 38. www.cjavaperu.com 38 • La clase bean de un bean de sesión con estado implementa la interfaz javax.ejb.SessionBean. • Un cliente utiliza a JNDI para ubicar un bean de sesión con estado desplegado. ResumenResumen
  • 40. www.cjavaperu.com 40 1. a. EJBException 2. b. getHomeHandle() 3. c. Cero 4. c. narrow() 5. b. getEJBLocalObject() Soluciones a las Preguntas de EvaluaciónSoluciones a las Preguntas de Evaluación

Notas del editor

  1. Escriba sus preguntas. Mencione a su asesor todas las dudas para que sean absueltas.