Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Tutoriales > Plataformas > Linux > Curso práctico de Corba en GNU/Linux
-Tutoriales

Curso práctico de Corba en GNU/Linux


Implementación de Calculator

Bueno, ya hemos alcanzado la parte fácil. La implementación de la interfaz IDL es tan sencilla como implementar una interfaz que no fuera CORBA. Aquí va el código:

// ============================================================
// = Ejemplo de CORBA
// ============================================================

// Implementacion utilizando POA 

public class CalculatorImpl extends CalculatorPOA
{
  /**
   * Operación add
   */
  public float add(float nb1, float nb2)
  {
    System.out.println("Suma = "+nb1+" + "+nb2);
    return nb1 + nb2;
  }

  /**
   * Operación div
   */
  public float div(float nb1, float nb2)
    throws DivisionByZero
  {
    System.out.println("Division = "+nb1+" / "+nb2);

    if ( nb2 == 0 )
            throw new DivisionPorCero(nb1,nb2);

    return nb1 / nb2;
  }
}

De este implementación lo único que hay que destacar es que el objeto CalculatorImpl hereda del objeto CalculatorPOA. Esto lo que provoca es que a CalculatorImpl se le añada todo el skeleton (esqueleto) utilizando herencia lo que permite que sea accedido el objeto a través de CORBA. Recordemos que este esqueleto se generaba de forma automática de la interfaz OMG/IDL utilizando el compilador java2idl.

Para nosotros como desarrolladores nos vale con saber que debemos de heredar de CalculatorPOA para que nuestro objeto pueda ser accedido por CORBA. Nos podemos olvidar de que existe CORBA a partir de ese momento y trabajar como si todo el sistema fuera local. De hecho, se puede tener un especialista en CORBA dentro del proyecto y que todos los demas desarrolladores no sepan que por debajo se está utilizando CORBA.

. Ampliando el ejemplo

Si quisieramos completar la interfaz de nuestra calculadora y añadir las operaciones de resta y multiplicación sería muy sencillo.

  1. Lo primero que haríamos sería editar el fichero IDL Calculator.idl y añadir dentro de las llaves de interface Calculator {..}:
    float resta ( in float nb1, in float nb2 );
    float mult ( in float nb1, in float nb2 );

    Como ninguna de las dos levanta excepciones no hace falta utilizarlas.

  2. Una vez hecho esto volvemos a pasar el compilador idl2java para regenerar los cabos y esqueletos.
  3. Por último basta con implementar estas dos operaciones dentro de CalculatorImpl y ya podrían ser utilizadas por cualquier cliente CORBA.

Vemos con que facilidad se pueden ampliar las interfaces IDL, y vemos que estos cambios no afectan para nada al servidor de CORBA. Y el cliente CORBA solo se ve afectado en el caso de que se elimine alguna operación de la interfaz que el utilice.

Esta facilidad para ampliar las interfaces y el hecho de que los implementadores de las interfaces de IDL no tenga porque saber nada de CORBA son dos características fundamentales de CORBA.

. Conclusiones del desarrollo

Como conclusión de este desarrollo CORBA podemos destacar los siguientes puntos de la arquitectura CORBA.

  • Facilidad de implementación de las interfaces.
  • Código específico CORBA muy parecido siempre.
  • Facilidad de ampliación de funcionalidad.
  • Transparencia total respecto a la distribución (incluso excepciones).
  • Potencial enorme: multilenguaje, multiarquitetcura, multiprotocolo.

. Referencias

 
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network