Professional Documents
Culture Documents
<?xmlversion=1.0?> <cursdesc=/>
Tehnologii Web
Dr.SabinCorneliu Buraga
Facultatea deInformatica Universitatea A.I.Cuza Iasi,Romania
http://www.infoiasi.ro/~busaco/
Dr.SabinBuraga http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
Programare Web
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
Oriceintraretrebuieplatita.
Mihai Giugariu
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
cuprins
Caracteristici comune aleserverelor deaplicatii Web Cookieuri &sesiuni Arhitectura unei aplicatii Web.Studii decaz
Dr.SabinBuraga http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
servere deaplicatii
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
servere deaplicatii
<%... %>pentru ASP/ASP.NET <%...%> pentru JSP(JavaServerPages) <?php ... ?> pentru PHP <%... %> pentru RubyonRails Maigeneral:<scriptlanguage="...">...</script>
Dr.SabinBuraga http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
servere deaplicatii:facilitati
Limbaj(e)deprogramare APIul debaza Suport pentru baze dedate Suport pentru interactiunea Web Suport pentru cookieuri &sesiuni Suport pentru procesari XML Medii dedezvoltare Alte facilitati particulare
Dr.SabinBuraga http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
servere deaplicatii:facilitati
Limbaj(e)deprogramare
VBScript&JScript (ASP) limbajele .NET(ASP.NET) ASP.NETeste independentdelimbaj, fiind partea.NETFramework Java(servleturi,JSP) Python(Zope) Ruby(RubyonRails) altele
Dr.SabinBuraga http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
servere deaplicatii:facilitati
Limbaj(e)deprogramare
Strongtyped vs. weaktyped (ASP.NET/JSPvs. ASP/PHP) Utilizare despatii denume si instante declase Raportare deerori (ASP,PHP4)vs. exceptii (ASP.NET,JSP,PHP5) Pur obiectuale (ASP.NET,JSP)sau nu(PHP) Potfi dinamice (e.g.,Python,Ruby) Interpretate sau compilate (decele mai multe ori, seprefera generarea decodintermediar: IL IntermediateLanguage)
http://www.infoiasi.ro/~busaco/
Dr.SabinBuraga
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
servere deaplicatii:facilitati
Platforme Web (Statistica SitePoint 2006/2007)
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
servere deaplicatii:facilitati
APIul debaza
Utilizarea puteriilimbajului si frameworkului (functii/clase predefinite) securitate,consistenta, acces laresursele mediului deoperare, migrare facila delaaplicatii clasice lacele Web Poate asigura si independenta deplatforma
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
servere deaplicatii:facilitati
APIul debaza
PHPBuiltinfunctions vs. ASP.NETCLR(CommonLanguageRuntime)/JSP Functionalitatile incluse inAPIul debaza nunecesita recompilarea serverului deaplicatii
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
servere deaplicatii:facilitati
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
servere deaplicatii:facilitati
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
servere deaplicatii:facilitati
Suport pentru interactiunea Web
Controale Webdisponibile pe server, fieemulind cimpurile dinformularele (X)HTML, fieoferind controale noi (e.g.,calendar) generarea decodHTML(+JavaScript) infunctie declient
ASP.NET(<asp:control>),PHP5viaPRADO similar,pentru platforma Java(e.g.,JavaServer Faces)
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
servere deaplicatii:facilitati
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
servere deaplicatii:facilitati
Suport pentru procesari XML
Procesari prin DOM Procesari prin SAX Procesari viaointerfata simplificata (ASP.NET,PHP5) Alte tipuri deprocesari e.g.,XPP(Java) Transformari XSL Validare (DTD,XMLSchema,) Suport pentru invocare/dezvoltare deservicii Web XMLdatabinding (ASP.NET,JSP)
http://www.infoiasi.ro/~busaco/
Dr.SabinBuraga
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
servere deaplicatii:facilitati
Medii dedezvoltare
Unele,foarte sofisticate Comerciale (VisualStudio.NET,Zend,...) Deevaluare,educationale ori gratuite (e.g.,Eclipse,VisualWebDeveloperExpress) Depanatoare,optimizatoare decod (e.g.,Zend Optimizer),profilers si altele Facilitati pentru dezvoltatorii deservicii Web Clase/componente/biblioteci aditionale (comerciale ori gratuite)
http://www.infoiasi.ro/~busaco/
Dr.SabinBuraga
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
servere deaplicatii:facilitati
Medii dedezvoltare (Statistica SitePoint 2006/2007)
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
servere deaplicatii:facilitati
Suport acordat inginerilor software
Aplicatii Ntier Seincurajeaza folosirea sabloanelor deproiectare (designpatterns):Container, MVC(ModelViewController),Proxy, ConfigurationParameters, InvocationContext, Unitati detestare automata cadrul generaldat de XUnit (JUnit,PHPUnit,NUnit,...)
Dr.SabinBuraga http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
servere deaplicatii:facilitati
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
servere deaplicatii:facilitati
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
servere deaplicatii:facilitati
Altele
Dezvoltarea deaplicatii Webcomplexe descrierea atributelor unei pagini/sit (limbaj,import,sesiuni,tratare deevenimente, tipdecontinut,...) modul deautentificare tema vizuala (skin) sabloane devizualizare (templateuri)etc. <%@directiva ...%> (ASP.NET,JSP)
Dr.SabinBuraga http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
servere deaplicatii:facilitati
Altele
Aplicatiile Webpotfolosi containere decomponente Suport pentru arhitecturi/platforme avansate detipenterprise e.g., SOA,workflowuri,Grid
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
servere deaplicatii:facilitati
Tendinte conformGoogleTrends februarie 2008
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
cookieuri
Mecanism standardcarepermite caunserverWeb sa trimita anumite informatii pe calculatorul unui client(utilizator),prin intermediul browserului, sa ceara clientului sa stocheze aceste informatii pentru ca,ulterior,navigatorul sa returneze informatiile spre serverul WWW
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
cookieuri
Mijloc persistentdestocare adatelor pe masina clientului Webcuscopul deafi accesate ulterior depe server
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
cookieuri:utilizari
Memorarea preferintelor utilizatorilor Completarea automata aformularelor Stocareainformatiilordeautentificare Tranzactiiincadrul comertului electronic Managementul sesiunilor Web si multe altele
Dr.SabinBuraga http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
cookieuri:tipuri
Cookieuri persistente
nuvor fidistruse lainchiderea navigatorului, civor fimemorate intrun fisier,perioadalor de viata fiindstabilita decreatorul cookieurilor
Cookieuri nepersistente
dispar lainchiderea browserului
Dr.SabinBuraga http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
cookieuri
Uncookie consta dintroperechenume=valoare Valoareaeste unsirdecaracterecodificat inmanieraURLurilor Datelereferitoarelauncookie vorfireceptionate denavigator carementineolista decookieuri apartinind serveruluicareleatrimis Uncookie este trimisunuiclientincluzind cimpulantet Set-Cookie intrun raspuns HTTP
Dr.SabinBuraga http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
cookieuri
Set-Cookie: nume=valoare; expires=data; path=cale; domain=domeniu; secure
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
cookieuri
Set-Cookie: nume=valoare; expires=data; path=cale; domain=domeniu; secure
expires indica datasitimpulcind cookieul vaexpirasivafisters depedisc
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
cookieuri
Set-Cookie: nume=valoare; expires=data; path=cale; domain=domeniu; secure
domain desemneaza numelesimbolicalserverului careageneratcookieul
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
cookieuri
Set-Cookie: nume=valoare; expires=data; path=cale; domain=domeniu; secure
path specificaunsubsetdeURLuri dindomeniulcorespunzatorunuicookie
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
cookieuri
Set-Cookie: nume=valoare; expires=data; path=cale; domain=domeniu; secure
secure indica faptul caacest cookie este transmis doar daca tranzactia este sigura (viaHTTPS)
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
cookieuri
Un cookie etransmisdoardaca intrunestetoateconditiile devaliditate sepotrivescdomeniul,caleadedirectoare, timpuldeexpiraresisecuritateacanalului decomunicatie Serverulvaprimidelaclient, inantetulHTTP,oliniedeforma: Cookie: nume1=valoare1; nume2=valoare2...
Dr.SabinBuraga http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
cookieuri
Invocarea scriptului conducelareturnarea unei reprezentari +setarea decookieuri
cerere HTTP invocare script
Client Web
Script
Server Web
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
cookieuri
Cookieurile persistente sau nu sunt memorate lanivel debrowser
culoare= verde
Client Web
Script
Server Web
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
cookieuri
Urmatorul acces lascript sefacecutransmiterea cookieurilor spre server
conformconditiilor devaliditate
cerere HTTP Cookie: culoare=verde Script
Client Web
rspuns HTTP
Server Web
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
cookieuri:stocare
Stocarea cookieurilor persistente:
Netscape/Mozilla(fisierul cookies sau cookies.txt)
domeniu acces cale securitate expirare nume valoare localhost FALSE / FALSE 966862979 culoare verde localhost FALSE / FALSE 966782841 alta_culoare albastra .uaic.ro FALSE /doc FALSE 969367226 accesari 3
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
cookieuri:stocare
Stocarea cookieurilor persistente:
InternetExplorer fisiere denumite nume@adresa.txt
sabin@www.elsevier.txt AnEFromrel_client www.elsevier.com/ 0 3415826816 29364629 4113724112 29364628 *
Dr.SabinBuraga http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
cookieuri:creare
Pentru CGI(bash): #!/bin/bash echo "Set-Cookie: culoare=verde; path=/; expires=Mon, 06-May-2008 07:33:00 GMT" ...
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
cookieuri:creare
Cazul PHP functia setcookie() <?php setcookie ("alta_culoare", "albastra"); echo "Un cookie de culoarea " . $_COOKIE["alta_culoare"]; ?>
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
cookieuri:expirare
Seanuleaza valoarea si timpul,eventualresetinduse si celelalte atribute alecookieului Exemplu pentru PHP: <?php setcookie ($nume_cookie, "", 0, "/", "", 0); ?>
Dr.SabinBuraga http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
cookieuri:consultare
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
cookieuri:consultare
Exemplu pentru CGI(Perl)
@cookieuri = split(/;/, $ENV{'HTTP_COOKIE'}); foreach $pereche (@cookieuri) { ($nume, $val) = split(/=/, $pereche); $cookie{$nume} = $val; } $fundal = $cookie{'alta_culoare'};
Dr.SabinBuraga http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
cookieuri:manipulare
ASP.NET proprietatea Cookies acolectiei HttpCookieCollection (vezi HttpRequest si HttpResponse dinSystem.Web) HttpCookie vizita = new HttpCookie ("ultima_vizita"); DateTime timp_curent = DateTime.Now; vizita.Value = timp_curent.ToString (); vizita.Expires = timp_curent.AddHours (24); // expira peste 1 zi Response.Cookies.Add (vizita);
Dr.SabinBuraga http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
sesiuni
HTTPeste unprotocolstateless, neputind oferi informatii daca anumite cereri succesive provin delaacelasi client (eventual,delaaceeasi instanta anavigatorului)
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
sesiuni
Apare necesitatea deaprezerva anumite date dealungul mai multor accesari inrudite
Exemple: starea cosului decumparaturi, formulare Webcompletate inmai multipasi, paginarea continutului, starea autentificarii etc.
Dr.SabinBuraga http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
sesiuni
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
sesiuni
Osesiune sepoate inregistra (initia) implicitsau explicit,infunctie deserverul deaplicatii ori deconfiguratia stabilita
Unele servere deaplicatii garanteaza integritatea sesiunii si dupa orestartare (aserverului sau aaplicatiei)
Dr.SabinBuraga http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
sesiuni:programare
PHP functiile session_start(),session_register(), session_id(), session_unregister(),session_destroy()
<?php session_start(); if (!isset($_SESSION['accesari'])) { $_SESSION['accesari'] = 0; } else { $_SESSION['accesari']++; } ?>
Dr.SabinBuraga http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
sesiuni:programare
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
intrebare
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
Internet (Web)
Client
Dr.SabinBuraga
Serverdeaplicatii
http://www.infoiasi.ro/~busaco/
Stocare
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
Custard/PageLogic
Jelly/BusinessLogic
Sponge/Database
C.Henderson,ScalableWebArchitectures,Web2.0Expo,2007:iamcal.com/talks/ C.Henderson,ScalableWebArchitectures,Web2.0Expo,2007:iamcal.com/talks/
Dr.SabinBuraga http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
Custard/PageLogic
Jelly/BusinessLogic
Sponge/Database
C.Henderson,ScalableWebArchitectures,Web2.0Expo,2007:iamcal.com/talks/ C.Henderson,ScalableWebArchitectures,Web2.0Expo,2007:iamcal.com/talks/
Dr.SabinBuraga http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
studiu decaz:flickr
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
studiu decaz:flickr
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
studiu decaz:flickr
Internet(Web)
Servere Web
Servere de stocare
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
studiu decaz:flickr
Tehnologii:
PHP (procesare applicationlogic,acces laAPI, sabloane deafisare viaSmarty,modul deemail) Perl (validarea datelor) Java (managementul nodurilor destocare) MySQL (stocare informatInnoDB) ImageMagick (prelucrare deimagini) AJAX (interactiune asincrona) Linux(platforma derulare) Volum:~60000linii decodpropriuzis (in2006)
Dr.SabinBuraga http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
studiu decaz:flickr
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
studiu decaz:flickr
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
studiu decaz:wikimedia
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
studiu decaz:wikimedia
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
studiu decaz:wikimedia
Tehnologii:
MediaWiki (sistemul wiki utilizat pentru toate serviciile) PHP (platforma pe careruleaza MediaWiki) MySQL (solutia principala destocare) ImageMagick,DjVu, TeX,rsvg,ploticus etc. (pentru continuturi grafice inMediaWiki) Lucene (indexare textuala,facilitind cautarea) Linux(platforma derulare)
Dr.SabinBuraga http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
studiudecaz|wikimedia
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
studiu decaz:wikimedia
Datele persistente sestocheaza in3forme:
Metadate(categorii dearticole,legaturi cualtele, istoricul reviziilor)+conturi deutilizatori +setari stocate inbazele dedateprincipale (coreDBs) Textul aflat subrevizia utilizatorilor este stocat incimpuri blob inexternalstorage Fisierele statice (imagini)sememoreaza separat pe imageserver; metadatele acestora sint stocate incoreDBs CoreDBssint replicate
Dr.SabinBuraga http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
studiu decaz:wikimedia
APIuri bazate pe HTTPpentru comunicarea dintre serverele destocare media si serverele deaplicatii
Operatii:store,publish,delete,generatethumbnail
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
rezumat
Programare Weblanivel deserver
Caracteristici comune aleserverelor deaplicatii Web Cookieuri &sesiuni Studii decaz
Dr.SabinBuraga
http://www.infoiasi.ro/~busaco/
Tehnologii Web
<?xmlversion=1.0?> <cursdesc=/>
?
Dr.SabinBuraga http://www.infoiasi.ro/~busaco/