Atividade de Laboratório - CORBA

Interface do Servidor CORBA

Segue abaixo a interface IDL de um servidor “Hello”, com apenas um método, e uma interface “HelloPlus”, que adiciona alguns métodos à interface “Hello”, com o intuito de demonstrar o uso de atributos, parâmetros de entrada e saída e de exceções.

module hello {

  interface Hello {
    string hello();
  };

  interface HelloPlus: Hello {
    exception InvalidParameter { string paramName; };
    readonly attribute string welcome;
    string helloName ( in string name ) raises ( InvalidParameter );
    void helloOut ( out string helloMessage );
  };

};

Salve a descrição de interface acima no arquivo hello.idl e a compile com o comando:

idlj -fall hello.idl

Note que foram geradas no diretório "hello" várias classes, dentre elas a stubs e skeletons deste servidor.

Implementação do Servidor CORBA

Agora devemos implementar o servidor. O arquivo HelloPlusImpl.java contém a implementação dos métodos especificados na interface IDL do servidor. O arquivo Servidor.java contém o código necessário para instanciar o servidor e registrá-lo no serviço de nomes. Salve estes dois arquivos no diretório "hello" criado pelo compilador IDL.

Compile todos os arquivos do servidor com o comando:

javac hello\*.java

Implementação do Cliente CORBA

O cliente CORBA (arquivo Cliente.java) localiza o servidor e faz chamadas aos seus métodos.

Compile o cliente com o comando:

javac Cliente.java

Executando a Aplicação

Primeiramente, inicie o ORB com o comando:

> start orbd

Em seguida, inicie o servidor:

> start java hello.Servidor

Finalmente, inicie o cliente com o comando:

> java Cliente

Tente também, com a ajuda de um colega, fazer a comunicação entre máquinas diferentes. Deixe o servidor rodando em uma máquina e inicie o cliente em outra máquina com o comando:

> java Cliente -ORBInitialHost <IP da máquina do servidor>