8. IDL e Interfaces

O CORBA é uma arquitetura que permite, através de um "barramento comum" (ORB), a interação de um conjunto de objetos de naturezas diferentes. Apesar de haver diferenças nestes objetos, que podem estar relacionadas à linguagem utilizada para gerá-los, ou à tecnologia de rede que utiliza, ou à plataforma onde ele está rodando, enfim, diferenças que não afetarão na interação desses objetos graças as interfaces.

O Objeto não divulga detalhes de sua implementação para os outros objetos, o que ele faz na verdade é apenas fornecer aos demais os serviços que esse determinado objeto dispõe, como fazer para chamar esses serviços, e o que devem esperar como respostas. Todas essas informações que constituem as interfaces, ou seja, interface é um conjunto de informações dos objetos que são disponibilizadas aos demais, utilizando para isso uma mesma linguagem (IDL), com a finalidade de permitir essa interação entre eles, sem que seja necessário se preocupar com detalhes individuais da implementação de cada objeto.

Entretanto, para que toda essa interação entre os objetos seja possível, essas interfaces devem utilizar uma linguagem para sua divulgação que seja puramente declarativa, gerando assim apenas declarações e não códigos, já que as interfaces estão desvinculadas de qualquer informação referente a implementação do objeto.
 
 



Com relação a IDL, pode-se afirmar que é a linguagem adotada pela OMA para especificar toda a sintaxe de todas as interfaces. Os tipos de variáveis que são suportados pela OMG IDL são: long, short, unsigned long e short, float, char, boolean, octet, any, struct, union, enum, sequence, string, array e typedefs.

Todas as linguagens utilizadas no CORBA (Ada, Smaltalk, Java, C++, C e COBOL) devem ser capazes de expressar todas as construções utilizadas pela IDL.