Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web...
Transcript of Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web...
![Page 1: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/1.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Full-Stack Web Development
💡aplicații Web: aspecte arhitecturale
Dr. Sabin Corneliu Buraga – profs.info.uaic.ro/~busaco/
![Page 2: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/2.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
„Fiecare vis începe cu un visător.”
Harriet Tubman
![Page 3: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/3.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
De ce dezvoltăm aplicații Web?
![Page 4: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/4.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Scop
crearea de produse digitale(recurgând la tehnologii Web)
![Page 5: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/5.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Scop
crearea de produse digitale(recurgând la tehnologii Web)
product as functionalityversus
product as information
![Page 6: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/6.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
adaptare după Crumlish & Malone, 2009
scopuripsihologie
comportament
💡
interacțiunecontroale
limbi naturale
funcționalitățitehnologiialgoritmi
indexarestructuraremeta-date
instrumentemetodologii
stimuli
utilizatori interfață software conținut creatori
![Page 7: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/7.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
GoalBuilding successful
digital products
actori principali:designers
technologistsmanagement
Alan Cooper et al., About Face (4th Edition), 2014
![Page 8: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/8.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Care sunt mijloacele de interacțiunedintre utilizatori și o aplicație?
![Page 9: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/9.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
vezi și cursul Human-Computer Interaction de la masterprofs.info.uaic.ro/~busaco/teach/courses/hci/
![Page 10: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/10.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Interacțiunea dintre utilizator(i) și softwarese realizează via o interfață (user interface)
![Page 11: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/11.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Interacțiunea dintre utilizator(i) și softwarese realizează via o interfață (user interface)
API (Application Programming Interface)versus
UI (User Interface)
![Page 12: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/12.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Aplicații Web
colecție interconectată de pagini Webcu conținut generat dinamic,
oferind o funcționalitate specifică
![Page 13: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/13.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Aplicații Web
prezintă o interfață cu utilizatorul exploatabilă la nivel de client (i.e. navigator Web)
recurg la standarde/formate de date deschise(HTTP, URL, HTML, CSS, JSON, SVG, XML, RDF,…)
![Page 14: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/14.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
coclient Web server Web
conținut static
conținut dinamic
conținut static
conținut dinamic
date locale
JavaScript server de aplic., framework
HTTP
transferasincron
via o interfață Web, utilizatorul interacționează cu clientul(front-end) și inițiază acțiuni – e.g., cereri HTTP (a)sincrone– ce vor fi executate pe diverse componente implementate
la nivel de server (back-end), pentru a obține date
☁date externe
(serviciu Web)
front-end back-end
![Page 15: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/15.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Aplicații Web
interfața Web
browser – interacțiune limitată via controale HTMLhipertext/hipermedia
RIA (Rich Internet Applications): în prezent, HTML5interacțiune facilitată de transfer (a)sincron: Ajax et al.
audiență globală
![Page 16: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/16.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Așteptările utilizatorilor referitoare la interfața Web
(Peter Morville)
utilă – useful
utilizabilă – usable
apreciată – valuable
dezirabilă – desirable
disponibilă – findable
accesibilă – accessible
credibilă – credible
![Page 17: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/17.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Interfața – desktop, Web,… – cu utilizatorul
parte a aplicației – desktop, Web, miniaturală,… –care permite utilizatorilor să-și exprime intențiilede operare asupra software-ului și să interpreteze
rezultatele acțiunilor efectuate de mașină
![Page 18: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/18.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Interfaţa – desktop, Web,… – cu utilizatorul
percepută nu doar ca parte vizuală a software-ului
din punctul de vedere al utilizatorului,reprezintă întregul sistem – aplicația per se
![Page 19: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/19.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Interfaţa – desktop, Web,… – cu utilizatorul
utilitate (utility)
oferirea facilităților dorite de utilizator
![Page 20: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/20.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Interfaţa – desktop, Web,… – cu utilizatorul
utilizabilitate (usability)
cât de ușor și de plăcut pot fi folosite facilitățile?
![Page 21: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/21.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Interfaţa – desktop, Web,… – cu utilizatorul
utilă (useful)
usability + utility
![Page 22: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/22.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
UX (User Experience)
modul de percepție a produsului/serviciuluide către persoanele care-l folosescși plăcerea/satisfacția înregistrată
![Page 23: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/23.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Context
garrettdimon.com/pages/improving_interface_design
![Page 24: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/24.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Care sunt arhitecturile software tipice pe baza cărora sunt dezvoltate aplicațiile Web de anvergură?
![Page 25: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/25.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Calitatea aplicațiilor Web este influențatăde arhitectura pe care se bazează
![Page 26: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/26.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
start with needsdo less
design with datado the hard work to make it simple
iterate. then iterate againbuild for inclusion
understand contextbuild digital services, not Websites
be consistent, not uniformmake things open; it makes things better
arhitecturi: principii
exemplu pentru gov.uk – Paul Downey & David Heath (2013)
![Page 27: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/27.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
evoluția manierei de dezvoltare a produselor
digitale (software)Alan Cooper et al., 2014
![Page 28: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/28.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Complexitatea aplicațiilor actuale este mai mare decât a produselor tangibile (fizice)
“If your UI even vaguely resembles an airplane cockpit, you’re doing it wrong.”
John Gruber
![Page 29: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/29.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Dezvoltarea unei arhitecturi software ia în calcul:
cerințe funcționale
impuse de clienți, vizitatori,
concurență,factori decizionali (management),
evoluție socială/tehnologică,…
![Page 30: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/30.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Atragerea experților– subject matter expert (SME) sau domain expert –
în domeniul problemeice trebuie soluționată de aplicația Web
![Page 31: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/31.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Dezvoltarea unei arhitecturi software ia în calcul:
factori calitativi
utilizabilitateperformanță
securitaterefolosire a datelor/codului
etc.
![Page 32: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/32.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Dezvoltarea unei arhitecturi software ia în calcul:
aspecte tehn(olog)ice
platforma hardware/software (sistem de operare)infrastructura middleware
servicii disponibile – e.g., via API-uri publicelimbaj(e) de programare
sisteme tradiționale (legacy)…
![Page 33: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/33.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Inițial:oferirea funcționalităților esențiale – less is more
![Page 34: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/34.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Inițial:oferirea funcționalităților esențiale – less is more
Versiuni ulterioare:extinderea aplicației Web
– uzual, via o interfață de programare (API) publică, încurajând dezvoltarea de soluții propuse de utilizatori
![Page 35: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/35.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Dezvoltarea unei arhitecturi software ia în calcul:
experiența
recurgerea la arhitecturi și platforme existenteșabloane de proiectare (design patterns)
soluții „la cheie”: biblioteci, framework-uri, instrumente,…management de proiecte
etc.
![Page 36: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/36.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Metodologii moderne – exemple:
aim42 – practici și șabloane privind evoluția, mentenanța, migrarea și îmbunătățirea sistemelor software
aim42.github.io
12 Factor App – vizând aplicațiile aliniate paradigmei SaaS (Software As A Service)
12factor.net12 Factor CLI Apps – aplicații în linia de comandă (J. Dickey, 2018)
medium.com/@jdxcode/12-factor-cli-apps-dd3c227a0e46
![Page 37: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/37.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
client(i)mandatar (proxy)
zid de protecție (firewall)intermediar(i) (middleware)
server(e) Webserver(e) de aplicații Web
cadre de lucru, biblioteci, alte componenteserver(e) de stocare persistentă – e.g., baze de date
server(e) de conținut multimediaserver(e) de management al conținutului – e.g., CMS, wiki
aplicații/sisteme tradiționale (legacy)
„ingrediente” tipice
![Page 38: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/38.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
client(i)mandatar (proxy)
zid de protecție (firewall)intermediar(i) (middleware)
server(e) Webserver(e) de aplicații Web
cadre de lucru, biblioteci, alte componenteserver(e) de stocare persistentă – e.g., baze de date
server(e) de conținut multimediaserver(e) de management al conținutului – e.g., CMS, wiki
aplicații/sisteme tradiționale (legacy)
eventual, recurgând la servicii în „nori” – cloud computingpartajarea la cerere a resurselor de calcul și a datelor cu alte
calculatoare/dispozitive pe baza tehnologiilor Internet (găzduire, infrastructură scalabilă, procesare paralelă, monitorizare,…)
![Page 39: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/39.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Esențialmente, de considerat:
preluarea și dirijarea cererilor – dispatch
oferirea funcționalităților de bază – core services
asocierea dintre construcții/abstracțiuni software (e.g., obiecte) și modele de date – mapping
managementul datelor – data
monitorizarea și evaluarea sistemului – metrics
adaptare după Matt Ranney, “What I Wish I Had Known Before Scaling Uber to 1000 Services”, GOTO Chicago 2016
highscalability.com/blog/2016/10/12/lessons-learned-from-scaling-uber-to-2000-engineers-1000-ser.html
![Page 40: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/40.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
arhitecturi web
Stratificate (layered)Conduse de evenimente (event-driven)
Extensibile (microkernel / plug-in)Folosind microservicii (microservices)
„În nori” (space-based, cloud)
conform M. Richards, Software Architecture Patterns, O’Reilly, 2015 www.oreilly.com/programming/free/files/software-architecture-patterns.pdf
![Page 41: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/41.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
arhitecturi webStratificate (layered)
N-tier architecture – abordare de facto
![Page 42: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/42.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
aplicație Web = interfață + program + conținut (date)trei strate (3-tier application)
Client Server de aplicații Stocare(interface) (application) (persistence)
Internet(Web)
![Page 43: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/43.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Blat / Baza de date
Jeleu / Funcționalitate
Cremă / Rol specific
Frișcă / Marcaje
Fructe / Prezentare
C. Henderson, Scalable Web Architectures, Web 2.0 Expo, 2007: iamcal.com/talks/
![Page 44: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/44.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
arhitecturi web
Stratificate (layered): principii
demarcarea responsabilităților (separation of concerns)fiecare strat are un rol bine-stabilit, componentele
unui strat vizând funcționalitățile acestuia
modelul de structurare a datelor este separat de manierade procesare (controlul aplicației, business logic) șide modul de prezentare a acestora (interfața Web)
![Page 45: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/45.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
arhitecturi web
Stratificate (layered): principii
izolare (layers of isolation)modificările operate la un anumit strat nu au impact
sau nu afectează componentele din alt strat
![Page 46: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/46.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
arhitecturi web
Stratificate (layered): principii
architecture sinkhole anti-patternfluxul de cereri traversează fiecare strat, fără a se efectua
procesări semnificative în cadrul acestuia
![Page 47: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/47.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
arhitecturi web
Conduse de evenimente (event-driven)uzual în contextul aplicațiilor distribuite asincrone
scalabilitate
topologii principale:mediator
sau broker
![Page 48: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/48.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
arhitecturi webConduse de evenimente (event-driven)
mediatorevenimente procesate
în mai mulți pași, necesitând orchestrare
![Page 49: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/49.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
arhitecturi webConduse de evenimente (event-driven)
broker – fluxul de mesaje este distribuit componentelor de procesare a evenimentelor
![Page 50: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/50.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
arhitecturi webExtensibile (microkernel / plug-in)
sistem principal (core system) +
module independente de tip extensie (plug-in)
o astfel de arhitectură poate fi inclusă/utilizată ca parte a altei abordări arhitecturale
![Page 51: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/51.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
arhitecturi webFolosind microservicii (microservices)
componente separate, distribuite (separately deployed units)decuplare maximă
![Page 52: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/52.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
arhitecturi web
Folosind micro-servicii (microservices)
abordări:bazate pe API-uri (API-based)
aplicație recurgând la REST (application REST-based)mesagerie centralizată (centralized messaging)
![Page 53: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/53.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
arhitecturi webFolosind microservicii (microservices)
API-basedaplicația Web expune servicii individuale, punctuale,
de sine-stătătoare (self-contained) via un API
fine-grained service components
![Page 54: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/54.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
arhitecturi webFolosind microservicii (microservices)
application REST-basedcererile sunt recepționate tradițional (nu prin API)fiecare funcționalitate este accesată intern via REST
coarse-grained service components
![Page 55: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/55.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
arhitecturi webFolosind microservicii (microservices)
centralized messagingaccesare a componentelor interne via un broker „ușor”
![Page 56: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/56.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
arhitecturi web
„În nori” (space-based, cloud)consideră și rezolvă problemele vizând scalabilitatea și concurența unui volum impredictibil de mare de cereri
![Page 57: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/57.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
arhitecturi web
„În nori” (space-based, cloud)consideră și rezolvă problemele vizând scalabilitatea și concurența unui volum impredictibil de mare de cereri
tuple spacedatele aplicației sunt păstrate în memorie și replicate
de toate unitățile de procesare active
fără stocare centralizatădistributed shared memory
wiki.c2.com/?TupleSpace
![Page 58: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/58.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
arhitecturi web„În nori” (space-based, cloud)
middleware virtualizatinclude componente controlând sincronizarea datelor,
procesarea cererilor, accesul la platforma de execuție (deployment),…
![Page 59: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/59.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
arhitecturi web„În nori” (space-based, cloud)
unitate de procesarereprezentată de un (micro-)serviciu Web
sau o componentă software tradițională la nivel de backend
![Page 60: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/60.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
anumite funcționalități pot fi gestionate „în propria ogradă” (on-premises)
sau de un furnizor de servicii disponibile „în nori”
conform (Eizadirad, 2017)www.linkedin.com/pulse/iaas-paas-saas-explained-compared-arsalan-eizadirad
![Page 61: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/61.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
A. Barron, Pizza As A Service (2014)www.linkedin.com/pulse/20140730172610-9679881-pizza-as-a-service
![Page 62: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/62.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
D. Ng, SaaS, PaaS and IaaS explained in one graphic (2017)m.oursky.com/saas-paas-and-iaas-explained-in-one-graphic-d56c3e6f4606
![Page 63: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/63.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
P. Kerrison, Pizza As A Service 2.0 (2017)www.paulkerrison.co.uk/random/pizza-as-a-service-2-0
![Page 64: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/64.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Prin ce mijloace poate fi implementată o aplicație Web?
![Page 65: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/65.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Server de aplicații Web
scop: eficientizarea proceselor de dezvoltare
a aplicațiilor Web de anvergură
![Page 66: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/66.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Server de aplicații Web
simplifică invocarea de programe (script-uri)
generarea de conținut dinamic pe partea de server
(re)vezi prezentarea despre inginerie Web:profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html#week3
![Page 67: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/67.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Server de aplicații Web
poate fi integrat în unul/mai multe servere Web
de asemenea, poate oferi propriul server Websau mediu de execuție
![Page 68: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/68.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Server de aplicații Web
poate încuraja sau impune o viziune arhitecturalăprivind dezvoltarea de aplicații Web
situație tipică:MVC ori variații (Herberto Graca, 2017)
herbertograca.com/2017/08/17/mvc-and-its-variants/
![Page 69: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/69.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
brow-ser
prezen-tare
proce-sare
abstrac-tizaredate
pagini <Web/>
HTML, CSS,…
server „gras” (fat)
client „prostuț” (dumb)
arhitectura aplicațiilor Web:abordarea MV* tradițională
www.leaseweblabs.com/2013/10/api-first-architecture-fat-vs-thin-server-debate/
frontend backend
frecvent, aplicație monolitică(e.g., un WAR: 2.2 M linii de cod, 418 .jar-uri,
startare în 12 min. – conform plainoldobjects.com)
![Page 70: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/70.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Framework (cadru de lucru)
facilitează dezvoltarea de aplicații Web complexe,simplificând unele operații uzuale
(e.g., acces la baze de date, caching, generare de cod, management de sesiuni, control al accesului)
și/sau încurajând reutilizarea codului-sursă
![Page 71: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/71.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Framework-uri JavaScript
la nivel de server (back-end) – specifice Node.jsExpress
HapiKoa
LoopBackMeteorNext.js
…
![Page 72: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/72.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Framework-uri JavaScript
la nivel de client (front-end) – rulând în browserAngularAurelia
BackboneEmber
MithrilJSVue.js
…
![Page 73: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/73.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Bibliotecă Web (library)
colecție de resurse computaționale reutilizabile – i.e., structuri de date + cod –
oferind funcționalități (comportamente) specifice implementate într-un limbaj de programare
![Page 74: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/74.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Bibliotecă Web (library)
colecție de resurse computaționale reutilizabile – i.e., structuri de date + cod –
oferind funcționalități (comportamente) specifice implementate într-un limbaj de programare
poate fi referită de alt cod-sursă (software): server de aplicații, framework, bibliotecă,
serviciu, API ori componentă Web
![Page 75: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/75.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Biblioteci JS cu acces liber la codul-sursă
exemple:CesiumJS
D3.jsLeafletLodashPDF.js
RaphaëlReact
SgvizlerTensorFlow.js
Three.js…
![Page 76: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/76.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Serviciu Web
software – utilizat la distanță de alte aplicații/servicii –oferind o funcționalitate specifică
SOA (Service Oriented Architecture)
![Page 77: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/77.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Serviciu Web
software – utilizat la distanță de alte aplicații/servicii –oferind o funcționalitate specifică
SOA (Service Oriented Architecture)
implementarea sa nu trebuie cunoscută de programatorul ce invocă serviciul
![Page 78: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/78.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Micro-serviciu
implementează o funcționalitate specifică, oferită la nivel de unic proces
self-contained system
componentă la nivel de backend dezvoltată cu scopul de a fi înlocuită, nu de a fi reutilizată
![Page 79: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/79.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
smalleach running in its own process
lightweight communication mechanisms (usual, HTTP)built around business capabilities
independently deployableminimum of centralized management
may be written in different programming languagesmay use different data storage mechanisms
caracteristici ale micro-serviciilor conformJames Lewis & Martin Fowler, Microservices (2014)
martinfowler.com/articles/microservices.html
![Page 80: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/80.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
micro-serviciumodularitate, descentralizare și evoluție permanentă
exemple de bună practică: microservices.io
![Page 81: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/81.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Uzual, arhitecturile ce recurg la micro-serviciinu includ componente middleware
și nu oferă suport pentru abstractizarea interacțiunii dintre producătorii și consumatorii de servicii
(contract decoupling)
μSOA – Microservice Oriented Architecture
![Page 82: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/82.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
arhitectură bazată pe servicii Web
arhitectură recurgând la microservicii
Z. Dehghani, How to break a Monolith into Microservices (2018)martinfowler.com/articles/break-monolith-into-microservices.html
cazuri concrete: Amazon, Groupon, Netflix,… de studiat prezentările lui Stefan Tilkov: speakerdeck.com/stilkov
frontend (FE)
ser-vice
ser-vice
ser-vice
DB
client
ser-vice
DB
FE FE FE
client
DB
ser-vice
ser-vice
DB
![Page 83: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/83.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
API (Application Programming Interface)
accesul la un (micro-)serviciu are loc uzual pe baza unei interfețe de programare a aplicației – API
![Page 84: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/84.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
API (Application Programming Interface)
“any well-defined interface that definesthe service that one component, module, or application
provides to other software elements”(de Souza et al., 2004)
![Page 85: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/85.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Componentă software concepută și invocată via tehnologiile Web actuale
(URI, HTTP, formate de date: JSON, XML)
poate fi dezvoltată conform unui stil arhitecturale.g., REST (REpresentational State Transfer)
![Page 86: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/86.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
De la aplicații la API-uri și servere de aplicații
Brian Mulloy, Web API Design, Apigee, 2016docs-apis.apigee.io/files/Web-design-the-missing-link-ebook-2016-11.pdf
![Page 87: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/87.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
API public (disponibil pe baza unei licențe de utilizare)
versus
API privat(pentru uz intern)
![Page 88: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/88.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
browsermodern
prezen-tare
proce-sare
abstrac-tizaredate
recurgere la API
JSON, XML, CSV,…
server „slab” (thin)
client Web modern(HTML5)
aplicație JavaScript(eventual, via app store)
API: abordare client – JavaScript
browser Web pe calculatoare convenționale, dispozitive
mobile și altele
![Page 89: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/89.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
browsermodern
prezen-tare
proce-sare
abstrac-tizaredate
recurgere la API
JSON, XML, CSV,…
server „slab” (thin)
client Web modern(HTML5)
aplicație JavaScript(eventual, via app store)
implementarea aplicației JavaScript poate recurge la biblioteci, framework-uri, componente specifice
e.g., Angular, React, Vue
API: abordare client – JavaScript
![Page 90: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/90.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
sistem de
operare
prezen-tare
proce-sare
abstrac-tizaredate
recurgere la API
JSON, XML, CSV,…
server „slab” (thin)
client nativ modern(smart device)
aplicație nativăC#, Java, Obj-C, Swift,…(uzual, via app store)
API: aplicații native
desktop și/sau mobile, smart TV, home appliance,
dispozitiv ambiental
![Page 91: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/91.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
sistem de
operare
prezen-tare
proce-sare
abstrac-tizaredate
recurgere la API
JSON, XML, CSV,…
server „slab” (thin)
client nativ modern(smart device)
aplicație nativăC#, Java, Obj-C, Swift,…(uzual, via app store)
implementarea aplicației native poate recurge la biblioteci, framework-uri, componente specifice
e.g., Apache Cordova, Flutter, Ionic, React Native, NW.js
API: aplicații native
![Page 92: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/92.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
brow-ser
prezen-tare
proce-sare
abstrac-tizaredate
API
JSONet al.
server „slab” (thin)
client Web„prostuț” (dumb)
server de prezentare
pagini
HTML
www.leaseweblabs.com/2013/10/api-first-architecture-fat-vs-thin-server-debate/
API: abordare bazată pe intermediari
book readerchioșc informativ
automobil
![Page 93: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/93.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
API: în contextul serverless
Aplicația depinde semnificativ de componente externe, disponibile în „nori”
(micro-)servicii expuse via API
abordarea serverless
![Page 94: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/94.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Serverless
strat de abstractizare a accesului la resurseleunei platforme de tip cloud
Mike Roberts (2018) martinfowler.com/articles/serverless.html
![Page 95: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/95.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
brow-ser
controlproce-
sare
client modern
BaaS
func-ționa-litate1
func-ționa-litate2
auten-tificare
☁
BaaS = (Mobile) Backend As A Service FaaS = Functions As A Service
FaaS
căutare
procesarecomenzi
BaaS
comenzi
produse
acces la API
☁
☁
☁
![Page 96: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/96.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
FaaS – Functions As A Service
funcții (cloud functions) implementând funcționalitățiexpuse consumatorului de servicii
as small as possible
uzual, implementări sub 100 de linii de cod
![Page 97: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/97.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
FaaS – Functions As A Service
executate – la nivel de server – independent și asincron,fără a cauza efecte colaterale
declanșate de evenimente
utilizatorul nu e preocupat de managementul resurselorși alte sarcini
![Page 98: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/98.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
BaaS – Backend As A Service
încapsulează servicii de infrastructură ce implementeazăactivități non-funcționale
(autentificare, autorizare, jurnalizare, monitorizare etc.)
private – nu sunt expuse în exterior
pot fi partajate de serviciile interne
![Page 99: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/99.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Serverless computing = FaaS + BaaS
a se consulta și articolul Sabin Buraga, Aspecte arhitecturale
vizând dezvoltarea de aplicații serverless (2019)itransfer.space/aspecte-arhitecturale-vizand-dezvoltarea-de-aplicatii-serverless/
resurse + soluții software:github.com/anaibol/awesome-serverless
![Page 100: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/100.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Cum poate fi descrisă interfața unui API?
![Page 101: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/101.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Modalități de descriere abstractă:OpenAPI Specification (ex-Swagger) – openapis.org
RAML (RESTful API Modeling Language) – raml.org
API Blueprint – apiblueprint.org
alte resurse de interes:github.com/Kikobeats/awesome-api
![Page 102: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/102.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
OpenAPI Specification
soluție modernă de a declara – independent de platformă –interfața publică a unui API REST
versiunea curentă: OpenAPI 3.0.2 (septembrie 2019)
formate folosite: JSON și/sau YAML (Yet Another Markup Language)
![Page 103: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/103.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
OpenAPI Specification
bibliotecă JS de procesare:Spectral (JavaScript, TypeScript)
![Page 104: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/104.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
OpenAPI Specification
creare de servicii (puncte terminale – end-points) pe baza unui document OpenAPI:
Exegesis (Node.js)Fusio (PHP, JavaScript)
Vert.x (Java, Kotlin, JS, Ruby, Scala,…)
![Page 105: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/105.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
OpenAPI Specification
generator de cod – exemplificare:BaucisJS (Node.js)
![Page 106: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/106.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
API: descriere abstractă
{"openapi": "3.0.0","paths": {
"/resource": {"get": {
"operationId": "service","parameters": [ {
"name": "parameter","in": "query","schema": { "type" : "string" }
} ],"responses": {
"200": {"description": "Success","schema": {
"$ref":"#/definitions/Response"}
}}
}}
„scheletul” unui document OpenAPI specificând un API
![Page 107: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/107.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
editarea unei specificații de APIproiectul UReR (V. Vîrlan et al., 2017)
github.com/VirlanValentin/WADe_UReR
![Page 108: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/108.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
caz concret: Wowza Streaming Engine REST APIspecificația OpenAPI editată cu {API Studio}: apistudio.io
![Page 109: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/109.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
SDK (Software Development Kit)
încapsulează funcționalitățile API-ului într-o bibliotecă(implementată într-un anumit limbaj de programare,
pentru o platformă software/hardware specifică)
API façade pattern
![Page 110: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/110.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
SDK (Software Development Kit)
încapsulează funcționalitățile API-ului într-o bibliotecă(implementată într-un anumit limbaj de programare,
pentru o platformă software/hardware specifică)
exemplu: Octokit (Go, Java, .NET, Node.js, Ruby,…) oferit de Github – developer.github.com/v3/libraries/
![Page 111: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/111.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Mash-ups
combinarea – la nivel de client și/sau server –a datelor ce provin din surse (situri) multiple, oferindu-se o funcționalitate/experiență nouă
„curentul” SaaS (Software As A Service)
![Page 112: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/112.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Mash-ups
combinare – surse de date (eterogene) multiple
agregare – analizarea datelor e.g., via machine/deep learning, deducții automate,…
vizualizare – redarea datelor agregate
![Page 113: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/113.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
mash-ups
Selfiexploratory – selfiecity.net/selfiexploratory/
Nukemap – nuclearsecrecy.com/nukemap/
Coinorama – github.com/coinorama/
PopURLS – popurls.com
![Page 114: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/114.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Web component
parte a unei interfețe Web cu utilizatorulce încapsulează o suită de funcții înrudite
e.g., calendar, cititor de fluxuri de știri,buton de partajare a URL-ului în altă aplicație
![Page 115: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/115.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Web component
dezvoltare bazată pe o bibliotecă/framework JS
soluții – uzual, la nivel de client: Polymer, React, X-Tag,…
în lucru la Consorțiul Web (septembrie 2019)github.com/w3c/webcomponents/
![Page 116: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/116.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Widget
aplicație – de sine-stătătoare sau inclusă într-un container (e.g., un document HTML) –
ce oferă o funcționalitate specifică
rulează la nivel de client (platformă pusă la dispoziție de sistemul de operare și/sau de navigatorul Web)
![Page 117: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/117.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
(Web) app
o aplicație (Web) instalabilă care folosește API-urile oferite de o platformă:
browser, server de aplicații, sistem de operare,…
![Page 118: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/118.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
(Web) app
a distributed computer software application designed foroptimal use on specific screen sizes and
with particular interface technologiesRobert Shilston, 2013
![Page 119: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/119.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Web browser
SPASingle Page App
platform(OS + device)
native app
HTTPWebSockets
adaptare după Adrian Colyer (2012)
aplicații Web
șiservicii
(API-uri)
app store
☁ ☁
![Page 120: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/120.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Add-on
denumire generică a aplicațiilor asociate unui browser
(extensii, teme vizuale, dicționare,
maniere de căutare pe Web, plug-in-uri etc.)
exemplificare: addons.mozilla.org
![Page 121: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/121.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
parametrii unui proiect web
obiectiv principaldurată
costabordaretehnologii
proceserezultat
resurse umaneprofilul echipei
![Page 122: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/122.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
echipa proiectului Web
management
Web Project Manager
funcționalitate
Software Developer(s)*
Multimedia Designer(s)
conținut (date)
Domain Expert
Business Expert
*frontend sau backend sau full-stack (frontend + backend)www.slideshare.net/busaco/sabin-buraga-dezvoltator-web-2019/
![Page 123: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/123.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rezumat
💡considerații privind arhitectura aplicațiilor Web
![Page 124: Full-Stack Web Developmentbusaco/teach/courses/... · server(e) Web server(e) de aplicații Web cadre de lucru, biblioteci, alte componente server(e) de stocare persistentă–e.g.,](https://reader035.fdocuments.net/reader035/viewer/2022071002/5fbedbae365c173aa05f3956/html5/thumbnails/124.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
episodul viitor: limbajul JavaScript
ww
w.f
lickr.
co
m/p
hoto
s/n
ath
an
sm
ith/4
704
26
831
4/