EJBs de Sesión
lógica
Enterprise Java Beans (EJB)
Arquitectura en capas
API
API
dic-08
2
Capa lógica de negocio
Ofrece un interfaz de servicios
En JEE es una interfaz java
Cada servicio (método) puede resolver
un caso de uso o parte
Los servicios pueden ser:
Sin estado: cada llamada es independiente
de las demás; el cliente puede invocar en
cualquier orden
Con estado: existenoción de sesión, una
llamada estará condicionada por las
anteriores
dic-08
3
Interfaz de servicio: ejemplo
dic-08
4
Capa de lógica:
implementación
Modelo de dominio:
Núcleo de la
aplicación
Clases que representan conceptos del
problema que se trata de resolver
Todos los procesos identificados
durante al análisis operan sobre
instancias de estas clases
Clases de proceso:
Implementanprocesos lógicos que se
ejecutan sobre las clases del dominio
dic-08
5
dic-08
6
Modelo de dominio:
ejemplo
Capa de lógica:
implementación
En esta capa no se debería meter
ninguna dependencia de tecnología
de infraestructura
Debería poderse ejecutar fuera de
cualquier entorno (para testear)
La persistencia suele ser la principal
dependencia. La capa DAO la evita
dic-08
7
Solución en capasService
Interface
Control
Action
Action
Action
Action
Presentac.
dic-08
Persistence
Interface
Fa
ca
de
Fa
ca
de
Hibernate DAO
Procs
Procs
Procs
Model
Model
Model
Procs
Lógica
JDBC
D
JDBC DAO
A
O JPA DAO
Spring DAO
D
F
DAO
Factory
Persistencia
8
Posibles requisitos no funcionales
de la capa lógica
dic-08
Persistencia automática POJO
Acceso remoto (remoting) o local
Transacciones localeso distribuidas
Control de acceso (seguridad) por
aplicación o por método
Soporte MOM (Message Oriented Mid)
Integración con servidores de otras
tecnologías (legacy)
Escalabilidad, vertical y horizontal
9
Conexiones remotas
Requisitos no
funcionales:
acceso remoto
dic-08
Acceso
local
10
RNF:
Transacciones
distribuidas
Se actualizan
dos BDD
dic-08
11
Requisitos no funcionales:Integración MOM
☛
☛
☛
☛
Pueden tener cola para
soportar caídas del
sistema receptor
☛
Channel
☛
☛
dic-08
12
Requisitos no funcionales:
escalabilidad
Balanceo de carga
Fail over transparente
Clustering
Redeploy dinámico
Gestión de servidores
Control de Concurrencia
Cacheado
Pool de recursos…
dic-08
13
Resolución de requisitos no
funcionales
Persistencia POJO
automática
Acceso remoto
EJB
SI
SITransacciones distribuidas
Control de acceso
SI
SI
Soporte MOM
Integración con servidores
SI
SI
Escalabilidad
SI
dic-08
Otras tecnologías Java
JDBC, Hibernate, TopLink, iBatis,
SpringDAO
Web Services como capa de
presentación, programando RMI
Programando API JTA
A nivel de Aplicación, o por programa,
o con AOP
Programando API JMS
Programando API JCA o con
frameworks que lo soportenCondicionando la programación,
servidores de cache 2 nivel, etc. 14
Elección de la plataforma
Sí, se puede hacer una aplicación
con todos los requisitos sin usar
EJBs…
… pero si se necesitan más de uno de
los vistos es una invitación muy clara a
usar EJB
El servidor de aplicaciones
(contenedor de EJB) nos los da
resueltos
dic-08
15
¿Qué es la especificación EJB?
Una arquitectura de componentes deservidor:
Simplifica el proceso de construcción de
aplicaciones distribuidas
Es posible escribir aplicaciones escalables,
fiables y seguras sin escribir código de
infraestructura
Desarrollo más rápido de la parte servidora
Aplicaciones portables entre distintas
plataformas (Java) y servidores de
aplicaciones (especificación estándar)
dic-08
16
Sí pero… ¿qué es un EJB?
En EJB 3.0 es una clasejava normal
(POJO) con anotaciones
específicas…
… que se ejecuta dentro de un
contenedor…
… que le da un contexto y le
resuelve los servicios de
infraestructura de forma
transparente
dic-08
17
Clase java normal (POJO) con
annotations
Interfaz que ve la
capa de presentación
dic-08
18
Anotaciones EJB
@Stateless
@Statefull
@Local
@Remote
@WebService
@Entity
@Embeddable
….
En EJB 3.0 se...
Regístrate para leer el documento completo.