CORBA (lausutaan yleensä [ korba ], joskus slangi [ kobra ]; Englanti Common Object Request Broker Architecture - objektipyyntövälittäjän yleinen arkkitehtuuri ; tyypillinen epäsuorien objektipyyntöjen arkkitehtuuri) - tekninen standardi konsortion edistämien hajautettujen sovellusten kirjoittamiseen ( työryhmä) OMG ja siihen liittyvä tietotekniikka . CORBA tarjoaa yhteentoimivuuden eri käyttöjärjestelmissä toimivien järjestelmien välillä , jotka on kirjoitettu eri ohjelmointikielillä ja jotka toimivat eri laskentalaitteistoilla. CORBA käyttää oliomallia, vaikka CORBA:ta käyttävien järjestelmien ei tarvitse olla oliopohjaisia. CORBA on esimerkki hajautetun objektijärjestelmän paradigmasta .
CORBA-teknologia on suunniteltu tukemaan monimutkaisten oliopohjaisten sovellusjärjestelmien kehittämistä ja käyttöönottoa.
CORBA on hiekkalaatikkointegraation toteuttamiseen tarkoitettu ohjelmistomekanismi, jonka avulla eri verkkosolmuissa toimivat eri ohjelmointikielillä kirjoitetut ohjelmat voivat kommunikoida keskenään yhtä helposti kuin jos ne olisivat saman prosessin osoiteavaruudessa.
CORBA-spesifikaatio määrää ohjelmakoodin liittämisen objektiin, jonka tulee sisältää tietoa koodin toimivuudesta ja pääsyliitännöistä. Valmiita objekteja voidaan kutsua muista verkossa olevista ohjelmista (tai CORBA-määrittelyobjekteista).
CORBA-spesifikaatio käyttää Interface Description Language (OMG IDL) -liittymää rajapintojen määrittämiseen kohteille, jotka voivat olla vuorovaikutuksessa ulkomaailman kanssa, ja se kuvaa kartoitussäännöt IDL:stä CORBA-objektin kehittäjän käyttämään kieleen.
Ada , C , C++ , Lisp , Smalltalk , Java , Cobol , Object Pascal , PL/1 ja Python kartoitukset on standardisoitu . Perlille , Visual Basicille , Rubylle ja Tcl :lle on myös epästandardeja kartoituksia , jotka on toteutettu näille kielille kirjoitetuilla ORB -työkaluilla.
Seuraavassa kuvataan joitain tärkeimmistä CORBA:n tarjoamista ominaisuuksista hajautettujen objektien väliseen viestintään.
Viittaus objektiin määritetään käyttämällä ( URL ), objektin osoite asetetaan samalla tavalla kuin haetaan osoitteita verkkotunnusjärjestelmästä ( DNS ) tai välitetään menetelmäparametrina kutsun aikana. Objektiviittaukset ovat kevyitä objekteja, jotka mukautuvat todellisen objektin käyttöliittymään (etä- tai paikallinen). Menetelmän kutsuminen viittauksella johtaa myöhempään ORB-kutsuun ja säikeen estoon, vastauksen odottamiseen, onnistumiseen tai epäonnistumiseen. Parametrit, palautustiedot (jos sellaisia on) ja poikkeustiedot jakavat sisäisesti ORB:n paikallisen kielen ja käyttöjärjestelmäkartoituksen mukaisesti.
Interface Definition Language (IDL) CORBA tarjoaa kielestä ja käyttöjärjestelmästä riippumattoman määritelmän objektien väliselle kommunikaatiolle. CORBA-objektit välitetään viitteellä, kun taas tiedot (kokonaisluvut, tuplaukset, rakenteet, enummit jne.) välitetään arvon mukaan. Kohde-viittauksen ja data-arvon yhdistelmä tarjoaa keinon pakottaa tietojen kirjoittamiseen asiakkaita ja palvelimia käännettäessä, samalla kun se säilyttää mukautetun ohjelmiston toteutuksen joustavuuden jokaiselle CORBA-kommunikaatiolle ohjelmistokomponentille.
Etäobjektien lisäksi CORBA 3.0 määrittelee objektin käsitteen arvon mukaan. Tämä määritelmä on tehty RMI-IIOP- yhteensopivaksi . Tällaisten objektien menetelmien koodi suoritetaan oletusarvoisesti paikallisesti. Jos kohde arvon mukaan on saatu etäpuolelta, niin tarvittava koodi on joko oltava molempien osapuolten tiedossa etukäteen tai ladattava dynaamisesti. Tämän mahdollistamiseksi tällaisen objektin määrittelevä merkintä sisältää Code Base -kentän, joka on luettelo URL-osoitteista, joista koodi voidaan ladata.
Arvokohtaisella objektilla voi olla myös etämenetelmiä, kenttiä, jotka välitetään itse objektin mukana. Kentät voivat puolestaan olla myös tällaisia objekteja, jolloin ne muodostavat listoja, puita tai mielivaltaisia kuvaajia. Objekteilla arvon mukaan voi olla luokkahierarkia, mukaan lukien abstrakti ja moninkertainen periytyminen.
CORBA Component Model (CCM) on tuore lisäys CORBA-määritelmien perheeseen.
CCM on otettu käyttöön CORBA 3.0:n jälkeen ja se kuvaa CORBA-komponenttien vakiosovelluskehyksen. Enterprise JavaBeans (EJB) vaikuttaa voimakkaasti CCM: ään , ja se on itse asiassa sen kieliriippumaton laajennus. CCM tarjoaa abstraktion kokonaisuuksista, jotka voivat tarjota ja vastaanottaa palveluita hyvin määriteltyjen nimettyjen rajapintojen, porttien kautta .
CCM tarjoaa komponenttisäiliön, jossa ohjelmistokomponentteja voidaan lähettää. Säiliö tarjoaa joukon palveluita, joita komponentti voi käyttää. Näihin palveluihin kuuluvat (mutta eivät rajoitu) ilmoitus-, valtuutus-, pysyvyys- ja tapahtumanhallintapalvelut. Nämä ovat hajautetun sovelluksen yleisimmin käyttämiä palveluita. Siirtämällä näiden palveluiden toteutus pois sovelluksen itsensä toteuttamasta sovellussäiliön toimivuuteen, itse komponenttien toteuttamisen monimutkaisuus voidaan vähentää huomattavasti.
GIOP (General Inter-ORB Protocol) on CORBA-standardin abstrakti protokolla, joka tarjoaa välittäjien yhteentoimivuuden . Protokolliin liittyvät standardit on julkaissut Object Management Group (OMG). GIOP-arkkitehtuuri sisältää useita erityisprotokollia:
CorbaLoc ( eng. Corba Location ) on merkkijonoviittaus CORBA-teknologiaobjektiin, joka on samanlainen kuin URL -osoite .
Kaikkien CORBA-toteutusten on tuettava vähintään kahta OMG-URL-versiota: corbaloc: ja corbaname: . Niiden tarkoituksena on tarjota ihmiselle tapa lukea ja muokata viittausta, jonka kautta viittaus CORBA-objektiin voidaan saada .
Corbaloc esimerkki :
corbaloc::160.45.110.41:38693/StandardNS/NameServer-POA/_rootCORBA-toteutus voi tukea muotoja "http:", "ftp:" ja "file:". Näiden muotojen tarkoitus on määrittää tapa saada CORBA-objektiviittauksen merkkijonoesitys.