Let's Do It Romania - 24 Septembrie 2011



   

Internetul dinăuntru

   

Istoria romanţată a descentralizării şi recentralizării lumii informatice.


Mircea Sârbu


La început totul era centralizat. Marile calculatoare - fie supercomputere, fie mainframes - stăteau în săli special construite, climatizate, în care nu intrau decât operatorii în halate albe. Datele şi programele erau introduse pe cartele şi pe benzi perforate iar rezultatele (listinguri) erau ridicate de la un ghişeu.

Apoi au început să se răspândească terminalele. Mai întâi în preajma calculatorului, apoi tot mai aproape de utilizatori, în birouri. Aceste terminale constau dintr-un display şi o tastatură însă încorporau foarte puţină "inteligenţă", fiind în întregime controlate de computerul central. Acesta rula toate programele, dar marele salt era adus de caracterul interactiv. În acest mod, chiar şi nespecialiştii foloseau programele specializate.

Primul adevărat "calculator personal" - Apple Macintosh - a fost lansat la începutul lui 1984 printr-o campanie care a devenit un studiu de caz clasic în istoria publicităţii. Spotul inaugural se baza pe romanul lui Orwell 1984 şi prezenta o mulţime cenuşie, uniformizată, aliniată, privind într-o stare semi-hipnotică pe un ecran imens discursul despre unificarea gândurilor rostit de Big Brother (de fapt, calculatorul central). În sală irumpe o atletă într-un şort roşu-aprins care aruncă ciocanul în marele ecran. Pe fundalul exploziei eliberatoare se titrează: Pe 24 ianuarie, Apple va lansa Macintosh. Şi veţi înţelege de ce 1984 nu va fi ca "1984". Şi într-adevăr, Machintosh a fost scânteia unei revoluţii care avea să schimbe lumea.

Răspândirea calculatoarelor personale a adus o adevărată frenezie a descentralizării. Ceea ce era, la urma urmei, cât se poate de firesc având în vedere că erau definite ca instrumente menite să sporească productivitatea individuală. Câtă vreme munca era individuală totul era în regulă, dar când se punea problema colaborării lucrurile se complicau. A fost nevoie de legarea computerelor în reţele locale. Într-o primă fază, aceste reţele vizau în principal partajarea unor resurse, în principal fişiere şi imprimante, şi câteva servicii colaborative elementare printre care poşta electronică.

Dar complicaţiile au continuat să apară. În prima fază, PC-urile nu prea interferau cu marile calculatoare (chiar dacă li se spunea "mini", tot mari erau), care continuau să ruleze aplicaţiile vitale. O primă idee a fost ca PC-urile să preia şi rolul vechilor terminale: era nevoie doar de un banal program care să emuleze funcţionalitatea terminalului numit - nu fără o notă de dispreţ - "prost". Dar apoi, pe măsură ce PC-urile deveneau tot mai puternice, ideea de a dezvolta aplicaţiile vitale direct pentru reţele de calculatoare personale a câştigat tot mai multă popularitate.

La început a fost un program de administrare a bazelor de date numit dBase, imitat de numeroase altele. Avantajul era că aceste programe erau relativ simple şi permiteau şi dezvoltarea interfeţei cu utilizatorul. Dezavantajul era că funcţionau în regim de partajare a fişierelor (file sharing), ceea ce punea probleme atunci când mai mulţi utilizator foloseau aceleaşi fişiere - situaţie tipică pentru aplicaţii de întreprindere. Astfel începe epopeea re-centralizării.

Prima fază a re-centralizării a vizat programele de administrare a bazelor de date. Programele de gen dBase erau potrivite pentru uz individual, dar când mai multe aplicaţii accesau aceleaşi date, acestea erau transportate practic către staţiile locale, aglomerând reţeaua. Serverele de baze de date funcţionează altfel: aşteaptă de la aplicaţiile client din reţea comenzi SQL pe care le procesează pe maşina pe care rulează şi expediază către client doar rezultatele. Un server de baze de date administrează centralizat datele şi deserveşte aplicaţii diverse.

Acest prim model a căpătat denumirea de "client/server" şi se baza pe o diviziune relativ simplă a muncii: serverul de baze de date se ocupa de stocarea, actualizarea şi regăsirea datelor, în vreme ce programele client se ocupau de logica aplicaţiei şi de interfaţa cu utilizatorul (logica prezentării). Problemele însă nu s-au lăsat aşteptate. O primă complicaţie viza modalităţile prin care aplicaţiile client se conectau la serverele de baze de date. Evident, fiecare producător încerca să-şi impună propriile standarde, aşa că s-a născut o adevărată industrie a softurilor de compatibilizare, numite generic middleware.

Mai gravă era însă cealaltă problemă. Deoarece programele client cuprindeau logica aplicaţiei - deci implementau "regulile afacerii" - exista riscul ca diverse aplicaţii să implementeze diferit aceleaşi reguli. Existau trei variante de abordare a acestei probleme. Prima era administrativă: se impuneau metodologii mai stricte, care impuneau documentarea minuţioasă a acestor reguli, astfel încât aplicaţiile să le implementeze consistent. O a doua abordare viza implementarea regulilor afacerii la nivelul bazei de date, prin intermediul aşa-numitelor proceduri stocate. Însă cea care s-a impus a fost introducerea unui nivel intermediar între baza de date şi aplicaţiile client, nivel care să implementeze unitar logica aplicaţiei. Astfel, aplicaţiile client se ocupau doar de logica prezentării, utilizând serviciile furnizate de serverul de aplicaţie. Acesta, la rândul său, utiliza serviciile de administrare a datelor furnizate de serverul de baze de date. Acest model a căpătat şi un nume, care a fost multă vreme la modă: client/server multi-tier. Esenţa este clară: tot ce este important se centralizează.

Însă în vremea aceasta s-a petrecut extraordinara expansiune a Internetului şi mai ales a Web-ului. Pe lângă toate beneficiile pe care ni le-a adus, această expansiune a avut însă un efect tehnologic mai puţin vizibil, dar de o importanţă imensă: impunerea unor standarde unanim acceptate. Ecuaţia elementară a Internetului este simplă: să vezi Reţeaua şi să fii văzut din Reţea, iar pentru asta trebuie să te aliniezi standardelor. Aşa se face că TCP/IP, HTTP, HTML, CGI şi multe altele au devenit universale. Fiind atât de răspândite, s-au creat numeroase aplicaţii bazate pe acestea, preţurile au scăzut iar în faţa presiunii, marii producători s-au aliniat. Aşa se face că, de exemplu, s-a ajuns la situaţia că imensa majoritate a reţelelor locale au adoptat protocolul TCP/IP.

Ideea a venit de la sine: dacă tot am o reţea locală TCP/IP, de ce să nu folosesc aplicaţiile din Internet şi în interiorul companiei? Rolul programelor open source a fost extrem de important în această schimbare de paradigmă. Din clipa în care Sendmail a pătruns în interiorul companiilor, sistemele proprietare de poştă electronică s-au văzut condamnate la dispariţie. În scurt timp toată mesageria electronică a adoptat standardele Internetului.

Mai era doar un pas: Web-ul intern. N-a fost greu: serverul HTTP numit Apache era deja un produs matur (şi gratuit!) iar ideea era veche - la urma urmei, Web-ul a fost creat iniţial pentru a deservi o instituţie (CERN). De aici, lucrurile evoluează simplu. Serverul de Web devine nodul central al universului informaţional al întreprinderii, deci un portal intern se impune. Aplicaţiile sunt la rândul lor înghiţite de acest pol. Totul migrează spre tehnologiile web.

În faţa evidenţei, Larry Ellison - preşedintele firmei Oracle şi unul dintre evangheliştii modelului client/server - a fost pus în jenanta postură de a admite: "modelul client/server a fost o greşeală". Însă industria informatică pare să nu poată trăi fără cuvinte magice, fără buzzwords, aşa că a fost imediat inventat unul: intranet. Internetul dinăuntrul organizaţiei.

Şi povestea re-centralizării nu se termină aici. Mai mult chiar, se pare că de-abia a început...


 

(Publicat în Ziarul Financiar - octombrie 2004)

 

Copyright © 2004 Mircea Sârbu