wade 2014—2015 (01/12): dezvoltarea de aplicaţii web: concepte & viziune

102
Dr. Sabin Buragawww.purl.org/net/busaco Dezvoltarea aplicațiilor Web concepte primare și viziune

Upload: sabin-buraga

Post on 15-Jul-2015

446 views

Category:

Technology


4 download

TRANSCRIPT

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Dezvoltarea aplicațiilor Web

☸concepte primare și viziune

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

“A defini înseamnă a ucide,a sugera înseamnă a crea.”

Stéphane Mallarmé

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Prolog:

Ce este Web-ul?

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

world wide web

Web, WWW, „pânza de păianjen mondială”

serviciu Internet

WWW Internet

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

world wide web

Idee (Sir Tim Berners-Lee la CERN – 1989)

integrarea unor sisteme informaționaledisparate într-un mod unitar,

fără diferențe între sursele de date

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

world wide web

Idee (Sir Tim Berners-Lee la CERN – 1989)

integrarea unor sisteme informaționaledisparate într-un mod unitar,

fără diferențe între sursele de date

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

world wide web

Idee (Sir Tim Berners-Lee la CERN – 1989)

integrarea unor sisteme informaționaledisparate într-un mod unitar,

fără diferențe între sursele de date

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

world wide web

Idee (Sir Tim Berners-Lee la CERN – 1989)

integrarea unor sisteme informaționaledisparate într-un mod unitar,

fără diferențe între sursele de date

anything can link to anything

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

world wide web

“a common information space in whichwe communicate by sharing information”

Sir Tim Berners-Lee (2013)

25 de ani de Webhttp://www.slideshare.net/busaco/25-de-ani-de-web

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

world wide web

Bazat pe modelul client/server

serverWeb

client Web

(browser)

cerere

răspuns

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

…și pe hipertext (hipermedia)

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

world wide web

Scopuri principale:

independența de dispozitivindependența de software

scalabilitateaubicuitatea

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

world wide web

Scopuri principale:

independența de dispozitivindependența de software

scalabilitateaubicuitatea

caracter deschisopen standards

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

world wide web

Functioneaza conform reglementarilorConsortiului Web

MIT, ERCIM, Keio University etc.Apple, BBC, HP, IBM, Intel, OpenCar, Microsoft, Twitter,…

www.w3.org

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

arhitectura Web-ului

Resursele sunt identificate prin adresa lor

identificator uniform de resurseURI – Uniform Resource Identifier

http://slideshare.net/busaco/presentations

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

arhitectura Web-ului

Accesul la conținutul – reprezentarea –resurselor Web

se realizează printr-un protocol

HTTP – HyperText Transfer Protocol

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

arhitectura Web-ului

codificarea datelor

Unicode

nume de domenii

DNS

protocoaleleInternetTCP/IP

adrese WebURI = URL + URN

protocoale WebHTTP, HTTPS, SPDY

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

resursele – documentele – includ <marcaje />

pagini Web

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

marcajele conțin la rândul lor URI-urihipertext

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Relațiile dintre o resursă Web, adresa ei (URI) șireprezentarea structurată a resursei

informații meteo

despre Iași

http://world.info/europe/romania/iasi/weather?today

<weather>

<point lat=… long=…>

<name lang= "ro">

Iași, România

</name>

<type>city</type>

</point>

<temperature when=…>

<value>…</value>

</temperature>

</weather>

reprezentare

adresabilitate via URI

resursă Web

identifică

reprezintă

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Relațiile dintre o resursă Web, adresa ei (URI) șireprezentarea structurată a resursei

informații meteo

despre Iași

http://world.info/europe/romania/iasi/weather?today

<weather>

<point lat=… long=…>

<name lang= "ro">

Iași, România

</name>

<type>city</type>

</point>

<temperature when=…>

<value>…</value>

</temperature>

</weather>

reprezentare

adresabilitate via URI

resursă Web

identifică

reprezintă

reprezentarea – într-un format deschis (e.g., HTML, XML, JSON, RDF,…) – include date propriu-zise + meta-date

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Primul act:

Web 1.0

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Sit Web

sistem pe care rulează un server Webgăzduind o serie de pagini (resurse) înrudite

ale unei organizații, companii sau persoane

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Aplicație Web

colecție interconectată de pagini Webcu conținut generat dinamic, menită a oferi

utilizatorilor o funcționalitate specifică

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Aplicație Web

interacțiunea dintre aplicație și utilizatoriare loc via o interfață Web

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Aplicație Web

interacțiunea dintre aplicație și utilizatoriare loc via o interfață Web

uzual, sit Web = aplicație Web

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Aplicație Web

exemple:Amazon, Codepen, Coursera, Dropbox, Expedia, Flickr,

InfoQ, info.uaic.ro, Koding, PHPMyAdmin, Reddit, Quora, SlideShare, Snapchat, Vimeo, webmin, WordPress

…și multe, multe, multe altele

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Caracterizare

Arhitectura unei aplicaţii Web

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Aplicație Web = Interfață + Conținut (Date) + Program

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Aplicație Web = Interfață + Conținut (Date) + Program

mitul 1: cea mai importantă este interfațamitul 2: cel mai important este programulmitul 3: cele mai importante sunt datele

standarde deschise: HTML, CSS, Ajax, SVG, WebGL,…

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Aplicație Web = Interfață + Conținut (Date) + Program

mitul 1: cea mai importantă este interfațamitul 2: cel mai important este programulmitul 3: cele mai importante sunt datele

server: C#, Java, JavaScript, PHP, Ruby,…; client: JavaScript

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Aplicație Web = Interfață + Conținut (Date) + Program

mitul 1: cea mai importantă este interfațamitul 2: cel mai important este programulmitul 3: cele mai importante sunt datele

relaționale (SQL), grafuri (NoSQL), JSON, XML, RDF

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Aplicație Web = Interfață + Conținut (Date) + Program

mitul 1: cea mai importantă este interfațamitul 2: cel mai important este programulmitul 3: cele mai importante sunt datele

fapt: sunt importante toate!

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Actul al doilea:

Web-ul social

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Web-ul prezent

WWW platforma în care utilizatorulîși controlează propriile date

așa-numitul Web 2.0, conform Tim O’Reilly, 2005

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Web-ul social: Caracteristici

Participareread/write Web

colaborare, comunități,conectivitate inter-personală și între aplicații

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Web-ul social: Caracteristici

Partajare de artefacte informaționale

documente, fotografii, multimedia, cod-sursă etc.

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Web-ul social: Caracteristici

Inteligența colectivă

editare și management colaborativ al conținutului

aplicații de tip wiki

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Web-ul social: Caracteristici

Servicii și nu pachete softwareaplicațiile masive („mamut”) sunt substituite

de cele constituite din servicii specifice,disponibile pe Web, ușor de înlocuit

SaaS – Software as a Service

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Web-ul social: Caracteristici

Software rulat oriunde

ubicuitatea aplicațiilor Web

bookmark-uri salvate local (pentru fiecare browser)versus

bookmark-uri disponibile pe Web, ușor de accesat și de partajat cu alții

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Web-ul social: Caracteristici

Mediatizare (syndication) Web

date privitoare la un sit Web sunt expuse libervia un flux (feed)

în format RSS (Really Simple Syndication) sau Atom

suplimentar, podcast-uri

XML

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Web-ul social: Caracteristici

Transformare/refolosire a datelor

datele sunt – sau ar trebui să fie – disponibileîn formate deschise, universale, facil de procesat

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Web-ul social: Caracteristici

Transformare/refolosire a datelor

datele sunt – sau ar trebui să fie – disponibileîn formate deschise, universale, facil de procesat

vezi succesul JSON (JavaScript Object Notation)

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Web-ul social: Caracteristici

Încredere radicală

autentificare și/sau autorizare descentralizată

OpenIDOAuth

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Web-ul social: Caracteristici

Interacțiune bogată cu utilizatorulRIA – Rich Internet Applications

aplicarea modalităților de interacțiune tradițională(la nivel de desktop) în contextul aplicațiilor Web

(re)vezi materia „Interacțiune om-calculator”http://profs.info.uaic.ro/~busaco/teach/courses/hci/

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Web-ul social: Caracteristici

Valori de bază

deschidere, transparență, respect

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Web-ul social: Caracteristici

Valori de bază

deschidere, transparență, respect

inițiativa Creative Commonsreasonable, flexible copyright

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Web-ul social: Caracteristici

http://creativecommons.org/about/licenses/

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Web-ul social: Caracteristici

Valori de bază

partajarea pe Web a datelor deschise (open data)

detalii în prezentarea „Date de 5 stele”:www.slideshare.net/busaco/sabin-buraga-date-de-5-stele

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Web-ul social: Caracteristici

Valori de bază

partajarea pe Web a datelor deschise (open data)

exemplificări:Data Hub – thedatahub.org

Open Data Commons – opendatacommons.org

Wikimedia Commons – commons.wikimedia.org

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Intermezzo

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

remarci

Constituirea unor „pânze” (web-uri) – grupări, rețele – de date/informații/cunoștințe

disponibile liber, evoluând conform intereselor unei comunităţi

(e.g., utilizatori, organizație, industrie,…)

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Cum pot fi descrise la nivelul mașiniiaceste web-uri?

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Actul al treilea:

Web-ul datelor

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

necesități

o manieră de a atașa meta-date

date privitoare la date„mai mult decât datele”

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

necesități

o manieră de a atașa meta-date

vocabulare de termeni descriind „ceva”(proprietăți, domenii, persoane, produse, lumi,...)

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

necesități

un mod de specificare de relații între resurse

structuri de organizare a datelorîn cadrul unui sau mai multor web-uri

(i.e. grafuri de cunoștințe – knowledge graphs)

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

necesități

modelarea & procesarea cunoștințelor

despre „lucruri” (knowledge about things)

Mike Bergman, The Rationale for Semantic Technologies (2012)http://www.mkbergman.com/1015/the-rationale-for-semantic-technologies/

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

necesități

modelarea & procesarea cunoștințelor

realizate sistematic, formalizat

ontologiidescrise riguros

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

necesități

modelarea & procesarea cunoștințelor

create ad-hoc, manual, de către utilizatorii obișnuiți

folksonomii

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

necesități

modelarea & procesarea cunoștințelor

create ad-hoc, manual, de către utilizatorii obișnuiți

folksonomii

uzual, tagging

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

necesități

Modelarea datelor trebuie să facă implicitul explicit

„java” limbajul, insula ori sortimentul de cafea?

java

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

necesități

„Java este un limbaj de programare.”„XWiki este o aplicație Web scrisă în limbajul Java.”

„Programarea Java poate fi mai ușoară decât cea în C++.”

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

necesități

„Java este un limbaj de programare.”„XWiki este o aplicație Web scrisă în limbajul Java.”

„Programarea Java poate fi mai ușoară decât cea în C++.”

ușor de înțeles de (unii) oameni

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

necesități

„Java este un limbaj de programare.”„XWiki este o aplicație Web scrisă în limbajul Java.”

„Programarea Java poate fi mai ușoară decât cea în C++.”

…dar pot fi oare înțelese de către calculatoare?

ușor de înțeles de (unii) oameni

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

rdf

RDF (Resource Description Framework)

folosit la asocierea de meta-date resurselor Webși la specificarea relațiilor dintre resurse

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Titlu: Remember That NightArtist: David GilmourAnul apariției: 2007Format: Blu-rayAudio: Dolby True-HDVideo: VC-1 (1080i)Tip: concertSubtitrare: N/ADetalii: www.davidgilmour.com

engleză

http://www.blu-ray.com/movies/David-Gilmour-Remember-That-Night-Blu-ray/493/

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Titlu: Remember That NightArtist: David GilmourAnul apariției: 2007Format: Blu-rayAudio: Dolby True-HDVideo: VC-1 (1080i)Tip: concertSubtitrare: N/ADetalii: www.davidgilmour.com

subiect

http://www.blu-ray.com/movies/David-Gilmour-Remember-That-Night-Blu-ray/493/

predicat

obiect

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Alina

Bogdan

relațiaknows

deține

proprie-tatea

areNume

concert

photo

www.flickr.com/bogdan areTag

clasa persoanelor

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

rdf

Interogarea datelor RDFse poate realiza via limbajul SPARQL

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

rdf

Interogarea datelor RDFse poate realiza via limbajul SPARQL

serviciile SPARQL pot fi descrise și invocatevia tehnologiile serviciilor Web clasice – e.g., REST

exemple:http://dbpedia.org/sparql/

http://graph.facebook.com/

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

rdf: utilizări

vocabulare de meta-date privind resursele

set standardizat de meta-date asociate documentelorDCMI (Dublin Core Metadata Initiative)

documente multimedia partajabileAdobe XMP (Extensible Metadata Platform)

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

rdf: utilizări

http://purl.org/vocab/

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

rdf: utilizări

relații între resurse

rețele socialeFOAF (Friend Of A Friend)

proiecte softwareDOAP (Description Of A Project)

comunități onlineSIOC (Semantically Interconnected Online Communities)

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

rdf: utilizări

modelarea cunoștințelorîn termeni „înțeleși” de software

RDF Schema

SKOS (Simple Knowledge Organizational System)

OWL (Web Ontology Language)

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

AAA – Anyone can say Anything about Any topic

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Cum se asigură interoperabilitatea,consistența și refolosirea web-urilor?

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

linked data

Inițiativă privind publicarea și reutilizareadatelor structurate disponibile liber pe Web

interconectare a resurselor descrise la nivel de Web

http://linkeddata.org/

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

linked data

Inițiativă privind publicarea și reutilizareadatelor structurate disponibile liber pe Web

inclusiv folosind formatul de date JSON – JSON-LD

http://json-ld.org/

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

http://lod-cloud.net/

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Câteva exemplificări concrete?

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

augmentarea căutării resurselor Web pe bazamicroformatelor, schemelor de microdate HTML5 și RDFa

studiu de caz: Google Knowledge Graphhttp://www.google.com/insidesearch/features/search/knowledge.html

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

definirea unui graf social privind persoanele & relațiile acestora cu diverse resurse de interes (fotografii, produse, locații geografice,…)Facebook Open Graph – https://developers.facebook.com/docs/graph-api

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

interogări asupra DBpedia(varianta procesabilă de către mașină a enciclopediei Wikipedia)

http://dbpedia.org/isparql/

Cine este Linus Torvalds?

PREFIX rdf:

<http://www.w3.org/1999/02/22-rdf-syntax-ns#>

SELECT DISTINCT *

WHERE {

<http://dbpedia.org/resource/Linus_Torvalds>

rdf:type ?val

}

LIMIT 20

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

interogări asupra DBpedia(varianta procesabilă de către mașină a enciclopediei Wikipedia)

http://dbpedia.org/isparql/

Cine este Linus Torvalds?

diverse URI-uri desemnând concepte(definite în cadrul unor web-uri):

Person, LivingPeople, LinuxKernelHackers,…

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

modelarea cunoștințelor

cu aplicabilitate în mass-mediaexemplu: BBC

www.w3.org/2001/sw/sweo/public/

UseCases/BBC/

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

recomandări personalizate via baze publice de cunoștințeexemplificare: seevl.fm – http://semanticweb.com/tag/seevl

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

„Epilog”:

următorii (zeci de) ani…

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

“concluzii”

constituirea unui Web of Data

„Web 3.0”? „semantic Web”?

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

“concluzii”

constituirea unui Web of Data

acces pe baza protocolului HTTP

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

“concluzii”

constituirea unui Web of Data

descriere de resurse și a relațiilor dintre ele via RDF

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

“concluzii”

constituirea unui Web of Data

datele pot fi „mixate” pe baza vocabularelor multiple

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

“concluzii”

constituirea unui Web of Data

datele pot fi „mixate” pe baza vocabularelor multiple

numeroase vocabulare sunt deja standardizate

inclusiv în vederea regăsirii de resurse Web via motoare

de căutare – e.g., microdate HTML5: schema.org

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

“concluzii”

constituirea unui Web of Data

structurarea avansată via modele conceptuale:

taxonomii, lexicoane, ontologii – folosind OWL et al.

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

“concluzii”

constituirea unui Web of Data

structurarea avansată via modele conceptuale:

taxonomii, lexicoane, ontologii – folosind OWL et al.

managementul cunoștințelor (knowledge management)

+

inginerie ontologică (ontology engineering)

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Punct de vedere

Web attitude (Tim Berners-Lee)

Anyone can say anything about anything

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Punct de vedere

Web attitude (Tim Berners-Lee)

No one knows everything about anything

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

Punct de vedere

Web attitude (Tim Berners-Lee)

My system is most valuable

because of its interconnection to its peers

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

rezumat

☸de la Web-ul clasic, la cel social

și la viitorul datelor procesabile de către computer

Dr.

Sab

in B

ura

ga

www.purl.org/net/busa

co

episodul viitor: servicii Web prin REST