PDF de programación - Java EE - Enterprise Beans (EJB)

Imágen de pdf Java EE - Enterprise Beans (EJB)

Java EE - Enterprise Beans (EJB)gráfica de visualizaciones

Actualizado el 25 de Diciembre del 2018 (Publicado el 22 de Diciembre del 2018)
378 visualizaciones desde el 22 de Diciembre del 2018
104,9 KB
14 paginas
Creado hace 6a (27/05/2013)
Java EE – Enterprise Beans (EJB)

Aplicaciones Web/Sistemas Web

Juan Pavón Mestras
Dep. Ingeniería del Software e Inteligencia Artificial
Facultad de Informática
Universidad Complutense Madrid

Material bajo licencia Creative Commons, Juan Pavón 2013

Enterprise Beans

 Componentes Java que implementan la tecnología Enterprise

Java Beans (EJB)
 Se ejecutan en un contenedor EJB (en un servidor de aplicaciones)
 Implementan la lógica de negocio de la aplicación
 Son reusables
 Se pueden adaptar y configurar en el despliegue

 El contenedor de EJB proporciona varios servicios

 Ciclo de vida de los EJB
 Gestión de la persistencia
 Servicio de nombres
 Mensajería asíncrona
 Seguridad de acceso
 Gestión de transacciones
 Balanceo de carga

Juan Pavón - UCM 2012-13

Enterprise Beans

2

Arquitectura EJB

Cliente
Cliente
Cliente

Enterprise

Bean

Enterprise

Bean

Enterprise

Bean

Contenedor EJB

Servidor EJB

Juan Pavón - UCM 2012-13

Enterprise Beans

Servidor EJB

 Entorno de ejecución

 Gestión de procesos y threads
 Gestión de recursos del sistema
 Conexión a bases de datos
 API de gestión

Juan Pavón - UCM 2012-13

Enterprise Beans

3

4

Contenedor de EJB

 Entorno de ejecución de los EJBs

javax.ejb.EJBHome, javax.ejb.EJBObject
javax.ejb.SessionBean

d
a
d
i
r
u
g
e
s

,
s
e
n
o
i
c
c
a
s
n
a
r
T

SessionBean1

Descriptor de
despliegue

MessageBean

Descriptor de
despliegue

SessionBean2

Descriptor de
despliegue

Acceso a servicios remotos

Juan Pavón - UCM 2012-13

Enterprise Beans

i

C
i
c
l
o

d
e

v
d
a
,

r
e
c
u
r
s
o
s
,


g
e
s
t
i
ó
n

d
e
l

e
s
p
a
c
i
o

d
e

n
o
m
b
r
e
s

J
N
D
I

p
e
r
s
i
s
t
e
n
c
i
a
,

Clientes EJB

 Pueden ser servlets o aplicaciones
 El contenedor de EJBs puede controlar el acceso de los clientes
 Para localizar los EJBs los clientes usan el Java Naming and

Directory Interface (JNDI)

 El acceso a los EJBs se puede hacer remótamente con Java RMI

(Remote Method Invocation)

Juan Pavón - UCM 2012-13

Enterprise Beans

5

6

Enterprise Beans

 Implementan la lógica de negocio
 Tipos (EJB 3.1)

 Enterprise Bean de Sesión

• Gestionan la lógica de negocio para un cliente
• Tipos

• Stateless Session Beans: no mantienen estado entre invocaciones
• Stateful Session Beans: guardan estado entre invocaciones de un mismo

cliente

• Singletons: una sola instancia que es compartida por muchos clientes

 Enterprise Bean dirigido por Mensajes

• Oyente (listener) para un mensaje particular (generalmente a través

del API Java Message Service)

• No mantiene estado entre invocaciones

 Entity Bean

• Representaciones de datos almacenados en una BD
• Recientemente se recomienda usar Java Persistence API (JPA)

Juan Pavón - UCM 2012-13

Enterprise Beans

Enterprise Beans

 Gran parte de la funcionalidad la gestiona el contenedor
 En ejecución, el contenedor intercepta todas las llamadas al EJB

 Ejecuta código relacionado con la política de multi-threading,

transacciones, y seguridad

 Llamará al método correspondiente
 Realiza las tareas de limpieza correspondientes tras la llamada

 Se define mediante declaraciones

 En el desarrollo: anotaciones en el código
 En descriptores de despliegue

Juan Pavón - UCM 2012-13

Enterprise Beans

7

8

Enterprise Beans

 Persistencia

 El almacenamiento de los datos de los beans

• Los puede gestionar el servidor: Container-Managed Persistence
• O el propio bean: Bean-Managed Persistence

 Transacciones distribuidas

 El servidor gestionará todas las transacciones
 Se puede gestionar también directamente (hay que tener las ideas

claras)

 Seguridad

 Transmisión de datos por SSL/RMI
 Autenticación de cliente y servidor con SSL
 Controlo de acceso a objetos, métodos y servicios con ACLs (listas de

control de acceso)

 Multithreading

 Las políticas de multithreading a aplicar se declaran y el servidor se

encarga de ejecutarlas

 El programador no tiene que ocuparse de este aspecto

Juan Pavón - UCM 2012-13

Enterprise Beans

9

Interfaces

 Inicialmente los EJBs tenían que implementar varias interfaces

 Desde la especificación 3.0 pueden ser objetos POJO pero con

anotaciones
Interfaz Home
 Extiende la interfaz javax.ejb.EJBHome


Interfaz remota para crear, encontrar y eliminar beans

Interfaz Remote
 Extiende la interfaz javax.ejb.EJBObject


Interfaz remota que define los métodos concretos que implementará el bean





 Clase Bean

 Extiende la clase javax.ejb.EnterpriseBean


Implementa la lógica de negocio

Juan Pavón - UCM 2012-13

Enterprise Beans

10

Funcionamiento

Naming Service

Cliente

RMI

RMI

Escrito por el programador
Implements
Invoca
Crea/Usa

Servidor

Home Interface

(Factory)

Contenedor

Remote
Interface

EJB Object
(Wrapper)

Enterprise
Java Bean
(Biz Logic)

Adaptado de jGuru (2000): Enterprise JavaBeans Fundamentals

Juan Pavón - UCM 2012-13

Enterprise Beans

11

Programación de EJB

 Interfaz Remote

 Extiende la interfaz javax.ejb.EJBObject
 Interfaz remota que define los métodos concretos que implementará el

bean

import javax.ejb.EJBObject;
import java.rmi.RemoteException;

public interface Cliente extends EJBObject {

public Name getNombre() throws RemoteException;
public void setNombre(String nombre) throws RemoteException;
public Address getEmail() throws RemoteException;
public void setEmail(String email) throws RemoteException;

}

Juan Pavón - UCM 2012-13

Enterprise Beans

12

Programación de EJB

 Interfaz Home

 Extiende la interfaz javax.ejb.EJBHome
 Interfaz remota para crear, encontrar y eliminar beans
 Se genera automáticamente la clase que la implementa

import javax.ejb.EJBHome;
import javax.ejb.CreateException;
import javax.ejb.FinderException;
import java.rmi.RemoteException;

public interface ClienteHome extends EJBHome {

public Cliente create(Integer idCliente)

throws RemoteException, CreateException;

public Cliente findByPrimaryKey(Integer idCliente) 

throws RemoteException, FinderException;

public Enumeration findByNombre(String nombre) 

throws RemoteException, FinderException;

}

Juan Pavón - UCM 2012-13

Enterprise Beans

13

Programación de EJB

 Clase Bean

 Extiende la interfaz javax.ejb.EJBHome
 Interfaz remota para crear, encontrar y eliminar beans

import javax.ejb.EntityBean;

public class ClienteBean implements EntityBean {

String nombre;
String email;
public String getNombre() {

return nombre;

}
public void setNombre (String nombre) {

this.nombre = nombre;

}
public Address getEmail() {

return email;

}
public void setEmail(String email) {

this.email = email;

}

Juan Pavón - UCM 2012-13

}

Enterprise Beans

14

Entorno de trabajo

 Para desarrollar, Eclipse o Netbeans

 Como servidor de aplicaciones que tenga contenedor de EJBs

 JBoss: http://www.jboss.org

• Hay una versión para desarrolladores: JBoss Developer Studio (Eclipse

+ JBoss Tools)

 Glassfish: https://glassfish.java.net/es/

 Una comparativa interesante:

http://antoniogoncalves.org/2011/10/20/o-java-ee-6-application-servers-where-art-thou/

 Bases de datos

 Apache Derby: http://db.apache.org/derby/
 H2: http://www.h2database.com

Juan Pavón - UCM 2012-13

Enterprise Beans

15

Primera aplicación EJB con Eclipse y JBoss

 Una posibilidad es instalar JBoss Developer Studio

 Otra es configurar Eclipse para trabajar con JBoss Tools

 Help  Eclipse Marketplace
 Buscar: JBoss
 Seleccionar JBoss Tools para la versión de eclipse actual (Juno)

• Se pueden seleccionar únicamente Java Development Tools y JBoss

AS Tools

• Otros plugins se podrán instalar posteriormente si fueran necesarios

 Al acabar, reinicializar eclipse

 Como BD se puede instalar Derby, muy eficiente y escrita en Java

 Instalar los plugins Derby 10 Core Plug-in y Derby 1.0 UI

• Descargarlos de http://db.apache.org/derby/derby_downloads.html
• Y descomprimirlos en la carpeta de instalación de eclipse

 Alternativa: Eclipse Data Tools Platform

http://www.vogella.com/articles/EclipseDataToolsPlatform/article.html

Juan Pavón - UCM 2012-13

Enterprise Beans

16

Primera aplicación EJB con Eclipse y JBoss

 Instalar JBoss

 http://sourceforge.net/projects/jboss/files/JBoss/JBoss-6.0.0.Final/

jboss-as-distribution-6.0.0.Final.zip/download

 Añadir el servidor JBoss en eclipse

 En Servers o File  New  Other  Server  Server
 Añadir el JBoss AS 6.x

• Indicar el directorio donde se ha descomprimido el JBoss
• Para arrancar el servidor, seleccionarlo y con el menú contextual

elegir Start

 Crear un nuevo proyecto EJB

 New  EJB Project

• Indicar que se usará el servidor JBoss en Target Runtime

 Crear una clase Java que será el primer EJB

 Crear un paquete (es.ucm.jpavon.ejb)
 En ejbModule crear el primer EJB con New  Session Bean (EJB 3.x)

Juan Pavón - UCM 2012-13

Enterprise Beans

17

Primera aplicación EJB con Eclipse y JBoss

package es.ucm.jpavon.ejb;
import javax.ejb.Remote;
import javax.ejb.Stateless;

Indica que el POJO es un
Bean stateless para que el
contenedor lo trate como
un EJB

@Remote
@Stateless
public class PrimerBean implements PrimerBeanRemote {

public String saluda(String nombre) {

return "Hola " + nombre;

Al haber declarado @Remote
eclipse añade la interfaz



}

Se genera al
haber declarado
la clase como
Remote

package es.ucm.jpavon.ejb;

import javax.ejb.Remote;

@Remote
public interface PrimerBeanRemote {

public String saluda(String nombre);

}

Hay que declarar los
métodos que vaya a
ofrecer el Bean

Juan Pavón - UCM 2012-13

Enterprise Beans

18

Primera aplicación EJB – Cliente

 El cliente puede ser otra aplicación
 Crear en eclipse un nuevo proyecto Java
 Para que pueda usar la configuración del proyecto anterior (y

acceder a las librerías correspondientes de EJB)
 En el proyecto, seleccionar Build Path  Configure Build Path
 Pestaña Projects, botón Add, seleccionar el anterior

 Crear la clase del programa cliente
 Ejecutar como una ap
  • Links de descarga
http://lwp-l.com/pdf14644

Comentarios de: Java EE - Enterprise Beans (EJB) (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad