descentralizarea în sistemele distribuite, o abordare informală
duminică, 1 apr. 2012, 20:52
Voi începe ca de obicei prin a explica toți termenii din titlu care sunt legați direct de subiect, pentru a nu da impresia profund greșită că am înșirat cuvinte doar de dragul de a face tech blabber. Termenii la care mă refer sunt „descentralizare” și „sistem distribuit”, și voi începe cu cel din urmă pentru a-l putea explica apoi pe cel dintâi.
Sistemul distribuit este abstractizarea la nivel (formal) computațional a rețelei de calculatoare. Într-un sens mai larg, orice entitate formată din subentități abstracte care execută calcule spre rezolvarea unei probleme – care problemă e cea definită prin entitatea-mamă, abordarea fiind astfel una top-down – este un sistem distribuit. În acest sens mai larg mai multe procesoare sau core-uri, elemente periferice și una sau mai multe magistrale care le interconectează pe toate acestea formează un sistem distribuit pe care noi îl numim calculator.
Tanenbaum și Van Steen definesc sistemul distribuit ca pe un sistem software care face ca mai multe calculatoare să apară pentru utilizator drept o entitate singulară, aceasta fiind o definiție care are mai mult sens în contextul ingineriei calculatoarelor. Astfel Internetul e un mare sistem distribuit, Twitter e un altul, World of Warcraft e la rândul său un sistem distribuit și așa mai departe. Definiția e foarte generală, astfel că în particular are sens să ne întrebăm cum sunt organizate unitățile de calcul dintr-un astfel de sistem, ce protocoale folosesc ele pentru a comunica, care model e mai potrivit în ce situație și așa mai departe, cu toate astea ocupându-se domeniul sistemelor distribuite.
O măsură a organizării în aria sus-menționată este (des)centralizarea. Un sistem distribuit este centralizat când are așa-zise „points of failure”. Bunăoară statul totalitar pune puterea în mâna unui singur om pe când oligarhia presupune conducerea de către un număr mic de oameni și în fine democrația ca model teoretic constă în conducerea statului de către popor; evident, primul model e complet centralizat, pe când cel din urmă e complet descentralizat. Similar, într-un sistem distribuit dat putem avea noduri care au o capacitate de a decide mai mare decât celelalte și a căror dispariție poate duce la destabilizarea întregului sistem. Ce s-ar întâmpla de exemplu dacă ar pica toate motoarele de căutare pentru o săptămână?
O astfel de problemă dorește să o rezolve de exemplu YaCy, care încearcă să scoată cât mai multă eficiență cu putință din căutarea distribuită. Ca bonus căutarea descentralizată reușește să rezolve în mare parte și problema intimității pe web. Similar Diaspora* pentru socializare, Bitcoin pentru finanțe digitale, BitTorrent pentru transferul de fișiere [i]. Toate acestea se încadrează într-o paradigmă care a devenit deja buzzword în lumea tehnică: Peer-to-peer, sau pe scurt P2P.
Sistemele P2P au fost și sunt primite cu destul de mult entuziasm în comunitățile de persoane tehnice de pe Internet, mai cu seamă în lumea Free Software unde contribuția distribuită e destul de accentuată. O întrebare ar putea fi pusă astfel în ceea ce privește eficiența modelului P2P în raport cu sistemele (mai) centralizate. Mai bine zis, unde eșuează și unde e mai puternic un sistem Peer-to-peer față de un sistem centralizat?
Dacă din avantaje am enumerat câteva mai sus, cred că ar fi destul de utilă sublinierea unei probleme destul de importante, anume cea a convergenței. Mai exact dacă privim sistemul P2P conceptual drept o mulțime de agenți distribuiți geografic și topologic în Internet, nu îi este tocmai ușor calculatorului dintr-un colț dat să descopere și/sau să contacteze calculatorul din colțul diametral opus. Acesta este motivul pentru care BitTorrent merge destul de greu în faza de descoperire (chiar și în prezența unui tracker) și pentru care un model de DNS distribuit ar putea să nu fie fezabil. Nici DNS-ul actual – care se bazează pe un model ierarhic, deci cu un grad de centralizare destul de mare – nu converge extraordinar de eficient, însă caching-ul și stabilitatea mapărilor nume-adresă IP ajută destul de mult. Chiar și așa în cele mai multe cazuri „Interneții pică” din cauza serverelor DNS, iar în contextul în care livrarea unei adrese IP la cerere trebuie să fie instantanee nu știu cât de bine ar merge un model descentralizat aici.
Există totuși domenii în care implementarea P2P este absolut necesară și trebuia făcută cu mult timp în urmă. De exemplu modelul ierarhic de certificate digitale a eșuat în repetate rânduri în ultima vreme, iar compromiterea unui certificat e cel puțin la fel de dureroasă în materie de timp și bani ca picarea unui server de DNS. În acest context se dovedește foarte util conceptul de Distributed Trust. E foarte interesant de studiat astfel cum și dacă agenții din Internet reușesc să ajungă în mod cooperativ la decizii legate de așa-zisul „Trust”, fără a mai depinde de CA-uri. De altfel există deja în practică un proiect numit Convergence care încearcă să adauge în browser un model descentralizat de certificate.
Trebuie menționat că mai sus am dat doar puțin cu degetul la suprafața subiectului descentralizării în sistemele distribuite. Nu am discutat nimic despre grid computing, deși am tratat subiectul World Community Grid în sistemele distribuite, însă e posibil să fac din asta subiectul unui articol cândva în viitor.
- Deși BitTorrent nu e complet descentralizat din cauza trackerelor care sunt nevoite să mențină metainformație necesară convergenței, gen număr de seederi și așa mai departe, îmbunătățiri cum ar fi DHT reușesc să rezolve parțial problema. [↩]
Comentariile sunt dezactivate.
Comments
[…] asta se datorează în parte și faptului că ansamblul blog-urilor de pe Internet reprezintă un sistem descentralizat, format din insule care-s de obicei comunități în sensul cel mai pur al cuvântului [ii] sau pur […]
[…] ansamblul de programe sau mașini care apar utilizatorului drept o singură entitate se numește „sistem distribuit”. Ori sistemul distribuit, adică Internet-ul, adică arhiva™ e un pas evolutiv firesc față […]
[…] și Google+ sunt doar două exemple de astfel de ecosisteme, aflate în contrast cu sisteme profund descentralizate precum Bitcoin sau ansamblul blog-urilor de pe Internet. Sub acest aspect Facebook nu e cu nimic […]