Arhitectura comună a brokerului de solicitare de obiecte

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

CORBA ( Common Object Request Broker Architecture ) este un standard dezvoltat de OMG pentru a permite comunicarea între componente indiferent de distribuția acestora pe diferitele noduri ale rețelei sau de limbajul de programare cu care au fost dezvoltate.

Facilitează dezvoltarea sistemelor distribuite prin furnizarea:

  • o infrastructură care să permită comunicarea între obiectele dintr-un sistem distribuit,
  • un set de servicii utile,
  • un suport care permite interacțiunilor aplicațiilor, implementate folosind diferite limbi.

Diferitele componente comunică printr-un obiect numit „broker” (de unde și numele arhitecturii), care poate fi văzut ca un intermediar între părțile comunicante. Componentele sunt „prezentate” brokerului prin scrierea unei interfețe în limba IDL .

Descriere

CORBA este un mecanism software pentru gestionarea apelurilor de procedură cu obiecte de invocație care locuiesc în același spațiu de adresă (aplicație) sau într-un spațiu de adresă la distanță (aceeași gazdă sau gazde la distanță conectate la rețea). Versiunea 1.0 a fost lansată în octombrie 1991.

CORBA folosește un limbaj special numit Interface Description Language (IDL) pentru a defini interfețele pe care obiectele le prezintă „lumii exterioare”. CORBA specifică apoi o „mapare” de la IDL la limbaje specifice de implementare precum C ++ sau Java . Mapări standard există, de asemenea, pentru Ada , C , C ++ , Lisp , Smalltalk , Java , COBOL , PL / I și Python . Există, de asemenea, mapări non-standard pentru Perl , Visual Basic , Ruby , Erlang și Tcl implementate de Object Request Broker (ORB) scrise pentru aceste limbi.

Specificația CORBA necesită existența unui ORB prin care aplicația interacționează cu obiecte distribuite. În practică, aplicația inițializează ORB și accesează un adaptor de obiecte intern care are sarcini precum contorizarea referințelor, politica de instanțare a obiectelor și a referințelor, politicile de viață a obiectelor și așa mai departe. Adaptorul de obiecte este utilizat pentru a înregistra instanțe din clasele generate . Clasele generate sunt rezultatul compilării codului IDL care traduce definiția la nivel înalt a interfeței într-un sistem de operare și o clasă dependentă de limbă, care va fi utilizată de aplicația utilizator. Acest pas este necesar pentru a asigura semantica definită de CORBA și pentru a oferi un proces precis de interfață cu infrastructura CORBA.

Unele mapări de la IDL la limbaje de programare specifice sunt „mai ostile” decât altele. De exemplu, având în vedere natura Java, maparea IDL-Java este relativ simplă și facilitează utilizarea CORBA într-o aplicație Java. Cartarea la C ++ nu este banală, dar face disponibile toate caracteristicile infrastructurii CORBA, cum ar fi gestionarea excepțiilor. Cartarea la C este și mai dificilă (deoarece nu este un limbaj orientat pe obiecte), dar este construită într-un mod sensibil și redă bine semantica apelurilor RPC. (Red Hat Linux este livrat cu sistemul GNOME UI, al cărui IPC se bazează pe CORBA, înlocuit acum cu D-Bus )

O mapare a limbajului necesită dezvoltatorului să creeze cod IDL care să reprezinte interfețe cu obiectele sale. De obicei, o implementare CORBA este distribuită cu un instrument numit compilator IDL , care convertește codul IDL în cod specific limbii alese. Un compilator tradițional este apoi utilizat pentru a compila codul generat pentru a crea cod executabil pentru aplicație. Următoarea diagramă ilustrează modul în care codul generat este utilizat în infrastructura CORBA:

Generarea automată de cod de infrastructură dintr-o interfață definită utilizând CORBA IDL

Figura ilustrează paradigma la nivel înalt pentru îndepărtarea interprocesului folosind CORBA. Alte subiecte acoperite de specificația CORBA includ tastarea datelor, excepții, protocoale de rețea, expirări de comunicare etc. Există, de asemenea, o serie de probleme care nu sunt acoperite în specificația CORBA, dar pe care toate sistemele distribuite trebuie să le poată aborda: durata de viață a obiectului, redundanță / fail-over , semantică de nume, gestionarea memoriei, dinamica de echilibrare a încărcării etc.

În plus față de a oferi utilizatorilor un limbaj și o specificație independentă de platformă, apeluri de procedură la distanță , CORBA definește servicii de utilizare obișnuită, cum ar fi suport pentru tranzacții și securitate, gestionarea evenimentelor, gestionarea factorilor de timp și alte modele de interfețe de domeniu .

Mărci înregistrate OMG

CORBA, IIOP și OMG sunt mărci înregistrate ale Object Management Group, în timp ce GIOP nu este o marcă înregistrată OMG.

Elemente conexe

linkuri externe

Controlul autorității LCCN (EN) sh97002221 · GND (DE) 4403709-0