Sistemas de Información



Documentos relacionados
Sistemas Distribuidos

TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA

OMG - CORBA. Object Management Group. Common Object Request Broker (CORBA)

SISTEMAS DISTRIBUIDOS DE REDES 3.- ESTANDAR CORBA Características

Tecnología de objetos distribuidos y arquitectura de componentes. Índice. Bibliografía. Introducción. Tema V

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

Componentes de Integración entre Plataformas Información Detallada

Práctica 5: Common Object Request Broker Architecture CORBA

Capítulo 1. Componentes de CORBA.

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

Tema 4. II - Cookies. Arquitecturas Distribuidas 11/12

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

Llamada a métodos remotos (RMI). Curso 04/05. Tema 9. Departament d Informàtica. Universitat de València. 1. Introducción 2

BASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS. Dámaso López Aragón

Familia de Windows Server 2003

SISTEMAS DE INFORMACIÓN III TEORÍA

UNIVERSIDAD DE OVIEDO

Nombramiento. M. en C. José Alfredo Estrada Soto. Servicio de nombres

Especificación WebService para:

Autenticación Centralizada

Gran número de usuarios accediendo a un único servicio y con un único protocolo. Servidores y clientes con distintos protocolos.

18 y 19 Sistemas de Archivos Distribuidos y Tarea 05

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Curso de Java POO: Programación orientada a objetos

- MANUAL TÉCNICO - Software de diagnóstico de la seguridad de la información y autoimplantación de LOPD. Rev. 01- FEBRERO 2013

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto

2.1 Compuertas para Bases de Datos

Informàtica i Comunicacions Plaça Prnt. Tarradellas, FIGUERES (Girona) Tel Fax

LABORATORIO DE RC: PRÁCTICA 4: IMPLEMENTACIÓN DE UN CLIENTE DE CORREO

Arquitectura de sistema de alta disponibilidad

Tema 11 Bases de datos. Fundamentos de Informática

Windows Server 2012: Infraestructura de Escritorio Virtual

Sistemas de archivos distribuidos. Alvaro Ospina Sanjuan

Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi

Implantar el iphone y el ipad Apple Configurator

SAP BusinessObjects Edge BI Standard Package La solución de BI preferida para. Empresas en Crecimiento

1

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

Resumen de Requisitos Técnicos para incorporación de Organismos a la Plataforma Integrada de Servicios Electrónicos del Estado

GMF Gestor de incidencias

Service Oriented Architecture

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

Resumen. El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl

Procedimiento. Actualización de Kit de Conexión de Comercios Webpay versión 5.X a Canales Remotos Operaciones. Transbank S.A.

5.1 Introducción a Servicios Web

TECNOLOGÍAS ASOCIADAS A LAS APLICACIONES WEB

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Análisis, Diseño e Implementación de un Sistema de. Alquiler de autos usando tecnología Cliente/Servidor con

Oficina Online. Manual del administrador

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

- MANUAL TÉCNICO - Implantación de software de Marketing Online

3.9 Patrón Distributed callback

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

Bases de Datos 3º Informática de Sistemas

Asignación de Procesadores

Manual del Protocolo XML-RPC de Mensajería Negocios

Redes de área local: Aplicaciones y servicios WINDOWS

Ley Orgánica de Protección de Datos

Modelo de Objetos Distribuidos

Oracle 12c DISEÑO Y PROGRAMACIÓN

Sistemas de Información Introducción a los Sistemas de Información: El Modelo Cliente/Servidor

Capítulo 5. Cliente-Servidor.

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

Windows Server 2012: Infraestructura de Escritorio Virtual

BASES DE DATOS OFIMÁTICAS

INSPIRE Discovery Service

SISTEMAS DE INFORMACIÓN II TEORÍA

Base de datos relacional

2.1 Multibase. Información mas detallada sobre este sistema se encuentra en [Ceri y Pelagatti 1985].

SISTEMAS DE ARCHIVOS DISTRIBUIDOS

GTIDEE Web Feature Service (WFS) Versión Página 1 de 9 IDEE. Estándar de interfaz. Web Feature Service (WFS) Versión 1.1.

Manual de Integración CubeCart

Creación y administración de grupos de dominio

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Modelos de los sistemas distribuidos. Jorge Iván Meza Martínez

SISTEMAS IDEALES SISTIDE, S.A. SISTEMA GESTION DE USUARIOS

SCGDoc. SisConGes & Estrategia

GESTIÓN DE REDES PARTE III

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).


Introducción a las redes de computadores

Windows Server 2012: Identidad y Acceso. Módulo 2: Descripción General de Windows Server 2012 Remote Desktop Services.

Tomás P. de Miguel Dpto. Ingeniería de Sistemas Telemáticos. dit UPM

Patrones para persistencia (I) Ingeniería del Software II

PROGRAMACIÓN PÁGINAS WEB CON PHP

Plataforma desarrollo Java Formación elearning tutorizada en castellano. Fabricante: Java Grupo: Desarrollo Subgrupo: Master Java

Ejercicios - Persistencia en Android: proveedores de contenidos y SharedPreferences

Programación páginas web. Servidor (PHP)

Planificación y administración de redes SNMP

Lección 8 Introducción a las llamadas a procedimientos remotos (RPC) Universidad de Oviedo / Dpto. de Informática

ArquitecturaTécnica de TRAVEL OPEN APPS. Breve definición técnica de la plataforma Travel Open Apps

NOTAS TÉCNICAS SOBRE EL SIT: Emisión Electrónica de Documentos (EDI)

Gestión de Configuración del Software

Roles y Características

Transcripción:

Sistemas de Información Tecnologías de Objetos Distribuidos Servicios CORBA Agradecimientos: esta presentación se basa parcialmente en una presentación de Juan Pavón Mestras de la UCM y en una de Jesus Villamor Lugo de IT/UCIIIM, la última basada a su vez en una presentación de Juan José Gil Ríos de Terra 1

Objetivos de OMA Interfaces estándar que permiten extensibilidad del software Transición tecnológica gradual Productividad mejorada debido a la inter-operabilidad del software en redes heterogéneas Interfaces de usuario intuitivas Uniformidad y consistencia sobre diferentes e independientes aplicaciones (gracias a los estándares) OMA ofrece a usuarios y desarrolladores, la filosofía de inter-operabilidad de sistemas software distribuidos, a través de la mayor cantidad de hardware, sistemas operativos y lenguajes de programación 2

Un breve repaso de OMA Non-standardized app-specific interfaces Application objects Application domain-specific interfaces Vertical Facilities Common facility interfaces Horizontal Facilities Object Request Broker Object Services General service interfaces 3

COSS I Object Services Cuatro servicios iniciales: Nombrado (Naming): correspondencia entre nombres convenientes de objetos y referencias a objetos reales. Ciclo de Vida (Object Life Cycle): creación, borrado, copiado y traslado de objetos. Eventos (Event): registro para la notificación requerida y esperada de la ocurrencia de eventos. Extensión: Notificación (Notification). Estado persistente (Persistent State), antes Objeto Persistente (Persistent Object): existencia a largo plazo de objetos, gestión del almacenamiento de objetos. publicadas por OMG/Wiley como COSS Volumen I en 1994 4

COSS II Object Services Cuatro servicios más: Relación (Relationship): gestión de representación y consistencia de relaciones entre objetos. Externalización (Externalization): capacidad para almacenar la representación de objetos en medios removibles y permitir más adelante la re-internalización. Transacciones (Transaction): combina el paradigma de transacciones y el de objetos para tratar los problemas del procesamiento de transacciones comercial. Control de Concurrencia (Concurrency Control ): gestión de la ejecución concurrente en un entorno distribuido. publicadas como CORBAServices en 1995. 5

COSS III y COSS IV Object Services Consulta (Query): permite a usuarios y objetos invocar consultas en colecciones de otros objetos (1995). Propiedades (Property): define operaciones para crear y manipular conjuntos de propiedades (parejas nombre-valor) asociadas a objetos (1995) Licencia (Licencing): mecanismos para que los productores controlen el uso de su propiedad intelectual (1995). Seguridad (Security): identificación, autenticación, etc. (1996). Tiempo (Time): hora y temporizadores (1996) Extensión: Visión Realzada del Tiempo (Enhanced View of Time). Negociación (Trading): localización de objetos (paginas amarillas) suministrando información del servicio requerido (1996). 6

Servicios CORBA Servicios bien conocidos El ORB está configurado para dar las referencias de los servicios básicos, los servicios CORBA bien conocidos : Servicio de Nombres ( NameService ) Servicio de Trader ( TradingService ) Repositorio de Interfaces ( InterfaceRepository ) Para obtener la referencia a uno de estos servicios (por ejemplo el Servicio de Nombres): org.omg.corba.object objeto = orb.resolve_initial_references( NameService ); NamingContext ns = NamingContextHelper.narrow(objeto); 7

Servicio de Nombrado Concepto básico Cada objeto tiene un único ID (o referencia) Opcionalmente se pueden asociar uno o más nombres a una referencia Siempre se puede definir un nombre relativo a su contexto Servicio de Páginas Blancas Encapsula el nombre en directorios tales como DCE CDS, ISO X.500 o SUN NIS+ La idea es no reinventar la rueda La jerarquía de nombres no necesita un root universal 8

COSNaming Uso del servicio El Servicio de Nombres guarda pares <nombre, referencia a objeto> Los nombres están organizados en una jerarquía El Servicio de Nombres es usado por cliente y servidor: El servidor asocia (bind) en el Servicio de Nombres una referencia a objeto con un nombre El cliente puede pedirle al Servicio de Nombres que a partir de un nombre le dé (resolve) una referencia a un objeto CORBA Servicio de Nombres Servidor bind(a, ref) resolve(a) cliente ref A jerarquía de nombres proxya 9

COSNaming Jerarquía de nombres Los nombres están organizados jerárquicamente Ejemplos de jerarquías: sistema de ficheros, direcciones y dominios en Internet, etc. Un nodo en la jerarquía puede ser: Un contexto de nombres o define un espacio de nombres Un nombre (necesariamente nodo hoja) o puede tener asociado una referencia a un objeto Un objeto puede tener asociados varios nombres La organización de la jerarquía de nombres es flexible Hyatt Méjico Grecia Ixtapa Directorio Global Recursos Directorio ClubMed ClubMed Playa Blanca Cancún Hawaii o para adaptar otros servicios de directorio fácilmente (por ejemplo, DCS CDS, ISO X.500, Sun NIS+, Internet LDAP) 10

COSNaming Nombres Cada Name está formado por varios NameComponent Cada NameComponent es un par: <identificador, clase> typedef string Istring; typedef sequence<namecomponent> Name; struct NameComponent { Istring id; Istring kind; }; id es el nombre que identifica el objeto NameComponent kind cualifica id (no es obligatorio darle un valor) Ejemplos: ( C:, volumen )( usuario, dir )( juan, dir )( ejemplo.idl, archivo idl ) ( Compañía, )( Sucursal, )( Madrid, Ciudad )( Director, cargo ) 11

COSNaming Interfaz NamingContext interface NamingContext { }; NamingContext new_context(); void destroy() raises (NotEmpty); Object resolve (in Name n) raises (NotFound, CannotProceed, InvalidName); void list (in unsigned long how_many, out BindingList b, out BindingIterator bi); void unbind(in Name n) raises (NotFound, CannotProceed, InvalidName); void bind(in Name n, in Object obj) raises (NotFound, CannotProceed, InvalidName, AlreadyBound); void rebind(in Name n, in Object obj) raises (NotFound, CannotProceed, InvalidName); void bind_context(in Name n, in NamingContext nc) raises (NotFound, CannotProceed, InvalidName, AlreadyBound); void rebind_context(in Name n, in NamingContext nc) raises (NotFound, CannotProceed, InvalidName); void bind_new_context(in Name n) raises (NotFound, CannotProceed, InvalidName, AlreadyBound); 12

COSNaming Interfaz BindingIterator La operación list() devuelve una lista de bindings: enum BindingType { nobject, ncontext }; struct Binding { Name binding_name; BindingType binding_type; }; typedef sequence<binding> BindingList; void list (in unsigned long how_many, out BindingList bl, out BindingIterator bi); La interfaz BindingIterator permite recorrer la lista de bindings: interface BindingIterator { boolean next_one(out Binding b); boolean next_n(in unsigned long how_many, out BindingList bl); void destroy(); }; 13

Creación de un nombre y asociación a un objeto Normalmente es el servidor quien crea un nombre y le asocia a una referencia a objeto 1) Obtiene el NamingContext raíz llamando a resolve_initial_references( NameService ) 2) Crea los NamingContext necesarios (si no existen) usando bind_new_context() 3) Crea las asociaciones a las referencias a objetos usando bind() 14

COSNaming Excepciones En NamingContext define las siguientes excepciones: NotFound InvalidName Algún componente del nombre especificado no está en la jerarquía de nombres El nombre especificado no es válido AlreadyBound El objeto ya está asociado con el nombre dado NotEmpty El NamingContext tiene al menos un binding Por lo tanto el código anterior debería estar en un bloque try...catch para tratarlas 15

Obtener el objeto asociado a un nombre El cliente busca un nombre y obtiene el objeto asociado 1) Obtiene el NamingContext raíz llamando a resolve_initial_references( NameService ) 2) Crea un Name, que puede ser compuesto por uno o más NameComponent 3) Obtiene la referencia a un objeto invocando resolve() sobre el NamingContext raíz 4) Hace narrow() de la referencia a objeto conseguida 16

Usando una jerarquía de nombres Lado servidor: registrar el nombre // Consigue la referencia al servicio de Nombres org.omg.corba.object nsobj = orb.resolve_initial_references("nameservice"); NamingContext ns = NamingContextHelper.narrow(nsObj); // Primer contexto: Divisiones NameComponent[] divisiones = {new NameComponent( Divisiones","");}; NamingContext divisionesnc = ns.bind_new_context(divisiones); // Segundo contexto: Ventas NameComponent[] ventas = { new NameComponent( Ventas", Madrid"); }; NamingContext ventasnc = divisionesnc.bind_new_context(ventas); // Nombre: Director NameComponent[] director = { new NameComponent( Director",""); }; ImplPersona implp = new ImplPersona(); Persona p = implp._this(orb); ventasnc.bind (director, p); 17

Usando una jerarquía de nombres Lado cliente: obtener el objeto // Consigue la referencia al servicio de Nombres org.omg.corba.object nsobj = orb.resolve_initial_references("nameservice"); NamingContext ns = NamingContextHelper.narrow(nsObj); // Prepara el nombre compuesto: Divisiones Ventas Director NameComponent[] nombredirector = new NameComponent[] { new NameComponent( Divisiones",""), new NameComponent( Ventas ", Madrid"), new NameComponent( Director ","") }; // Resuelve el nombre en el contexto raíz org.omg.corba.object objetodirector = ns.resolve(nombredirector); // Hace narrow a Persona Persona p = PersonaHelper.narrow(objetoDirector); 18

Nombres interoperables Esquema URI Corbaloc Permite especificar referencias de objeto como URIs: corbaloc:<protocol>:<version><host>:<port>/<key_string> <version> = <major>. <minor> @ Si no se especifica el protocolo, se supone IIOP (v1.1) Si no se especifica el host, se supone localhost Si no se especifica el puerto, se supone 2809 Actualmente, sólo tres protocolos reconocidos: protocolo IIOP: estándar de CORBA (GIOP sobre TCP/IP) corbaloc:iiop:<host>:<port>/<key_string> protocolo RIR: resolve_initial_references(key_string) ej. corbaloc:rir:/nameservice protocolo IOR: Interoperable Object Reference 19

Nombres interoperables Stringified names Stringified names: syntax para nombres de COSNaming::Name en forma de cadena (tipo path): carácter / : para separar los NamingComponent carácter. : para separar la cadenas del id y del kind si el NamingComponent no tiene kind no se escribe el. Mecanismo de escape Se puede utilizar los caracteres / y. dentro de la cadena del id o del kind escapandoles con un \ 20

Nombres interoperables Stringified names interface NamingContextExt : NamingContext { typedef string StringName; typedef string Address; typedef string URLString; // converts a sequence of NameComponent into a stringified name StringName to_string(in Name n) raises(invlaidname); // converts a stringified name into a sequence of NameComponent Name to_name(in StringName sn) raises(invalidname); // resolves a stringified name into an object reference Object resolve_str(in StringName sn) raises(notfound, CannotProceed, InvalidName); exception InvalidAddress{}; }; // combines corbaloc address and stringified name into URL URLString to_url(in Address addr, in StringName sn) raises(invalidaddress, InvalidName) 21

Nombres interoperables Esquema URI Corbaname Extensión del esquema corbaloc para el servicio de nombres # seguido por un stringified name añadido al final del URL Si no se especifica la clave, se supone la cadena NameService Dos formas: // resuelve <strname> en el contexto de nombrado definido // por <host>:<port> y clave <key_string> corbaname::<host>:<port>/<key_string>#<strname> // resuelve <strname> en el contexto de nombrado devuelto // por resolve_initial_references( NameService ) corbaname:rir:#<strname> Conversión de URLs en formato corbaloc o corbaname a referencias de objeto: CORBA::ORB::string_to_object() 22

Nombres interoperables Configuración de referencias iniciales -ORBInitRef Se utiliza par dar la referencia de objeto de un servicio inicial -ORBInitRef <ObjectID>=<ObjectURL> o ObjectID = NameService, TradingService, NotificationService etc. o ObjectURL no puede ser de formato corbaloc:rir: Ejemplo: -ORBInitRef NameService=corbaname::myhost.example.com -ORBDefaultInitRef Proporciona una cadena prefijo para resolver nombres con resolve_initial_references que no se han podido resolver de otra manera 23

Servicio de Ciclo de Vida Concepto básico Proporciona operaciones para crear, copiar, mover y borrar objetos Trabaja en conjunción con el Servicio de Relación o Asociaciones de contenido (in) o Asociaciones de referencia (reference) o Constricciones entre objetos Efecto del borrado de un objeto Borra la referencia (su ID) Libera espacio en memoria Borra todas sus asociaciones con otros objetos 24

Un ejemplo Objeto Archivador in reference Objeto Documento Archivador Fuente Sistema A Archivador Destino Sistema B Objeto Catálogo Archivador Fuente Sistema A Borra los Ids de los Objetos y Libera el espacio 25

Servicio de Eventos Concepto básico Un evento es una acción sobre un objeto que va a ser de interés para uno o más objetos Una notificación es un mensaje que un objeto envía a sus participantes informando que un evento ha ocurrido Roles y canales Proveedores: Producen eventos Consumidores: Los procesan mediante manejadores Canal de Eventos: Transmite eventos 1:1 ó 1:N Dos modelos Push: El proveedor toma la iniciativa y envía el evento Pull: El consumidor toma la iniciativa y pide el evento 26

Modelos de Eventos Estilo push: Event: Aha: House is The house on fire Is on fire Supplier Event Channel Consumer Consumer Aha: The house Is on fire Push Push Object Request Broker Estilo pull: Event: House is on fire Hey! What s Happening? Supplier Event Channel Consumer Consumer Pull Pull Object Request Broker 27

Servicio de Persistencia Concepto básico La persistencia almacena el estado de un objeto en un almacén no volátil de datos CORBA PSS Persistent State Service (nombre antiguo: POS Persistent Object Service) Define interfaces a los datos de los objetos persistentes (PO) usando interfaces IDL bien definidas PO: Persistent Object Posee el grano más fino de persistencia o Colabora con sus Bases de Datos Decide qué protocolo usar para el almacenaje o Delega la gestión a los servicios persistentes 28

Elementos del PSS Aplicación Cliente PO PO PO PO PO Persistent Objects (POs) Protocolo POM Protocolo Persistent Object Manager (POM) Datastore_CLI DDO ODMG DA Persistent Data Services (PDSs) Datastores SQL Databases ODBMSs Simple Object Stores 29

Servicio de Relación Concepto básico Permite crear dinámicamente relaciones entre objetos inmutables o El servicio oculta a los objetos de que forman parte de una relación Motivación Relaciones multi-direccionales Manipulación por terceros (ni cliente, ni servidor) Navegación por grafos de objetos Herencia entre relaciones 30

Tipos de Relaciones y Otros Conceptos Tipos de Relaciones Relación de propiedad (ownership) Relación de contención (containment) Relación de referencia (reference) Relación de autoría (authoring) Relación de empleo (employment) Rol, Grado, Cardinalidad Rol: Papel que el objeto juega en la asociación Grado: Número de roles en una asociación Cardinalidad: Número máximo de asociaciones en que un rol está envuelto 31

Servicio de Externalización Concepto Permite externalizar un objeto a un stream e internalizarlo desde un stream o El objeto se puede salvar y restaurar desde un fichero o El programador puede mover por el stream con un cursor Poder del stream Permite la importación/exportación de objetos Permite una persistencia básica Los objetos se pueden copiar y mover Los objetos se pueden pasar por parámetro 32

Servicio de Transacciones Concepto La transacción es la unidad atómica que garantiza la ejecución consistente de una operación o conjunto de operaciones en un sistema distribuido o Implica un cliente junto con uno o más servidores Características (OTS) Soporta transacciones planas y anidadas Permite la convivencia con transacciones procedurales Soporta transacciones sobre distinto ORBs Hace transaccional el IDL sin más que heredar la implementación del IDL de una clase abstracta de OTS 33

Servicio de Control de Concurrencia Concepto Provee interfaces que adquieren y liberan locks y permiten a los clientes coordinar su acceso a recursos compartidos o Permite asociar locks a transacciones concurrentes o El recurso que debe candarse es el servidor, no el cliente o Deben prevenirse los deadlock Operaciones básicas del lock read, write, intention read, intention write y upgrade Ej. de deadlock: varios clientes tienen un read lock y uno de ellos adquiere un write lock 34

COSS III y COSS IV Object Services Consulta (Query). Permite a usuarios y objetos invocar consultas en colecciones de otros objetos (Mar/95). Propiedad (Property). Define operaciones para crear y manipular conjuntos de propiedades asociadas a objetos (Nov/95) Licencia (Licensing). Mecanismos para que los productores controlen el uso de su propiedad intelectual (Nov/95). Seguridad (Security). Identificación, autenticación, etc. (Mar/96). Tiempo (Time). Hora y temporizadores (Mar/96). Extensión: Visión Realzada del Tiempo (Enhanced View of Time). Negociación (Trading). Localización de objetos (paginas amarillas) suministrando información del servicio requerido (Oct/96). 35

Servicio de Consulta Concepto Permite consultar y manipular cualquier objeto CORBA o Sea volátil o persistente, local o remoto, individual o colectivo Dos lenguajes de consulta con el QS OQL (ODMG-93 s Object Query Language) SQL (con extensiones orientadas a objetos) Modo de operar Parecido al método de Invocación Dinámica o El cliente Crea el QueryManager, quien crea la Query o Sobre él se prepara la consulta, se ejecuta y se obtiene el resultado iterando sobre una colección 36

Servicio de Propiedades Concepto Son atributos dinámicos o Se pueden definir en tiempo de ejecución sin necesidad de usar IDL o Se pueden asociar a cualquier objeto que ya exista o No tienen por qué ser atributos definidos en el objeto a caracterizar Interfaces o PropertySet, PropertySetDef Operaciones o define property, get value, set value, set mode, delete mode 37

Servicio de Consulta Concepto Permite consultar y manipular cualquier objeto CORBA o Sea volátil o persistente, local o remoto, individual o colectivo Dos lenguajes de consulta con el QS OQL (ODMG-93 s Object Query Language) SQL (con extensiones orientadas a objetos) Modo de operar Parecido al método de Invocación Dinámica o El cliente Crea el QueryManager, quien crea la Query o Sobre él se prepara la consulta, se ejecuta y se obtiene el resultado iterando sobre una colección 38

Servicio de Licencia Concepto Permite registrar componentes CORBA o Se puede fijar un período de uso del componente o Las licencias se peden asignar a diferentes usuarios, colecciones de usuarios u organizaciones o Los gestores de licencia tienen restricciones de seguridad Para evitar la introducción de Caballos de Troya Interfaces LicenseServiceManager o obtain_producer_specific_license_service ProducerSpecificLicenseService o start_use o check_use o end_use 39

Servicio de Seguridad Concepto Eres tú quien dices ser? Non-Repudation o Un ORB puede probar irrefutablemente si una acción tuvo lugar Non-Tampering and Encryption o Secure Socket Layer (SSL) Security Domain o Conjunto de objetos a los cuales aplicar una política de seguridad Authenticated Id o Hace al cliente responsable de sus acciones o Permite al servidor determinar qué recursos se van a acceder o Identifica únicamente el que envía el mensaje o Permite a los proveedores de servicios determinar a quien facturar o Sirve privilegios que pueden ser delegados 40

Servicio de Seguridad Cómo funciona authenticate User Sponsor set_credentials Client Server get_attributes Principal Authenti- cator Current invoke Current create Creden- tials reference ORB 00102570 Authenticated ID & Privileges ADMIT ONE 41

Servicio de Seguridad Delegación de Privilegios Client Client credentials Inter- mediate Object Intermediate credentials Target Object a) No Delegation Client Client credentials Inter- Client credentials mediate Object b) Simple Delegation Target Object Client Client credentials Inter- mediate Object Client & intermediate s credentials Target Object c) Composite Delegation 42

Servicio de Tiempo (ST) Concepto Permite ordenar en el tiempo eventos o Consigue el tiempo actual o Averigua el orden en que ocurren los eventos o Genera eventos basados en temporizadores y alarmas o Calcula el intervalo entre dos eventos El mecanismo de sincronización o El ST tiene un agente en cada máquina (Time Clerk) o Introduce factores de inexactitud para compensar desplazamientos o Introduce objetos (Time Server) que responde a consultas sobre el tiempo Unidad de tiempo utilizada o UCT Time: Universal Time Coordinated o Representación universal del tiempo (X/Open) o Se define en unidades de 100 nanosegundos 43

Servicio de Negociación Concepto Servicio de páginas amarillas o Descubre los objetos basándose en los servicios que provee Mecanismo de exportación - importación Los Negociadores (Traders) se pueden federar o Pueden anunciar sus servicios o Pueden propagar sus peticiones Criterios de búsqueda Políticas o Cómo emprender la búsqueda (sobre qué traders, en qué orden,...) Restricciones o Criterio de selección Preferencias o Orden en el cual devolver los objetos encontrados 44

Servicio de Negociación Cómo funciona Trader ORB Client Importer Import Service Export Service Server Exporter ORB Invoke Service ORB 45

Algunas Referencias Orfali, R., Harkey D. Y Edwards J. (1997). Instant CORBA. New York: John Wiley &Sons inc. ISBN 0-471-18333-4. Object Management Group (1995). CORBAServices: Common Object Services Specification. 95-12-30. Diciembre 1995. Orfali, R. y Harkey D. (1997). Client/Server Programing with JAVA and CORBA. New York: John Wiley &Sons inc. ISBN 0-471-16351-1. 46