Download - Sistemas Distribuidos Con CORBA
![Page 1: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/1.jpg)
1
Tema 2: Sistemas Distribuidos con CORBA
Programación Programación Concurrente y DistribuidaConcurrente y Distribuida
PrácticasPrácticas
![Page 2: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/2.jpg)
22
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
Índice:
1. ¿Qué es CORBA?
2. Arquitectura de un sistema CORBA
3. Alternativas a CORBA
4. El lenguaje IDL
![Page 3: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/3.jpg)
3
1. ¿Qué es CORBA? CORBA NO es:
Ni un lenguaje de programaciónNi un sistema operativo
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
CORBA es un estándar de la OMG que:Establece una forma de construcción de software ínter
operativo empleando tecnología orientada a objetos
CORBA es sólo una especificaciónDicha especificación es implementada por las distintas
plataformas que construyen los fabricantes
Dicha especificación recoge:La forma en que se define la interfaz de los objetosCómo dichos objetos interactúan con ellosServicios y facilidades disponibles a los objetos
![Page 4: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/4.jpg)
4
1. ¿Qué es CORBA? CORBA nos proporciona… Independencia de lenguaje de programación
IDL (Interface Definition Language): Lenguaje neutral que permite definir las interfaces de los objetos
Los objetos se implementan en nuestro lenguaje habitual de programación
La traducción de IDL a los distintos lenguajes de programación está estandarizada (¡y automatizada!)
Independencia de sistema operativo y hardwareLa especificación recoge…
• Los protocolos por los que interactúan los objetos
• La forma en la que se representan y transmiten los datos
Independencia de localización física de los objetos
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
![Page 5: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/5.jpg)
5
1. ¿Qué es CORBA?
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
metodo1()
metodo2()…
metodoA()…
atributo1
…
atributo2
op1()
op2()
opA()
opAtrib1()
![Page 6: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/6.jpg)
66
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
Índice:
1. ¿Qué es CORBA?
2. Arquitectura de un sistema CORBA
3. Alternativas a CORBA
4. El lenguaje IDL
![Page 7: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/7.jpg)
7
2. Arquitectura de un sistema CORBA
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
Objeto 2Objeto 1
ServiciosCORBA
FacilidadesCORBA
ORB
AO AO
ORB ORB
IIOP
![Page 8: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/8.jpg)
8
2. Arquitectura de un sistema CORBA
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
Objeto 2Objeto 1
ServiciosCORBA
FacilidadesCORBA
AO AO
ORB ORB
IIOP
Servicios CORBA Implementan funciones de bajo nivel de uso habitual Interfaz estandarizada Implementación de cada servicio es opcional Algunos servicios definidos en estándar:
Servicio de nombresServicio de localizaciónServicio de eventosServicio de propiedades
![Page 9: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/9.jpg)
9
2. Arquitectura de un sistema CORBA
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
Objeto 2Objeto 1
ServiciosCORBA
FacilidadesCORBA
AO AO
ORB ORB
IIOP
Facilidades CORBA Implementan funciones de alto nivel de uso habitual Tipos de facilidades:
Horizontales: común a cualquier tipo de aplicaciónVerticales: específicas a un ámbito determinado
Facilidades horizontales:Interfaz de usuarioAdministración de informaciónAdministración de sistemasAdministración de tareas
![Page 10: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/10.jpg)
10
2. Arquitectura de un sistema CORBA
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
Objeto 2Objeto 1
ServiciosCORBA
FacilidadesCORBA
AO AO
ORB ORB
IIOP
ORB (Object Request Broker) Actúa como un bus de interconexión de objetos Gestiona:
comunicación entre objetosTransferencia de datos (Marshalling/Unmarshalling)
IIOP (Internet Inter-ORB Protocol) Permite interoperación entre
ORB’s Basado en TCP/IP No es el único protocolo Inter-
ORB
![Page 11: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/11.jpg)
11
2. Arquitectura de un sistema CORBA
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
Objeto 2Objeto 1
ServiciosCORBA
FacilidadesCORBA
AO AO
ORB ORB
IIOP
Adaptador de Objetos Actúa como interfaz entre ORB y objetos CORBA estandariza interfaz de adaptador
CORBA 1.0: BOA (Basic Object Adapter)CORBA 2.0, 3.0: POA (Portable Object Adapter)
Funciones:Activación de objetos Mapeo entre interfaces y sus
implementaciones…
![Page 12: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/12.jpg)
1212
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
Índice:
1. ¿Qué es CORBA?
2. Arquitectura de un sistema CORBA
3. Alternativas a CORBA
4. El lenguaje IDL
![Page 13: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/13.jpg)
13
3. Alternativas a CORBA
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
Programación mediante interfaz de sockets¡Muy bajo nivel!
RPC (Remote Procedure Call)Protocolo de llamada a procedimientos remotosMás bajo nivel
DCE (Distributed Computing Environment)Conjunto de servicios estandarizados de OSFIdea similar a CORBAMurió
DCOM (Distributed Component Object Model)Tecnología propietaria de MicrosoftSólo para plataformas WindowsRelativamente robustoAbandonada a favor de .NET
![Page 14: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/14.jpg)
14
3. Alternativas a CORBA
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
PVM (Parallel Virtual Machine)Librerías C/C++ para programación distribuidaMuy usado en ingeniería y matemáticasVersión 3: ¡1993!http://www.csm.ornl.gov/pvm/
SR (Synchronizing Resources)Lenguaje de programación de la universidad de ArizonaExclusivamente empleado en ámbito universitariohttp://www.cs.arizona.edu/sr/
MPD (Multithreaded, Parallel and Distributed)Sucesor de SRhttp://www.cs.arizona.edu/mpd/
![Page 15: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/15.jpg)
15
3. Alternativas a CORBA
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
Java RMIArquitectura muy similar a CORBA (compatible desde JDK
1.2)Ventaja: paso de objetos por valorInconveniente: implementación ligada a interfaz
.NET RemotingInterfaz de invocación remota de plataforma .NETSimilar a CORBA y a Java RMISólo plataforma .NET (.NET 3.0 forma parte de Windows
Vista)
Servicios WebColección de protocolos y estándares que sirve para
intercambiar datos entre aplicacionesEspecificación de interfaces: WSDLTransporte: HTTPInvocación remota: SOAPRepresentación de datos: XML
![Page 16: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/16.jpg)
16
3. Alternativas a CORBA
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
Inconvenientes de CORBA Complejo y extenso Diferencias importantes entre fabricantes de plataformas Tecnología en evolución ¿Poco futuro?
![Page 17: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/17.jpg)
1717
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
Índice:
1. ¿Qué es CORBA?
2. Arquitectura de un sistema CORBA
3. Alternativas a CORBA
4. El lenguaje IDL
![Page 18: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/18.jpg)
18
4. El lenguaje IDL
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
1. Notas generales
2. Concepto de mapping
3. El tipo interface
4. Tipos predefinidos
5. Constantes
6. Tipos compuestos
7. Creación de tipos
8. Tipos contenedores
9. Herencia
10. Excepciones
11. Módulos
![Page 19: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/19.jpg)
19
4. El lenguaje IDL
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
1. Notas generales
2. Concepto de mapping
3. El tipo interface
4. Tipos predefinidos
5. Constantes
6. Tipos compuestos
7. Creación de tipos
8. Tipos contenedores
9. Herencia
10. Excepciones
11. Módulos
![Page 20: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/20.jpg)
20
4.1 Notas generales
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
Interface Definition Language: no hay sentencias “ejecutables”
Permite definir:Interfaces, compuestas por
• Atributos
• Operaciones
Tipos y constantesExcepcionesAgrupaciones de todo lo anterior (módulos)
![Page 21: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/21.jpg)
21
4.1 Notas generales
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
Aspectos léxicos Mayúsculas y minúsculas:
Son distintas, PERO……en un mismo ámbito, dos identificadores no se pueden
diferenciar sólo en su uso
Toda declaración termina en “;” Comentarios:
Estilo C++: // comentario hasta final de líneaEstilo C: /* Comentario hasta cierre de comentario */
Existe preprocesador léxico:#define, #include, #ifdef…#endif, #ifndef...#endif, etc.
Normalmente: archivos con terminación “.idl”
![Page 22: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/22.jpg)
22
4. El lenguaje IDL
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
1. Notas generales
2. Concepto de mapping
3. El tipo interface
4. Tipos predefinidos
5. Constantes
6. Tipos compuestos
7. Creación de tipos
8. Tipos contenedores
9. Herencia
10. Excepciones
11. Módulos
![Page 23: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/23.jpg)
23
4.2 Concepto de mapping
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
Definición: Elementos o construcciones del lenguaje destino al que se traduce cada elemento IDL
Mapping está normalizado para los distintos lenguajes:JavaC++Ada…
![Page 24: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/24.jpg)
24
4. El lenguaje IDL
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
1. Notas generales
2. Concepto de mapping
3. El tipo interface
4. Tipos predefinidos
5. Constantes
6. Tipos compuestos
7. Creación de tipos
8. Tipos contenedores
9. Herencia
10. Excepciones
11. Módulos
![Page 25: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/25.jpg)
25
4.3 El tipo interface
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
Es un tipo compuesto en IDL Define una interfaz de objetos Mapping: se traduce a una interfaz Java
El traductor genera cierta infraestructura para cada interfaz
Sintaxis de la declaración básica:
interface nombre { // declaración de atributos
// declaración de operaciones
};
[readonly] attribute tipo nombre_atributo;readonly attribute long contador;attribute string nombre;
[oneway] tipo nombre_operacion (modo tipo nombre_param1, …);long calculo (in long a, in long b);void generar (inout long clave, out string resultado);oneway void registrar (in string nombre);
![Page 26: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/26.jpg)
26
4.3 El tipo interface
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
No hay sobrecarga en IDL¿La soportaría cualquier lenguaje al que se traduzca?
No pueden coincidir los nombres de una operación y un atributo
No existenConstructoresDestructoresModificadores de acceso (private, public, protected)
Mapping atributos:Una operación de lectura y otra de escritura (si no readonly)
interface nombre { …
interface nombre {
…
attribute long contador; int contador(); // Accessorvoid contador(int value); // Mutator
readonly attribute long contador;
![Page 27: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/27.jpg)
27
4.3 El tipo interface
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
Mapping operaciones: métodos JavaParámetros en modo out o inout: clases envolturaUsa clases envoltura específicas de CORBA en lugar de Java:
Ejemplo: org.omg.CORBA.intHolder
En CORBA: tipo interfaz siempre es un tipo por referencia
Nunca se pasan objetos CORBA por valor
![Page 28: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/28.jpg)
28
4. El lenguaje IDL
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
1. Notas generales
2. Concepto de mapping
3. El tipo interface
4. Tipos predefinidos
5. Constantes
6. Tipos compuestos
7. Creación de tipos
8. Tipos contenedores
9. Herencia
10. Excepciones
11. Módulos
![Page 29: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/29.jpg)
29
4.4 Tipos predefinidos
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
Tipo IDL DescripciónMapping
Java
void Tipo nulo void
boolean Tipo lógico boolean
char Carácter básico char
wchar Carácter ampliado (dep. implementación) char
float Número real float
double Número real de doble precisión double
long double Número real largo de doble precisión double
long Número entero (32 bits) int
long long Número entero largo (64 bits) long
unsigned long Número entero (32 bits) sin signo int
unsigned long long
Número entero largo (64 bits) sin signo long
![Page 30: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/30.jpg)
30
4.4 Tipos predefinidos
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
Tipo IDL DescripciónMapping
Java
short Entero corto (16 bits) short
unsigned short Entero corto (16 bits) sin signo short
octect Byte (8 bits) byte
string Cadena de caracteres String
![Page 31: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/31.jpg)
31
4. El lenguaje IDL
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
1. Notas generales
2. Concepto de mapping
3. El tipo interface
4. Tipos predefinidos
5. Constantes
6. Tipos compuestos
7. Creación de tipos
8. Tipos contenedores
9. Herencia
10. Excepciones
11. Módulos
![Page 32: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/32.jpg)
32
4.5 Constantes
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
Sintaxis:
const tipo nombre= valor;
Se puden declarar…Dentro de una interfazFuera de cualquier interfaz
Mapping:
const tipo nombre=valor;
interface nombreInterface { const tipo nombre=valor; …}
interface nombre{ public static final tipo value=valor; }
interface nombreInterface { public static final tipo nombre=valor; … }
![Page 33: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/33.jpg)
33
4. El lenguaje IDL
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
1. Notas generales
2. Concepto de mapping
3. El tipo interface
4. Tipos predefinidos
5. Constantes
6. Tipos compuestos
7. Creación de tipos
8. Tipos contenedores
9. Herencia
10. Excepciones
11. Módulos
![Page 34: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/34.jpg)
34
4.6 Tipos compuestos
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
enum nombre_enumerado {literal1, literal2, … literaln};
Mapping: public class nombre_enumerado implements org.omg.CORBA.portable.IDLEntity{ private int __value; … public static final int _literal1 = 0; public static final nombre_enum literal1 = new nombre_enum(_literal1); … protected nombre_enum (int value) { __value = value; … } …
Enumerados Sintaxis:
![Page 35: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/35.jpg)
35
nombre_enumerado var1= nombre_enumerado.literal1;nombre_enumerado var2= var1;…if (var1 == var2) …
nombre_enumerado
4.6 Tipos compuestos
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
Enumerados (cont.) No se puede suponer relación de orden entre los
literales Uso:
literal1
literal2
literaln
…
Cierto si var1 y var2 apuntan al mismo objeto
![Page 36: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/36.jpg)
36
4.6 Tipos compuestos
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
struct nombre_structura { tipo1 campo1; … tipon campon;};
Mapping: public final class nombre_struct implements org.omg.CORBA.portable.IDLEntity{ public tipo1 campo1 = …; … public nombre_struct (tipo1 _campo1, …) { campo1 = _campo1; … } …
Estructuras Sintaxis:
![Page 37: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/37.jpg)
37
4. El lenguaje IDL
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
1. Notas generales
2. Concepto de mapping
3. El tipo interface
4. Tipos predefinidos
5. Constantes
6. Tipos compuestos
7. Creación de tipos
8. Tipos contenedores
9. Herencia
10. Excepciones
11. Módulos
![Page 38: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/38.jpg)
38
4.7 Creación de tipos
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
typedef tipo nombre_tipo;
Mapping: No ha lugarEl nombre de tipo creado se sustituye por el tipo equivalente
Uso principal: tipos contenedoresSólo se pueden crear mediante typedef
Sintaxis:
![Page 39: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/39.jpg)
39
4. El lenguaje IDL
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
1. Notas generales
2. Concepto de mapping
3. El tipo interface
4. Tipos predefinidos
5. Constantes
6. Tipos compuestos
7. Creación de tipos
8. Tipos contenedores
9. Herencia
10. Excepciones
11. Módulos
![Page 40: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/40.jpg)
40
4.8 Tipos contenedores
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
typedef tipo_base tipo_array [tamaño];…interface I{ attribute tipo_array atributo1; … };
Mapping: array Java del tipo resultante de aplicar mapping al tipo base
Tamaño de array siempre es fijoRango del índice: depende de lenguaje de programación
Arrays Los atributos de tipo array deben declararse mediante
typedef Sintaxis:
![Page 41: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/41.jpg)
41
4.8 Tipos contenedores
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
typedef sequence<tipo_base> tipo_secuencia; // Ilimitadatypedef sequence<tipo_base,tamaño> tipo_secuencia; // limitada…interface I{ attribute tipo_secuencia atributo1; …
Secuencias Secuencia: sucesión de elementos del mismo tipo (lista) Los atributos de tipo secuencia deben declararse
mediante typedef Dos tipos de secuencias:
Limitadas (bounded)Ilimitadas (unbounded)
Sintaxis:
![Page 42: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/42.jpg)
42
4.8 Tipos contenedores
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
Secuencias (cont.) Mapping: array Java del tipo resultante de aplicar
mapping al tipo base
En Java, tanto arrays como secuencias:¡Una referencia nula a un array java no es una
secuencia ni un array válido!
![Page 43: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/43.jpg)
43
4. El lenguaje IDL
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
1. Notas generales
2. Concepto de mapping
3. El tipo interface
4. Tipos predefinidos
5. Constantes
6. Tipos compuestos
7. Creación de tipos
8. Tipos contenedores
9. Herencia
10. Excepciones
11. Módulos
![Page 44: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/44.jpg)
44
interface A interface B{ { … …}; };
interface C:A,B{ …};
4.9 Herencia
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
IDL soporta herencia múltiple Sintaxis:
A B
C
1
Mapping: las interfaces Java generadas reflejan la relación de herencia entre las interfaces IDL
(En Java sí es posible herencia múltiple entre interfaces)
![Page 45: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/45.jpg)
45
4.9 Herencia
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
Los métodos no se pueden… SobrecargarRedefinirOcultar
Si se emplea herencia múltiple: no se puede heredar de clases con nombres coincidentes de atributos y/o operaciones
¿Lo soportaría el lenguaje destino?
![Page 46: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/46.jpg)
46
4. El lenguaje IDL
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
1. Notas generales
2. Concepto de mapping
3. El tipo interface
4. Tipos predefinidos
5. Constantes
6. Tipos compuestos
7. Creación de tipos
8. Tipos contenedores
9. Herencia
10. Excepciones
11. Módulos
![Page 47: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/47.jpg)
47
4.10 Excepciones
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
exception nombre{ tipo_campo1 campo1; tipo_campo2 campo2; …};
exception otraexcepcion { };
Las operaciones de los objetos CORBA pueden lanzar excepciones
Excepciones se lanzan en servidor y se capturan en cliente
IDL permite por tanto:Declarar tipos de excepcionesDeclarar qué excepciones puede lanzar cada operación
Sintaxis de declaración de tipo excepción:
Se pueden declarar excepciones dentro o fuera de una interfaz
No se pueden crear jerarquías de excepciones mediante herencia
![Page 48: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/48.jpg)
48
4.10 Excepciones
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
interface nombre_interface{ tipo nombre_oper (modo tipo nombre_param1, …) raises (excep1, excep2…); … };
Sintaxis de declaración de excepciones lanzadas por una operación
Mapping:
exception nombre{ tipo_campo1 campo1; tipo_campo2 campo2; …};
public final class nombre extends org.omg.CORBA.UserException{ tipo_campo1 campo1; tipo_campo2 campo2; … public nombre() {…} public nombre(tipo_campo1 campo1,…) {…} public nombre (String $reason, tipo_campo1 campo1, …) {…}}
![Page 49: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/49.jpg)
49
4.10 Excepciones
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
interface nombre_interface{ tipo nombre_oper (modo tipo nombre_param1, …) raises (excep1, excep2…); … };
Mapping (cont.)
…tipo nombre_oper (tipo nombre_param1, …) throws excep1, excep2, … { … }…
En Java, todas las excepciones declaradas en IDL heredan de org.omg.CORBA.UserException
Si implementación de una operación lanza excepción no declarada en IDL: UNKNOWN_EXCEPTION
![Page 50: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/50.jpg)
50
4. El lenguaje IDL
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
1. Notas generales
2. Concepto de mapping
3. El tipo interface
4. Tipos predefinidos
5. Constantes
6. Tipos compuestos
7. Creación de tipos
8. Tipos contenedores
9. Herencia
10. Excepciones
11. Módulos
![Page 51: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/51.jpg)
51
4.11 Módulos
Tem
a 2:
Sis
tem
as D
istr
ibu
ido
s co
n C
OR
BA
module nombre{ // declaraciones IDL …};
Módulo=agrupación lógica de declaraciones en IDLPuede contener declaraciones de todo lo expuesto hasta el
momento (incluso módulos)
Sintaxis:
Mapping: paquetes JavaPor cada módulo, se genera un paquete de mismo nombreTodo lo declarado en dicho módulo se incluye dentro de
dicho paquete
![Page 52: Sistemas Distribuidos Con CORBA](https://reader033.vdocuments.pub/reader033/viewer/2022052701/55cf9140550346f57b8bf121/html5/thumbnails/52.jpg)
52