CORBA permette di realizzare applicazioni distribuite richiamando metodi di oggetti che si trovano su altri computer utilizzando degli oggetti di collegamento chiamati ORB (Object Request Broker).
Per sapere dove si trovano gli oggetti remoti viene usato un server di nomi.
Il client e il server si interfacciano con l’ORB attraverso un client stub e un server stub prodotti compilando un’interfaccia in IDL (Interface Definition Language) che descrive metodi, argomenti e valori di ritorno.
In pratica, il client chiama il metodo del client stub corrispondente al metodo dell’oggetto remoto, il client stub comunica la chiamata all’ORB, che richiama il metodo dal server stub, il quale richiama il metodo effettivo dell’oggetto; il risultato viene restituito seguendo il percorso contrario (passa al server stub, poi all’ORB, al client stub e infine al client).
Il meccanismo dell’IDL permette di descrivere i metodi dell’oggetto in modo indipendente dal linguaggio di programmazione utilizzato dalle applicazioni e di collegare oggetti sviluppati in linguaggi diversi. È compito del compilatore IDL tradurre il codice IDL in stub e modelli adatti al linguaggio dell’applicazione; esistono compilatori IDL per esempio per C, C++ e Java.
Nel JDK di Java è disponibile il compilatore idltojava.