LEKSIONE PER SISTEMET E   SHPERNDARA DHE      PARALELE       Pjesa e Dyte  Sistemet e Shperndara    DEGA INFORMATIKE EKONO...
Table of ContentsHYRJE.......................................................................................................
HYRJESistemet e shperndaraSistemet paralele ishin te nevojshem per te zvogeluar kohen e ekzekutimit ne rastet kur kemi:   ...
Protokollet e komunikimit ne sistemet e shperndaraNe sistemin reference OSI percaktohen protokollet e shtresave te vecanta...
Protokolli i komunikimit midis dy entiteteve percakton dy elemente:   –   radhen e dialogut   –   strukturen e mesazheveSh...
Perdoruesi i jep brouserit URL e objektit te kerkuar. Brouser vecon emrin (ose numrin IP)hostname te serverit (perfshi por...
Formati i mesazhit te pergjigjes eshte i ngjashem me ate te kerkeses:                Pergjigje                            ...
CGI - Common Gateway InterfaceCGI kryen tre funksione, duke mundesuar perdorimin e ciftit brouser ~ ueb-serber si nderfaqe...
Formati i te dhenave eshte:       <parameters> = <variabel>=<vlere>[&<parameters>]Ueb-server i kerkon rezultatet e program...
#include <stdio.h>#include <stdlib.h>     int main(void){     int ch; file *f; char *data; char datafile[256];     data=ge...
PROGRAMIMI ME SOCKETProgramimi me “socket” ka te beje me perdorimin e procedurave te shtreses TCP per komunikimmidis proce...
nepermjet sistemit DNS. Ndersa serveri e gjen numrin IP te klientit ne koken e paketes te pare me tecilen klienti ekrkon h...
Ne menyre te ngjashme akgoritmi perkates per socket TCP ne server eshte:    •   Gjendet                                   ...
Strukturat kryesore jane dy:       struct sockaddr_in             {                 …                 sin_family          ...
Programi minimal Klient#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <net...
Programi minimal Server#include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> void erro...
SISTEMET E SHPERNDARAMe termin “sisteme te shperndara” kuptojme nje bashkesi hardueri dhe softueri te coptuar“shperndare” ...
Keto sisteme te shperndara permbledhin kompjuter, PDA (Personal Device Appliance),       sisteme “embed” te integruar ne p...
Arkitektura e Sistemeve te ShperndaraSistemet e perqendruara karaketrizohen nga perparesi dhe probleme:Perparesi: Thjeshte...
Fig. Arkitekture Sistemi i ShperndareArkitekturat e shperndara ofrojne perparesi:   •   Kapacitet perpunimi i larte – shum...
•   Fshehjen e heterogjenitetit duke ofruar modele programimi uniforme per aplikimet    •   Blloqet per ndertimin e perber...
platforma                          kerkese             Klient                             Server                          ...
•   ballancon ngarkesen ne “ferme / klaster” serverash heterogjene   •   sherben si negociator / broker midis klientit dhe...
Brouser               Agjent Ueb                    Agjent                    Server                                      ...
Nje nga aplikimet negative te ketij koncepti jane krimbat si nje nga mjetet e thyerjes te sigurise tesistemeve informatike...
–    portali ueb server mer kerkesen nga kilenti dhe, duke perdorur CGI        ‐   komunikon me nje server autentikimi per...
Thjeshtezimi qendron ne mosperfshirjen e elementeve si:   –    shkembimi i metadata te serverave midis tyre   –    dallimi...
MBI PROJEKTIMIN E SISTEMEVE TE SHPERNDARAProjektimi i sistemeve te shperndara ka kerkesa shtese, ne krahasim me sistemet e...
‐   njekohshmeri (konkurenca) e proceseve    ‐   shumefishimi (replication) e te dhenave    ‐   identifikimi dhe trajtimi ...
Kuptimi i transaksionitZhvilluesi i nje sistemi te shperndare klient – server duhet te mare parasysh se:   –   mund te mba...
routine). Rendesi ka programimi i TPR-ve ne menyre te tille qe te zvogelohet sa me shume intervalii kohes te bllokimit te ...
SISTEMET GRID DHE CLOUDSistemet grid dhe cloud synojne te ofrojne, nepermjet rrjetit, kapacitete perpunuese ne menyretrans...
Pamja e nje klasteri te tille eshte si ne figure:  WN1                   WN2                   WN3                 WN4    ...
klasterave te ndryshem. BDII mban informacion mbi gjendjen e bashkesise te klasterave, dukendihmuar WN ne shperndarjen e p...
Sistemet CloudSistemet cloud jane nje nivel mbi ato grid dhe ofrojne kapcitete harduer dhe softuer sipas kerkeses,te kapsh...
Upcoming SlideShare
Loading in...5
×

Feco dist sys-2-v1

1,979

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,979
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Feco dist sys-2-v1

  1. 1. LEKSIONE PER SISTEMET E SHPERNDARA DHE PARALELE Pjesa e Dyte Sistemet e Shperndara DEGA INFORMATIKE EKONOMIKE Neki Frasheri Tirane, 2012 1
  2. 2. Table of ContentsHYRJE..................................................................................................................................................3 Sistemet e shperndara......................................................................................................................3 Protokollet e komunikimit ne sistemet e shperndara.......................................................................4 Protokolli HTTP..............................................................................................................................5 CGI - Common Gateway Interface..................................................................................................8PROGRAMIMI ME SOCKET...........................................................................................................11 Kuptimi i Socket............................................................................................................................11 Procedurat e Punes me Socket.......................................................................................................12 Shembull Klient - Server...............................................................................................................14SISTEMET E SHPERNDARA..........................................................................................................17 Karakteristikat e Sistemeve te Shperndara....................................................................................17 Arkitektura e Sistemeve te Shperndara..........................................................................................19 Akritekturat Klient – Server .........................................................................................................21 Modeli Klient – Server Dy Palesh............................................................................................21 Modeli Klient – Server Tre Palesh............................................................................................22 Modeli Klient – Server Kater Palesh........................................................................................23 Modeli Peer – To – Peer ...........................................................................................................24 Agjentet e Levizshem................................................................................................................24 Nderlikueshmeria e Klient – Server..........................................................................................25MBI PROJEKTIMIN E SISTEMEVE TE SHPERNDARA.............................................................28 Sfidat e Sistemeve te Shperndara...................................................................................................28 Kuptimi i transaksionit...................................................................................................................30SISTEMET GRID DHE CLOUD......................................................................................................32 Sistemet Grid.................................................................................................................................32 Sistemet Cloud...............................................................................................................................35 2
  3. 3. HYRJESistemet e shperndaraSistemet paralele ishin te nevojshem per te zvogeluar kohen e ekzekutimit ne rastet kur kemi: – vellim te madh llogaritjesh – vellim te madh te dhenash – vellim te madh kerkesashParalelizimi realizohej duke ndare algoritmin ne copa qe ekzekutoheshin ne nje bashlesiprocesoresh.Sistemet e shperndara jane sisteme te perbere nga copa aplikimesh qe ekzekutohen ne CPU tendryshme te lidhura ne rrjet, tipikisht te shperndara gjeografikisht, per te zgjidhur nje detyre tecaktuar. “paralelizimi” ne kete rast kushtezohet nga ndarja gjeografike. Aplikimet e shperndarapergjithesisht mund te ekzekutohen edhe ne nje CPU te vetme me kusht qe copat e aplikimit tebashkeveprojne nepermjet shtreses TCP te rrjetit.Shembuj tipike: – World Wide Web – sistemi i emrave te Inetrnetit DNS (Domain Name System) – sistemi i postes elektronikeShperndarja gjeografike e copave te aplikimit sjell probleme shtese ne teresine e zhvillimit dheadministrimit te aplikimit. Ne kete kurs do te shikohen: – modele konkrete aplikimesh te shperndara – elemente te programimit te komunikimit ne rrjet – problematika e sistemeve te shperndara – modelet teorike te sistemeve te sheprndara – siguria ne sistemet e shperndara (ne vecanti certifikatat elektronike) 3
  4. 4. Protokollet e komunikimit ne sistemet e shperndaraNe sistemin reference OSI percaktohen protokollet e shtresave te vecanta: Sistemi A komunikim virtual / real Sistemi B Application protokoll aplikimi Application Presentation protokoll prezantimi Presentation Session protokoll sesioni Session Transport protokoll transporti Transport Network protokoll rrjeti Network Data Link protokoll data Data Link Physical protokoll fizik hardueri PhysicalTe dhenat qarkullojne midis shtreses te aplikimit dhe asaj fizike (kjo e fundit realizon transmetimine tyre ne distance) duke kaluar midis shtresave – cdo shtrese perdor procedurat e shtreses semeposhtme per te shkembyer te dhenat. Ne rastin e protokollit dominant ne Internet TCP/IP kemi“shkrirjen” e protokolleve te aplikimit, prezantimit dhe sesionit ne nje te vetme: Sistemi A komunikim virtual / real Sistemi B Application protokoll aplikimi Application Transport TCP protokoll transporti Transport TCP Network IP protokoll rrjeti Network IP Data Link protokoll data Data Link Physical protokoll fizik hardueri PhysicalNe kete kurs vemendja do te perqendrohet ne komunikimet e shtreses te aplikimit. 4
  5. 5. Protokolli i komunikimit midis dy entiteteve percakton dy elemente: – radhen e dialogut – strukturen e mesazheveShembull tipik eshte protokolli HTTP (Hyper Texh Transport Protocol) i komunikimit midisbrouser dhe ueb-server.Protokolli HTTPDialogu midis brouser dhe ueb-server realizohet si cift kerkese-pergjigje:Brouser Ueb-Serverkerkese pergjigjeKerkesa permban adresen e objektit qe kerkohet, dhe ndoshta te dhena qe duhet ti kalohen objektit.Pergjigja permban objektin e kerkoar ose mesazh qe serveri i dergon brouserit (pergjigja mund tejete ne nje ose disa mesazhe)Objektet ne WWW identifikohen me ndimen e URL (Unified Resource Locator): URL = <skema>:<identifikuesi> Skema = <tipi i identifikuesit dhe i protokollit> HTTP ~ path ne server Ueb FTP ~ path ne server FTP FILE ~ path lokal MAILTO ~ adrese email … <tipi i identifikuesit dhe i protokollit> = <adresa e objektit (specifike e skemes)> <skedar> = //<hostname>[:<port>]/<path>[?<query>] <adrese email>= <username>@<hostname> … 5
  6. 6. Perdoruesi i jep brouserit URL e objektit te kerkuar. Brouser vecon emrin (ose numrin IP)hostname te serverit (perfshi port nese eshte specifikuar) dhe e perdor ate per te komunikuar meshtresen TCP, qe kjo e fundit te hape nje kanal komunikimi me aplikimin server. Me hapjen e ketijkanali brouser i dergon serverit kerkesen, ku specifikohet adresa ne server e objektit te kerkuar.Objektet ne server identifikohen nga URI (Unified Resource Identifier): URI = <path>[?<query>] <path> ~ percakton skedarin objekt <query> ~ percakton te dhena qe duhet ti kalohen objektit (nqs. ka)Formati i mesazhit te kerkeses eshte: KERKESA KOMENT<funksioni> <URI> <protokolli>[<header>] Koka e kerkeses[…]<CR><LF> Rrjesht bosh[<trupi kerkeses>] OpsionalKu: <funksioni> = GET ~ kerkese objekti, te dhenat dergohen ne URI POST ~ kerkese objekti, te dhenat dergohen tek <trupi kerkeses> HEAD ~ kerkohet vetem <koka e pergjigjes> <protokolli> = HTTP/1.0 | HTTP/1.1 <header> = <metadata>: <vlere> <metadata> = From | User_Agent | Date | … <vlere> ~ string me format ne varesi te llojit te metadata 6
  7. 7. Formati i mesazhit te pergjigjes eshte i ngjashem me ate te kerkeses: Pergjigje KOMENT<protokolli> <status code>[<header>] Koka e kerkeses[…]<CR><LF> Rrjesht bosh[<trupi kerkeses>] Opsional: objekti i kerkuar ose mesazh HTML i serveritKu: <protokolli> = HTTP/1.0 | HTTP/1.1 <status code> = 1xx ~ information 2xx ~ gjendja e objektit 3xx ~ ridrejtim ne URL tjeter 4xx ~ gabim ne pjesen e klientit 5xx ~ gabim ne server <header> = <metadata>: <vlere> <metadata> = Server | Last­Modified | Content_Type | … <vlere> ~ string me format ne varesi te llojit te metadataDetaje mbi Status Codes (HTTP/1.1) 200 ~ OK 304 ~ Not Modified 404 ~ Not Found 412 ~ Precondition Failed 501 ~ Method Not ImplementedMetadata Content_Type ka rendesi te vecante pasi informon boruserin se ne cfare gjuheprezantimi jane te dhenat qe ndodhen ne trupin e pergjigjes – text/html, text/ascii, …Shembull: telnet www.yahoo.com 80 7
  8. 8. CGI - Common Gateway InterfaceCGI kryen tre funksione, duke mundesuar perdorimin e ciftit brouser ~ ueb-serber si nderfaqesmidis perdoruesit dhe nje programi ne distance.: • Dergimi i parametrave te hyrjes per programin ne server • Ekzekutimi i programit ne server • Marja e daljes te programit nga serveri ne brouser “get /cgi-bin/cgi?<parameters>” BROUSER UEB SERVER Content_Type: … <html> … </html> <parameters> Content_Type: … <html> … /cgi-bin/cgi </html>Ne ueb-server programet duhet te jene ne nje direktori si …/cgi­bin/ , qe percaktohet nekonfigurimin e daemonit httpd.Te dhenat qe duhet te perpunoje programi dergohen nga brouser ne dy menyra: – me kerkesen GET, te dhenat vendosen ne vazhdim te URI te ndare nga kjo e fundit me “?” programi i gjen te dhenat ne stringun e sistemit QUERY_STRING programisti duhet te parashikoje leximin e te dhenave nga ky string – me kerkesen POST, te dhenat vendosen ne trupin e kerkeses programi i gjen te dhenat ne hyrjen standarte stdin programisti duhet te parashikoje leximin e te dhenave nga stdin 8
  9. 9. Formati i te dhenave eshte: <parameters> = <variabel>=<vlere>[&<parameters>]Ueb-server i kerkon rezultatet e programit ne daljen standarte stdout. Dhe ja dergon brouserit pandonje perpunim te vendosura ne trupin e pergjigjes. Programisti duhet te parshikoje rezultatet eprogramit te fillojne me metadata Content_Type, e pasuar nga rrjesht bosh (CR+LF).Kujtese: ne C rrjeshti bosh ne print realizohet me formatin “rn”.Brouser i mer te dhenat nga perdoruesi nepermjet strukturave [Form] te gjuhes HTML: <Form Action=“URL” [Method=“{GET|POST}”> <input name=“...” [size=“_”…] … >  <input name=“...” [type=“submit”…] … > …   </Form>Shembull:Pamja e faqes ne brouser:Kodi HTML: <html> <FORM ACTION="http://127.0.0.1/cgi-bin/view_get.cgi" Method="GET"> File Name <INPUT NAME="filename" SIZE="32" Value="enter file name"> <INPUT TYPE="SUBMIT" VALUE="View"> </FORM> </html>Koka e kerkeses: GET /cgi­bin/view_get.cgi?filename=data.txt HTTP/1.1Gjendja e stringut te sistemit QUERY_STRING ne server: QUERY_STRING = "filename=data.txt"Programi CGI ne gjuhen C: 9
  10. 10. #include <stdio.h>#include <stdlib.h> int main(void){ int ch; file *f; char *data; char datafile[256]; data=getenv("QUERY_STRING"); sscanf(data,"filename=%s",datafile); f = fopen(datafile,"r"); if(f==NULL){ printf("Content-Type:text/html rnrn"); printf("<TITLE>Failure</TITLE>n"); printf("<P><EM>Unable to open data file!</EM>");} else { printf("Content-Type: text/plain rnrn"); while((ch=getc(f)) != EOF) putchar(ch); fclose(f); } return 0;} 10
  11. 11. PROGRAMIMI ME SOCKETProgramimi me “socket” ka te beje me perdorimin e procedurave te shtreses TCP per komunikimmidis proceseve nepermjet rrjetit.Kuptimi i SocketFormalisht “socket” eshte cifti (<numer_IP>, <numer_porte>)ku: <numer_IP> ~ numri IP i nderfaqesit me te cilin hardueri eshte i lidhur ne rrjet <numer_porte> ~ numri i “portes” ne te cilen procesi / aplikimi eshte ne pritje te mare mesazhe nepermjet rrjetit proces aplikim [port_A] [port_B]TCP: TCPderguesi (a1.a2.a3.a4, port_A) derguesi (b1.b2.b3.b4, port_B)marresi (b1.b2.b3.b4, port_B) marresi (a1.a2.a3.a4, port_A) IP: [a1.a2.a3.a4] IP: [b1.b2.b3.b4] Host A Host B NETPa hyre ne detaje, sistemi qe fillon komunikimin eshte “klienti” dhe ai qe pret thirrjen eshte“serveri”. Ne secilin sistem komunikimi behet duke perdorur dy “kanale” per dhenie dhe marje. Tedy aplikimet klient dhe server duhet te perdorin nga nje cift socket per dhenie-marje. Si rregullnumri i portes pritese i serverit eshte i paracaktuar me mareveshje nderkombetare (grupi i pare inumrave ne segmentin [1:65535], shiko skedarin /etc/services) por mund te ripercaktohetnga programisti. Numri i portes pritese te klientit mund te zgjidhet i rastit nder numrat e mbetur nesegmentin [1:65535], automatikisht nga TCP ose i percaktuar nga programisti.Numrat IP si per klientin dhe serverin duhet te jepen nga perdoruesi (klienti) dhe administratori(serveri). Ne rastin e sistemeve me nje nderfaqes rrjeti, TCP mund ta gjeje numrin lokal IP, ndersane sistemet me disa nderfaqes duhet nderhyrja e perdoruesit/administratorit (duke supozuar qe kjomundesi eshte mare ne konsiderate nga programisti). Si rregull klienti mund te dije emrin e domenitte serverit, dhe programisti i aplikimit klient duhet te parashikoje gjetjen e numrit IP nga emri 11
  12. 12. nepermjet sistemit DNS. Ndersa serveri e gjen numrin IP te klientit ne koken e paketes te pare me tecilen klienti ekrkon hapjen e sesionit te komunikimit me serverin.Puna me socket eshte e ngjashme me punen me skedaret – si rregull per komunikimin me periferiketsistemi i shfrytezimit perdor te njejten logjike. Behet fjale per: – gjetje te numrit IP nga emri i domenit (nese duhet) – hapje te socket – lexim (marrje) dhe / ose shkrim (dergim) ne socket – mbyllje te socketduke perdorur strukturat e te dhenave qe disponon TCP per kete qellim.Ne protokollin TCP/IP jane percaktuar disa lloje socket: • Stream – protokolli TCP standard • Datagram – protokolli UDP i thjeshtezuar • Raw – raw data transfer over IP • Unicast – destination i vetem – IP = A.B.C.D • Multicast – grup destinacion – IP = 224.x.x.x • Broadcast – direkt lokal – IP = x.x.x.255 • Loopback – loopback – IP = 127.x.x.xProcedurat e Punes me SocketAlgoritmi principal per punen me socket TCP ne klient eshte: • Gjendet KLIENTI ◦ Adresa IP e serverit ◦ Numri i portes te aplikimit ne server • Krijohet kopje e TCP socket e serverit kopje socket • Lidhet [connect] socket me serverin server ◦ Serveri duhet te jete ne degjim socket • Send / Receive me server socket lokale • Mbyllet lidhja connect server 12
  13. 13. Ne menyre te ngjashme akgoritmi perkates per socket TCP ne server eshte: • Gjendet Server ◦ Adresa IP e serverit ◦ Numri i portes te aplikimit ne server • Krijohet socket TCP e serverit • Lidhet [bind] socket e serverit me TCP socket server • Kalohet ne pritje degjimi (listen) kopje bind • Pranohet lidhja [connect] nga klienti socket klient • Merret kopje e socket te klientit • Send / Receive data me socket klient connect • Mbyllet lidhja me klientin klientiProcedurat kryesore TCP qe perdoren ne aplikimin klient jane: • Krijohet socket ~ int socket()  • Lidhet socket me serverin ~ connect()  • Send / receive data ~ send() / recv() • Mbyllet socket ~ close() Procedurat kryesore TCP qe perdoren ne aplikimin server jane: • Krijohet socket ~ int socket()  • Lidhet socket me serverin ~ bind()  • Kalohet ne regjim degjimi ~ listen()  • Pranohet lidhja me klientin ~ accept()  • Send / receive data ~ send() / recv() • Mbyllet socket ~ close() Strukturat e te dhenave qe perdor TCP jane te percaktuara ne headers: #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h>  13
  14. 14. Strukturat kryesore jane dy: struct sockaddr_in  { … sin_family  ~ AF_INET, …  sin_addr.s_addr  ~ INADDR_ANY, …  sin_port ~ <numer porte> …  }     struct hostent  { …    h_addr ~ <numer IP> h_length ~ <gjatesi numri IP> …  }Shembull: Klient – server minimal me perdorimin e socket TCP.Disa specifikime mbi programin: • Klienti ◦ Ekzekutohet <klient> <host> <port> ◦ Hap socket me serverin ◦ Kap mesazhin nga tastiera dhe e dergon ◦ Pret pergjigje nga serveri ◦ Fund • Serveri ◦ Ekzekutohet <server> <port> ◦ Krijon socket te serverit ◦ Kalon ne gjendje “listen” ◦ Pranon mesah nga klienti dhe e afishon ◦ Dergon pergjigje klientit ◦ FundShembull Klient - ServerKodi ne gjuhen C (sistem Linux) per aplikimin klient dhe server eshte si me poshte: 14
  15. 15. Programi minimal Klient#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <netdb.h> void error (char *msg) { perror(msg); exit(1); }int main (int argc, char *argv[ ]) {  struct sockaddr_in serv_addr;     struct hostent *server;     int sockfd, portno, rc;     char buffer[256];     if (argc<3) { printf("usage %s host portn",argv[0]); exit(0); }/* krijohet kopje e socket te serverit */ sockfd=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);     if (sockfd<0) error("ERROR opening socket"); /* inicializohet kopje e socket te serverit */ // gjendet IP e serverit dhe numri portes server = gethostbyname(argv[1]);  portno = atoi(argv[2]);  if (server==NULL) error("ERROR host not foundn"); serv_addr.sin_family = AF_INET;     serv_addr.sin_port = htons(portno);     // kopjohet struktura bcopy(  (char *)  server­>h_addr,  (char *) &serv_addr.sin_addr.s_addr,  server­>h_length );/* lidhet socket me serverin ~ socket lokale automatike */ if (connect(sockfd, &serv_addr, sizeof(serv_addr)) < 0)   error("ERROR while connecting");   else printf(“Server connectedn”); /* get & send message ne socket te serverit */ // merret mesazhi nga tastiera dhe dergohet fgets(buffer,255,stdin);     rc = send(sockfd,buffer,strlen(buffer),0);     if (rc < 0) error("ERROR writing to socket");  /* receive & print message ne socket te serverit */ rc = recv(sockfd,buffer,255,0);     if (rc < 0)  error("ERROR reading from socket");     printf("%sn",buffer);  /* mbyllet socket */ close(sockfd);   return 0;} 15
  16. 16. Programi minimal Server#include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> void error(char *msg){    perror(msg);    exit(1);}int main(int argc, char *argv[]){     int sockfd, newsockfd, portno, clilen, rc;  struct sockaddr_in serv_addr, cli_addr;  char buffer[256];  if (argc<2) { printf("usage %s portn",argv[0]); exit(0); }/* krijohet socket e serverit */ sockfd = socket(AF_INET, SOCK_STREAM, 0);  if (sockfd < 0) error("ERROR opening socket"); /* inicializohet socket e serverit */ portno = atoi(argv[1]);  serv_addr.sin_family = AF_INET;  serv_addr.sin_addr.s_addr = INADDR_ANY;  serv_addr.sin_port = htons(portno); /* lidhet socket me protokollin TCP */ if ( bind( sockfd,  (struct sockaddr *) &serv_addr, sizeof(serv_addr)     ) < 0) error("ERROR on binding"); /* regjim degjimi ne socket te serverit */ listen(sockfd,5); /* pritet kerkesa e klientit & lidhet socket e serverit me kopjen e socket te klientit */ clilen = sizeof(cli_addr);  newsockfd = accept( sockfd,  (struct sockaddr *) &cli_addr, &clilen   );  if (newsockfd < 0) error("ERROR cannot accept"); /* receive & print message */ n = recv(newsockfd,buffer,255,0);  if (n < 0) error("ERROR reading from socket");  printf("Here is the message: %sn",buffer); /* send message */ n = send(newsockfd,"I got your message",18,0);  if (n < 0) error("ERROR writing to socket");/* mbyllen socket */ close(newsockfd); close(sockfd);  return 0; } 16
  17. 17. SISTEMET E SHPERNDARAMe termin “sisteme te shperndara” kuptojme nje bashkesi hardueri dhe softueri te coptuar“shperndare” gjeografikisht por qe punon si nje e vetme per zgjidhjen e nje detyre te caktuar. Nekete kuptim kompjuterat e lidhur ne nje rrjet perbejne nje sistem hardueri te shperndare, nje ueb-brouser dhe brouserat qe komunikojne me te perbejne nje sistem softueri te shperndare, nje mailserver dhe klientet qe komunikojne me te perbejne nje sistem te shperndare, etj. Me poshte do teperqendrohemi ne sistemet softuer te shperndare, e thene ndryshe aplikimet e shkerndara.Sistemt paralele te trajtuara ne pejsen e pare te kursit perbejne nje rast te vecante te sistemeve teshperndara.Synimi i ndertimit te sistemeve te sheprndara ka te beje me ceshtje si: – realiteti fizik “i shperndare” i veprimtarise njerezore ‐ kudo ndodhja e paisjeve qe komunikojne me njera tjetren ‐ puna ne ekipe te shperndara gjeografikisht ‐ nevoja e kapjes te burimeve informatike ne distance – shfrytezimi i burimeve kompjuterike te shperndara / ndarja e burimeve ‐ ulja e kostos te sistemeve informatike ‐ rritja e efektivitetit te kapaciteteve informatikeKarakteristikat e Sistemeve te ShperndaraNe varesi te platformes harduer dallohen disa grupe sistemesh te shperndara: – Sistemet e bazuara ne rrjetat kabllore (baker, optike, radio-rele) Perberesit e ketyre sistemeve jane te palevizshem, dhe si te tille relativisht te parashikueshem. Topologjia e rrjetit eshte e pa ndryshueshme. – Sistemet e bazuara ne teknologjite pa tel Perberesit e ketyre sistemeve jane te levizshem, dhe te pa parashikueshem. Topologjia e rrjetit mund te ndryshoje (kercimi i nje klienti nga nje pike aksesi tek tjetra). Ketu futen sistemet e bazuara ne WiFi, telefoni celulare dhe bluetooth. – Sistemet “ubiquous”11 Ubiquitous computing (ubicomp) is a post-desktop model of human-computer interaction in which information processing has been thoroughly integrated into everyday objects and activities. This paradigm is also described as pervasive computing, ambient intelligence, everyware. When primarily concerning the objects involved, it is also physical computing, the Internet of Things, haptic computing, and things that think ... [wikipedia.org/wiki/Ubiquitous_computing] 17
  18. 18. Keto sisteme te shperndara permbledhin kompjuter, PDA (Personal Device Appliance), sisteme “embed” te integruar ne paisje nga me te ndryshmet, te cilet kudo-ndodhen, levizin dhe komunikojne midis tyre.Ne Internet funksionojne shume sisteme te shperndara, si me tipiket mund te permenden: – Sistemi i emrave te domeneve DNS, qe “lidh” numrat IP me emrat perkates te kompjuterave ne Internet. Sistemi i emrave te Internetit eshte organizuar ne forme peme (Fig.) dhe DNS funksionon si nje “numrator” i shperndare, ne parim nje server i vecante per cdo nyje ndermjetese te pemes: ICANN .gov .com .org .al .bg .gr yahoo.com google.com upt.al gov.al mail.yahoo.com www.yahoo.com fti.upt.al complab.upt.al – Sistemi i postes elektronike server klient INTERNET klient server – WWW ~ World Wide Web ... Tim Berners-Lee, CERN 1989, konsorciumi W3 (www.w3.org) – Sherbimet si Yahoo, Google, Twitter, Facebook, Linkedin jane sisteme te shperndara qe ngrihen mbi WWW (i bashkuar me sisteme bazash te dhenash) 18
  19. 19. Arkitektura e Sistemeve te ShperndaraSistemet e perqendruara karaketrizohen nga perparesi dhe probleme:Perparesi: Thjeshtesi / Qendrueshmeri / OptimizimProbleme: Mbrojtja e hapesires te adresimit / Kapacitet perpunimi i ulet / Kerkesa per kontakt fizik.Pjeserisht keto probleme jane trajtuar nga Programimi i Orientuar Objekt, ndertimi i CPU multi-procesor dhe multi-core, dhe rrjetat. Sistemet e shperndara synojne te plotesojne zgjidhjen e ketyreproblemeve duke ofruar izolime te hapesirave te adresimit, kapacitete perpunimi te larta dheshmangie e kerkeses per kontakte fizike. Sistemet e shperndara i vene ne dispozicion perdoruesit tedhena dhe kapacitete qe ndodhen gjeografikisht larg. Ne kushtet e Internetit keto burime jane neparim te pakufizuara. Procedura A Procedura B Procedura C Te Dhena Te Dhena Te Dhena Private Private Private Te Dhena Globale Fig. Arkitekture Sistemi i Perqendruar Programi B Te Dhena Private Programi A Programi C Te Dhena Private RRJET Te Dhena Private Te Dhena Globale (network file system) 19
  20. 20. Fig. Arkitekture Sistemi i ShperndareArkitekturat e shperndara ofrojne perparesi: • Kapacitet perpunimi i larte – shume CPU • Zgjerueshmeri – lehtesia e shtimit te CPU • Mbrojtje e hapesires te adresimit nje platforma te vecanta • Kapje nepermjet rrjetit – pa kontakt fizik me serverat • Funksionim ne mjedise heterogjenedhe njekohesisht probleme: • Kompleksiteti i programimit ◦ Komunikimi midis programeve ◦ Formatet e te dhenave ◦ Protokollet e komunikimit ◦ Sinkronizimi i proceseve • Qendrueshmeria ◦ Nje pjese e sistemit mund te dale nga puna pa u vene re • Optimizimi ◦ Mungon vizioni global mbi sisteminRealizimi i sistemeve te shperndara behet nepermjet plotesimit te Sistemit te Shfrytezimit me“midleuerin” (middleware): Aplikime Niveli / kerkesat e perdoruesit Middleueri Niveli / specifikat e sistemit te shperndare Sistemi Shfrytezimit Platforma heterogjene [i rrjetit] Hardueri Fig. Roli i Midleuerit ne Sistemet e ShperndaraMiddleueri siguron: 20
  21. 21. • Fshehjen e heterogjenitetit duke ofruar modele programimi uniforme per aplikimet • Blloqet per ndertimin e perberesve te sistemit te shperndare • Abstragimin e proceseve te komunikimit midis aplikimeve • Shembuj standardesh: SUN RPC, CORBA, Java RMI, etj.Aplikimi mbetet programi specifik i perdoruesit dhe realizohet si nje bashkesi procesesh qeekzekutohen ne makina te ndryshme: procese klient, procese server, dhe procese peer.Akritekturat Klient – ServerModelimi i sistemeve te shperndara behet me ndihmen e ciftit klient – server. Rasti me i thjeshte inje sistemi te shperndare eshte ai i perbere nga dy procese qe mund te eksekutohen ne makina tevecanta, njeri nga proceset – klienti – ben nje kerkese dhe procesi tjeter – serveri – i pergjigjetkerkeses te klientit.Duhet theksuar se cifti klient – server mund te funksionoje dhe brenda nje makine (pra pa qenegjeografikisht i shperndare), me kusht qe komunikimi midis tyre te behet nepermjet sistemit teshfrytezimit te rrjetit (TCP/IP). Shembull – Apache dhe Firefox ne nje PC duke perdorur si URLhttp://127.0.0.1/... Nje aplikim i projektuar dhe realizuar si i shperndare mund te funksionoje si itille dhe brenda nje makine.Dallohen dy tipe arkitekturash klient – server: • Klasike klient server – Asimetrike – Serveri i percaktuar • Peer-to-peer (p2p) – Simetrike – Cdo nyje punon si klient dhe serverModeli Klient – Server Dy PaleshModeli klient – server dy palesh (2-tier) permban nje server dhe disa kliente: 21
  22. 22. platforma kerkese Klient Server Procesi middleue r pergjigje Klient ServerNe kete model kemi komunikim direkt midis klientit dhe serverit. Modeli rezulton i pershtatshemper numer te vogel klientesh (50-100 kliente njekohesisht), duke patur problem zgjerueshmerine.Dallohen dy nenlloje te ketij modeli: • Klienti i “trashe” & serveri i “holle” (fat/thin) ◦ Klienti = UI + llogjika ◦ Serveri = te dhenat • Klienti i “holle” & serveri i “trashe” ◦ Klienti = UI ◦ Serveri = llogjika + te dhenatVeshtiresia e zgjerimit te ketij modeli eshte tejkaluar duke perdorur modele klient – server mekomplekse.Modeli Klient – Server Tre PaleshModeli klient – server tre palesh perfshin dhe nje “Agjent” midis klientit dhe serverit. Roli i ketijagjenti mund te jete: • Filter i trafikut (per rritjen e sigurise) • Ballancues i ngarkeses (mundeson shperndarjen e kerkeses midis disa serverave) • Sherbime inteligjente (autentikim, perpunime te dhenash etj.)Shembull – sistemet proxy, ku agjenti 22
  23. 23. • ballancon ngarkesen ne “ferme / klaster” serverash heterogjene • sherben si negociator / broker midis klientit dhe bashkesise te serverave heterogjene Faqe statike html http sql Server Web Brouser baze te Server Te dhena dhenash html dinamike tier1 tier2 tier3Rast i vesante i sistemeve tre palesh eshte agjenti proxy, roli i te cilit eshte ndermjetesimi midisbrouserit dhe uebserverit, duke mbajtur nje “baze te dhenash [cache]” me faqet e kerkuara, per teshmangur ringarkimin e tyre nga Interneti: Klient Server cache Server Klient PROXY cache Server Server Klient cache ServerModeli Klient – Server Kater PaleshNe modelet kater – palesh gjenden dy agjente, roli i te cileve mund te jete: • Agjent Ueb: trajton prezantimin e te dhenave • Agjent komponent: trajton llogjiken e aplikimitSistemet per e-biznes jane, zakonisht, kater – palesh: 23
  24. 24. Brouser Agjent Ueb Agjent Server komponent User tier1 Prezantim Aplikim tier3 Te dhena tier2 tier4Komunikimi midis brouserit dhe agjentit ueb ne kete rast duhet te jete i sigurte, dhe ky i funditduhet te trajtoje dhe autentikimin.Modeli Peer – To – PeerNe kete model cdo njesi perberese e sistemit funksionon edhe si klient edhe si server: Objekte te ndashemNe fakt kemi te bejme me disa procese ne cdo njesi: server Peer 1 RRJETI Klient Peer 1 server KlientSistemet peer-2-peer perdoren shume per ndarjen e skedareve. Realizimi i ketij funskionalitetikerkon qe brenda komunitetit te peers te qarkulloje informacion se ku ndodhen skedaret, gje qerealizohet duke perfshire ne sistem nje “indeksues [broker]”, nje server te vecante qe ndihmonpeers te gjejne vendndodhjen e skedareve dhe te hapin sesionet e komunikimit midis tyre (kjo efundit kur peers perdorin adresa IP private).Agjentet e LevizshemModeli i agjenteve te levizshem perben nje vecanti ne kompleksin e modeleve te sistemeve tesheprndara. Agjentet e levizshem jane kode qe nga nje njesi e sistemit te shprendare transferohendhe ekzekutohen ne nje njesi tjeter. Si shembull mund te eprmenden kodet ne Java Script ose JavaApplet qe dergohen nga ueb server per tu ekzekutuar ne brouser. Interesi i perdorimit te agjenteve televizshem mund te qendroje ne optimizimin e funskionimit te sistemit te shperndare, por mbart mevete kompleksitetin e kontrollit dhe te sigurise 24
  25. 25. Nje nga aplikimet negative te ketij koncepti jane krimbat si nje nga mjetet e thyerjes te sigurise tesistemeve informatike (krahaso: viruset – aktivizohen kur perdoruesi ekzekuton kodin e infektuar;krimbat futen ne nje sistem duke shfrytezuar sherbimet e pambrojtura te ketij sistemi pa nderhyrjene perdoruesit). Shembull – krimbi i Internetit i Robert Morris Jr. ne 1988[wikipedia.org/wiki/Morris_worm].Nderlikueshmeria e Klient – ServerAplikimet e shperndara mund te realizojne funksione teper komplekse duke kryer nje numer temadh dialogesh midis tyre. Per thejshtesimin e konceptimit te sistemit eshte e nevojshme qebashkesia e komunikimeve midis proceseve perberes te aplikimit, qe mund te ekzekutohen nemakina te ndryshme, te coptohet ne cifte elementare klient – server. Ky coptim do te ndihmonteprogramistin ne perdorimin e socket gjate zhvillimit dhe testimit te aplikimit. Coptimi ikomunikimit midis perberesve te nje aplikimi ne cifte elementare klient – server behet dukesaktesuar protokollin e komunikimit me perdorimin e dy perberesve – kerkese dhe pergjigje.Si rregull, nje cift elementar klient – server nenkupton nje kerkese dhe nje pergjigje, por ne raste tevecanta ose kerkesa ose pergjigja edhe mund te mungojne. Per te qartesuar problemin duhet temeren parasysh tre nivele te protokollit te komunikimit midis perberesve te sistemit te shperndare,ne nivelet e ndryshme dy palet komunikuese mund te ndrojne rolet:: – niveli i perdoruesit klient ===> server – niveli i aplikimit server <=== klient – niveli TCP klient ===> serverKu: • perdoruesi i kerkon serverit realizimin e nje detyre • serveri i kerkon klientit te autentikohet (ndrojne rolet) • sesionin e komunikimit e hap klienti (ndrojne rolet) ◦ ne kete sesion: kush dergon mesazh dhe kush duhet te pergjigjet ???Shembull:Kerkohet ndertimi i nje sistemi te shperndare ku (protokolli i perdoruesit): – persoruesi kerkon te kape nje baze te dhenash ‐ perdor aplikimin klient (jo brouser) ‐ dergon kerkesen ne portal (ueb server) 25
  26. 26. – portali ueb server mer kerkesen nga kilenti dhe, duke perdorur CGI ‐ komunikon me nje server autentikimi per verifikimin e perdoruesit, ‐ nese autentikimi eshte pozitive dergon kerkesen bazes te te dhenave ‐ i kthen pergjigjen brouserit (negative ose plotesim kerkese)Skema e komunikimit eshte si ne figure: s. autentikimi 2 1 3 brouser ueb server 6 5 4 s. databaseNe baze te protokollit te perdoruesit percaktohen detajet e protokolleve ne nivel aplikimi (zgjidhjanuk eshte e vetme). Protokollet e komunikimit ne nivel aplikimi, te thjeshtezuar, mund te ishin: Nr. klienti ueb server s. autentikimi s. baze te dhenash protokolli klient – usebserver protokolli uebserver s.autentikimi protokolli uebserver s. baze te dhenash connect listen 1 send (msg.1) recv (msg.1) recv (...) connect listen 2 send (msg.2) recv (msg.2) recv (msg.3) send (msg.3) 3 close close check (msg.3) negative? positive? connect listen 4 send recv (msg.4) (msg.4) recv send (msg.5) 5 (msg.5) close close recv (msg.7) send (msg.7) 6 close close 26
  27. 27. Thjeshtezimi qendron ne mosperfshirjen e elementeve si: – shkembimi i metadata te serverave midis tyre – dallimi midis nen-versioneve te mesazheve – shkembimi i metadata te protokolleve – shkembimi i metadata te sesioneve – autentikimi midis serverave – perdorimi i multi - thread – perdorimi i kriptografise – etj.Formati i mesazheve mund te percaktohet si me poshte ((i thjeshtezuar, ne varesi te kerkesave tedetyres dhe specifikimit te protokolleve): msg.# emri i fushes tipi gjatesia koment user_name string 16 kerkesa e klientit per 1 pass_string string 32 ueb serverin query_string string 256 user_name string 16 kerkesa e ueb 2 serverit per pass_string string 32 autentikim rezultati i 3 user_rights string 32 autentikimit user_rights string 32 kerkesa per 4 databazen query_string string 256 5 answer_string string 256 pergjigja e databazes 6 answer_string string 256 pergjigja per klientinBazuar ne formatet e mesazheve dhe detajet e protokolleve mund te kryhet programimi i klientitdhe serverave. 27
  28. 28. MBI PROJEKTIMIN E SISTEMEVE TE SHPERNDARAProjektimi i sistemeve te shperndara ka kerkesa shtese, ne krahasim me sistemet e perqendruara.Sfidat e Sistemeve te ShperndaraNe sfidat e te qenurit i shperndare mund te futen: – Heterogjeniteti ‐ teknologjia dhe topologjia e rrjetave ‐ ndryshimet ne perberesit e harduerit ‐ ndryshimet ne perberesit e softuerit ‐ ndryshimet ne sistemet e operimit / gjuhet e programimit ‐ perdoruesit (edukimi / kultura / mentaliteti) ‐ roli i middleware (shtrese softueri midis sistemit dhe aplikimeve per model uniform programimi dhe fshehjen e heterogjeniteteve) – Hapja (sistemi eshte i hapur kur eshte e mundur te ndryshohet dhe zgjerohet nga kushdo) ‐ shkalla e hapjes percaktohet nga lehtesia per shtimin e perberesve te rinj ‐ hapja e sistemit behet duke publikuar specifikimet e nderfaqesve (formati i mesazheve dhe protokollet e dialogut) Shembull – protokolli SMTP: >>> MAIL from: <sender@sender> <<< 250 2.1.0 <sender@sender>... Sender ok >>> RCPT To:<receiver@receiver> <<< 250 2.1.5 < receiver@receiver>... Recipient ok >>> DATA <<< 554 5.7.1 Bounce address not SRS signed! >>> QUIT ‐ problem perben nderfaqimi i perberesve te zhvilluar nga persona te ndryshem – Zgjerueshmeria (ruajtja e efektivitetit kur rritet vellimi i burimeve dhe/ose i perdoruesve) ‐ sistemi duhet konceptuar i tille qe te lehtesoje zgjerimin e kapaciteteve ‐ duhet parandalimi i “shterimit” te burimeve ‐ duhet parandalimi i dukurise “gryka e shishes” (bottleneck) ‐ duhet mbajtja nen kontroll e humbjes te performances ‐ duhet mbajtja nen kontroll e kostos te burimeve fizike – Transparenca (fshehja e perberesve te vecante duke krijuar pershtypjen e nje sistemi unik) ‐ menyrat e kapjes te burimeve ‐ vendodhja dhe / ose levizshmeria e burimeve 28
  29. 29. ‐ njekohshmeri (konkurenca) e proceseve ‐ shumefishimi (replication) e te dhenave ‐ identifikimi dhe trajtimi i problemeve ‐ levizshmeria e perberesve te sistemit ‐ ndikimi i performances te sistemit ‐ zgjerueshmeria e sistemit– Konkurenca ne kapjen e burimeve te perbashketa ‐ problemi klasik i sistemeve te operimit te para ne nje mjedis te ri te shperndare ‐ koncepti i transaksionit per shmangien e bllokimeve ‐ ekzekutimi paralel ne mjedis te shperndare ‐ shkembimi i informacionit dhe i mesazheve (MPI) ‐ ndarja e skedareve– Trajtimi i problemeve dhe veshtiresite ne sistemet e shperndara ‐ copezimi i perberesve te sistemit ‐ pavaresia teknike dhe administrative e perberesve ‐ teknikat e trajtimit te problemeve per perberes te ndryshem ‐ detektimi i problemeve ne distance ‐ maskimi i problemeve per transparence ‐ tolerimi i problemeve per shmangien e ndalimeve ‐ riaftesimi i funksionaliteteve / perberesve te sistemit ‐ perdorimi i “bollekut” (redundancy) per trajtimi e problemeve– Siguria ‐ siguria midis sistemeve ‐ siguria midis perdoruesve ‐ siguria e burimeve (kosto, integriteti, besueshmeria) ‐ realizimi i sigurise (kriptografia, verifikimi i identitetit (authentication))– Mekanizmat e Sigurise ‐ kriptimi i mesazheve ‐ algoritmat e njeanshem (pa dekriptim) ‐ sistemet e kriptimit me ciftin e celesave privat & publik ‐ identifikimi me <perdorues> & <fjalekalimi> dhe certifikata elektronike ‐ probleme (sulmet per mohim sherbimi (DoS), siguria ne sistemet e levizshem) ‐ shembull: EDUROAM – sistemi i identifikimit per sistemin akademik pan-evropian 29
  30. 30. Kuptimi i transaksionitZhvilluesi i nje sistemi te shperndare klient – server duhet te mare parasysh se: – mund te mbahet ne kontroll funksionimi i serverit, por – nuk mund te kontrollohen ‐ veprimet e klientit ‐ qarkullimi i te dhenave ne rrjet Client ServiceNe keto kushte duhen ritheksuar problemet: – Toleranca ‐ Veprimet jo te rregullta te perdoruesit ‐ Deshtimi i protokolleve te lomunikimit – Siguria ‐ Veprimet jo te rregullta te perdoruesit ‐ Nderhyrjet ne linjat e komunikimit ‐ Deshtimet (injorimi dhe / ose rimarja)Konceptimi i struktures te ”transaksionit” ka te beje me shmagjen e bllokimit te burimeve ne servergjate shftytezimit te tyre nga klienti. Burimet ne server kapen dhe lirohen sipas kerkesave teperdoruesit: lock TPR Client Service Resource TPR unlockNe protokollin e dialogut midis klientit dhe serverit dallohen ciftet elementare kerkese – pergjigje,qe ne rastin tone realizohen nga proceduratt e njohutra me emrin TPR (transaction processing 30
  31. 31. routine). Rendesi ka programimi i TPR-ve ne menyre te tille qe te zvogelohet sa me shume intervalii kohes te bllokimit te burimit: lock TP R unlock Client Service Resource lock TP R unlockRendesi ka gjithashtu rimarja ne rast problemesh ne anen e klientit. Perdorimi i timer per te maturkohen e reagimit te klientit dhe per te nderprere transaksionin ne rast tej-vonese eshte vendimtar pordhe problematik per shmangien e humbjes te punes te realizuar deri ne momentin e shfaqjes tevonesave dhe gabimeve. Per kete qellim perdoren “pikat e rimarjes” (checkpoint) ne fillim dhe fundte TPR (atje ku eshte e mundshme): Client Service TPR R Checkpoint A I Checkpoint B M TPR A R Checkpoint C J ABORT E TPRPika e rimarjes perfaqeson evndin ne program ku gjendja e variablave kritike regjistrohet ne njeskedar historik, qe mund te elxohet ne rast perseritjeje te programit per te shmangur rifillimin epunes nga e para. Duhet kujtuar se perdorimi i pikave te rimarjes keshillohet pergjithesisht peraplikimet komplekse dhe jo vetem ne sistemet e shperndara. 31
  32. 32. SISTEMET GRID DHE CLOUDSistemet grid dhe cloud synojne te ofrojne, nepermjet rrjetit, kapacitete perpunuese ne menyretransparente per perdoruesit. Vete termi “grid” eshte nga rrjetat e shperndarjes te energjise elektrike,ku perdoruesi mer energji nepermjet nje prize pa u interesuar per burimin e energjise dhe rruget esaj. Grid doli si zgjidhje e perballimit te kerkesave per kapacitete te larta perpunuese me ndihmen eshume kompjuterave te lidhur ne rrjet (cluster), tipike per komunitetet shkencore. Cloud perben njenivel me te larte te konceptit – ofrimin e harduerit dhe softuerit si sherbim.Sistemet GridRasti me i thjeshte i sistemeve grid eshte klasteri (cluster) me PC ne nje rrjet lokal. Problemetllogaritese qe mund te paralelizohen mund te “coptohen” dhe copat te ekzekutohen ne PC tevecanta, me pas copat e rezultateve integrohen ne nje. Paralelizmi mund te behet ne shume menyra(kur eshte e mundur, ne varesi te natyres te problemit): – coptimi i te dhenave dhe perpunimi ne menyre te pavarur i tyre ne PC te vecanta – coptimi i algoritmit ne copa te pavarura dhe ekzekutimi i tyre ne PC te vecanta – “klonimi” i algoritmit ne procese paralele qe nder-komunikojme me MPICoptimi i detyres llogaritese ne copa te pavarura ne PC te ndryshme mund te behet manualisht ose iautomatizuar me ndihmen e nje midleueri (middleware), si GLOBUS dhe CONDOR.Roli i midleuerit eshte ndarja e detyres ne copa sipas specifikimeve te perdoruesit ne PC te vecantadhe integrimi me pas i rezultateve. Sepcifikimi i ndarjes te detyres ne copa behet nepermjet gjuheveJDL (Job Description Language).Perberesit tipike te middleuerit ne nje klaster jane: – nderfaqesi i perdoruesit (UI – User Interface), me komandat e gjuhes JDL – nyjet e punes (WN – Work Nodes), PC ne rrjetin lokal qe kryejne detyrat llogaritese – manaxheri / dispeceri i puneve (CE – Computer Element), qe monitoron WN dhe ndan detyrat llogaritese – kujtesa e jashtme e perbashket (SE – Storage Element), e realizuar nepermjet sistemit te skedareve te ndare ne rrjet (NFS – Network File System), qe u ofron tere nyjeve te klasterit nje hapesire disku te perbashket – monitoruesi (MON), qe mban nen vezhgim dhe regjistron punen e nyjeve te klasterit. – Eventualisht modulet e MPI per komunikimin midis proceseve ne rrjet lokal 32
  33. 33. Pamja e nje klasteri te tille eshte si ne figure: WN1 WN2 WN3 WN4 WN5 UI MON CE SENe shume raste rrjeti i nje organizate konfigurohet ne menyre te tille qe gjate dites te punoje neregjim te zakonshem, ndersa gjate nates te punoje si grid.Ne menyre qe PC e ndryshme et mund te komunikojne me njera tjetren pa nderhyrjen e perdoruesit(transferime skedaresh dhe ekzekutime programesh), mund te jete e nevojshme te rregullohet skemae mbrojtjes e rrjetit ne menyre te pershtatshme, ne varesi te llojit te midleuerit qe perdoret, pershembull: – Ne mjediset Linux perdoret ssh dhe scp per komunikim te sigurte me fjale kalimi. Ne rastin konkret per hir te automatizimit duhet qe komunikimi te behet pa fjale kalimi, cka kerkon rikonfigurimin e sistemit ssh / scp (ssh passwordless authentication) – Makinat me detyra kritike (CE, SE, MON, UI) mund te paisen me certifikata elektronike per te njohur njera tjetren. Ne keto raste cifti i celsit privat / publik regjistrohet ne direktorine perkatese, celsi privat i pa kriptuar ndersa ai publik ne formen e certifikates.Ne kuadrin e bashkepunimit midis organizatave te ndryshme, vecanerisht ne mjediset universitaredhe shkencore, perfshihet dhe perdorimi reciprok i kapaciteteve perpunuese te sistemeveinformatike – klasterave. Kjo presupozon qe secila organizate te kete sistemin grid lokal, dhe ketosisteme te vecanta grid integrohen ne nje sistem grid nder-institucional, qe mund te zgejrohet neshkalle kombetare ne “grid kombetar”, dhe me tej ne “grid nderkombetar”.Kritike ne realizimin e nje sistemi shume-grid eshte qenia e disa funksioneve te perqendruara: – manaxheri / dispeceri i puneve (WM – Work Manager) – baza e te dhenave informative (BDII – Berkeley Database Information Index) – monitoruesi / kontabilizuesi (MON) – Autoriteti i certifikatave elektronike (CA – Certificate Authority)Roli i manaxherit te puneve eshte i ngjashem me ate te CE, dallimi konsiston ne faktin qe CEkomunikon me WN brenda klasterit, ndersa WM komunikon nepermjet Internetit me CE dhe SE e 33
  34. 34. klasterave te ndryshem. BDII mban informacion mbi gjendjen e bashkesise te klasterave, dukendihmuar WN ne shperndarjen e puneve ne klastera te vecante. Monitoruesi regjistron kohen epunes dhe perdorimin e burimeve te klasterave, per te mundesuar edhe faturimin e shpenzimeve kurkjo gje zbatohet). Komunikimi midis WM – CE – SE – MON – BDII mbahet i sigurte nepermjetcertifikatave elektronike. Roli i CA nuk eshte vetem regjistrimi i certifikatave, por dhe shperndarjaperiodikisht e certifikatave te zhvleresuara (CRL – Certificate Revocation List). MON BDII WM CA INTERNET CE SE MON CE SE MON WN ... WN ... CE SE MON CE SE MON WN ... WN ...Ekzistojne shume lloje midleueri per sisteme grid me shume klastera dhe emertimi i nyjeve mund tendryshoje ne rastet e ndryshme.Aktualisht ne Evrope fondacioni EGI (European Grid Initiative – http://www.egi.eu/) administronprojektin evropian EGI-InSPIRE (Integrated Sustainable Pan-European Infrastructure forResearchers in Europe) qe mundeson lidhjen e sistemeve grid kerkimore kombetare ne nje grid pan-evropian duke perdorur midleuerin EMI (European Middleware Initiative – http://www.eu-emi.eu/). 34
  35. 35. Sistemet CloudSistemet cloud jane nje nivel mbi ato grid dhe ofrojne kapcitete harduer dhe softuer sipas kerkeses,te kapshme nepermjet Internetit. Prej shume vitesh kompani si Google dhe Yahoo kane ofruarkapacitete per posten elektronike, perdoruesi mer sherbimin pa e ditur ne ke server konkret ndodhente dhenat. Ky koncept eshte zgjeruar duke ofruar mjedise pune te tipit “Office”, dhe me tej akomaduke ofruar “harduer” ku perdoruesi mund te instaloje sistemet e veta.Fizikisht cloud eshte nje klaster qe administrohet nga nje “manaxher / dispecer”. Ne rastin e njemjedisi pune cloud funskionon si grid i specializuar – dispeceri shperndan kerkesat ne nyjet endryshme te klasterit. Ne rastin e ofrimit te “harduerit” perdoren makinat virtuale mbi te cilatperdoruesi instalon sistemet e veta. Vendi i makinave virtuale eshte si ne figure: aplikime aplikime aplikime aplikime sistem shfrytezimi sistem shfrytezimi sistem shfrytezimi sistem shfrytezimi Makina Virtuale Sistemi baze i Shfrytezimit CPU HDD disk virtual disk virtual disk virtual disk virtualDuke qene se sistemet e shfrytezimit te perdoruesve mbahen ne disqe virtuale – skedare ne diskunreal, mund ti zhvendosim nga nje nyje e klasterit ne nje tjeter duke mundesuar si optimizimin eshperndarjes te ngarkeses (me pasoje rritjen e shpejtesise te punes per gjithe perdoruesit) dheshmangien e nderprerjeve ne raste difektesh (skedari i makines virtuale kopjohet / duplikohet nganje nyje ne tjetren). aplikim aplikim sistem shfrytezimi sistem shfrytezimi makina virtuale makina virtuale sistem baze shfrytezimi sistem baze shfrytezimi CPU CPU HDD HDD virtual HDD virtual HDD LAN 35

×