SlideShare a Scribd company logo
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Dr. Sabin Buraga
Facultatea de Informatică, UAIC – Iași, România
profs.info.uaic.ro/~busaco/
…în 2016
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/

Ce este Web-ul?
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
World Wide Web
“a common information space
in which we communicate by sharing information”
Sir Tim Berners-Lee
a creat Web-ul în decembrie 1989
detalii istorice în Sabin Buraga, 25 de ani de Web (2014)
http://www.slideshare.net/busaco/25-de-ani-de-web
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
World Wide Web
scopuri principale:
independența de dispozitiv
independența de software
scalabilitatea
ubicuitatea
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
World Wide Web
bazat pe standarde deschise stipulate de
Consorțiul Web
www.w3.org
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
World Wide Web
un serviciu Internet
alături de poștă electronică, transfer de fișiere etc.
WWW  Internet
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Web-ul e bazat pe modelul client/server al Internet-ului
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
server
Web
client
Web
cerere
răspuns
Web-ul e bazat pe modelul client/server al Internet-ului
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
⧉
clientul Web (browser, player multimedia,
aplicație desktop/mobilă, robot al unui
motor de căutare,…) preia/trimite conținuturi
– adică date – (de) la server
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/

pentru a reprezenta aceste conținuturi,
se adoptă diverse formate de date
cel mai popular:
HTML (HyperText Markup Language)
https://www.w3.org/html/
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
conținut ≅ <marcajeHTML versiune="5.1" /> +
{ foi de stiluri: CSS } à la mode
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/

aceste conținuturi sunt stocate
în documente (pagini) Web
mai general, resurse Web
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
resursele vor fi identificate printr-o adresă Web
URL (Uniform Resource Locator)
exemplu: http://www.slideshare.com/busaco/presentations/
identificator unic
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
paginile Web – uzual, documente HTML –
includ referințe către alte resurse de interes
via adrese (URL-uri)hipertext (hipermedia)
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Web-ul reprezintă un graf hipermedia
explorat pe baza interacțiunii cu utilizatorul via URL-uri
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
la nivel de server Web, resursele (conținuturile)
solicitate de client – via un URL – sunt fie stocate static
(i.e. create manual), fie generate dinamic – pe baza
unor programe implementând diverși algoritmi
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
transferul datelor între client și server e stabilit
de un protocol de comunicație
HTTP (HyperText Transfer Protocol)
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
codificarea
datelor
Unicode
nume de
domenii
DNS
protocoalele
Internet
TCP/IP
adrese Web
URI = URL + URN
protocoale Web
HTTP, HTTPS,…
a b c … z
ș б ө Ϟ ঢ় ល ꑸ
⠳ ⵙ ⋇ ⚉ 𝔜
.edu .org .info .ro
.uaic.ro
.info.uaic.ro
TCP / UDP
IP, ICMP,…
acces la mediu
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Internet
(Web)
Client
interfață cu
utilizatorul
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Internet
(Web)
Server
sit/aplicație Web
Client
interfață cu
utilizatorul
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Internet
(Web)
Server
sit/aplicație Web
sit Web
sistem găzduind o serie de pagini (resurse) Web înrudite
ale unei organizații, companii sau persoane
Client
interfață cu
utilizatorul
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Internet
(Web)
Server
sit/aplicație Web
aplicație Web
colecție interconectată de pagini Web cu conținut generat
dinamic, oferind o funcționalitate specifică
Client
interfață cu
utilizatorul
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Internet
(Web)
Server
sit/aplicație Web
interacțiune Web
„dialogul” dintre utilizator(i) și aplicație are loc
via o interfață Web
Client
interfață cu
utilizatorul
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Internet
(Web)
Server
sit/aplicație Web
interacțiune Web
uzual, sit Web = aplicație Web
Client
interfață cu
utilizatorul
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
exemple de aplicații Web:
Cloud9, Coursera, Devdocs.io,
Dropbox, GitHub, info.uaic.ro,
Instagram, JSBin, Medium,
OpenStreetMap, PHPMyAdmin,
Reddit, Quora, SlideShare,
TED.com, Tumblr, Vimeo,
webmin, Wikipedia, WordPress
…și multe, multe, multe altele
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Internet
(Web)
Server
sit/aplicație Web
Date
stocate
persistent
Client
interfață cu
utilizatorul
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Internet
(Web)
Server
sit/aplicație Web
Date
stocate
persistent
accesul la date poate fi realizat via (micro-)servicii Web
software oferind o funcționalitate specifică în urma
căreia se obțin date de interes – uzual, apelând la
un API (Application Programming Interface)
Client
interfață cu
utilizatorul
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
💡
Care e arhitectura generică
a unei aplicații Web?
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Internet
(Web)
tipic, o aplicație Web implică trei strate (3-tier)
client server de aplicații stocare
(interface) (application) (persistence)
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Sponge / Database
Jelly / Business Logic
Custard / Page Logic
Cream / Markup
Fruit / Presentation
C. Henderson, Scalable Web Architectures, Web 2.0 Expo, 2007: iamcal.com/talks/
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
mitul 1: cea mai importantă este interfața
Dr.Sabin-CorneliuBuraga–http://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)
ilustrații 2D în format vectorial: SVG (Scalable Vector Graphics)
conținut 3D: WebGL
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
mitul 2: cel mai important este programul
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Internet
(Web)
Aplicație Web = Interfață + Program + Conținut (Date)
server: C#, Go, Java, JavaScript, PHP, Python, Ruby, Scala etc.
client: JavaScript + API-uri HTML5 implementate de browser
servere de aplicații Web, framework-uri,
biblioteci, componente,…
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
mitul 3: cele mai importante sunt datele
(“content is king”)
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Internet
(Web)
Aplicație Web = Interfață + Program + Conținut (Date)
recurgerea la modele diverse
relațional – interogare via SQL (Structured Query Language)
bazat pe grafuri – o fațetă a „mișcării” NoSQL
cheie-valoare – e.g., formatul JSON (JavaScript Object Notation)
arborescent – XML (Extensible Markup Language)
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Aplicație Web = Interfață + Program + Conținut (Date)
mitul 1: cea mai importantă este interfața
mitul 2: cel mai important este programul
mitul 3: cele mai importante sunt datele
fapt: sunt importante toate!
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
View
(prezentare + interacțiune)
Model
(structura datelor)
demarcarea responsabilităților
(separation of concerns)
modelul de structurare a datelor este separat
de maniera de procesare (controlul aplicației) și
de modul de prezentare a acestora (interfața Web)
Controller
aplicație (server și/sau client)
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
View
(prezentare + interacțiune)
Model
(structura datelor)

HTML, CSS, SVG, MathML, WebGL,…

SQL, JSON, XML (XQuery), RDF (SPARQL)
💡
servere de aplicații, framework-uri etc.
arhitectura generică a unei aplicații Web
va consta dintr-un set de resurse referitoare la
model, view și controller – MVC
Controller
aplicație (server și/sau client)
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
uzual, mediul de dezvoltare – la nivel de server/client –
(i.e. framework-ul Web) impune o anumită structură
a fișierelor aplicației ce va fi implementată
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
├───app
│ ├───assets
│ │ ├───images
│ │ ├───javascripts
│ │ └───stylesheets
│ ├───controllers
│ ├───helpers
│ ├───mailers
│ ├───models
│ └───views
│ └───layouts
├───config
├───db
├───doc
├───lib
├───log
├───public
├───script
├───test
│ ├───fixtures
│ ├───functional
│ ├───integration
│ ├───performance
│ └───unit
├───tmp
├───vendor
└───plugins
„scheletul” unei aplicații Web
create în Ruby on Rails
rubyonrails.org
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
├───app
│ ├───Config
│ ├───Console
│ ├───Controller
│ ├───Lib
│ ├───Locale
│ ├───Model
│ │ ├───Behavior
│ │ └───Datasource
│ ├───Plugin
│ ├───Test
│ ├───tmp
│ ├───Vendor
│ ├───View
│ │ ├───Elements
│ │ ├───Errors
│ │ ├───Helper
│ │ ├───Layouts
│ │ ├───Pages
│ │ └───Scaffolds
│ └───webroot
│ ├───css
│ ├───files
│ ├───img
│ └───js
├───lib
├───plugins
└───vendors
structura de directoare
în cazul unei aplicații Web
folosind CakePHP
cakephp.org
framework-uri PHP similare
www.phpwact.org/php/mvc_frameworks
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
/
│ app.js
│ package.json
├───bin
├───data
├───node_modules
│ ├───body-parser
│ ├───cookie-parser
│ ├───debug
│ ├───express
│ │ ├───lib
│ ├───jade
│ ├───morgan
├───public
│ ├───images
│ ├───javascripts
│ └───stylesheets
│ style.css
├───routes
│ index.js
│ users.js
└───views
error.jade
index.jade
layout.jade
eșafodajul unei aplicații Web bazate pe Express – expressjs.com
specificarea interfeței (view-ul)
via machete de vizualizare
descrise cu JADE: jade-lang.com/
rute vizând deservirea cererilor pe
baza URL-urilor solicitate de client
module Node.js adiționale
conținut static destinat clientului
(foi de stiluri CSS, biblioteci JS
procesate de browser, imagini,…)
diverse configurări ale aplicației
specificarea modelelor de date
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
browser
prezen-
tare
proce-
sare
abstrac-
tizare
date
pagini <Web/>
HTML, CSS,…
server „gras”
(fat)
client „prostuț”
(dumb)
arhitectura aplicațiilor Web:
abordarea MVC tradițională
www.leaseweblabs.com/2013/10/api-first-architecture-fat-vs-thin-server-debate/
frontend backend
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
browser
modern
prezen-
tare
proce-
sare
abstrac-
tizare
date
recurgere la API
JSON, XML,
CSV și altele
server „slab”
(thin)
client „puternic”
(HTML5)
aplicație JavaScript
(eventual, via app store)
arhitectura aplicațiilor Web:
abordarea JavaScript
www.leaseweblabs.com/2013/10/api-first-architecture-fat-vs-thin-server-debate/
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
sistem
de
operare
prezen-
tare
proce-
sare
abstrac-
tizare
date
recurgere la API
JSON
XML
CSV
…
server „slab”
(thin)
client „isteț”
(smart device)
aplicație nativă
C#, Java, Obj-C, Swift,…
(uzual, via app store)
arhitectura aplicațiilor Web:
aplicații native (desktop, mobile, smart TV)
www.leaseweblabs.com/2013/10/api-first-architecture-fat-vs-thin-server-debate/
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
browser
prezen-
tare
proce-
sare
abstrac-
tizare
date
API
JSON
et al.
server „slab”
(thin)
client „puternic”
și/sau „isteț”
arhitectura aplicațiilor Web:
abordarea hibridă – e.g., book reader, chioșc informativ
server de
prezentare
pagini
HTML
www.leaseweblabs.com/2013/10/api-first-architecture-fat-vs-thin-server-debate/
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
💡
Câteva exemplificări de aplicații Web?
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
client(i)
firewall
proxy
middleware
server(e) Web
server(e) de aplicații
framework-uri, 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(s)
(găzduire, infrastructură scalabilă,
procesare paralelă, monitorizare,…)
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Aplicație
Web
Procesare la nivel de server
(backend)
Stocare
persistentă
eBay Java, Node.js (JavaScript) Oracle DB
Facebook
Hack, PHP (HHVM), Python,
C++, Java, Erlang, D, Haskell,
XHP (extensie PHP/Hack)
MySQL,
Apache HBase,
Apache Cassandra
Google C, C++, Go, Java, Python BigTable, MariaDB
Linkedin Java, JavaScript, Scala Voldemort
Pinterest Django (Python), Erlang MySQL, Redis
Twitter C++, Java, Scala, Rails (Ruby)
MySQL, Cassandra,
Hadoop, Vertica
Wikipedia PHP, Hack MySQLMariaDB
WordPress PHP / Node.js – Calypso MySQL
YouTube C, C++, Python, Java, Go BigTable, MariaDB
en.wikipedia.org/wiki/Programming_languages_used_in_most_popular_websites
http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html#week3
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Netflix
scop: oferire de conținut video la cerere (streaming) +
televiziune Web (Web TV)
servicii disponibile pe dispozitive/platforme multiple
recurge și la tehnologii deschise – netflix.github.io/
studiu de caz
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
procesare backend Java, Python, Node.js (JavaScript)
procesare frontend React (JavaScript)
sisteme de stocare MySQL, Apache Cassandra, Apache
Hadoop, Apache Hive, Oracle DB
servicii în „nori”
Amazon EC2 (procesare video)
Amazon S3 (stocare)
servicii SQL Amazon RDS
servicii NoSQL Amazon DynamoDB
management de cod GitHub
integrare continuă Jenkins
gestionare servere Apache Mesos
distribuire de conținut
(content distribution network)
Open Connect CDN (FreeBSD,
Nginx), Akamai, Level 3, Limelight
monitorizare Apache Chukwa
highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
browser
control
proce-
sare
client „puternic”
și/sau „isteț”
alternativă: arhitecturi fără server (serverless)
aplicația Web depinde semnificativ de componente
externe, disponibile în „nori” – (micro-)servicii
BaaS
Mike Roberts (2016) – http://martinfowler.com/articles/serverless.html
func-
ționa-
litate1
☁
func-
ționa-
litate2
☁
☁
auten-
tificare
☁
BaaS = (Mobile) Backend As A Service FaaS = Functions As A Service
☁
FaaS
căutare
procesare
comenzi
BaaS
comenzi
produse
acces
la API
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
⧉ ☆ 💡
Aspecte importante vizând
dezvoltarea de aplicații Web?
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
⧉
aplicații Web  sisteme software complexe,
în evoluție permanentă
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
mijloace multiple de interacțiune Web cu utilizatorul
mobil laptop PC tabletă (smart) TV ecran urban
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
creșterea masei de utilizatori,
având așteptări tot mai mari din partea software-ului
de la conținut (hiper)textual
la aplicații Web sociale + interacțiune naturală
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
suportul variat privind dezvoltarea de aplicații
(limbaje, API-uri, SDK-uri, biblioteci, framework-uri,...)
oferit de platforma hardware/software
la nivel de server(e) și/sau de client(i)
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
neadaptarea la cerințele economice (de tip business)
development vs. marketing vs. management
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
adaptare după Crumlish & Malone, 2009
scopuri
psihologie
comportament
⧉ 💡 
facilități
tehnologii
algoritmi
indexare
structurare
meta-date
instrumente
metodologii
stimuli
utilizatori interfață software conținut creatori
interacțiune
controale
limbi naturale
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Etape în dezvoltarea unei aplicații Web
Cerințe – requirements
Analiză și proiectare – software design
Implementare – build
Testare – testing
Exploatare – deployment
Mentenanță – maintenance
Evoluție – evolution
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Jesse Garrett, The Elements of User Experience (2nd Edition), New Riders, 2011
aplicație Web
(produs software)
funcționalitate
+
informații oferite
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/

Vreau să dezvolt un proiect Web…
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
cod-sursă stocat
(code repositories)
instrumente de
dezvoltare (IDE)
mediu de execuție
(runtime environment)
dezvoltare
rulare
A.Iqbal,M.Haunsenblas,S.Decker(2012)
☁
☁ ☁
procesul actual de dezvoltare și exploatare
a aplicațiilor Web – Development As A Service
de parcurs Sabin Buraga, Cu codul în „nori” (2015)
http://www.slideshare.net/busaco/cu-codul-n-nori
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
cod-sursă stocat
(code repositories)
instrumente de
dezvoltare (IDE)
mediu de execuție
(runtime environment)
dezvoltare
rulare
A.Iqbal,M.Haunsenblas,S.Decker(2012)
☁
☁ ☁
DigitalOcean, Google Cloud Platform, Heroku,
Jelastic, OpenStack, Windows Azure,…
BitBucket
GitHub
Web: Cloud9, Koding, Ideone etc.
desktop: Eclipse, Visual Studio Code,…
instrumente utile la https://github.com/ripienaar/free-for-dev
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Parametrii unui proiect Web
obiectiv principal
durată
cost
abordare
tehnologii
procese
rezultat
resurse umane
profilul echipei
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
✓
obiectiv principal
crearea unui produs software utilizabil
în cât mai scurt timp posibil
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
⌚
durată
aproximativ 2—6 luni
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
♨
cost
de ordinul miilor de Euro
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
✒
abordare
prototipizare – wireframe, mockup,…
metode agile
asamblare de componente reutilizabile
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
♻
tehnologii
componente (servicii Web, API-uri publice,
framework-uri, biblioteci, plugin-uri, extensii etc.)
proiectare/programare „vizuală”
multimedia
…și altele
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
procese
uzual, dezvoltarea aplicațiilor Web se realizează iterativ
„nu te aștepta să-ți iasă din prima…”
understand
study
designbuild
evaluate
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
⎚
rezultat
reutilizabilitate mare a codului,
recurgerea la componente/limbaje/platforme standard
aplicații implementate uzual conform standardelor
designul vizual este, de cele mai multe ori, unicat
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
♚♞♟
resurse umane
3—9 persoane
“For the first version of your app, start with only 3 people.”
https://gettingreal.37signals.com/
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
☆
profilul echipei
specialiști în interacțiune – uzual: designeri Web
+
dezvoltatori (programatori) Web – la nivel client/server
+
arhitecți de baze de date
+
specialiști în marketing și/sau relații cu publicul
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/

Care-i echipa de dezvoltare
a unei aplicații Web de anvergură?
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
management
site editor
project manager
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
dezvoltare
(arhitectură)
system architect
data (content) architect
component architect
security architect
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
interacțiune
cu utilizatorul
creative lead
Web interface designer(s)
graphic artist(s)
HCI engineer
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
programare
server-side programmers
client-side programmers
data/component integration programmers
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
testare
testing lead
client-side tester(s)
server-side tester(s)
component tester(s)
integration tester(s)
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
operații tehnice
Webmaster
hardware/network technicians
network administrator(s)
database administrator(s)
backup operator
uptime monitor
security monitor(s)
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
marketing
content producer(s)
copywriter(s)
content editor(s)
branding & advertising expert(s)
direct e-marketer
public relations personnel
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
echipa proiectului Web
management
Web Project
Manager
funcționalitate
Software
Engineer(s)*
Multimedia
Designer(s)
conținut (date)
Domain
Expert
Business
Expert
*frontend sau backend sau full-stack (frontend & backend)
Dr.Sabin-CorneliuBuraga–http://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)
Dr.Sabin-CorneliuBuraga–http://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
familiar cu alte paradigme de programare
(e.g., funcțională, distribuită)
securitate & performanță Web
Web
Developer
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Web Technician
asistent (ajutor) al webmaster-ului,
designerului sau dezvoltatorului Web
poate efectua operații tehnice:
instalare, configurare, monitorizare,…
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Web Maintainer
actualizează conținutul
via o interfață WYSIWYG (de exemplu, recurgând la un
sistem de management al conținutului – CMS sau wiki)
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
voluntar pentru proiecte open source (Web-ul ca hobby)
pe cont propriu – freelancer/solopreneur
companie mică – e.g., agenție (web studio)
în echipa de dezvoltare Web – organizație netehnică
în echipa unei organizații din IT (e.g., Apache, GitHub)
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/

Câteva inițiative (mai) recente
vizând tehnologiile Web?
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Interacțiuni naturale
dintre utilizator(i) și aplicațiile Web
tehnologii implementate de navigatorul Web actual
inclusiv la nivelul dispozitivelor mobile
www.w3.org/Mobile/mobile-web-app-state
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Grafică 2D/3D raster și/sau vectorială + animații
HTML5 <canvas>
SVG (Scalable Vector Graphics)
transformări 3D
via foi de stiluri CSS (Cascading Style Sheets)
WebGL
a se studia și resursele disponibile la
http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
http://profs.info.uaic.ro/~busaco/teach/courses/hci/hci-film.html
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
realitate virtuală & îmbogățită
în browser (mobil) și/sau folosind un dispozitiv dedicat
WebVR – specificație în lucru la Consorțiul Web: webvr.info
aframe.io
vizor.io
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Web ubicuu la nivel fizic – physical Web
far (beacon) = dispozitiv fizic capabil să expună un URL
scanner/browser = entitate ce scanează, recunoaște,
procesează și prezintă un set de URL-uri
proxy = un serviciu Web (în „nori”) opțional cu rol de
protejare a utilizatorului + îmbunătățire a performanței
resurse de interes:
google.github.io/physical-web/
www.slideshare.net/yiibu/presentations
experiment:
https://medium.com/@urish/exploring-the-physical-web-without-buying-beacons-efae51e36c2e
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Web ubicuu la nivel fizic – physical Web
☁beacon
☗ difuzare
URL
client Web
analiză +
optimizare
proxy
aplicație/serviciu Web
procesare resursă
extragere meta-date
①
②
③
④
diverse direcții de interes:
automatizarea spațiilor de locuit (home automation)
industria auto (smart car)
reclame contextuale (smart advertising)

Dr.Sabin-CorneliuBuraga–http://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
standarde Web:
RDF (Resource Description Framework)
SKOS (Simple Knowledge Organizational System)
OWL (Web Ontology Language)
pentru detalii, de studiat:
Sabin Buraga, Why 5-Star Data? (2016)
http://www.slideshare.net/busaco/why-5star-data
Sabin Buraga, Dezvoltarea aplicațiilor Web (curs master FII, UAIC)
http://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
interogări asupra DBpedia
(varianta procesabilă de către mașină a enciclopediei Wikipedia)
Cine este Linus Torvalds?
PersonWithOccupation
ComputerPioneers
FinnishComputerProgrammers
FreeSoftwareProgrammers
LinuxKernelHackers
LivingPeople
PeopleInInformationTechnology
Golfer
diverse URL-uri
desemnând concepte
(things, not strings)
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
☺
Bun… Și eu ce fac?
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
fii curios și iscoditor

învață
(citește + experimentează + cere ajutor + reutilizează)

creează și arată
(design, cod-sursă, prototipuri, exemple demonstrative,…)

acumulează
experiență, „aură”, statut social etc.reputație

concurează
(…atât de multe oportunități)

ajută/instruiește pe ceilalți
Dr.Sabin-CorneliuBuraga–http://profs.info.uaic.ro/~busaco/
Mult succes!
imagini medievale furnizate de http://discardingimages.tumblr.com/

More Related Content

PDF
Ce înseamnă să fii dezvoltator Web
PDF
Web 2016 (01/13) Spațiul World Wide Web – aspecte arhitecturale
PDF
Ce înseamnă a fi dezvoltator Web (varianta 2014)
PDF
25 de ani de Web
PDF
Dezvoltator Web?! (varianta 2015)
PDF
Web 2016 (03/13) Programare Web – Servere de aplicații. Arhitectura aplicații...
PDF
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
PDF
Sabin Buraga – Dezvoltator Web (...în 2017)
Ce înseamnă să fii dezvoltator Web
Web 2016 (01/13) Spațiul World Wide Web – aspecte arhitecturale
Ce înseamnă a fi dezvoltator Web (varianta 2014)
25 de ani de Web
Dezvoltator Web?! (varianta 2015)
Web 2016 (03/13) Programare Web – Servere de aplicații. Arhitectura aplicații...
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Sabin Buraga – Dezvoltator Web (...în 2017)

What's hot (20)

PDF
Web 2020 01/12: World Wide Web – aspecte arhitecturale
PDF
Design (Web) responsiv
PDF
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de nume
PDF
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni Web
PDF
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
PDF
Sabin Buraga: Dezvoltator Web?! (2019)
PDF
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
PDF
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
PDF
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
PDF
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
PDF
CLIW 2017-2018 (9/12) Programare Web. Suita de tehnologii HTML5
PDF
Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...
PDF
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
PDF
Sabin Buraga: Participând la Web
PDF
WADe 2014—2015 (01/12): Dezvoltarea de aplicaţii Web: Concepte & viziune
PDF
Cu codul în "nori"
PDF
CLIW 2015-2016 (2/13) Arhitectura navigatorului Web
PDF
Web 2020 09/12: Servicii Web. Paradigma REST
PDF
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
PDF
WADe 2017-2018 (1/12) Web Application Development: Concepts & Vision
Web 2020 01/12: World Wide Web – aspecte arhitecturale
Design (Web) responsiv
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de nume
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Sabin Buraga: Dezvoltator Web?! (2019)
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
CLIW 2017-2018 (9/12) Programare Web. Suita de tehnologii HTML5
Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Sabin Buraga: Participând la Web
WADe 2014—2015 (01/12): Dezvoltarea de aplicaţii Web: Concepte & viziune
Cu codul în "nori"
CLIW 2015-2016 (2/13) Arhitectura navigatorului Web
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
WADe 2017-2018 (1/12) Web Application Development: Concepts & Vision
Ad

Viewers also liked (20)

PDF
HTML5 în XXX de minute
PDF
Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)
PDF
Web - PHP
PDF
Sabin Buraga: Open Web Application Development, Mozilla, and You
PDF
Web - CGI
PDF
Semantic Web Semantic Web-based Agent Applications based Agent Applications –...
PDF
Any Colour You Like
PDF
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #5): Data Visualizati...
PDF
L. Alboaie, S. Buraga: "Servicii Web. Concepte de bază și implementări" (2006)
PDF
Web brother is watching you
PDF
Căutarea resurselor Web
PDF
Sabin Buraga: 'Tehnologii XML'
PDF
Despre eficiență: Cum și cu ce tool faci cât mai bine un lucru
PPTX
Making the Web Searchable - Keynote ICWE 2015
PDF
WADe 2014—2015 (supliment): Dezvoltare Web via node.js
PDF
Arhitectura browser-ului Web
PPT
Problema Planificării Spectacolelor
PPT
Programare Web - Arhitectura WWW
PDF
Telemon - SOA-based e-health system
PDF
Are You Afraid of Semantic Web?
HTML5 în XXX de minute
Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)
Web - PHP
Sabin Buraga: Open Web Application Development, Mozilla, and You
Web - CGI
Semantic Web Semantic Web-based Agent Applications based Agent Applications –...
Any Colour You Like
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #5): Data Visualizati...
L. Alboaie, S. Buraga: "Servicii Web. Concepte de bază și implementări" (2006)
Web brother is watching you
Căutarea resurselor Web
Sabin Buraga: 'Tehnologii XML'
Despre eficiență: Cum și cu ce tool faci cât mai bine un lucru
Making the Web Searchable - Keynote ICWE 2015
WADe 2014—2015 (supliment): Dezvoltare Web via node.js
Arhitectura browser-ului Web
Problema Planificării Spectacolelor
Programare Web - Arhitectura WWW
Telemon - SOA-based e-health system
Are You Afraid of Semantic Web?
Ad

Similar to Dezvoltator Web?! – ...în 2016 (20)

PDF
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
PDF
Web 2016 (10/13) Servicii Web. De la arhitecturi orientate spre servicii (SOA...
PDF
WADe 2017-2018 (2/12) Service-based Web Application Development. REST
PDF
Sabin Buraga - Web: To Be Continued
PDF
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...
PDF
STAW 01/12: Arhitectura aplicaţiilor Web
PDF
Web-ul nostru (cel de toate zilele)
PDF
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)
PDF
Date structurate, aplicarea modelului linked data
PDF
AJAX - back to the future
PPT
Tice usb 1
PDF
Dezvoltarea aplicațiilor Web (2/12): Dezvoltarea de servicii Web în stilul REST
PDF
WADe 2014—2015 (02/12): Dezvoltarea de servicii Web în stilul REST
PDF
Tendinte in proiectarea si dezvoltarea aplicatiilor Web
PDF
Web 2016 (11/13) Servicii Web. Paradigma REST
PDF
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
PDF
CLIW 2015-2016 (1/13) Interacțiune Web: concepte, context, studii de caz
PDF
WADe 2014—2015 (03/12): Arhitectura aplicaţiilor Web orientate spre servicii
PDF
CLIW 2014—2015 (10/12): Programare Web. Suita de tehnologii HTML5
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2016 (10/13) Servicii Web. De la arhitecturi orientate spre servicii (SOA...
WADe 2017-2018 (2/12) Service-based Web Application Development. REST
Sabin Buraga - Web: To Be Continued
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...
STAW 01/12: Arhitectura aplicaţiilor Web
Web-ul nostru (cel de toate zilele)
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)
Date structurate, aplicarea modelului linked data
AJAX - back to the future
Tice usb 1
Dezvoltarea aplicațiilor Web (2/12): Dezvoltarea de servicii Web în stilul REST
WADe 2014—2015 (02/12): Dezvoltarea de servicii Web în stilul REST
Tendinte in proiectarea si dezvoltarea aplicatiilor Web
Web 2016 (11/13) Servicii Web. Paradigma REST
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
CLIW 2015-2016 (1/13) Interacțiune Web: concepte, context, studii de caz
WADe 2014—2015 (03/12): Arhitectura aplicaţiilor Web orientate spre servicii
CLIW 2014—2015 (10/12): Programare Web. Suita de tehnologii HTML5

More from Sabin Buraga (17)

PDF
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
PDF
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
PDF
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
PDF
STAW 04/12: Programare Web: Node.js
PDF
STAW 05/12: Arhitectura navigatorului Web
PDF
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
PDF
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
PDF
STAW 08/12: Programare Web. Suita de tehnologii HTML5
PDF
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
PDF
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
PDF
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
PDF
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
PDF
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...
PDF
HCI 2018 (3/10) Design Models, Methodologies and Guidelines
PDF
HCI 2018 (4/10) Information Architecture. From Design Patterns to Visual Design
PDF
HCI 2018 (5/10) Information Architecture. From Design Patterns to Flow
PDF
HCI 2018 (6/10) Design Patterns for Social (Web/mobile) Interactions
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 04/12: Programare Web: Node.js
STAW 05/12: Arhitectura navigatorului Web
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...
HCI 2018 (3/10) Design Models, Methodologies and Guidelines
HCI 2018 (4/10) Information Architecture. From Design Patterns to Visual Design
HCI 2018 (5/10) Information Architecture. From Design Patterns to Flow
HCI 2018 (6/10) Design Patterns for Social (Web/mobile) Interactions

Dezvoltator Web?! – ...în 2016