Common Object Request Broker Architecture: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
smistamento lavoro sporco |
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'
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]])
|