Curs2 Programare Web Infodida 1

99
 Eugen ZAHARESCU –   Programare Web - CURS InfoDida-1 - 9 - FACULTATEA DE MATEMATICĂ ŞI INFORMATICĂ INFORMATICĂ DIDACTICĂ Masterat anul I PROGRAMARE WEB Curs Masteral pentru Informatic ă Didactică - anul I

Transcript of Curs2 Programare Web Infodida 1

Eugen ZAHARESCU Programare Web - CURS InfoDida-1

FACULTATEA DE MATEMATIC I INFORMATIC INFORMATIC DIDACTIC Masterat anul I

PROGRAMARE WEBCurs Masteral pentru Informatic Didactic - anul I

-9-

Eugen ZAHARESCU Programare Web - CURS InfoDida-1

INTRODUCEREConceptele iniiale ale sistemului WWWTermenul World Wide Web (cu binecunoscutul acronim WWW sau colocvialul Web), definete un spaiu informaional n Internet, alctuit din resurse situate n locaii sau noduri ale reelei globale. Acestea pot fi regsite cu ajutorul unui sistem hypertext, pe baza unei modaliti universale de identificare cunoscut sub numele de URI (Uniform Resource Identifier). Resursele sunt organizate prin intermediul unei pagini de Web situate pe un server de Web. Paginile pot fi vizualizate prin intermediul unui program client numit browser sau navigator de Web. Web-ul a aprut n anul 1989 la CERN (Conseil Europen pour la Recherche Nuclaire- Genve, Confdration Helvtique) ca rezultat al propunerii fcute de Tim Berners-Lee n luna martie a aceluiai an, pentru crearea unei colecii de documente, n scopul rezolvrii unor probleme de comunicare existente ntre echipele de cercettori ale centrului. Ulterior, n octombrie 1994, Tim Berners-Lee a nfiinat World Wide Web Consortium (W3C-http://www.w3.org/) la Massachusetts Institute of Technology, Laboratory for Computer Science [MIT/LCS] n colaborare cu CERN i cu sprijinul primit din partea DARPA (Defense Advanced Research Projects Agency) i a Comisiei Europene (European Commission). Prima versiune a protocolului HTTP (Hypertext Transfer Protocol), este HTTP/0.9, dezvoltat de Tim Berners-Lee i echipa sa. Ultima versiune, HTTP/1.1 este protocolul implicit de comunicare ntre browser i serverul de Web. Dezvoltarea acestui protocol este coordonat de W3C (World Wide Web Consortium). HTTP utilizeaz opt metode pentru comunicarea ntre browser i server, cea mai des utilizat fiind GET (folosit n situaia n care browser-ul cere serverului o resurs). Dup 1990 se dezvolt o gam larg de tehnologii Web, limbaje i platforme de programare, prezentate de consoriul W3C sub forma unor recomandri/standarde. Cele mai importante dintre acestea pot fi prezentate sub forma urmtoarei liste (incomplete): XML (Extensible Markup Language) XHTML (Extensible Hypertext Markup Language) PHP (PHP: Hypertext Preprocessor) ASP (Active Server Pages) JSP (JavaServer Pages) AJAX (Asynchronous JavaScript And XML) WSDL (Web Services Description Language) RSS (Really Simple Syndication) RDF (Resource Description Framework) OWL (Web Ontology Language) SOAP (Simple Object Access Protocol) JSON (JavaScript Object Notation) DOM (Document Object Model) XSL (EXtensible Stylesheet Language) CSS (Cascading Style Sheets) PNG (Portable Network Graphics) i SVG (Scalable Vector Graphics )

- 10 -

Eugen ZAHARESCU Programare Web - CURS InfoDida-1

Evoluia ascendent de la WEB 1.0 la WEB 2.0Perioada de dezvoltare a Web-ului, cuprins ntre 1990 i 2004, a fost numit retroactiv (n 2005) Web 1.0. n aceasta faz a dezvoltrii sale, activitatea de prelucrare a documentelor purttoare de informaii pe Web se baza pe programe de navigare, pe motoare de cutare i pe site-uri considerate astzi depozite izolate de informaii (information silo un sistem de management incapabil de interoperabilitate n procesarea afacerilor cu alte sisteme similare nrudite). Evoluia susinut a Web-ului a determinat apariia, la sfritul anului 2004, a unei noi tendine evolutive, denumit secvenial Web 2.0. Conceptul Web 2.0 reprezint, n esen, un nou punct de vedere asupra a ceea ce nseamn Web-ul actual i nu o evoluie tehnologic n sine. Aceast nou paradigm consider Web-ul ca o platform dinamic i interactiv, care ofer utilizatorilor posibilitatea de a colabora i de a schimba informaii online (o component a acestui concept este, de exemplu, tehnologia AJAX). Termenul Web 2.0 se refer la a doua faz a dezvoltrii Web-ului, n ceea ce privete arhitectura i aplicaiile/serviciile furnizate. Acest concept a fost popularizat de OReilly Media i MediaLive International (http://www.mlii.com/ ), datorit eforturilor lui Dale Dougherty i John Battelle, prin intermediul unor serii de conferine privind dezvoltarea Web-ului. Noua imagine a Web-ului are dou componente principale: n primul rnd, spaiul World Wide Web este vzut ca o platform n care utilizatorul i controleaz propriile date. Astfel, site-ul Web se transform dintr-o surs de informaii n surs de servicii pentru utilizatori. n al doilea rnd, coninutul Web-ului i distribuirea acestuia sunt democratizate. Aceast component nseamn descentralizare, comunicare liber i control sporit exercitat de utilizator, coninutul Web-ului ieind de sub monopolul proiectanilor si. Astfel, Web-ul se apropie de ideea originar a lui Tim Berners-Lee, conform creia acesta trebuie s reprezinte un mediu democratic i personal de comunicare (DIY, Do It Yourself). Web-ul documentelor (Web 1.0) se transform ntr-un Web al datelor (Web 2.0). Noul concept implic, printre altele, urmtoarele aspecte: Interactivitate Web sporit i un grad de utilizare mrit, existnd tendina de a crea aplicaii similare celor desktop (e.g., tehnica AJAX); ncredere total n utilizatori (e.g., fenomenul wiki); Participarea utilizatorilor (e.g., fenomenul blog, tehnologia RSS/Atom (Really Simple Syndication) pentru mediatizarea (syndication) coninutului site-urilor Web, adnotarea coninuturilor, relaiilor ntre blog-uri prin intermediul permalinks, social networks, social Web, semantic Web).

- 11 -

Eugen ZAHARESCU Programare Web - CURS InfoDida-1 Aplicaiile Web 2.0 utilizeaz adesea combinaii ale unor tehnici/tehnologii care au existat nc din anii 90 ai secolului trecut (e.g., Web syndication 1997, servicii Web - 1998). Astfel, pe de o parte, noul concept are un rol de integrare, oferind noi valene i direcii de dezvoltare tehnicilor/tehnologiilor amintite (e.g., AJAX). Pe de alt parte, multe dintre conceptele i tehnologiile dezvoltate recent (Weblog, linklog, wiki, podcast) sunt vzute ca o contribuie la dezvoltarea Web 2.0.

Semantic Web, ultima frontierSemantic Web (Web-ul semantic) asigur un cadru comun de diseminare, partajare i reutilizare a informaiilor dincolo de graniele unei aplicaii, ale unei organizaii sau ale unei comuniti umane. Semantic Web este Web-ul informaiilor (sau al datelor). n acest moment, exist un volum uria de date care se utilizeaz zilnic i care nu fac parte din sistemul WWW. Explicaia const n faptul c datele sunt controlate de aplicaii i fiecare aplicaie le pstreaz i le conserv pentru ea nsi. Cu alte cuvinte, nu exist, deocamdat, un web al datelor. Semantic Web se refer la dou direcii conceptuale de evoluie i dezvoltare: 1. Formate comune pentru integrarea i combinarea informaiilor(datelor) obinute din diverse surse. Aceasta este o deosebire major fa de Web-ul original care era concentrat, n principal, pe activitile de schimburi/tranzacii de documente. Limbaje de nregistrare a modului n care informaiile(datele) sunt asociate obiectelor din lumea real. Aceasta va permite unei persoane sau unei maini (sistem de calcul) s nceap cutarea/investigaia dintr-o baz de date i apoi s se deplaseze printr-un ir nesfrit de baze de date interconectate semantic ntre ele pentru c se refer la acelai obiect sau aceeai entitate sau aceeai clas sau acelai domeniu.

2.

La activitatea de definire, proiectare i dezvoltare a Web-ului Semantic particip un numr mare de cercettori coordonai de Consoriul W3C. Scopurile vizionare ale lui Semantic Web sunt de a extinde principiile funcionale ale Web-ului actual de la documente spre informaii(date). Aceast extindere va amplifica potenialul sistemului WWW pentru c va permite unor largi comuniti umane s acceseze n comun colecii uriae de informaii, care apoi pot fi prelucrate automat de instrumentele software. Semantic Web va permite realizarea urmtoarelor obiective: 1. Extragerea datelor n forma lor real, astfel nct programele s nu mai fie nevoite s le caute n paginile de Web, din care trebuie mai nti s elimine informaiile despre formatare, imaginile i alte elemente suplimentare neutilizabile. Scrierea/generarea de fiiere care descriu/explic relaiile/asociaiile dintre diferite seturi de date. Aceasta va permite sistemelor de calcul s urmreasc hyper-legturile semantice dintre obiectele care fac parte din acelai concept abstract i astfel s integreze automat date din mai multe surse diferite. - 12 -

2.

Eugen ZAHARESCU Programare Web - CURS InfoDida-1 Tehnologiile Semantic Web pot fi utilizate n domenii variate de aplicaii: Integrarea datelor. Informaii din locaii diferite i n formate diferite pot fi integrate ca un tot unitar ntr-o aplicaie; Descoperirea i clasificarea resurselor. Aceasta va asigura capaciti mbuntite motoarelor de cutare specializate pe domenii de cunotine. Catalogarea informaiilor care descriu coninutul i relaiile disponibile ntr-un anume site/pagin de Web sau bibliotec digital. Implementarea agenilor software inteligeni care permit diseminarea/partajarea i schimbul de cunotine. Evaluarea coninutului. Descrierea coleciilor de pagini care reprezint un singur document logic Descrierea drepturilor de proprietate intelectual ale paginilor de Web. Semantic Web (date integrate semantic) Web 2.0 (servicii i date) Web 1.0 (documente)

Evoluia conceptual a sistemului WWW.

Specificaiile Semantic WebTehnologiile Semantic Web dezvoltate de diferite organizaii sunt aplicate ntr-o gam larg de studii de caz grupate n colecii disponibile n site-ul Consoriului W3C (http://www.w3.org/).

Resource Description Framework (RDF)Resource Description Framework (RDF) integreaz o varietate de aplicaii din cataloagele bibliotecilor i directoarelor din ntreaga lume n sisteme de culegere de tiri, evenimente i colecii personalizate de fotografii i muzic prin utilizarea XML (EXtesible Markup Language) ca sintax a transferului de date. Specificaile RDF furnizeaz un sistem simplu de ontologii ce asigur suportul necesar schimburilor/transferurilor de cunotine pe Web. Se spune chiar c XML (EXtesible Markup Language) reprezint ansamblul ontologiilor de nivel 0. RDF/XML Syntax Specification (Revised), W3C Recommendation, February 10, 2004, Dave Beckett, ed.

- 13 -

Eugen ZAHARESCU Programare Web - CURS InfoDida-1 RDF Vocabulary Description Language 1.0: RDF Schema, W3C Recommendation, February 10, 2004, Ramanathan V. Guha, Dan Brickley, eds. Resource Description Framework (RDF): Concepts and Abstract Syntax, W3C Recommendation, February 10, 2004, Graham Klyne, Jeremy J. Carroll, eds. RDF Semantics, W3C Recommendation, February 10, 2004, Patrick Hayes, ed. RDF Test Cases, W3C Recommendation, February 10, 2004, Jan Grant, Dave Beckett, eds.

Web Ontology Language (OWL)Web Ontology Language (OWL) este un limbaj de marcare semantic pentru publicarea i partajarea ontologiilor n sistemul World Wide Web. OWL se dezvolt ca un vocabular extins al lui RDF (Resource Description Framework) i este derivat din DAML+OIL Web Ontology Language. OWL Web Ontology Language Reference, W3C Recommendation, February 10, 2004, Guus Schreiber, Mike Dean, eds. Frank van Harmelen, Jim Hendler, Ian Horrocks, Deborah L. McGuinness, Peter F. Patel-Schneider, Lynn Andrea Stein, authors. OWL Web Ontology Language Use Cases and Requirements, W3C Recommendation, February 10, 2004, Jeff Heflin, ed. OWL Web Ontology Language Semantics and Abstract Syntax, W3C Recommendation, February 10, 2004, Peter F. Patel-Schneider, Patrick Hayes, Ian Horrocks, eds. OWL Web Ontology Language Overview, W3C Recommendation, February 10, 2004, Deborah L. McGuinness, Frank van Harmelen, eds. OWL Web Ontology Language Test Cases, W3C Recommendation, February 10, 2004, Jeremy J. Carroll, Jos De Roo, eds. OWL Web Ontology Language Guide, W3C Recommendation, February 10, 2004, Michael K. Smith, Deborah L. McGuinness, Chris Welty, eds Ontologia, n sens filozofic, reprezint o teorie privitoare la existen (sau o teorie asupra a ceea ce se consider, la modul general, c exist). Construirea mai multor sisteme filosofice pornete de la o Ontologie, adic de la definirea categoriilor fundamentale ale entitilor ce provin din realitate precum i a relaiilor dintre acestea. Termenul de ontologie este utilizat i n domeniul informaticii, mai ales n cadrul inteligenei artificiale (IA) sau al domeniilor nrudite. Dupa M. Gruber definiia conceptului informatic de ontologie ar putea fi urmtoarea: O ontologie reprezint conceptualizarea unui domeniu al cunoaterii ntr-un format destinat a fi procesat de calculator, format ce modeleaz entiti, atribute, relaii i axiome". n inteligena artificial i n domeniul Web-ului semantic, ontologia se refer la precizarea i descrierea, la modul general, a ceea ce se consider i este recunoscut c exist.

- 14 -

Eugen ZAHARESCU Programare Web - CURS InfoDida-1 SGML

HTML

XML

XHTML

Ontologia meta-limbajelor. SGML(Standard Generalized Markup Language), HTML(Hypertext Markup Language), XML(Extensible Markup Language), XHTML(Extensible Hypertext Markup Language)

Gleaning Resource Descriptions from Dialects of Languages (GRDDL):GRDDL este un mecanism pentru Gleaning Resource Descriptions from Dialects of Languages (Culegerea Descrierilor de Resurse din Dialecte de Limbaje). Specificaiile GRDDL introduc marcajele n standardele existente pentru a declara faptul c un document XML include date compatibile cu Resource Description Framework (RDF) i pentru al asocia cu algoritmii (reprezentai de obicei n limbajul XSLT), cu scopul de a extrage aceste date din document. Gleaning Resource Descriptions from Dialects of Languages (GRDDL), W3C Recommendation, September 11, 2007, Dan Connolly, ed. GRDDL Test Cases, W3C Recommendation, September 11, 2007, Chimezie Ogbuji, ed.

SPARQL Query Language for RDFSPARQL reprezint limbajul de interogare pentru RDF(Resource Description Framework). RDF este un graf orientat i etichetat care formateaz datele pentru reprezentarea informaiei pe Web. SPARQL poate fi utilizat pentru a exprima interogri asupra unor surse de date diverse, fie c datele sunt stocate n original ca RDF, fie c sunt vzute ca RDF printr-un intermediar. SPARQL Query Language for RDF, W3C Recommendation, January 15, 2008, Andy Seaborne, Eric Prud'hommeaux, eds. SPARQL Protocol for RDF, W3C Recommendation, January 15, 2008, Elias Torres, Lee Feigenbaum, Kendall Grant Clark, eds. SPARQL Query Results XML Format, W3C Recommendation, January 15, 2008, Dave Beckett, Jeen Broekstra, eds..

- 15 -

Eugen ZAHARESCU Programare Web - CURS InfoDida-1

CAPITOLUL I Limbajul PHP (PHP Hypertext Preprocessor)1.1.Introducere. Funcionarea motorului PHP

Definiie recursiv: PHP (PHP Hypertext Preprocessor) = Preprocesorul de Hypertext PHP (Preprocesorul de Hypertext PHP (Preprocesorul de Hypertext PHP(...))) PHP (acronim recursiv pentru "PHP: Hypertext Preprocessor") este un limbaj de scripting (realizat i distribuit n sistem Open Source) ce poate fi ncapsulat n HTML i care se utilizeaz pe scar larg n aplicaiile bazate pe tehnologiile Web, inclusiv n aplicaii de comer electronic. Exemplul 1.1. Trei scripturi elementare introductive ce conin respectiv numai cod PHP, cod PHP + cod HTML i cod PHP + cod JavaScript

Exemplul 1 Exemplul 2 Exemplul 3

Se observ din acest exemplu cum difer un script PHP fa de un script scris n alte limbaje cum ar fi Perl (Practical Extraction and Report Language) sau C -- n loc de a scrie un program cu o mulime de comenzi pentru a produce un HTML, se scrie un script HTML ce include cod pentru a realiza un obiectiv (n acest caz, a afia un text). Codul PHP este delimitat de coduri de start i de sfrit ()ce i permit s intri i s iei din "modul PHP". Diferena dintre PHP i alte limbaje cum ar fi JavaScript este aceea c PHP este executat pe server pe cnd JavaScript este executat pe calculatorul clientului (de ctre programul de navigare pe Internet). Dac ar fi s ai un script similar cu cel de mai sus pe serverul tu, clientul ar primi doar rezultatele scriptului ce este rulat, fr a vedea n nici un fel codul din spatele acestuia. Se poate chiar configura serverul de web ca acesta s proceseze toate fiierele HTML cu PHP i astfel nct nici un utilizator nu poate vedea ce exist n fiierele serverului. PHP este n principal axat pe partea de scripting ce ruleaz pe server, deci se poate realiza i un program CGI(Common Gateway Interface), cum ar fi colectarea de date de la formulare, generarea de coninut dinamic sau trimitere i primire de cookie-uri.

Figura 1.1.

Funcionarea motorului PHP

1.

Exist trei domenii principale unde sunt folosite scripturile PHP. Scripturi ce ruleaz pe server. Acesta este cel mai tradiional i cel mai important pentru PHP. Sunt necesare trei lucruri pentru a face s mearg: 1. 1. Interpretorul PHP (CGI sau modul server), 1. 2. Un server de web i 1. 3. Un navigator de web. - 17 -

Eugen ZAHARESCU Programare Web - CURS InfoDida-1 Este nevoie ca serverul de web s fie pornit, cu o conexiune PHP instalat. Rezultatul programelor PHP poate fi vizualizat cu un navigator prin intermediul serverului de web.2.

Scripting la linia de comand. Se poate face ca PHP s ruleze fr a fi nevoie de server i de browser, ci doar de interpretorul PHP. Aceast metod este ideal pentru scripturile ce se vor a fi executate regulat folosind cron (task scheduler n Windows), sau sarcini simple de procesare a textelor. Scrierea de aplicaii ce ruleaz pe partea clientului n mod grafic (GUI). Se pot folosi facilitile avansate ale PHP-ului n aplicaiile ce ruleaz de partea clientului prin exploatarea extensiei PHP-GTK pentru a scrie astfel de programe care pot rula, de asemenea pe platforme diferite folosind aceast metoda.

3.

PHP poate fi folosit pe aproape toate marile sisteme de operare, incluznd Linux, multe variante de Unix (incluznd HP-UX, Solaris i OpenBSD), Microsoft Windows, Mac OS X, RISC OS, probabil i altele. PHP are, de asemenea, suport pentru majoritatea serverelor de web din prezent. Acestea includ serverele Apache, Microsoft Internet Information Server, Personal Web Server, Netscape i iPlanet, serverul Oreillz Website Pro, Caudium, Xitami, OmniHTTPd, i multe atele. Pentru majoritatea serverelor, PHP are un modul, iar pentru celelalte suport standardul CGI, PHP putnd s lucreze ca un procesor CGI. Deci, cu PHP, se poate alege liber un sistem de operare i un server de web. Exist, de asemenea, posibilitatea de a alege programarea procedural sau programarea orientat obiect, sau chiar un mixaj ntre aceste stiluri de programare. Una dintre cele mai puternice i importante faciliti n PHP o reprezint suportul su pentru o gam larg de baze de date. Scrierea unei pagini de web ce interacioneaz cu o baz de date este simpl i poate fi realizat pentru urmtoarele baze de date: Adabas D dBase Empress FilePro (doar citire) Hyperwave IBM DB2 Informix Ingres InterBase FrontBase mSQL Direct MS-SQL MySQL ODBC Oracle (OCI7 i OCI8) Ovrimos PostgreSQL Solid Sybase Velocis Unix dbm

n plus, PHP suport ODBC, standardul Open DataBase Connectivity, care permite conectarea la orice alt baz de date care este realizat dup o tehnologie ce suporta acest standard mondial. Funciile PHP pentru acces la bazele de date nu sunt standardizate. Aceasta conduce la necesitatea existenei unei biblioteci de clase pentru baze de date care s ascund diferenele ntre API(Aplication Program Interface) ale diverselor servere de baze de date (i.e. s ncapsuleze particularitile implementrilor acestora) astfel nct interschimbul de informaii privitoare la bazele de date i coninutul lor s se realizeze facil. O implementare care satisface aceste cerine este ADOdb (ActiveX Data Objects for Data Base).

- 18 -

Eugen ZAHARESCU Programare Web - CURS InfoDida-1 n momentul de fa biblioteca ADOdb suport Access, MySQL, Oracle, Microsoft SQL Server, Sybase, Sybase SQL Anywhere, Informix, PostgreSQL, FrontBase, Interbase (variantele Borland i Firebird), FoxPro, ADO, DB2, SAP DB i ODBC. PHP se poate folosi cu succes n domeniul comerului electronic, existnd deja un mare arsenal de funcii pentru plai on-line, funcii de plat Cybercash, CyberMUT, VeriSign Payflow Pro i CCVS. Exemplul 1.2. Afiarea unei variabile care este element al unui tablou (Variabila superglobal _SERVER)