Universidad Simón Bolívar
Departamento de Computación y T.I
Sistemas de Operación III
Enterprise JavaBeans
Distributed Component Object Model
Siem, Shun.
Cuello, Veronica.
Retzinac, Marcos.
Azzato, Gian Franco.
Enterprise Java Beans (EJB)
 Tecnología Enterprise JavaBeans
 Enterprise Java Bean
 Tipos de EJB’s




El EJB Container
Interfaces
Creación del EJB en el servidor
EJB como objeto distribuido
Tecnología Enterprise JavaBeans
Arquitectura
Desarrollo y
estructuración de
aplicaciones
EJB
Container
Convenciones
Protocolos
Interfases
Especificaciones
Objetos
distribuidos y
componentes del
lado del servidor
EJB
Ejemplo de una aplicación de
cuatro niveles
Enterprise Java Beans (EJB)
 Tecnología Enterprise JavaBeans
 Enterprise Java Bean
 Tipos de EJB’s




El EJB Container
Interfaces
Creación del EJB en el servidor
EJB como objeto distribuido
Enterprise Java Bean



Componente utilizado en JAVA que
permite agrupar funcionalidades que
forman parte de una aplicación.
Un JAVA Bean puede agrupar información
personal, datos sobre un pedimentos,
requerimientos de órdenes, etc.
Requiere ser integrado con otros
componentes para ser funcional.
Enterprise Java Bean


Es un componente de despliegue, es
decir, que existe un ambiente de
ejecución (Enterprise Java Bean
Container) .
No requiere ser integrado, ya que puede
ser activado mediante el Contenedor de
los EJB)
¿Cuando Usar Enterprise
Java Beans?
 Si la aplicación debe ser escalable.
 Si debe asegurarse la integridad de la
información en las transacciones.
 Si la aplicación tendrá usuarios variados.
¿Por que Usar Enterprise
Java Beans?
Porque simplifican el desarrollo de grandes
aplicaciones distribuidas.
RAZONES:
EJB Containers
Cada beans contienen las aplicaciones de la lógica de
negocios
Los EJB son reusables
Enterprise Java Beans (EJB)
 Tecnología Enterprise JavaBeans
 Enterprise Java Bean
 Tipos de EJB’s




El EJB Container
Interfaces
Creación del EJB en el servidor
EJB como objeto distribuido
Tipos de EJB’s
Tipo
Sesión
Propósito
Realizar una tarea para un cliente.
Implementar una aplicación Web.
Entidad Representa un objeto de la entidad
de negocios que existe en una
unidad de almacenaje permanente.
Mensaje Actúa como un listener para el
dirigido Servicio API de Mensajes de JAVA,
procesando los mensajes de manera
asíncrona.
Tipos de EJB’s: Sesion






Representa a un cliente dentro de una
aplicación del servidor el cual invoca uno de
los métodos para ejecutar la aplicación.
Ejecuta trabajos para su cliente excluyéndolo
de la complejidad ejecutando las tareas de
negocios dentro del servidor.
Es similar a una sesión interactiva.
No es compartido, sólo puede tener un
cliente así como una sesión interactiva sólo
puede tener un usuario.
No es persistente (La información no es
almacenada en una BD).
Cuando se termina la sesión, el bean termina
y no guarda ninguna relación con el cliente.
Tipos de EJB’s: Sesion
CUANDO EMPLEARLOS
 Si tengo un cliente el cual solo tendrá acceso
a una instancia del bean.
 Cuando el estado no sea persistente.
 Si se implementará un servicio Web.
 Si el estado representa una interacción entre
el bean y un cliente específico.
 Si se requiere mantener la información del
cliente a través de la invocación de métodos.
 Si el bean es un intermediario entre el cliente
y otros métodos de la aplicación
presentándole una vista simplicada.
Tipos de EJB’s: Entidad







Representa un objeto de negocios en un
mecanismo de almacenaje persistente (MAP).
En una aplicación del servidor MAP BD
Cada instancia del bean representa una línea en
una tabla.
Persistentes.
Permiten acceso compartido
Contienen claves primarias.
Pueden interactuar con otros beans de entidad.
Tipos de EJB’s: Entidad
CUANDO EMPLEARLOS
 Cuando se representa una entidad de
negocios y no un procedimiento.
 Cuando el estado deba ser persistente. Si la
instancia termina o se apaga el servidor de la
aplicación, el estado del bean existe en una
BD.
Tipos de EJB’s: Mensajes Dirigidos








Permite a las aplicaciones de J2EE procesar
mensajes de manera asíncrona.
Normalmente actua como un listener de
mensajes, similar a un listener de eventos.
Los mensajes pueden ser enviados desde
cualquier componente de J2EE.
Se ejecutan por un mensaje del cliente.
Tienen un periodo de vida corto.
No representan información compartida en una BD, pero
pueden accesar para actualizarla.
Pueden ser transaction-aware.
No tienen estado (stateless.)
Tipos de EJB’s: Mensajes Dirigidos
CUANDO EMPLEARLOS
 Cuando no se sea saturar los recursos del
sistema por el envío de mensajes de manera
síncrona (beans de sesión y de entidad)
Enterprise Java Beans (EJB)
 Tecnología Enterprise JavaBeans
 Enterprise Java Bean
 Tipos de EJB’s




El EJB Container
Interfaces
Creación del EJB en el servidor
EJB como objeto distribuido
El EJB Container
El contenedor de EJB provee servicios a
nivel de sistema para los EJB, el bean de
desarrollo puede concentrarse en resolver
problemas de negocios. El contenedor del
EJB (no el de desarrollo) es el
responsable por los servicios a nivel de
sistema tales como manejo de
transacciones y seguridad de autorización.
El EJB Container
 Un EJB no puede funcionar fuera de un container
 Los EJB Container manejan cada aspecto de los
EJB en tiempo de ejecucion
 acceso remoto al bean.
 seguridad.
 persistencia.
 transacciones.
 concurrencia.
acceso a los recursos.
Funcionamiento EJB Container
 El container protegé
al bean del acceso
directo desde las
aplicaciones clientes.
Manejo de un EJB en en
tiempo de ejecucion
 Cuando un cliente
invoca un metodo
remoto de un EJB, el
contenedor primero
intercepta esta para
asegurar la seguridad
de cada operacion que
se desempenia en el
bean.
Enterprise Java Beans (EJB)
 Tecnología Enterprise JavaBeans
 Enterprise Java Bean
 Tipos de EJB’s




El EJB Container
Interfaces
Creación del EJB en el servidor
EJB como objeto distribuido
Interfaces
 Home Interface: define un
esqueleto para funciones
utilizadas en el Enterprise
Bean Class, las funciones que
deben ser declaradas son
aquellas necesarias para la
creacion-activacion de un EJB
algunas son: create,
passivate,activate.
 Remote Interface: contiene
las declaraciones para los
metodos de negocios
definidas en el Enterprise
Bean Class.
Enterprise Java Beans (EJB)
 Tecnología Enterprise JavaBeans
 Enterprise Java Bean
 Tipos de EJB’s




El EJB Container
Interfaces
Creación del EJB en el servidor
EJB como objeto distribuido
Creación del EJB en el servidor
Cliente
“Genera un EJB”
Objeto proxy
Servidor
Container
EJB
Enterprise Java Beans (EJB)
 Tecnología Enterprise JavaBeans
 Enterprise Java Bean
 Tipos de EJB’s




El EJB Container
Interfaces
Creación del EJB en el servidor
EJB como objeto distribuido
EJB como objeto distribuido
Fin Enterprise Java Beans.
Seguimos con DCOM.
Distributed Component
Object Model (DCOM)
Manejo de objetos remotos sobre el
protocolo ORPC (Object Remote
Procedure Call).
 ORPC sobre DCE’s RPC (DCE: un
estándar de la industria para
ambientes de cómputo distribuido; y
RPC: Remote Procedure Call).
 Interactúa con los servicios COM.

DCOM: Una tecnología de
middleware.
Heterogeneidad.
 Transportes de
red (HTTP).
 Programación
Distribuida.
 Funciona en
cualquier
plataforma que
posea COM.

DCOM: Cómo nace?

OLE: Object Linking and Embedding.


COM: Component Object Model.
DCOM: Distributed Object Model.
DCOM: Beneficios!
Icrementa la Seguridad (¿?).
 Instanciación Remota de Módulos.
 Intercambio estandarizado de la
Información.
 Control de los Clientes (tiempo de
vida, terminación, referencias).
 Mecanismo interno de ping.

DCOM: Detalles
Técnicos

Interfaz IDL:
contrato entre el servidor del objeto
remoto y sus clientes.
 El servicio que el objeto distribuido
remoto (servidor) provee es
encapsulado como un objeto y la
interfaz remota del objeto está descrita
en el archivo IDL.
 Dual: invocaciones dinámica y
estáticas.

DCOM: Detalles
Técnicos (Cont.)

Interfaz IDL (Cont.):
Invocación estática: el compilador
IDL de Microsoft (MIDL) crea un código
proxy y un código stub. Éstos son
registrados en los sistemas para
permitir mayor flexibilidad en su uso.
 Invocación dinámica: los objetos
COM implementan una interfaz llamada
IDispatch. Se usan las Librerías de
Tipo.

DCOM: Detalles
Técnicos (Cont.)

Identificadores Universally Unique
Identifier (UUID):
Identificador de Interfaz (IID):
uuid(BC4C0AB0-5A45-11d2-99C500A02414C655).
 Identificador de clase (CLSID):
private static final String CLSID =
"BC4C0AB3-5A45-11d2-99C500A02414C655";

DCOM: Detalles
Técnicos (Cont.)

Herencia Múltiple: COM deja a un
lado la herencia múltiple para
proveer un estándar binario para las
implementaciones de objetos. En
vez de la herencia múltiple, COM
utiliza la noción de que el objeto
tiene múltiples interfaces con el fin
de alcanzar el mismo propósito.
DCOM: Detalles
Técnicos (Cont.)

Funcionamiento:
Obj.1
Proxy
Cliente
Stock
…
Market
Obj.n
Stub
Stock
Market
Interfaz IStock
Obj.1
Market
Interfaz
… Obj.n
Servidor

IStockMarket market = (IStockMarket)new simplestocks.StockMarket();
DCOM: Detalles
Técnicos (Cont.)

Funcionamiento (Cont.):



la Máquina Virtual de Java de Microsoft
(Microsoft JVM) tiene que usar el CLSID para
hacer una llamada al método
CoCreateInstance().
Esto devuelve un puntero a IUnknown ya
que la interfaz todavía es desconocida. Al
recibir este puntero, se lleva a cabo un cast
para indicar de qué tipo es la interfaz.
IStockMarket market = (IStockMarket)new simplestocks.StockMarket();
DCOM: Detalles
Técnicos (Cont.)

Funcionamiento (Cont.):




El cast hacia IStockMarket fuerza a la Máquina Virtual
de Java de Microsoft a llamar al método del servidor de
objetos DCOM QueryInterface() para obtener un
puntero a IStockMarket.
Si la interfaz no es soportada se bota una excepción
ClassCastException.
Una vez que el cliente obtiene un puntero válido al
servidor de objetos DCOM, accede a sus métodos como
si estuviesen en su espacio local de direcciones.
IStockMarket market = (IStockMarket)new simplestocks.StockMarket();
DCOM:
Resumen







Soporta múltiples interfaces para objetos y
utiliza el método QueryInterface() para navegar
entre interfaces.
Cada objeto implementa IUnknown.
Identifica de manera única a cada objeto del
servidor a través de su puntero a interfaz, el
cual sirve para manejarlo en tiempo de
ejecución.
La información de tipos para los métodos es
mantenida en la librería de tipos.
La responsabilidad de localizar la
implementación de un objeto reside en el
Service Control Manager (SCM).
El stub del cliente se llama proxy.
El stub del servidor se llama stub.
DCOM:
Resumen (Cont.)





Identifica de manera única a las interfaces,
utilizando los IID y a las clases mediante el
CLSID. El mapeo de éste se encuentra en el
registry.
La generación de referencias del servidor remoto
se lleva a cabo en el protocolo de red por el
exportador de Objetos.
Utiliza el ORPC (Object Remote Procedure Call)
como su protocolo remoto.
Los métodos del servidor se activan mediante el
método CoCreateInstance().
El manejo de objetos que lleva a cabo el cliente
lo hace mediante un puntero de interfaz.
DCOM: Problemas

Seguridad:



Se dejó espacio amplio para los ataques
malintencionados.
Desarrollo rápido y apurado sin estipular
tiempo para la seguridad.
http://support.microsoft.com/kb/825750
GRACIAS!!
Descargar

Enterprise JavaBeans - LDC - Universidad Simón Bolívar