CORBA și IIOP: programarea sistemelor distribuite
William R. Stanek
Pregătirea programelor de aplicații, obiecte din care sunt realizate în diferite limbi și interacționează între ele pe o varietate de sisteme și platforme.
Creșterea explozivă a internetului și a web-ului a provocat apariția unor tehnologii care schimbă radical modurile existente de utilizare a computerelor. Cele mai grave schimbări apar în tehnologia orientată pe obiecte, pe care vizionarii le atribuie un rol nou în sistemele de procesare distribuite. În locul rețelelor de calcul tradiționale ale arhitecturii serverului client, o nouă eră de procesare distribuită presupune trecerea la sisteme de scară întreprindere cu obiecte distribuite între o varietate de computere care pot face schimb de informații independent de sistemul de operare, platformă sau limbaj de programare. Mai surprinzător, aceste obiecte distribuite pot fi componente ale fiecărui program sau zeci de programe care formează un sistem conceput pentru întreprindere.
Referindu-ne la tehnologiile care permit procesarea distribuită în sisteme eterogene: arhitectura Arhitecturii comune de cereri de broker de cereri (CORBA) și a protocolului Inter-ORB pe Internet (IIOP). CORBA definește pe deplin arhitectura necesară pentru schimbul de informații între obiectele distribuite. Specificațiile sale includ IIOP și multe alte tehnologii. IIOP este cea mai importantă componentă a CORBA, deoarece funcția sa principală este organizarea interacțiunii obiectelor distribuite într-un mediu eterogen. Împreună, CORBA și IIOP caracterizează varietatea instrumentelor de nivel intermediar care vor stimula revizuirea abordărilor pentru crearea de aplicații în medii de rețea de către dezvoltatorii din întreaga lume.
CORBA și IIOP nu sunt soluții exclusive pentru procesarea distribuită. Există, de asemenea, o arhitectură concurențială dezvoltată de Microsoft, modelul de obiect distribuit de calcul (DCOM), reprezentat în principal de Object Request Broker (ORB), care face parte din Windows NT 4.0 și va fi inclus în următoarea ediție a Windows .
OMG ȘI TRATAMENTUL DISTRIBUIT
CORBA este creatia consortiului Object Management Group (OMG), care include mai mult de 700 de companii dintr-o gama larga de industrii. Scopul acestei organizații este de a defini structurile de bază pentru dezvoltarea de aplicații folosind metode orientate pe obiecte. OMG-ul specifică specificațiile care permit standardizarea prelucrării obiectelor distribuite, mai degrabă decât programele de aplicații, iar această orientare spre dezvoltarea de idei, nu pentru programe, a adus un mare succes grupului.
Cu ajutorul CORBA, veți crea sisteme de întreprindere (sisteme corporative) în care obiectele sunt distribuite pe rețeaua de calculatoare. În sistemele corporative, obiectele principale ale serviciului de fișiere solicitate de programul de aplicații pot fi stocate pe un server Windows NT. Aceste obiecte veți compune, de exemplu, în C ++. Pe un computer mare, puteți plasa funcțiile principale ale sistemului de bază, să zicem, folosind obiecte programate în limba Cobol. Orice computer desktop care rulează Windows 95 este potrivit pentru stocarea interfețelor externe folosind obiecte create cu Visual Basic. Și toate aceste obiecte pot face schimb de informații, iar CORBA servește ca intermediar în transmiterea cererilor.
Netscape Communications Corp. și Sun Microsystems au ales CORBA și IIOP ca bază pentru următoarea generație a programelor lor. Sun utilizează CORBA și IIOP pentru a implementa apeluri de procedură eterogene la distanță în limbajul de programare Java 1.1 și fără aceste tehnologii nu ar exista o platformă Java în rețelele corporative. În plus, CORBA și IIOP vor fi utilizate în Enterprise JavaBeans API pentru a oferi posibilitatea de a crea aplicații de afaceri scalabile (aplicații de afaceri) cu componente de server reutilizabile.
Tehnologia DCM este, de asemenea, potrivită pentru încadrarea apelurilor la proceduri la distanță în limba Java. Procedurile software speciale necesare pentru acest lucru sunt disponibile în Visual J ++. Dar modelul DCOM este doar pentru platformele Windows NT 4.0 și Windows 95 (utilizând extensii Internet Explorer), adică DCOM nu este potrivit pentru schimbul de informații cu alte sisteme de operare. Microsoft raportează că, în viitor, tehnologia DCOM va fi transferată pe alte platforme.
O LITTLE DESPRE CORBA
Kernelul CORBA este brokerul (intermediar) al interogărilor de obiecte (ORB). Este ceva de genul unei autostrăzi pentru obiecte. Principala sarcină a ORB este să furnizeze servicii intermediare atunci când schimbă cereri între obiecte. Deși ORB "trăiește" în mediul serverului client, obiectele cu care funcționează îndeplinesc funcțiile fie ale clienților, fie ale serverelor, în funcție de circumstanțe. Dacă obiectul acceptă și procesează solicitarea, acesta reda rolul serverului. Dacă trimite o cerere, el acționează ca client.
Sarcina principală a ORB este recepția și trimiterea cererilor, precum și transferul rezultatelor, inclusiv interceptarea fiecărei cereri a unui obiect la altul; Determinați locația obiectului, care, probabil, va procesa cererea; începeți metoda corespunzătoare a obiectului care primește; dacă este necesar, transmiterea parametrilor și trimiterea rezultatelor către obiectul care a inițiat cererea. Deoarece ORB procesează cererile "în mod transparent", nu contează la ce obiect local sau la distanță a venit cererea.
IDL este bun în sensul că vă permite să descrieți pe scurt API, păstrând în același timp libertatea de a defini metode în orice limbaj de programare care leagă CORBA. Aceste limbi includ Ada, Cobol, C, C ++, Smalltalk și Java. Unii furnizori au mijloace proprii de negociere cu CORBA pentru Visual Basic și Fortran.
Așa cum știe cineva care sa ocupat de programarea orientată pe obiecte, aveți nevoie de informații despre interfața obiectului care primește obiectul pentru a compune interogarea și obiectele trebuie să fie proiectate astfel încât să poată obține informații despre interfețele obiectelor cu care vor interacționa. Dar, încercând să aplicați această abordare pentru prelucrarea distribuită între obiecte eterogene, veți întâlni multe probleme.
Pentru independența adevărată a IDL, CORBA folosește un depozit de interfață (depozit) care stochează semnăturile metodelor aparținând obiectelor, astfel încât aceste semnături să poată fi preluate dinamic și actualizate în timpul execuției programului. Datorită acestui fapt, toate obiectele din sistemul corporativ pot obține informații despre interfețele altor obiecte, metodele care aparțin acestor interfețe și parametrii necesari pentru a le accesa. (DCOM oferă, de asemenea, servicii de registru și de căutare care permit clienților să obțină informații despre interfețele componentei, precum și parametrii necesari pentru a apela o anumită metodă.)
Combinația dintre ORB, IDL și repository de interfață este modelul de bază CORBA (figura). Deși nu toate componentele arhitecturii sunt indicate în modelul prezentat în figură, aceasta oferă o idee despre modul în care obiectele eterogene interacționează cu CORBA folosind unul pe celălalt.
ASOCIEREA COMPONENTELOR
Ca o tehnologie care oferă cadre de bază pentru interacțiunea obiectelor eterogene, CORBA a obținut un succes remarcabil și acest lucru este în ciuda faptului că este doar o parte a unei arhitecturi de gestionare a obiectelor (OMA) chiar mai mari, care constă din următoarele componente:
- CORBA ORB operează pe cereri între obiecte;
- Servicii (servicii) CORBA definește funcțiile de serviciu la nivel de sistem destinate gestionării obiectelor și asigurării funcționării lor;
- Instrumentele CORBA definesc funcționalitatea și interfețele la nivelul programului de aplicație;
- Obiectele programelor aplicate sunt de fapt obiecte.
După cum am menționat deja, brokerul de cerere de obiecte controlează schimbul de cereri între obiecte. Dar cum se potrivesc toate celelalte piese ale acestui mozaic? Să ne uităm la serviciile, instrumentele și obiectele CORBA.
SERVICII OBIECT CORBA
Ajutor în organizarea managementului și asigurarea operabilității obiectelor pe tot parcursul ciclului lor de viață este exact ceea ce fac serviciile CORBA. Interfețele acestor servicii vor fi utile pentru a crea obiecte pentru a le asigura securitatea, pentru a localiza obiecte și a gestiona obiecte la nivel de clasă. Deoarece acestea sunt servicii ale sistemului, nu de la nivelul aplicației, ele pot fi implementate pentru întreaga întreprindere, adică economisesc timp și facilitează coerența între întreprinderi.
Există 16 servicii pentru obiecte, printre care:
Datorită faptului că serviciile obiect CORBA rezolvă o gamă largă de sarcini, dezvoltatorii se pot concentra pe pregătirea obiectelor fără să se preocupe de serviciile de sistem. După ce ați dezvoltat o clasă pentru obiectul dvs., veți extinde apoi funcționalitatea acestuia cu ajutorul serviciilor obiect. Pentru a realiza acest lucru, veți ajuta mecanismele de divizare în subclase (subclasarea) și moștenire multiplă. De exemplu, după ce ați creat o clasă Widget, puteți obține de la aceasta o subclasă de aWidget care moștenește persistența din serviciul Persistență. În plus, veți furniza notificări privind apariția evenimentelor, securitatea și executarea cererilor, aplicând mecanismul de moștenire acestor funcții ale serviciilor relevante.
Abilitatea de a diviza în subclase și multiple moșteniri CORBA este extinsă de metaclasele incluse în această specificație. O metaclaz este o clasă de obiecte care este generată în timpul execuției programului. Folosind metaclase, puteți adăuga dinamic funcții de serviciu în funcțiile obiect CORBA, adică puteți configura obiecte dacă este necesar.
MIJLOACE DE OBIECTE CORBA
Interfețele programelor de aplicație constau în instrumente nestandardizate specifice aplicațiilor specifice, cum ar fi un sistem de rezervare sau gestionare a materialelor stocate într-un depozit. Interfețele de domeniu includ instrumente concepute pentru utilizatorii finali în anumite domenii de aplicare. (În acest caz, domeniul înseamnă un anumit segment vertical al pieței sau al industriei.)
Interfețele de domeniu sunt concepute pentru segmente specifice ale pieței, în timp ce mijloacele internetului sunt funcții la nivel de aplicație și interfețe orientate spre o piață vastă. Printre mijloacele de Internet se numără, de exemplu, mijloacele de rezolvare a sarcinilor standard ale utilizatorilor în cadrul programelor de aplicații, cum ar fi imprimarea sau salvarea unui fișier, precum și sarcinile obișnuite ale rețelei, cum ar fi utilizarea funcțiilor de poștă electronică sau de rețea.
OBIECTIVELE PROGRAMELOR APLICATE
Obiectele reale care formează nucleul unui program de aplicație compatibil CORBA se numesc obiecte de afaceri. Un obiect de afaceri este o modalitate de a descrie concepte care nu depind de un program de aplicație, cum ar fi un cumpărător, o comandă sau o plată. Pentru a pregăti un program de aplicații, veți avea nevoie de un set de obiecte de afaceri.
Spre deosebire de cele la nivel de sistem de obiecte care execută sarcini, cum ar fi menținerea stabilității, a obiectelor de afaceri a face cu procese care sunt caracteristice pentru lumea afacerilor reale. Cu toate că un obiect de afaceri tipic este responsabil doar pentru o singură sarcină (de exemplu, tratamentul pre-comenzi, lucra cu cumpărători sau depozit), Business Objects seturi pot fi folosite pentru a controla procesul de afaceri întreg, cum ar fi vânzările de bilete și de prelucrare de pre-comenzi pentru zborurile. Ca obiecte de afaceri sunt livrate gata pentru utilizare ca un dezvoltator le poate combina pentru a face un program de aplicație care corespunde cerințelor clientului.
Pentru a gestiona un program complex de aplicații cu obiecte de afaceri distribuite, acestea din urmă au doar informații despre funcțiile de serviciu care sunt executate de alte obiecte, dar nu despre modul în care aceste funcții sunt efectiv implementate. Datorită obiectelor de afaceri, suntem cruțați de dificultățile implementării procesării interne, deoarece ne putem concentra pe interfețe.
PROGRAMAREA MEDIILOR DISTRIBUITE
O componentă este o colecție de obiecte de afaceri care efectuează procesarea, încapsulează datele și furnizează interfețele utilizatorilor necesari. Pentru a interacționa obiecte dintr-o componentă, se utilizează ORB. În plus, cu ajutorul obiectelor ORB schimbul de informații despre ei înșiși, ca rezultat, obiectele "învață" despre existența altor obiecte în timpul execuției programului. Astfel, componenta are tot ceea ce aveți nevoie pentru a afișa vederea obiectului și pentru a interacționa cu acesta. O componentă tipică de afaceri ar putea fi folosită, să zicem, pentru a afișa alocarea de locuri pe un zbor de 11 ore în Los Angeles, iar cealaltă pentru a înregistra informații despre rezervarea locurilor în acest zbor.
Capacitățile componentelor pot fi extinse prin adăugarea de funcții de serviciu la nivel de sistem. Funcția de persistență este utilă pentru a menține starea obiectelor din cadrul componentei. În plus, funcțiile de control Concurrency și Transactions vor asigura integritatea obiectelor din cadrul componentei. Deoarece aceste funcții de serviciu sunt construite în CORBA, ele pot fi folosite pentru a crea componente "inteligente", fără a trebui să le programați de la zero. Deși DCOM are de asemenea un registru de componente și un birou de ajutor, nu există nicio modalitate de a menține starea obiectelor DCOM în timpul unei întreruperi între conexiuni. Din cauza acestui deficit, DCOM este inferior CORBA.
La nivel de aplicație, unde se stabilesc limitele infrastructurii componente, structurile programului de bază determină modul de implementare a activității comune a componentelor independente. Datorită limitelor clar definite, toate componentele împreună funcționează ca un singur complex, astfel încât impresia de unitate a programului de aplicație este creată. Această unitate permite aplicațiilor care utilizează obiecte distribuite în medii eterogene să interconecteze "în mod transparent" unul cu celălalt. Integrarea "transparentă" înseamnă că utilizatorii percep programul de aplicații în ansamblu, și nu ca un set complex de module deconectate.
Infrastructura unei componente a unui program de aplicații poate fi extinsă la infrastructura unei componente a mai multor programe. În acest caz, CORBA este responsabil pentru schimbul de informații între multe aplicații diferite din cadrul sistemului corporativ. Pentru programele incompatibile cu CORBA, cum ar fi aplicațiile moștenite, puteți crea împachetări care le oferă aspectul obiectelor CORBA. Coaja acționează ca interfața necesară pentru a accesa funcțiile specifice ale programului vechi.
Dacă aveți programe integrate CORBA cu procesele client și server, aveți toate componentele unui model de server client pe mai multe niveluri. Un nivel sunt obiectele vizuale, de exemplu, interfețele care sunt plasate pe PC-urile client. Un alt nivel de obiecte de server care oferă funcții de afaceri. Un alt nivel constă în programele de aplicații vechi, de exemplu, un DBMS pe un mainframe.
ȘI ÎN CONCLUZIE
Având în vedere că consorțiul din spatele acestei specificații include mai mult de 700 de companii, CORBA este ceva mai mult decât o nebunie care a cuprins piața. CORBA este superioară modelului tradițional cu trei niveluri de server client, datorită faptului că este o arhitectură complet scalabilă și extrem de flexibilă. Folosind CORBA, puteți extinde cu ușurință o rețea compusă din trei computere într-o rețea de scale Internet. CORBA oferă o structură de bază care vă permite să conectați obiecte programate în diferite limbi și nu contează pentru ce platformă sau sistem de operare au fost create aceste obiecte, dacă există un mijloc de negociere cu CORBA. Deoarece CORBA este proiectat pentru platforme eterogene, în prezent are avantaje față de DCOM. Cu toate acestea, ținând seama de puterea Microsoft, DCOM, fără îndoială, în viitorul apropiat va deveni o forță care trebuie luată în considerare.