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 Buragaprofs.info.uaic.ro/~busaco/ „S implitate Constantin BrâncușiConstantin a este o complexitate rezolvată .”
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ sisteme î n evolu Aplica software ț ie permanent ț ii Web complexe ă ,
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ mobil mijloace laptop PC tablet multiple demultiple interac Realitate ă ț iune ( smart Web Web ) TV cu utilizatorul ecran urban
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ neadaptare development la cerin vs. ț ele Realitate marketing economice vs. (de tip management business )
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ dezvoltarea produselor evoluția manierei de digitale (software) Alan Cooper et al. , 2014
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ verificabilitate Asigurarea alte – aspecte inclusiv calit reparabilitate integritate economie ăț ii de monitorizare aplica interes ț iilor : ( Web logging )
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ Robert Baxley
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ S tabilirea users standardelor c context erințe con tent de - calitate
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ that that that’s seenby that’s those with the money money with the those business customers customers business Web application 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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ privind Exist dezvoltarea ă anumite de „ aplica re ț ete ț ” ii Web?ii
Dr. Sabin Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ prezentare stocare integrare Specificarea procesare procesare a datelor a a poate la poate avea loc datelor componentelor ș i – / – sau database 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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 ( d ate) )
Dr. Sabin Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ C. Henderson, Scalable Web Architectures , Web 2.0Expo, 2007 application persistence interface : iamcal.com/talks/
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ ( prezentare View + interac arhitecturi web arhitecturi ț iune ) Controller ( procesare ) : mvc ( structura Model datelor )
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ ASP.NET ASP.NET MVC Django P TurboGears (PHP), oate î ncurajat (Python), fi Lift implementat (Scala), (C# (Python), / arhitecturi web arhitecturi impus et al. Drogon exemplificări exemplificări diverse: Rails ), Yesod Catalyst Catalyst de ș (C++), (Ruby), i framework î ntr (Haskell), FuelPHP - (Perl), un Rocket limbaj ColdBox - Wicket , uri : (Rust), Grails mvc neorientat Web Web (Java), (Groovy), ( Sails ColdFusion specifice (Node.js), Wt - obiect Laravel (C++) , Java ), Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 javascripts „ scheletul create rubyonrails.org ” î n unei Ruby on Rails avansat aplica ț ii Web
Dr. Sabin Buragaprofs.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 css Datasource altele î n structura folosind cazul Laravel : CodeIgniter cakephp.org unei CakePHP , framework Symfony de aplica avansat directoare , FuelPHP ț , ii Web Yii - ul
, Dr. Sabin Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ pentru structura o www.asp.net/mvc aplica proiectului ț ie ASP.NETMVC avansat software
Dr. Sabin Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ (în loc (în loc de) pauză
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Prin cemijloacepoate fiimplementată o aplicațieWeb ?
Dr. Sabin Buragaprofs.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 Buragaprofs.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
Dr. Sabin Buragaprofs.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
Dr. Sabin Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ Diverse JavaScript Python Java : Play framework : Perl CherryPy ( aplica N ASP.NET , Ruby Spring ode.js : Catalyst implementare ț : ii Web la Padrino - ): uri , , Sling : Flask Express ASP.NET , care Dancer , , Struts , nivel Pylons Project Pylons Rails faciliteaz , Koa , Core Mojolicious de server: , , Sinatra Tapestry , LoopBack MVC ă dezvoltarea , avansat , web2py Wicket , Meteor de
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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.php 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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ referitoare Alte tipuri testare la de test securitate ă ri curs viitor : într - un
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ parametrii unui proiect web parametrii unuiproiect obiectiv profilul resurse tehnologii abordare rezultat procese durat cost principal echipei umane ă
Dr. Sabin Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ privind arhitectura unoraplicații Web Câteva exemplificări ?
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ arhitectura inițială inițială arhitectura – conform ( conform Cal Henderson , 2007),
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 , Nginx + C) C++) etc. - ) ), Dr. Sabin Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ tehnologiiinstrumente + principale studiu de caz : instacart – application & data&
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Tornado 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 Buragaprofs.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 Redis Apache MySQL, Redis Neo4j, DynamoDB MongoDB RocksDB MySQL persistentă , Stocare Memcached DynamoDB , Oracle, DB, HBase Hadoop , , Hadoop , Redis , , , Dr. Sabin Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ dezvoltarea aplicațiilorWeb programare rezumat Web inginerie – aspecte esențiale Web
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Client Client Web dezvoltarea de aplicații HTML, PNG, PDF, SVG, Atom, 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 Buragaprofs.info.uaic.ro/~busaco/