Top Banner
Enterprise JavaBeans Distributed Component Object Model Siem, Shun. Cuello, Veronica. Retzinac, Marcos. Azzato, Gian Franco. Universidad Simón Bolívar Departamento de Computación y T.I Sistemas de Operación III
43

Enterprise JavaBeans Distributed Component Object Model

Jan 14, 2016

Download

Documents

zanna

Enterprise JavaBeans Distributed Component Object Model. Universidad Sim ón Bolívar Departamento de Computación y T.I Sistemas de Operación III. Siem, Shun. Cuello, Veronica. Retzinac, Marcos. Azzato, Gian Franco. Enterprise Java Beans (EJB ). Tecnología Enterprise JavaBeans - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Enterprise JavaBeans Distributed Component Object Model

Enterprise JavaBeans Distributed Component Object Model

Siem, Shun.Cuello, Veronica.Retzinac, Marcos.Azzato, Gian Franco.

Universidad Simón Bolívar

Departamento de Computación y T.I

Sistemas de Operación III

Page 2: Enterprise JavaBeans Distributed Component Object Model

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

Page 3: Enterprise JavaBeans Distributed Component Object Model

Tecnología Enterprise JavaBeans

ArquitecturaDesarrollo y

estructuración de aplicaciones

Objetos distribuidos y

componentes del lado del servidor

ConvencionesProtocolos Interfases

Especificaciones

EJB

EJB Container

Page 4: Enterprise JavaBeans Distributed Component Object Model

Ejemplo de una aplicación de cuatro niveles

Page 5: Enterprise JavaBeans Distributed Component Object Model

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

Page 6: Enterprise JavaBeans Distributed Component Object Model

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.

Page 7: Enterprise JavaBeans Distributed Component Object Model

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)

Page 8: Enterprise JavaBeans Distributed Component Object Model

¿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.

Page 9: Enterprise JavaBeans Distributed Component Object Model

¿Por que Usar Enterprise Java Beans?

Porque simplifican el desarrollo de Porque simplifican el desarrollo de grandes aplicaciones distribuidas.grandes aplicaciones distribuidas.

RAZONES:EJB ContainersCada beans contienen las aplicaciones de la lógica de negociosLos EJB son reusables

Page 10: Enterprise JavaBeans Distributed Component Object Model

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

Page 11: Enterprise JavaBeans Distributed Component Object Model

Tipos de EJB’s

Tipo Propósito

Sesión 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 dirigido

Actúa como un listener para el Servicio API de Mensajes de JAVA, procesando los mensajes de manera asíncrona.

Page 12: Enterprise JavaBeans Distributed Component Object Model

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.

Bean de sesión sin estado Soporta múltiples usuarios

escalabilidad Puede ser implementado en

aplicaciones WEB El estado dura sólo en la ejecución de

la tarea Bean de sesión con estado

El estado dura durante toda la sesión

Page 13: Enterprise JavaBeans Distributed Component Object Model

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.

Page 14: Enterprise JavaBeans Distributed Component Object Model

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.

Page 15: Enterprise JavaBeans Distributed Component Object Model

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.

Page 16: Enterprise JavaBeans Distributed Component Object Model

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.)

Page 17: Enterprise JavaBeans Distributed Component Object Model

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)

Page 18: Enterprise JavaBeans Distributed Component Object Model

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

Page 19: Enterprise JavaBeans Distributed Component Object Model

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.

Page 20: Enterprise JavaBeans Distributed Component Object Model

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.

Page 21: Enterprise JavaBeans Distributed Component Object Model

Funcionamiento EJB Container

Manejo de un EJB en en tiempo de ejecucion

El container protegé al bean del acceso directo desde las aplicaciones clientes.

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.

Page 22: Enterprise JavaBeans Distributed Component Object Model

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

Page 23: Enterprise JavaBeans Distributed Component Object Model

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.

Page 24: Enterprise JavaBeans Distributed Component Object Model

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

Page 25: Enterprise JavaBeans Distributed Component Object Model

Creación del EJB en el servidor

Cliente Servidor“Genera un EJB”

Objeto proxy Container

EJB

Page 26: Enterprise JavaBeans Distributed Component Object Model

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

Page 27: Enterprise JavaBeans Distributed Component Object Model

EJB como objeto distribuido

Page 28: Enterprise JavaBeans Distributed Component Object Model

Fin Enterprise Java Beans.Fin Enterprise Java Beans.

Seguimos con DCOM.Seguimos con DCOM.

Page 29: Enterprise JavaBeans Distributed Component Object Model

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.

Page 30: Enterprise JavaBeans Distributed Component Object Model

DCOM: Una tecnología de middleware.

Heterogeneidad. Transportes de

red (HTTP). Programación

Distribuida. Funciona en

cualquier plataforma que posea COM.

Page 31: Enterprise JavaBeans Distributed Component Object Model

DCOM: Cómo nace?

OLE: Object Linking and Embedding.

COM: Component Object Model.

DCOM: Distributed Object Model.

Page 32: Enterprise JavaBeans Distributed Component 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.

Page 33: Enterprise JavaBeans Distributed Component Object Model

DCOM: DetallesTé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.

Page 34: Enterprise JavaBeans Distributed Component Object Model

DCOM: DetallesTé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.

Page 35: Enterprise JavaBeans Distributed Component Object Model

DCOM: DetallesTécnicos (Cont.) Identificadores Universally Unique

Identifier (UUID): Identificador de Interfaz (IID):

uuid(BC4C0AB0-5A45-11d2-99C5-00A02414C655).

Identificador de clase (CLSID): private static final String CLSID = "BC4C0AB3-5A45-11d2-99C5-00A02414C655";

Page 36: Enterprise JavaBeans Distributed Component Object Model

DCOM: DetallesTé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.

Page 37: Enterprise JavaBeans Distributed Component Object Model

IStockMarket market = (IStockMarket)new simplestocks.StockMarket();

ProxyStubStock

Market

Obj.1Obj.1 StockStockMarketMarket Obj.nObj.n…

Servidor

InterfazInterfazObj.1Obj.1

IStockIStockMarketMarket

InterfazInterfazObj.nObj.n…Cliente

DCOM: DetallesTécnicos (Cont.)

Funcionamiento:

Page 38: Enterprise JavaBeans Distributed Component Object Model

DCOM: DetallesTé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();

Page 39: Enterprise JavaBeans Distributed Component Object Model

DCOM: DetallesTé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();

Page 40: Enterprise JavaBeans Distributed Component Object Model

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.

Page 41: Enterprise JavaBeans Distributed Component Object Model

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.

Page 42: Enterprise JavaBeans Distributed Component Object Model

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

Page 43: Enterprise JavaBeans Distributed Component Object Model

GRACIAS!!