Common Object Request Broker Architecture: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m r2.7.3) (Bot: Aggiungo fa:کوربا |
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti. |
||
(18 versioni intermedie di 16 utenti non mostrate) | |||
Riga 1:
{{F|programmazione|febbraio 2013}}
'''CORBA''' ('''''Common [[Object Request Broker]] Architecture''''') è uno [[standard (informatica)|standard]] sviluppato
Esso facilita lo sviluppo di [[sistema distribuito|sistemi distribuiti]] fornendo:
*
*
*
I vari componenti comunicano attraverso un oggetto chiamato "broker" (da cui deriva il nome dell'architettura), che può essere visto come un intermediario fra le parti in comunicazione. I componenti sono "presentati" al broker attraverso la scrittura di un'interfaccia nel linguaggio [[Interface Description Language|IDL]].
==
CORBA è un meccanismo [[software]] per la gestione delle chiamate a procedura con oggetti di invocazione che risiedono in uno stesso spazio degli indirizzi (applicazione) o in uno spazio degli indirizzi remoto (stesso [[host]] o host remoti collegati in rete). La versione 1.0 è stata
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 di programmazione)|Java]]. Mappature standard esistono inoltre per
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]])
Una mappatura a linguaggio richiede allo sviluppatore di creare del codice IDL che rappresenti le interfacce ai suoi oggetti. Tipicamente, un'implementazione CORBA viene distribuita con uno strumento chiamato ''compilatore IDL'', che converte il codice IDL in codice specifico per il linguaggio scelto. Un [[compilatore]] tradizionale è poi usato per compilare il codice generato per creare codice eseguibile per l'applicazione. Il diagramma seguente illustra il modo in cui il codice generato è utilizzato nell'infrastruttura CORBA:
[[File:Orb.
La figura illustra il paradigma di alto livello per la comunicazione remota fra processi utilizzando CORBA. Altri argomenti di cui la specifica CORBA si occupa includono data ''typing'', eccezioni, protocolli di rete, timeout nella comunicazione, ecc. Esiste anche una serie di problemi che non vengono trattati nella specifica di CORBA, ma che tutti i sistemi distribuiti devono essere in grado di affrontare: tempo di vita degli oggetti, ridondanza/''fail-over'', semantica dei nomi, gestione della memoria, ''load balancing'' dinamico ecc.
Oltre a fornire agli utenti un linguaggio ed una specifica indipendente dalla piattaforma di utilizzo [[Chiamata di procedura remota]], CORBA definisce servizi d'uso comune quali supporto alle transazioni e alla sicurezza, gestione degli eventi, del fattore temporale ed altri modelli d'interfaccia ''___domain-specific''.
Line 28 ⟶ 29:
CORBA, IIOP e [[Object Management Group|OMG]] sono marchi registrati dell'Object Management Group, mentre GIOP non è un marchio registrato OMG.
==
*[[ISO]]
*[[UML]]
== Collegamenti esterni ==
[[Categoria:Programmazione orientata agli oggetti]]▼
* {{Collegamenti esterni}}
{{Controllo di autorità}}
{{portale|Informatica}}
▲[[Categoria:Programmazione orientata agli oggetti]]
|