Documente Academic
Documente Profesional
Documente Cultură
9/1999 33
De-a lungul celor câtiva ani de existenta, OOP este organizat în jurul datelor ce
Web-ul a avut o evolutie spectaculoasa, trebuie procesate si nu în jurul actiunilor ce
trecând de la simplu la complex, stadiul spre trebuiesc luate, rezultând astfel sisteme mult
care se îndreapta astazi. mai stabile.
Initial s-a pornit de la Web-ul hypertext, OOP a impus noi concepte software si noi
care avea la baza serverul de fisiere bazat pe structuri lexicografice, ce includ obiecte,
URL, urmat apoi de Web-ul cu raspunsuri atribute, clase, abstractii, mosteniri, încap-
simple, format din formulare, CGI, tabele, sulari si polimorfism.
ISAPI, NSAPI, si pe urma script-uri, push, Implementarea cu succes în lumea comer-
WebObjects, DHTML, cookies, plug-in ciala a tehnologiei OOP este strâns legata de
CORBA, ASP, iar în prezent, în formare, cel standardele emise de grupurile specifice,
cu interactivitate avansata, Web-ul de cum ar fi OSF (Open Software Founda-
obiecte care contine aplicatii client/server, tion) si OMG (Object Management
create cu ajutorul Java Beans, applet-uri, Group).
ActiveX, coordonatori de componente, inter- OMG (Object Management Group) a dez-
actiuni ORB via CORBA sau DCOM. voltat un standard care s-a concretizat în ar-
Aceasta evolutie spectaculoasa a WWW- hitectura OMA (Object Management
ului a condus, fireste, la dezvoltarea tehno- Architecture) .
logiilor de aplicatii distribuite, care au deve- Aceasta arhitectura furnizeaza o infrastruc-
nit din ce în ce mai complexe. tura ce permite obiectelor software definite
Directiile de dezvoltare a tehnologiilor de sa comunice si sa interopereze între ele,
aplicatii distribuite au fost orientate spre indiferent de specificul platformei sau lim-
Java, care ofera mecanisme puternice în bajului.
acest sens, precum si spre CORBA, care Elementul central al arhitecturii îl constituie
permite în plus independenta de limbaj a ORB (Object Request Broker). Acest ele-
implementarii clientului si serverului care ment actioneaza ca un broker (agent de
comunica între ele. schimb) si este responsabil cu obiectele
În continuare se vor prezenta succint cele clientilor, care pun întrebari, si cu imple-
mai importante caracteristici ale principa- mentarea obiectelor, care furnizeaza raspun-
lelor tehnologii pentru aplicatii distribuite. suri.
OMG a elaborat o specificatie pentru ORB,
1.CORBA numita CORBA (Common Object Request
Premiza de baza a programarii orientate Broker Arhitecture) .
obiect consta în faptul ca aplicatiile si CORBA, gândit initial pentru clienti
functiile pot fi divizate în clase de obiecte puternici, cum ar fi întreprinderi mari care
care pot fi reutilizate. Un program orientat detin sisteme si aplicatii realizate în arhi-
34 Revista Informatica Economica, nr. 9/1999
5 5 SERVER
ORB
1 3 Adaptor de
obiecte
Client 2
4
A fost introdus în JDK1.1, este destinat ex- Java IDL este de fapt un nucleu ORB care
clusiv Java si este creat de JavaSoft în sco- respecta standardul CORBA 2.0, si care
pul facilitarii apelului metodelor de la dis- foloseste limbajul de descriere a interfetelor,
tanta de catre programele Java, precum si a IDL. Acesta vine împreuna cu un serviciu de
transmiterii obiectelor între sisteme. nume compatibil Java, numit Java IDL na-
Caracteristicile RMI sunt urmatoarele: ming service, care permite accesarea obiec-
- suporta colector de deseuri distribuit; telor printr-un set de standarde de interfete.
- pastreaza elemente de securitate din Java ;
- permite cereri de prelucrare multiple 3. DCOM (MFC COM/OLE)
datorita naturii multifilare a limbajului Java; COM, aparut în 1993, este o tehnologie de
- foloseste serializarea obiectelor, ca si în împachetare, un grup de conventii si biblio-
Java, pentru transmiterea obiectelor între teci de suport care permit interactiuni între
sisteme fara a folosi scheme de codare diferitele parti soft, într-un mod consistent,
complexe ca si în CORBA. orientat obiect. Obiectele COM pot fi scrise
RMI extinde puterea limbajului Java în în diferite limbaje, cum ar fi C++, Java,
domeniul sistemelor distribuite, realizând si Visual Basic, putând fi implementate în
o interoperabilitate cu CORBA prin imple- DLL-uri sau în executabile proprii care se
mentarea unui subset din IIOP. În viitor, executa ca procese distincte.
RMI poate oferi replicare la invocarea meto- COM este un standard elaborat de Microsoft
dei si poate chiar alte protocoale de transport si specifica modul de interactiune a com-
diferite de TCP/IP, putând deveni viitorul ponentelor unei aplicatii distribuite, aplicatia
comunicatiilor orientate pe obiecte. fiind constituita din obiecte care comunica
Java IDL este un ORB care adauga la între ele prin intermediul “interfetelor” si
CORBA capabilitati Java, oferind interope- “metodelor”. O interfata poate contine poate
rabilitate si conectivitate bazate pe stan- contine una sau mai multe metode si nu se
darde. poate schimba o data ce a fost specificata.
IDL (Interface Definition Language) permite Fiecare obiect trebuie sa suporte obligatoriu
ca toate obiectele CORBA sa fie descrise în o singura interfata, numita “Unknown”, care
aceeasi maniera, realizând astfel indepen- contine trei metode, celelalte interfete fiind
denta fata de limbajul nativ, care poate fi la îndemâna proiectantului. Obiectul îsi
C,C++, Java, COBOL etc. ofera serviciile unui client, prin intermediul
Java IDL face posibila dezvoltarea de apli- interfetelor, clientul trebuind sa instantieze
catii distribuite Java care invoca în mod obiectul din clasa respectiva pentru a
transparent operatii de pe noduri diferite de beneficia de serviciile lui si apoi sa obtina
retea, folosind standardul industrial OMG pointeri catre interfetele suportate si
IDL si protocolul IIOP. metodele lor. Obiectele pot rula în acelasi
proces cu clientul, sub forma de biblioteca
36 Revista Informatica Economica, nr. 9/1999
dinamica (DLL) sau printr-un proces standarde a realizat o aplicatie pentru medii
separat. distribuite, numita DCE (Distributed Com-
COM asigura suport pentru mai multe puting Environment). Acesta permite cons-
mecanisme de persistenta, dintre care cele truirea, utilizarea si întretinerea aplicatiilor
mai utilizate sunt: distribuite. Serviciile distribuite ale lui DCE,
- persistenta bazata pe fisiere – este cea mai includ: RPC (Remote procedure Call), SS
simpla si la care un obiect încarca doar (Security Service), DDS (Distributed Direc-
datele persistente dintr-un fisier; tory Service), TS (Time Service) si Thread
- memorarea structurata – este o solut ie Service. Serviciile de partajare a datelor
bazata pe COM în care fiecare fisier contine contin: DFS (Distributed File System),
un fel de sistem de fisiere, permitând unor DWSS (Diskless Workstation Support Ser-
obiecte COM sa partajeze acelasi fisier. vice), PCIS (Personal Computer Integration
Obiectele COM, ca si alte tipuri de obiecte, Service).
ofera metode ce pot fi apelate de catre DME furnizeaza un set comun pentru de
clienti, prin intermediul a doua tipur i de interfete de aplicatie API , neutre din punct
interfete: de vedere al producatorilor, ce permite unor
- vtable interfaces – în special pentru clienti module software diferite sa comunice si sa
realizati în C++; interactioneze între ele.
- dispach interfaces – în special pentru cli- Din punct de vedere al tehnologiei orientate
enti realizati în limbaje mai simple, ca obiect, OSF si-a elaborat:
Visual Basic. • propriul sau agent de schimb pentru
În 1996, o data cu lansarea lui Windows NT management, numit MRB (Management
4.0, a aparut DCOM (Distributed COM), un Request Broker) ;
membru important al familiei ActiveX. • propriul sau limbaj de definire a interfetei
DCOM este o extensie a standardului COM IDL (Interface Definition Language),
pentru mediul distribuit. Serviciile unui ambele facând parte din DME.
obiect în retea sunt transparente pentru utili- DCE RPC este un mecanism RPC complex
zator, mecanismul de comunicare dintre ele care permite serializarea informatiilor,
fiind RPC (Remote Procedure Calls). Meca- codificarea datelor prin introducerea de
nismul RPC permite unui proces care rulea- nivele de autentificare, autorizare si integri-
za pe un calculator sa apeleze o procedura tate a mesajelor, precum si utilizarea de
care ruleaza în spatiul altui proces, de pe alt protocoale fara conexiune sau orientate pe
calculator, transmitând parametrii si pre- conexiune. DCE RPC defineste 20 de
luând rezultatul returnat. mesaje diferite, numite unitati de date de
DCE (Distributed Computing Environ- protocol (PDU – Protocol Data Units) care
ment) sunt schimbate între clienti si servere.
DCOM a fost construit pe un standard deja Fiecare PDU este format dintr- un antet care
existent, numit DCE (Distributed Compu- contine informatii de control, date si
ting Environment), comparativ cu celelalte verificator de autenticitate.
tehnologii Java RMI sau CORBA IIOP care DCOM nu aduce schimbari majore în modul
au pornit de la zero. Se mai numeste si în care clientul creeaza si interactioneaza cu
ORPC (Object RPC) pentru a specifica fap- obiecte COM, îmbunatateste mecanismul de
tul ca este o extensie orientata pe obiecte securitate distribuita prin criptarea si au-
DCE RPC. tentificarea datelor, utilizeaza servicii ca
OSF ( Open Software Foundation), format DNS (Domain Name System) pentru loca-
în 1988, o organizatie de cercetare non-pro- lizarea obiectelor COM, permite neutra-
fit, cu circa 350 membri, având ca scop lizarea fata de limbaje, independenta fata de
dezvoltarea de sisteme deschise bazate pe
Revista Informatica Economica, nr. 9/1999 37
locatie, colectarea deseurilor, pastrarea ver- În prezent Microsoft se ocupa cu portarea lui
siunii componentelor. DCOM si pe alte platforme, cum ar fi Sun
Arhitectura DCOM cu diferitele moduri de cu Solaris, IBM cu OS/390, cu mutarea lui
invocare este prezentata în figura 2. Clientul DCOM în masina lor virtuala Java si cu
apeleaza direct la metodele unei compo- extinderi ale DCE RPC continute în Win-
nente, daca aceasta este interna, iar daca este dows NT 5.0, pentru a permite clientilor
externa (la distanta) foloseste un proxy. apeluri asincrone RPC.
Fiecare proxy are un “stub” corespunzator
pe partea de server prin care comunica 4. ASP (Active Server Pages)
pentru apelarea metodei unei componente. ASP (Active Server Pages) este un mediu de
Pentru scrierea de servere DCOM scalabile, rulare a script-urilor pe partea de server, care
Microsoft ofera MTS (Microsoft Transac- poate fi folosit pentru crearea si rularea a-
tion Server), care are suport pentru tran- plicatiilor de tip Web interactive.
zactii si ofera servicii de urmarire automata Tehnologia ASP a fost introdusa de Mi-
si refolosire inteligenta a obiectelor. Apli- crosoft în 1996, sub numele de Denali.
catiile MTS sunt recomandate a fi scrise în ASP permite includerea de scripturi execu-
Visual Basic si reprezinta implementari tabile direct în continutul HTML, aplicatiile
DLL a unor obiecte COM. Pentru client, ASP fiind usor de creat, orientate obiect si
MTS este transparent, clientul utilizând extensibile cu alte componente ActiveX Ser-
obiectele COM ca si pâna acum. ver.
CLIENT Proces Client SERVER
Proces Server Aplic. Compon Proces Server
client COM
Compon. Stub COM interna Compon.
Stub COM
COM COM
Proxy
Proxy obiecte.
obiect. La dist.
locale COM
COM
Figura 2
unde: = comunica tii interne;
= comunica tii client/server;
=interfa ta
Componente Componente
ActiveX Server ActiveX Server
out-process in-process
Client Tranzac
Windows NT Server
Intranet tii Internet Information Server
Internet HTTP
IIS
Active X Server
D Ser
ActiveX
C ver ActiveX Data
O Scripting Objects
M Engine
Componente ActiveX
Server out -process
HTML
ASP BD
Figura 3
38 Revista Informatica Economica, nr. 9/1999
Object), precum si exploatarea Active (Active Server Pages) sunt doar niste solutii
Server si a componentelor de server IIS. temporare.
Cercetatorii Robert Orfali, Dan Harkey si
5. Cadrul San Francisco (IBM) Jery Edwards considera ca pentru nivelul
IBM si alti peste 100 de furnizori inde- urmator de dezvoltare a Web-ului, acesta are
pendenti de soft au realizat proiectul San nevoie de obiecte distribuite, iar noul Web
Francisco, un cadrul de lucru multinivel si se va numi “Web de obiecte” (object Web).
multiplatforma, bazat pe Java, care permite Acest lucru se poate realiza azi în doua
legarea componentelor în vederea obtinerii moduri:
de aplicatii pentru afaceri. - varianta CORBA –Java – care încearca
San Francisco este un model alcatuit din 3 sa contrabalanseze solutia Microsoft;
parti, si anume: - varianta Active X - DOCM – solutia
- nivel de baza – care include facilitati de proprie a Microsoft care îsi contruieste astfel
tiparire, controlul conflictelor, persistenta, propriul Web de obiecte.
tranzactii si clase ale modelului de obiecte; Specialistii considera ca, CORBA este mai
- obiecte comune afacerii – cum ar fi mult decât un ORB, si anume o platforma
conversie de valuta, adrese, calendare; foarte complexa de obiecte distribuite, care
- procese esentiale ale afacerii – cum ar extinde domeniul aplicatiilor peste granitele
fi contabilitatea, administrarea depozitelor si retelelor, limbajelor, componentelor si siste-
comenzilor. melor de operare, iar Java este mai mult
Aceste nivele se afla intercalate între masina decât un limbaj cu legaturi CORBA, fiind
virtuala Java si aplicatiile de comert. Masina un sistem mobil de obiecte, un sistem por-
virtuala Java se poate afla pe platforme tabil pentru rularea obiectelor. Cele doua
Windows NT, OS/2, OS/400, CISC (Cus- infrastructuri de obiecte se completeaza reci-
tomer Information Control System), MVS/ proc, Java începând acolo unde se termina
ESA. CORBA, CORBA ocupându-se de transpa-
Dezvoltarea unei aplicatii folosind cadrul renta retelei, iar Java cu transparenta imple-
San Francisco depinde de nivelul pentru ca- mentarii.
re se face si va avea nevoie de un mediu de Largimea infrastructurii Web-ului cu COR-
dezvoltare Java, cum ar fi Symantec Visual BA/ Java ofera doua beneficii imediate, si
Cafe sau Visual Age for Java, precum si de anume:
un instrument de modelare, cum ar fi - eliminarea gâtuirilor din CGI, clientul
Rational Rose. transmitând direct parametrii folosind stub-
În prezent, problema care se pune în legatura ul precompilat, serverul receptionând apelul
cu aplicatiile de afaceri scrise în Java este prin intermediul unui skeleton precompilat;
legata de viteza de executie, care este prea - infrastructura scalabila pe servere ,
lenta. În acest sens, IBM lucreaza la îmbu- depozitele de obiecte server putând comu-
natatirea performantelor masinii virtuale Ja- nica printr- un ORB CORBA si putând ac-
va în propriile sisteme de operare, precum si tiona sincron folosind tranzactii si servicii
la crearea unui compilator nativ pentru apli- CORBA.
catii Java pe server. Web-ul de obiecte CORBA/Java implica un
amalgam de produse si protocoale, fiind
6. Web de obiecte alcatuit din trei treimi, si anume (figura 1.6):
Paradigma curenta HTTP/CGI este în pre- - client Web – reprezinta browsere Web
zent depasita, datorita faptului ca nu poate traditionale care suporta pagini HTML dina-
satisface cerintele actuale, iar extensiile mice care contin ansambluri de Java Bean-
CGI, cum ar fi MSAPI (Microsoft Internet uri; Bean- urile server vor apela metodele
Services API), NSAPI (Netscape API), ASP Bean-ului client prin metode CORBA; pe
40 Revista Informatica Economica, nr. 9/1999
aceeasi retea vor putea rula IIOP (pentru - cu Java Bean- urile client prin
comunicarea client-server CORBA) si CORBA/IIOP; obiectele CORBA de pe
HTTP (pentru descarcarea paginilor Web, server interactio-neaza între ele prin ORB
arhivelor Jar si a imaginilor); CORBA; tot aici se pot crea magazii de
- server Web – ruleaza pe orice server titluri de obiecte, pa-gini HTML care sunt
care poate deservi clienti CORBA si HTTP, pastrate în arhive Jar, utilizare de ODBMS,
fiind suportata de aproape orice platforma DBMS si transmise clientilor;
(Unixx, NT, OS/2,NetWare, MacOS, OS/ - partea care contine tot ceea ce un obiect
400, MVS etc); obiectele CORBA pot fi CORBA poate accesa: monitoare TP
împachetate ca Enterprise Java Beans , în- procedurale, intermediarul orientat pe
capsuleaza logica afacerii si interactioneaza mesaje, DBMS-uri, ODBMS-uri, posta
electronica.
Browsere Doc
HTML
Web DBMS
HTML +
HTTP HTTP
formulare
1
Apps
Internet Domino/
Applet CORBA 2 Collabra
IIOP TCP/IP ORB
Java
CORBA 3
Java IIOP 4
CISC/IMS/MQ
Beans IIOP 6 5 Tuxedo
Treimea 1 Treimea 2
Figura 5, unde:
1- CGI; 2-CORBA; 3- IBM Component Browker, BEA Iceberg, Oracle NCA;
4- Coodonator componente; 5- Obiecte si Bean- uri; 6- JAR si ODBMS.