La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla.

Presentaciones similares


Presentación del tema: "CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla."— Transcripción de la presentación:

1 CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla

2 Í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.

3 CORBA

4 CORBA Interfaces

5 CORBA Cliente

6 CORBA Servidor

7 Caracterí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...

8 Sintaxis IDL Sintaxis IDL Palabras reservadas: anyattributebooleancasechar constcontextdefaultdouble enumexception FALSEfixedfloatininoutinterface longmoduleObjectoctetoneway outraisesreadonlysequence shortstringstructswitchTRUEtypedef unsignedunionvoidwcharwstring Signos de puntuación: ; { } :, = + - ( ) [ ] ‘ “ \ | ^ & * / % ~ Preprocesado: # ## ! || &&

9 Especifiació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 */ }

10 Especifiació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 */ }

11 Especifiación IDL (ejemplo) Cliente / servidor IRC: Definiciones IDL –Broadcaster.idlBroadcaster.idl –Receiver.idlReceiver.idl Interfaces Java –Broadcaster_impl.javaBroadcaster_impl.java –Receiver_impl.javaReceiver_impl.java Interfaces C++/Xwindows –Broadcaster_impl.cppBroadcaster_impl.cpp –Receiver_impl.java y X11/Receiver_impl.cppReceiver_impl.javaReceiver_impl.cpp

12 Herencia 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

13 Tipos de datos Tipos básicos: –Enteros: shortlonglong long unsigned shortunsigned longunsigned long long –Coma flotante: floatdoublelong double –Carácter: charwchar –Booleano: boolean –Octal: octet –Cualquier tipo básico: any

14 Tipos de datos Tipos de plantilla: –Cadena: stringwstring –Secuencia: sequence –Coma fija: fixed Tipos compuestos: –Estructura: struct –Unión: union –Enumeración: enum Vectores: tipo[n]

15 Operaciones Formato de una operación [ atributo ] tipo identificador parámetros [ excepciones ] Atributos: –Sentido único: oneway Parámetros: ( [ atributo tipo identificador [,... ] ] ) –Atributos: inoutinout Excepciones: raises ( excepción [, excepción ] )

16 Otras declaraciones Constantes: const tipo identificador = expresión ; Atributos: [ readonly ] attribute tipo ident [,... ] ] ; Excepciones: exception ident { [ miembros ] } ;

17 Excepciones 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

18 Ejemplo 1 module CORBA { interface ORB { typedef sequence 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:

19 Ejemplo 2 module CORBA { interface ORB { typedef string ObjectId; typedef sequence ObjectIdList; exception InvalidName {}; ObjectList list_initial_services (); Object resolve_initial_refernces (in ObjectId identifier) raises (InvalidName);} } –Referencia niciación de un objeto:

20 Ejemplo 3 module CORBA { typedef unsigned long PolicyType; interface Policy { readonly attribute PolicyType policy_type; Policy copy (); void destroy (); } typedef sequence PolicyList; } –Política de seguridad de un objeto:

21 Ejemplo 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 DomaninManagerList;} –Gestión de dominios:

22 ORBs comerciales Comparativa de características de los núcleos. Comparativa de características de los núcleos. Comparativa de los servicios CORBA ofrecidos. Comparativa de los servicios CORBA ofrecidos. Comparativa de las plataformas en que pueden ejecutarse. Comparativa de las plataformas en que pueden ejecutarse.

23 Má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/gui de/idl/index.html Programas CORBA: http://www.infosys.tuwien.ac.at/Research/Co rba/software.html


Descargar ppt "CORBA IDL Ramón Mª Gómez Labrador Deptº Lenguajes y Sistemas Informáticos Universidad de Sevilla."

Presentaciones similares


Anuncios Google