web - web programming
DESCRIPTION
TRANSCRIPT
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Tehnologii Web
Dr. SabinCorneliu BuragaFacultatea de Informatica
Universitatea “A.I.Cuza” – Iasi, Romania
http://www.infoiasi.ro/~busaco/
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Programare Web
ServereServere de de aplicatiiaplicatii Web. Web. SesiuniSesiuniArhitecturaArhitectura aplicatiiloraplicatiilor WebWeb
DetaliiDetalii in in [[TX, 269TX, 269‐‐274]274] [CGI, 55[CGI, 55‐‐58] [AW, 4658] [AW, 46‐‐7070]]
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
“Orice intrare trebuie platita.”
Mihai Giugariu
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Caracteristici comuneale serverelor de aplicatii Web
Cookie‐uri & sesiuni
Arhitectura unei aplicatii Web. Studii de caz
cuprins
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Ofera, uzual, posibilitatea de a include cod (script)direct in cadrul documentelor Web,
cod invocat pe servergenerarea de continut dinamic pe partea de server
servere de aplicatii
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Maniera de includere depindede serverul de aplicatii Web:<% ... %> pentru ASP / ASP.NET
<% ... %> pentru JSP (Java Server Pages)<?php ... ?> pentru PHP
<% ... %> pentru Ruby on Rails
Mai general: <script language="...">...</script>
servere de aplicatii
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Limbaj(e) de programareAPI‐ul de baza
Suport pentru baze de dateSuport pentru interactiuneaWebSuport pentru cookie‐uri & sesiuniSuport pentru procesari XML
Medii de dezvoltareAlte facilitati particulare
servere de aplicatii: facilitati
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Limbaj(e) de programareVBScript & JScript (ASP)limbajele .NET (ASP.NET)
ASP.NET este independent de limbaj, fiind parte a .NET Framework
Java (servlet‐uri, JSP)Python (Zope)Ruby (Ruby on Rails)altele
servere de aplicatii: facilitati
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Limbaj(e) de programareStrong typed vs. weak typed(ASP.NET/JSP vs. ASP/PHP)
Utilizare de spatii de nume si instante de claseRaportare de erori (ASP, PHP4) vs.exceptii (ASP.NET, JSP, PHP5)
Pur obiectuale (ASP.NET, JSP) sau nu (PHP)Pot fi dinamice (e.g., Python, Ruby)Interpretate sau compilate (de cele mai multe ori, se prefera generarea de cod intermediar: IL – Intermediate Language)
servere de aplicatii: facilitati
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
PlatformeWeb (Statistica SitePoint 2006/2007)
servere de aplicatii: facilitati
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
API‐ul de bazaUtilizarea “puterii” limbajului si framework‐ului(functii/clase predefinite)
securitate, consistenta, acces la resursele mediului de operare,migrare facila de la aplicatii clasice la cele Web
Poate asigura si independenta de platforma
servere de aplicatii: facilitati
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
API‐ul de bazaPHP Builtin functions vs.ASP.NET CLR (Common Language Runtime) / JSP
Functionalitatile incluse in API‐ul de bazanu necesita recompilarea serverului de aplicatii
servere de aplicatii: facilitati
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Suport pentru baze de dateADO.NET / LINQ pentru ASP.NETJDBC (Java DataBase Connectivity) pentru JSPFunctii PHP predefinite pentru o pleiada de RDBMS,via biblioteci incorporate (SQLite si mysqli in PHP5)sau extensii; se poate utiliza si interfata ODBC
servere de aplicatii: facilitati
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Suport pentru baze de date“Legarea” datelor de program (data binding) realizata automat (ASP.NET) sau manual (PHP)
Se pot folosi framework‐uri aditionale(e.g., Hibernate – Java)
servere de aplicatii: facilitati
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Suport pentru interactiunea WebControale Web disponibile pe server, fie emulind cimpurile din formularele (X)HTML, fie oferind controale noi (e.g., calendar)generarea de cod HTML (+JavaScript)in functie de client ASP.NET (<asp:control>), PHP 5 via PRADOsimilar, pentru platforma Java (e.g., JavaServer Faces)
servere de aplicatii: facilitati
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Suport pentru interactiunea WebProcesarea evenimentelor provenind de la client(ASP.NET) – event driven Web applications
Transferuri asincrone prin AJAX(eventual, via module/clase aditionale)
servere de aplicatii: facilitati
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Suport pentru procesari XMLProcesari prin DOMProcesari prin SAXProcesari via o interfata simplificata(ASP.NET, PHP5)
Alte tipuri de procesari – e.g., XPP (Java)Transformari XSL Validare (DTD, XML Schema,…)Suport pentru invocare/dezvoltare de servicii WebXML data binding (ASP.NET, JSP)
servere de aplicatii: facilitati
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Medii de dezvoltareUnele, foarte sofisticateComerciale (Visual Studio .NET, Zend,...)De evaluare, educationale ori gratuite(e.g., Eclipse, Visual Web Developer Express)
Depanatoare, optimizatoare de cod (e.g., Zend Optimizer), profilers si altele
Facilitati pentru dezvoltatorii de servicii WebClase/componente/biblioteci aditionale(comerciale ori gratuite)
servere de aplicatii: facilitati
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Medii de dezvoltare (Statistica SitePoint 2006/2007)
servere de aplicatii: facilitati
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Suport acordat inginerilor softwareAplicatii N‐tierSe incurajeaza folosirea sabloanelor de proiectare(design patterns): Container, MVC (ModelViewController), Proxy, Configuration Parameters, Invocation Context,…Unitati de testare automata – cadrul general dat de XUnit (JUnit, PHP Unit, NUnit,...)
servere de aplicatii: facilitati
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Suport acordat inginerilor softwareGenerarea automata de documentatii, in diverse formateSuport pentru source control– code review, versioning (CVS, Subversion,…)
Pot folosi o paradigma (e.g., agile programming)
servere de aplicatii: facilitati
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
servere de aplicatii: facilitati
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
AlteleDezvoltarea de aplicatii Web complexe
descrierea atributelor unei pagini/sit (limbaj, import, sesiuni, tratare de evenimente, tip de continut,...)
modul de autentificaretema vizuala (skin)sabloane de vizualizare (template‐uri) etc.<%@ directiva ... %> (ASP.NET, JSP)
servere de aplicatii: facilitati
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
AlteleAplicatiileWeb pot folosi containere de componenteSuport pentru arhitecturi/platforme avansatede tip enterprise – e.g., SOA, workflow‐uri, Grid
servere de aplicatii: facilitati
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Tendinte conform Google Trends – februarie 2008
servere de aplicatii: facilitati
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Mecanism standard care permite ca un server Web sa trimita anumite informatii pe calculatorul unuiclient (utilizator), prin intermediul browser‐ului,sa ceara clientului sa stocheze aceste informatiipentru ca, ulterior, navigatorul sa returneze
informatiile spre serverul WWW
cookie‐uri
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Mijloc persistent de stocare a datelor pe masinaclientului Web cu scopul de a fi accesate ulterior
de pe server
cookie‐uri
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Memorarea preferintelor utilizatorilor Completarea automata a formularelor Stocarea informatiilor de autentificareTranzactii in cadrul comertului electronic Managementul sesiunilor Web
…si multe altele
cookie‐uri: utilizari
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Cookie‐uri persistentenu vor fi distruse la inchiderea navigatorului,ci vor fi memorate intr‐un fisier, perioada lor deviata fiind stabilita de creatorul cookie‐urilor
Cookie‐uri nepersistentedispar la inchiderea browser‐ului
cookie‐uri: tipuri
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Un cookie consta dintr‐o pereche nume=valoareValoarea este un sir de caractere codificat in maniera URL‐urilor
Datele referitoare la un cookie vor fi receptionatede navigator care mentine o lista de cookie‐uriapartinind serverului care le‐a trimis
Un cookie este trimis unui client incluzindcimpul‐antet Set-Cookie intr‐un raspuns HTTP
cookie‐uri
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Set-Cookie: nume=valoare; expires=data; path=cale; domain=domeniu; secure
cookie‐uri
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Set-Cookie: nume=valoare; expires=data; path=cale; domain=domeniu; secureexpires – indica data si timpul cind cookie‐ulva expira si va fi sters de pe disc
cookie‐uri
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Set-Cookie: nume=valoare; expires=data; path=cale; domain=domeniu; securedomain – desemneaza numele simbolic al serverului care a generat cookie‐ul
cookie‐uri
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Set-Cookie: nume=valoare; expires=data; path=cale; domain=domeniu; securepath – specifica un subset de URL‐uridin domeniul corespunzator unui cookie
cookie‐uri
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Set-Cookie: nume=valoare; expires=data; path=cale; domain=domeniu; securesecure – indica faptul ca acest cookie este transmisdoar daca tranzactia este sigura (via HTTPS)
cookie‐uri
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Un cookie e transmis doar daca intruneste toate conditiile de validitate – se potrivesc domeniul, calea de directoare,
timpul de expirare si securitatea canalului de comunicatie
Serverul va primi de la client, in antetul HTTP, o linie de forma:
Cookie: nume1=valoare1; nume2=valoare2...
cookie‐uri
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
cookie‐uri
Invocarea script‐ului conduce la returnareaunei reprezentari + setarea de cookie‐uri
Server Web
Client Web
cerere HTTPinvocare script
răspuns HTTPSet-Cookie: culoare=verde
Script
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
cookie‐uri
Cookie‐urile – persistente sau nu – sunt memoratela nivel de browser
Server Web
Client Web
culoare=verde
Script
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
cookie‐uri
Urmatorul acces la script se face cu transmitereacookie‐urilor spre server
conform conditiilor de validitate
Server Web
Client Web
cerere HTTPCookie: culoare=verde
răspuns HTTP
Script
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Stocarea cookie‐urilor persistente:Netscape/Mozilla (fisierul cookies sau cookies.txt)
domeniu acces cale securitate expirare nume valoarelocalhost FALSE / FALSE 966862979 culoare verde localhost FALSE / FALSE 966782841 alta_culoare albastra.uaic.ro FALSE /doc FALSE 969367226 accesari 3
cookie‐uri: stocare
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Stocarea cookie‐urilor persistente: Internet Explorer – fisiere denumite [email protected]
[email protected] AnEFromrel_clientwww.elsevier.com/ 0 3415826816 29364629 4113724112 29364628 *
cookie‐uri: stocare
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Pentru CGI (bash):
#!/bin/bashecho "Set-Cookie: culoare=verde; path=/; expires=Mon, 06-May-2008 07:33:00 GMT"
...
cookie‐uri: creare
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Cazul PHP – functia setcookie()
<?phpsetcookie ("alta_culoare", "albastra"); echo "Un cookie de culoarea " . $_COOKIE["alta_culoare"];
?>
cookie‐uri: creare
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Se anuleaza valoarea si timpul, eventual resetindu‐se si celelalte atribute ale cookie‐ului
Exemplu – pentru PHP:
<?phpsetcookie ($nume_cookie, "", 0, "/", "", 0);
?>
cookie‐uri: expirare
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Cookie‐urile se regasesc in variabila‐antetHTTP_COOKIE
Pentru PHP – cookie‐ul este vazut ca o variabila: $_COOKIE['nume_cookie']
cookie‐uri: consultare
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Exemplu pentru CGI (Perl)
@cookieuri = split(/;/, $ENV{'HTTP_COOKIE'}); foreach $pereche (@cookieuri) { ($nume, $val) = split(/=/, $pereche); $cookie{$nume} = $val;
} $fundal = $cookie{'alta_culoare'};
cookie‐uri: consultare
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
ASP.NET – proprietatea Cookies a colectieiHttpCookieCollection (vezi HttpRequest siHttpResponse din System.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 ziResponse.Cookies.Add (vizita);
cookie‐uri: manipulare
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
HTTP este un protocol stateless, neputind oferi informatii daca anumite cereri
succesive provin de la acelasi client(eventual, de la aceeasi instanta a navigatorului)
sesiuni
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Apare necesitatea de a prezerva anumite datede‐a lungul mai multor accesari inrudite
Exemple: starea cosului de cumparaturi,
formulare Web completate in mai multi pasi, paginarea continutului, starea autentificarii
etc.
sesiuni
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Orice vizitator al sitului va avea asociatun identificator unic – session ID (SID)Stocat intr‐un cookie ori propagat via URL
Unei sesiuni i se pot asocia diverse variabilesa fie mentinute intre accesari consecutive
sesiuni
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
O sesiune se poate inregistra (initia)implicit sau explicit, in functie de serverulde aplicatii ori de configuratia stabilita
Unele servere de aplicatii garanteazaintegritatea sesiunii si dupa o restartare
(a serverului sau a aplicatiei)
sesiuni
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
PHP – functiile session_start(), session_register(),session_id(), session_unregister(), session_destroy()
<?phpsession_start();if (!isset($_SESSION['accesari'])) {
$_SESSION['accesari'] = 0; } else {$_SESSION['accesari']++; }
?>
sesiuni: programare
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
ASP.NET – vezi HttpSession (System.Web)Ofera suport si pentru evenimente de sesiune
Exemplu:
nume = Session["Nume"].ToString ();
sesiuni: programare
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
intrebare
Care este arhitectura unei aplicatii Web?
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
arhitectura aplicatiilor web
Uzual, implica trei strate (3tier application)
Internet(Web)
Client Server de aplicatii Stocare
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
arhitectura aplicatiilor web
Sponge / Database
Jelly / Business Logic
Custard / Page Logic
Cream / Markup
Fruit / Presentation
C. Henderson, “C. Henderson, “Scalable Web ArchitecturesScalable Web Architectures”, Web 2.0 Expo, 2007: ”, Web 2.0 Expo, 2007: iamcal.com/talks/iamcal.com/talks/
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
arhitectura aplicatiilor web
Sponge / Database
Jelly / Business Logic
Custard / Page Logic
Cream / Markup
Fruit / Presentation
C. Henderson, “C. Henderson, “Scalable Web ArchitecturesScalable Web Architectures”, Web 2.0 Expo, 2007: ”, Web 2.0 Expo, 2007: iamcal.com/talks/iamcal.com/talks/
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
studiu de caz: flickr
Scop:partajarea online a fotografiilor
bazata pe retele socialeagregare de comunitati
suport pentru adnotari (tagging)
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
studiu de caz: flickr
Interactiune facila cu utilizatorul
Interactiune cu alte aplicatii (via API‐uri deschise)
Unicodeinternationalization (I18n) & localization (L10n)
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
studiu de caz: flickr
Servere de baze de date
ServereWeb
Servere de stocare
Internet (Web)
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
studiu de caz: flickr
Tehnologii: PHP (procesare – application logic, acces la API, sabloane de afisare via Smarty, modul de email)
Perl (validarea datelor)Java (managementul nodurilor de stocare)MySQL (stocare in format InnoDB)ImageMagick (prelucrare de imagini)AJAX (interactiune asincrona)Linux (platforma de rulare)
Volum: ~60000 linii de cod propriu‐zis (in 2006)
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
studiu de caz: flickr
API‐uri – vezi www.flickr.com/services/api/.NETPerlPHPPython
ActionScriptetc.
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
studiu de caz: flickr
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
studiu de caz: wikimedia
Scop: suita de aplicatii Web colaborative
oferind continut deschis
alaturi de Wikipedia, exista Wiktionary, Wikinews, Wikibooks, Wikiquote, Wikisource, Wikiversity, Wikispecies, Wikimedia
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
studiu de caz: wikimedia
Continutul este distribuit prin intermediulCDN – Content Distributed Network
sistem de cachingWeb permitind echilibrarea incarcarii(load balancing) pe baza de criterii geografice
caching avansat – pe niveluri –al continutului preponderent static
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
studiu de caz: wikimedia
Tehnologii: MediaWiki(sistemulwiki utilizat pentru toate serviciile)
PHP (platforma pe care ruleaza MediaWiki)MySQL (solutia principala de stocare)ImageMagick, DjVu, TeX, rsvg, ploticus etc. (pentru continuturi grafice in MediaWiki)
Lucene (indexare textuala, facilitind cautarea)Linux (platforma de rulare)
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
studiu de caz | wikimedia
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
studiu de caz: wikimedia
Datele persistente se stocheaza in 3 forme:Meta‐date (categorii de articole, legaturi cu altele, istoricul reviziilor) + conturi de utilizatori + setaristocate in bazele de date principale (core DBs)
Textul aflat sub revizia utilizatorilor este stocatin cimpuri blob in external storage
Fisierele statice (imagini) se memoreazaseparat pe image server; meta‐datele acestora sint stocate in core DBs
Core DBs sint replicate
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
studiu de caz: wikimedia
API‐uri bazate pe HTTP pentru comunicareadintre serverele de stocare media
si serverele de aplicatii
Operatii: store, publish, delete, generate thumbnail
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
rezumat
Programare Web la nivel de serverCaracteristici comune ale serverelor de aplicatii Web
Cookie‐uri & sesiuniStudii de caz
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/
TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />
??