Tecnología de objetos distribuidos y arquitectura de componentes.

Slides:



Advertisements
Presentaciones similares
JEE Introducción a Java Enterprise Edition (JEE) y el modelo Enterprise Java Beans (EJB)
Advertisements

APLICACIONES DISTRIBUIDAS
Intranets P. Reyes / Octubre 2004.
Nau Gran dHivern Intr. a la creación y gestión de páginas web Introducción a la web.
Internet y tecnologías web
Servicios Web XML 03 de Junio de 2004 Fernando Alonso Blázquez.
Red Social: “Un millón de Amigos”.
CJ02 – Técnicas avanzadas en java 1.4 y 5.0
Introduccion a UML Wilson Peláez Hernández
J2EE – Java 2 Enterprise Edition
Common Object Request Broker Architecture (CORBA)
Bases de datos distribuidas
Programación Avanzada en Internet
Universidad Nacional Autónoma de Honduras
Carlos Rojas Kramer Universidad Cristóbal Colón
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
UNIVERSIDAD TECNOLÓGICA ISRAEL CARRERA DE SISTEMAS INFORMÁTICOS
Práctica II: Java RMI.
Common Object Request Broker Architecture
INTRODUCCIÓN A JAVA.
Lenguajes Servicios Web
Servicios Web.
Ing. Horacio Carlos Sagredo Tejerina
Arquitectura Orientada a Servicios (SOA)
SISTEMAS EN TIEMPO REAL Y DISTRIBUIDOS CAPITULO 1
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
Tipos de Servicios Web.
Arquitectura Cliente/Servidor
Investigación Servidor de Aplicaciones WebSphere
Entornos orientados a objetos
RMI Remote Method Invocation
Java 2 Platform Enterprise Edition
Ingeniería del Software
Universidad Nacional de San Antonio Abad del Cusco
Desarrollo de Software Basado en Componentes
Requerimientos No Funcionales
BASES DE DATOS ORIENTADAS A OBJETO
Universidad Centroamericana
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Ingeniería del software II
Sistemas Operativos Centralizados y Distribuidos Carlos David Zepeda.
Persistencia de Objetos. Definicion Persistencia : El la capacidad de un objecto to continuar existiendo despues que su creador (programa que crea este)
Ejemplo CORBA: Java IDL
Definición de un modelo colaborativo entre Especializada y Primaria aplicado al diagnóstico por imagen médica.
Ingeniería de Software
JAVA RMI The Java Remote Method Invocation ELO330 – Programación de Sistemas Cesar Vásquez I
Como Desarrollar SW Distribuido de Calidad
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
BASE DE DATOS BY: Julián Villar Vázquez.
CORBA: Un Modelo de Objetos Distribuidos
OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA ING. MARISCAL.
ESB Víctor Cabrera Cañizares.
Desarrollo de aplicaciones para ambientes distribuidos
J2EE – Java 2 Enterprise Edition
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.
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.
Integración CORBA/OODB - Discusión Una Nueva Arquitectura para la Integración de CORBA y OODB Helios Alonso - Luis Pandolfi - Pablo Rodríguez Bocca Universidad.
Universidad Nacional de San Juan Facultad de Ciencias Exactas, Físicas y Naturales “WEB SERVICES” Integrantes: Ene Adriana Guevara Vanina Martínez Cintia.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Modelo de 3 capas.
1. Introducción a los Sistemas de Internet Gestión de Sistemas en Internet Universidad Antonio de Nebrija 2003/04 Justo N. Hidalgo Sanz.
Pontificia Universidad Javeriana Sistemas Distribuidos (2007/01)
MAESTRIA EN CIENCIAS DE LA COMPUTACION Comparación de implementación de sistemas distribuidos usando COM y CORBA Jesús Gil Muñoz Julio 2001.
Introducción AOO. Contenido - Introducción - Repaso de Orientación a Objetos - UML - Casos de Uso.
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
Fundamentos de Ingeniería de Software
Patrón de diseño BROKER
Conociendo el modelo Cliente-Servidor
BASES DE DATOS DISTRIBUIDAS M.C.C. María Guadalupe Villanueva Carrasco INGENIERIA EN SISTEMAS COMPUTACIONALES.
Transcripción de la presentación:

Tecnología de objetos distribuidos y arquitectura de componentes. Sistemas Informáticos Distribuidos Tema V Tecnología de objetos distribuidos y arquitectura de componentes.

Bibliografía Szyperski, C. 1998. Component Software. Addison-Wesley. Ruiz Cortés, 1998. A. CORBA: Una visión general. http://www.lsi.us.es/~aruiz Sevilla Ruiz, D. 2000. CORBA & Components. http://www.ditec.um.es/~dsevilla/ccm/. Object Management Group. 1995. CORBA Overview. http://www.infosys.tuwien.ac.at/Research/Corba/OMG Bernabéu Aubán, J.M. 1999. Sistemas de Objetos Distribuidos: El estándar CORBA. http://www.iti.upv.es/~josep/docencia/sdb/CORBA/CORBA.html Schmidt, D.C. 2000. Overview of CORBA. http://www.cs.wustl.edu/~schmidt/corba.html

Índice 1. Introducción. 2. OMA (Object Management Architecture). 3. CORBA (Common Object Request Broker Architecture). 4. Conclusiones.

Introducción Evolución de la arquitectura de los sistemas informáticos C/S 2 capas C/S 3 capas Presentación Sistemas monolíticos Presentación Negocio Presentación Negocio Negocio Negocio Datos Datos Datos BD

Arquitectura multicapa subcapas Presentación Negocio Datos BD

Arquitectura de componentes (I) (multicapa y 3-tier) 3:Component system 2:Component frameworks 1:Components ( tier  grada ) Tier 1: Arquitectura de componentes individuales. Tier 2: Arquitectura de los marcos de componentes. Macro-componentes definidos para realizar una función de negocio concreta. Tier 3: Arquitectura del sistema de componentes. Super-componente que define todo el sistema.

Arquitectura de componentes (II) Cada componente del tier 3 se define con un conjunto de componentes del tier 2, y cada uno del tier 2 por un conjunto del tier 1. COMPONENTE = módulo + conjunto de recursos Módulo = conjunto de clases y puede que elementos de proceso no orientados a objeto (procedimientos y funciones). Conjunto de recursos = múltiples interfaces que cada uno representa un servicio ofrecido por el componente. COMPONENTE  OBJETO

Arquitectura de componentes (III) Problemas: No basta una modelización correcta de jerarquía de clases e interacciones, se necesita una infraestructura (nivel de transporte) de comunicación que permita el flujo transparente de mensajes entre objetos de distintas aplicaciones en distintas máquinas Se debe evitar el crecimiento exponencial de interfaces Solución: Middleware de componentes

Arquitectura de componentes (IV) Alternativas: Sockets. Implementación costosa. Remote Procedure Calls (RPC). No soporta objetos explícitamente. Microsoft Distributed Component Object Model (DCOM) Menos maduro, menos portable y además propietario. Java Remote Method Invocation (RMI) Solo para JAVA. Common Object Request Broker Architecture (CORBA) Multiplataforma, multilenguaje, ...

OMA (Object Management Architecture) OMG: Object Management Group, Inc. http://www.omg.org Fundado en 1989. Objetivo: Desarrollo de estándares para la reutilización, portabilidad e interoperabilidad de software orientado a objetos en entornos heterogéneos y distribuidos. Solución: Definen OMA (Object Management Architecture) de la cual CORBA es una parte. Historia: 1991: CORBA 1.1 1995: CORBA 2.0 (Modelo de Referencia) 2000: CORBA 2.4 (actual) 2000-2001: CORBA 3.0 (Modelo de Componentes) (en desarrollo)

OMA: Objetivos técnicos Transparencia distribución Rendimiento local y remoto Comportamiento dinámico Sistema de nombrado Consultas: nombre, atributos, relaciones Control de la concurrencia Transacciones Robustez, disponibilidad Mantenimiento de versiones Notificación de eventos Semántica de Relaciones entre objetos API en C para todas las operaciones Administración y gestión Internacionalización Estandarización

Arquitectura del modelo de referencia OMA Application objects CORBA facilities CORBA 2.0 Object Request Broker (ORB) Object services (CORBAservices)

Object services (CORBAservices) (I) Definen 16 servicios comunes ofrecidos a los objetos: Naming service : Identificación de objetos Object security service : Servicio de seguridad Object trader service : Mercader de objetos. Los ofrece a los clientes. Object transaction service : Permite transacciones con commit-rollback Change management service : Gestor de versiones de implementación. Concurrency service : Gestión de bloqueos para permitir concurrencia Event notification service : Objetos que son mensajes de eventos Externalization service : Permite copiar objetos por valor Licensing service : Permite obtener licencias de uso de un objeto Lifecycle service : Crea, copia, mueve y borra objetos y grupos de objetos relacionados

Object services (CORBAservices) (II) Object collections service : Crea colecciones de objetos (basado en SMALLTALK) (árboles, listas, colas, conjuntos,...) Object query service : Permite localizar los objetos por el valor de sus atributos (parecido al Trader, pero en lugar de servicios ofrece atributos) Persistent object service : Permite al objeto sobrevivir a la terminación del programa que lo creó Properties service : Asocia propiedades al objeto (modificable, borrable o sólo lectura) Relationship service : Permite relaciones entre objetos Time service : Soluciona el problema del reloj asíncrono en los SID. Usa time-stamping.

CORBAfacilities Definen servicios comunes ofrecidos a las aplicaciones: Horizontales: define colecciones de objetos prefabricados Interfaz de usuario Gestión de la información Gestión de sistemas Gestión de tareas Verticales: define servicios comunes para un dominio completo (framework tier) Objetos de negocio Comercio electrónico Finanzas Manufacturación Medicina Telecomunicaciones

Application objects Definen servicios específicos de un determinado negocio o aplicación. Suponen el nivel más alto de los servicios soportados por la arquitectura OMA

CORBA (Common Object Request Broker Architecture) CORBA es un middleware orientado a objetos / componentes. Los objetos cliente solicitan servicios a los objetos servidor mediante invocación de método Separa interfaz e implementación Es independiente del lenguaje: los objetos clientes y servidores se implementan en cualquier lenguaje (de los soportados) Crea transparencia de localización a través del ORB : de objetos: la invocación siempre se hace en local de red: el ORB la gestiona de activación: los servidores se activan automáticamente de estado persistente: permite que el servidor guarde persistencia y es transparente al cliente

IDL (Interface Definition Language) CORBA incorpora un lenguaje de definición de interfaces (IDL) Independiente del lenguaje de implementación. Mapea hacia los lenguajes de programación habituales. Los ORBs llevan incorporados su traductor de IDL a los lenguajes de implementación soportados C C++ Java Delphi Ada SmallTalk IDL Object Request Broker (ORB)

Object Request Broker (ORB) Comunicación C/S en CORBA Servidor Cliente Invocation Interface Object Adapter Object Request Broker (ORB)

Object Request Broker (ORB) Arquitectura de CORBA Interface Repository IDL COMPILER Implementation Repository operación(args) Client OBJ REF Object (Servant) resultado(args) IDL Static Skeletons Dynamic Skeleton Interface Object Adapter Dynamic Invocation Interface IDL Stubs ORB Interface Object Request Broker (ORB)

Componentes primarios en CORBA (I) Object : Entidad de programación CORBA. Tiene una identidad, una interfaz, y una implementación (conocida como Servant). Servant (sirviente) : Implementación de una entidad en un lenguaje de programación (en cualquiera de los soportados). Define las operaciones que soporta un determinado interfaz CORBA IDL. Client : Entidad de programa que invoca una operación a una implementación de objeto. Idealmente será tan simple como una invocación a un método. Object Request Broker (ORB) (corredor de peticiones a objetos) : Núcleo de la arquitectura CORBA. Proporciona transparencia entre los clientes y las implementaciones de los objetos. Cuando un cliente invoca una operación, ORB busca la implementación del objeto, lo activa si es necesario, transmite la petición y devuelve la respuesta. Permite conexión con otros ORBs.

Componentes primarios en CORBA (II) ORB Interface : Interfaz de comunicación con el ORB para solicitarle servicios al propio ORB: conversión de referencias de objetos a cadenas, ... IDL stubs (cabos) : El stub es la interfaz que ve el cliente Representante del servidor en el lado cliente (proxy) Realiza invocación remota Define rutinas específicas para operaciones particulares en objetos particulares Definido en IDL y se transforma al lenguaje de programación del Cliente La transformación entre CORBA IDL y el lenguaje de programación se realiza automáticamente por el IDL compiler IDL skeletons (esqueletos) : Ofrece una interfaz estática a cada servicio del objeto Definido en IDL y se transforma al lenguaje de programación del Servant

Componentes primarios en CORBA (III) Dynamic Invocation Interface : Permite la construcción dinámica de invocaciones a objetos. No llama a una rutina específica para una operación particular en un objeto particular. El cliente especifica el objeto a ser invocado, la operación y el conjunto de parámetros (esto lo obtiene del Interface Repository) Dynamic Skeleton Interface : Permite el manejo dinámico de las invocaciones a objetos. No es accedido por un esqueleto específico para una operación determinada. Se proporciona acceso a través de un nombre de operación y parámetros.

Componentes primarios en CORBA (IV) Object Adapter : Conecta al ORB con la implementación del objeto para realizar los servicios que el ORB proporciona (a otros objetos y clientes): generación e interpretación de referencias a objetos invocación de métodos seguridad de las interacciones activación y desactivación del objeto y su implementación mapeo de las referencias de los objetos a sus implementaciones registro de implementaciones.

Componentes primarios en CORBA (V) Interface Repository : Almacena información relativa a las interfaces IDL definidas en el Sistema Distribuido. El ORB solicita los servicios al IR para: comunicarse con otros ORB de distinta implementación. verificar los parámetros de la petición verificar la existencia de ciclos en los grafos de herencia Los clientes solicitan los servicios al IR para: navegar por la lista de interfaces facilitar la instalación y distribución de objetos Un ORB puede tener varios IR según la necesidad (prueba, release, externos, ... Implementation Repository : Almacena información de administración de cada uno de los objetos: cuáles están instanciados, como activarlos, permisos, etc.

Conclusiones Independiente del Sistema Operativo y del lenguaje de programación Intenta hacer transparente a los programadores todos los aspectos que sea posible. Facilita la reutilización de software, incluso cuando no esté implementado en un OOL. Incorpora mecanismos de seguridad: autentificación, encriptación,... Tecnología OO. Estándar comercial y abierto. CORBA 3.0 Modelo de componentes (CCM)