Introducción
EJB
Andrés Guzmán F
EJB (Jakarta Enterprise Beans)
Es una arquitectura y conjunto de componentes que nos permiten
desarrollar y desplegar clases y objetos distribuidos en un
contenedor con soporte transaccional y concurrente.
Características
Transacciones
Comunicación remota
Servidor de aplicaciones
Concurrencia
Contenedor Ejb
JNDI (Interfaz de nombres y directorios)
App Cliente EJB EJB EJB
Seguridad RMI
Integración persistencia JPA
Integración CDI
Tipos de EJB
• Sin estado @Stateless
• Con estado @Stateful
• Unica instancia @Singleton
@Stateless
public class ClienteService {
public List<Cliente> listar() {
}
public void guardar(Cliente c) {
}
}
Tipo de comunicación
Interfaz Remota
App Cliente
RMI
@Remote EJB Service Servidor de
aplicaciones
DAO/Repository
JPA Datasource
La interfaz remota es para clientes fuera del contenedor EJB.
Tipo de comunicación
Interfaz Local
Clase cliente
Servidor de
@Stateless
public class ClienteService implements ClienteServiceLocal { aplicaciones
@Local
public List<Cliente> listar() { @Local EJB Service public interface ClienteServiceLocal {
} List<Cliente> listar();
void guardar(Cliente c);
public void guardar(Cliente c) { DAO/Repository }
}
}
JPA Datasource
La interfaz local es para aquellos clientes que corren en la misma
máquina virtual que el contenedor EJB.
Tipos de despliegues
[Link] [Link]
| |
|--- [Link] |--- Servlets / CDI
| |
|--- [Link] |--- ejb1
| |
|--- [Link] |--- ejb2
Servidor de aplicaciones
• WildFly
• GlassFish
• Payara
• TomEE
• WebLogic
• WebSphere
Servidor de aplicaciones
• Concurrencia
• Seguridad de hilos
• Comunicación remota
• Transacciones
• CDI
• Web Services
• Datasource y pool de conexiones
• Java Messaging Service
• Tolerancia a fallos
• Balanceo de carga
• Clustering
• Autenticación y autorización