Introducere In Siteme Distribuite
CUPRINS
CAP. I Descriere cu avantaje și dezavantajele sistemelor distribuite
Exemple remarcabile
Internet networks
Nomadic computing
Cluster
Grid computing
Cloud computing
Paralel and distribuited computing
CAP. II Internetul – un sistem distribuit deschis
2.1 Concepte cu privire la soft/hardware
2.2 Inteligența artificială distribuit
2.3 Baza de date distribuită
2.4 Sisteme informatice educaționale
2.5 Securitatea sistemelor distribuite
CAP. III Parte practică
BIBLIOGRAFIE
CAP. I Descriere cu avantaje și dezavantajele sistemelor distribuite
Sistemul distribuit se identifică într-o colecție de calculatoare independente ce apar utilizatorilor sistemului sub identitatea unui singur calculator. Aspectele care caracterizează acest tip de sistem sunt software (utilizatorii gândesc sistemul sub identitatea unui singur calculator) și hardware (mașinile sunt autonome).
Un sistem distribuit reprezintă un sistem de procesare a informației ce conține un număr de calculatoare independent care cooperează între ele peste o rețea de comunicare în scopul atingerii unui obiectiv caracteristic. Calculatoarele se leagă între ele prin intermediul unor rețele de comunicare ce sunt apte să modifice mesaje între calculatoare. ‰
Obiectivul acestui schimb de mesaje rezidă în acela de a coopera în scopul atingerii unui țel.
Unghiuri de vedere
Din punct de vedere fizic, calculatoarele reprezintă noduri ale rețelei de comunicare ce dețin detalii în ceea ce privește rețeaua de comunicare. Din punct de vedere logic, sistemul distribuit este văzut drept o multitudine de procese cooperante. Distribuirea logică este independentă de cea fizică, de pildă, nu este imperios necesar că procesele să fie conectate peste rețea, ci pot fi găsite pe același calculator.
Avantajele Sistemelor Distribuite în raport cu Sistemele Centralizate
Descentralizarea este una economică, întrucât:
sistemele de calcul fundamentate pe rețea oferă un raport mai eficient performanță – preț în comparație cu sistemele centralizate;
în condițiile în care cad părți din sistem, redundanța crește disponibilitatea;
aplicațiile descrise prin componente care pot să fie rulate în același timp, oferă beneficii în termeni ai performanței crescute cu privire la soluțiile centralizate;
sistemele distribuite pot să fie extinse prin adăugarea altor componente oferind, în acest context, un nivel mai bun comparativ cu sistemele centralizate.
Sursă: Ben Kepes, „The Cloud Computing Continuum – Sometimes simple explanations are the best”, 2009, www.cloudave.com
Fig. 1.1 The Computing Continuum
Sursă: www.noridigitali.net, „Sisteme de calcul distribuite”
Tab. 1.1 Avantajele sistemelor distribuite vs. Sistemelor centralizate
Avantajele sistemelor distribuite în raport cu cele ale calculatoarelor independente
Sursă: www.science.upm.ro
Tab. 1.2 Avantajele sistemelor distribuite față de cele ale calculatoarelor independente
În cazul mediului de calcul distribuit, avantajele acestuia în raport cu aplicațiile izolate se identifică în următoarele:
performanța ridicată – aplicațiile pot fi executate simultan, iar încărcarea poate să fie împărțită la servere multiple;
reutilizarea – serviciile pot să fie folosite potențial de aplicații client multiple;
colaborarea – aplicațiile multiple pot să fie conectate prin intermediul mecanismelor standard de calcul distribuit;
disponibilitatea ridicată și încredere – aplicațiile pot să fie grupate în mașini multiple;
timpul redus pentru ciclul de dezvoltare și productivitatea ridicată – prin distribuirea problemelor mari în chestiuni mai mici, fiecare din aceste componente pot să fie dezvoltate în echipe de dezvoltare izolate;
scalabilitatea – prin lansarea componentelor distribuite, reutilizabile pe servere puternice;
extensibilitatea – (re) configurarea aplicațiilor distribuite în rețea;
costul scăzut – prin prisma refolosirii componentelor anterior dezvoltate, accesibile în rețea.
Dezavantajele sistemelor distribuite
Sursă: www.web.info.uvt.ro, „Sisteme distribuite – Tehnologii”
Tab. 1.3 Sistemele distribuite văzute prin prisma dezavantajelor
Prin „sistem distribuit de calcul” notoriu și ca „sistem informatic distribuit” este înțeleasă o mulțime de programe peste o rețea de noduri identificate în:
clustere;
calculatoare;
stații de lucru;
multiprocesoare;
procesoare paralele masive ce au acces la o memorie proprie – însă pot să aibă acces și la anumite memorii comune partajate -, interconectate fiind prin linii de comunicație precum:
sateliți;
fir;
unde radio;
fibră optică, caracterizate fiind prin diverse tipologii de conexiuni – stea sau magistrală comună – sistemul fiind conceput în scopul partajării unor resurse și în scopul rezolvării concurente a unor aplicații paralele.
Motivația în scopul atât a construirii cât și a utilizării sistemelor capabile de calcul paralel rezidă din necesitatea de reducere a timpului de calcul prin intermediul diviziunii unei probleme mari în sub – probleme care pot fi rezolvate în același timp pe structuri de calcul potrivite, iar sistemele informatice distribuite răspund solicitărilor de concomitentă a calcului paralel, pe lângă acestea, creând și facilități de a putea partaja unele resurse scumpe hardware precum:
faxuri;
imprimante;
discuri;
scanere și software:
fișiere;
pagini web;
baze de date.
Din perspectiva investiției în echipamente, costurile pot fi reduse considerabil, în condițiile în care se folosește un sistem distribuit ce partajează unele resurse hardware scumpe precum plăci pentru achiziție de date și servere cu baze de date și unele produse software cu licențe scumpe precum:
programe pentru achiziții de date;
medii de programare;
programe utilitare;
limbaje de programare.
Acest lucru este întreprins, în genere, în organizații – întreprinderi, instituții – prin structurarea sistemului de calcul într-o rețea Intranet în care este reglementat accesul distribuit la resurse. Utilizatorii efectivi ai sistemelor distribuite de tip intranet sau Internet sunt în majoritatea cazurilor mai puțin preocupați de costurile resurselor utilizate, în avantajul celor ale funcționalității modalității de partajare a resurselor pe care trebuie să le utilizeze în propriile aplicații. Partajarea resurselor are loc începând de la indivizi foarte apropiați – de pildă, colegi de serviciu sau membri ai unei familii ce utilizează aceeași imprimantă ori colaborează într-o manieră directă prin partajarea unor fișiere comune al unui intranet local – până la indivizi ce nu se cunosc între ei și nu intră niciodată în contact – de pildă, utilizatorii unor motoare de căutare pe Internet.
Într-un sistem distribuit, în partajarea resurselor, „serviciul” este văzut drept o parte diferită a unui sistem ce determină managementul unei colecții de resurse similare, făcând publică funcționalitatea lor atât utilizatorilor cât și aplicațiilor ce apelează la acestea. În condițiile în care, de pildă, se invocă un fișier partajat prin intermediul unui serviciu pentru fișiere, accesul are loc printr-o serie de operații precum:
delete;
read;
write.
Conceptul de „server” face referire la un proces ce rulează pe un computer dintr-o rețea și ce acceptă cereri de la computere din rețea, iar cei ce trimit cereri poartă numele de „clienți”, funcționalitatea fiind asigurată prin intermediul protocolului server/client. Într-un sistem distribuit ce este modelat prin utilizarea programării orientate spre obiect, resursele pot fi capsulate drept obiecte, putând fi accesate de așa numiții „clients – object” prin cererea unei metode de la „server – object”. Din perspectiva tipului de conexiune și a structurii hardware, sistemele ce cuprind mai multe procesoare pot fi, pe de o parte, slab cuplate – conectate la nivel de rețea de calculatoare cum ar fi gridurile sau multicalculatoare -, pe de altă parte puternic cuplate – conectate la nivel de memorie, cum ar fi clusterele sau multiprocesoarele.
Sistemele slab cuplate se identifică în sisteme în care fiecare procesor are propriul ceas intern – grid – și propria memorie. Sistemele puternic cuplate se identifică în sisteme în care mai multe procesoare partajează aceeași memorie internă și utilizează același ceas intern. De pildă, sistemele din clasa „Multiple Instruction – Multiple Dată” sunt sisteme puternic cuplate – prin calculatoarele paralele masive și multiprocesoare.
Sistemele informatice distribuite sunt împărțite în două clase: pe de o parte, sisteme informatice distribuite neomogene, pe de altă parte sisteme informatice distribuite omogene – fundamentate pe multiplicarea unor resurse identice.
În practică, cel mai frecvent întâlnite sunt sistemele distribuite neomogen, alcătuite în genere, din componente eterogene:
hardware local neomogen – echipamentele electronice și electrice fizice distincte;
software local neomogen – procese și programe de rețea ce formează sistemul distribuit, care sunt făcute în diverse limbaje de programare;
componente conceptuale neomogene: topologia rețelelor ce intră în structurarea:
coordonării între procese;
sistemului distribuit;
sincronizării;
modului de comunicare.
Din maniera de definire a sistemelor distribuite reies o serie de trăsături fundamentale ale acestora:
facilitatea schimbului de informații – progresul exponențial al cantității de informație și nevoia de a modifica rapid informații între punctele distincte situate în locuri geografice depărtate fac necesară conectarea între calculatoare autonome;
concurența – se poate lucra în același timp pe diverse computere din rețea, partajându-se aceleași resurse;
rezistența la erori: un defect în rețea poate conduce la detașarea unor computere, însă rețeaua va funcționa în continuare și, în genere, programele ce vor rula pe nodul deconectat nu vor detecta întreruperea conexiunii ori faptul că aceasta a devenit foarte lentă, pe lângă acestea, nici celelalte noduri din sistem nesesizând imediat căderea unuia dintre noduri;
lipsa unui ceas global – există limite cu privire la capacitatea computerelor din rețea de a își sincroniza ceasurile interne.
Sistemele distribuite oferă facilități de comunicare la distantă: un sistem distribuit se identifică într-un mijloc pe de o parte comod, pe de altă parte eficient de comunicare a unor informații la distantă, prin intermediul căreia poate fi realizată corespondența electronică și comunicarea între indivizi aflați în locuri diferite prin:
forum;
email;
chat, cu condiția că atât destinatarul cât și expeditorul să fie într-o rețea conectată la Internet.
partajarea resurselor scumpe – o organizație preferă să achiziționeze mai multe calculatoare mai ieftine și cu o putere rezonabilă în loc să achiziționeze unul scump și performant.
Prin interconectarea acestor calculatoare mai mici între ele, cu un număr scăzut de calculatoare mai puternice ale căror resurse identificate în:
periferice de capacități ridicate;
memorie;
puterea procesorului să fie partajate între acestea.
fiabilitatea crescută în funcționare – în condițiile în care un sistem de calcul este alcătuit dintr-un singur calculator, defectarea acestuia determină imposibilitatea folosirii întregului sistem.
În cazul proiectării unui sistem distribuit este imperios necesar să se țină seama de securitatea în funcționare a acestuia, în așa măsură încât căderea unui nod să nu deranjeze funcționarea sistemului per ansamblu, ci alte noduri vor lua sarcinile nodului căzut. Într-un sistem distribuit există această posibilitate prin intermediul faptului că aplicațiile ce se rulează într-un sistem distribuit sunt de așa manieră concepute încât să nu sufere din pricina lipsei nefuncționării ori lipsei corecte a unor comportamente și a unor procese.
progresul performanței prin paralelizarea calculului – existența mai multor procesoare în cadrul unui sistem distribuit determină posibilitatea de reducere a timpului de întreprindere a unui calcul vast prin împărțirea sarcinilor între diverse procesoare și prin colectarea ulterioară a rezultatelor parțiale și generarea rezultatului final – procedeu notoriu sub numele de „paralelizare a calculului”.
Așadar, se obține timp de execuție scăzut în scopul aplicării paralele ori susceptibile de paralelizare.
specializarea nodurilor – proiectarea unui sistem de calcul autonom cu funcționalități multiple se caracterizează printr-un grad ridicat de dificultate.
La proiectare, sistemul este împărțit în module, fiecare modul implementând parțial funcționalitatea și comunicând cu alte module.
extensibilitatea (scalabilitatea) – un sistem distribuit poate să fie schimbat relativ ușor ori prin adăugarea ori prin îndepărtarea unor noduri.
Dezavantajele primordiale ale sistemelor distribuite se identifică, pe de o parte în dependență utilizatorilor de furnizorii de servicii, pe de altă parte în exploatarea continuă a unor slăbiciuni legate de siguranță de indivizi rău – voitori ce lansează:
viruși;
atacuri;
troieni;
programe malițioase.
Dificultatea construirii unor sisteme de această natură apare în momentul elaborării algoritmilor de prelucrare care sunt utilizați în sistemele distribuite. Pe lângă faptul că trebuie să fie:
eficienți;
corecți;
flexibili, este imperios necesar că algoritmii utilizați în sistemele distribuite, să tină cont de resursele ce pot fi puse să lucreze în paralel precum și de maniera de comunicare dintre acestea.
Dezvoltarea unui algoritm distribuit diferă într-o manieră reprezentativă de evoluția unui algoritm centralizat, în mod expres prin prisma specificității sistemelor distribuite, precum:
nedeterminismul;
lipsa informațiilor legate de starea globală;
lipsa unui timp global.
Cu toate precauțiile producătorilor de software și de hardware de a respecta cerințele generale în scopul facilitării comunicării între aceste platforme, sunt necesare o serie de programe de translatare de la o platformă hardware sau software la o alta. Această activitate are loc prin intermediul „midlleware” ori a unor programe intermediare. Conceptul „midlleware” are un rol fundamental în sistemele informatice distribuite eterogene.
Aceste programe de translatare, de traducere este imperios necesar să îndeplinească o condiție primordială: transparența în ceea ce privește utilizatorul. „Middleware” poate fi folosit orientat pe obiecte, permițând programatorului crearea unui model direcționat pe obiecte al unei societăți și apoi scrierea aplicațiilor care cer informații din obiecte și nu din surse de date. Cererea se află sub egida Object Request Broker (ORB), cu alte cuvinte sub egida unui intermediar de cereri direcționat spre obiecte, ce se identifică într-un „middleware”.
Middleware – ul de aplicație întreprinde operațiile de detaliu legate de simbioză dintre platformele software și hardware, ce trebuie să comunice între ele în scopul satisfacerii solicitărilor utilizatorului.
În ultimii ani, în tehnologia informației și, totodată, în spațiul bazelor de date, există două curente diametral opuse: distribuirea și centralizarea. În ceea ce privește baza de date centralizată atu-urile majore sunt generate de asigurarea consistenței prelucrărilor și de bună integritate a datelor cu redundanță minimă.
O bază de date distribuită (BDD) se identifică într-o colecție de date partajate care sunt distribuite fizic pe nodurile unei rețele de calculatoare. Gestiunea unei baze de date distribuite se întreprinde prin intermediul unui sistem de gestiune al bazei de date distribuite (SGBDD), apt în operarea cu baza de date similar cu un SGBD centralizat, fără ca utilizatorii să aibă cunoștințe de localizarea datelor accesate. Altfel spus, bază de date este alcătuită din insule de informații distribuite.
Printre sistemele de baze de date primordiale distribuite se numără:
R* – versiunea distribuită a sistemului DB2;
INGRES/STAR;
SQL*STAR – versiunea distribuită a sistemului ORACLE;
versiunea distribuită a sistemului INGRES alături de toate versiunile fundamentate pe modelul clasic de bază de date relațională.
În ultimii zece ani au fost dezvoltate baze de date distribuite nefundamentate pe modelul SQL – notorii drept baze non SQL -, cea dintâi implementare fiind proprietara Google, notorie și sub numele de „Big Table”, urmată de niște implementări open source precum:
MongoDB;
framework Hadoop cu Hbase;
TorentDB;
Casandra;
Dynamo.
Pot fi distinse o serie de specificități comune tuturor sistemelor distribuite, de natură să suplinească o definiție mai complicată. Specificitățile relevante ale sistemelor distribuite constau în următoarele:
un sistem distribuit va fi mereu disponibil către exploatare de către utilizatori, cu toate că anumite componente ale acestuia pot fi în lipsa funcțiunii în anumite perioade de timp;
transparența pentru utilizator;
redimensionarea și facilitarea în extindere – această specificitate reprezintă o consecință directă a faptului că intră în discuție o colecție de mașini de calcul însă, simultan și un efect al faptului că această multitudine de computere ce formează sistemul, interacționează între ele într-o manieră transparent pentru utilizator, conturând impresia de întreg.
utilizatorii din exteriorul sistemului pot să interacționeze cu un sistem distribuit într-un mod coerent și uniform, indiferent de momentul și de locul unde are loc această interacțiune.
Utilizatorii ce interacționează cu un sistem distribuit nu trebuie să sesizeze debranșarea anumitor elemente, substituite cu altele, ori adăugarea a noi componente în sistem în scopul satisfacerii a noi cerințe ori în scopul deservirii mai multor utilizatori.
Un sistem distribuit are rolul de conectare într-o manieră facilă a resurselor de calcul de utilizatorii acestora. Totodată, este imperios necesară menținerea transparentă pentru utilizator și faptul că aceste resurse se identifică în unele distribuite fizic într-o rețea. În acest context, sistemul trebuie să fie unul deschis, ce să accepte extinderi ulterioare și să fie poată fi facil redimensionat.
Cu privire la transparența, acest concept poate fi aplicabil mai multor aspecte ale sistemelor distribuite:
accesul – transparență cu privire la diferența dintre maniera de organizare și de reprezentare a datelor și maniera în care acestea, sub identitatea resurselor, sunt accesate;
localizarea – transparență cu privire la distribuția fizică a componentelor sistemului;
migrarea – transparența faptului potrivit căruia o resursă poate să fie mutată fizic dintr-un loc în altul;
re – localizarea – transparența mutării unei resurse dintr-un loc într-altul, în același timp în care resursa este folosită în sistem;
replicarea – transparența procesului de replicare a unei resurse în sistem;
concurența – transparență cu privire la situația în care o resursă este partajată în manieră concurențiala de mai mulți utilizatori;
indisponibilitatea unei resurse – se urmează o procedură de recuperare a datelor;
persistența – transparență cu privire la stocarea unei resurse pe disc ori în memorie.
Cu privire la posibilitățile de redimensionare a unui sistem distribuit, existența a diverse forme de centralizare în sistem poate să ridice probleme deosebit de complexe când intră în discuție redimensionarea acestuia. Centralizarea poate avea loc la nivel de:
algoritmi – prin realizarea de rutări pe fundamentul unei informații complete despre sistem;
servicii – prin existența unui singur server pentru mai mulți utilizatori;
date – prin existența unei baze unice de date în sistem.
Fiecare din situațiile de față își poate pune amprenta într-o măsură mai mare sau mai mică în ceea ce privește facilitatea cu care un sistem distribuit poate fi adaptat în dimensiuni, însă din toate, cele mai complicate și așadar, cele mai dificil de biruit sunt conjuncturile în care se proiectează sistemul prin utilizarea algoritmi centralizați. În acest context, apare ca o nevoie, începând cu faza de proiectare, folosirea algoritmilor descentralizați în scopul realizării funcțiilor sistemului.
Exemple remarcabile
Internet Networks
Nefiind sinonim cu „World Wide Web”, Internetul este o rețea masivă de rețele, cu alte cuvinte, o infrastructură de rețea. Internetul constă în conectarea a milioane de calculatoare la nivel global, care împreună formează o rețea în care orice computer poate comunica cu orice alt calculator, atât timp cât ambele sunt conectate la Internet. Peste 190 de state sunt interconectate prin schimburi de date, știri și opinii.
Potrivit Internet Live Stats, începând cu data de 07 august 2015 a existat un procent aproximat de 3,179,035,200 utilizatori de Interne, la nivel mondial. Numărul de utilizatori de Internet reprezintă aproape 40% din populația lumii. Cel mai mare număr de utilizatori de Internet este China, urmată de Statele Unite ale Americii și de India.
În luna septembrie a anului 2014, numărul total de site-uri web găzduite on-line a depășit 1 miliard. Primele miliarde de utilizatori de Internet au fost atinse la nivel mondial în anul 2005.
Nomadic computing
Conceptul de „Nomadic computing” se identifică în utilizarea tehnologiei de calcul mobil în scopul de a se conecta la Internet la nivel mondial ori de a folosi resursele specifice de date dintr-o locație stocată în timp, care se deplasează în jurul valorii dintr-un loc în altul.
Fenomenul de „Nomadic computing” se bazează pe o serie de inovații – cheie ce au permis oamenilor din întreaga lume să aibă acces la resurse partajate de aproape oriunde.
Printre acestea se numără:
apariția internetului la nivel mondial,
progresele realizate în medii de stocare,
proiectarea server,
protocoalele de criptare și de securitate pentru accesul la distanță.
„Nomadic computing” este notoriu și sub numele de „calcul mobil”.
Cluster
Un grup de calculatoare este format dintr-un set de calculatoare conectate (eficient sau ineficient) ce lucrează împreună, în așa măsură încât, în multe privințe, acestea pot fi privite sub identitatea unui singur sistem. Spre deosebire de computerele de rețea, clusterele de calculatoare au fiecare nod setat pentru a îndeplini aceeași sarcină, controlată și programată de software.
Componentele unui cluster sunt, de obicei, conectate prin rețele rapide locale – "LAN" – cu fiecare nod – calculator folosit ca server – ce rulează propria instanță a unui sistem de operare. În cele mai multe cazuri, toate nodurile folosesc același hardware și același sistem de operare, cu toate că în unele configurații – de pildă, prin utilizarea resurselor Open Cluster Source Application – sisteme de operare diferite pot fi utilizate pe fiecare calculator sau hardware distincte.
Acestea sunt de obicei utilizate pentru a îmbunătăți performanța și disponibilitatea față de cea a unui singur calculator, de obicei fiind mult mai rentabilă decât computerele individuale de disponibilitate comparabilă ori de viteză.
Grid computing
„Grid Computing” se identifică în colectarea resurselor informatice din mai multe locații pentru a ajunge la un obiectiv comun. Grila poate fi gândită ca un sistem distribuit cu sarcini de lucru non – interactive, care implică un număr mare de fișiere.
„Grid Computing” se deosebește de sistemele convenționale de calcul de înaltă performanță, precum calculul de cluster în care computerele de rețea au fiecare nod setat pentru a îndeplini o aplicație, o sarcină diferită. Calculatoarele Grid tind să fie mai eterogene și dispersate geografic – așadar, nu cuplate fizic – decât calculatoarele clusterului. Cu toate că o singură grilă poate fi dedicată unei anumite aplicații, în mod obișnuit o grilă este utilizată pentru o varietate de scopuri. Rețelele sunt adesea construite cu scop general.
Rețelele sunt o formă de calcul distribuit prin care un "super – computer virtual" este compus din mai multe calculatoare cuplate slab în rețea care acționează împreună pentru a efectua sarcini complexe. Pentru anumite aplicații, „grid” ori "distribuite" de calcul, „grid computing” poate fi văzut ca un tip special de calcul paralel ce se bazează pe calculatoare complete cu:
interfețe de rețea,
procesoare la bord,
surse de alimentare,
stocare, conectate la o rețea de calculatoare – publice ori private – printr-o interfață de rețea convențională, precum Ethernet.
Cloud computing
„Cloud computing” reprezintă practica de a folosi o rețea de servere la distanță, găzduite pe Internet, pentru a stoca, gestiona și procesa date, în defavoarea unui calculator personal ori unui server local.
Cu alte cuvinte, „Cloud computing”, notoriu drept „calcul on – the – line”, este un calcul bazat pe Internet, care oferă resurse partajate de prelucrare a datelor, a calculatoarelor și a altor dispozitive la cerere.
Este un model ce permite accesul universal la cerere la un fond comun a resurselor de calcul configurabile:
servicii,
rețele,
aplicații,
servere,
stocare, care pot fi prevăzute și lansate cu un management de minim rapid efort de calcul și de stocare de soluții cloud.
„Cloud computing” oferă atât întreprinderilor cât și utilizatorilor diferite capacități de a stoca și de a procesa datele lor în centrele de date de la terțe părți. Se bazează pe schimbul de resurse pentru întreprinderea economiei de scară, similar unui utilitar printr-o rețea.
„Cloud computing” permite companiilor să evite costurile de infrastructură în avans și să se concentreze asupra unor proiecte care le diferențiază afacerile. „Cloud computing” permite întreprinderilor să obțină propriile aplicații și să fie difuzate mai rapid, cu o mai bună manevrabilitate și mai puțină întreținere, permițând să se adapteze mai rapid resurse pentru a satisface fluctuația cererii imprevizibile de afaceri. Furnizorii de Cloud folosesc, de obicei, un model de "pay as you go". Acest aspect poate conduce la taxe neașteptat de mari în cazul în care administratorii nu se adaptează la modelul de tarifare.
Paralel and distribuited computing
Un sistem distribuit este o rețea de calculatoare autonome care comunică între ele, în scopul de a atinge un obiectiv. Calculatoarele dintr-un sistem distribuit sunt independente și nu împărtășesc o trăsătură fizică de procesare ori de memorie. Acestea comunică între ele prin intermediul mesajelor și a pieselor de informații transferate de la un calculator la altul printr-o rețea. Mesajele pot comunica multe lucruri:
computerele pot transmite altor computere indicații spre executarea unei proceduri, prin anumite argumente,
pot trimite și primi pachete de date,
pot trimite semnale care indică altor calculatoare să se comporte într-o anumită manieră.
În anul 1965, co-fondatorul Intel, Gordon Moore a făcut o predicție cu privire la modul în care computerele vor evolua, cu timpul. Acesta a extrapolat că numărul de tranzistori, ce ar putea avea costuri reduse se potrivesc pe un cip care se va dubla la fiecare doi ani. Aproape 50 de ani mai târziu, predicția sa, notorie acum drept „legea lui Moore”, rămâne exactă.
În ciuda acestei explozii în viteză, computerele nu sunt în măsură să țină pasul cu scara de date. Pentru datele genetice, în fiecare an, computerele devin devin din ce în ce mai puțin capabile să facă față amplorii problemelor legate de procesare, chiar dacă computerele în sine, reprezintă, prin definiție, obținerea rapidă a datelor.
Pentru a eluda constrângerile fizice și mecanice cu privire la viteza procesorului individual, producătorii militează pentru conceptul existenței mai multor procesoare. Dacă două, trei, sau mai multe procesoare sunt disponibile, atunci o multitudine de programe pot fi executate mai eficient. În timp ce un procesor se ocupă de aspectele unor calcule, alte procesoare pot lucra la altele. Toate acestea pot partaja aceleași date, însă lucrarea va avea loc în paralel.
CAP. II Internetul – un sistem distribuit deschis
2.1 Concepte cu privire la soft/hardware
Un sistem distribuit se identifică într-o colecție de computere independente ce reușesc să fie percepute de indivizii utilizatori drept un sistem coerent și unic. Această definire este descrisă prin două aspecte. Cel dintâi aspect face referire la partea de hardware și implică faptul că mașinile de calcul sunt văzute drept un cumul de entități autonome. Aspectul secundar face referire la partea de software și implică faptul că utilizatorii este imperios necesar să perceapă multitudinea de programe sub identitatea unui singur sistem.
Cele două aspecte sunt importante în egală măsură, fiind direct – proporționale.
În scopul satisfacerii acestor cerințe și în scopul asigurării interconectării unui hardware, în cele mai multe dintre rânduri, eterogen, sistemele distribuite sunt, de cele mai multe ori, structurate cu ajutorul unui nivel software poziționat, la nivel logic, între componentele de nivel înalt, ce asigură interfața cu utilizatorii și nivelul de jos, reprezentat de sistemul de operare.
Sursă: www.software.ucv.ro, „Sisteme distribuite. Definiție și caracteristici”
Fig. 2.1 Structură generală a unui sistem distribuit
Cu toate că sistemele distribuite presupun folosirea mai multor unități de procesare – CPU – există o multitudine de modalități de structurare a acestor unități, în mod expres cu privire la maniera în care acestea sunt direct proporționale și la maniera în care comunică între ele. O distincție poate fi făcută între sistemele de calcul, funcție de maniera în care memoria este folosită de procesoare: computere ce nu partajează memorie, notorii drept multicomputere și computere cu memorie partajată, notorii drept multiprocesoare. Distincția primordială constă în conjunctura multiprocesoarelor în care există un spațiu unic de adrese de memorie ce este partajat de toate unitățile de prelucrare – CPU – timp în care într-un multicomputer fiecare CPU are propria sa memorie privată.
Sistemele multiprocesor au în comun această trăsătură – cheie: toate unitățile de procesare au direct acces la memoria partajată a sistemului. Odată ce este vorba de o memorie unică, în condițiile în care un CPU A scrie un termen în această memorie comună și, o fracțiune de secundă mai târziu, un CPU B citește acest termen din memorie, atunci valoarea cuvântului este cea care a fost modificată de procesorul A. O unitate de memorie ce deține această proprietate este cunoscută drept „coerentă”.
În condițiile în care unitățile de procesare se conectează printr-o magistrală comună, pe care se află, totodată și unitatea de memorie, această magistrală poate să ajungă să fie supraîncărcată iar performanța sistemului poate fi redusă într-o manieră drastică. Din acest motiv, soluția la această problemă se identifică în faptul că fiecărei unități de procesare i se adaugă o memorie cache de mare viteză. Asupra unei arhitecturi de trading direcționată pe servicii memorie, disponibilă fiecărui procesor, păstrează termenii ce au fost cel mai recent accesate de către acesta.
Toate solicitările procesorului, adresate memoriei partajate, trec prin acest cache. În condiția în care solicitarea își găsește răspunsul în memoria cache, magistrala este scutită de traficul spre și dinspre memoria comună, partajată. În condițiile în care memoria cache este suficient de mare, probabilitatea de succes a regăsirii datelor în cache este ridicată iar traficul pe magistrală va fi considerabil redus, permițând o configurație cu mai multe procesoare în sistem. Totuși, introducerea memoriei cache în ceea ce privește fiecare procesor crează o altă chestiune problematică.
Prin presupunerea că două unități de procesare, A și B, citesc aceeași locație de memorie, atunci valoarea acesteia în memoria cache este proprie fiecărui procesor. În condițiile în care ulterior CPU A suprascrie această locație de memorie, atunci când CPU B citește iarăși locația de memorie în cauză, va citi vechea valoare din propriul cache, în defavoarea valorii ce tocmai fusese actualizată de CPU A. Memoria se transformă, astfel, în una incoerentă, iar sistemul foarte greu de programat.
Din acest motiv, alte măsuri vor fi indispensabile în scopul asigurării coerenței memoriei sistemului fiind, astfel, imaginate alte configurații în ceea ce privește interconectarea unităților de procesare și a memoriei comune, folosindu-se comutatoare în hardware spre ordonarea accesului la memoria partajată. Prin raportare la multiprocesoare, multicomputerele sunt facil de construit.
Acestea sunt în mod reprezentativ o colecție de mașini, în care fiecare CPU are acces direct la propria sa memorie locală. Problema primordială este cea a comunicației între computerele independente. Din moment ce traficul va avea loc între computere – CPU – to – CPU -, volumul vehiculat va fi într-o manieră reprezentativă mai redus în comparație cu cazul multiprocesoarelor, cu un trafic intens între memorie și unitatea de prelucrare și memorie – CPU – to – memory.
Componentele fizice sunt relevante în ceea ce privește sistemele distribuite, însă programele ce rulează în aceste sisteme sunt cele ce generează trăsături intrinseci ale acestora.
Software-ul unui sistem distribuit are funcția de manager al resurselor fizice și reprezintă componenta ce asigură transparența interacțiunii și interconectării dintre computere, expunând imaginea unei mașini virtuale ce execută anumite sarcini ca o entitate unică. Sistemele de operare raportate la computerele distribuite pot să fie clasificate în două primordiale categorii: sisteme de operare în care interacțiunile dintre componente sunt mai relaxate – loosely – coupled și sisteme de operare cu interacțiuni foarte conectate între componente – tightly coupled.
În cel dintâi caz, se ia în discuție o colecție de computere interconectate, fiecare cu propriul său sistem. În caz secund, sistemul de operare încearcă, într-o manieră reprezentativă, să mențină o viziune globală, unică a resurselor pe care le gestionează.
Sistemele de operare ale computerelor dintr-un sistem deschis de această natură, sunt interconectate, lucrând împreună în scopul furnizării unui anumit serviciu și punându-și fiecare propriile resurse la dispoziția celorlalte computere din sistem.
În condițiile în care topologiile hardware menționate anterior se conectează cu această clasificare, un sistem de operare puternic închegat se identifică într-un un sistem de operare distribuit – Distributed Operating Suystem – DOS -, ce este folosit în scopul administrării unui multicomputer omogen ori unui sistem multiprocesor. Prin contrast, un sistem de operare ce nu este alocat interconectării foarte strânse a resurselor ce compun sistemul reprezintă un sistem potrivit în administrarea de colecții de computere eterogene – Network Operating System – NOS. Progresele întreprinse în domeniul serviciilor expuse de sistemele de administrare a rețelelor de calculatoare emit această transparență legată de distribuția fizică a resurselor.
Aceste progrese conduc la apariția unui nou nivel rațional de asigurare a interconectării între sistemele de calcul neomogene și distribuite, componentă notorie sub numele de „middleware”. În același timp, sistemele de operare distribuite – DOS – pot fi distribuite în sisteme de operare multiprocesor, ce administrează sisteme de operare multicomputer și resurse ale unui sistem fizic multiprocesor, ce sunt alocate administrării unei colecții omogene de computere.
Sursă: www.software.ucv.ro, „Sisteme distribuite. Definiție și caracteristici”
Fig. 2.2 Structura de ansamblu a unui sistem de operare multicomputer
Sistemele de operare ale multicomputerelor sunt structurate printr-o complexitate distinctă, prin raportare la sistemele de operare pentru multiprocesoare. Distincția este oferită de faptul că structurile de date alocate administrării resurselor sistemului, văzut drept un tot-unitar, nu mai pot fi plasate într-o memorie comună partajată de procesoare. Pe de altă parte, unicul mijloc de comunicare apare drept transferul de mesaje între computere.
Prin contrast, sistemele de operare în rețea nu susțin că nivelul fizic al mașinilor de calcul ar fi omogen, așadar, administrabil sub identitatea unui singur sistem. Din contră, ipoteza constă în acestea că aceste sisteme sunt întreprinse dintr-o colecție de mașini uniprocesor – ori multiprocesor -, fiecare fiind caracterizate printr-un sistem propriu de operare.
Sursă: www.doringrad.3host.ro, „Caracteristicile unui sistem de operare de rețea”
Fig. 2.3 Structură generală a unui sistem de operare în rețea
Atât sistemele de operare individuale cât și mașinile componente pot fi distincte însă acestea sunt interconectate cu ajutorul unui software de rețea. Serviciile de intercomunicare în rețea sunt limitate cu privire la asigurarea gradului de transparență în folosirea resurselor și disponibilității acestora, solicitări caracteristice unui sistem distribuit.
Un sistem de operare distribuit nu are menirea de a administra o colecție de computere independente, iar, pe de altă parte, un sistem de operare în rețea nu poate expune imaginea unui singur sistem coerent. În scopul beneficierii facilităților expuse de ambele configurații este indispensabilă introducerea unui nivel software adițional, care să se poată utiliza într-un sistem de operare în rețea, care să mascheze eterogenitatea componentelor sistemul și care să emită, totodată, transparența indispensabilă cu privire la distribuția acestor componente.
Cele mai multe dintre sistemele distribuite moderne sunt fundamentate pe construcția acestui nivel adițional de software notoriu drept „middleware”. Pentru simplificarea procesului de integrare și de evoluție a aplicațiilor distribuite, componentă de middleware trebuie să se fundamenteze pe o anumită paradigma, pe un anumit model, cu privire la distribuția componentelor și la comunicarea dintre acestea. Din acest punct de vedere, au existat, din perspectivă istorică, mai multe abordări.
Unul dintre tipare propune ca fiecare resursă din sistem să fie tratată ca un fișier. O extensie a acestei abordări este văzută în configurația cu sistem distribuit de fișiere.
O altă abordare a stadiului middleware a fost cea fundamentată pe apeluri de proceduri la distanță – Remote Procedure Calls – RPC. În cadrul acestui tipar, accentul cade pe conceptul de a face transparentă comunicarea în rețea, prin intermediul punerii la dispoziție a proceselor unui mecanism prin care este permis apelul unei proceduri a cărei implementare se regăsește pe o altă mașină – la distanța – în rețea. În condițiile în care o asemenea procedură este apelată, parametrii acesteia se transferă, într-un mod transparent, spre mașina de la distanță, unde procesul este întreprins, rezultatele fiind trimise către mașina apelatoare, prin respectarea aceluiași nivel de transparență al comunicării.
Toate aspectele apar ca în condițiile în care ar fi fost executat un apel local. Procesul ce inițiază apelul neobservând că a avut loc o comunicare în rețea, are loc numai cu excepția unei scăderi în performanță. Odată cu paradigma programării obiectuale, au apărut sisteme middleware ce sprijină sintagma de „obiecte distribuite”.
Esența conceptului de „obiecte distribuite” rezidă în faptul că fiecare obiect implementează o interfață ce ascunde, în acest context, detaliile interne de implementare a obiectului în scopul utilizării acestuia. O interfață se identifică în mijloacele pe care obiectul are rolul de a le implementa.
2.2 Inteligenta artificiala distribuita
Algoritmii genetici sunt folositi in scopul rezolvarii problemelor cu un spatiu foarte extins de cautare a solutiei ce necesita un volum ridicat, pe de o parte de resurse computationale, pe de alta parte de timp spre procesarea tuturor solutiilor posibile. Originea algoritmului genetic rezida în biologie si împrumuta concepte din acest domeniu precum:
alela,
cromozom,
gena.
Cromozomul este o solutie candidat ce poate fi reprezentata în diverse maniere, functie de problema. Cromozomii sunt formati din gene – entitati ce codifica un anumit element din solutia – candidat. Finalmente, o alela se identifica in una din posibilele trasaturi ale unei gene.
De pilda, un cromozom poate fi codificat ori reprezentat ca un vector în care fiecare element poate sa aiba o valoare cuprinsa între 0 si 10. O gena este elementul vectorului ce este situat la o anumita pozitie, notoriu sub numele de „locus”. Trasaturile ce le poate avea o gena se identifica in numere cuprinse intre 0 si 10, o alela putând fi, de pilda, numarul 5.
Generarea populatiei initiale;
Evaluarea populatiei;
while conditia de stop nu este satisfacuta do
│Selectia;
│Incrucisarea;
│Mutatia;
│Crearea noii populatii;
│Evaluarea Crearea noii populatii;
end
Returnarea celei mai bune solutii;
Algoritmul 2.1 Structura algoritmului genetic clasic
Populatia initiala este, in principiu, determinata aleator prin selectarea unei alele din trasaturile disponibile pentru fiecare gena. Cateodata, solutia obtinuta prin rularea unui alt algoritm pentru o problema similara poate fi utilizata pentru initializarea unuia sau a mai multor cromozomi din populatia initiala. Algoritmul genetic este executat pâna când este indeplinita conditia de „stop”: pâna când un numar suficient de iteratii a fost executat de la startul algoritmului ori daca solutia cea mai eficienta nu a mai suferit îmbunatatiri dupa un anumit numar de iteratii.
In cazul fiecarei iteratii sunt selectate mai multe perechi de cromozomi in ceea ce priveste reproducerea: încrucisare si mutatie. Procesul de selectie a cromozomilor ce urmeaza sa se reproduca, poate fi intreprins în mai multe maniere. Cele mai notorii dintre acestea sunt:
selectia – turnir,
selectia fundamentata pe fitness,
selectia fundamentata pe rang.
Selectia fundamentata pe fitness este cea mai folosita metoda intrucat, in aceasta conjunctura, probabilitatea ca un cromozom sa fie ales este in stransa conexiune cu fitness-ul sau. Operatorul de încrucisare este aplicat, sub egida unei anumite probabilitati, unei perechi de cromozomi, notorii si sub sintagma de „cromozomi parinti”, in scopul producerii a doi cromozomi „copii”. Metoda cea mai cunoscuta de realizare a încrucisarii a doi cromozomi este cea cu un punct de taiere ales aleatoriu.
Aceasta metoda implica producerea a doi cromozomi – copii ce vor avea jumatate din gene de la un parinte si jumatate de gena de la celalalt parinte. Pe langa aceasta, alte doua metode de incrucisare utilizate se identifica in încrucisarea uniforma si in incrucisarea multi- punct. Procesul secund folosit în fenomenul de reproducere este mutatia, care în cele mai multe dintre conjuncturi implica înlocuirea valorii unei gene cu o alta alela.
O alta modalitate de intreprindere a mutatei unui cromozom este de a alege aleatoriu doua gene si de a interschimba propriile alele. Ca urmare a reproducerii, are loc formarea unei noi populatii ce va contine si cromozomi din vechea populatie. In scopul asigurarii ca cea mai buna solutie nu este pierduta, cel mai bun cromozom din vechea populatie este pastrat în noua populatie, proces cunoscut drept „elitism”.
In conjunctura in care conditia de „stop” este satisfacuta, pentru cromozomul cu cel mai mare fitness se opteaza ca fiind solutia algoritmului. Spatiul de cautare este suficient de extins pentru ca un algoritm exhaustiv sa aiba o durata de executie foarte mare spre obtinerea celei mai bune solutii.
Algoritmul genetic nu intreprinde o cautare exhaustiva, asadar, e posibil ca solutia obtinuta sa nu fie cea mai bun a solutie existenta, insa, cu toate acestea, va fi o solutie foarte buna obtinuta intr-o perioada de timp foarte scurta.
Reteaua Neuronala Artificiala se identifica intr-o tehnica de „machine learning” fundamentata pe structura si pe functionalitatea retelelor neuronale biologice. Reteaua este formata din mai multe straturi interconectate de neuroni. In genere, exista un strat de intrare ce este conectat printr-un strat intermediar de stratul de iesire. Intrucat are structura unui graf directionat aciclic, o retea de aceasta natura poarta numele de „retea neuronala feed- forward”.
Un neuron este format dintr-o multitudine de intrari, o functie de intrare, o functie de activare si una ori mai multe iesiri. Conexiunile dintre neuroni au anumite ponderi ce sunt determinate prin intermediul tehnicilor de învatare:
supravegheata,
nesupravegheata,
prin întarire.
Aplicatiile retelelor neuronale sunt diversifiate si acopera domenii precum:
clasificareasi procesa rea datelor,
aproximarea functiilor,
gasirea de pattern-uri în seturi de date de dimensiuni extinse.
2.3 Baza de date distribuita
Baza de date distribuita – BDD – reprezinta o colectie de date partajate, logic corelata, datele fiind distribuite fizic pe o retea de computere.
In acelasi context, sistemul de gestiune al bazei de date distribuite este un sistem software prin care este permisa gestionarea bazei de date distribuita, facand distribuirea transparenta pentru utilizator.
Sistemele de date distribuite au functia de a rezolva chestiunea numarului ridicat de informatii. Acestea au aparut ca o nevoie, în mod expres in ceea ce priveste retelele de calculatoare, in scopul acordarii de suport vis-a-vis de gestionarea datelor în conjunctura când acestea sunt regasite fizic în diverse puncte ale retelei.
Cele dintai sisteme de baze de date distribuite au fost:
INGRES/STAR – versiune distribuita a lui INGRES,
SQL*STAR – versiune distribuita a lui ORACLE,
R* versiune distribuita a lui DB2.
Reteaua sau sistemul fizic ce se identifica in sprijinul unei baze de date distribuite, este alcatuit din:
statii de lucru,
calculatoare personale,
minicomputere, conectate în retea si notorii sub numele de „site-uri”.
Astfel, un sistem de baze de date distribuite rezida intr-o colectie de site-uri, ce ia parte in mod individual la executarea tranzactiilor ce acceseaza datele de pe unul ori de pe mai multe site-uri.
Un sistem de baze de date asigura o serie de solicitari dintre care:
administrarea distribuita a tranzactiilor, independenta de:
sistemul de gestiune al bazelor de date,
hardware,
de sistemul de retea,
de sistemul de operare,
autonomia locala în structurarea si in prelucrarea datelor,
prelucrarea distribuita a solicitarilor,
posibilitatea de lucru permanent al site-urilor, independent de modificarile in configuratiile de lucru – adaugari ori eliminari de site-uri,
posibilitatea de a copia – replica -, urmata de independenta copiilor,
transparenta fizica – independenta de localizare si de fragmentarea datelor.
Un sistem de gestiune al bazei de date distribuita se identifica intr-o singura baza de date ce este descompusa în fragmente, unele dintre acestea multiplicate, fiecare fragment ori copie pastrandu-se pe unul ori mai multe site-uri, sub controlul unui sistem de gestiune al bazei de date local. Fiecare site poate procesa interogari utilizator în regim local, independent de restul retelei, ori poate lua parte la procesarea unor date pozitionate în alte site-uri din retea. Existenta unui sistem de gestiune al bazei de date este conditionata de existenta a macar unei solicitari globale.
In cadrul unei baze de date, tranzactiile sunt clasificate în tranzactii globale si tranzactii locale, functie de site-urile pe care executarea acestora le solicita.
O configuratie pe retea se identifica intr-o baza de date distribuita in conditiile in care site-urile „constientizeaza” existenta celorlalte site-uri precum si in conditiile in care fiecare site expune un mediu in care pot fi intrprinse tranzactii globale si tranzactii locale.
Dintre atu-urile distriburii bazelor de date se vor trece in revista urmatoarele:
abilitatea de gestionare modulara a sistemului – prin care sunt permise extensii ale acestuia ori rezolvarea unor "caderi" partiale fara sa fie foarte afectat – ori chiar deloc – mersul activitatilor la nivelul de ansamblu al sistemului distribuit,
sistemul distribuit este cel mai eficient modelat pe structura organizationala a multor companii, luand in calcul ca multe intreprinderi sunt localizate "distribuit" din perspectiva geografica,
un sistem distribuit ofera avantaje economice in conditiile in care se iau in calcul cheltuielile intretinerii si implementarii unei retele in raport cu cheltuielile specifice ale unui sistem centralizat de putere comparabila de prelucrare.
Mai sunt obtinute cheltuieli scazute si in conditiile in care se realizeaza prelucrari locale cât mai numeroase. Totodata, este mult mai convenabila „ajustarea” unei retele de calculatoare la necesitatile companiei – de pilda daca este nevoie de adaugarea suplimentara a unor site-uri – in comparatie cu un calculator central cu o putere similara.
datele se partajeaza insa administrarea acestora beneficiaza de un nivel ridicat de autonomie locala,
performantele în prelucrarea datelor sunt imbunatatite prin posibilitatea prelucrarii simultane a unor interogari,
disponibilitatea bazei de date este mai eficienta decât în cazul centralizat.
In conditiile in care sunt semnalate erori de sistem la nivel local, sistemul in totalitatea sa poate continua sa functioneze în conditii multumitoare.
fiabilitatea sistemului este îmbunatatita.
In acest context, pot fi refacute rapid fisiere distruse folosind replici existente pe alte site-uri.
Dezavantajul primordial al distriburii bazelor de date se identifica in complexitatea crescuta a unui sistem de aceasta natura.
Sub egida acestui dezavantaj stau o serie de alte incoveniente – consecinta dintre care se vor trece in revista urmatoarele:
posibilitatea aparitiei unui flux ridicat de informatii intre site-uri, de unde rezulta nevoia rezolvarii unor probleme precum:
eliminarea unor inconsistente pricinuite de redundante,
sincronizarea mesajelor,
corectarea si descoperirea unor perturbari.
este mai dificil de implementat si de gestionat,
lipsa standardelor.
Lucrul cu sisteme de date distribuite nu are, astazi, la fundament standarde internationale acceptate in totalitate. Din acest caz, deriva problemele de comunicare ce apar intrucat protocoalele de acces la date si standardele de comunicatii nu au standarde acceptate si fixate pe scara larga.
cheltuielile legate de un sistem de aceasta natura sunt mult mai ridicate comparativ cu cazul centralizat.
In ceea ce priveste proiectarea si implementarea sistemului este nevoie de personal specializat si de mai mult timp. Cele doua aspecte necesita costuri mai ridicate in bani. La aceste costuri pot fi adaugate acelea ce vin din nevoia asigurarii soft-ului necesar si a echipamentelor hardware performante. Totodata, in conditiile exploatarii sistemului la costurile normale se vor adauga costuri ridicate de comunicatii.
intergitatea datelor este dificil de realizat intr-un sistem distribuit.
Integritatea este exprimata, in genere, in termeni de restrictii – conditii, norme – pe care datele bazei de date trebuie sa le verifice. Din pricina costurilor mari de comunicatii – atat in bani cat si in timp -, uneori se renunta la verificarea unor reguli in favoarea consistentei bazei de date.
potential ridicat de erori.
In cazul erorilor obisnuite, in lucrul cu baze de date pot fi adaugate o serie de erori precum cele determinate de algoritmi distribuiti.
securitatea unui sistem distribuit este mai dificil de asigurat comparativ cu situatia unui sistem centralizat.
Datele sunt mai facil de accesat de catre indivizi neautorizati intrucat aceasta actiune o pot intreprinde prin intermediul accesului intre calculatoare. La nivel fizic administrativ, are mai putina pondere comparativ cu un sistem centralizat.
este nevoie de o procesare suplimentara determinata de schimburile de mesaje intre site-uri si de coordonarea acestora.
2.4 Sisteme informatice educationale
Sistemul Informatic Integrat al Învățământului din România este cel ce furnizeaza servicii de gestiune completă a activităților sistemului educațional preuniversitar din perspectiva strategica, operaționala, tehnica si administrativa.
Atat globalizarea cat și modificarile tehnologice au transformat cunoașterea într -o măsură reprezentativa a competitivității în economia mondială, iar Tehnologia Informației și Comunicațiilor – TIC – precum și revoluția informațională pe care societatea o parcurge astazi, se identifica in repere fundamentale pentru procesele educației secolului XXI.
Astfel, Ministerul Educației a fost implicat, in ultimii ani, pe de o parte, în informatizarea sistemului de învățământ, pe de alta parte în furnizarea mijloacelor in scopul folosirii Tehnologiei Informației și Comunicațiilor în procesul didactic al tuturor nivelurilor de învățământ, cu focusare pe pesistemul educațional preuniversitar.
Tehnologia Informației și Comunicațiilor este văzută, astazi, ca un sistem de referință prin care pot fi usurate oportunitățile de dezvoltare legate de:
managementul sistemului de învățământ,
achizițiile cognitive ale elevilor,
performanțelecognitive ale elevilor,
susținerea financiară a inovației în educație,
competențele profesionale ale cadrelor didactice,
evolutia institutionala scolara,
raportul școală-comunitate.
Introducerea lui LibreOffice în educație este cel mai reprezentativ pas catre o educație fundamentata pe un sistem informatic liber, ce, din punct de vedere al costurilor tinde catre zero, intrucat LibreOffice este gratuit, disponibil în limba română, existand foarte multe materiale educaționale pentru acesta, care prin simpla traducere devin disponibile.
În cadrul proiectului Programului operațional dezvoltarea capacității administrative una dintre principalele activități rezida în evolutia și in implementarea unui sistem informatic integrat de monitorizare si de management in scopul creșterii calității și, totodata, in scopul debirocratizarii sistemului educațional preuniversitar din România.
Acest sistem informatic cuprinde:
modulul de gestiune a proiectelor și a activităților extracurriculare derulate la nivelul unităților de învățământ.
Prin acest modul sunt colectate și expuse, la nivelul fiecărei unități de învățământ:
proiectele educaționale ce beneficiaza de diverse surse de finanțare,
alternativele educaționale,
activitățile extracurriculare.
modulul de portal de interactiune si de comunicare cu societatea civilă.
Acest modul va usura comunicarea între:
comunitate,
școala,
părinți si se va identifica intr-un punct unic de acces la o gamă variată de informații, permitand intreprinderea și gestionarea online a comunităților de business, ce va usura o conexiune stransa între:
informatie,
oameni,
aplicatii,
procese.
modulul de gestiune a programelor școlare CDL si CDS, administrate la nivelul unităților de învățământ preuniversitar precum si la nivelul comunităților locale.
Prin acesta se permite gestionarea informațiilor legate de disciplinele facultative ce sunt predate în cadrul sistemului educațional preuniversitar romanesc, a celor raportate la asocierea disciplinelor cu fiecare specializare si nivel, precum și la gestionarea grupării disciplinelor în arii curriculare, pe module ori pe obiecte de studiu, funcție de specificul fiecărui nivel. Totodata, în cadrul fiecărei grupări, modulul permite și administrarea informațiilor raportate la numărul de ore necesar pentru fiecare disciplină. Aceste informații decid regimul de predare – învățare – evaluare caracteristic fiecărei:
specializari,
discipline,
nivel.
modulul de gestiune și de prelucrare a documentelor de control si de inspecție periodica la nivelul unităților de învățământ.
Pornind de la scopul unei inspecții școlare, acest modul permite gestionarea informațiilor despre inspecții intreprinse la toate nivelurile ierarhice:
minister,
unitate de învățământ preuniversitar,
inspectorat școlar.
Sistemul informatic ofera o trasabilitate electronică a documentelor cerute la inspecții, a inspecțiilor desfasurate în unitate într-un interval de an scolar ori de semestru, folositoare în determinarea rapoartelor periodice de inspecție.
modulul de gestiune a portofoliului profesorului.
Modulul prezinta dosarul activității didactice a profesorului, cu alte cuvinte, păstrarea materialelor și structurarea acestora in asa masura încât să îmbunătățească structurarea si calitatea muncii, obligând profesorul sa efectueze o muncă de calitate, sa fie responsabil si strict din punct de vedere profesiona. In acest context, toate documentele trebuie sa fie vizibile pentru conducerea unității de învățământ. Structura portofoliului este imperios necesar sa aiba în componența sa o serie de acte, informații ori caracteristici specifice fiecărei secțiuni în parte, in urmatoarea maniera:
materiale relevante pentru activitatea didactica,
date personale,
perfectionare,
activitate la catedra,
performanțe.
2.5 Securitatea sistemelor distribuite
Din punct de vedere al sigurantei, sistemele distribuite sunt mai vulnerabile din perspectiva:
existentei distributiei a tot mai multor aplicatii critice – Internet banking,
controlului descentralizat,
accesului de la distanta.
Securitatea unui sistem distribuit presupune:
disponibilitate,
confidentialitate,
integritate – prin care este acoperita integritatea originii – autentificarea – si integritatea datelor .
Amenintarile, in contextul dat, pot fi clasificate in urmatoarea maniera:
Sursa: www.andrei.clubcisco.ro, „Securitatea sistemelor distribuite”
Tab. 2.1 Tipuri de amenintari
Construirea unui sistem sigur este alcatuit din patru etape.
Precizarea politicii de securitate – actiunile sunt permise unei entitati:
proces,
utilizator,
masina,
serviciu.
Optarea pentru mecanismele de securitate – concentrarea are loc pe operatiile globale
Implementarea
Sursa: www.andrei.clubcisco.ro, „Securitatea sistemelor distribuite”
Fig. 2.4 Implementarea prin entitati si protocoale
Totalul mecanismelor si componentelor hardware si software solicitate in scopul de implementare a unei politici de securitate.
Principiul RISSC – Reduced Interfaces for Secure System Components – este cel aplicat pentru securizarea sistemelor distribuite.
Orice server care are cerinte critice de securitate este pozitionat pe o masina separata, izolata de sistemele utilizatorului. Atat clientii cat si aplicatiile pot sa acceseze serverul numai prin interfete sigure de retea.
Sursa: www.andrei.clubcisco.ro, „Securitatea sistemelor distribuite”
Fig. 2.5 Trusted computer base
Asigurarea functionarii corecte a mecanismelor
Metode formale sunt aplicabile in toate stadiile:
Specificare,
Proiectare,
Implementare.
Aceasta asigurare trebuie sa fie in conformitate cu standardele – ITSEC – Information Technology Security Evaluation Criteria.
Increderea, in acest context, rezida in convingerea ca entitatea intreprinde politica de siguranta pentru care a fost conceputa.
Increderea este o caracteristica generala conectata de perceptia subiectului: exista mai multe grade de incredere. Prin contrast, securitatea reprezinta caracteristica binara a obiectului, ce poate fi cert ori nu.
CAP. III Studiu de caz – Retelele de senzori
Wireless sensor network este alcatuit din noduri – senzori ( mici dispozitive autonome echipate cu o sursa de energei, cu senzori, cu un procesor si cu facilitati de comunicare wireless.
Un exemplu, in acest sens, este dispozitivul senzorial MICA iar un contra – exemplu poate fi identificat in UbiComp (retea de dispozitive mobile).
WSN este utilizat intr-o multitudine de domenii dintre care:
sistemul militar – prin monitorizarea activitatilor in spatii inaccesibile,
domeniul biologic – prin supraveherea comportamentului animalelor in habitatul lor natural,
domeniul geologic – prin monitorizarea activitatii seismice precum si a influentelor acesteia in ceea ce priveste influentele proprii asupra integritatii de tip structural a cladirilor,
domeniul de cercetare a mediului – prin monitorizarea poluarii mediului,
domeniul agricol – prin observarea calitatii solului si a altor parametri ce influenteaza cresterea plantelor .
In continuare se va expune un model tipic de folosire a retelei de senzori.
Un utilizator mentioneaza o sarcina pentru senzori de nivel inalt, de pilda, “Raporteaza salile unde nivelul de zgomot mediu depaseste un nivel anume”.
Aceasta sarcina se distribuie in mai multe sub – sarcini simple, fiecare fiind alocata unor anumite noduri individuale din retea.
Sub-sarcinile colecteaza si pre-proceseaza citirile senzorilor de nivel jos.
Datele de la senzori sunt, in prima instanta, agregate, iar in instanta secunda procesate in scopul formarii unui rezultat al senzorilor de nivel inalt ce este raportat la utilizator.
In acest context exista o solicitare impetuoasa in ceea ce priveste abstractizarile ce permit expedierea facila a sarcinilor in retea ca un tot unitar. Astfel, middleware-ul in ceea ce priveste retelele de senzori trebuie sa suporte aceste abstractizari in programare.
In contextul bazei de date Tiny, utilizatorii pot sa emita interogari de tip SQL in scopul intreprinderii de catre retea a unei anumite sarcini.TinyDB se identifica intr-un reprezentant pentru retelele de senzori. Aceasta suporta o baza de date singulara prin intermediul unui tabel “virtual”.
Fiecare coloana corespunde atat unei surse de date de intrare – puterea ramasa a bateriei, identificatori de noduri –senzori – cat si unui tip caracteristic de senzor – lumina, temperatura.
Actiunea de citire la un nod poate fi vazuta ca o adaugare a unei linii. Limbajul de interogare se identifica intr-o submultime a SQL cu anumite extensii.
In continuare, va fi expus un exemplu, avand drept fundament baza de date Tiny.
Un numar ridicat de camere sunt prevazute cu senzori multipli. Fiecare nod este exhipat cu senzori spre masurarea volumului acustic. Tabelul specific cuprinde volumul, numarul camerei unde este amplasat senzorul si etajul la care se afla camera. Chestiunea analizata in acest context se raporteaza la determinarea camerelor de la etajul 8 in care volumul mediu depaseste nivelul 15.
SELECT AVG(volume), room // numarul camerei respective este returnat
FROM sensors
WHERE floor = 8 // selecteaza randurile de la senzorii etajului 8
GROUP BY room // rândurile selectate sunt grupate funcție de nr. Camerei
HAVING AVG(volume) > 15 // volumul mediu al fiecarui grup rezultat este calculat
// doar grupurile cu un volum mediu de peste 15 se tin
EPOCH DURATION 60s // interogarea este reexecutata la fiecare 60 de secunde
Baza de date Tiny foloseste o abordare descentralizata – fiecare nod are propriul procesor de interogare ce pre-proceseaza si agrega datele in scopul de a le trimite utilizatorului.
Interogarea, in acest conext, presupune existenta urmatoarelor etape:
1. Arborele de acoperire a retelei este alcatuit si pastrat cu toate ca reteaua se schimba
2. Interogarea este difuzata in cazul fiecarui mod din retea de la radacina catre frunze. O planificare este decisa, in asa fel incat exista un acord asupra unui perioade de timp in care vor fi primite datele
3. La incipitul fiecarei epoci, nodurile frunza obtin o linie din tabel prin citirea datelor de la senzor
4. Frunza aplica criteriul selectiv.
5. In conditiile in care criteriul se indeplineste, o stare partiala este conturata cuprinzand toate datele necesare – de pilda, numarul etajului ori numarul camerei.
6. Procesul continua pana in momentul atingerea radacinii
7. La radacina, starea se evalueaza in scopul obtinerii rezultatului interogarii
8. Aceasta procedura este repetitiva in fiecare epoca.
Clasa de abordari inspirate din agenti mobili si din coduri mobile are urmatoarele specificitati:
poate sa comunice cu copiile la distanta,
reteaua de senzori este insarcinata prin intermediul injectarii unui program in aceasta,
se poate auto – copia la alte noduri,
poate colecta date de la senzorii locali.
Reprezentantul primordial al acestei clase este SensorWare. In interiorul acestuia, programele sunt precizate in TCL. In ceea ce priveste interogarea, se iau in considerare parametri precum un nume de senzor – de pilda, volumul – si o comanda. Sistemul este folosit in scopul obtinerii unei citiri a senzorului. Cu privire la expediere, se iau in calcul parametrii identificati in adresa si mesaj, expediindu-se mesajul la nodul specific. Prin raportare la replicare, se iau drept parametri una ori mai multe adrese, trimitandu-se copii multiple ale scriptului nodurilor la distanta. Cu privire la procesul asteptarii, acesta se identifica intr-un set de evenimente drept parametri si in suspendarea executiei scriptului pana in momentul aparitiei unuia dintre evenimentele specificate (aparitia unor evenimente neasteptate precum expirarea unui timer sau primirea unui mesaj este reprezentata, in cazul fiecarei intamplari de aceasta natura, de un eveniment).
Fundamentata pe conceptul de „evenimente”, middleware poate avea si o alta abordare – DSWare.
Aceasta aplicatie este specifica interesului in anumite stari a lumii reale – “evenimente de baza”. La descoperirea unui eveniment, un nod trimite o notificare a evenimentului spre aplicatiile interesate. Aplicatia sa specifice specifica sabloane in ceea ce priveste evenimentele – “evenimente compuse”.
DSWare suporta atat specificarea cat si detectarea automata a evenimentelor compuse. O specificare de eveniment compus implica:
1. Identificator de eveniment
2. Un domeniu pentru detectie precizand aria de interes
3. Specificarea perioada de timp de interes
4. O multitudine de noduri senzori interesati de evenimentul compus
5. O fereasra de timp W
6. O functie de confidenta f
7. O confidenta minima cmin
8. O multime de evenimente de baza E.
Evenimentul compus este descoperit si livrat la nodurile interesate, in conditiile in care f(E)≥cmin alaturi de toate evenimentele fundamentale apar in fereastra de timp W.
Finalmente, va fi expusa o exemplificare bazata pe DSWare.
Descoperirea unui eveniment de explozie implica:
aparitia unui eveniment lumina – de pilda, lumina flash
existenta unui eveniment in temperatura – de pilda temperatura ambient ridicata
existenta un eveniment de sunet – de pilda, „buf” – intr-o fereastra de timp de tipul sunbsecundelor W.
In acest context, functia de confidenta se defineste in urmatoarea maniera:
f=0.6 ·B(temp)+0.3 ·B(light)+0.3 ·B(sound )
Descoperirea evenimentului de temperatura expune cel mai mare grad de incredere in explozie comparativ cu detectarea evenimentelor de lumina ori de sunet.
Functia B ilustreaza un eveniment ID la:
1 – in conditiile in care evenimentul respectiv a fost descoperit in fereastra de timp W
0, in alte conditii decat cea precizata anterior.
Prin Cmin=0.9, f va indica un eveniment de explozie in conditiile in care evenimentul de temperatura a fost descoperit alaturi de cel de lumina si de cel de sunet.
BIBLIOGRAFIE
Andrew Tanenbaum, „Distributed Operating Systems”, Pearson, 1994
Andrew Tanenbaum, „Retele de calculatoare”, Computer Press Agora, Amsterdam, 1998
Aurel Stepan, „Sisteme informatice si inteligenta artificiala in economie”, suport de curs, 2009
David Bader, Robert Pennington, „Cluster Computing: Applications, The International Journal of High Performance Computing”, 2001
Dorin Carstoiu, „Sisteme de baze de date distribuite”, Editura Conspress, Bucuresti, 2013
Ioan Dzitac, Grigor Moldovan, „Sisteme distribuite. Modele informatice”, Editura Universitatii Agora, Oradea, 2006
Luminita Scripcariu, Iulian – Dragos Scripcariu, art. „Sisteme de operare”
Mihaela Muresan, Elena Ianos – Schiller, „Informatica generala”, Universul juridic, Bucuresti, 2005
Rajani Baburajan, art. „The Rising Cloud Storage Market Opportunity Strengthens Vendors”, 2011
Jared Wray, „Where's The Rub: Cloud Computing's Hidden Costs”, 2014
Russel Kinnel, „Fund Spy – Morningstar’s inside Secrets toselecting mutual funds that outperform”, Jonh Wiley & Sons, Inc., New Jersey, 2009
QusayHassan, „Demistifying Cloud Computing”, 2011
Surse online
Ben Kepes, „The Cloud Computing Continuum – Sometimes simple explanations are the best”, 2009, www.cloudave.com
Darien Graham – Smith, art. „Weekend Project: Build your own supercomputer”, www.pcauthority.com
Doru Bancescu, „Istoria sistemelor de operare – uriasii fara care calculatorul tau ar fi zero”, 2012, www.yoda.ro
Ion Ivan, Cristian Toma, art. „Cerinte ale realizãrii aplicatiilor informatice distribuite”, www.rria.ici.ro
www.noridigitali.net, „Sisteme de calcul distribuite”
www.science.upm.ro
www.web.info.uvt.ro, „Sisteme distribuite – Tehnologii”
www.noridigitali.net, art. „Sisteme de calcul distribuite”, 2015
www.internetlivestats.com
www.info.cem.ch
www.stackoverflow.com, art. „What is the difference between Cloud, Grid and Cluster?”
www.answers.com, „Comparison Grid computing and cluster Computing”
www.sciencedirect.com, art. „CloudID: Trustworthy cloud-based and cross-enterprise biometric identification”, 2015
www.aws.amazon.com, „What is Cloud Computing?”, 2013
www.software.ucv.ro, „Sisteme distribuite. Definiție și caracteristici”
www.web.info.uvt.ro, art. „Sisteme distribuite – teorie”, 2009
www.vega.unitbv.ro, art.”Magistrale de sistem”
www.software.ucv.ro, „Sisteme distribuite. Definiție și caracteristici”
www.doringrad.3host.ro, „Caracteristicile unui sistem de operare de rețea
www.andrei.clubcisco.ro, „Securitatea sistemelor distribuite”
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Introducere In Siteme Distribuite (ID: 149955)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
