Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Concurrente y Distribuida
Prcticas
ndice:
1. Qu es CORBA?
2. Arquitectura de un sistema CORBA
3. Alternativas a CORBA
4. El lenguaje IDL
1. Qu es CORBA?
CORBA NO es:
Ni un lenguaje de programacin
Ni un sistema operativo
1. Qu es CORBA?
CORBA nos proporciona
Independencia de lenguaje de programacin
IDL (Interface Definition Language): Lenguaje neutral que
permite definir las interfaces de los objetos
Los objetos se implementan en nuestro lenguaje habitual
de programacin
La traduccin de IDL a los distintos lenguajes de
programacin est estandarizada (y automatizada!)
op1()
metodo2()
op2()
opA()
metodoA()
metodo1()
atributo1
opAtrib1()
atributo2
1. Qu es CORBA?
ndice:
1. Qu es CORBA?
2. Arquitectura de un sistema CORBA
3. Alternativas a CORBA
4. El lenguaje IDL
Objeto 1
AO
ORB
Objeto 2
Facilidades
CORBA
Servicios
CORBA
ORB
IIOP
AO
ORB
7
Objeto 1
AO
Objeto 2
Servicios
CORBA
Facilidades
CORBA
ORB
AO
ORB
IIOP
Facilidades horizontales:
Interfaz de usuario
Administracin de informacin
Administracin de sistemas
Administracin de tareas
Objeto 1
AO
Objeto 2
Servicios
CORBA
Facilidades
CORBA
ORB
AO
ORB
IIOP
Objeto 1
AO
Objeto 2
Servicios
CORBA
Facilidades
CORBA
ORB
AO
ORB
IIOP
10
Funciones:
Activacin de objetos
Mapeo entre interfaces y sus
implementaciones
Objeto 1
AO
Objeto 2
Servicios
CORBA
Facilidades
CORBA
ORB
AO
ORB
IIOP
11
ndice:
1. Qu es CORBA?
2. Arquitectura de un sistema CORBA
3. Alternativas a CORBA
4. El lenguaje IDL
12
3. Alternativas a CORBA
Programacin mediante interfaz de sockets
Muy bajo nivel!
13
3. Alternativas a CORBA
PVM (Parallel Virtual Machine)
Libreras C/C++ para programacin distribuida
Muy usado en ingeniera y matemticas
Versin 3: 1993!
http://www.csm.ornl.gov/pvm/
SR (Synchronizing Resources)
Lenguaje de programacin de la universidad de Arizona
Exclusivamente empleado en mbito universitario
http://www.cs.arizona.edu/sr/
3. Alternativas a CORBA
Java RMI
Arquitectura muy similar a CORBA (compatible desde JDK
1.2)
Ventaja: paso de objetos por valor
Inconveniente: implementacin ligada a interfaz
.NET Remoting
Interfaz de invocacin remota de plataforma .NET
Similar a CORBA y a Java RMI
Slo plataforma .NET (.NET 3.0 forma parte de Windows
Vista)
Servicios Web
Coleccin de protocolos y estndares que sirve para
intercambiar datos entre aplicaciones
Especificacin de interfaces: WSDL
Transporte: HTTP
15
3. Alternativas a CORBA
Inconvenientes de CORBA
Complejo y extenso
Diferencias importantes entre fabricantes de plataformas
Tecnologa en evolucin
Poco futuro?
16
ndice:
1. Qu es CORBA?
2. Arquitectura de un sistema CORBA
3. Alternativas a CORBA
4. El lenguaje IDL
17
4. El lenguaje IDL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Notas generales
Concepto de mapping
El tipo interface
Tipos predefinidos
Constantes
Tipos compuestos
Creacin de tipos
Tipos contenedores
Herencia
Excepciones
Mdulos
18
4. El lenguaje IDL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Notas generales
Concepto de mapping
El tipo interface
Tipos predefinidos
Constantes
Tipos compuestos
Creacin de tipos
Tipos contenedores
Herencia
Excepciones
Mdulos
19
Tipos y constantes
Excepciones
Agrupaciones de todo lo anterior (mdulos)
20
4. El lenguaje IDL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Notas generales
Concepto de mapping
El tipo interface
Tipos predefinidos
Constantes
Tipos compuestos
Creacin de tipos
Tipos contenedores
Herencia
Excepciones
Mdulos
22
23
4. El lenguaje IDL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Notas generales
Concepto de mapping
El tipo interface
Tipos predefinidos
Constantes
Tipos compuestos
Creacin de tipos
Tipos contenedores
Herencia
Excepciones
Mdulos
24
// declaracin de operaciones
};
25
Mapping atributos:
Una operacin de lectura y otra de escritura (si no readonly)
interface nombre
{
attribute long
contador;
readonly
attribute
long contador;
interface nombre
{
26
27
4. El lenguaje IDL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Notas generales
Concepto de mapping
El tipo interface
Tipos predefinidos
Constantes
Tipos compuestos
Creacin de tipos
Tipos contenedores
Herencia
Excepciones
Mdulos
28
Descripcin
Mapping
Java
void
Tipo nulo
void
boolean
Tipo lgico
boolean
char
Carcter bsico
char
wchar
float
Nmero real
float
double
double
long double
double
long
int
long long
long
int
long
29
Descripcin
Entero corto (16 bits)
Mapping
Java
short
short
octect
Byte (8 bits)
byte
string
Cadena de caracteres
String
30
4. El lenguaje IDL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Notas generales
Concepto de mapping
El tipo interface
Tipos predefinidos
Constantes
Tipos compuestos
Creacin de tipos
Tipos contenedores
Herencia
Excepciones
Mdulos
31
4.5 Constantes
Sintaxis:
const tipo nombre= valor;
Se puden declarar
Dentro de una interfaz
Fuera 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;
32
4. El lenguaje IDL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Notas generales
Concepto de mapping
El tipo interface
Tipos predefinidos
Constantes
Tipos compuestos
Creacin de tipos
Tipos contenedores
Herencia
Excepciones
Mdulos
33
Mapping:
public class nombre_enumerado implements org.omg.CORBA.portable.IDLEntity
{
private int __value;
34
if (var1 == var2)
literal2
literaln
35
tipon campon;
};
Mapping:
public final class nombre_struct implements org.omg.CORBA.portable.IDLEntity
{
public tipo1 campo1 = ;
36
4. El lenguaje IDL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Notas generales
Concepto de mapping
El tipo interface
Tipos predefinidos
Constantes
Tipos compuestos
Creacin de tipos
Tipos contenedores
Herencia
Excepciones
Mdulos
37
Mapping: No ha lugar
El nombre de tipo creado se sustituye por el tipo equivalente
38
4. El lenguaje IDL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Notas generales
Concepto de mapping
El tipo interface
Tipos predefinidos
Constantes
Tipos compuestos
Creacin de tipos
Tipos contenedores
Herencia
Excepciones
Mdulos
39
interface I
{
attribute tipo_array atributo1;
};
40
Sintaxis:
typedef sequence<tipo_base> tipo_secuencia;
// Ilimitada
typedef sequence<tipo_base,tamao> tipo_secuencia; // limitada
interface I
{
attribute tipo_secuencia atributo1;
41
42
4. El lenguaje IDL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Notas generales
Concepto de mapping
El tipo interface
Tipos predefinidos
Constantes
Tipos compuestos
Creacin de tipos
Tipos contenedores
Herencia
Excepciones
Mdulos
43
4.9 Herencia
IDL soporta herencia mltiple
Sintaxis:
A
interface A
{
};
interface B
{
};
interface C:A,B
{
};
4.9 Herencia
Los mtodos no se pueden
Sobrecargar
Redefinir
Ocultar
45
4. El lenguaje IDL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Notas generales
Concepto de mapping
El tipo interface
Tipos predefinidos
Constantes
Tipos compuestos
Creacin de tipos
Tipos contenedores
Herencia
Excepciones
Mdulos
46
4.10 Excepciones
Las operaciones de los objetos CORBA pueden lanzar
excepciones
Excepciones se lanzan en servidor y se capturan en cliente
};
exception otraexcepcion { };
Se pueden declarar
excepciones dentro o
fuera de una interfaz
No se pueden crear
jerarquas de excepciones
mediante herencia
47
4.10 Excepciones
Sintaxis de declaracin de excepciones lanzadas por
una operacin
interface nombre_interface
{
tipo nombre_oper (modo tipo nombre_param1, ) raises (excep1, excep2);
};
public final class nombre extends
org.omg.CORBA.UserException
{
Mapping:
tipo_campo1 campo1;
tipo_campo2 campo2;
exception nombre
{
public nombre() {}
tipo_campo1 campo1;
public nombre(tipo_campo1 campo1,) {}
tipo_campo2 campo2;
public nombre (String $reason, tipo_campo1
campo1, ) {}
};
}
48
4.10 Excepciones
Mapping (cont.)
interface nombre_interface
{
tipo nombre_oper (modo tipo nombre_param1, ) raises (excep1, excep2);
};
4. El lenguaje IDL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Notas generales
Concepto de mapping
El tipo interface
Tipos predefinidos
Constantes
Tipos compuestos
Creacin de tipos
Tipos contenedores
Herencia
Excepciones
Mdulos
50
4.11 Mdulos
Mdulo=agrupacin lgica de declaraciones en IDL
Puede contener declaraciones de todo lo expuesto hasta el
momento (incluso mdulos)
Sintaxis:
module nombre
{
// declaraciones IDL
};
52