|  |  |
| --- | --- |
|    | **Šiam straipsniui ar jo daliai trūksta išnašų į šaltinius.**Jūs galite padėti Vikipedijai pridėdami tinkamas išnašas su šaltiniais. |

**Common Object Request Broker Architecture (CORBA)** yra standartų sistema koordinuotam kelių programų darbui internete.

### Objektai

CORBA funkcinis vienetas yra objektas, kuriam (taip pat ir per tinklą iš kito kompiuterio) gali būti pritaikomos iš anksto sutartos procedūros (metodai). Kiekvienas metodas gali perduoti objektui ir grąžinti atgal iššaukusiajam vieną arba kelis parametrus. CORBA turi savo duomenų tipų sistemą, kuri artima Java ar C kalboms. Be parametrų ir rezultatų, CORBA klientas ir serveris gali keistis GIOP žinutėmis apie klaidą (*exceptions*) bei nuorodomis nukreipti žinutę kitur (*forwardings*).

### Apkrovos paskirstymas

Keli objektai CORBA sistemoje telkiami į vadinamą Objektų Adapterį (POA). Objektų adapteris nukreipia kliento iškvietimą už tai atsakingam tarnui (Servant). Tarnas gali „tarnauti" keletui objektų, taip pat gali būti ir keletas tam pačiam objektui skirtų „tarnų". Kadangi adapteris taip gali nuspręsti nukreipti iškvietimą į išvis kitą serverį, visa sistema suteikia dideles galimybes subalansuoti skaičiavimo apkrovas. Tarnas objektui gali būti parenkamas arba vienakart (*servant activation*), arba kiekvienam iškvietimui vis iš naujo (*servant location*). Pastaruoju atveju objektų adapteris gali spręsti remdamasis tuo, koks metodas kviečiamas ir kokie parametrai perduodami.

Keli Objektų Adapteriai jungiami į dar stambesnį vienetą ORBą (*ORB*). ORBui galima užregistruoti vadinamuosius „kablius" (*interceptors*), kurie stebi ir įtakoja visą jo darbą. „Kabliai" neretai papildo CORBA žinutę sava informacija, kurią kitos pusės „kabliai" atpažįsta ir panaudoja likusiai žinutės daliai interpretuoti.

### Duomenų perdavimas

CORBA duomenų perdavimo standartai yra dvejetainiai, ne tekstiniai. Todėl CORBA plačiai naudojama dirbant su dideliais duomenų srautais (telekomunikacijose, skaitmeninėje radijo transliacijoje ir pan). CORBA standartai leidžia bendrauti skirtingomis kalbomis parašytoms programoms, net jei jos veikia skirtingose mašinose su skirtingomis operacinėmis sistemomis. Netrukdo netgi skirtinga baitų seka žodyje. CORBA objektų ir jų metodų apibrėžimai rašomi specialiai tam skirta kalba (IDL).

Esant reikalui, CORBA žinutės gali perduoti nuorodas į specifinį kodą, kurį priimanti pusė turi pati atsisiųsti ir įvykdyti. Tai leidžia keistis ne vien duomenimis, bet taip pat ir algoritmais. Aišku, tokie dalykai galimi tik esant apgalvotoms saugumo strategijoms.

Visa tai daro CORBA standartą gana sudėtingu. Tačiau jo šalininkai teigia, jog, turėdama ilgesnę istoriją, CORBA yra „pabaigta" ir geba išspręsti daugumą praktinių problemų. Naujesni standartai (WSDL ir pan) yra šiuo požiūriu „neišbaigti" ir todėl atrodo paprastesni išmokti.

Visus su CORBA standartais susijusius reikalus tvarko vadinamoji *Object Management Group* (OMG, ), kuri yra išleidusi detalius CORBA standartų aprašymus.

### Santrumpų teisinis statusas

CORBA, IIOP ir OMG yra OMG grupės registruoti prekiniai ženklai. Tuo tarpu GIOP **nėra** OMG registruotas prekinis ženklas (žr. GIOP).