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.
|