Creación de un servidor CORBA con Delphi 4

Veamos lo sencillo que resulta crear un servidor CORBA utilizando Borland Delphi 4, servidor que posteriormente responderá a peticiones de uno o más clientes. Lógicamente se trata de unejemplo muy sencillo, pero seguramente suficiente para servir como punto de partida para otros más completos.

Partimos de un nuevo proyecto Delphi, seleccionamos la opción New del menú File, para abrir el Depósito de objetos, y hacemos doble clic sobre el elemento CORBA Object de la página Multitier.
En la ventana que aparece habrá que introducir el nombre del servidor, así como seleccionar el mecanismo de ejecución del servidor y el modelo de thread. En este caso introduciremos SvrCuadrados como nombre del servidor, aceptando los demás parámetros (Instancing y Threading Model).

Al cerrar la ventana anterior se añade un nuevo módulo al proyecto, así como una librería de tipos que tendremos que editar para definir la interfaz del objeto ISvrCuadrados. Abrimos la librería de tipos con la opción Type Library del menú View, seleccionamos la interfaz y pulsamos el botón New method. Introducimos el nombre del método, que se llamará cuadrado, y facilitamos el valor de retorno y la lista de parámetros.

Seleccionamos la opción Export to CORBA IDL para generar automáticamente el código IDL de este módulo, que además de la interfaz anterior contará también con la factoría de creación de objetos generada automáticamente por Delphi.

module Project1
{
interface ISvrCuadrados;

interface ISvrCuadrados

{

long Cuadrado(in long Base);

};

interface SvrCuadradosFactory

{

ISvrCuadrados CreateInstance(in string InstanceName);

};

};

Con el fin de generar los módulos de stub y skeleton guardamos todos los elementos del proyecto y compilamos. Tan sólo resta escribir el código de implementación, realmente el único código que escribiremos. Abrimos el módulo Unit2, buscamos el método Cuadrado y devolvemos el resultado correspondiente.

function TSvrCuadrados.Cuadrado(Base: Integer): Integer;
begin
  Result := Base*Base;
end;

Para dejar el servidor terminado tendremos que compilar de nuevo, generando un ejecutable que es una aplicación CORBA dispuesta para ser usada.

A partir de aquí, tendremos que generar el cliente que permita ver su funcionamiento.