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.