Documente Academic
Documente Profesional
Documente Cultură
Distribuit
CUPRINS
1.
1.4.
1.5.
1.5.1.
1.5.2.
1.5.3.
1.5.4.
1.5.5.
1.6.
1.7.1.
1.7.2.
1.7.3.
2.
Tipul transferului.....................................................................................................6
Arborele directoarelor..............................................................................................6
Transparena numelor..............................................................................................6
Semantica partajrii fiierelor..................................................................................6
AFS (Andrew File System)......................................................................................6
1.6.1.
1.6.2.
1.7.
Sevicii de reea.........................................................................................................4
Protocoale de reea...................................................................................................5
Linda........................................................................................................................8
Publicare/nregistrare (Publish/Subscribe)..............................................................8
Jini...........................................................................................................................8
Probleme de implementare......................................................................................9
1.
1.1.
Introducere
Multiprocesor
CPU
Toate partajate
Pe aceeai plac
RAM partajat
Unul, partajat
Unul, partajat
O singur organizaie
Multicalculator
CPU, RAM, interfa de reea
Eventual hard disk partajat
Aceeai camer
Interconectare dedicat
Mai multe, acelai tip
Unul partajat
O singur organizaie
Sistem distribuit
Calculator complet
Toate disponibile nodului
Posibil n toat lumea
Reea tradiional
Posibil toate diferite
Fiecare nod are cte unul
Mai multe organizaii
Aplicaiile tipice pentru Internet includ accesul la calculatoarele remote (folosind telnet i
rlogin), accesul la informaii (folosind WWW i FTP), comunicaiile interpersonale (folosind email i chat) i multe alte aplicaii derivate (de exemplu, e-commerce, e-learning etc.). Problema
cu aceste aplicaii este c fiecare trebuie s o ia de la zero. De exemplu, e-mail, ftp i WWW
transfer fiiere, dar fiecare dintre ele are un mod
absolut diferit de a realiza acest lucru din punct de vedere al conveniilor de nume, al
protocoalelor de transfer, al tehnicilor de replicare etc. Cu toate acestea multe browsere de Web
ascund aceste diferene utilizatorilor.
Sistemele distribuite adaug nivelului inferior de reea o paradigm comun (model) care
asigur o modalitate uniform de tratare a ntregului sistem. Intenia sistemelor distribuite este de
a transforma o mulime de maini slab cuplate ntr-un sistem coerent, bazat pe un singur concept
cu scopul de a asigura unificarea sistemului.
Un exemplu simplu de utilizare a paradigmei de unificare a sistemului se ntlnete n
sistemele UNIX unde toate dispozitivele I/O sunt tratate n aceeai manier ca i fiierele datorita
faptului c tastatura, porturile paralele i seriale opereaza la fel i sunt mai uor controlat dect
dac ar fi privite, din punct de vedere conceptual, diferit.
O modalitate de a obine, ntr-o oarecare masur, uniformizarea n sistemele distribuite
(compuse din platforme hardware i sisteme de operare diferite) este introducerea unui nivel
intermediar ntre sistemul de operare i nivelul aplicaiei. Acest nivel este numit, de obicei,
middleware. El asigur structuri de date i operaii, care permit utilizatorilor i proceselor
remote s interopereze ntr-o manier consistent. Middleware poate fi privit ca un sistem de
operare pentru sisteme distribuite.
1.2.
Hardware-ul retelelor
1.3.
Toate reelele de calculatoare asigur anumite servicii pentru utilizatori, care sunt
implementate respectndu-se anumite reguli legate de schimbul legal de mesaje.
1.3.1.
Sevicii de reea
frecvent pentru implementarea comunicaiei n modelul client-server: clientul iniiaz o cerere iar
serverul rspunde la aceasta.
1.3.2.
Protocoale de reea
O reea are reguli specializate referitoare la tipurile de mesaje care pot fi trimise i la
rspunsurile care pot fi returnate. De exemplu, n anumite situaii (transferul fiierelor), cnd un
mesaj este trimis de la o sursa la o destinaie, destinaia trebuie s trimit un mesaj de confirmare
c transmisia s-a efectuat corect. n alte situaii (telefonia digital) nu se ateapt aceast
ntiinare. Setul de reguli care particularizeaz comunicaia ntre calculatoare se numeste
protocol. Toate reelele moderne de calculatoare folosesc aa numita stiv de protocoale pentru a
structura pe nivele diferitele protocoale. Fiecare nivel trateaz alt gen de problem. De exemplu,
pe cel mai jos nivel, protocoalele definesc modul n care, ntr-o secven de bii, ncepe i se
termin un pachet. Pe urmtorul nivel protocoalele trateaz modul de rutare a pachetelor n reele
complexe, de la surse la destinaie. Pe un nivel mai nalt, protocoalele asigur transferul corect,
din punct de vedere al integritii i succesiunii pachetelor, al mesajelor multipachet.
ntruct majoritatea sistemelor distribuite se bazeaz pe Internet, protocoalele cele mai
folosite sunt: IP i TCP. IP (Internet Protocol) este un protocol cu datagrame n care emitorul
trimite o datagrama (pn la 64 KB) n reea i sper s ajung la destinaie. Nu sunt oferite nici
un fel de garanii. Datagrama poate fi fragmentat n pachete mai mici atunci cnd cltorete
prin Internet. Pachetele cltoresc independent i nu neaprat pe aceeai rut. Cnd toate
pachetele au ajuns la destinaie, sunt reasamblate n ordinea corect.
Datagramele IP nu folosesc ACK (acknowledgment code), deci protocolul IP nu este
suficient pentru a avea o comunicaie sigur n Internet. Pentru a asigura comunicaii sigure se
folosete, n general, protocolul TCP (Transmission Control Protocol) care este situat, de obicei,
deasupra protocolului IP. Protocolul TCP folosete protocolul IP pentru a asigura structuri de
date orientate pe conexiune. Pentru a folosi TCP, un proces trebuie nti s stabileasc o
conexiune la un proces la distan. Procesul cerut este specificat prin adresa de IP a unei masini
i printr-un numr de port de pe respectiva main care este disponibil pentru ascultarea
cererilor. Dup ce conexiunea a fost stabilit, procesul trimite bii pe conexiune, garantndu-se
faptul c ei ajung nealterai i n ordinea corect la destinaie. Implementarea protocolului TCP
asigur aceste garanii folosind secvene numerotate, sume de control i retransmisia pachetelor
recepionate incorect. Toate aceste operaii sunt transparente emitorului i receptorului. Acetia
vd doar o comunicaie interproces sigur.
1.4.
Dup cum am mai menionat, pentru a obine consisten n sistemele distribuite s-a
introdus un nivel intermediar numit middleware. Acest nivel poate fi implementat pornind de la
concepte de baz diferite. Cel mai cunoscut exemplu de middleware este World Wide Web. Ideea
general care a stat la baza Web-ului este foarte simpl: fiecare calculator poate s stocheze unul
sau mai multe documente numite pagini Web. Fiecare pagin Web conine text, imagini, icon-uri,
sunete, filme i multe altele, mpreun cu hyperlink-uri (pointeri) ctre alte pagini Web.
Atunci cnd un utilizator cere o pagin Web folosind un program numit browser de Web,
pagina este afiat pe ecran. Fiecare pagin Web are o adres unic numit URL (Uniform
Resource Locator). Protocolul cel mai des folosit este http (HyperText Transfer Protocol), dar
exist i alte protocoale de transfer, cum ar fi ftp (File Transfer Protocol).
Modul de funcionare al sistemului este urmtorul. Web-ul este un sistem tipic clientserver n care utilizatorii sunt clieni i site-ul de Web este server-ul. Atunci cnd utilizatorul d
browser-ului o adres URL, acesta efectueaz cateva operaii pentru a afia pagina Web cerut.
1.5.
1.5.1.
Tipul transferului
Primul aspect este alegerea ntre modelul upload/download i modelul remote access.
n modelul remote access fiierul rmane pe server i clientul trimite comenzi pentru ca
lucrul s se desfoare pe server.
n modelul upload/download un proces acceseaz un fiier copiindu-l mai nti de pe
server. Dac fiierul trebuie doar citit, el este citit local, pentru mbuntirea performanelor.
Dac fiierul trebuie modificat, modificarea se face local. La terminarea lucrului cu fiierul
respectiv, fiierul actualizat este repus pe server. Avantajul modelului upload/download este
simplitatea acestuia. Dezavantajul este c trebuie s existe capacitatea de a stoca local ntregul
fiier iar mutarea ntregului fiier este
ineficient dac nu sunt necesare dect pri din acesta. Pe lng aceste probleme mai apare i
problema consistenei, atunci cnd exist mai muli utilizatori.
1.5.2.
Arborele directoarelor
O alt parte a acestui sistem este constituit de sistemul de directoare. Toate sistemele de
fiiere distribuite asigur suport pentru directoarele care conin mai multe fiiere. Exist mai
multe aspecte de care trebuie inut cont n proiectarea unui astfel de sistem. Un prim aspect ar fi
dac toi utilizatorii dispun de acelai model de vizualizare al ierarhiei directoarelor. Un alt
aspect este dac trebuie s existe sau nu un director rdcin recunoscut de toate mainile ca
rdcin.
O modalitate de a avea un director rdcin global este de a avea o rdcin care conine
o intrare pentru fiecare server. n aceast situaie calea are forma /server/path cu propriile sale
dezavantaje dar cel puin este aceeai n tot sistemul.
1.5.3.
Transparena numelor
1.5.4.
Atunci cnd doi sau mai muli utilizatori partajeaz acelai fiier, este necesar definirea
unei modalitati de citire i scriere precise pentru a evita problemele. n sistemele uniprocesor
tratarea obinuit este urmatoarea: atunci cnd o procedur de citire urmeaza dup o procedur
de scriere, procedura de citire returneaz ultima versiune scris. Similar, atunci cnd apare o
succesiune de dou proceduri de scriere urmate de o procedur de citire, valoarea citit este cea
stocat n urma ultimei proceduri de scriere. Se spune c acest model are consisten
secvenial.
1.5.5.
1.6.
1.6.1.
Unele limbaje de programare cum ar fi C++ sau Java sunt orientate pe obiecte, dar aceste
obiecte sunt obiecte mai mult la nivel de limbaj dect obiecte run-time. Un sistem de baz pentru
obiecte run-time este CORBA (Common Object Request Broker Architecture). CORBA este un
model de tip client-server n care procesele client, rezidente pe mainile client, pot invoca
operaii pe obiectele localizate (posibil la distan) pe mainile server. Modelul CORBA a fost
proiectat pentru sisteme eterogene care ruleaz pe o varietate de platforme hardware i sisteme
de operare i implementate ntr-o multitudine de limbaje.
Standardul CORBA asigur infrastructura de comunicaie (middleware) a aplicaiilor.
1.6.2.
Globe
Un alt exemplu de sistem distribuit bazat pe obiecte, proiectat special pentru a fi folosit
de foarte muli utilizatori i a transfera un numar foarte mare de obiecte este Globe. Exist dou
probleme majore n proiectarea sistemelor de capacitate foarte mare. Primul aspect se refera la
replicarea obiectelor. A doua mare problem este constituit de flexibilitate. n sistemele cu mare
rspndire geografic, cu foarte muli utilizatori, nu exist nici o modalitate de a convinge toi
utilizatorii s foloseasc acelai limbaj de programare, aceeai strategie de replicare, acelai
model de securitate, i multe altele. Sistemul trebuie s permit utilizatori diferii i obiecte
diferite, care au o comportare diferit i, n acelai timp, trebuie s asigure un model coerent.
Acest lucru este realizat de Globe. ntruct un obiect Globe poate fi partajat de mai multe
procese n acelasi timp, acesta se mai numete i obiect distribuit partajat.
Pentru a folosi un obiect Globe, un proces trebuie s se conecteze mai nti la el prin
identificarea lui i prin gsirea a cel puin unei adrese de contact (de exemplu, adresa de IP i
port). La conectare se efectueaz cel puin o verificare de securitate i, dac procesul este
autorizat s se conecteze la obiect, plasa obiectului (codul acestuia) este ncrcat n spaiul de
adrese al procesului care a iniiat cererea, o copie a strii obiectului este instaniat i este
returnat un pointer la interfaa (standard) obiectului.
Folosind pointer-ul la interfaa, procesul poate apela metode ale instanei obiectului
respectiv. n funcie de obiect starea poate fi cea predefinit (default) sau o copie a strii curente
obinut de la unele copii n via.
1.7.
1.7.1.
Linda
1.7.2.
Publicare/nregistrare (Publish/Subscribe)
Acest sistem const din mai multe procese concatenate de o reea de difuzare (broadcast
network). Fiecare proces poate fi un productor de informaii, un consumator de informaii sau
amndou. Atunci cnd un productor de informaii are o informaie nou, o difuzeaz n reea
sub forma unui tuplu. Aceast aciunii se numete publicare. Fiecare tuplu conine o ierarhie de
linii de subiecte format din cmpuri multiple, separate prin perioade. Procesele interesate de
anumite informaii se pot nregistra la anumite subiecte. nregistrarea este realizat prin
furnizarea subiectului cutat unui proces pentru tupluri, rezident pe maina care controleaz
tuplurile nregistrate.
1.7.3.
Jini
Acest sistem a fost conceput de firma Sun Microsystems. Lumea Jini const ntr-un
numar mare de dispozitive Jini autoincluse, fiecare putnd oferi servicii celorlalte. Un dispozitiv
Jini poate fi conectat ntr-o reea i ncepe s ofere servicii instantaneu, fr a necesita o
procedur complex de instalare. Trebuie reinut faptul c dispozitivele sunt conectate ntr-o
reea i nu ntr-un calculator. Un dispozitiv Jini poate fi un calculator, dar poate fi i o
imprimant, un telefon celular, un televizor, un casetofon sau orice alt dispozitiv care are un
procesor, memorie i o posibilitate de conectare n reea (chiar i fr fir). Un sistem Jini este o
colecie de dispozitive Jini care pot aprea i disprea fr a avea o administrare centralizat.
Atunci cnd un dispozitiv Jini vrea s se alture coleciei de dispozitive Jini, acesta difuzeaz un
pachet, n reeaua local sau n celula wireless local, testand dac exist un serviciu de
identificare (lookup service). Protocolul folosit pentru a gsi serviciul de identificare este
protocolul de descoperire (discovery protocol) i este unul dintre puinele protocoale puternic
cablate (hardwired) din Jini. Atunci cnd serviciul de identificare descoper un nou dispozitiv
care vrea s se nregistreze i rspunde acestuia cu un cod cu care poate realiza nregistrarea.
Deoarece Jini este un sistem realizat n totalitate n Java, codul trimis de acest serviciu este n
format inteligibil pentru JVM (Java Virtual Machine). Toate dispozitivele Jini trebuie s fie
capabile s ruleze o maina virtual Java. Un dispozitiv Jini se poate deconecta din sistem i
existena lui va fi curnd uitat fr a fi nevoie de administrare centralizat.
2.
2.1.
Ideea de la care a pornit dezvoltarea acestei arhitecturi este apelarea procedurilor pe alt
procesor. Atunci cnd un proces de pe o maina apeleaz o procedur de pe o a doua main,
procesul apelant de pe maina unu este suspendat i procedura apelat se efectueaz pe cealalt
main. Informaiile pot fi transportante de la apelant la apelat sub forma unor parametri i pot fi
returnate sub forma rezultatelor procedurii. Mesajele transferate sau I/O sunt complet
transparente programatorului. Aceast tehnic a fost numit apelul procedurilor la distan (RPC)
i a stat la baza dezvoltarii multor aplicaii i sisteme software. Procedura apelant poate fi
considerat client, iar procedura apelat poate fi considerat server.
Ideea de baz a RPC este aceea de a face un apel de procedur la distan s par pe ct
posibil un apel local. Cea mai simpl form de apelare a procedurilor la distana este de a lega
clientului o bibliotec de proceduri numit stub-ul clientului.
Stub-ul clientului reprezint procedura serverului n spaiul de adres al clientului.
n mod similar, serverul este legat cu o bibliotec de proceduri numit stub-ul server-ului.
Aceste biblioteci de proceduri ascund faptul c apelul de la client la server nu este local.
Comunicaia se desfoar n felul urmtor:
Clientul apeleaz stub-ul clientului. Acesta este un apel local de procedur n care parametrii
sunt stocai n stiv n modul obisnuit.
Stub-ul clientului mpacheteaz parametrii ntr-un mesaj i face un apel de sistem pentru a
trimite mesajul. mpachetarea parametrilor se numeste marshaling.
Nucleul sistemului de operare (kernel) trimite mesajul de pe maina clientului pe maina
serverului.
Nucleul sistemului de operare de pe maina serverului trimite pachetul recepionat stub-ului
serverului (care n mod normal a cerut recepionarea).
Stub-ul serverului apeleaz procedura serverului. Rspunsul urmeaz aceeai cale n sens
invers.
Elementul cheie al acestei modaliti de programare este c procedura clientului, scris de
utilizator s apeleze stub-ul clientului, are acelai nume ca procedura serverului. Din moment ce
procedura clientului i stub-ul clientului sunt localizate n acelai spaiu de adres, parametrii
sunt pasai n mod obisnuit. Similar, procedura serverului este apelat de o procedur din spaiul
su de adrese cu parametri cerui. Peocedura serverului nu are nimic neobinuit. n acest fel, n
loc s avem operaii de intrare/ieire folosind emisie i recepie (send and recive), comunicaia la
distan este realizat prin simularea unui apel de procedur obinuit.
2.1.1.
Probleme de implementare
Din pcate aceast metod nu funcioneaz n toate cazurile. De exemplu, dac pointer-ul
se refer la o structur complex nu mai este posibil aceast metod. Din aceste considerente
trebuie fcute anumite restricii pentru parametrii pasai n apelul procedurilor la distana.
O a doua problem este constituit de slbiciunile limbajelor de programare cum ar fi C.
n C, de exemplu, este permis declararea unui vector fr s fie nevoie s se specifice
dimensiunea maxim a acestuia. Fiecare vector are o dimensiune maxim cunoscut numai de
procedura apelant i de procedura apelat. ntr-o astfel de situaie, mpachetarea de ctre stub-ul
clientului a parametrilor este imposibil deoarece acesta nu poate determina dimensiunile
maxime ale vectorilor respectivi.
O a treia problem este c nu ntotdeauna se poate deduce tipul parametrilor. Un exemplu
este funcia printf, care poate avea orici parametri de tipuri diferite: ntregi, caractere, stringuri, etc. ncercarea de a apela la distana funcia printf este practic imposibil pentru c limbajul
C este prea ngduitor. Cu toate acestea, dac s-ar specifica o regul ca RPC s nu fie permis n
limbajul C, ci numai n C++, aceasta nu ar fi acceptat.
A patra problem se refer la utilizarea variabilelor globale. n mod obinuit, apelarea,
procedura apelant i procedura apelat pot comunica folosind variabile globale ca parametri.
Dac procedura apelat este mutata pe o main la distan, codul nu va putea fi executat pentru
c variabilele globale nu mai sunt partajate. Cu toate problemele de implementare pe care la
ridic apelul procedurilor la distan, aceast tehnic este totui foarte utilizat. Pentru ca
funcionarea s se desfaoare corect, trebuie impuse anumite restricii.
2.2.
comportamentul superclasei oferind aceleai operaii asupra interfeei sale i permind crearea
de noi metode sau redefinirea unora din superclasa. Polimorfismul motenirii permite unor
obiecte diferite s raspund n mod diferit la acelai mesaj, face mai puternic mecanismul de
pasare a mesajelor ntre obiecte.
Tehnologiile bazate pe componente extind programarea orientat pe obiect oferind o
puternic abstractizare a modelului structural al sistemelor software. n general, termenul de
aplicaie bazat pe componente se refer la un model software care const dintr-un set de
concepte pe care un programator le poate folosi pentru a combina dinamic componentele
software n realizarea unei aplicaii. Conceptele de obiect, componenet, spaiu de lucru i
document au o semnificatie strns legat de contextul din care fac parte, dar, ntr-o prim
aproximare, se pot defini dup cum urmeaz:
Obiectul reprezint un container cu operaii de identificare i interfaare care partajeaz o stare
persistent.
Componenta este un obiect software care include o parte de algoritm logic. Componenta are
capacitile de granularitate variabil, refolosire i posibilitatea existenei unei entiti de sine
stttoare.
Spaiul de lucru nglobeaz componente colaborative cu o comportare extensibil pentru API
Documentul este o component prevzut cu o interfa interactiv pentru navigare i editare.
Documentul compus activ este un document format din pri distincte programabile prin scripturi. Complexitatea unei componente poate varia de la o simpl component grafic cum ar fi
butonul pn la procesoare de text sau tabele complexe de date.
Un model de aplicaie bazat pe componente trebuie s asigure o serie de servicii
esentiale pentru crearea eficient a unei aplicaii. Cnd o component este legat n run-time,
sunt necesare mecanisme pentru identificarea acesteia astfel nct celelalte componente s tie s
interacioneze cu ea. Acest proces se numete nregistrare i publicare a interfeei componentei
n cadrul spaiului de lucru. Este necesar persistena pentru a putea stoca informaiile oferite de
o component. Aceste faciliti sunt oferite de tipuri de componente ca OpenDoc, COM i
JavaBeans i n acelai timp de anumite medii de programare cum ar fi VisualBasic sau Delphi,
care ofer biblioteci extinse i utiliti care sunt referite tot sub numele de componente .
Spaiile de lucru (frameworks) sunt o colecie de componente colaborative prevzute cu
interete extensibile specializate pe domeniu pentru clieni. Documentele sunt componente
specializate ale cror interfee grafice sunt prevzute cu faciliti de editare i navigare. Spre
deosebire de acestea, documentele compuse activ sunt formate din pri cu funcionare autonom
asigurat prin thread-uri multiple sau prin script-uri. OpenDoc extinde paradigma din 1980 de
file/folder desktop pentru a asigura un model de document compus, puternic i simplu, care are
la baz interoperabilitatea dintre obiectele CORBA distribuite.
Componentele ActiveX prevd un model de document pentru documentele World Wide
Web (WWW) bazat pe componentele Microsoft, COM sau OLE.
Componentele JavaBeans mpachetate n arhive JAR confer un mediu de dezvoltare a
aplicaiilor bazate pe Java pentru managementul componentelor i construirea de platforme din
beans-uri (clase care respect anumite convenii legate de interfa).
Comparaia dintre modelele de document oferite de OpenDoc, ActiveX i JavaBeans
genereaz principii valabile pentru proiectarea i implementarea spaiilor de lucru bazate pe
componente colaborative prevzute cu interfee grafice interactive. OpenDoc, COM/OLE i Java
ofer modele foarte diferite de componente. Componentele OpenDoc au o identitate, o stare i
interfee vizuale, componentele COM/OLE sunt colecii de interfee care asigur servicii
independente de timp i trateaz identitatea i starea ca proprieti ale unor interfee speciale,
dependente de stare, ale containerelor, n timp ce componentele Java au o interfa nucleu i un
model de securitate care pot fi extinse cu clase modulare, biblioteci i unelte (tools).
OpenDoc specific o infrastructur independent de limbaj i un model de document
elaborat de OMG. Elegana conceptual i arhitectural a acestui model ofer un punct de pornire
pentru nelegerea arhitecturii documentului. ActiveX specializeaz componentele Microsoft
11
COM/OLE spre un model de document bazat pe Web. Java, cu extensiile acesteia incluse n
bibliotecile de clase java.lang, java.util i java.awt, asigur nu numai un limbaj ci i un mediu
de dezvoltare pentru tehnologia bazat pe componente, n timp ce JavaBeans extinde mediul de
programare Java pentru a oferi un toolkit de dezvoltare al componentelor i documentelor.
CORBA a jucat un rol important n formularea conceptelor i arhitecturilor interoperabile.
Interoperabilitatea COM-urilor la nivel binar (cod maina) i interoperabilitatea Java n cadrul
unui singur limbaj bine proiectat sunt mai puin ambiioase ca abordarea multilimbaj oferit de
CORBA. Interoperabilitatea este mult mai simpla n Java, care ofer un limbaj integrat, un mediu
de dezvoltare i un model bazat pe componente datorit faptului c diferenele datorate
limbajului sunt minime i ntrebrile semantice legate de interoperabilitate pot fi adresate direct.
JavaBeans pune accentul pe construirea de componente compuse din componentele Java i d
posibilitatea unei mai bune integrri a aplicaiilor de tip frame sau applet-urilor Java n sisteme
Web sau CORBA.
12
3.
n acest capitol sunt prezentate, pe scurt, avantajele i dezavantajele fiecreia din cele trei
tehnologii. Pentru a executa cod rezident pe alte maini distribuite n reea, abordarea tradiional
a implementrii genereaz confuzii i erori. O modalitate mai bun de abordare a acestei metode
este de a considera c unele obiecte rezid pe diferite maini din reea i c se pot invoca metode
ale acelor obiecte prin trimiterea de mesaje ctre acestea, rezultatele de la ele obinndu-se ca i
cum apelul ar fi fost local.
Scopul principal al acestor trei tehnologii este s asigure o infrastructur care s permit
scrierea relativ simpl a aplicaiilor distribuite, dar acest scop este atins de fiecare tehnologie n
alt mod.
Pe scurt, tehnologia Java RMI a fost elaborata de JavaSoft, CORBA este o specificatie
de la OMG, iar DCOM provine de la Microsoft Corporation. De altfel, standardul CORBA a fost
elaborat ca rspuns la tehnologiile Microsoft COM i DCOM.
Cele trei tehnologii au aspecte comune, folosind un fel de regitri pentru nregistrarea
obiectelor i un limbaj de definire a interfeelor pentru generarea stub-ului pentru codul
clientului.
3.1.
Java RMI
3.2.
CORBA
Arhitectura CORBA este probabil cel mai ambiios i mai important proiect middleware
realizat vreodata n industrie. Corporaia OMG (Object Management Group) la care firma Sun a
fost una din companiile fondatoare, nglobeaza un spectru larg de firme din industria de soft.
13
Avantaje:
Este o arhitectur conceput pentru dezvoltarea sistemelor.
Ofer o terminologie standard pentru concepte.
Interfeele pentru declaraii separ interfaa i implementarea.
Asigur maparea din IDL n C, C++, ADA, SmallTalk i Java.
Pentru c a fost proiectat pentru distribuire, exist suport pentru modificarea i concatenarea datelor.
Asigur portabilitatea proiectelor.
Este scalabil pentru sisteme mari.
Ofer protocoale standard de interoperabilitate.
Dezavantaje:
Nu exist nici o interfa pentru excepii.
Motenirea cauzeaz probleme n versionare i obiectele nu pot suporta dou versiuni ale
aceleiai interfee.
Limbajul IDL nu este internaionalizat.
Exist mecanisme divergente pentru securitate (kerberos, SSL).
Exist servicii de baz, dar foarte puine servicii avansate.
Dificulti:
Maparea n C++ are reguli complicate pentru managementul memoriei.
Exist puine programe utilitare pentru dezvoltarea aplicaiilor (n general doar un
compilator de IDL).
Modelul de concuren este limitat pentru c nu exist standardizare pentru prioritatea
thread-urilor, blocaje i timeout.
3.3.
DCOM
Un aspect important este rularea aceluiai cod pe ct mai multe platforme posibil. Soluia
Java/CORBA este mai potrivit dect DCOM atunci cnd se dorete mutarea aplicaiei pe
platforme diferite fr ca acest lucru s necesite recompilare. Chiar dac aplicaia trebuie s
interacioneze cu obiecte DCOM tot soluia Java i CORBA poate fi mai bun putndu-se folosi
o tehnologie de legatur cu interfaa DCOM.
RMI, CORBA, i DCOM sunt toate exemple de tehnologii middleware, iar dezvoltarea
middleware va continua s joace un rol important n dezvoltarea de sisteme extensibile.
Bibliografie
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Berg, C., Advanced Java Development for Enterprise Applications, Sun Microsystems
Press, New York, 1999
Box, D., Essential COM, Addison-Wesley, 1998.
Chung, P.E., Huang, Z., Yajnik, S., Liang, D., Shih, J.C., Wang, C.Z., and Wang, Z.M.,
DCOM and CORBA Side by Side, Step by Step, and Layer by Layer, C++ Report, Vol.
10, No. 1, pp. 18-29, 40, Jan. 1998.
Jurca, I., Programarea reelelor de calculatoare, Editura de Vest, Timioara, 2000
Rubin, W., Brain, M., Understanding DCOM, Prentice Hall Inc., 1999
Tanenbaum, A., Computer Networks, Third Edition, Prentice Hall, Upper Saddle River,
New Jersey, 1996
Tanenbaum, A., Modern Operating Systems, Second Edition, Prentice Hall, Upper
Saddle River, New Jersey, 2001
www.appdevadvisor.com, The house CORBA built, Component Computing
www.cariboulake.com, Lake, C., RMI versus CORBA
www.java.sun.com, Java.RemoteMethodInvocation Specification, Sun Microsystems
www.whatis.com, What is CORBA;
15