corba idl ramón mª gómez labrador deptº lenguajes y sistemas informáticos universidad de...
TRANSCRIPT
![Page 1: CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla](https://reader035.vdocuments.site/reader035/viewer/2022062315/5665b43e1a28abb57c9051a5/html5/thumbnails/1.jpg)
CORBA IDLCORBA IDL
Ramón Mª Gómez Labrador
Deptº Lenguajes y Sistemas Informáticos
Universidad de Sevilla
![Page 2: CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla](https://reader035.vdocuments.site/reader035/viewer/2022062315/5665b43e1a28abb57c9051a5/html5/thumbnails/2.jpg)
ÍndiceÍndice
Esquemas generales sobre CORBA.Módulos e interfaces IDL.Ejemplo: cliente/servidor chat.Herencia.Partes de un interfaz IDL.Ejemplos.Comparativa de ORBs.Más información.
![Page 3: CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla](https://reader035.vdocuments.site/reader035/viewer/2022062315/5665b43e1a28abb57c9051a5/html5/thumbnails/3.jpg)
CORBACORBA
![Page 4: CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla](https://reader035.vdocuments.site/reader035/viewer/2022062315/5665b43e1a28abb57c9051a5/html5/thumbnails/4.jpg)
CORBACORBA
•Interfaces
![Page 5: CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla](https://reader035.vdocuments.site/reader035/viewer/2022062315/5665b43e1a28abb57c9051a5/html5/thumbnails/5.jpg)
CORBACORBA
• Cliente
![Page 6: CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla](https://reader035.vdocuments.site/reader035/viewer/2022062315/5665b43e1a28abb57c9051a5/html5/thumbnails/6.jpg)
CORBACORBA
•Servidor
![Page 7: CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla](https://reader035.vdocuments.site/reader035/viewer/2022062315/5665b43e1a28abb57c9051a5/html5/thumbnails/7.jpg)
Características del IDLCaracterísticas del IDL
Describe operaciones y parámetros de cada interfaz.
Lenguaje declarativo. Sintáxis similar al ANSI C++. Preprocesado como C++ (más #pragma). Usa el código de caracteres ISO-Latin1.
Common Object Request Broker Architecture and Specifications (revisión 2.1) del OMG.
PARA MÁS INFORMACIÓN...
![Page 8: CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla](https://reader035.vdocuments.site/reader035/viewer/2022062315/5665b43e1a28abb57c9051a5/html5/thumbnails/8.jpg)
Sintaxis IDLSintaxis IDL
Palabras reservadas:any attribute boolean case char
const context default double enum exception
FALSE fixed float in inout interface
long module Object octet oneway
out raises readonly sequence
short string struct switch TRUE typedef
unsigned union void wchar wstring
Signos de puntuación:; { } : , = + - ( ) < > [ ] ‘ “ \ | ^ & * / % ~
Preprocesado: # ## ! || &&
![Page 9: CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla](https://reader035.vdocuments.site/reader035/viewer/2022062315/5665b43e1a28abb57c9051a5/html5/thumbnails/9.jpg)
Especifiación IDLEspecifiación IDL
Módulos:– Declaración de tipos globales.– Declaración de constantes globales.– Declaración de excepciones globales.– Interfaces.– Módulos.
module identificador
{ /* Descripción */
}
![Page 10: CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla](https://reader035.vdocuments.site/reader035/viewer/2022062315/5665b43e1a28abb57c9051a5/html5/thumbnails/10.jpg)
Especifiación IDLEspecifiación IDL
Interfaces:– Declaración de tipos.– Declaración de constantes.– Declaración de excepciones.– Declaracion de atributos.– Declaración de operaciones.
interface ident [ : herencia , ... ]
{ /* Descripción */
}
![Page 11: CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla](https://reader035.vdocuments.site/reader035/viewer/2022062315/5665b43e1a28abb57c9051a5/html5/thumbnails/11.jpg)
Especifiación IDL (ejemplo)Especifiación IDL (ejemplo)
Cliente / servidor IRC: Definiciones IDL
– Broadcaster.idl– Receiver.idl
Interfaces Java– Broadcaster_impl.java– Receiver_impl.java
Interfaces C++/Xwindows– Broadcaster_impl.cpp– Receiver_impl.java y X11/Receiver_impl.cpp
![Page 12: CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla](https://reader035.vdocuments.site/reader035/viewer/2022062315/5665b43e1a28abb57c9051a5/html5/thumbnails/12.jpg)
HerenciaHerencia
Características:– Herencia múltiple.– Operador de resolución de nombre: ::
– No pueden redefinirse las operaciones.– No se permiten declaraciones ambiguas.
interface A {exception E;void f() raises E; }
interface B: A {void g() raises E; }
–La excepción E tiene los nombres globales:
::A::E
::B::E
![Page 13: CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla](https://reader035.vdocuments.site/reader035/viewer/2022062315/5665b43e1a28abb57c9051a5/html5/thumbnails/13.jpg)
Tipos de datosTipos de datos
Tipos básicos:– Enteros:
short long long long
unsigned short unsigned long unsigned long long
– Coma flotante:float double long double
– Carácter: char wchar
– Booleano: boolean
– Octal: octet
– Cualquier tipo básico: any
![Page 14: CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla](https://reader035.vdocuments.site/reader035/viewer/2022062315/5665b43e1a28abb57c9051a5/html5/thumbnails/14.jpg)
Tipos de datosTipos de datos
Tipos de plantilla:– Cadena: string wstring
– Secuencia: sequence
– Coma fija: fixed
Tipos compuestos:– Estructura: struct
– Unión: union
– Enumeración: enum
Vectores: tipo[n]
![Page 15: CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla](https://reader035.vdocuments.site/reader035/viewer/2022062315/5665b43e1a28abb57c9051a5/html5/thumbnails/15.jpg)
OperacionesOperaciones
Formato de una operación[ atributo ] tipo identificador parámetros [ excepciones ]
Atributos:– Sentido único: oneway
Parámetros:( [ atributo tipo identificador [ , ... ] ] )
– Atributos: in out inout
Excepciones:raises ( excepción [ , excepción ] )
![Page 16: CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla](https://reader035.vdocuments.site/reader035/viewer/2022062315/5665b43e1a28abb57c9051a5/html5/thumbnails/16.jpg)
Otras declaracionesOtras declaraciones
Constantes:const tipo identificador = expresión ;
Atributos:[ readonly ] attribute tipo ident [ , ... ] ] ;
Excepciones:exception ident { [ miembros ] } ;
![Page 17: CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla](https://reader035.vdocuments.site/reader035/viewer/2022062315/5665b43e1a28abb57c9051a5/html5/thumbnails/17.jpg)
ExcepcionesExcepciones
Estados:– Operación terminada:
COMPLETED_YES
– Oper. no terminada: COMPLETED_NO
– Indetermiante: COMPLETED_MAYBE
Tipos:– Sin excepción: NO_EXCEPTION
– Del usuario: USER_EXCEPTION
– Del sistema: SYSTEM_EXCEPTION
![Page 18: CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla](https://reader035.vdocuments.site/reader035/viewer/2022062315/5665b43e1a28abb57c9051a5/html5/thumbnails/18.jpg)
Ejemplo 1Ejemplo 1
module CORBA {
interface ORB {
typedef sequence<string> arg_list;
typedef string Oaid;
BOA BOA_init (inout arg_list argv,
in BOA boa_identifier);
// De igual modo, pueden definirse rutinas para otros AO.}
}
–Iniciación del BOA:
![Page 19: CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla](https://reader035.vdocuments.site/reader035/viewer/2022062315/5665b43e1a28abb57c9051a5/html5/thumbnails/19.jpg)
Ejemplo 2Ejemplo 2
module CORBA {
interface ORB {
typedef string ObjectId;
typedef sequence<ObjectId> ObjectIdList;
exception InvalidName {};
ObjectList list_initial_services ();
Object resolve_initial_refernces
(in ObjectId identifier)
raises (InvalidName); }
}
–Referencia niciación de un objeto:
![Page 20: CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla](https://reader035.vdocuments.site/reader035/viewer/2022062315/5665b43e1a28abb57c9051a5/html5/thumbnails/20.jpg)
Ejemplo 3Ejemplo 3
module CORBA {
typedef unsigned long PolicyType;
interface Policy {
readonly attribute PolicyType policy_type;
Policy copy ();
void destroy ();
}
typedef sequence<Policy> PolicyList;
}
–Política de seguridad de un objeto:
![Page 21: CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla](https://reader035.vdocuments.site/reader035/viewer/2022062315/5665b43e1a28abb57c9051a5/html5/thumbnails/21.jpg)
Ejemplo 4Ejemplo 4
module CORBA {
interface DomainManager {
Policy get_domain_policy
(in PolicyType policy_type); }
const PolicyType SecConstruction = 11;
interface ConstructionPolicy: Policy {
void make_domain_manager
(in CORBA::InterfaceDef object_type,
in boolean const_policy); }
typedef sequence<DomainManager> DomaninManagerList;}
–Gestión de dominios:
![Page 22: CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla](https://reader035.vdocuments.site/reader035/viewer/2022062315/5665b43e1a28abb57c9051a5/html5/thumbnails/22.jpg)
ORBs comercialesORBs comerciales
Comparativa de características de los núcleos.
Comparativa de los servicios CORBA ofrecidos.
Comparativa de las plataformas en que pueden ejecutarse.
![Page 23: CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla](https://reader035.vdocuments.site/reader035/viewer/2022062315/5665b43e1a28abb57c9051a5/html5/thumbnails/23.jpg)
Más informaciónMás información
OMG: http://www.omg.org/Especificaciones CORBA/IIOP 2.2:
http://www.omg.org/corbiiop.htm
Java-IDL:http://java.sun.com/products/jdk/1.2/docs/
guide/idl/index.html
Programas CORBA:http://www.infosys.tuwien.ac.at/Research/
Corba/software.html