Tipos corba
Tecnologías de objetos distribuidos:
CORBA: El lenguaje IDL (Invocación estática)
Agradecimientos: Jesus Villamor Lugo, Simon Pickin de IT/UCIIIM, Juan Pavón UCM, Fernándo Bellas UDC
1
CORBA IDL. Invocación estática Índice
¿Qué es IDL? Características de IDL Jerarquía de tipos en IDL El lenguaje en breves trazos
module interface Operations y parámetrosattributes exception,raises Tipos en IDL (primitivos, construidos) typedef
Traducción de tipos
Tipos simples Tipos complejos Const
Referencias
2
¿Qué es IDL?
IDL Interface Definition Language
¿Qué es?
Es un lenguaje de definición de interfaces Especifica la sintaxis de los interfaces Es neutral:
independiente del leng. de programación Independiente del sistema operativo
¿Para quésirve?
Establecer un contrato entre cliente y servidor indicando que servicios van a estar accesibles para el cliente desde el servidor.
3
¿Qué es IDL?
¿Cómo se crea?
Es un fichero con extensión .idl que consta de:
Declaración de módulos Declaración de interfaces
Soportan herencia Contienen atributos y operaciones
Declaración de tipos de datos,constantes y excepciones necesarios paradefinir las operaciones y atributos
¿Cómo se usa?
Se utiliza un compilador de idl que genera código para el lenguaje destino para poder invocar operaciones e implementar las interfaces. Existen mappings estandarizados para múltiples lenguajes (C, C++, Java, Cobol, Smalltalk, Ada, …) Al compilar se generan varios ficheros (ej. en java)
El Stub de cliente y el Skeleton del servidor Clases Holder yHelper Una clase para la implementación base
4
Características de IDL
Es un lenguaje neutro y de sólo definición
La manipulación de lo definido se hace en cualquiera de los lenguajes (generalmente OO) para los que se haya generado Stubs y Skeletons Aunque su sintaxis está fuertemente basada en C (Java y C++)
El fichero IDL crea su propio ámbito para cada uno de sus elementos
Losidentificadores sólo pueden ser definidos una vez dentro de un ámbito
Los identificadores son sensitivos a las mayúsculas
Las operaciones dentro de un mismo ámbito no pueden sobrescribirse
No existe polimorfismo
Permite herencia múltiple de interfaces
Siempre que las interfaces heredadas no definan la misma operación
5
El lenguaje en breves trazos
Interfaces. Conjunto de operaciones queun cliente puede “requerir” sobre un objeto. ( “Target Object” = Objeto de tipo interfaz X)
Operaciones. Entidad que denota un servicio que va ha ser requerido. [oneway] (param1,...,paramL) [raises (except1,..,exceptL)] [context(name1,...,nameL)] Atributo. Define dos operaciones:
Get_atributoX Set_atributoX Puede ser de solo lectura (get_atributoX)
6
Implementación de los Objetos
Laimplementación de los objetos llevan consigo los La implementación de los objetos llevan consigo los conceptos relativos a su comportamiento en un sistema conceptos relativos a su comportamiento en un sistema computacional computacional
Existen dos modelos:
⌦ Modelo de ejecución: Describe “como” los servicios son “ejecutados” ⌦ Modelo de construcción: Describe “como” los servicios son “definidos” (define el estado de los
objetos, métodos,infraestructura de selección de métodos).
7
Ejemplo IDL
module Banca { module Banca {
interface Cuenta { interface Cuenta { exception SaldoInsuficiente { float exception SaldoInsuficiente { float readonly attribute float balance; readonly attribute float balance; void ingreso(in float suma); void ingreso(in float suma); void reintegro(in floatsuma) raises void reintegro(in float suma) raises }; }; balance; balance; }; };
(SaldoInsuficiente); (SaldoInsuficiente);
interface interface readonly readonly }; };
CuentaCredito : CuentaCredito : attribute float attribute float
Cuenta { Cuenta { credito; credito;
interface Banco { interface Banco { exception Rechazada { string causa; }; exception Rechazada { string causa; };...
Regístrate para leer el documento completo.