Common Object Request Broker Architecture (CORBA)

Slides:



Advertisements
Presentaciones similares
APLICACIONES DISTRIBUIDAS
Advertisements

U.M.L A/Gx. Diego Gutiérrez Application Analysis and Design.
Arquitecturas de administración de redes y sus submodelos
Servicios Web XML 03 de Junio de 2004 Fernando Alonso Blázquez.
Plan de Implantación Sistemas de Información III
Hardware y Software de servidor
Servidores Web Capítulo 2.
J2EE – Java 2 Enterprise Edition
Carlos Rojas Kramer Universidad Cristóbal Colón
Common Object Request Broker Architecture
ASPECTOS DEL DISEÑO DE SD
Lenguajes Servicios Web
Servicios Web.
SISTEMAS EN TIEMPO REAL Y DISTRIBUIDOS CAPITULO 1
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
Introducción a la Orientación a Objetos
"java del lado del servidor" Servlet y JSP Java Server Pages.
Tipos de Servicios Web.
Tecnología de objetos distribuidos y arquitectura de componentes.
RMI Remote Method Invocation
Java 2 Platform Enterprise Edition
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
Características generales de un servicio Web.
Ingeniería del Software
Universidad Nacional de San Antonio Abad del Cusco
San José, Costa Rica Febrero, 2011 Sistema de Formulación Presupuestaria.
Desarrollo de Software Basado en Componentes
BASES DE DATOS ORIENTADAS A OBJETO
Universidad Simón Bolívar Departamento de Computación y T.I Sistemas de operación III CI-4822 Modelo de Objetos Distribuidos CORBA: Un caso de Estudio.
Universidad Centroamericana
Unified Modeling Language (Lenguaje de Modelamiento unificado)
Profesor: Miguel Angel Vidal
Ingeniería del software II
Sistemas Operativos Centralizados y Distribuidos Carlos David Zepeda.
Tecnologías para el desarrollo de aplicaciones Web
Remoting.Net Michel Rener. TEMARIO ¿Qué es una Aplicación Distribuida? ¿Qué es una Aplicación basada en Cliente/Servidor? ¿Qué es la Tecnología de Objetos.
Ejemplo CORBA: Java IDL
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.
JAVA RMI The Java Remote Method Invocation ELO330 – Programación de Sistemas Cesar Vásquez I
DISEÑO DE SOFTWARE 1ª. Parte
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
CORBA: Un Modelo de Objetos Distribuidos
Arquitectura de la Empresa
OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA ING. MARISCAL.
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.
Servidores Conceptos Generales.
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?
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.
UML 2.0 Integrantes: Diana Carolina Valencia M. Jhon Fernando Lopez T. Carlos Alberto Castillo.
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.
“condición que necesita el usuario para resolver un problema o conseguir un objetivo determinado”. Los requisitos de un sistema son los aspectos que el.
Términos y Conceptos Básicos
Modelo de 3 capas.
DIAGRAMA DE SECUENCIA Y ACTIVIDADES.
DESARROLLO DE APLICACIONES PARA AMBIENTES DISTRIBUÍDOS ALUMNOS: MARIANA MIGNÓN RÉDING CARLOS ANTONIO CARRASCO MARTÍNEZ PROFESOR: DR. JOSÉ BERNARDO PARRA.
Protocolos de comunicación TCP/IP
Tecnologías Cliente / Servidor
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.
Unified Modeling Language (Lenguaje de Modelamiento unificado)
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLEMENTACIÓN DE COMPONENTES.
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
Conociendo el modelo Cliente-Servidor
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.
Servicios Web-SOA Aula: Fomento 05/06/2006 a 08/05/2006.
Transcripción de la presentación:

Common Object Request Broker Architecture (CORBA)

Introducción Como se inicio CORBA y de donde viene. ¿Qué es CORBA? ¿Cuál es el propósito / objetivos de CORBA? Definición Middleware ¿Cómo responder a los objetivos?

Como se inicio CORBA y de donde viene. En 1989 se forma el Object Management Group (OMG), con la finalidad de buscar soluciones a los problemas que surgen al desarrollar nuevos sistemas o de integrar aplicaciones centralizadas ya existentes en entornos distribuidos. En 1991, el OMG recoge su propuesta en un modelo inicial denominado Object Management Architecture (OMA), en el que destaca el corazón de dicha arquitectura: la especificación de CORBA (Common Object Request Broker Arquitecture). Actualmente dicho grupo acaba de concluir la especificación de CORBA 3.0. A partir de la especificación de CORBA, varios fabricantes han construido ya productos comerciales: ORBIX de IONA o el Visibroker de Borland. También, se han desarrollado numerosos productos de libre distribución: Oxbit, Mico, Tao, etc.

Arquitectura de un Sistema CORBA

¿Cuál es el propósito / objetivos de CORBA? • Permitir el desarrollo portátil de código orientado a objetos, interoperable que es de hardware, sistema operativo, red y lenguaje de programación independiente. El modelo de gestión de objetos distribuidos CORBA se compone de: • El modelo de objetos en donde se describe qué es un objeto CORBA • El modelo de referencia en donde se explica qué arquitectura se propone para permitir que los objetos CORBA puedan relacionarse.

¿Qué soluciona CORBA? Aplicaciones. Procesos clientes y servidores que representan la lógica del negocio como objetos que pueden residir en distintas máquinas. Middleware. Soporte que permite la comunicación entre aplicaciones. Servicios de Red. Transporta la información entre computadores. Servicios Locales. Ejemplo, bases de datos y administradores de transacciones. Sistema Operativo. Provee servicios básicos de Hw y scheduling.

Definición Middleware Conjunto de servicios comunes no relacionado con “la lógica de negocio” que permite que aplicaciones servidoras y clientes interactúen con otras a través de una Red. En esencia el Middleware es el software que reside sobre la red , permitiendo software de aplicación orientados sólo a “lógica de negocio.

Importancia del Middleware.

Productos de Groupware, como por ejemplo Lotus Notes. Ejemplos sobre implementaciones de Middleware. Correo Electrónico. Provee servicios no relacionados con el negocio que residen sobre la red permitiendo interconectar usuarios. Productos de Groupware, como por ejemplo Lotus Notes. Web Browser, Web gateways. Sql Gateways. Paquetes de “Electronic Data Interchange” (EDI). Paquetes de Remote procedure Call (RPC). Servidores de Objetos distribuidos, como por ejemplo CORBA.

¿Cómo responder a los objetivos? Existe una interfaz entre aplicaciones clientes y servidoras. Una lenguaje de definición de interfaz (IDL) ha sido definido específicamente para CORBA. Cualquier objeto puede ser un cliente, un servidor o ambos. Para efectos de descripción CORBA usa el modelo Cliente/Servidor. No conoce los detalles de las implementaciones fundamentales de los objetos. Un “object adapter” mapea modelos genéricos a implementaciones, siendo la principal manera en que las implementaciones de los objetos acceden los servicios provistos por el ORB (object Request Broker)

Interface Definition Language (IDL) Independencia de Idioma Define las interfaces de objetos Denota servicios que pueden ser atendidos y ejecutados para cambiar de valor y adquirir un valor. La especificación IDL de OMG provee una forma estándar de definir las Interfaces a los objetos de CORBA. La definición IDL es una especie de contrato entre el desarrollo de un objeto y cliente. IDL es independiente de lenguajes de programación y se mapea a los lenguajes mas típicos para desarrollar, actualmente se encuentra e esta generación de código a C, C++, SmallTalk, Java, Ada, Cobol.

Define un recipiente (espacio de nombres) Interface Definition Language (IDL) module <identifier> { interface <identifier> [:inheritance] <type declarations>; <constant declarations>; <exception declarations>; <attribute declarations>; [<op_type>] <identifier>(<parameters>) [raises exception][context]; } Define un recipiente (espacio de nombres) Define un objeto CORBA Define un método

Compilador IDL Definir objetos mediante IDL. Ejecute el archivo IDL través compilador IDL. Compilador utiliza las asignaciones de idioma de programación para generar stubs y esqueletos específicos del idioma. Definiciones IDL Compilador IDL Stubs skeletons

Stubs y skeletons Stubs IDL estáticos o SII (Static Invocation Interface). Las operaciones locales que usan los clientes como sustitutas de las remotas. Generadas por el compilador de IDL. Envían y reciben mensajes (haciendo “marshalling” / “unmarshalling”). En lenguajes OO se genera una clase “proxy” por cada interfaz remoto (patrón de diseño “Proxy”).

Stubs y skeletons Skeletons IDL estáticos o SSI (Static Skeleton Interface). Las operaciones en el servidor que invocan las correspondientes implementaciones proporcionadas por el programador . Generadas por el compilador de IDL Reciben y envían mensajes (haciendo “unmarshalling” / “marshalling”). En lenguajes OO se genera una clase “skeleton” por cada interfaz remoto

Object Request Broker (ORB) Permite realizar invocaciones de métodos de objetos remotos en un entorno heterogéneo. El documento estándar se llama CORBA (Common Object Request Broker Architecture). En la práctica, el nombre CORBA realmente se aplica para referirse al conjunto de especificaciones. Las especificaciones de interfaces remotos se hacen en IDL (Interface Definition Language). Se han estandarizado los mappings de IDL a los lenguajes más comunes (C, C++, Java, COBOL, Smalltalk, Ada, etc.)

Servicios Interfaces de servicios útiles para aplicaciones de cualquier dominio. Nombres Trading Seguridad Transacciones Persistencia Eventos Notificaciones Etc…

Componentes de un ORB

Compilador IDL (IDL Compiler) Compila definición IDL en stubs y skeletons. Utiliza OMG asignaciones idioma especificados para traducir IDL en una aplicación específica del lenguaje.

Depósito de Implementación (Implementation Repository) Contiene información que permite al ORB para localizar y activar implementaciones de objetos. Proporciona información sobre las clases admite el servidor, los objetos que se crean instancias y sus documentos de identidad

ORB Core Proporciona mecanismo para comunicar de forma transparente las solicitudes de cliente para apuntar implementaciones de objetos Hace solicitudes de los clientes, parecen ser llamadas a procedimientos locales. GIOP - General de Protocolo Inter - ORB. IIOP - Internet Protocolo Inter - ORB. ORB Core GIOP/IOOP

Objetos de cliente (servidor) ORB Interface Cliente Objetos de cliente (servidor) Proporciona funciones auxiliares. Conversión de referencias de objetos a cadenas. Creación de listas de argumentos para las solicitudes realizadas a través de DII. ORB Interface

IDL Stub Interfaz de Invocación estática (SII). Client Interfaz de Invocación estática (SII). Los datos de aplicación Alguaciles en una representación común a nivel de paquetes. Orden de bytes de red (little - endian o big - endian). Tamaño de los tipos de datos IDL Stub

Interfaz de Invocación Dinámica Emitir peticiones dinámicamente a los objetos sin necesidad de stubs IDL se vinculen en: Los clientes descubren las interfaces en tiempo de ejecución y aprenden cómo llamar a Pasos: Obtener nombre de la interfaz Obtener la descripción del método(desde el repositorio de interfaz) Crear lista de argumentos Crear solicitud Invoque petición Cliente DII

Interfaz de Skeleton Dinámico Análogo del lado del servidor para DII. Permite un ORB para entregar las solicitudes a una implementación de objeto que no tiene conocimiento en tiempo de compilación del tipo de objeto que está llevando a cabo Objet (servidor) DSI

Adaptador de objetos Aceptar las solicitudes de servicio en nombre de los objetos del servidor. De múltiples peticiones al servidor correcto. Despachos el upcall operación correspondiente en el servidor. Registra las clases que apoya y sus instancias en tiempo de ejecución con el repositorio de la aplicación. Adaptador Portable Objeto (POA). Políticas comportamiento del objeto de control (es decir, LifespanPolicy) Instancia del patrón de diseño del adaptador

Referencia de Objetos Cliente Objetos(servidor) OBJ REF • Interoperable Object Reference (IOR) • Identifica de forma exclusiva cada objeto • Contenidos • Nombre Tipo (ID repositorio) • Protocolo y Detalles Servicios • Clave de objeto (nombre del adaptador objeto, nombre de objeto)

Implementación Depositor Escenario Interface Depositor IDL Ccompilador Implementación Depositor Client Objetos (servidor) OBJ REF IDL Stub DII ORB Interface Adaptador de Objetos IDL Skeleton DSI ORB Core GIOP/IOOP

Ventajas Con respecto a otras tecnologías similares Software COTS (Commercial Off The Shelf) Estandarizado, múltiples implementaciones (no se depende de un fabricante). Las especificaciones se adoptan por consenso. Buena infraestructura para construir aplicaciones distribuidas. Permite integrar aplicaciones heterogéneas

Desventajas No es la tecnología más sencilla de utilizar ... Las especificaciones tardan en desarrollarse, y en consecuencia las implementaciones tardan en salir al mercado

Seguridad Los Servicios de CORBA proveen servicios a nivel de aplicaciones fundamentales para las aplicaciones orientada a objetos y componentes en entornos Distribuidos. La OMG a definido alrededor de 15 servicios de objetos. Los cuales son: Nombres Trader Notificación Eventos Transacciones Seguridad Ciclo de vida propiedades Persistencia Consulta Relaciones Concurrencia Externaliza ion Licenciamiento Tiempo Colección

Seguridad De estos la seguridad controla la identificación de los elementos del sistema, permite verificar que un cliente esta autorizado a acceder los servicios de una implementación remota. Adicionalmente permite la comunicación segura de comunicación inseguras, ofreciendo confidencialidad e integridad de la información transmitida.

Conclusión • Objeto, arquitectura de componentes distribuidos ejemplos del mundo real de los patrones de diseño - TAO - freeware ORB • Adaptador de fábrica, Reactor, Estrategia • Transportes enchufable

Bibliografía www.omg.org www.cs.wustl.edu/~schmidt/corba.html Communications of the ACM, October 1998 Jeri Edwards, Dan Harkey, and Robert Orfali. Instant CORBA. New York: Wiley Computer Publishing, 1997.