SlideShare a Scribd company logo
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Web Technologies
Web programmingWeb engineering
Web application development
architecture, MVC, application servers
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
“Simplicity is complexity resolved.”
Constantin Brâncuși
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Web applications
complex software systems,
permanently in evolution
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Reality
multiple ways of Web interaction with the users
mobile laptop PC tablet (smart) TV urban screen
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Reality
an increased volume of users,
having greater expectations from actual software
from (hyper-)text content
to social Web applications + natural interaction
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Reality
support for application development
(languages, APIs, SDKs, libraries, frameworks,...)
provided by the hardware/software platform
on backend(s) – server(s) – and/or frontend(s) – client(s)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Reality
lack of adjustment
regarding the economic (business) requirements
development vs. marketing vs. management
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Reality
with respect to large Web projects
takeoff delays
unfitted budget
lack of functionality
poor application quality
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
adapted from Crumlish & Malone, 2009
goals
psychology
behavior
    
interaction
affordances
language
features
technology
algorithms
indexing
structure
meta-data
tools
process
incentives
users interface software content creators
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Web application quality assurance
correctness and reliability
extending + reusing (modularity)
compatibility
efficiency (performance)
portability
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Web application quality assurance
usability
functionality
timeliness
maintainability
security
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Web application quality assurance
other aspects of interest:
integrity
reparability
verifiability – including monitoring (logging)
economy
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Web application quality assurance
in essence, we must consider:
request retrieval and routing – dispatch
providing basic functionalities – core services
associating software constructs/abstractions
(e.g., objects) to the data models – mapping
data management – data
system monitoring & auditing – metrics
details in Matt Ranney, “What I Wish I Had Known
Before Scaling Uber to 1000 Services”, GOTO Chicago 2016
http://highscalability.com/blog/2016/10/12/lessons-learned-from-scaling-uber-to-2000-engineers-1000-ser.html
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Necessities
a proper specification of aims + requirements
Web application systematic (iterative) development
correct planning of development stages
full monitoring of the entire development process
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Necessities
a proper specification of aims + requirements
Web application systematic (iterative) development
correct planning of development stages
full monitoring of the entire development process
Web engineering
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
In which way can we develop
a Web application?
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
modeling
Usually, a methodology is adopted
MDA (Model-Driven Architecture)
www.omg.org/mda/
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
advanced
Robert Baxley
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Methodologies
Jesse Garrett, The Elements of User Experience (2nd Edition), New Riders, 2011
Web application
(software product)
functionality
+
information (content)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web application development
Requirements
Software design
Build (implementation)
Testing
Deployment
Maintenance
Evolution
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web application development
(server + client) programming
content
creation/adaptation
maintenance
testing
research
(docum.)
info architecture
+ navigation
require
ments
public beta launch
http://sixrevisions.com/web-development/agile/
currently, the agile methodologies are preferred
http://www.infoq.com/process-practices/
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web application development
Modern methodologies – examples:
The Twelve-Factor App – considers building of SaaS
(Software As A Service) applications
http://12factor.net/
aim42 – practices & patterns regarding software system
evolution, maintenance, migration and improvement
http://aim42.github.io/
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
start with needs
do less
design with data
do the hard work to make it simple
iterate. then iterate again
build for inclusion
understand context
build digital services, not Websites
be consistent, not uniform
make things open; it makes things better
web application development: principles
an example for gov.uk – Paul Downey & David Heath (2013)
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Quality standards
requirements
context
con-
tentusers
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Data (content) and/or source-code
making / bidding / negotiating
copyright
versus
open software (Open Source Licenses)
www.opensource.org/licenses/category
+
open data
Creative Commons – www.creativecommons.org/licenses/
requirements
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Exploring the Web application domain
attracting experts
– subject matter expert (SME) or domain expert –
in the domain of the problem
to be solved by the Web application
requirements
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
requirements
Specific aspects concerning Web applications
a real (tangible) structure is missing
multi-disciplinary processes
actual target-audience is unknown
requirement & constraint volatility
unpredictable environment
impact of legacy systems
different qualitative issues
visitor inexperience
release time
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
requirements: examples
Vision (big idea)
Basecamp: “solves the critical problems
that every growing business deals with”
Vimeo: “watch, upload and share HD and 4k videos
with no ads”
Wikidata: “a free and open knowledge base
that can be read and edited by both humans and machines”
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
requirements: examples
Starting points in the Flickr development
initial assumptions:
people like to share memories
using the success of blogging
sharing of (personal) photos, not just notes
providing support for commenting + tagging
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
new types of requirements
Regarding the content
audience – e.g., internationalization (i14n)
navigation context
user preferences
permanent availability (7 days, 24 hours/day)
using heterogeneous data sources
support for searching, filtering, recommending
etc.
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
new types of requirements
User interaction in the Web context
as well as the social Web
content mash-up
“it’s yours to take, re-arrange and re-use”
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
new types of requirements
Regarding the execution (runtime) environment
Web browser (in)dependence
wired vs. wireless
on-line vs. off-line
support for various HTML5 standards
multi-device interactivity (responsive Web design)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
new types of requirements
Concerning the evolution
end users are able to deploy the Web application
without (re)installing it on a computer/device
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
new types of requirements: aspects
in the beginning:
providing essential capabilities – less is more
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
new types of requirements: aspects
in the beginning:
providing essential capabilities – less is more
next versions:
extending the Web application – usually, via a public API
(Application Programming Interface),
encouraging the development of user-provided solutions
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
architectures
Web application quality is influenced by
its base architecture
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
architectures
The development of a software architecture considers:
functional requirements
dictated by customers,
visitors,
competition,
decision factors (management),
social/technological growth,
…
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
architectures
The development of a software architecture considers:
qualitative factors
usability
performance
security
data/code reusing
etc.
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
architectures
The development of a software architecture considers:
techn(olog)ical aspects
hardware/software platform – i.e. operating system
middleware infrastructure
available services – e.g., via public APIs
programming language(s)
legacy systems
…
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
architectures
The development of a software architecture considers:
experience
adopting existing architectures and platforms
design patterns
using specific solutions: libraries, frameworks, tools,…
project management
etc.
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web architectures: typical ingredients
client(s)
firewall
proxy
middleware
Web server(s)
Web application server(s)
frameworks, libraries, other components
persistent storage server(s) – e.g., databases
multimedia content server(s)
content management server(s) – for example, CMS
legacy applications/systems
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
There are certain “recipes” regarding
the Web application development?
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
design
Pattern
rule denoting a relation
between a context, a problem and a solution
context
problem solution
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
design
Pattern
rule denoting a relation
between a context, a problem and a solution
regarding an expert point of view
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
design
A pattern specification and/or “identification”
could be found on various tiers:
data presentation – UI, user interaction, visualization,…
processing – business logic, scripting, etc.
component integration – code library development
data storage – database queries, database design,…
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
design
Examples of pattern collections
(design pattern repositories)
concerning software design
http://wiki.c2.com/?DesignPatterns
patterns of enterprise application architecture
https://martinfowler.com/eaaCatalog/
user interaction
https://profs.info.uaic.ro/~evalica/patterns/
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
design
Web Patterns
Model View Controller
Page Controller
Front Controller
Template View
Transform View
Application Controller
M. Fowler, Patterns of Enterprise Application Architecture, Addison-Wesley (2003)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
design
Session State Patterns
Client Session State
Server Session State
Database Session State
M. Fowler, Patterns of Enterprise Application Architecture, Addison-Wesley (2003)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
design
Data Source Architectural Patterns
Table Data Gateway
Row Data Gateway
Active Record
Data Mapper
M. Fowler, Patterns of Enterprise Application Architecture, Addison-Wesley (2003)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Web application = interface + program + content (data)
3-tier application
Client Application Server Storage
(interface) (application) (persistence)
Internet
(Web)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Sponge / Database
Jelly / Business Logic
Custard / Page Logic
Cream / Markup
Fruit / Presentation
C. Henderson, “Scalable Web Architectures”,
Web 2.0 Expo, 2007: iamcal.com/talks/
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Sponge / Database
Jelly / Business Logic
Custard / Page Logic
Cream / Markup
Fruit / Presentation
C. Henderson, “Scalable Web Architectures”,
Web 2.0 Expo, 2007: iamcal.com/talks/
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
(instead of) break
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web architectures
Data structure model is detached by
the processing model
(business logic, application control)
and data presentation model (Web interface)
principle: separation of concerns
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web architectures: mvc
Most Web applications are developed by adopting
MVC (Model-View-Controller)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web architectures: mvc
View
(presentation + interaction)
Model
(data structure)
Controller
(processing)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web architectures: mvc
View
on client(s) side – e.g., Web
Model
persistent storage
Controller
(server and/or client) application
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web architectures: mvc
View
on client(s) side – e.g., Web
Model
persistent storage
Controller
(server and/or client) application

HTML, CSS, SVG,
MathML, WebGL, WebVR, etc.

(No)SQL, JSON,
XML (XQuery), RDF (SPARQL),…

application servers, frameworks
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web architectures: mvc
Could be implemented in a non-object-oriented language
encouraged/imposed by specific Web frameworks
various examples:
ASP.NET MVC (C# et al.), Catalyst (Perl), ColdBox (ColdFusion),
Django (Python), FuelPHP, Grails (Groovy), Laravel (PHP),
Lift (Scala), Rails (Ruby), Sails (Node.js), TurboGears (Python),
Yesod (Haskell), Wicket (Java), Wt (C++), Zikula (PHP), ZK (Java)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web architectures: mvc
Controller
retrieves requests from a client
(GET/POST requests representing various user actions)
manages the resources required for request fulfilment
usually, will call a model according to the required action
and, after that, will select the corresponding view
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web architectures: mvc
Model
software-managed resources
– users, messages, products, etc. – have specific models
signifies data + rules (i.e. constraints) concerning data
concepts managed by the Web application
offers to controller a representation of desired data
and is responsible with the validation of stored data
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web architectures: mvc
View
provides various ways of presenting the data
offered by the model via controller
multiple views can exist,
a specific one being chosen by the controller
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web architectures: mvc
typical steps:
(1) request sent by client – e.g., Web browser,
(2) routing request to the controller,
(3) choosing a model, (4) providing the desired data,
(5) selecting a view, (6) content directed to the client
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web architectures: mvc
The Web application generic architecture
will consist of a set of resources regarding
the controller, model, and view
commonly, the adopted Web framework will enforce a
specific file structure of the application to be implemented
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
├───app
│ ├───assets
│ │ ├───images
│ │ ├───javascripts
│ │ └───stylesheets
│ ├───controllers
│ ├───helpers
│ ├───mailers
│ ├───models
│ └───views
│ └───layouts
├───config
├───db
├───doc
├───lib
├───log
├───public
├───script
├───test
│ ├───fixtures
│ ├───functional
│ ├───integration
│ ├───performance
│ └───unit
├───tmp
├───vendor
└───plugins
a Web application “skeleton”
created with Ruby on Rails
http://rubyonrails.org/
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
├───app
│ ├───Config
│ ├───Console
│ ├───Controller
│ ├───Lib
│ ├───Locale
│ ├───Model
│ │ ├───Behavior
│ │ └───Datasource
│ ├───Plugin
│ ├───Test
│ ├───tmp
│ ├───Vendor
│ ├───View
│ │ ├───Elements
│ │ ├───Errors
│ │ ├───Helper
│ │ ├───Layouts
│ │ ├───Pages
│ │ └───Scaffolds
│ └───webroot
│ ├───css
│ ├───files
│ ├───img
│ └───js
├───lib
├───plugins
└───vendors
the directory structure of
a Web application built
with CakePHP framework
http://cakephp.org/
others: CodeIgniter, FuelPHP, Laravel,
Symfony, Yii, Zend Framework
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
├───app
│ ├───assets
│ │ ├───javascripts
│ │ └───stylesheets
│ │ ├───apps
│ │ ├───libs
│ │ └───main
│ ├───controllers
│ ├───models
│ └───views
├───conf
├───project
└───public
├───images
│ └───icons
└───javascripts
the directory structure generated for a Web application
using the Play framework for Java and Scala
http://www.playframework.org/
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
the software project structure
for an ASP.NET MVC application
http://www.asp.net/mvc
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
web architectures: mvc
Derived variants:
HMVC (Hierarchical Model-View-Controller)
MVVM (Model View ViewModel)
MVP (Model View Presenter)
Passive View
Supervising Controller
PAC (Presentation Abstraction Control)
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html#week10
advanced
workflows in a MV* frontend application
pragmatic usage via JavaScript libraries or frameworks:
http://todomvc.com/
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
By which means
a Web application could be implemented?
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
implementation
Web application server
goal:
optimizing the development processes
of complex Web applications
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
implementation
Web application server
simplifies the program (script) invocation
generating the content on the Web server
details in
next lecture
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
implementation
Web application server
could encourage or impose an architectural
approach for Web application development
typical scenario:
MVC or variants
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Web application architecture:
classic MV* approach
www.leaseweblabs.com/2013/10/api-first-architecture-fat-vs-thin-server-debate/
brow-
ser
presen-
tation
pro-
cessing
data
access
<Web/> pages
HTML, CSS,…
fat serverdumb client
frontend backend
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Web application architecture:
classic MV* approach
www.leaseweblabs.com/2013/10/api-first-architecture-fat-vs-thin-server-debate/
brow-
ser
presen-
tation
pro-
cessing
data
access
<Web/> pages
HTML, CSS,…
fat serverdumb client
frontend backend
commonly, a monolithic application
(e.g., a WAR: 2.2 M code lines, 418 .jar files,
initialization in 12 min. – see plainoldobjects.com)
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
implementation
Framework
facilitates complex Web application development,
by simplifying usual operations
(e.g., access to databases, caching, code generation,
session management, access control) and/or
boosting the code-source reuse
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
implementation
Various frameworks facilitating Web application
development on the backend:
ASP.NET: ASP.NET Core MVC, Vici MVC
Java: Play, Spring, Struts, Tapestry, WebObjects, Wicket
JavaScript (Node.js): Express, Geddy, Locomotive, Tower
Perl: Catalyst, CGI::Application, Jifty, WebGUI
PHP: CakePHP, CodeIgniter, Symfony, Yii, Zend Framework
Python: Django, Grok, web2py, Zope
Ruby: Camping, Nitro, Rails, Sinatra
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
implementation
Web library
a collection of reusable computational resources
– i.e., data structure + code –
providing specific functionalities (behaviors)
implemented in a given programming language
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
implementation
Web library
a collection of reusable computational resources
– i.e., data structure + code –
providing specific functionalities (behaviors)
implemented in a given programming language
could be referred by other source-code (software):
application server, framework, library,
service, API, or Web component
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
implementation
Web service
software – remotely used by other applications/services –
providing a specific functionality
its implementation must not be known
by the programmer that invoke the service
details in
future lectures
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
implementation
API (Application Programming Interface)
“any well-defined interface that defines
the service that one component, module, or application
provides to other software elements”
(de Souza et al., 2004)
advanced
details in
future lectures
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
implementation
SDK (Software Development Kit)
encapsulates the API functionalities into a library
(implemented in a programming language,
for a specific software/hardware platform)
API façade pattern
example: Octokit (for .NET, Objective-C, Ruby)
provided by Github – https://developer.github.com/libraries/
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
implementation
Web component
part of a Web application
that includes a set of related features
e.g., calendar, news feed reader, URL sharing button
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
implementation
Web component
developed by using a library/framework
solutions – usually, for client-side (Web browser):
Dojo Toolkit, jQuery UI, React, Vue,…
general specification: Web Components (W3C draft)
explore www.webcomponents.org
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
implementation
Widget
application – stand-alone or included into a container
(e.g., a HTML document) – offering a specific functionality
runs on a client (a platform provided by
an operating system and/or a Web browser)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
implementation
(Web) app
an installable (Web) application
that uses the APIs provided by a platform:
browser, application server, operating system,…
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
implementation
(Web) app
a distributed computer software application designed for
optimal use on specific screen sizes and
with particular interface technologies
Robert Shilston, 2013
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
implementation
(Web) app
commonly, it can be obtained via
a (centralized or distributed) app store
notable examples:
Chrome Apps
Windows applications written in JavaScript
mobile Web applications for Firefox, Kindle Fire,...
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Web browser
app store
single
page
app
platform
(OS + device)
native
app
HTTP
WebSockets
adapted from Adrian Colyer (2012)
Web
appli-
cations
and
services
(APIs)
☁☁
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Add-on
a generic name for browser-associated applications
(extensions, visual themes, dictionaries,
Web search engine interfaces, plug-ins, etc.)
for example, visit addons.mozilla.org
implementation
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
development
Using development environments
examples – native applications (for desktop):
Anjuta, Aptana Studio, Eclipse, Emacs, IntelliJ IDEA,
KomodoIDE, Padre, PHPStorm, PyCharm, RubyMine,
Visual Studio, Zend Studio
cloud computing-based solutions:
Cloud9 IDE, Codenvy, Koding, etc.
S. Buraga, Code in “clouds”: www.slideshare.net/busaco/cu-codul-n-nori
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
integrated devel.
environment
development
runtime
runtime environment
code repositories
A.Iqbal,M.Haunsenblas,S.Decker(2012)
Development as a Service
☁
☁☁
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
integrated devel.
environment
development
runtime
runtime environment
code repositories
☁
☁☁
advanced
Web: Cloud9, Koding, Ideone, etc.
desktop: Eclipse, Visual Studio,…
BitBucket,
GitHub
DigitalOcean, Google Cloud Platform, Heroku,
Jelastic, OpenStack, Windows Azure,…
useful tools at https://github.com/ripienaar/free-for-dev
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
development
Documentation automatic generation,
in various formats
specific instruments: documentation generators
examples:
Doc, Document! X, Doxygen,
JavaDoc, JSDoc, phpDocumentor
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
development
VCS – Version Control Systems
code review, revision control, versioning
monitoring the source-code changes
made by a programmers’ team
on the same group of programs (codebase)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Client/server tools:
Apache Subversion – SVN
Microsoft Team Foundation Server – TFS
Distributed solutions:
Git (implemented in bash, C, and Perl)
http://git-scm.com/
Mercurial (developed in Python)
http://mercurial.selenic.com/
Rational Team Concert (offered by IBM)
jazz.net/products/rational-team-concert/
Web systems to host software
(SCM – source code management):
BitBucket – https://bitbucket.org/
GitHub – https://github.com/
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
development
Encouraging/enforcing
coding conventions and styles
examples:
C# – https://github.com/dennisdoomen/csharpguidelines
Java – http://checkstyle.sourceforge.net/
JavaScript – https://github.com/rwaldron/idiomatic.js/
Perl – http://perldoc.perl.org/perlstyle.html
PHP – http://pear.php.net/manual/en/standards.php
Python – https://www.python.org/dev/peps/
Ruby – https://github.com/styleguide/ruby
Scala – http://docs.scala-lang.org/style/
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
development
Software package management
searching, installing, compiling, dependence checking
examples:
Bower, Composer, npm, NuGet, RubyGems, Yarn
also, study https://github.com/showcases/package-managers
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
development
Support for workflows
optionally, automatically performed
producing a Web application from source-code +
additional components (build tool)
examples:
Ant, Grunt, Gulp, make, Mimoza, Rake, tup, Yeoman
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
testing
Tests concerning the source-code
automatic test units – general framework: xUnit
HttpUnit, JUnit (Java), PHPUnit, xUnit.net (C#, F#),
Test::Class (Perl), unittest (Python), Unit.js
+
JSUnit, FireUnit, Mocha, Selenium
for frontend
study http://xunitpatterns.com/
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
testing
Web application specific tests
regarding content – structure, HTML + CSS validation,...
hypertext issues (e.g., broken links)
usability – including accessibility, multi-lingual data
Web interface esthetics – difficulties in evaluation
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
testing
Web application specific tests
component integration
permanent availability and flexibility
(continuous evolution)
device independence – multi-screen
(a large number of possible devices + characteristics)
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
testing
Other kinds of testing:
concerning performance
load, stressing, continuous testing, scalability
real-life case studies:
http://perf.fail/
http://highscalability.com/
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
testing
Other kinds of testing:
regarding security
upcoming
lectures
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
testing: example
HTML documents – validator.w3.org service
CSS stylesheets – CSS Lint: http://csslint.net/
XML documents – well-formed / valid
Client-side scripting (JavaScript) via JSLint, JSHint
Server-side (backend) programs – xUnit
File system integrity and access policies
Database integrity and access policies
Web navigator support – http://caniuse.com/
Security problems – www.owasp.org
Web application scalability tuning
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
deployment
Site publishing
dedicated server
vs.
Web hosting provider
free vs. commercial solution
response time, scalability, security, technical support,...
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
deployment
Content maintenance (administration)
obtaining, creating, preparing, managing, presenting,
processing, publishing, and reusing the content
in a systematic and structured manner
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
deployment: management
Organization aspects:
knowledge management
CRM – Client Relationship Management
ERP – Enterprise Resource Planning
workflow + business rule management
EAI – Enterprise Application Integration
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
deployment: management
Technical aspects:
managing the content by non-technical personnel
on the basis of separation of concerns principle
CMS – Content Management Systems
collaborative tools (e.g., an enterprise wiki)
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
deployment: management
User aspects:
Web interaction – e.g., usability
http://profs.info.uaic.ro/~busaco/teach/courses/hci/
social Web application design patterns
https://profs.info.uaic.ro/~busaco/teach/courses/hci/hci-film.html#week7
frontend performance
http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html#week12
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
deployment: usage analysis
Explicit methods
based on data provided by users
e.g., surveys and monitoring (user testing),
e-mail message analysis, reactions on social networks,…
Implicit methods
automatic data collecting (user analytics)
usually, via cookies
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
deployment: usage analysis
User profile generation: Web usage mining
log file analysis
(e.g., access.log – Apache, AWStats,…)
Website “popularity” measurement:
load speed, number of accesses, visit time + duration, etc.
monitoring/reporting services
examples: Google Analytics, WordPress Statistics
avansat
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
parameters of a web project
main objective
duration
cost
methodology
technology
processes
outcome
human resources
team profile
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Web project team
management
Web Project
Manager
functionality
Software
Engineer(s)*
Multimedia
Designer(s)
content (data)
Domain
Expert
Business
Expert
*frontend or backend or full-stack (frontend & backend)
https://www.slideshare.net/busaco/dezvoltator-web-n-2016
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Several examples regarding
Web application architecture?
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
case study: Flickr
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
case study: flickr
Aim:
online sharing of graphical content (photos)
representative social Web application
community aggregation – image as social object
support for annotations via tagging
+ comments
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
case study: flickr – technologies
PHP (processing – application logic, access to API,
content presentation via Smarty, e-mail module)
Perl (data validation)
Java (storage node management)
MySQL (data stored in InnoDB format)
ImageMagick (C library for image processing)
Ajax (asynchronous interaction)
Linux (runtime platform)
other details at http://highscalability.com/flickr-architecture
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
initial architecture – conform to Cal Henderson, 2007
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
studiu de caz: flickrapplication programming interfaces
(APIs) provided by Flickr
facilitate the access to Web services
for applications running on
various platforms
requests: REST, XML-RPC, SOAP
responses: REST, XML-RPC, SOAP, JSON
www.flickr.com/services/api/
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
generic aspects concerning the system design:
resource categories: user + picture
relations between user instances (e.g., follow)
relations between user and picture instances
(make, depicts, comment, like,…)
performance features:
response time, scalable software architecture,
scalable persistent storage, image optimization
recommending resources (user/picture) of interest
details in Create a Photo Sharing App (2016)
http://blog.gainlo.co/index.php/2016/03/01/system-design-interview-
question-create-a-photo-sharing-app/
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
case study: Lanyrd
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
case study: lanyrd
Aim: event discovering and management
(e.g., technological conferences)
community aggregation – event as a social object
support for speakers and audience, slides,…
+ calendars and places
important concepts: conferences, user profiles,
e-mails, dashboard, coverage, topics, guides
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Almost completely made in Python (using Django)
and maintained by 6 persons
2½ backend developers
1¾ frontend developers
½ mobile developers
1½ designers
¾ system administrators
¾ business operations
A. Godwin, Inside Lanyrd’s Architecture, QCon London, 2013
http://www.infoq.com/presentations/lanyrd-architecture
case study: lanyrd
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
arhitecturi: exemplu – lanyrd
advanced
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
case study: Netflix
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Aim: providing video content on demand
(streaming) + Web TV
services available on multiple devices/platforms
cloud-based deployment
adopting, among others, various open technologies
case study: netflix
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
backend processing Java, Python, Node.js (JavaScript)
frontend processing React (JavaScript)
storage systems
MySQL, Apache Cassandra, Apache
Hadoop, Apache Hive, Oracle DB
cloud services
Amazon EC2 (video processing)
Amazon S3 (storage)
SQL services Amazon RDS
NoSQL services Amazon DynamoDB
code management GitHub (implemented in Ruby)
continuous integration Jenkins (Java implementation)
server management Apache Mesos (written in C++)
content distribution networks
Open Connect CDN (FreeBSD, Nginx),
Akamai, Level 3, Limelight
monitoring Apache Chukwa (written in Java)
highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
“conclusion”
Web programmingWeb engineering
Web application development – essential aspects
Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
next episode:
Web application development in PHP
Web
Client
HTTP request
(GET, POST,...)
response
(representation)
HTML, PNG, PDF,
SVG, Atom, ZIP,...
Zend
processor
(engine)
PHP
application
server
.php
programs

(external) resources
Web Server

More Related Content

What's hot

Web Technologies (2/12): Web Programming – HTTP. Cookies. Web Sessions
Web Technologies (2/12): Web Programming – HTTP. Cookies. Web SessionsWeb Technologies (2/12): Web Programming – HTTP. Cookies. Web Sessions
Web Technologies (2/12): Web Programming – HTTP. Cookies. Web Sessions
Sabin Buraga
 
Web Technologies (9/12): Web Services. From Service-Oriented Architectures to...
Web Technologies (9/12): Web Services. From Service-Oriented Architectures to...Web Technologies (9/12): Web Services. From Service-Oriented Architectures to...
Web Technologies (9/12): Web Services. From Service-Oriented Architectures to...
Sabin Buraga
 
Web Technologies (5/12): Data Modeling. XML Family and XML Namespaces
Web Technologies (5/12): Data Modeling. XML Family and XML NamespacesWeb Technologies (5/12): Data Modeling. XML Family and XML Namespaces
Web Technologies (5/12): Data Modeling. XML Family and XML Namespaces
Sabin Buraga
 
Why 5-Star Data?
Why 5-Star Data?Why 5-Star Data?
Why 5-Star Data?
Sabin Buraga
 
Towards 5-star Data in the E-university
Towards 5-star Data in the E-universityTowards 5-star Data in the E-university
Towards 5-star Data in the E-university
Sabin Buraga
 
Are You Afraid of Semantic Web?
Are You Afraid of Semantic Web?Are You Afraid of Semantic Web?
Are You Afraid of Semantic Web?
Sabin Buraga
 
"Are You Afraid of the Semantic Web" by Sabin Corneliu Buraga @ eLiberatica 2007
"Are You Afraid of the Semantic Web" by Sabin Corneliu Buraga @ eLiberatica 2007"Are You Afraid of the Semantic Web" by Sabin Corneliu Buraga @ eLiberatica 2007
"Are You Afraid of the Semantic Web" by Sabin Corneliu Buraga @ eLiberatica 2007
eLiberatica
 
Web of Data as a Solution for Interoperability. Case Studies
Web of Data as a Solution for Interoperability. Case StudiesWeb of Data as a Solution for Interoperability. Case Studies
Web of Data as a Solution for Interoperability. Case Studies
Sabin Buraga
 

What's hot (8)

Web Technologies (2/12): Web Programming – HTTP. Cookies. Web Sessions
Web Technologies (2/12): Web Programming – HTTP. Cookies. Web SessionsWeb Technologies (2/12): Web Programming – HTTP. Cookies. Web Sessions
Web Technologies (2/12): Web Programming – HTTP. Cookies. Web Sessions
 
Web Technologies (9/12): Web Services. From Service-Oriented Architectures to...
Web Technologies (9/12): Web Services. From Service-Oriented Architectures to...Web Technologies (9/12): Web Services. From Service-Oriented Architectures to...
Web Technologies (9/12): Web Services. From Service-Oriented Architectures to...
 
Web Technologies (5/12): Data Modeling. XML Family and XML Namespaces
Web Technologies (5/12): Data Modeling. XML Family and XML NamespacesWeb Technologies (5/12): Data Modeling. XML Family and XML Namespaces
Web Technologies (5/12): Data Modeling. XML Family and XML Namespaces
 
Why 5-Star Data?
Why 5-Star Data?Why 5-Star Data?
Why 5-Star Data?
 
Towards 5-star Data in the E-university
Towards 5-star Data in the E-universityTowards 5-star Data in the E-university
Towards 5-star Data in the E-university
 
Are You Afraid of Semantic Web?
Are You Afraid of Semantic Web?Are You Afraid of Semantic Web?
Are You Afraid of Semantic Web?
 
"Are You Afraid of the Semantic Web" by Sabin Corneliu Buraga @ eLiberatica 2007
"Are You Afraid of the Semantic Web" by Sabin Corneliu Buraga @ eLiberatica 2007"Are You Afraid of the Semantic Web" by Sabin Corneliu Buraga @ eLiberatica 2007
"Are You Afraid of the Semantic Web" by Sabin Corneliu Buraga @ eLiberatica 2007
 
Web of Data as a Solution for Interoperability. Case Studies
Web of Data as a Solution for Interoperability. Case StudiesWeb of Data as a Solution for Interoperability. Case Studies
Web of Data as a Solution for Interoperability. Case Studies
 

Similar to Web Technologies (3/12): Web Programming – Web Application Architecture. Web Engineering

HCI 2015 (7/10) HCI Engineering. UI Evaluation. Models
HCI 2015 (7/10) HCI Engineering. UI Evaluation. ModelsHCI 2015 (7/10) HCI Engineering. UI Evaluation. Models
HCI 2015 (7/10) HCI Engineering. UI Evaluation. Models
Sabin Buraga
 
Web05 dezvoltareaaplicatiilorweb php
Web05 dezvoltareaaplicatiilorweb phpWeb05 dezvoltareaaplicatiilorweb php
Web05 dezvoltareaaplicatiilorweb php
n0n0semeni
 
G0373049057
G0373049057G0373049057
G0373049057
theijes
 
HCI 2018 (3/10) Design Models, Methodologies and Guidelines
HCI 2018 (3/10) Design Models, Methodologies and GuidelinesHCI 2018 (3/10) Design Models, Methodologies and Guidelines
HCI 2018 (3/10) Design Models, Methodologies and Guidelines
Sabin Buraga
 
HCI 2014 (7 of 10): HCI Engineering. UI Evaluation. Models
HCI 2014 (7 of 10): HCI Engineering. UI Evaluation. ModelsHCI 2014 (7 of 10): HCI Engineering. UI Evaluation. Models
HCI 2014 (7 of 10): HCI Engineering. UI Evaluation. Models
Sabin Buraga
 
Report file on Web technology(html5 and css3)
Report file on Web technology(html5 and css3)Report file on Web technology(html5 and css3)
Report file on Web technology(html5 and css3)PCG Solution
 
webinos whitepaper
webinos whitepaperwebinos whitepaper
webinos whitepaper
webinos project
 
Progressive Web Apps (PWAs) - Transforming the Future of Full-Stack Developme...
Progressive Web Apps (PWAs) - Transforming the Future of Full-Stack Developme...Progressive Web Apps (PWAs) - Transforming the Future of Full-Stack Developme...
Progressive Web Apps (PWAs) - Transforming the Future of Full-Stack Developme...
mohitreal1995
 
An End User Development approach for Mobile Web Augmentation applications
An End User Development approach for Mobile Web Augmentation applicationsAn End User Development approach for Mobile Web Augmentation applications
An End User Development approach for Mobile Web Augmentation applications
Gabriela Bosetti
 
ICWE 2010 Demonstration and Poster elevator pitch session
ICWE 2010 Demonstration and Poster elevator pitch sessionICWE 2010 Demonstration and Poster elevator pitch session
ICWE 2010 Demonstration and Poster elevator pitch session
Marco Brambilla
 
Building Mobile Friendly Websites
Building Mobile Friendly WebsitesBuilding Mobile Friendly Websites
Building Mobile Friendly Websites
Cittrex
 
Mobile Web Overview https://www.edocr.com/v/k52p5vj4/
Mobile Web Overview https://www.edocr.com/v/k52p5vj4/Mobile Web Overview https://www.edocr.com/v/k52p5vj4/
Mobile Web Overview https://www.edocr.com/v/k52p5vj4/
Jack Zheng
 
Web2.0 2012 - lesson 7 - technologies and mashups
Web2.0 2012 - lesson 7 - technologies and mashups Web2.0 2012 - lesson 7 - technologies and mashups
Web2.0 2012 - lesson 7 - technologies and mashups
Carlo Vaccari
 
SS2
SS2SS2
HCI 2015 (3/10) Design Methodologies
HCI 2015 (3/10) Design MethodologiesHCI 2015 (3/10) Design Methodologies
HCI 2015 (3/10) Design Methodologies
Sabin Buraga
 
Hci03 designmethodologies-150910103121-lva1-app6892
Hci03 designmethodologies-150910103121-lva1-app6892Hci03 designmethodologies-150910103121-lva1-app6892
Hci03 designmethodologies-150910103121-lva1-app6892
Ștefan Gordîn
 
A Mobile Solution for #TheUnderdog
A Mobile Solution for #TheUnderdogA Mobile Solution for #TheUnderdog
A Mobile Solution for #TheUnderdog
Sylvia Navarro Nicosia
 
HCI 2015 (4/10) Visual Design. Information Architecture. Design Patterns
HCI 2015 (4/10) Visual Design. Information Architecture. Design PatternsHCI 2015 (4/10) Visual Design. Information Architecture. Design Patterns
HCI 2015 (4/10) Visual Design. Information Architecture. Design Patterns
Sabin Buraga
 

Similar to Web Technologies (3/12): Web Programming – Web Application Architecture. Web Engineering (20)

HCI 2015 (7/10) HCI Engineering. UI Evaluation. Models
HCI 2015 (7/10) HCI Engineering. UI Evaluation. ModelsHCI 2015 (7/10) HCI Engineering. UI Evaluation. Models
HCI 2015 (7/10) HCI Engineering. UI Evaluation. Models
 
Web05 dezvoltareaaplicatiilorweb php
Web05 dezvoltareaaplicatiilorweb phpWeb05 dezvoltareaaplicatiilorweb php
Web05 dezvoltareaaplicatiilorweb php
 
G0373049057
G0373049057G0373049057
G0373049057
 
HCI 2018 (3/10) Design Models, Methodologies and Guidelines
HCI 2018 (3/10) Design Models, Methodologies and GuidelinesHCI 2018 (3/10) Design Models, Methodologies and Guidelines
HCI 2018 (3/10) Design Models, Methodologies and Guidelines
 
HCI 2014 (7 of 10): HCI Engineering. UI Evaluation. Models
HCI 2014 (7 of 10): HCI Engineering. UI Evaluation. ModelsHCI 2014 (7 of 10): HCI Engineering. UI Evaluation. Models
HCI 2014 (7 of 10): HCI Engineering. UI Evaluation. Models
 
bratt-W3C-MWIp[1]
bratt-W3C-MWIp[1]bratt-W3C-MWIp[1]
bratt-W3C-MWIp[1]
 
Prashant
PrashantPrashant
Prashant
 
Report file on Web technology(html5 and css3)
Report file on Web technology(html5 and css3)Report file on Web technology(html5 and css3)
Report file on Web technology(html5 and css3)
 
webinos whitepaper
webinos whitepaperwebinos whitepaper
webinos whitepaper
 
Progressive Web Apps (PWAs) - Transforming the Future of Full-Stack Developme...
Progressive Web Apps (PWAs) - Transforming the Future of Full-Stack Developme...Progressive Web Apps (PWAs) - Transforming the Future of Full-Stack Developme...
Progressive Web Apps (PWAs) - Transforming the Future of Full-Stack Developme...
 
An End User Development approach for Mobile Web Augmentation applications
An End User Development approach for Mobile Web Augmentation applicationsAn End User Development approach for Mobile Web Augmentation applications
An End User Development approach for Mobile Web Augmentation applications
 
ICWE 2010 Demonstration and Poster elevator pitch session
ICWE 2010 Demonstration and Poster elevator pitch sessionICWE 2010 Demonstration and Poster elevator pitch session
ICWE 2010 Demonstration and Poster elevator pitch session
 
Building Mobile Friendly Websites
Building Mobile Friendly WebsitesBuilding Mobile Friendly Websites
Building Mobile Friendly Websites
 
Mobile Web Overview https://www.edocr.com/v/k52p5vj4/
Mobile Web Overview https://www.edocr.com/v/k52p5vj4/Mobile Web Overview https://www.edocr.com/v/k52p5vj4/
Mobile Web Overview https://www.edocr.com/v/k52p5vj4/
 
Web2.0 2012 - lesson 7 - technologies and mashups
Web2.0 2012 - lesson 7 - technologies and mashups Web2.0 2012 - lesson 7 - technologies and mashups
Web2.0 2012 - lesson 7 - technologies and mashups
 
SS2
SS2SS2
SS2
 
HCI 2015 (3/10) Design Methodologies
HCI 2015 (3/10) Design MethodologiesHCI 2015 (3/10) Design Methodologies
HCI 2015 (3/10) Design Methodologies
 
Hci03 designmethodologies-150910103121-lva1-app6892
Hci03 designmethodologies-150910103121-lva1-app6892Hci03 designmethodologies-150910103121-lva1-app6892
Hci03 designmethodologies-150910103121-lva1-app6892
 
A Mobile Solution for #TheUnderdog
A Mobile Solution for #TheUnderdogA Mobile Solution for #TheUnderdog
A Mobile Solution for #TheUnderdog
 
HCI 2015 (4/10) Visual Design. Information Architecture. Design Patterns
HCI 2015 (4/10) Visual Design. Information Architecture. Design PatternsHCI 2015 (4/10) Visual Design. Information Architecture. Design Patterns
HCI 2015 (4/10) Visual Design. Information Architecture. Design Patterns
 

More from Sabin Buraga

Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturale
Sabin Buraga
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Sabin Buraga
 
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Sabin Buraga
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Sabin Buraga
 
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Sabin Buraga
 
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Sabin Buraga
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Sabin Buraga
 
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Sabin Buraga
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma REST
Sabin Buraga
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Sabin Buraga
 
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Sabin Buraga
 
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Sabin Buraga
 
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor Web
Sabin Buraga
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
Sabin Buraga
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
Sabin Buraga
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.js
Sabin Buraga
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului Web
Sabin Buraga
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
Sabin Buraga
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
Sabin Buraga
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5
Sabin Buraga
 

More from Sabin Buraga (20)

Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturale
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
 
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
 
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
 
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
 
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma REST
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
 
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
 
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
 
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor Web
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.js
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului Web
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5
 

Recently uploaded

Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
Globus
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 

Recently uploaded (20)

Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 

Web Technologies (3/12): Web Programming – Web Application Architecture. Web Engineering