Ola amigos,
bom cara, ja te adianto que corba eh uma carroca perto de rmi puro! Digo rmi puro porque vc pode usar um cliente rmi pra falar com corba, depende dos stubs que vc gerar!
O rmic tem um parametro que eh -idl que ja vai gerar o idl pro corba, depois vc compila o idl com o idlj para gerar as classes corba!
Bao, eh que a coisa toda eh assim:
Todos ja ouviram dizer que corba eh independente de sistema operacional e de linguagem de programacao, logo vc pode fazer um cliente java Corba para um servidor Corbal Cobol.
Parece meio louco mas eh possivel!
Como tudo isso funciona eh muito simples, existe um cara que se chama ORB (Object Request Broker), e ele faz o meio de caminho entre a determinada arquitetura da linguagem de programacao e o corba!
O jdk ja vem com um ORB eh soh vc executar tsnames e pronto, o servico ja esta no ar, outro bem conhecido td eh o Visisbroker da borland!
O protocolo usado para conectar os orb eh o iiop (internet inter-ORB protocol) o mesmo usado pelos ejbs, possibilitando uma integracao de ejbs com Corba.
Esses seriam os passos para se criar uma app Corba
1. Definir as interface dos objetos usando IDL.
2. Compilar o IDL e gerar o sources java
3. Escrever os Objetos remotos (servantes)
4. Escrever o codigo do servidor
5. Escrever o codigo do cliente
6. Colocar os arquivos nos diretorios corretos e rodar a app
aqui um exemplo de idl:
module corbafun {
struct Message {
string name;
string greeting;
};
interface GoodDay {
Message sayHello(in string name, out string greeting);
};
};
Agora uma curiosidade, quando vc se conecta a um j2ee server e faz lookup por um objeto, em seguida vc faz um narrow, e sabe porque? Isso eh feito para que vc possa manter a compatibilidade com corba. Facam um teste, apenas facam o cast, nao facam narrow, e vcs verao que ainda ira funcionar! Isso aconte porque o objeto na outra ponta tb eh java! Se no lookup vc recebe um objeto Corba vc teria que fazer o narrow!
Eu costumo chamar o narrow de cast de arquitetura! :)
Esse assunto eh um pouco complicado para estar aqui no java basico, na boa se vc precisa dessa solucao comercialmente faca o curso SL-301 da sun onde vc ve tudo isso, esse curso eh show, e vale a grana nele!
Abraco,