Corba: Invocación Estática

Páginas: 14 (3494 palabras) Publicado: 18 de noviembre de 2012
Sistemas de
Información
Tecnologías de objetos distribuidos:

CORBA: Invocación estática
Agradecimientos: Jesus Villamor Lugo, Simon Pickin de IT/UCIIIM, Juan Pavón UCM
1

Ejemplo CORBA
Servidor Corba que actua como una calculadora
Los clientes se conectan al servidor y le piden
que ejecute una operación
Suma
División

En la petición van incluidos los parámetros
necesarios pararealizar la operación
El servidor una vez realizada la operación
devuelve el resultado
2

Construcción de una aplicación
CORBA
Especificación
Calculator.idl

IDL
Compilación
IDL
CalculatorOperations.java
Calculator.java
CalculatorHelper.java
CalculatorHolder.java

Implementación
del Cliente

Client.java

CalculatorStub.java
CalculatorPOA.java

Implementación
de lainterfaz

CalculatorPOAImpl.java

Implementación
del Servidor

ServerPOA.java

3

CORBA Ejemplo 1
Declarando Interfaz en IDL
// Descripcion de una excepcion
exception DivisionPorCero{
float op1;
float op2;
};

interface Calculator{
// operacion de Suma
float add ( in float nb1, in float nb2 );
// operacion de Division
float div ( in float nb1, in float nb2 ) raises (DivisionPorCero );
};

(*) Ejemplo tomado de http://www.programacion.com/tutorial/acscorba

4

Compilación de la interfaz
Calculator.idl

> idl2java Calculator.idl
Compilador
IDL a Java

Servidor

Cliente
Calculator_Stub
Calculator_Stub
CalculatorHolder
CalculatorHolder
CalculatorHelper
CalculatorHelper
Client.java



Calculator
Calculator

CalculatorPOA
CalculatorPOACalculatorOperations
CalculatorOperations

ServerPOA.java

CalculatorPOAImpl.java

Ficheros generados por el compilador idl
Ficheros generados por el programador

5

Compilando la interfaz
Calculator y CalculatorOperations
CalculatorOperations Interfaz Java que define todos los
métodos correspondientes a la interfaz idl. Es la que implementa el
servant
Cada operación de lainterfaz corresponde a un método java
Cada atributo del interfaz corresponde a dos métodos java (leer, escribir)
public interface CCalculatorOperations {{
public interface alculatorOperations
//...
//...
float add(float nnb1, float nb2);
float add(float b1, float nb2);
float div(float nnb1, float nb2);
float div(float b1, float nb2);
}}

Calculator Interfaz java que extiende a laanterior. Es la que
implementa el stub
public interface CCalculator extends CCalculatorOperations,
public interface alculator extends alculatorOperations,
org.omg.CORBA.Object,
org.omg.CORBA.Object,
org.omg.CORBA.portable.IDLEntity {...}
org.omg.CORBA.portable.IDLEntity {...}

6

Compilando la interfaz
Calculator_Stub.java
Clase java que implementa el stub de la interfaz
Calculator en ellado del cliente
Hace marshalling (serialización) para los parámetros de cada
método de la interfaz antes de pasárselos al ORB. (También
unmarshalling en la recepción)
Define también su propio constructor y otros métodos de apoyo
(Comprobar en prácticas editando el fichero)
public class Calculator_Stub
public class Calculator_Stub
extends org.omg.CORBA.portable.ObjectImpl
extendsorg.omg.CORBA.portable.ObjectImpl
implements Calculator{
implements Calculator{
// ...
// ...
}
}

7

Compilando la interfaz
CalculatorHelper
Clase Java que proporciona métodos estáticos útiles
para los usuarios de objetos Calculator (cliente y
servidor).
Por ejemplo método narrows para convertir de objetos
Corba genéricos a objetos Calculator
final public class CalculatorHelper {final public class CalculatorHelper {
public static void insert(org.omg.CORBA.Any any, Calculator val)
public static void insert(org.omg.CORBA.Any any, Calculator val)
{...}
{...}
public static Contador extract(org.omg.CORBA.Any any) {...}
public static Contador extract(org.omg.CORBA.Any any) {...}
public static Contador narrow (org.omg.CORBA.Object val) {...}
public static Contador narrow...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • La Invocación
  • Corba
  • Corba
  • CORBA
  • Invocacion
  • Corba
  • CORBA
  • Corba

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS