MASTER EN COMPUTACIÓN
UNIVERSIDAD
DE CANTABRIA
Sistemas Distribuidos de Tiempo Real
Apuntes: TEMA 4
Por:
J. Javier Gutiérrez
[email protected]
http://www.ctr.unican.es/
Grupo de Computadores y Tiempo Real, Universidad de Cantabria
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
18/abr/13
1
Sistemas distribuidos de tiempo real
UNIVERSIDAD
DE CANTABRIA
PARTE II: Modelos de distribución
• TEMA 3. Modelo de distribución de Ada
• TEMA 4. Modelo de distribución de CORBA y RT-CORBA
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
18/abr/13
Introducción a CORBA
Definido por el OMG: Object Management Group
Estándar industrial para DOC:
• Distributed Object Computing Middleware
Modelo cliente-servidor:
• Reside entre los clientes y los servidores y simplifica el
2
UNIVERSIDAD
DE CANTABRIA
desarrollo de aplicaciones al proporcionar una visión uniforme
de las diversas capas de sistema operativo y red
Versión actual CORBA 3.3 (noviembre 2012)
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
18/abr/13
3
UNIVERSIDAD
DE CANTABRIA
Introducción a CORBA (cont.)
Basado en los ORBs (Object Request Brokers) que permiten a los
clientes invocar operaciones en una implementación de un objeto:
• sin necesidad de saber dónde se encuentra dicho objeto
• ni el lenguaje de implementación del mismo
• ni el tipo de plataforma OS/Hardware
• ni los protocolos
• ni redes o buses de interconexión
Todas las operaciones incluso las no remotas se invocan a través
del ORB
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
18/abr/13
4
Modelo de referencia de CORBA
Object Request Broker
• definido en la especificación CORBA
Object Services
• conjunto de servicios que soportan funciones básicas para usar
UNIVERSIDAD
DE CANTABRIA
e implementar objetos
• definido en la especificación CORBAservices (Common Object
Services Specification)
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
18/abr/13
5
Modelo de referencia de CORBA
(cont.)
Common Facilities
• conjunto de servicios que las aplicaciones pueden compartir,
pero que no son tan fundamentales como los Object Services
UNIVERSIDAD
DE CANTABRIA
• definido en la especificación CORBAfacilities (Common
Facilities Architecture)
Application Objects
• productos proporcionados por un vendedor o un grupo de
desarrollo
• se corresponden con la noción tradicional de aplicaciones
• no son estandarizados por la OMG
• constituyen la capa más alta del modelo de referencia
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
18/abr/13
6
Especificaciones CORBA
UNIVERSIDAD
DE CANTABRIA
OMG Middleware Specifications
CORBA/IIOP Specifications
NOTE: With the release of CORBA 3.0, the following specifications were
removed from the core specification and became stand-alone documents.
Real-Time
CORBA
Minimum CORBA
These documents are located in the Specifications Catalog
under the Specialized CORBA Specifications category.
IDL / Language Mapping Specifications
Specialized CORBA Specifications
CORBA Component Model (CCM) Specification
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
18/abr/13
7
Algunas especificaciones de CORBA
• Minimum CORBA: elimina ciertas características del CORBA
completo que no son necesarias para los sistemas de tiempo
real ni para los empotrados
UNIVERSIDAD
DE CANTABRIA
• Real-Time CORBA: RT-CORBA define características que
permiten un predecibilidad de principio a fin para operaciones
en aplicaciones CORBA de prioridades fijas
• POA Portable Object Adapter: evolución de BOA (Basic Object
Adapter) que hacen de mediadores entre los objetos de CORBA
y las implementaciones
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
18/abr/13
8
UNIVERSIDAD
DE CANTABRIA
Minimum CORBA 1.0
Es un subconjunto de CORBA diseñado para sistemas con
recursos limitados
Mantienen algunas características costosas en cuanto a tamaño
del ORB y stubs, incluso cuando la aplicación no hace uso de ellas
(TypeCode Features, Exception Features, Inheritance Features)
Se eliminan las características que dan soporte a los aspectos
dinámicos de CORBA (Dynamic Invocation Interface, Dynamic
Skeleton Interface, Dynamic Management of Any Value)
También se elimina gran parte del Interface Repository
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
18/abr/13
9
Minimum CORBA 1.0 (cont.)
Soporta un subconjunto de las interfaces y políticas soportadas
por el POA
Debe soportar al menos un 'language mapping' tal y como está
definido por la OMG
• debe soportar el mapping completo exceptuando el de aquellos
UNIVERSIDAD
DE CANTABRIA
objetos que se han omitido
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
18/abr/13
10
UNIVERSIDAD
DE CANTABRIA
RT-CORBA
RT-CORBA es un conjunto de extensiones opcionales de CORBA
para tiempo real:
• extensión del CORBA 2.2 y del Messaging Specification
Basado en prioridades fijas
No proporciona portabilidad para un sistema operativo de tiempo
real:
• la portabilidad está sustentada en las extensiones POSIX de
tiempo real
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
18/abr/13
11
Categorízación de la especificación
CORBA
Core:
• modelo de objeto, lenguaje IDL, interfaces, invocación de
objetos, repositorio, POAs
UNIVERSIDAD
DE CANTABRIA
Interoperability:
• cómo conectar diferentes ORBs (GIOP)
Interworking:
• cómo trabajar con otras arquitecturas de distribución de objetos
QoS:
• servicios de mensajes, tolerancia a fallos y seguridad
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
18/abr/13
12
Terminología básica de CORBA
Objeto CORBA:
• entidad virtual capaz de ser localizada por un ORB y de recibir
UNIVERSIDAD
DE CANTABRIA
peticiones por parte de un cliente
Objeto destino (target):
• objeto CORBA al que se dirige una petición por parte de un
cliente
Cliente:
• entidad que realiza peticiones sobre un objeto CORBA
Servidor:
• aplicación en la que existen uno o más objetos CORBA
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
18/abr/13
13
Terminología básica de CORBA (cont.)
Petición:
• invocación de una operación sobre un objeto CORBA por un
UNIVERSIDAD
DE CANTABRIA
cliente
Referencia a objeto:
• etiqueta usada para identificar, localizar y direccionar un objeto
CORBA de forma única
Sirviente (servant):
• entidad de un lenguaje de programación que implementa uno o
más objetos CORBA
• los sirvientes existen dentro del contexto de una aplicación
servidor
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
18/abr/13
14
Modelo de objeto
CORBA define un modelo de objeto abstracto que no depende de
ninguna implementación concreta
El propósito del objeto es proporcionar servicios a los clientes
El cliente realiza peticiones de servicio, y:
• recibe la respuesta al servicio
• o sólo el servidor realiza la operación asociada en el caso de
UNIVERSIDAD
DE CANTABRIA
peticiones en una dirección
• o se produce un fallo de algún tipo
El formato de las peticiones se realiza de acuerdo a una sintaxis y
semántica definidas por el lenguaje
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
18/abr/13
15
UNIVERSIDAD
DE CANTABRIA
Modelo de objeto (cont.)
Se define un valor como una instancia particular de un objeto de
algún tipo de dato IDL que puede ser usado como parámetro en
una llamada
También se define la referencia a un objeto como un valor que
designa a un objeto particular
Se definen los tipos como entidades para definir objetos
Los objetos ofrecen su funcionalidad a través de las interfaces;
éstas se pueden agupar en modules
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
18/abr/13
16
Tipos de CORBA
Básicos:
• Short, Long, LongLong, Ulong, UlongLong, Float, Double,
LongDouble, Fixed, Char, Wchar, String, Wstring, Boolean,
Octet, Enum
UNIVERSIDAD
DE CANTABRIA
• Any: representa cualquier tipo básico o estructurado
Estructurados (constructed):
• Struct, Sequence, Union, Array
Interfaces:
• agrupa el conjunto de operaciones que se pueden hacer sobre
un objeto
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
18/abr/13
Tipos de CORBA (cont.)
Tipos valor:
• es una mezcla de una interfaz y una struct
Interfaces abstractas:
• puede representar una interfaz o un tipo valor
17
UNIVERSIDAD
DE CANTABRIA
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
18/abr/13
18
Operaciones en CORBA
Una operación es una entidad identificable que suministra un
servicio indivisible caracterizada por:
• unos parámetros requeridos en su llamada (in, out, inout)
• la especificación de un resultado
• la identificación de las excepciones que podría elevar
• alguna información del contexto que pudiera afectar a la
UNIVERSIDAD
DE CANTABRIA
invocación
• una indicación de la semántica de ejecución que podría esperar
el cliente que la invoca: at-most-once, best-effort (oneway)
Formato general:
[oneway]<op_type_spec><identifier>(param1,...,paramL)
[raises(except1,...,exceptN)][context(name1,...,nameM)]
GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
© J. Javier Gutiérrez
18/abr/13
19
El ORB
Es el eje de cualquier implementación de CORBA
Su implementación no requiere que sea un solo componente, sino
que implemente sus interfaces:
• operaciones iguales para todos los ORBs
• operaciones específicas de tipos de objetos particulares
• operaciones específicas de un estilo particular de
UNIVERSIDAD
DE CANTABRIA
implementación de objetos
El núcleo del ORB suministra la representación básica
Comentarios de: Sistemas distribuidos de tiempo real - TEMA 4. Modelo de distribución de CORBA y RT-CORBA (0)
No hay comentarios