Dr. Sabin de laMVC la Corneliu programare Tehnologii arhitectur Buraga – i Web și i Web studii decaz profs.info.uaic.ro/~ Web Web (II) 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, „noii”veniți: ⌚ 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/ 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.

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 pics.me.me/story dezvolt - of - every - project - after ă - m o m 3 - months - initial - work aplica - plan - 57930917.png ț 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.github.io – 12factor.net i viz modern ( aplica Software As A Service As Software ând aplicațiile aliniateaplicațiile e – ț iilor exemple: Web avansat )

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/ 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 manage and share high andshare manage “ simple tools for you and yourteamtocreate,for you tools simple c : “ erințe Viziune a free openknowledge and base : “ solves the critical problemsthe critical solves : ( exemple big idea - quality videos. quality ) ” ” ” 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 standardeHTML 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 ț 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 ⧉ ) WebXR – 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/ ASP.NET ASP.NET MVC P TurboGears (PHP), oate î ncurajat (Python), fi implementat (Scala), (C# (Python), / arhitecturi web arhitecturi impus et al. exemplificări exemplificări diverse: Rails ), Catalyst de ș (C++), (Ruby), i framework î ntr (Haskell), FuelPHP - (), un limbaj ColdBox - Wicket , uri : (Rust), mvc neorientat Web Web (), (Groovy), ( Sails ColdFusion specifice (Node.js), - obiect (C++) , 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 avansat 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 î n structura folosind cazul Laravel : CodeIgniter .org unei CakePHP , framework de aplica avansat directoare , FuelPHP ț , 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 avansat ț ș ii Web i Scala

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ pentru structura o www.asp.net/mvc aplica proiectului ț ie ASP.NETMVC avansat 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 ) ) - avansat variants/ (2017) )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ (în loc (în loc de) pauză

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

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ privind p o e ate dezvoltarea ficientiz î ncuraja a Server de aplicații Web aplica area implementare sau de ț iilor procesel aplica impune scop: 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/ www.leaseweblabs.com/2013/10/api client „prostuț” client frontend ( brow dumb ser - ) abordarea MV* tradițională arhitecturaaplicațiilorWeb: pagini pagini HTML, HTML, CSS,… uzual prezen - la generarea first tare nivel , aplicație aplicație monolitică - architecture - server„gras” backend de server de server Web proce ( sare fat de con ) - - fat abstrac - tizare ț vs date inut - 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/ faciliteaz cod, managementde ( e.g. ș i / , sau acces simplific ă î Framework ncuraj dezvoltarea la baze implementare â â nd nd de date, unele reutilizarea sesiuni ( de cadru de lucru aplica opera caching , control al ț ț ii Web codului ii uzuale , generare avansat ) accesului complexe - surs

ă de ) , Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Diverse JavaScript Python Java : : Perl CherryPy ( aplica N ASP.NET , Ruby Spring ode.js : Catalyst implementare ț : ii Web la - ): uri , , Sling : Express ASP.NET , care , , Struts , nivel Pylons Rails faciliteaz , Koa , Core de server: , , Tapestry , LoopBack MVC ă dezvoltarea , avansat , Wicket , de

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ oferind funcționalități (comportamente) specifice specifice (comportamente) oferind funcționalități colecție de colecție reutilizabile resurse computaționale implementate implementate într Bibliotecă Web Bibliotecă – i.e. , structuri de date+cod structuri , implementare - un limbaj deprogramareun ( library – )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ oferind funcționalități (comportamente) specifice specifice (comportamente) oferind funcționalități colecție de colecție reutilizabile resurse computaționale implementate implementate într poate dealtcod poate fi referită serverde aplicații, serviciu, API ori componentă Web ori componentă API serviciu, Bibliotecă Web Bibliotecă – i.e. , structuri de date+cod structuri , implementare - un limbaj deprogramareun framework - ( sursă (software): sursă (software): library , bibliotecă, bibliotecă, , – )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Bibliotecicu acces codul liber la Beautiful Requests TensorFlow.js Soup ImageMagick - Apache Apache HTML Libxml2 – Expat www.crummy.com/software/BeautifulSoup OpenCV – libcurl PDFBox zlib github.com/ D3.js – – – – – libexpat.github.io www.zlib.net – www.imagemagick.org www.xmlsoft.org www.tensorflow.org/js/ – – – curl.haxx.se d3js.org opencv.org pdfbox.apache.org kennethreitz - sursă / requests – exemple: - html

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ frecvent via un API ( via unAPI frecvent s oftware implementare de – oferind o funcționalitate specifică oferind o funcționalitate utilizat ladistanțăutilizat de alteaplicații/servicii programatorul implementare Serviciu Web Application a sa nu trebuie cunoscută cunoscută trebuie nu ce invoc Programming în în cursurile viitoare ă serviciul , Interface – ) Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ î ncapsuleaz ( exemplu implementat pentru oferit SDK de : o platform Octokit ă Github func ( Software Development Kit ă î ntr implementare ț API façade pattern façade API ionalit ( – pentru - ă developer.github.com/v3/libraries/ un software/hardware specific software/hardware anumit ăț ile .NET, Objective API limbaj - ului de î ntr programare - - C, Ruby,…) avansat o bibliotec ) ă ) , ă

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ dezvoltare pe o bazată bibliotecă/ buton de a URL buton partajare ce e.g. include , calendar, cititor de fluxuri deștiri, defluxuri calendar, cititor , parte a unei aplicații Web implementare Web component o suită de funcții înrudite - ului în altăaplicație framework avansat J ava S cript

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ rulează la nivel de client (platformă pusă la dispoziție ladispoziție pusă (platformă nivel declient la rulează inclusă într inclusă de sistemul de operare și/sau de navigatorul Web) de sistemul de și/sau denavigatorul operare ce oferă o funcționalitate specifică ce oferă o funcționalitate aplicație aplicație - un container ( container un implementare – de sine Widget e.g. - stătătoare stătătoare sau , un document HTML) document un , –

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ a distributed computer soft a distributed browser care folosește API care folosește optimal useonspecific optimal w ith , server de aplicații, sistem server deaplicații, de operare,… , o aplicație instalabilă o aplicație (Web) particular Robert Robert implementare ( - Web urile oferite oferite de oplatformă: urile Shilston interface w ) are app screen sizes application designed for application , 2013 , technologies and and

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ app store ☁ adaptare după Adrian native Single ( Webbrowser Page SPA App app OS platform + device drive.google.com Google Drive Google for Android/ ) iOS Colyer app Web (2012) HTTP Socket forJava, Node.js, avansat Google Drive SDK Google Google Drive Google API (API aplicații aplicații servicii Web și - uri) ☁ Python

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ denumire generică asociate aaplicațiilor unui maniere de căutare pe Web, maniere pe Web, de căutare (extensii, dicționare, (extensii, teme vizuale, exemplificare: exemplificare: implementare Add addons.mozilla.org - on plug - in - uri etc.) browser

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ S. Buraga, „Cu codul în nori”: KomodoIDE Anjuta exemplificări exemplificări AWS Cloud9 Recurgereala , Aptana soluții bazate bazate pe soluții Visual Visual , Padre – Studio Studio (Code) Studio , aplicații (pentru native aplicații Codenvy dezvoltare , PHPStorm www.slideshare.net/busaco/cu , m Eclipse edii cloud , Koding de , , , PyCharm Emacs WebStorm computing dezvoltare , RELP.it , IntelliJ , desktop RubyMine : etc. - codul IDEA ): - n , , - nori

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ ( code repositories cod Development as a Service as Development - sursă stocat sursă ( runtimeenvironment mediu de execuțiemediu de dezvoltare ☁ ) rulare dezvoltare instrumente ) ☁ (IDE) avansat de ☁

Dr. Sabin Buragaprofs.info.uaic.roA. Iqbal, M. Haunsenblas/~busaco, S./ Decker (2012) DigitalOcean instrumente utile la Jelastic ( code repositories cod , OpenStack BitBucket - , sursă stocat sursă GitHub Google ( runtimeenvironment Cloud mediu de execuțiemediu de , Windows Azure github.com/ dezvoltare ☁ Platform ) rulare desktop Web: AWS : Eclipse, Visual Studio (Code) , Heroku ripienaar dezvoltare instrumente ,… Cloud9, , ) ☁ /free Koding (IDE) - avansat for de , ☁ - Ideone dev etc. ,…

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ instrumente specifice instrumente specifice ( G enerarea JavaDoc Doc î , n diverse Document! X Document! automat , dezvoltare JSDoc exemplificări: documentation , phpDocumentor ă formate de , Doxygen documenta generators , ț ii , )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ monitorizarea modificărilor codului asupra modificărilor monitorizarea Controlulversiunilor surselor deprograme asupra aceleași suite ( de programe code review realizate de o echipă de de realizate o echipă programatori (VCS – Version , dezvoltare revision Control control System , versioning codebase ) - sursă )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ JavaScript www.oreilly.com/web pentru unui C# – profs.info.uaic.ro/~ – altele stil github.com/ Perl Perl Python Ruby Î PHP Scala - ncurajarea platform/free/files/little , de de – perldoc.perl.org/perlstyle.html – – la considerat la – – redactare www. dezvoltare github.com/ docs.scala nivel www.python.org/dev/peps/ nivel dennisdoomen HTML + HTML CSS busaco de server de client - /impunerea fig.org/psr/psr / teach google.github.io/ - styleguide lang.org/ - book a / courses codului / - csharpguidelines html : : style - css / / staw ruby - 2/ - coding / /web - styleguide surs - film.html#week7 - guidelines.pdf ă /

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ de experimentat de experimentat c ă utare Bower , instalare Managementde pachete , Composer github.com/showcases/package , compilare dezvoltare exemplificări: , npm , NuGet , verificare , RubyGems software a dependen - , managers Yarn ț elor

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Suport pentru de la codul Ant , Grunt „construirea” unei aplicații aplicații pornind unei Web „construirea” - sursă + componentele adiționale + componenteleadiționale sursă ( , Gulp eventual, realizate automat realizate eventual, fluxuri deactivități , make dezvoltare exemplificări: exemplificări: , Mimoza , Rake ( , workflow tup , Yeoman build - tool uri) )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ u nit HttpUnit ăț pentru amănunte, amănunte, pentru i Test::Class de JSUnit testare Teste , JUnit , FireUnit referitoarela codul automat (Perl), (Java), la nivel testare de unittest , PHPUnit Mocha ă parcurs + – de client cadrul , (Python), Selenium , xunitpatterns.com xUnit.net general - sursă Unit.js etc. dat (C#, F#), (C#, de xUnit

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ utilizabilitate privind estetica Teste probleme con specifice interfe ț la inutul nivel – inclusiv ț ei î – de n Web structur testare contextul hipertext accesibilitate – dificil ă , validareCSS,... HTML, aplica ( e.g. de evaluat , , multi broken links ț iilor - / lingvism testat Web )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ gradul ( num gradul Teste ă de r marede de specifice disponibilitate independen integrare dispozitive ( evolu î n testare contextul ță a ț componentelor permanen ie de + continu dispozitiv caracteristici aplica ă tă ) ș i – ț de multi iilor poten flexibilitate - Web screen ț iale )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ î nc ă rcare Performance Planet Performance Web PerformanceWeb ( High load ), Scalability Alte stressing privind studii de caz reale: tipuri testare performan , – – testare Stats calendar.perfplanet.com highscalability.com de test – continuă wpostats.com ă ț ri a : , avansat scalabilitate

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ referitoare Alte tipuri testare la de test securitate ă ri curs viitor : într - un

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Script Integritatea Suport oferit Suport Programe Aspecte Documente Integritatea Documente - Probleme uri Foi de stiluri Date JSON pe testare viz partea rulate ș ând i HTML de navigator de accesul XML ș i securitate performanța performanța accesul client (JavaScript) via (JavaScript) client – la : CSS validare via – exemplificare nivel – bine la serviciul – CSS sisteme sisteme de la de server - ul formatate sistem – Lint Web Web www.owasp.org aplica validator.w3.org JSONLint , StyleLint – e – baze caniuse.com de fi ț ii / e.g. lor valide JS/ES ș , de date iere xUnit Web H int

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ timp de răspuns, scalabilitate, securitate, suport tehnic,... suport securitate, de scalabilitate, timp răspuns, furnizor solu ț Publicarea ie de g exploatare gratuit server ă zduire versus ă dedicat vs. sitului Web Web comercial ( hosting ă )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ con prezentarea Men ob ț inuturilor ț inerea tenanța , , crearea procesarea î n ( manier administrarea exploatare , preg ă , publicarea sistematic ă tirea , managementul ) con ) ă ș ș i i reutilizarea ț structurat inutului , ă

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ integrarea managementul managementul (CRM (ERP exploatare managementul aplica – La – Client Relationship Management) RelationshipClient cuno planificarea Enterprise Resource Planning Enterprise Resource ț iilor nivel workflow ș tin (EAI organiza ț elor : management rela – Enterprise App Integration Enterprise resurselor - ( urilor ț knowledge management knowledge iilor ț ional cu + business rules business clien : ț avansat ii ) ) ) Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ managementul pe sisteme (CMS baza exploatare principiului – con instrumente de management al con Content Management Systems Content Management ( ț e.g. La inutului , nivel enterprise wiki enterprise : management separation of concerns of separation de c colaborativ tehnic ă tre : personal non ) ț e inutului avansat ) - tehnic

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ profs.info.uaic.ro/~ șabloane de sociale a Web proiectare aplicațiilor profs.info.uaic.ro/~busaco/teach/courses/hci/hci interacțiune Web Web interacțiune performan exploatare profs.info.uaic.ro/~busaco/teach/courses/hci/ Privind busaco ța Web Web la nivelța de /teach/courses/ : management utilizatorul – e.g. , staw utilizabilitate /web browser : - film.html#week7 - film.html#week1 avansat 3

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ analiza colectare e .g. mesajelor , exploatare chestionare automat bazate uzual, folosind folosind uzual, pe de ă metode metode Usage analysis a date e și monitorizare ( datelor - mail : analiza oferite , reacții etc. rețele sociale reacții pe , implicite explicite de cookie interes de utilizator utiliz - user uri ( user testing ă avansat rii analytics ) , )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ construirea m exemple: num ă surarea analiza ă exploatare rul ( servicii e.g. Matomo de „ profilului popularit , fi access.log acces ș ierelor de Usage analysis , ă Plausible.io monitorizare ri, ăț utilizatorilor : de timpul la Apache, la Apache, ii” analiza jurnalizare sitului + , WordPress Statistics durata : / vitez AWStats raportare : utiliz Web usage a ă accesului de de ,…) ă vizitare avansat î rii nc ă mining rcare etc. ,

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ parametrii unui proiect web parametrii unuiproiect obiectiv profilul resurse tehnologii abordare rezultat procese durat cost principal echipei umane ă

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ * frontend www.slideshare.net/busaco/sabin management WebProject Manager sau backend echipa func sau proiectului Developer(s) ț Designer(s) Multimedia Multimedia ionalitate Software full - - buraga stack Web * - dezvoltator ( frontend con ț inut Business Business Domain Expert Expert - web + (date) backend - 2019 ) Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ privind arhitectura unoraplicații Web Câteva exemplificări ?

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ suport partajare agregare pentru aplica on de ț ie - adnot studiu line comunit reprezentativ a con ă ri + via comentarii ăț de Scop i ț inutului termeni – caz imaginea ă : a Web : flickr de con grafic - ca ului obiect ț inut social ( fotografii ( social tagging ) ) Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ ImageMagick prezentare alte detalii alte detalii la PHP studiu Java ( procesare MySQL ( managementul Ajax de con Linux Linux de ( Perl bibliotecă C de bibliotecă highscalability.com/ ( ( interac stocare caz ț (platform – inut ( validarea application logic application : via flickr ț iune î n format nodurilor Smarty ă datelor prelucrare de asincron – rulare flickr tehnologii , InnoDB modul de , ) acces - ă ) architecture stocare ) de de ) la API, la imagini e - ) mail ) )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ arhitectura inițială inițială arhitectura – conform ( conform Cal Henderson , 2007),

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ studiu răspunsuri REST, XML răspunsuri facilitează serviciile Web la facilitează accesul interfețe de programare ( interfețe de programare cereri via XML cereri REST, în cadrul aplicațiilor rulând aplicațiilor în cadrul de www.flickr.com/services/api/ pe platforme pe caz oferite de oferite : flickr Flickr - variate RPC, SOAP,JSON - RPC, SOAP RPC, avansat API - uri )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ blog.gainlo.co/ stocare persistentă scalabilă, optimizarea stocare persistentă scalabilă, optimizarea imaginilor recomandarea resurselor ( resurselorrecomandarea timp de răspuns, arhitectură software scalabilă, scalabilă, software de arhitectură timp răspuns, aspecte vizândproiectarea aspecte generice detalii detalii în articolul relații între instanțe de tip instanțedetip relații între index.php relații între instanțe de tip instanțedetip relații între categorii deresurse:categorii ( make /2016/03/01/ asigurarea performanței: asigurarea performanței: , depicts system Create a PhotoCreate SharingApp - design , comment - interview user user user / user - picture question , + like – picture și e.g. - sistemului create ,…) picture ) de interes ) , follow - (2016) a - photo - sharing : - app

/ Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ servicii disponibile pe dispozitive/platforme multiple pe dispozitive/platforme servicii disponibile ( Scop streaming : oferire deconținut video la cerere recurge și la tehnologii deschise și tehnologii la recurge studiu ) +televiziuneWeb (Web TV) exploatare nori” „în exploatare netflixtechblog.com de caz : netflix

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ redare ( playback difuzare adaptivă ( stocare +(de)codificare ( conținut conținut studiu ) – aspecte de interes: suport pentru dispozitive pentru suport eterogene – de filme, emisiuni emisiuni filme, TV,… caz adaptive : netflix transcoding streaming ) )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ integrare continuă managemen servicii servicii SQL servicii în sisteme stocare de procesare procesare monitorizare ( distribuire gestionare servere content highscalability.com/blog/2015/11/9/a NoSQL distribution „nori” frontend backend de conținut de t decod network stackshare.io/ ) - 360 React ( Flask Boundary Akamai Open Apache Jenkins GitHub Amazon Amazon RDS( Amazon S3 Amazon EC2 (procesare video) DB, MySQL - degree netflix Cassandra , Connect WinJS Python - , view ( , / ( Mesos PostgreSQL netflix implementat Level DynamoDB implementare , LogicMonitor - of (stocare) - ( the ) JavaScript Relational , 3, CDN ( , Java, Node.js ( Hadoop implementare - entire Limelight , FreeBSD Oracle, - netflix în , Java) , Vector,… ) Presto Ruby DB Service - stack.html Atlas , + C) C++) etc. - ) ), Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Scop servicii de livrarerapidă la domiciliu : magazine locale (ofertanți): 40 demagazine locale (ofertanți): mii aplicație Web studiu localități: 5500+Canada) (US localități: a produselor de băcănie produse: 500 de milioane produse: 500 stackshare.io/ comenzi: milioane/an comenzi: de caz multi instacart : instacart - / platformăoferind instacart /

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ tehnologiiinstrumente + principale studiu de caz : instacart – application & data&

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ instrumenteoperațiuni pentru dedezvoltare procese interneafacerile vizând instrumente adiționale, utilitare studiu de caz : instacart – business – utilities – tools DevOps

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ DuckDuck Facebook Coursera Aplica Amazon Google Forbes Web Go ție C++, Dart, Go, Go, Java,C++, Dart, Python ASP.NET, Node.js, PHP 7,Ruby ( PHP (HHVM), Hack, Node.js ( Django Perl, Java Procesare la nivel JavaScript Python ( ) Python , Java, stackshare.io/stacks ( ), Play (Scala) b ackend JavaScript ), Node.js ) de server BigTable MySQL (MariaDB) Cassandra RocksDB PostgreSQL Apache MySQL, Amazon Amazon Amazon MySQL persistentă Stocare ( Cassandra MariaDB , ElastiCache SimpleDB DynamoDB , Presto, MariaDB , Beringei ), ,

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco, / Overflow Pinterest Aplica Linkedin Medium Sound Cloud Stack Web L yft ție Clojure Framework.NET (C#) Django (Python), Node.js, Java, PHP Grails Procesare la nivel , Flask Go ( , Scala, Java , C++ Go stackshare.io/stacks ( ( b ) Python , JavaScript, Scala ackend JRuby Java, ), ) de Go server MySQL MS SQLServer, Redis Apache MySQL, Redis Neo4j, DynamoDB MongoDB RocksDB MySQL persistentă , Stocare Memcached DynamoDB , Oracle, DB, HBase Hadoop , , Hadoop , Redis , , , Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ tehnologiilor de cu instrument cu www www.whatruns.com o aplicație Webo aplicație W inspectarea WhatRuns .wappalyzer. appalyzer folosite com ele

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ dezvoltarea aplicațiilorWeb programare rezumat  Web  inginerie – aspecte esențiale Web

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Client Client Web dezvoltarea de aplicații HTML, PNG, PDF, SVG, , ZIP,... (reprezentare) (GET, POST,...) cerere răspuns episodul viitor: HTTP serverde aplicații aplicații PHP programe Web ServerWeb .php resurse (externe)  în PHP procesor  ( engine Zend )

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