Java IDL

A API Java IDL, presente na plataforma Java 2, permite a integração entre objetos Java e outros objetos remotos, eventualmente desenvolvidos em outras linguagens de programação, através da arquitetura CORBA. Os principais pacotes que compõem essa API são org.omg.CORBA e org.omg.CosNaming.

A partir da versão 1.3 da plataforma Java 2, é possível gerar interfaces IDL para classes Java usando o compilador rmic com a opção "-idl". Outra opção, "-iiop", indica que o protocolo de comunicação de CORBA, IIOP, será utilizado em stubs e ties (correspondentes aos skeletons) de RMI.

Uma vez obtida a interface IDL para um serviço, as classes auxiliares para acessar o objeto remoto que implementa o serviço são obtidas pela compilação da interface, usando o aplicativo idlj (ou idltojava ou ainda idl2java em versões anteriores à Java 1.3). Além de classes para stubs e skeletons, são geradas classes auxiliares (helpers e holders) para permitir a comunicação entre objetos Java e outras linguagens.

Na plataforma Java há uma implementação para o serviço de nomes de CORBA, oferecida pelo aplicativo tnameserv. Esse serviço está mapeado por default para a porta 900, podendo esta ser modificada pela opção "-ORBInitialPort".

A interação entre um ORB e um programa Java dá-se através de métodos da classe ORB. Para inicializar a referência ao ORB, utiliza-se o método estático init() dessa classe. Para obter uma referência para o serviço de nomes utiliza-se o método resolve_initial_references() tendo a NameService como argumento.

Esse exemplo ilustra sucintamente a estrutura de programas Java interagindo através de CORBA.