INE6514
Aula Prática - CORBA

Prof. Frank Siqueira

Programa de Pós-Graduação em Ciência da Computação
Universidade Federal de Santa Catarina
 

INE5418 | Descrição | Roteiro | Dúvidas


Descrição

Essa atividade mostrará como utilizar o CORBA para efetuar a comunicação entre objetos distribuídos.  


Roteiro

Especificando a Interface do Servidor

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.

Implementando o código do Servidor

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
 

Implementando o código do Cliente

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 no Windows

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

Para fazer a comunicação entre máquinas diferentes, indique ao cliente que o ORB estará rodando em outro computador:

> java cliente -ORBInitialHost <IP do computador>

Obs.: as restrições de segurança impostas na rede do laboratório não permitem essa forma de comunicação entre máquinas.

Executando a Aplicação no Linux

Primeiramente, inicie o ORB com o comando:

> orbd -ORBInitialPort 2500 &

Em seguida, inicie o servidor em um terminal:

> java hello.Servidor -ORBInitialPort 2500

Finalmente, inicie o cliente executando em outro terminal o comando:

> java Cliente -ORBInitialPort 2500

Para fazer a comunicação entre máquinas diferentes, indique ao cliente que o ORB estará rodando em outro computador:

> java cliente -ORBInitialHost <IP do computador> -ORBInitialPort 2500

Obs.: as restrições de segurança impostas na rede do laboratório não permitem essa forma de comunicação entre máquinas.


Dúvidas?

Atendimento aos Alunos

  • Horário: Terças-feiras das 16:20 às 18:00.
  • Local: Prédio do INE - Sala 407.

E-Mail

f r a n k @ i n f . u f s c . b r


Mantida por Frank Siqueira. Atualizada em 21/09/2010.