Dr. Sabin programare de la MVC la Dezvoltarea Corneliu arhitectur Buraga Web  sistemelor –  i Web i și studii de caz profs.info.uaic.ro/~ inginerie Web Web busaco /

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ „S implitate Constantin BrâncușiConstantin a este o complexitate rezolvată .”

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ sisteme î n evolu Aplica ț ie permanent ț ii Web complexe ă ,

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ mobil mijloace laptop PC tablet multiple demultiple interac Realitate ă ț iune ( smart Web Web ) TV cu utilizatorul ecran urban

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ mobil  mijloace smart appliances  laptop PC tablet game console multiple demultiple  ⌚ plus, plus, veniți:noii smart interac Realitate smart home watch ă ț iune ( smart   Web Web smart transportation smart ) TV cu utilizatorul ecran clothing urban

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ la având a aplicații ș teptări totmai teptări mari din parteasoftware Web Web de la c re sociale ș conținut terea masei terea masei de Realitate  ( + hiper interacțiune utilizatori )textual )textual  naturală , -  ului

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ ( limbaje s oferit de oferit la uportul privind uportul nivel , API - uri, biblioteci de cod, biblioteci instrumente,...) uri, de server(e) platforma Realitate dezvoltarea deaplicații hardware ș i / sau de client( /software i )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/  neadaptare development la cerin vs.  ț ele Realitate marketing economice vs. (de tip  management business )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ privind calitatea proiectele ne lipsa î nt î ncadrare â rzieri Realitate precar func ț î Web Web de ionalit n ă î lansare n a buget aplica ăț anvergur ii ț iei ă

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ utilizatori comportament psihologie scopuri adaptare după ⧉ interfață limbi naturale interacțiune controale Crumlish f software  unc tehnologii algoritmi ționalități & Malone, & Malone, 2009 conținut  structurare meta indexare - date instrumente metodologii creatori stimuli

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Goal About Face Building digital actori principali: management Alan Cooper technologists designers (4 th products successful Edition), 2014 et al. ,

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ dezvoltarea produselor evoluția manierei de digitale (software) Alan Cooper et al. , 2014

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Asigurarea extindere corectitudine eficien ță + ( asigurarea compatibilitate calit reutilizare portabilitate și robuste ăț ii aplica performan ( modularitate ț e ( reliability ț iilor ț ei Web ) ) )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ facilitarea relevan Asigurarea ț interac a momentului mentenabilitate func calit ț iunii securitate ț ăț ionalitate cu cu ii lans aplica utilizatorul ă rii ț ( iilor timeliness ( usability Web ) )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ verificabilitate Asigurarea alte – aspecte inclusiv calit reparabilitate integritate economie ăț ii de monitorizare aplica interes ț iilor : ( Web logging )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ highscalability.com/blog/2016/10/12/lessons asocierea dintre construcții/abstracțiuni software asocierea dintre construcții/abstracțiuni BeforeScaling Uber to 1000 Services oferirea funcționalităților debază funcționalităților oferirea monitorizare adaptare după Matt Matt după adaptare ( preluarea și dirijarea cererilor preluarea Asigurarea e.g. , obiecte) șimodele de date obiecte) , managementul esențialmente, esențialmente, de considerat: a și evaluare calit Ranney - learned ăț ii - , from datelor “ What IWish IHadKnown aplica a - scaling sistemului ” , GOTO GOTO , - uber – ț iilor - – data to – – - 2000 core dispatch mapping Chicago Chicago - engineers – Web metrics services - 1000 2016 - ser.html

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ controlul dezvoltarea planificarea permanent al permanent scopuri sistematic judicioas + cerin Necesit î ntregului ă ă , ț a e î n faze, n faze, a etapelor clar ăț i specificate proces aplica de dezvoltare de ț iilor dezvoltare Web

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ controlul dezvoltarea planificarea permanent al permanent scopuri sistematic judicioas  + inginerie cerin Necesit î ntregului ă ă , ț a e î n faze, n faze, a etapelor clar ăț Web i specificate proces aplica de dezvoltare de ț iilor dezvoltare Web

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Î n ce mod dezvolt ă m o m aplica ț ie Web?

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ se prefer Uzual (MDA , se ă – abord model www.omg.org/mda/ recurge modelare ă - rile driven architecture driven la o conduse metodologie de modele )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Robert Baxley

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Analiz dezvoltarea Mentenan ă Exploatare Cerin & Implementare Evolu proiectare Testare ț e ( e ț ță ie requirements aplica ( ( ( ( evolution maintenance deployment testing ( software design ( build ț iilor ) ) ) ) ) Web ) )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Jesse Garrett, (produssoftware) informații oferite funcționalitate aplica The Elements of User Experience ție Web + Methodologies (2 nd Edition), New Riders, 2011

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ cerin actualmente,preferate sunt documen ț dezvoltarea programare e tare arhitectura www.infoq.com/process + - navigare public beta www.webpagefx.com/blog/web (server + client) creare info testare de con de / adaptare ț inut aplica lansare - metodologii agile design/agile/ ț - mentenan practices/ iilor ță Web

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ aim42 migrarea șiîmbunătățirea sistemelor software – 12 Factor App practici șișabloane privindevoluția, mentenanța, dezvoltarea paradigmei M etodologi SaaS aim42..io – 12factor.net i viz modern ( aplica Software As A Service As Software ând aplicațiile aliniateaplicațiile e – ț iilor exemple: Web )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ dezvoltarea aplicațiilor Web: Web: aplicațiilor dezvoltarea exemplu make things open; it makes things better things open; itmakes make things pentru do the hard work to make worktomake itsimple do thehard build digital services, not Websites digital services, build be consistent, not uniform beconsistent, iterate. then iterateiterate.then again gov.uk understand context understand build for inclusion build designwith data start with needsstart with – Paul Downey & David (2013) Heath do less principii

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ dezvoltarea aplicațiilor Web: Web: aplicațiilor dezvoltarea exemplu make things open; it makes things better things open; itmakes make things pentru do the hard work to make worktomake itsimple do thehard build digital services, not Websites digital services, build be consistent, not uniform beconsistent, iterate. then iterateiterate.then again gov.uk understand context understand build for inclusion build designwith data start with needsstart with – Paul Downey & David (2013) Heath do less principii

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ dezvoltarea aplicațiilor Web: Web: aplicațiilor dezvoltarea exemplu make things open; it makes things better things open; itmakes make things pentru do the hard work to make worktomake itsimple do thehard build digital services, not Websites digital services, build be consistent, not uniform beconsistent, iterate. then iterateiterate.then again gov.uk understand context understand build for inclusion build designwith data start with needsstart with – Paul Downey & David (2013) Heath do less principii

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ dezvoltarea aplicațiilor Web: Web: aplicațiilor dezvoltarea exemplu make things open; it makes things better things open; itmakes make things pentru do the hard work to make worktomake itsimple do thehard build digital services, not Websites digital services, build be consistent, not uniform beconsistent, iterate. then iterateiterate.then again gov.uk understand context understand build for inclusion build designwith data start with needsstart with – Paul Downey & David (2013) Heath do less principii

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ dezvoltarea aplicațiilor Web: Web: aplicațiilor dezvoltarea exemplu make things open; it makes things better things open; itmakes make things pentru do the hard work to make worktomake itsimple do thehard build digital services, not Websites digital services, build be consistent, not uniform beconsistent, iterate. then iterateiterate.then again gov.uk understand context understand build for inclusion build designwith data start with needsstart with – Paul Downey & David (2013) Heath do less principii

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ dezvoltarea aplicațiilor Web: Web: aplicațiilor dezvoltarea exemplu make things open; it makes things better things open; itmakes make things pentru do the hard work to make worktomake itsimple do thehard build digital services, not Websites digital services, build be consistent, not uniform beconsistent, iterate. then iterateiterate.then again gov.uk understand context understand build for inclusion build designwith data start with needsstart with – Paul Downey & David (2013) Heath do less principii

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ dezvoltarea aplicațiilor Web: Web: aplicațiilor dezvoltarea exemplu make things open; it makes things better things open; itmakes make things pentru do the hard work to make worktomake itsimple do thehard build digital services, not Websites digital services, build be consistent, not uniform beconsistent, iterate. then iterateiterate.then again gov.uk understand context understand build for inclusion build designwith data start with needsstart with – Paul Downey & David (2013) Heath do less principii

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ dezvoltarea aplicațiilor Web: Web: aplicațiilor dezvoltarea exemplu make things open; it makes things better things open; itmakes make things pentru do the hard work to make worktomake itsimple do thehard build digital services, not Websites digital services, build be consistent, not uniform beconsistent, iterate. then iterateiterate.then again gov.uk understand context understand build for inclusion build designwith data start with needsstart with – Paul Downey & David (2013) Heath do less principii

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ dezvoltarea aplicațiilor Web: Web: aplicațiilor dezvoltarea exemplu make things open; it makes things better things open; itmakes make things pentru do the hard work to make worktomake itsimple do thehard build digital services, not Websites digital services, build be consistent, not uniform beconsistent, iterate. then iterateiterate.then again gov.uk understand context understand build for inclusion build designwith data start with needsstart with – Paul Downey & David (2013) Heath do less principii

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ dezvoltarea aplicațiilor Web: Web: aplicațiilor dezvoltarea exemplu make things open; it makes things better things open; itmakes make things pentru do the hard work to make worktomake itsimple do thehard build digital services, not Websites digital services, build be consistent, not uniform beconsistent, iterate. then iterateiterate.then again gov.uk understand context understand build for inclusion build designwith data start with needsstart with – Paul Downey & David (2013) Heath do less principii

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ S tabilirea users standardelor c context erințe con tent de - calitate

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ CreativeCommons a con ț inutului www.opensource.org/licenses/category cod Obținere/ licitare / negociere drepturi de autor drepturi deschis (datelor) și – date deschise www.creativecommons.org/licenses/ ( c Open SourceLicenses erințe versus + – / copyright sau codului ) - surs ă

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ a software detalii detalii despre licențele deutilizare - ului/datelorla tldrlegal.com

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Documentare – subject ce trebuie soluționată de Web soluționată aplicația ce trebuie matter cu atragerea experților cu atragerea în domeniul problemei în domeniul privind expert c erințe (SME) sau (SME) domeniul domain aplica expert ț iei Web –

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ that can be read and edited by both humans and machines and read be editedthat can and humans both by Vimeo Wikidata that every growing business deals with deals business that every growing Basecamp : “ Watch, upload and share HD and shareHDand 4K videosupload and Watch, c : “ erințe Viziune a free openknowledge and base : “ solves the critical problemsthe critical solves with no ads with : ( exemple big idea ” ) ” ” Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ oamenilor suport Punctele presupuneri pentru partajarea folosirea ci le place s le place ș de c i a erințe realizarea plecare fotografiilor succesului nu ini ă - doar ș ț : i iale î exemple î mp n de a dezvoltarea ( blogging ă ( comentarii î assumptions nsemn personale rt ăș easc ă - rilor ului ă ) amintirile + ): Flickr , tagging

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ disponibilitate recurgerea audien căutare, filtrare, recomandare filtrare, căutare, noi Privitoare context de context ț permanent a tipuri – la e.g. preferin surse , etc. interna de la con eterogene navigare ă ț (7 e cerin ț zile ț ionalizare inut , 24 de , 24de ore/ ț de date e zi )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Interac “ it’s yours to take,re yours it’s ț iunea inclusiv noi cu tipuri content mash utilizatorul viz â nd de - arrange andre arrange Web cerin - - up ul î n social contextul ț e - use ” Web

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ interactivitate interactivitate suport pentru diverse standarde pentru suport Privitoare (in) dependen noi multi tipuri on wired vs. wirelesswired vs. - dispozitiv ( dispozitiv - la line vs. off vs.line ț a de mediul de navigatorul cerin - responsive line de execu ț e Web HTML ț Web design ie )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ f ă utilizator r ă a trebui ii sunt noi s - Referitoare o (re) capabili tipuri instaleze s ă de la exploate pe evolu cerin calculator ze ț i ț e aplica e /dispozitiv ț ia Web

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ noi oferirea tipuri func de ț ionalit cerin ăț ini ț ilor e: ț ial esen aspecte : ț iale – less is more less de interes

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ noi î ncuraj – uzual, oferirea tipuri ând via o interfață de programare ( de via ointerfață programare dezvoltarea func de extinderea ț ionalit cerin versiuni ăț de ini ț ilor aplica e: solu ulterioare ț ial esen aspecte : ț ii ț iei propuse ț iale Web : – less is more less API de de ) utilizatori interes public ă ,

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Martin Fowler, Martin Calitatea de arhitectura martinfowler.com/architecture/ aplica Software Architecture Guide Architecture Software arhitecturi ț iilor pe care se Web este bazeaz influen ă (2019) ț at ă

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ that that that’s seenby that’s those with the money money with the those business customers customers business architecture group of functionality of group arhitecturi body of code of body developers initiative see as a single budget seeas asingle see as a single unit seeas asingle as a single unit a single as

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Dezvoltarea factori decizionali decizionali (management) factori evolu unei cerin ț impuse ie arhitecturi arhitecturi concuren social vizitatori ț e func de … ă / clien tehnologic ț ță ionale software software , , ț i , ă ia , î , n calcul :

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Dezvoltarea refolosire unei factori arhitecturi arhitecturi utilizabilitate performan securitate a datelor/ etc. calitativi software software ță codului ia î n calcul :

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ platforma Dezvoltarea servicii hardware/software( sisteme disponibile infrastructura limbaj unei aspecte arhitecturi arhitecturi tradi (e) de (e) tehn – ț … e.g. ionale programare middleware ( , via API , olog software software ( sistem legacy )ice - uri ) de ia publice î operare n calcul : )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ solu ț Dezvoltarea ii recurgerea „ la ș abloane cheie ”: management management de unei la biblioteci de arhitecturi proiectare arhitecturi arhitecturi experien , etc. framework și platforme ( ț software software proiecte patterns design a - uri , ia instrumente existente î n calcul ) : ,…

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ server(e) de management de management al con server(e) server(e) server(e) de cadre delucru aplica server(e) de con server(e) intermediar(i) ( server(e) server(e) de ț stocare zid de protecție ( zid deprotecție ii „ingrediente”tipice /sisteme mandatar mandatar ( server(e) server(e) Web , biblioteci persistent client( tradi ț aplica inut middleware proxy i ț ) , ț ionale firewall alte inutului multimedia ț ă ii Web ) – componente e.g. ( legacy ) – , ) baze e.g. , CMS , ) de date , wiki

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ eventual, recurgândla servicii în„nori” server(e) de management de management al con server(e) calculatoare/dispozitivebaza tehnologiilorpe Internet server(e) server(e) de infrastructură scalabilă, procesare paralelă, monitorizare,…) paralelă, procesare scalabilă, infrastructură partajarea la cerere și adatelor resurselor a altecu calcul de cadre delucru aplica server(e) de con server(e) intermediar(i) ( server(e) server(e) de ț stocare zid de protecție ( zid deprotecție ii /sisteme mandatar mandatar ( server(e) server(e) Web , biblioteci persistent client( tradi ț aplica inut middleware proxy i ț ) , ț ionale firewall alte inutului multimedia ț ă ii Web ) – componente e.g. – ( legacy cloud ) – , ) baze e.g. , CMS , ) computing (găzduire, (găzduire, de date , wiki

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ privind Exist dezvoltarea ă anumite de „ aplica re ț ete ț ” ii Web?ii

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ dintre un consider problem regul ând context P punctul de vedere al unui expert de vedere alunui punctul ă attern proiectare ce exprim ă , o context problemă ( ș ablon ă o relație solu ) și o ț ie soluți e

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ prezentare stocare integrare Specificarea procesare procesare a datelor a a poate la poate avea loc datelor componentelor ș i – / – sau queries database – proiectare business logic business UI, UI, „ r ecunoașterea” unui unui ecunoașterea” user interaction user diverse – code library developmentcode library , scripting niveluri , database design database , visualization : etc. pattern ,… ,…

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ publicly available design systems and and pattern libraries systemsdesign available publicly interac patterns of enterprise application architecture application enterprisepatterns of ț Exemple iunea privind martinfowler.com/ wiki.c2.com/?DesignPatterns cu ( pattern repositories utilizatorul proiectarea de adele.uxpin.com proiectare colec ț ii de (Adele eaaCatalog de software ș abloane ) – a / repository of repository )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ M. Fowler, Patternsof EnterpriseApplication Architecture Application Controller Application ModelController View Front ControllerFront Transform View Transform Page Controller Web Patterns proiectare TemplateView , Addison - Wesley(2003)

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ M. Fowler, Patternsof EnterpriseApplication Architecture Session State Patterns Database Session State Session Database Server Session State ServerSession Client Session State SessionClient proiectare , Addison - Wesley(2003)

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ M. Fowler, Data Source Data Source Architectural Patterns Patternsof EnterpriseApplication Architecture Table Data GatewayTable Row Data Gateway Data Row proiectare Active Record Active Data Mapper , Addison - Wesley(2003)

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ a plicație ( interface Client Web Web = ) trei i nterfață strate Internet (Web) ( 3 - + tierapplication p Server de rogram ( application aplica + c onținut ) ( ) ț ii ii persistence Stocare ( ate) )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ C. Henderson, Scalable Web Architectures , Web 2.0Expo, 2007 Jel Cremă Fru Blat eu Frișcă c / t / e Funcționalitate Baza dedate / / / Rol Pre Mar z specific enta caje : re iamcal.com/talks/

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ C. Henderson, Scalable Web Architectures , Web 2.0Expo, 2007 application persistence interface : iamcal.com/talks/

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ de M modul odelul ( controlul de demarcarea de prezentare de ( structurare separation of concernsseparation arhitecturi maniera aplica principiu responsabilit ț iei a de acestor a , business logic procesare datelor : web a ( ăților este ) interfa

separat

) ș ț i a Web a ) Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Majoritatea heim.ifi.uio.no/~trygver/1979/mvc conform conform arhitecturi web arhitecturi MVC Trygve aplica ( Model Reenskaug ț iilor Web - View , 1979 - 2/1979 : sunt - mvc Controller - dezvoltate 12 - MVC.pdf )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ ( prezentare View + interac arhitecturi web arhitecturi ț iune ) Controller ( procesare ) : mvc ( structura Model datelor )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ la nivel de client( View arhitecturi web arhitecturi i ) – e.g. aplica , Web ț ie Controller (server ș i / sau client) : mvc stocare Model persistent ă

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ la MathML nivel HTML, CSS, SVG, de  , WebGL client( View ↔ arhitecturi web arhitecturi , i ⧉ ) WebVR – servere e.g. aplica , Web etc. de ț ie Controller aplica (server  ț ii, ș framework i / sau XML (XQuery), RDF client) : mvc stocare - uri (No) Model SQL,  persistent JSON, (SPARQL) ă ,…

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ P oate î ncurajat fi implementat / arhitecturi web arhitecturi impus de ș i framework î ntr - un limbaj - uri : mvc neorientat Web Web specifice - obiect

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ P ASP.NET MVC ASP.NET oate î ncurajat (Scala), (Haskell), fi implementat (Python), Rails / arhitecturi web arhitecturi (C# impus Wicket (Ruby), et al. exemplificări exemplificări diverse: FuelPHP de ), (), ș Catalyst i Sails framework î ntr , (Node.js), - un (), (C++), limbaj (Groovy), - uri : ColdBox Zikula TurboGears mvc neorientat Web Web (PHP), (ColdFusion), specifice (Python), (PHP), ZK - obiect (Java)

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ ( cereri gestioneaz uzual responsabil GET/POST ș , i va , apoi apela ă arhitecturi web arhitecturi resursele , va cu un emise selecta preluarea model Controller necesare pe un baza conform ac conform view cererilor ac satisfacerii corespunz ț : iunilor mvc ț iunii de la client utilizatorului ă solicitate cererilor tor ) Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ ș ofer v resursele i iz e ând responsabil ă desemneaz controller date produse gestionate le arhitecturi web arhitecturi  - concepte cu ă ului datele validarea etc. o de software reprezentare – Model + au manipulate de manipulate regulile modele datelor – ( : i.e. utilizatori specifice a mvc menite datelor restric aplica a fi ț , solicitate iile mesaje ț stocate ia ) Web ,

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ furnizeaz alegerea ă furnizate arhitecturi web arhitecturi diverse pot lor exista fiind maniere de view model View realizat - uri de via multiple, prezentare ă controller de : mvc controller a datelor

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ (5) (3) selectare (1) (2) recurgerea Client cerere dirijare a arhitecturi web arhitecturi 6 unui trimis 1 ( la un routing view Dispatcher ă etape de client model View , (6) ) a ) transmitere tipice cerer , (4) – 5 e.g. furnizare ii : 2 c : , navigator, Web, ă mvc tre 3 Controller con controller date Model ț inut 4 dorite la client , ,

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ va Arhitectura consta dintr arhitecturi web arhitecturi controller generic - un set de , model ă a resurse unei ș i : aplica view mvc referitoare ț ii Web la

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ va structur uzual Arhitectura consta , framework ă a fi dintr arhitecturi web arhitecturi controller ș ierelor generic - un set de - ul aplica Web Web , model ă folosit a ț iei resurse unei ce ș impune i : va aplica view mvc fi referitoare implementat ț o ii Web anumit ă la ă

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ ├───script ├─── ├───log ├───lib ├───doc ├───db ├─── │ └───layouts │ └─── │ ├─── │ ├───mailers │ ├───helpers │ ├─── │ └─── │ ├─── │ ├───images │ ├─── ├───app └─── ├───vendor ├─── │ └───unit │ ├───performance │ ├───integration │ ├───functional │ ├───fixtures ├─── config plugins tmp test public views models controllers assets stylesheets „ scheletul create rubyonrails.org ” î n unei aplica ț ii Web

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ │ ├───Layouts │ ├───Helper │ ├───Errors │ ├───Elements │ ├─── │ ├───Vendor │ ├─── │ ├─── │ ├─── │ └─── │ ├───Behavior │ ├─── │ ├───Locale │ ├───Lib │ ├─── │ ├───Console │ ├─── ├───app └───vendors ├─── ├───lib │ └─── │ ├─── │ ├───files │ ├─── │ └─── │ └───Scaffolds │ ├───Pages plugins webroot View tmp Test Plugin Model Controller Config js img Datasource altele : CodeIgniter î n structura , folosind cazul , Zend Framework .org unei CakePHP , FuelPHP framework de aplica directoare , Laravel ț ii Web - ul , Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ └─── ├───project ├─── │ └─── │ ├─── │ ├─── │ └───main │ ├─── │ ├───apps │ └─── │ ├─── │ ├───assets ├───app ce public conf └─── │ └───icons ├───images structura recurge javascripts views models controllers stylesheets javascripts de la libs framework directoare www.playframework. - î ul n cazul Play pentru unei com aplica Java ț ș ii Web i Scala

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ pentru structura o www.asp.net/mvc aplica proiectului ț ie ASP.NETMVC software

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Herberto herbertograca.com/2017/08/17/ HMVC ( MVVM ( MVVM arhitecturi web arhitecturi Graca MVP ( MVP Hierarchical Model Hierarchical pentru Variante , Model View PresenterModel View Model View MVC and its MVC and detalii derivate: , a se ViewModel mvc - alternatives View studia : - and mvc - Controller - its ) ) - variants/ (2017) )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ HTTP Request updates ( model e.g. Data Collection of Router , DB, API,…) View Models Source syncs events model updates events DOM DOM într (A. Osmani, 2013) Osmani, (A. la nivelde client flux deflux activități - o aplicație MV* aplicație o DOM

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ .js Knockout.js using Vue.js biblioteci the S “ tudii provides efficient MVVM data bindings with MVVM data bindings efficient provides todomvc.com/examples/ Model “ helps todomvc.com/examples/ de a simple and flexible API and flexiblea simple ori - caz View you exemplificări: todomvc.com framework pragmatice - simplify ViewModel dynamic - uri knockoutjs recurg (MVVM) (MVVM) pattern JavaScript vue ” / ând JavaScript / la : UIs ”

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Prin cemijloacepoate fiimplementată o aplicațieWeb ?

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ e ficientiz server de aplicații web deaplicații server a aplica area ț iilor procesel Scop Web : or complexe de dezvoltare

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ privind p o e ate dezvoltarea ficientiz î ncuraja server de aplicații web deaplicații server a aplica area sau de ț iilor procesel aplica impune Scop: Web ț ii Web o or viziune complexe de – e.g. dezvoltare arhitectural , MVC ori variații ori ă

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ I de ntegr asemenea server de aplicații web deaplicații server at î n sau mediu sau mediu de execuție unul , po a t / e mai oferi multe propriul servere server Web

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Simplifică ( reprezent server de aplicații web deaplicații server invoc la generarea ări nivel are de resurse a de server Web de de con programe – ț uzual, HTML) uzual, inut ( script - uri )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ www.leaseweblabs.com/2013/10/api client „prostuț” client frontend ( brow dumb ser - ) abordarea MV* tradițională arhitecturaaplicațiilorWeb: pagini pagini HTML, HTML, CSS,… prezen - first tare - architecture - server„gras” backend proce ( sare fat ) - - fat abstrac - tizare vs date - thin - - server - debate/

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ client „prostuț” client modificările modificările operate anumit strat laun impact nu au frontend ( brow dumb ser sau nuafectează componentele din alt strat - ) abordarea MV* tradițională arhitecturaaplicațiilorWeb: pagini pagini HTML, HTML, CSS,… principiu de proiectare:principiu layers prezen of tare isolation - server„gras” backend proce ( sare fat ) - abstrac tizare date -

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ client „prostuț” client frontend ( brow dumb ser - ) abordarea MV* tradițională arhitecturaaplicațiilorWeb: pagini pagini HTML, HTML, CSS,… startare ( e.g. prezen , un , WAR: 2.2M linii de cod, 418 tare frecvent, în 12 min. - server„gras” backend proce ( sare fat aplicație monolitică – ) conform - abstrac tizare date plainoldobjects.com - .jar - uri, )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ m edii de s tocare dezvoltare server de aplicații web deaplicații server l c persistent imbaj aracteristici c Aspecte deinteres: Aspecte ookie i nterac API (e) de (e) + cadre de - - ul uri ă ț iune de a programare și particulare modelelor baz sesiuni Web lucru ă , componente,… , de date

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ oferind suport pentru una saumai pentru oferind suport multe server de aplicații web deaplicații server L imbaj (e) de concurentă funcțională imperativă obiectuală paralelă reactivă … programare paradigme :

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ dinamice server de aplicații web deaplicații server statice L imbaj – e.g. – , exemple: exemple: C#, Java, JavaScript (e) de versus programare , PHP,, Python, Ruby Python, Rust

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ uzual IL procesate prin ( IntermediateLanguage , se , prefer server de aplicații web deaplicații server L imbaj ă interpreta generarea (e) de programare r ) e de – și/ C#, Java,Scala cod sau intermediar compila r ,… e :

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ contribuie server de aplicații web deaplicații server (via a func serverului la API de ț ii/ „ puterea clase de baz predefinite aplica ” ă limbajului ț ii ) și

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ acces asigurarea independenței de platformă contribuie la server de aplicații web deaplicații server resursele (via a securitate func serverului la API de ț ii/ mediului „ puterea clase , consisten de baz predefinite aplica ” de ă limbajului operare ță ț ii , ) /rulare, și etc.

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ î n baze server de aplicații web deaplicații server de date S tocare rela persistent ț ionale – folosind ă SQL

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ incorporate incorporate PHP î Java n – baze func server de aplicații web deaplicații server – JDBC ț ADO.NET de date ( ii SQLite SQLite /module S tocare ( Java Java rela + exemple pentru mysqli DataBase predefinite persistent ț ionale ) : ASP.NET sau – Connectivity folosind , plus diverse ă biblioteci SQL extensii )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ ORM PHP – ( + Object framework î implementări: implementări: n Java baze server de aplicații web deaplicații server - Relational Mapping Relational – specificația specificația de date Node.js - uri: S Go tocare Cycle EclipseLink – framework – rela biblioteca ORM JPA persistent ț ionale ( , Java PersistenceAPI Doctrine , - Hibernate ul ) Sequelize : șablonul : șablonul Xorm – folosind , ă Propel , OpenJPA Data , RedBean SQL ) ,… Mapper etc.

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Active Record Active active_record pentru a încapsulaîntr pentru DBIx î n baze :: Class server de aplicații web deaplicații server , TypeORM – șablon arhitectural utilizat în cadrul ORM încadrulutilizat arhitectural șablon de date (Perl), S tocare (module Node.js),(module Django rela exemple - (Java, Scala), persistent o clasă sauun o o tabelă ț ionale ORM : și – Orator folosind Rails Castle Project Project Castle ă (Ruby) ( Python SQL ), view (.NET),

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ valid transform pe proces ă ri server de aplicații web deaplicații server baza de date ă date (semi) S modelelor ri ă tocare ri interog : DOM, SAX, : DOM, î : DTD, XML Schema, RELAX,… : Schema, DTD, XML n alte ă persistent ri formate arborescente structurate : XQuery SimpleXML : XSLT XPath, ă : XML etc. cursurile viitoare

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Cassandra distribuite recurg (bazate pe grafuri și/sau cheie și/sau pegrafuri (bazate , MarkLogic server de aplicații web deaplicații server â github.com/ nd la nosql.mypopescu.com/kb/ la S nivel tocare , alte MongoDB exemplific erictleung de Internet, de Internet, paradigme persistent , Neo4j / awesome ă ri : , OpenLink non scalabile nosql ă — - - nosql rela valoare) ț Virtuoso – ionale NoSQL , Redis

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ î n cadrul facilitat server de aplicații web deaplicații server codului In ă terac - de surs controale ă ț iune invocat Web specificate la nivelde server

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ oferi  componente Web ( Web componente generare se pot î n noi cadrul controale emula de cod facilitat server de aplicații web deaplicații server codului c HTML + HTML â mpuri In procesabil laniveldeprocesabil client ( interactive interactive ă terac - de surs CSS + controale din ă ț iune invocat formularele JavaScript – e.g. Web specificate , calendar, , la nivelde ) executate de ) executate HTML slideshow server front ș i / browser sau - end ,… ) Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ ASP.NET ( ASP.NET formidable platforma < server de aplicații web deaplicații server asp:control framework , In Java: terac exemplific - data > – - JSF ul e.g. ț , iune forms PRADO ( , JavaServer FileUpload ă ri Web – : module Node.js (PHP) , ListBox Faces ) , Table ,... )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ î ncurajarea folosirii server de aplicații web deaplicații server pe baza Web templatesystem In de machete de terac unui procesor ț iune Web vizualizare specific ( templates ) Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ ( e.g. , utilizând preluate preluate ori alte reprezentări în alte formate ori alte reprezentări ( pentru de un Web templateWeb server de aplicații web deaplicații server dintr specifica Web templatesystem procesor - In a genera o baz terac ț ii de ă ), de date ț ( prezentare iune documente datele templateengine Web sau fișiere persistente a con HTML ) sunt ) ț inutului folosite

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ $ $ $ $ $ $ set (' >set (' >set (' >set (' >set (' =" =" new =" =" [@ profile location identity photoURL de procesare a machetelor de vizualizare location lastName firstName photoURL username specifica Template [@ template "> variabilă -- "> "> User > [@ ') = 'Romania'; [@ ') ') = ' ] ') ') = ' (' ') ') = ' ') = ' " alt=" firstName location templates profile Pinguinesscool ția Tuxy Tux imgs – implementare ] photo . '; : – tpl de prezentare a conținutului '; [@ ] / tux.svg