Common Object Request Broker Architecture: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Pil56-bot (discussione | contributi)
smistamento lavoro sporco
FrescoBot (discussione | contributi)
m Bot: niente spazio dopo l'apostrofo
Riga 14:
CORBA utilizza un apposito linguaggio denominato [[Interface Description Language]] (IDL) per definire le interfacce che gli oggetti presentano al "mondo esterno". CORBA specifica poi una “mappatura” da IDL a specifici linguaggi di implementazione come [[C++]] o [[Java (linguaggio)|Java]]. Mappature standard esistono inoltre per [[Ada (linguaggio)|Ada]], [[C (linguaggio)|C]], [[C++]], [[Lisp]], [[Smalltalk]], [[Java (linguaggio)|Java]], [[COBOL]], [[PL/I]] e [[Python]]. Esistono anche mappature non standard per [[Perl]], [[Visual Basic]], [[Ruby]], [[Erlang (linguaggio)|Erlang]], e [[Tcl]] implementati mediante [[Object Request Broker]] (ORB) scritti per questi linguaggi.
 
La specifica CORBA prevede che ci sia un ''ORB'' attraverso il quale l'applicazione interagisce con gli oggetti distribuiti. In pratica, l'applicazione inizializza l'''ORB'' e accede ad un ''Object Adapter'' interno che ha compiti come il conteggio dei riferimenti, la politica di istanziazione di oggetti e riferimenti, le politiche sul tempo di vita degli oggetti e così via. L' ''Object Adapter'' è usato per registrare istanze delle ''Classi Generate''. Le ''Classi Generate'' sono il risultato della compilazione del codice ''IDL'' che traduce la definizione ad alto livello dell'interfaccia in una classe dipendente da un sistema operativo e da un linguaggio, che verrà usata dall'applicazione utente. Questo passo è necessario al fine di garantire la semantica definita da CORBA e di fornire un processo preciso per interfacciarsi con l'infrastruttura CORBA.
 
Alcune mappature da ''IDL'' a specifici linguaggi di programmazione sono "più ostili" di altre. Ad esempio, data la natura di Java, la mappatura ''IDL-Java'' è relativamente semplice e rende l'uso di CORBA molto semplice in un'applicazione Java. La mappatura verso C++ non è banale ma rende disponibili tutte le caratteristiche dell'infrastruttura CORBA, come la gestione delle eccezioni. La mappatura verso C è ancora più ostica (dato che non è un linguaggio Object Oriented) ma è costruita in modo sensato e rende bene la semantica delle chiamate RPC. (Red Hat Linux viene distribuita con il sistema GNOME UI, il cui IPC era basato su CORBA, ora rimpiazzato da [[D-Bus]])