PDF de programación - La capa de Negocio de la Arquitectura Java EE

Imágen de pdf La capa de Negocio de la Arquitectura Java EE

La capa de Negocio de la Arquitectura Java EEgráfica de visualizaciones

Publicado el 1 de Junio del 2017
1.529 visualizaciones desde el 1 de Junio del 2017
941,8 KB
67 paginas
Creado hace 7a (07/09/2012)
La capa de Negocio
de la Arquitectura Java EE

Simon Pickin
Florina Almenárez Mendoza
Natividad Martínez Madrid
Pablo Basanta Val

Autores:



Dirección: Departamento de Ingeniería Telemática



Universidad Carlos III de Madrid
España

Versión:

1.0

Agradecimientos: Bill Burke, JBoss Group, Tal Cohen, IBM Haifa

Software de

Comunicaciones



© The Authors

3. Enterprise JavaBeans 3.0

Software de

Comunicaciones



© The Authors

2

Introducción

• La capa de negocio implementa la lógica de negocio

– Esto es, la funcional nuclear de una aplicación empresarial

• Enterprise JavaBeans (EJB) es una especificación completa

de una arquitectura de servicios basada en componentes

– Ejecutan lógica de negocio

– Acceso a bases de datos

– Se integra con otros sistemas

• Ventajas de los EJBs:

– El desarrollador se concentra en la lógica de negocio y usa

los servicios del contenedor

• transacciones, seguridad, gestión de ciclo-de-vida, multi-hilo,

almacén de conexiones, etc.

– Componentes: reutilización y abstracción

– Compatible con otras APIs Java

3

Software de

Comunicaciones



© The Authors

Servicios del contenedor de EJBs (1/5)

Contenedor: entorno de ejecución para todos los componentes EJB

instalados

• Gestión de transacciones:

– Secuencia de acciones (y accesos a datos) ejecutados “atómicamente”

• ACID (Atomic, Consistent, Isolated, Durable)
• Evita problemas que pueden surgir del acceso a datos de forma concurrente
• La secuencia entera puede ser deshecha (“rolled back”) en caso de fallo

– El contenedor provee protocolos de manejo de transacciones

• Por ejemplo: un protocolo de aceptación de dos fases

– Transacciones gestionadas por el bean (BMT)

• El desarrollador del bean codifica explícitamente el inicio de la transacción, la

finalización, el proceso de deshacerla, … usando JTA (Java Transaction API)

– Transacciones manejadas por el contenedor(CMT)

• El desarrollador del bean no codifica las transacciones explícitamente
• Los métodos que debe de ejecutar en una transacción están especificados con

anotaciones o en el descriptor de despliegue (archivo xml).

Software de

Comunicaciones



© The Authors

4

Servicios del contenedor de EJBs (2/5)

• Gestión de recursos y ciclo de vida:

– recursos: hilos, conexiones, conexiones a la base de datos,…

– Ciclo de vida: creación y destrucción de instancias, activación y

pasivación de instancias…

– Estados exactos en el ciclo de vida y procesos que dependen del tipo de

bean utilizado

• Accesibilidad remota / objetos distribuidos:

– El desarrollador del bean no codifica explícitamente el código de acceso

remoto

– El servidor de EBJs provee protocolos de comunicación para acceder a

objetos remotos distribuidos.

• Debe soportar RMI-IIOP (c.f. especificación CORBA) y SOAP 1.2 (vía API JAX-

WS o la antigua API JAX-RPC)

• Puede soportar también otros protocolos de comunicación

– El contenedor implementa llamadas distribuidas usando la infraestructura

de comunicación

• Por ejemplo genera sustitutos y esqueletos

5

Software de

Comunicaciones



© The Authors

Servicios de contenedor de EJBs (3/5)

• Seguridad:

– Autenticación

• Validación de la entidad del usuario

– Autorización (de acceso a componentes)

• Política de seguridad especificando lo que un usuario puede y no puede hacer
• Concepto declarativo basado en roles de usuario
• Roles y sus derechos de acceso a métodos de negocio definido con

anotaciones o en el descriptor de despliegue del fichero xml.

• El desarrollador asigna roles a usuarios

– El servidor de EJBs gestiona usuarios y roles
– El contenedor trata con el control de acceso

– Comunicaciones seguras

• Concurrencia (“multi-hilo”)

– El desarrollador de beans no codifica explícitamente el multi-hilo

– Por ejemplo, las dos maneras de manejar peticiones concurrentes

• Mantener un pool de instancias y peticiones directas a instancias del bean del

repositorio

• Serializar peticiones a una instancia de un bean.

6

Software de

Comunicaciones



© The Authors

Servicios de contenedor de EJBs (4/5)

• Servicio de nombramiento y directorio:

– Asociación de nombres a referencias a objetos en una estructura de

directorio jerárquica

• API JNDI (Java Naming and Directory Interface) :

– Contexto de nombramiento del entorno de un bean:

• Espacio de nombres de JNDI (directorio privado) específico a cada clase de

bean

• Para acceder a las propiedades, recursos, otros beans del contenedor
• Referenciado desde dentro de un bean vía java:comp/env

• Mensajería:

– El contenedor provee acceso al servicio de mensajería

• API JMS (Java Messaging Service)

– Comunicaciones asíncronas entre dos o más participantes



a través de un sistema de colas de mensajes

– Los receptores de los mensajes deben ser beans dirigidos por mensajes

• Cualquier bean empresarial puede ser un emisor de mensajes

Software de

Comunicaciones



© The Authors

7

Servicios de contenedor de EJBs (5/5)

• Temporizador/Planificador

– Planifica notificaciones de planificación para ser enviadas a EJBs en

instantes específicos de tiempo.

– c.f. cron de Unix

• Persistencia (EJB2):

– Los beans de entidad EJB2.1 pueden ser usados como alternativa a las

entidades de JTA

• El contenedor EJB3 debe soportar beans de entidad EJB2.1

– Las instancias de los beans de entidad en memoria están enlazadas a

datos de negocio

• El contenedor garantiza la consistencia (con carga y almacenamiento periódico)

– Persistencia manejada por el bean (BMP)

• El desarrollador de beans codifica el acceso a la base datos explícitamente

usando JDBC pero el contenedor decide cuando llamar a ese código.

• La instancia del bean usa conexiones JDBC provistas por el contenedor

– Persistencia manejada por el contenedor (CMP)

Software de

Comunicaciones



© The Authors

• El desarrollo del bean no codifica el acceso a la base de datos explícitamente
• Generalmente soporta conexión a bases de datos relacionales
• El significado exacto de la persistencia depende del contenedor y es
8

independiente del bean

Modelando aplicaciones empresariales

• Las aplicaciones empresariales están organizadas en
componenentes que implementan entidades de negocio o
procesos de negocio

– Las entidades de negocio representan información empresarial

– Los procesos de negocio representan la manipulación de dicha

información

Software de

Comunicaciones



© The Authors

9

Entidades de negocio

• Las entidades de negocio son objetos de negocio:

– Representan información mantenida por la compañía

– Tienen estado persistente (mantenido en una base de

datos)

• Ejemplos:

– cliente, orden de compra, cuenta, empleado,...

• Pueden tener asociadas “reglas de negocio”:

– Restringiendo valores del estado de la entidad

• Por ejemplo, códigos postales con 5 dígitos (en España, por

lo menos!)

– Manteniendo relaciones entre entidades

• Por ejemplo, relacionando un cliente a varias compras

10

Software de

Comunicaciones



© The Authors

Procesos de negocio

• Objetos de negocio que encapsulan una interacción

entre un usuario y una entidad de negocio
– Actualizan un estado de entidades de negocio

– Mantienen una entidad única a través del ciclo de vida

• Pueden tener estado propio

– Estado persistente: proceso dividido en etapas y puede
involucrar múltiples actores: proceso de negocio
colaborativo

• Ejemplo: procesado de una petición de préstamo

– Estado

transitorio:

en

una
conversación con un actor: proceso de negocio
conversacional

completado

proceso

• Ejemplo: retirada de dinero de un cajero

11

Software de

Comunicaciones



© The Authors

Reglas de negocio

entre

los

• Distribuidas

que
implementan las entidades y los procesos de
negocio
– De acuerdo a si la regla se aplica a la entidad o al proceso

componentes

• Ejemplos:

– Entidad:

El balance de una cuenta no puede ser negativo
(independiente del proceso que causa que ocurre)

– Proceso:

La máxima cantidad que puede ser retirara de un cajero es

500€

(independiente del estado de la entidad de la cuenta)

Software de

Comunicaciones



© The Authors



12

Enterprise Java Beans

• Beans de sesión:

– Procesos ejecutados como respuesta a una petición de un cliente (e.g.

transacciones bancarias, cálculos, implementación de compras …)

– Proceso colaborativo: hace uso de entidades JPA / beans de entidad

– Recibe llamadas síncronas a métodos definidos sobre la interfaz de negocio

• Entidades JPA (EJB3) / Beans de entidad (EJB2):

– Objetos persistentes asociados a datos

• Por ejemplo: cuenta bancaria, compra de producto, …

– Soporte a la información pasiva vía métodos para las operaciones sobre

datos

– Reciben llamadas síncronas a métodos definidos en la interfaz de negocio

• Beans dirigidos por eventos:

– Procesos ejecutados como respuesta a la recepción de un mensaje

– Reciben llamadas asíncronas a través de un canal

13

Software de

Comunicaciones



© The Authors

Entidades JPA (EJB3) /
Beans de entidad (EJB 2.x)

• Modelan conceptos / objetos de negocio con estado persistente

– Por ejemplo, datos en la base de datos

• Pueden ser utilizados por varios clientes conjuntamente y

simultáneamente

• Entidad visible externamente: clave primaria

– La instancia puede ser accedida por otros programas



Larga vida (tiempo de vida de sus datos asociados)

– El estado persistente típicamente cambia transaccionalmente

– El estado sobrevive el reinicio de
  • Links de descarga
http://lwp-l.com/pdf3851

Comentarios de: La capa de Negocio de la Arquitectura Java EE (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