O prezentare referitoare la dezvoltarea aplicațiilor Web dedicată elevilor de liceu. Prelegerea a fost susținută în cadrul Școlii de vară SummerIS organizată la Universitatea Alexandru Ioan Cuza din Iași, Facultatea de Informatică (iulie 2019).
A presentation regarding Web application development delivered to high-school students, a part of the SummerIS summer school organized at the Faculty of Computer Science, Alexandru Ioan Cuza University of Iasi, Romania (July 2019).
2. Dr.Sabin-CorneliuBuraga–https://profs.info.uaic.ro/~busaco/
Dr. Sabin-Corneliu Buraga (1974—2021)
membru al Facultății de Informatică din 1999
pasionat de tehnologii Web și open source/data din 1996
inițiator al cursului Tehnologii Web – 1999/2000
autor al primelor cărți românești dedicate
tehnologiilor Web (2001) și Web-ului semantic (2004)
doctorat în tehnologii Web – 2004
laureat al Academiei Române – 2005
(co-)autor al unor lucrări (științifice) de specialitate
mentor al multor echipe studențești
distins cu titulatura „Profesor Bologna” – 2017
7. Dr.Sabin-CorneliuBuraga–https://profs.info.uaic.ro/~busaco/
World Wide Web
bazat pe principii & standarde deschise
stipulate de Consorțiul Web
universalitate + ubicuitate – Web for all & on everything
interacțiuni complexe – Web for rich interaction
acces la date & servicii – Web of data & services
încredere – Web of trust
www.w3.org
34. Dr.Sabin-CorneliuBuraga–https://profs.info.uaic.ro/~busaco/
exemple de aplicații Web:
Adminer, AWS Cloud9, DB Fiddle, Devdocs.io, GitHub, IDEone,
info.uaic.ro, JS Bin, Medium, Mockaroo, OpenStreetMap, Reddit,
Quora, SlideShare, Vimeo, Wikipedia, WordPress, XSS Game
…și multe, multe, multe altele
aplicație Web găzduită
la nivel de server(e) Web
clienți (umani/programe)
formulând & trimițând cereri
38. Dr.Sabin-CorneliuBuraga–https://profs.info.uaic.ro/~busaco/
via o interfață Web, utilizatorul interacționează cu
clientul (frontend) și inițiază acțiuni – e.g., cereri HTTP
(a)sincrone – executate de diverse componente
implementate la nivel de server (backend),
pentru a obține date de interes
client Web server Web
conținut
static
conținut
dinamic
conținut
static
conținut
dinamic
date
locale
JavaScript server de aplic., framework
HTTP
transfer
asincron
☁
date externe
(serviciu Web)
frontend backend
42. Dr.Sabin-CorneliuBuraga–https://profs.info.uaic.ro/~busaco/
Internet
(Web)
Aplicație Web = Interfață + Program + Conținut (Date)
standarde deschise
structurarea conținutului: HTML (HyperText Markup Language)
stiluri de prezentare a datelor: CSS (Cascading Style Sheets)
transfer asincron: Ajax (Asynchronous JavaScript And XML)
generare prin program: HTML5 <canvas> + JavaScript
ilustrații 2D în format vectorial: SVG (Scalable Vector Graphics)
conținut 3D (static/interactiv): WebGL + WebXR
46. Dr.Sabin-CorneliuBuraga–https://profs.info.uaic.ro/~busaco/
Internet
(Web)
Aplicație Web = Interfață + Program + Conținut (Date)
recurgerea la modele de date diverse
relațional – interogare via SQL (Structured Query Language)
bazat pe grafuri ori documente – o fațetă a „mișcării” NoSQL
cheie-valoare – e.g., formatul JSON (JavaScript Object Notation)
arborescent – XML (Extensible Markup Language)
triple – RDF (Resource Description Framework)
55. Dr.Sabin-CorneliuBuraga–https://profs.info.uaic.ro/~busaco/
client(i)
mandatar (proxy)
zid de protecție (firewall)
intermediar(i) (middleware)
server(e) Web
server(e) de aplicații
cadre de lucru, biblioteci, alte componente
server(e) de stocare persistentă – e.g., baze de date
server(e) de conținut multimedia
server(e) de management al conținutului (CMS)
aplicații/sisteme tradiționale (legacy)
56. Dr.Sabin-CorneliuBuraga–https://profs.info.uaic.ro/~busaco/
client(i)
mandatar (proxy)
zid de protecție (firewall)
intermediar(i) (middleware)
server(e) Web
server(e) de aplicații
cadre de lucru, biblioteci, alte componente
server(e) de stocare persistentă – e.g., baze de date
server(e) de conținut multimedia
server(e) de management al conținutului (CMS)
aplicații/sisteme tradiționale (legacy)
eventual, recurgând la servicii în „nori” – cloud
partajarea la cerere a resurselor de calcul și a datelor
cu alte calculatoare/dispozitive via tehnologii Internet/Web
57. Dr.Sabin-CorneliuBuraga–https://profs.info.uaic.ro/~busaco/
Aplicație
Web
Procesare la nivel de
server (backend)
Stocare
persistentă
Coursera
Django (Python),
Node.js (JS), Play (Scala)
MySQL,
Apache Cassandra
DuckDuckGo Node.js, Perl PostgreSQL
Facebook
Hack, PHP (HHVM),
Tornado (Python),
Java, JavaScript
RocksDB, Presto,
Cassandra, Beringei
Google
C++, Dart, Go, Java,
Python
BigTable, MariaDB
Linkedin
Grails (Java),
JavaScript, Scala
MySQL, Oracle DB,
RocksDB, Hadoop
Medium Node.js, Go Neo4j, Dynamo, Redis
Stack Overflow.NET Framework (C#) MS SQL Server, Redis
Wikipedia PHP (HHVM), Node MySQL/MariaDB
stackshare.io/stacks
99. Dr.Sabin-CorneliuBuraga–https://profs.info.uaic.ro/~busaco/
Web Designer
standarde Web la nivel de client: HTML5, CSS3,…
cunoștințe vizând navigatoarele Web
experiență în design vizual + design responsiv
cunoștințe privind interacțiunea Web (mobilă)
familiaritate cu JavaScript (+framework-uri/biblioteci)
paradigme de interacțiune naturală
(tactilă, bazată pe gesturi, realitate virtuală/îmbogățită – VR/AR)
100. Dr.Sabin-CorneliuBuraga–https://profs.info.uaic.ro/~busaco/
cel puțin 1 limbaj obiectual – la nivel de server/client
protocoale și standarde Internet + Web
cunoștințe privind baze de date
(inclusiv NoSQL și/sau XML)
cunoștințe vizând servicii Web
familiaritate cu alte paradigme de programare
(e.g., funcțională, reactivă, distribuită)
securitate & performanță a aplicațiilor Web
Web Developer
111. Dr.Sabin-CorneliuBuraga–https://profs.info.uaic.ro/~busaco/
Web „inteligent” – semantic Web, Web of Data
modelarea resurselor – date, informații, cunoștințe –
disponibile pe Web pentru a fi „înțelese” de calculatoare
constituirea de baze de cunoștințe (knowledge bases)
standarde Web:
RDF (Resource Description Framework)
OWL (Web Ontology Language)
Sabin Buraga, Dezvoltarea aplicațiilor Web (curs master FII, UAIC)
profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
112. Dr.Sabin-CorneliuBuraga–https://profs.info.uaic.ro/~busaco/
interogări asupra DBpedia
(varianta procesabilă de către mașină a enciclopediei Wikipedia)
diverse URL-uri
desemnând concepte
(things, not strings)
Cine este Linus Torvalds?
PersonWithOccupation
ComputerPioneers
FinnishComputerProgrammers
FreeSoftwareProgrammers
LinuxKernelHackers
LivingPeople
PeopleInInformationTechnology
Golfer
114. Dr.Sabin-CorneliuBuraga–https://profs.info.uaic.ro/~busaco/
Web „inteligent” – semantic Web, Web of Data
în conjuncție cu alte abordări:
învățare automată (machine/deep learning)
software capabil să învețe – clasifice, optimizeze,… –
și/sau să realizeze predicții fără a fi explicit programat
github.com/josephmisiti/awesome-machine-learning deeplearninggallery.com