CAPITOLUL 1: ELEMENTE DE GRID COMPUTING
Obiectivul
principal al grid computingului este acela de a transforma reţeaua mondială de
sisteme de calcul (procesoare, sisteme de stocare a datelor, date, senzori
etc.) într-o vastă resursă computaţională a cărei putere de calcul să fie
oferită utilizatorilor, în aceeaşi manieră în care serviciile reţelei de
electricitate sunt oferite clienţilor acesteia. Gridul îşi propune să furnizeze
[7] infrastructura şi mijloacele care fac posibilă partajarea pe scară largă, sigură
a resurselor, dar şi o putere de procesare impresionantă.
Gridul
reprezintă o infrastructură hardware şi software capabilă să furnizeze acces
dependabil, consistent, universal şi ieftin la resurse de calcul. Vorbim despre
o infrastructură deoarece gridul presupune, în primul rând, reunirea de
resurse: cicluri CPU, date, senzori sau persoane. Drept urmare este nevoie de o
infrastructură hardware semnificativă pentru a realiza conexiunea între
resursele menţionate şi o infrastructură software utilizată în scopul
monitorizării şi controlului ansamblului obţinut.
Marile realizări
[3] în cadrul Gridului sunt următoarele:
·
Existenţa
unui mediu de dezvoltare a aplicaţiilor Grid, sub forma resursei gratuite
Globus Toolkit.
·
Existenţa
unui model arhitectural OGSA (Open Grid
Services Architecture) care defineşte noţiunea de serviciu Grid, plecând de la
noţiunea de serviciu web şi concepe mediul grid ca o colecţie de astfel de
servicii, conferind astfel mediului grid avantajele unei arhitecturi orientate
pe servicii (SOA – Service Oriented Architecture). Marile companii ale momentului (IBM, Microsoft,
Platform, Sun etc) şi-au exprimat suportul pentru acest model. Principalul
deziderat este: pentru ca o entitate să poată fi parte a unui grid, atunci
aceasta trebuie să implementeze protocoalele OGSA InterGrid, la fel cum pentru
ca un sistem de calcul să aparţină Internetului, trebuie să aibă o adresă IP.
·
Existenţa grupului Global Grid Forum care
încearcă crearea unor standarde.
Conceptul de
partajare controlată, dinamică în cadrul organizaţiilor virtuale (VO) este
fundamental. Abordările curente ale calculului distribuit nu oferă un cadru
general de partajare a resurselor care să adreseze cerinţele VO. Tehnologiile
grid se disting oferind această abordare generică asupra partajării resurselor.
Această situaţie favorizează aplicarea tehnologiilor grid.
Din punctul de
vedere al arhitecturii gridului, problema de faţă este privită în literatura de
specialitate din două puncte de vedere:
·
Structural
(anatomic) – se identifică componentele structurale ale mediului
·
Funcţional
(fiziologic) – se identifică funcţiile componentelor mediului grid şi relaţiile
dintre acestea.
Problemele
întâmpinate de grid sunt atât de natură tehnică, dar şi socio-politică.
Provocările tehnice includ dezvoltarea mai multor medii pentru crearea
aplicaţiilor grid, inexistenţa serviciilor de nivel înalt, îmbunătăţirea
securităţii atât la nivel funcţional, cât şi general şi nu în ultimul rând,
inexistenţa unor standarde. Cele
socio-politice au de-a face cu formarea mai multor comunităţi de utilizatori şi
dezvoltatori grid, atragerea fondurilor pentru proiecte grid.
CAPITOLUL 2: SECURITATEA ÎN MEDIUL GRID
Securitatea încapsulează atribute ca autentificarea,
confidenţialitatea şi integritatea,
necesitând existenţa simultană a 1) disponibilităţii doar pentru acţiuni
autorizate, 2) confidenţialităţii, şi 3) integrităţii, în sensul absenţei
neautorizate a defectării sistemului.
Arhitectura de
securitate grid se regăseşte implementată în Grid Security Infrastructure [23].
Motivaţiile care stau la baza Infrastructurii de Securitate Grid (Grid Security
Infrastructure, GSI) sunt:
·
Necesitatea
unei comunicaţii sigure (autentificabile şi confidenţiale) între elementele
unui grid computaţional.
·
Necesitatea
implementării securităţii între diferite organizaţii virtuale.
·
Facilitatea
de „single sign-on” pentru utilizatorii unui grid, inclusiv delegarea
credenţialelor pentru calcule care implică resurse multiple.
Un concept
central al autentificării în Infrastructura de Securitate Grid, este acela de certificat.
Fiecare utilizator şi serviciu din grid este identificat via un certificat care
conţine informaţie vitală pentru identificarea şi autentificarea unui
utilizator sau a unui serviciu. Dacă două sisteme au certificate şi ambele
sisteme au încredere în Autorităţile de Certificare care le-au semnat
certificatele, atunci cele două sisteme îşi pot demonstra reciproc că sunt ceea
ce pretind a fi. Acest mecanism este cunoscut sub denumirea de autentificare
mutuală. GSI foloseşte Secure Sockets Layer (SSLv3) ca protocol de
autentificare mutuală, fiind descris în cele ce urmează. De menţionat că SSL
este cunoscut şi sub denumirea IETF ca Transport Layer Security sau TLS.
Cerinţele de
securitate în mediile grid sunt impuse de faptul că trebuie să se asigure
suport pentru organizaţii virtuale dinamice, distribuite şi scalabile. Dintr-o
perspectivă a securităţii, un atribut cheie al organizaţiilor virtuale este
acela că participanţii şi resursele sunt guvernate de reguli şi politici ale
organizaţiilor clasice la care sunt membri.
Arhitectura de
securitate grid este definită de protocoalele care sunt folosite în
interacţiunile dintre entităţile sitemului [5]. Interacţiunile de bază posibile
între entităţi sunt:
·
Alocarea
unei resurse de către utilizator
·
Alocarea
unei resurse de către un proces
·
Comunicarea
între procese aflate în domenii diferite de încredere.
Modelul de
securitate al arhitecturii orientate spre servicii tratează funcţiile de
securitate ca şi servicii OGSA. Această strategie permite definirea unor
protocoale şi interfeţe pentru servicii, dar şi atingerea securităţii de către
o aplicaţie prin folosirea unui serviciu de securitate cu o anumită
implementare.
Globus Toolkit 4
prezintă mecanisme de securitate atât la nivel de transport, cât şi la nivel de
mesaj. Infrastructura de Securitate Grid poate fi înţeleasă ca fiind compusă
din următoarele patru funcţii distincte: protecţia mesajelor, autentificare,
delegare şi autorizare. Pentru a se asigura existenţa acestor funcţii, sunt
folosite implementări a unor standarde diferite.
GSI a avut
implementată autentificarea şi delegarea prin folosirea certificatelor X.509 şi
a cheilor publice. Începând cu Globus Toolkit 4, Infrastructura de Securitate
Grid suportă autentificare prin intermediul opţiunii de nume utilizator/parolă.
CAPITOLUL 3: ELEMENTE DE
DEPENDABILITATE ÎN MEDIUL
GRID
Dependabilitatea unui sistem este capacitatea de a
evita eşecuri de servicii care sunt mai frecvente şi mai severe decât este
acceptabil.
Un element cheie
care apare în cadrul sistemelor grid, este acela că aplicaţiile pot fi compuse
dintr-o multitidine de servicii autonome, fiecare dintre acestea având
posibilitatea să se execute pe staţii diferite, sub controlul unor organizări
diferite. În acest context, nu putem oferi garanţii referitor la rezultatul
produs de anumite resurse (acest rezultat poate fi în mod inteţionat alterat),
la fiabilitatea unor servicii sau la performanţa pe care se presupune că o au
[30]. Una dintre principalele provocări în dependabilitatea grid, este
abilitatea de a tolera defecte şi posibilitatea recoverului (ideal, într-o
manieră transparentă), datorită faptului că middlewareul grid încă nu are
prevăzute capacităţi de toleranţă la defecte.
Un model al
ameninţărilor este folosit pentru a descrie o anumită ameninţare şi
consecinţele pe care le-ar avea asupra sistemului dacă acesta ar avea o vulnerabilitate.
Modelul
ameninţărilor [32] poate fi împărţit după cum urmează:
1. Ameninţări la adresa resurselor grid
atunci când datele/aplicaţiile sunt într-o stare necritică.
2. Ameninţări la adresa resurselor grid
atunci când datele/aplicaţiile sunt într-o stare critică.
3.
Ameninţări din partea grid.
Toleranţa la
defecte este o modalitate foarte importantă de a atinge dependabilitatea în
reţelele grid deoarece dependabilitatea resurselor grid individuale nu poate fi
garantată. Există posibilitatea unei îmbunătăţiri a modelelor de defecte
prezente în grid şi totodată a metodelor de oferire a toleranţei la defecte a
aplicaţiilor grid. Aceste metode vor furniza protecţie atât împotriva
serviciilor malicious, cât şi a celor ce pot produce o eroare.
CAPITOLUL 4: DESCRIEREA
APLICAŢIEI
În cadrul
aplicaţiei s-a utilizat Java Commodity Kit (Java COG). Commodity Grid Kit este
modalitatea Globus de a integra uneltele Globus în platformele existente, care
permit utilizatorilor să folosească funcţionalităţile Globus Toolkit în codul
lor fără apelare la scripturi şi în anumite cazuri fără a avea Globus instalat.
Commodity Kit sunt disponibile pentru Java, Pythin, CORBA, Perl şi Matlab.
Java Commodity
Kit este o extensie a bibliotecilor şi claselor Java care oferă funcţionalitate
Globus Toolkit şi oferă o implementare Java a facilităţilor Globus [24].
O primă
facilitate a aplicaţiei este aceea de a crea un proxy într-un format care este
utilizat în Globus Toolkit. În acest sens se foloseşte clasa CoGProperties care
oferă modalitatea de accesare a fişierului cog.properties, unde sunt stocate
toate locaţiile fişierelor.
CoGProperties properties = CoGProperties.getDefault();
String proxyFile =
properties.getProxyFile();
String keyFile =
properties.getUserKeyFile();
String certFile =
properties.getUserCertFile();
Cheia privată
este criptată în keyFile. Utilizând bibliotecile Open SSL, se poate obţine cheia privată şi descripta oferind o parolă. Cheia publică
CA poate fi încărcată utilizând clasa CertUtils.
Pentru a crea
proxyul se va crea un nou certificat utlizând cheia privată. Acest certificat
este marcat ca fiind un proxy şi are un timp de viaţă. Se foloseşte o variabilă
pentru a genera un proxy compatibil GT3 sau GT2.
Pentru a regăsi
credenţialele de la un proxy existent pentru a fi utlizate în aplicaţie,
trebuie încărcat fişierul proxy. Acesta poate fi localizat folosind fişierul
cog.properties sau doar specificând numele fişierului.
Distrugerea unui
proxy se realizează prin ştergerea fişierului aferent.
Java CoG Kit
oferă pachetul org.globus.ftp pentru a efectua operaţii FTP şi GridFTP. Este în
fapt o implementare a protocolului GridFTP. Folosind proxyul prezentat anterior
se recurge la transferul unor fişiere prin protocolul GridFTP. Pentru a
transfera un fişier de la un server la altul este necesară crearea unui client
pe fiecare server.
Se vor citi
credenţialele din fişierul proxy. Pentru autentificare este necesar un obiect
GSSCredential, astfel încât trebuie schimbat obiectul GlobusCredential la
GSSCredential, proces în care se utilizează DEFAULT_LIFETIME. Când se creeează
GridFTPClient este necesar a fi utilizat portul GridFTP, care implicit este
2811. Autentificarea este realizată folosind metoda authenticate() căreia i se
pasează GSSCredentials.
Când se
transferă un fişier de la un client local la un server sau de la un server la
client, trebuie furnizată o interfaţă locală la mediul de stocare a fişierului.
Pentru a expedia un fişier la server trebuie interfaţa la fişierul local. Acest
lucru se poate realiza cu interfaţa DataSource. Când se recepţionează un fişier
de la un server trebuie oferită o interfaţă locală la fişierul unde se vor scrie
datele.
CAPITOLUL 5: CONCLUZII
Pentru a avea un
grid de succes, trebuie să existe în primul rând griduri funcţionale.
Eforturile pentru obţinerea unei funcţionalităţi sunt demne de luat în calcul,
drept pentru care o primă problemă de rezolvat este funcţionalitatea.
Gridul nu va fi
folosit pe scară largă decât în momentul în care securitatea în termeni de
acces, comunicaţii, criptare este disponibilă. Se preconizează [14] că acesta
este cel mai vulnerabil punct al gridului, deoarece chiar dacă există
infrastructura Grid Security Infrastructure (GSI), aceasta nu rezolvă decât
autentificarea cu un sistem, celelalte probleme legate de atingerea securităţii
[6], inclusiv aspecte ale autorizării, rămânând încă nerezolvate.
O altă problemă
majoră este inexistenţa unor standarde. Aceasta se poate observa nu numai în
necesitatea unor protocoale comune (ca cele de tipul TCP/IP sau API), dar şi
impunerea unei taxonomii. Există totuşi organizaţii al căror obiect este
standardizarea (Global Grid Forum, Peer-toPeer Working Group, New Productivity
Initiative etc.), dar întrebarea este: care dintre standardele acestor
organizaţii se va impune?
O altă calitate
pe care ar trebui să o aibă sistemele grid, ar fi facilitatea instalării. În
prezent, instalarea puţinelor unelte software este deosebit de anevoioasă,
drept pentru care a convinge noi utilizatori de necesitatea gridului va fi cel
puţin greu.