1 / 12

RETELE DE CALCULATOARE SI INTERNET PROIECT SERVERE WEB

RETELE DE CALCULATOARE SI INTERNET PROIECT SERVERE WEB. Prof. Coordonator: Student: Stefan Stancescu Cazan Iulia. Introducere Ce este un server web? Un computer

Download Presentation

RETELE DE CALCULATOARE SI INTERNET PROIECT SERVERE WEB

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. RETELE DE CALCULATOARE SI INTERNETPROIECTSERVERE WEB Prof. Coordonator: Student: Stefan Stancescu Cazan Iulia

  2. Introducere • Ce este un server web? • Un computer Cerinte: - conexiune permanenta la internet - sa fie rapid - sa aiba capacitate de stocare mare - sa aiba memorie RAM mare - sa aiba IP permanent • O aplicatie software (un program) Scopul: sa serveasca pagini web Tranzactia client-server: interactiunea intre browser si server - clientul introduce URL-ul (protocolul/numele domeniului/numele local) - se stabileste conexiunea TCP cu serverul - clientul trimite cererea HTTP - serverul raspunde trimitand fisierul cerut - browserul interpreteaza si afiseaza continutul fisierului Daca o pagina contine si elemente multimedia – acestea sunt trimise pe rand catre browser Protocolul HTTP – pentru a descrie transferul de date pe internet - implica realizarea unei conexiuni TCP limitate temporal, intre client si server - mentinerea conexiunii pentru mai multe cereri (HTTP/1.1)

  3. HTML 1990 – fizicianul Tim Berners-Lee scrie software-ul specific pentru browser si pentru server Este un limbaj SGML (Standard Generalized Markup Language) Un fisier HTML poate contine pe langa text si alte elemente: liste, tabele, imagini, video, hiperlegaturi Nu este un limbaj case sensitive. Forma generala a unui element HTML este: <tag attribute1=”value1” attribute2=”value2”>content</tag> Atributele pot fi de tip: id, class, style, title, lang Componenta unui document HTML este: 1. versiunea HTML a documentului 2. zona head cu etichetele <head> </head> 3. zona body cu etichetele <body> </body> sau <frameset> </frameset> • HTML5 Permite accesul la resurse multimedia (camera web, microfon) Utilizeaza taguri precum <video>, <audio>, <canvas> Permite utilizarea de declaratii JavaScript, pentru un continut dinamic • XHTML(Extensible HyperText Markup Language) Este un limbaj de marcare din familia XML (un subset mult mai restrictiv al SGML), ce extinde limbajul HTML. Este aproape identic cu HTML 4.01. Este un limbaj case sensitive. Diferente: in XHTML toate elementele trebuie inchise in XHTML toate elementele trebuie inchise in ordinea in care au fost deschise in XHTML toate elementele trebuie deschise si inchise in ordinea specifica

  4. Documente web dinamice. Limbaje de scripting Continut dinamic – generat la cererea clientului Exemplu: clientul completeaza campurile unui formular serverul da mesajul mai departe pentru procesare, catre un script (program) se cauta o inregistrare intr-o baza de date de pe discul serverului se genereaza o pagina HTML cu raspunsul cererii Pasii necesari pentru procesarea informatiei dintr-un formular HTML: A. S. Tanenbaum – ‘Computer Networks’ ([7]) • CGI metoda traditionala de tratare a formularelor si a altor pagini web interactive Acesta reprezinta o interfata standardizata ce permite serverelor web sa vorbeasca cu programele de tip back-end si cu scripturi care accepta inputuri (de ex. din formulare) si sa genereze ca raspuns pagini HTML. Aceste programe de tip back-end sunt scripturi scrise in Perl sau Python. Exemplu: un nou client isi inregistreaza un produs on-line pe site-ul companiei Linkul de inregistrare indica un script Perl (www.tgpc.com/cgi-bin/reg.perl) Scriptul parseaza parametrii, creeaza un camp nou in baza de date pentru un nou client si trimite inapoi un raspuns.

  5. O alta metoda: includerea unor mici scripturi in interiorul paginilor HTML Pentru scrierea acestor scripturi – se foloseste PHP (Hypertext Preprocessor) Avantaje: limbajul PHP este mai simplu decat un script CGI open source, disponibil gratuit • Alte limbaje de scripting: • JSP (Java Server Pages) – partea dinamica este scrisa in limbajul de programare Java. • ASP (Active Server Pages) – partea dinamica este scrisa in limbajul Visual Basic (Microsoft)

  6. JavaScript – pe partea de client Folosit pentru a administra elemente multimedia Mod de folosire: embedded : prin integrarea sursei in fisierul HTML includerea unui fisier JavaScript (se utilizeaza atributul src) <script language=”javascript” src=”declaratii.js”></script> Evenimente specifice: onLoad, onUnload, onClick, onMouseOver, onMouseOut, onSubmit

  7. Arhitectura serverelor web • O problema de constructie: fiecare cerere trebuie sa acceseze discul pentru a obtine un fisier. • Un server web nu poate sa serveasca mai multe cereri pe secunda decat numarul de accesari ale discului. • Rezolvare: sa pastreze un cache in memorie cu ultimele n fisiere accesate. • Arhitectura unui server web este caracterizata de 2 dimensiuni: • Modelul de procesare (tipul de proces sau modelul thread folosit) • Comportamentul pool-size (cum variaza numarul proceselor/threadurilor de-a lungul timpului si in functie de workload(volum de munca)) • Modele de procesare • Arhitectura process-based Consta in mai multe procese de tip single-thread, fiecare dintre ele tratand cate o singura cerere de-o data. Acest model se numeste prefork in Apache. Avantaje: stabilitatea Esuarea unui proces nu afecteaza functionarea celorlalte, asa ca serverul va continua sa functioneze si sa serveasca alte cereri chiar si atunci cand unul dintre procesele sale trebuie inchis si repornit. Dezavantaje: supraincarcarea serverului (datorata crearii si inchiderii proceselor) Procese diferite folosesc spatii de adresa diferite. • Arhitectura thread-based Permite existenta mai multor fire (thread-uri) in contextul unui singur proces. Aceste thread-uri impart resursele procesului, cum ar fi memoria, dar sunt capabile sa execute comenzi in mod independent. Thread-urile impart acelasi spatiu de adresa. Nu mai este stabil. Un singur thread care are o functionare defectuoasa poate face ca intreg serverul sa nu mai functioneze. Cresterea numarului de thread-uri (spawning) dintr-un proces este mult mai eficienta decat bifurcarea (forking).

  8. Arhitectura hibrida Combina avantajele ambelor metode si reduce dezavantajele lor. De exemplu, sa presupunem ca un server web are p procese cu n thread-uri fiecare. Deci un numar de pana la p x n cereri pot fi executate simultan. Daca un thread esueaza, el poate opri din functionare si procesul in care ruleaza, dar toate celelalte (p-1) x n thread-uri continua sa proceseze cererile. Mai putina memorie este necesara in aceasta abordare, pentru a trata p x n cereri simultane, decat sa ruleze acelasi numar de cereri intr-o arhitectura de tip process-based. Cele trei tipuri de arhitecturi sunt descrise in figura de mai jos D. A. Menasce: “Web Server Software Architectures” ([8])

  9. B. Comportamentul pool-size • Static: serverul creeaza un numar fix de procese sau thread-uri in momentul de startup. • Exemplu: un server cu arhitectura de tip process-based • se presupune ca p procese sunt create atunci cand serverul este pornit. • Daca o noua cerere este adusa catre server, iar acesta proceseaza p cereri in acel moment, noua cerere • va astepta intr-o coada de asteptare pana cand serverul va termina de executat una dintre cereri. • Discutie: in functie de rata de sosire a cererilor • Dinamic: numarul de procese sau thread-uri variaza in functie de incarcarea serverului. • In perioadele de timp in care serverul este putin incarcat, numarul de procese sau thread-uri este redus • pentru a elibera mai multa memorie. • Exemplu de implementare: in Apache • Parametri de configurare: • Numarul p de procese urmasi (prin forking).Procesul parinte doar monitorizeaza incarcarea serverului. • Numarul minim m de procese idle Daca numarul de procese idle depaseste o valoare stabilita in fisierul de configurare, procesul parinte al Apache va distruge procesele urmasi in exces. Pool-size mai poate fi reglat in fisierul de configurare al Apache - specificand numarul maxim de cereri pe care le poate procesa un urmas inainte de a fi distrus. Avantaj: se reduce cantitatea de memorie pierduta (memory leaks)

  10. Performantele unui server web Timpul total de raspuns – 3 componente: Software contention, Physical contention, Service time Pentru a explora caracteristicile de performanta , vom folosi rezultatele combinate dintre un model de lant Markov si o retea de asteptare in coada (QN – Queuing Network). Modelul QN calculeaza rata medie de transmitere cu succes a mesajelor (throughput), X0(k), k=1,…,p . QN modeleaza resursele fizice ale serverului. Modelul de lant Markov – pentru a reprezenta arhitectura. Starea k a lantului Markov reprezinta numarul de cereri din sistem. Tranzitia din starea k in starea (k+1) va indica finalizarea unei cereri. Rata de finalizari este data de X0(k) pentru starile k=1,…,p si X0(p) pentru toate starile k>p. Exemplu: in functie de rata de sosire a cererilor, numarul mediu de procese idle variaza. Daca se doreste mentinerea unui numar constant de procese idle, cum variaza numarul total al proceselor (in cazul unui pool-size dinamic). D. A. Menasce: “Web Server Software Architectures” ([8]). Software contention si physical contention

  11. Aplicatii de tip server web • Cu licenta: IIS (Internet Information Services) • Open source: Apache httpd Nginx Lighttpd Criterii de comparatie: - acceptarea unui sistem de baza pentru autentificare - acceptarea autentificarii criptate ireversibil (MD5) - acceptarea protocolului HTTPS - acceptarea de gazde virtuale - abilitatea de servire a paginilor web cu continut dinamic - sistemele de operare suportate - acceptarea unei console de administrare Apache httpd In 2009 – peste 100 de milioane de site-uri; In prezent: peste 300 milioane Suporta platforma MPM (MultiProcessing Modules) – proces, hibrid, evenimente si hibrid Suporta limbajele: PHP, Perl, Python, Tcl. IIS Popular in randul companiilor mari Nu este la fel de flexibil ca Apache (din punct de vedere al arhitecturii) Disponibil doar pentru Windows Nginx si Lighttpd Important: suporta un numar foarte mare de conexiuni paralele (10000) rapiditate in formularea raspunsurilor la cereri pentru servirea continuturilor statice nu suporta console de administrare

  12. Concluzii Performantele unui server pot fi afectate de: software contention arhitectura folosita O arhitectura prost conceputa si configurata poate duce la timpi de raspuns mari, in timp ce resursele fizice determina o utilizare scazuta. Parametrii de configurare sunt ajustati in mod dinamic – pe baza modelelor de performanta analitice. In ultimii ani, reteaua web a devenit interfata standard de acces pentru aplicatii si servicii remote, asa ca s-a putut observa un interes crescut al cercetatorilor fata de problemele de performanta ale diferitelor arhitecturi de servere web. Aceste probleme au tendinta de a se acutiza pe masura ce va creste diversitatea dispozitivelor care au acces la internet, securitatea sistemului si nevoia de autentificare a clientilor. Este de dorit ca tehnicile disponibile de rezolvare a acestor probleme sa evolueze in ritmul de aparitie a lor si chiar sa le prevada, pentru a putea fi evitate pe viitor.

More Related