Professional Documents
Culture Documents
Arquitectura en capas
API
API
dic-08
Cada servicio (mtodo) puede resolver un caso de uso o parte Los servicios pueden ser:
Sin estado: cada llamada es independiente de las dems; el cliente puede invocar en cualquier orden Con estado: existe nocin de sesin, una llamada estar condicionada por las anteriores
dic-08
dic-08
Clases que representan conceptos del problema que se trata de resolver Todos los procesos identificados durante al anlisis operan sobre instancias de estas clases
Clases de proceso:
Implementan procesos lgicos que se ejecutan sobre las clases del dominio
dic-08 5
dic-08
dic-08
Solucin en capas
Service Interface Control Action Action Action Action Fa ca de Fa ca de Persistence Interface Hibernate DAO Model Model Model D JDBC DAO A O JPA DAO Spring DAO D F
JDBC
Presentac.
dic-08
Lgica
dic-08
Conexiones remotas
Acceso local
dic-08
10
dic-08 12
EJB SI SI SI SI SI SI SI
Otras tecnologas Java JDBC, Hibernate, TopLink, iBatis, SpringDAO Web Services como capa de presentacin, programando RMI Programando API JTA A nivel de Aplicacin, o por programa, o con AOP Programando API JMS Programando API JCA o con frameworks que lo soporten Condicionando la programacin, servidores de cache 2 nivel, etc. 14
Eleccin de la plataforma
S, se puede hacer una aplicacin con todos los requisitos sin usar EJBs
pero si se necesitan ms de uno de los vistos es una invitacin muy clara a usar EJB
Qu es la especificacin EJB?
Una arquitectura de componentes de servidor:
Simplifica el proceso de construccin de aplicaciones distribuidas Es posible escribir aplicaciones escalables, fiables y seguras sin escribir cdigo de infraestructura Desarrollo ms rpido de la parte servidora
Aplicaciones portables entre distintas plataformas (Java) y servidores de aplicaciones (especificacin estndar)
dic-08 16
S pero qu es un EJB?
En EJB 3.0 es una clase java normal (POJO) con anotaciones especficas 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
dic-08
18
Anotaciones EJB
En EJB 3.0 se reducen considerablemente las tareas que el desarrollador del bean debe realizar EJB 3.0 todos los beans son POJOs con anotaciones EJB. Mediante anotaciones:
Se declara el interfaz del bean El mapeo O/R Referencias a recursos Cualquier cosa que antes ponamos en los descriptores
El descriptor no es obligatorio
dic-08 19
Interceptando las llamadas y tomando el control Algo as como el stack de interceptores de Struts2
dic-08 21
dic-08
22
Tipos de EJBs
Session Beans:
Modelan procesos de negocio accedidos de manera sncrona Implementacin del patrn Faade
Message-driven Beans:
Modelan procesos de negocio accedidos de manera asncrona, permiten el uso de JMS desde EJBs
Entity Beans:
Representan entidades de negocio con mapeo objeto/relacional En EJB 3.0 ya no se usan, pasan a ser POJOs
Pero un contenedor EJB3.0 debe gestionar Entity Beans (compatibilidad hacia atrs)
dic-08 23
Versiones de la especificacin
EJB 1.0
Session Beans y Message Beans
EJB 1.1
Aade Entity Beans Registro JNDI Descriptor de despliegue XML
EJB 2.0
Define mejor, permite interoperabildad de herramientas Compatible CORBA, RMI-IIOP
EJB 2.1
WebServices Timer Service
EJB 3.0
dic-08
Simplifica desarrollo, uso de POJOS y annotations Persitencia de POJOS, evita uso de EntityBeans
24
dic-08
25
dic-08
27
Es un fichero XML: ejb-jar.xml Habr uno por paquete de despliegue (fichero jar) y puede declarar varios EJBs de distintos tipos.
dic-08 28
dic-08
29
Normalmente, los servidores de aplicaciones facilitan herramientas para realizar el despliegue y confeccionar los descriptores.
dic-08 30
dic-08
31
dic-08
32
applicaction.xml: ejemplo
dic-08
33
Session Beans
Sesin Beans
Implementacin del patrn Facade Implementan la interfaz de la capa de servicio Dos tipos de session beans
Sin estado: cada invocacin a un mtodo es independiente de las dems Con estado
dic-08
35
dic-08
36
Si el contenedor tiene demanda puede instanciar ms, si le sobran puede eliminar algunos dic-08
38
dic-08
39
Ciclo de vida
New Inyeccin de dependencias PostConstruct
Llamada callback para que el inicialize lo que necesite
Anotar la implementacin
@Stateless [@Remote] Si va a tener acceso remoto [@TransactionAttribute]
Empaquetar y desplegar
dic-08 41
Stateless: ejemplo
dic-08
42
dic-08
43
dic-08
44
dic-08
Para cada usuario concurrente se asigna uno (vinculado a la sesin del usuario) La gestin en pool es ms compleja
Passivation y Activation
dic-08 46
dic-08
47
dic-08
Pasivacin
dic-08
49
Activacin
dic-08
50
dic-08
52
dic-08
53
Para recibir notificaciones el bean debe implementar mtodos y asociarlos a los eventos
Con anotaciones
dic-08
54
dic-08
55
Control de transacciones
Programtica: usando el API JTA Declarativa:
En deployment descriptor Con anotaciones Por defecto
dic-08
58
Control de acceso
El contenedor (o la aplicacin) debe autenticar al usuario y asignarle el rol(es) que le corresponda(n) Se especifica qu rol tiene acceso por bean o mtodo:
@RolesAllowed, @PermitAll, @DenyAll
dic-08
60
dic-08
62