# Common Object Request Broker Architecture

### A Wikipédiából, a szabad lexikonból.

A Common Object Request Broker Architecture, azaz a CORBA az OMG által létrehozott architektúra, illetve szabványgyűjtemény a számítógépes hálózatok kommunikációjának szabványosítására. A CORBA szabványokat úgy határozták meg, hogy lehetővé tegyék különböző operációs rendszereken futó, eltérő programozási nyelveken megírt alkalmazások kommunikációját is. Ennek érdekében az egymással kommunikáló alkalmazások, programok között az interfészt egy a CORBA szabvány által meghatározott interfészleíró nyelven (angolul Interface Definition Language, IDL) kell definiálni.

## [szerkesztés] Verziók

A CORBA infrastruktúráját több szabvány együttesen határozza meg, ezek közül azonban a legfontosabb a core CORBA technológiát specifikáló szabvány, amely a korábbi DCE szabványokon alapul. Ez jelenleg a 3.0.3-as verziónál tart. A különböző CORBA implementációk természetesen különböző verzióját támogatják a specifikációnak, illetve a core CORBA specifikációhoz kapcsolódó egyéb specifikációkból is egymástól eltérő részeket valósítanak meg.

- Az első, az OMG honlapjáról letölthető verzió a 2.0-ás szabvány [1], ami 1997. február 25-én jelent meg. Ebben a szerveroldalon még Basic Object Adaptert használtak Portalble Object Adapter helyett. A szabványnak ez a verziója még tartalmazta az ún. mappingek specifikációit is, amelyek az IDL-nek az egyes konkrét programozási nyelvekre történő leképezését definiálják: a támogatott programozási nyelvek a C, C++ és Smalltalk voltak.
- A CORBA 2.1[2] többek között kibővítette a szabványt a COBOL és Ada nyelvekre való IDL leképezés specifikálásával.
- A 98-ban megjelent CORBA 2.2[3] bevezette a Portable Object Adapter használatát és az interceptorokat. Ezenfelül ekkor jelent meg a Java nyelv támogatása is a mappingek között.
- Ugyanezen év végén megjelent a CORBA 2.3[4] is, ami már az érték szerinti objektumátadást is lehetővé tette. A mappingek specifikációja kikerült a core szabványtól és innentől kezdve a CORBA specifikációgyűjteményen belül külön specifikáció lett létrehozva minden egyes támogatott programozási nyelv mappingjéhez.
- 2000-ben jelent meg a CORBA 2.4[5], ami tartalmazta a Minimum CORBA és a Read-Time CORBA specifikációkat is.
- 2001-ben a CORBA 2.5[6] kibővült a Fault-tolerant CORBA specifikációjával.

## [szerkesztés] Áttekintés

A CORBA objektum-orientált megközelítést alkalmaz a hálózati alkalmazások kommunikációjának specifikálására, és ennek megfelelően minden olyan alkalmazást, programot, amely ebben a kommunikációban részt vesz, akár mint egy kérés küldője, akár pedig mint egy kérés címzettje, azt egy absztrakt objektumnak tekint, amiről kezdetben semmi mást nem feltételez, csak hogy valahogy képes kéréseket generálni, illetve feldolgozni. A CORBA intrastruktúrában a kommunikáció távoli metódushívásokként megvalósított kérésekből áll. A kérések küldői, generálói az ún. kliens objektumok a szerver objektumoknak hívják meg valamely metódusát. Ehhez azonban először meg kell találniuk egy olyan szerver objektumot, ami az adott metódust tartalmazó interfészt megvalósítja. A szabvány első verziója nem specifikálta, hogyan kell a kliens objektumoknak szabványos módon megkeresniük a megfelelő szerver objektumokat, ezért erre több különböző, gyártónként különböző megoldást alakítottak a szabvány implementálói. A szabványgyűjtemény újabb verziói már tartalmaznak egy Naming Service specifikációt is, aminek a használatával már legalább részben szabványosítható ez a folyamat is.

A szerveroldali folyamatok szabványosítása egyébként nem is célja a specifikációnak, ez teljesen implementációfüggő, ezzel szemben a szabvány előírja, hogy ennek az implementációnak teljesen transzparensnek kell lennie a kliensek számára, azaz a különböző implementációknak is ugyanazt a külső interfészt kell támogatniuk, illetve ugyanazt a kommunikációs mechanizmust kell megvalósítaniuk. A kommunikáció megvalósítására a szabvány az GIOP, illetve még konkrétabban az IIOP eljárás támogatását írja elő kötelezően.

Az egyes szerveroldali objektumok által támogatott interfész leírására a CORBA szabvány tartalmazza az ún. IDL interfészleíró nyelv specifikációját, ami független a szerveroldal, illetve a kliens megvalósítására alkalmazott konkrét programozási nyelvektől. Éppen ezért szükség van egy további specifikációra, amely a IDL-nek az adott konkrét programozási nyelvekre történő leképezését határozza meg. Ilyen specifikációk léteznek az összes széles körben elterjedt programozási nyelvhez, így például a C++-hoz és a Javához is. Ezzel az architektúrával lehetővé válik, hogy egy C++ nyelven megírt kliens egy Javában megírt szerverrel kommunikáljon.

Az IDL által definiált interfészeket azután le kell fordítani mind a kliens, mind pedig a szerver objektumok által használt programozási nyelvekre. A fordításon túlmenően az interfész segítségével automatikusan generálhatunk további forráskódokat is az adott nyelven. A kliens oldal esetében az ún. csonk (angolul stub) objektumok, illetve ezek kódja generálható, amelyek segítségével a távoli metódust hívó CORBA kliensek elől elrejthető mind az IIOP kommunikáció konkrét megvalósítása, mind pedig a szerverobjektum megtalálásának a megvalósítása. Ezeket a programozási feladatokat a CORBA implementációk automatikusan elvégzik. A szerveroldal esetében ezzel szemben az ún. skeleton objektumok, illetve ezek kódja generálható, amelyek szintén elrejtik a felhasználó elől az IIOP kommunikáció megvalósítását. Azonban a szerveroldali objektumok esetében az így legenerált kód még nem használható, hiszen szükség van az IDL interfész által meghatározott metódusok konkrét megvalósítására, ami már a felhasználók, azaz a CORBA infrastruktúrát használó programozók feladata.

## [szerkesztés] CORBA implementációk

A CORBA specifikációknak léteznek kereskedelmi forgalomban megvásárolható, azaz fizetős és nyílt forráskódú implementációi egyaránt. Ezek azonban a szabvány különböző, általában régebbi verzióit támogatják, illetve a CORBA szabványgyűjteményből sem támogatják az összes lehetséges szabványt, hiszen ezt a szabvány nem is teszi kötelezővé. A szabvány szerint ugyanis a core funkcionalitáson kívül legalább egy mapping, azaz programozási nyelvre való leképezés támogatása van kötelezően elírva a gyártók számára.

- BEA Tuxedo - - A CORBA 2.5–öt támogató, kereskedelmi forgalomban megvásárolható ORB implementáció Java és C++ mappingekkel a BEA Systems-től
- Borland Enterprise Server, VisiBroker Ed. - - A CORBA 2.6–ot támogató kereskedelmi ORB implementáció Java és C++ mappingekkel a Borlandtól.
- Combat - Tcl ORB és egy Tcl layer C++ ORB-okhoz.
- e*ORB - - Fizetős ORB implementáció Ada nyelvre, C nyelvre és C++ nyelvre a PrismTech-től.
- JacORB - - Free Software (LGPL) Javában implementált ORB-bal.
- MICO - - Free Software (LGPL) ORB C++-ban implementált ORB-bal.
- omniORB - - Free Software (LGPL) ORB C++ és Python nyelvekhez.
- OpenORB - - Free Software (BSD) ORB Javához.
- Orbacus - fizetős, C++ mappinggel rendelkező ORB az IONA Technologiestól.
- ORBit2 - - Free Software (LGPL) ORB C-hez, C++-hoz és Python-hoz.
- Orbix - fizetős ORB implementáció az IONA Technologiestól.
- Perl ORB - - Nyílt forráskódú (Artistic License) ORB implementáció Perl nyelven.

## [szerkesztés] Hivatkozások

1. ^ CORBA 2.0
2. ^ CORBA 2.1
3. ^ CORBA 2.2
4. ^ CORBA 2.3
5. ^ CORBA 2.4
6. ^ CORBA 2.5

A lap eredeti címe "http://hu.wikipedia.org../../../c/o/m/Common_Object_Request_Broker_Architecture_988b.html"

Kategóriák: Számítógép-hálózatok | Számítógép-programozás

##### Views

- Szócikk
- Vitalap
- Aktuális változat

##### Keresés

##### Más nyelveken

- English
- Deutsch
- Español
- Français
- Galego
- Italiano
- 日本語
- Lietuvių
- Nederlands
- Polski
- Português
- Русский
- Svenska
- Türkçe
- 中文