Enterprise JavaBeans Distributed Component Object Model

Slides:



Advertisements
Presentaciones similares
2010Ing. de Sistemas II Persistencia en EJB3 Pasos para crear entity beans.
Advertisements

JEE Introducción a Java Enterprise Edition (JEE) y el modelo Enterprise Java Beans (EJB)
APLICACIONES DISTRIBUIDAS
Red Social: “Un millón de Amigos”.
J2EE – Java 2 Enterprise Edition
Aplicación informática. formando parte de una red. pone sus recursos a disposición de las demás computadoras(clientes) de la red. Maneja información.
Carlos Rojas Kramer Universidad Cristóbal Colón
ARQUITECTURA CLIENTE-SERVIDOR
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
Common Object Request Broker Architecture
ASPECTOS DEL DISEÑO DE SD
Servicios Web.
Arquitectura, conceptos y ejemplos
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
Introducción 1 Puntos Clave –La orientación a objetos representa un cambio radical en los métodos tradicionales de creación de software –Los métodos tradicionales.
"java del lado del servidor" Servlet y JSP Java Server Pages.
Tipos de Servicios Web.
Investigación Servidor de Aplicaciones WebSphere
RMI Remote Method Invocation
Java 2 Platform Enterprise Edition
S.O. Multiusuario, red. Servicio: Cliente/Servidor, p2p
POR: Evelyn Zuleyma Quiroz Velásquez
Enterprise Java Beans Rubén Trujillo Sept-Dic 2008.
Sistemas Operativos Distribuidos Plataforma Cliente/Servidor
Sistemas Operativos Centralizados y Distribuidos Carlos David Zepeda.
Tecnologías para el desarrollo de aplicaciones Web
Desarrollo de Aplicaciones Utilizando Java Edición Empresarial – JEE6
Propósito: * Mostrar indicativos porcentuales de los diversos microorganismos con los que se alimentan el camarón en un manejo semi-intensivo aplicado.
POP3 UCLV Mapas Conceptuales para la enseñanza de Redes de Computadoras.
Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones.
Arquitectura de una aplicación
DISEÑO DE SOFTWARE 1ª. Parte
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
ASIGNACION DE LAS PARTES DE LA APLICACION DISTRIBUIDA EN JAVA PESENTA: LEVI MONROY MARTINEZ.
Desarrollo de aplicaciones para ambientes distribuidos
J2EE – Java 2 Enterprise Edition
Sistemas Distribuidos
Introducción a los Sistemas Operativos
Un sistema de gestión de bases de datos: Es un conjunto de programas que permite a los usuarios crear y mantener una base de datos. Por tanto, el SGBD.
Servidores Conceptos Generales.
Enterprise Java Beans. EJBs Beans gestionados por un contenedor del servidor de aplicaciones para gestionar el acceso a recursos (bases de datos, colas.
Haga clic para modificar el estilo de subtítulo del patrón 28/04/09 Por ARLEDY SARRIA MOLINA NAZLY DIAZ ARIZA JHOANNA MARQUELLA DESARROLLO DE SOFTWARE.
INTRODUCCIÓN A JAVA. Índice ¿Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales ¿Qué ventajas tengo como desarrollador?
Universidad Nacional de San Juan Facultad de Ciencias Exactas, Físicas y Naturales “WEB SERVICES” Integrantes: Ene Adriana Guevara Vanina Martínez Cintia.
The nesC Language: A Holistic Approach to Networked Embedded Systems Tomado de paper de: D. Gay, P. Levis, R. Behren, M. Welsh, E. Brewer, D. Culler.
Enterprise JavaBeans Arvelo, Yolife Ascanio, Eduardo Chacón, Johnny Quintana, Susana Unversidad Simón Bolívar Departamento de Computación y T.I Sistemas.
Introducción a los SOs.
Términos y Conceptos Básicos
Modelo de 3 capas.
Modelo OSI Surgimiento del Modelo OSI ¿Que es el Modelo OSI?
Distributed Component Object Model
DESARROLLO DE APLICACIONES PARA AMBIENTES DISTRIBUÍDOS ALUMNOS: MARIANA MIGNÓN RÉDING CARLOS ANTONIO CARRASCO MARTÍNEZ PROFESOR: DR. JOSÉ BERNARDO PARRA.
Luis Ponce Cabello.  Primera Parte : JSF  Segunda Parte : Facelets  Tercera Parte : Icefaces.
Tecnologías Cliente / Servidor Capitulo II Richard Jiménez V. clienteserver.wordpress.com.
Tecnologías Cliente / Servidor
BASE DE DATOS DISTRIBUIDAS
Instituto Tecnológico de puebla Materia Desarrollo de aplicaciones para ambientes distribuidos Catedrático Dr. José Bernardo Parra Alumnos Cesar Mauricio.
Unidad 1. CONCEPTOS DE BASES DE DATOS
Your Logo ING. FREDY ALEXANDER MARTINEZ. Here comes your footer  Page 2 Este patrón fue descrito por primera vez por Trygve Reenskaug en 1979, y la implementación.
Integrante: Mariana Alcalá Hdz María del Carmen Andrade G. Alondra E. García Mtz Joselyn Gpe García V. Antonio de Jesús Hdz R. Cristian Jesús Ruvalcaba.
Acceso a Datos Erick López Ovando Licenciado en Informática.
Arquitectura de una aplicación Arquitectur a: desarrolla un plan general del sistema, asegurando que las necesidades de los usuarios sean atendidas. Ingeniería.
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
Patrón de diseño BROKER
Diccionario/Directorio de Datos
Conociendo el modelo Cliente-Servidor
DCE: Entorno de Computación Distribuida Profesor: Daniel Acuña Expositores: Francisco Almarza Gustavo Espinoza.
Conociendo el modelo Cliente-Servidor. Introducción En el mundo de TCP/IP las comunicaciones entre computadoras se rigen básicamente por lo que se llama.
UAA – Introduccion a Progracion Orientada Objetos Introducción al Java.
Transcripción de la presentación:

Enterprise JavaBeans Distributed Component Object Model 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 Objetos distribuidos y componentes del lado del servidor Convenciones Protocolos Interfases Especificaciones EJB EJB Container La especificación exige un modelo de programacion, constituido por convenciones o protocolos y un conjunto de clases e interfaces sobre las cuales de apoya el EJB API. El modelo de programación de EJB provee a los desarrolladores y proveedores de beans, un conjunto de contratos que definen un estándar comun para el desarrollo. El principal logro de estos contratos es asegurar la portabilidad entre distintos proveedores y así soportar un gran conjunto de funcionalidades.

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

Tipos de EJB’s: Sesion 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 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. Los containers manejan almacenan a los enterprise bean (EJB) de la misma forma que los servidores web Java almacenan servlets o que los browser HTML almacenan applets. Un EJB no puede funcionar fuera de un container Los EJB Container manejan cada aspecto de los eb en tiempo de ejecucion, los cuales incluyen, acceso remoto al bean, seguridad, persistencia, transacciones concurrencia y acceso a los recursos.

El EJB Container Los enterprise bean son componentes de software que corren en un ambiente especial llamado EJB container . Los container organizan y manejan los beans... Los container aislan a los enterprise beans del acceso directo de las aplicaciones de los clientes. Cuando un aplicación invoca un metodo remoto en un enterprise bean, el container inetercepta la invocación para asegurar la persistencia, transacción, y la seguridad . Los desarrolladores de enterprise bean se pueden enfocar en encapsular las reglas del negocios, mientras los container se encargan de todo lo demás . 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. Los containers manejan almacenan a los enterprise bean (EJB) de la misma forma que los servidores web Java almacenan servlets o que los browser HTML almacenan applets.

Funcionamiento EJB Container 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. Manejo de un EJB en en tiempo de ejecucion

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. Las interfaces remotas y home son tipos de interfaces remotas de RMI de Java. La interfaz java.rmi.Remote es utilizada por objetos remotos para representar los bean en una dirección de espacio diferente .

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 Para reducir el consumo y procesamiento de memoria, los contenedores agrupan los recursos y manejan el ciclo de vida de todos los beans muy cuidadosamente. Los enterprise bean dependen de los container para todas las cosas que necesiten. Los bean enterprise interactuan con el container por medio de alguno de los siguientes tres mecanismos: metdos callbacks, el EJBContext interface, o el JNDI. Creación del EJB en el servidor Cliente Servidor “Genera un EJB” Objeto proxy Container EJB Una aplicación cliente contacta al servidor y le pide que genere un EJB para que procese datos en su nombre. El servidor responde creando un Objeto en él (la instancia del componente del EJB), y devuelve un objeto proxy (el Objeto EJB) . La aplicación cliente realmente contacta al container del servidor y le pide que genere un objeto en particular, el conteiner responde con el Objeto EJB que puede ser utilizado para manipular el nuevo componente EJB recién generado. Luego el cliente puede llamar los metodos del objeto EJB, que son enviados al container.

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 Se envuelve la instancia en objeto llamado esqueleto el cual contiene una coneccion de red con otro objeto llamado stub . En EJB los esqueletos para las interfaces remotas y home estan implementados por el container y no por las clase bean . Los protocolos de objetos distribuidos definen el formato de los mensajes de red enviados entre los espacios de direcciones .

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-99C5-00A02414C655). Identificador de clase (CLSID): private static final String CLSID = "BC4C0AB3-5A45-11d2-99C5-00A02414C655";

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 Stock Market Obj.n … Proxy Stub Stock Market Interfaz Obj.1 IStock Market Interfaz Obj.n Cliente … 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!!