SlideShare a Scribd company logo
1
This summarizes the past decade in Java Web Application Architecture. Your current
architecture probably looks like this. Middle block is Servlet-based, the past seven
years or so generally Spring+Hibernate or JSF+JPA, Struts before that. It could be any
of two dozen other stacks, the common thread is that the HTML composition
happens server side.




                                                                                         2
iPhone 3G was launched June 9th, 2008. The original iPhone had people curious, but
generally unconvinced. The iPhone 3G was the game changer.




                                                                                     3
This chart puts into perspective just how big touch screen portable devices became in
how little time. It’s a pity the number of Windows licenses sold is not available, it
would be nice to contrast these numbers to.




                                                                                        4
This is the past decade in architecture today. It poses three main challenges.




                                                                                 5
Smaller screens: obviously.
Poor data connections: low bandwidth, high latency (actually a bigger problem for
the TCP connection than the low bandwidth) and the damn thing resets to a low
power state after a few seconds, with a significant ramp-up delay.

People demand apps: not so much a technical limitation, but it impacts application
architecture as we’ll see later.




                                                                                     6
7
Dealing with small screens isn’t that difficult. There are three approaches: <list>.

Device Detection happens on the server side: send tailored content to each device
class.
Responsive Design is the opposite: structure your views in such a way that they’ll
work for any screen size. Essentially device detection on the client. [CSS3 Media
Queries][1] have made this a lot easier.


[1]: http://www.w3.org/TR/css3-mediaqueries/




                                                                                       8
This is a good example of responsive design. Live demo: just resize a browser window.

http://www.lukew.com/ff/entry.asp?1509




                                                                                        9
Summary: smaller screens. [Twitter Bootstrap][1] is the foremost CSS framework

[1]: http://twitter.github.com/bootstrap/




                                                                                 10
Mobile connections have low bandwidth, high latency and intermittent availability.




                                                                                     11
12
Filmstrip view courtesy of http://webpagetest.org

Notice that BP’s site is quicker to show the first bit of content (perceived speed).
However, BP’s initial content is a sidebar, whereas Exxon is quicker with the main
content. Both sites are correctly built with regards to the large title image: the text
content is not blocked from appearing before the image is loaded.




                                                                                          13
(Shown in an external browser at full size, with horizontal scrolling)

Shell’s website fares horribly compared to the other two. It’s content doesn’t even
begin to appear until a second after the next nearest is completely done. Web
performance matters. Google, Yahoo!, Bing, Mozilla and a bunch of others have all
reported [significantly improved conversion rates][1] after a web page speedup.
Google has started penalizing slow websites in PageRank.

[1]: http://www.stevesouders.com/blog/2010/05/07/wpo-web-performance-
optimization/




                                                                                      14
The timeline view is available in all current browsers to help optimize page loading.
Take special notice of bars that abut (rather than overlap) earlier bars. In this case, a
bit of content (such as a document.write() call in a script tag) may be prohibiting the
browser from loading the next resource.




                                                                                            15
AJAX loading: make part of the content appear with the initial load of HTML, then use
JavaScript to load additional content.

Widget toolkits: datatables.net, jqueryui.com, yuilibrary.com and tons of others.




                                                                                        16
Summary: it’s all well-documented on the web.




                                                17
18
If you have an app, it’s quite likely that this has happened to you. All nice and dandy,
but not desirable as a long term architecture. It’s hard to maintain feature parity
between the two apps, it’s likely that they’ll grow apart.




                                                                                           19
This is slightly healthier, but again, it’s likely that one of the two will receive more love
than the other.




                                                                                                20
Modern JavaScript has gotten [incredibly][1] [powerful][2] and it’s increasingly
popular to move the full MVC to the client side, powered by a REST back-end. REST
(Google it) is a paper by Roy Fielding that essentially defines the interface contract
that HTTP implements. It’s the way to make the most of the HTTP protocol.


[1]: http://bellard.org/jslinux/ (JavaScript x86 virtual machine running Linux)
[2]: http://www.eveonline.com/universe/spaceships/ishtar/ (WebGL 3D starship
viewer for EVE Online (Firefox/Chrome))




                                                                                         21
The desktop app is a JavaScript application that consumes the exact same JSON
services as the mobile app. It requires a bit of static resources (HTML/CSS/JS and
images) to bootstrap.

Consider making your JSON API public. If you do, other people will make apps and
mashups at no additional cost to you. A great example is the NS (Dutch railways): the
NS has its own iOS and Android apps, but no Windows Phone app. Because their
JSON API is public, other people have stepped in and made excellent Windows Phone
apps.

Note: the Edge Server is an optional architectural component. JavaScript single-origin
issues may force you to use an edge server (reverse proxy) to expose multiple back-
end systems via a single URL. The popular choices right now are Node.js and Nginx. If
you can get away with not having one, life is generally easier.




                                                                                         22
23
OAUTH came up during the Q&A. It’s an HTTP based mechanism by which to delegate
user authentication to a trusted third party (“Sign in with your Twitter account”). The
key thing is that OAUTH starts with an HTTPS redirect to the third party. During logon,
the top-level URL in the browser’s address bar is the third party, not the client web
site. This means the user does not share his/her username and password with any
party other than the authentication provider. This implies that there’s no additional
attack surface on the user’s credentials.

Aside from authentication, OAUTH supports an authorization mechanism. This is
commonly seen in sites and apps that interact with social networks like Twitter and
Facebook. A website or app can be granted access to e.g. post on the user’s wall on
their behalf. This access is revocable.




                                                                                          24

More Related Content

Viewers also liked

Agile en Scrum buiten IT
Agile en Scrum buiten ITAgile en Scrum buiten IT
Agile en Scrum buiten IT
Xebia Nederland BV
 
Adriaan de-jonge
Adriaan de-jongeAdriaan de-jonge
Adriaan de-jonge
Xebia Nederland BV
 
TestWorks Conf Real world automation survival - Alan Richardson
TestWorks Conf Real world automation survival - Alan RichardsonTestWorks Conf Real world automation survival - Alan Richardson
TestWorks Conf Real world automation survival - Alan Richardson
Xebia Nederland BV
 
TestWorks Conf 2015 Beefing up FitNesse - Arjan Molenaar
TestWorks Conf 2015 Beefing up FitNesse - Arjan MolenaarTestWorks Conf 2015 Beefing up FitNesse - Arjan Molenaar
TestWorks Conf 2015 Beefing up FitNesse - Arjan Molenaar
Xebia Nederland BV
 
Evaluating Usability Of Commercial Software Applications
Evaluating Usability Of Commercial Software ApplicationsEvaluating Usability Of Commercial Software Applications
Evaluating Usability Of Commercial Software Applications
Jen Hocko
 
Tien keer per dag ‘live gaan met continuous delivery
Tien keer per dag ‘live gaan met continuous deliveryTien keer per dag ‘live gaan met continuous delivery
Tien keer per dag ‘live gaan met continuous delivery
Xebia Nederland BV
 
3* Scrum Master
3* Scrum Master3* Scrum Master
3* Scrum Master
Xebia Nederland BV
 

Viewers also liked (7)

Agile en Scrum buiten IT
Agile en Scrum buiten ITAgile en Scrum buiten IT
Agile en Scrum buiten IT
 
Adriaan de-jonge
Adriaan de-jongeAdriaan de-jonge
Adriaan de-jonge
 
TestWorks Conf Real world automation survival - Alan Richardson
TestWorks Conf Real world automation survival - Alan RichardsonTestWorks Conf Real world automation survival - Alan Richardson
TestWorks Conf Real world automation survival - Alan Richardson
 
TestWorks Conf 2015 Beefing up FitNesse - Arjan Molenaar
TestWorks Conf 2015 Beefing up FitNesse - Arjan MolenaarTestWorks Conf 2015 Beefing up FitNesse - Arjan Molenaar
TestWorks Conf 2015 Beefing up FitNesse - Arjan Molenaar
 
Evaluating Usability Of Commercial Software Applications
Evaluating Usability Of Commercial Software ApplicationsEvaluating Usability Of Commercial Software Applications
Evaluating Usability Of Commercial Software Applications
 
Tien keer per dag ‘live gaan met continuous delivery
Tien keer per dag ‘live gaan met continuous deliveryTien keer per dag ‘live gaan met continuous delivery
Tien keer per dag ‘live gaan met continuous delivery
 
3* Scrum Master
3* Scrum Master3* Scrum Master
3* Scrum Master
 

Similar to Web apps of the future

Qnx html5 hmi
Qnx html5 hmiQnx html5 hmi
Qnx html5 hmi
길수 김
 
Transforming the web into a real application platform
Transforming the web into a real application platformTransforming the web into a real application platform
Transforming the web into a real application platform
Mohanadarshan Vivekanandalingam
 
Over view of Technologies
Over view of TechnologiesOver view of Technologies
Over view of Technologies
Chris Mitchell
 
Trends in Technology
Trends in TechnologyTrends in Technology
Trends in Technology
Dhananjay Nene
 
A new interface between smart device and web using html5 web socket and qr code
A new interface between smart device and web using html5 web socket and qr codeA new interface between smart device and web using html5 web socket and qr code
A new interface between smart device and web using html5 web socket and qr code
Matthew Chang
 
Bruce lawson-over-the-air
Bruce lawson-over-the-airBruce lawson-over-the-air
Bruce lawson-over-the-air
brucelawson
 
Top 11 Front-End Web Development Tools To Consider in 2020
 Top 11 Front-End Web Development Tools To Consider in 2020 Top 11 Front-End Web Development Tools To Consider in 2020
Top 11 Front-End Web Development Tools To Consider in 2020
Katy Slemon
 
Introduction to Node js
Introduction to Node jsIntroduction to Node js
Introduction to Node js
Pragnesh Vaghela
 
Summarize the What Is Web 2.0
Summarize the What Is Web 2.0Summarize the What Is Web 2.0
Summarize the What Is Web 2.0
wacerone
 
3D for the modern web: declarative3d and gltf
3D for the modern web: declarative3d and gltf3D for the modern web: declarative3d and gltf
3D for the modern web: declarative3d and gltf
Brian Coughlin
 
INTRODUCTION.docx
INTRODUCTION.docxINTRODUCTION.docx
INTRODUCTION.docx
KaiSane1
 
How to choose the best frontend framework in 2022
How to choose the best frontend framework in 2022How to choose the best frontend framework in 2022
How to choose the best frontend framework in 2022
Katy Slemon
 
emerging
emergingemerging
emerging
tutorialsruby
 
emerging
emergingemerging
emerging
tutorialsruby
 
Top 10 Best Web Development Technologies
Top 10 Best Web Development TechnologiesTop 10 Best Web Development Technologies
Top 10 Best Web Development Technologies
AjayMishra302670
 
Drupalcamp New York 2009
Drupalcamp New York 2009Drupalcamp New York 2009
Drupalcamp New York 2009
Tom Deryckere
 
Food borne human diseases
Food borne human diseasesFood borne human diseases
Food borne human diseases
AmalMohammedNasserSa
 
Web 2.0 and LiveQuotes Presentation
Web 2.0 and LiveQuotes PresentationWeb 2.0 and LiveQuotes Presentation
Web 2.0 and LiveQuotes Presentation
Jamie Thingelstad
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
TSUBHASHRI
 
React Js vs Node Js_ Which Framework to Choose for Your Next Web Application
React Js vs Node Js_ Which Framework to Choose for Your Next Web ApplicationReact Js vs Node Js_ Which Framework to Choose for Your Next Web Application
React Js vs Node Js_ Which Framework to Choose for Your Next Web Application
adityakumar2080
 

Similar to Web apps of the future (20)

Qnx html5 hmi
Qnx html5 hmiQnx html5 hmi
Qnx html5 hmi
 
Transforming the web into a real application platform
Transforming the web into a real application platformTransforming the web into a real application platform
Transforming the web into a real application platform
 
Over view of Technologies
Over view of TechnologiesOver view of Technologies
Over view of Technologies
 
Trends in Technology
Trends in TechnologyTrends in Technology
Trends in Technology
 
A new interface between smart device and web using html5 web socket and qr code
A new interface between smart device and web using html5 web socket and qr codeA new interface between smart device and web using html5 web socket and qr code
A new interface between smart device and web using html5 web socket and qr code
 
Bruce lawson-over-the-air
Bruce lawson-over-the-airBruce lawson-over-the-air
Bruce lawson-over-the-air
 
Top 11 Front-End Web Development Tools To Consider in 2020
 Top 11 Front-End Web Development Tools To Consider in 2020 Top 11 Front-End Web Development Tools To Consider in 2020
Top 11 Front-End Web Development Tools To Consider in 2020
 
Introduction to Node js
Introduction to Node jsIntroduction to Node js
Introduction to Node js
 
Summarize the What Is Web 2.0
Summarize the What Is Web 2.0Summarize the What Is Web 2.0
Summarize the What Is Web 2.0
 
3D for the modern web: declarative3d and gltf
3D for the modern web: declarative3d and gltf3D for the modern web: declarative3d and gltf
3D for the modern web: declarative3d and gltf
 
INTRODUCTION.docx
INTRODUCTION.docxINTRODUCTION.docx
INTRODUCTION.docx
 
How to choose the best frontend framework in 2022
How to choose the best frontend framework in 2022How to choose the best frontend framework in 2022
How to choose the best frontend framework in 2022
 
emerging
emergingemerging
emerging
 
emerging
emergingemerging
emerging
 
Top 10 Best Web Development Technologies
Top 10 Best Web Development TechnologiesTop 10 Best Web Development Technologies
Top 10 Best Web Development Technologies
 
Drupalcamp New York 2009
Drupalcamp New York 2009Drupalcamp New York 2009
Drupalcamp New York 2009
 
Food borne human diseases
Food borne human diseasesFood borne human diseases
Food borne human diseases
 
Web 2.0 and LiveQuotes Presentation
Web 2.0 and LiveQuotes PresentationWeb 2.0 and LiveQuotes Presentation
Web 2.0 and LiveQuotes Presentation
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
React Js vs Node Js_ Which Framework to Choose for Your Next Web Application
React Js vs Node Js_ Which Framework to Choose for Your Next Web ApplicationReact Js vs Node Js_ Which Framework to Choose for Your Next Web Application
React Js vs Node Js_ Which Framework to Choose for Your Next Web Application
 

More from Xebia Nederland BV

The 10 tip recipe for business model innovation
The 10 tip recipe for business model innovationThe 10 tip recipe for business model innovation
The 10 tip recipe for business model innovation
Xebia Nederland BV
 
Scan je teams!
Scan je teams!Scan je teams!
Scan je teams!
Xebia Nederland BV
 
Holacracy: een nieuwe bodem voor de Scrum taart
Holacracy: een nieuwe bodem voor de Scrum taartHolacracy: een nieuwe bodem voor de Scrum taart
Holacracy: een nieuwe bodem voor de Scrum taart
Xebia Nederland BV
 
Judo Strategy
Judo StrategyJudo Strategy
Judo Strategy
Xebia Nederland BV
 
Scrumban
ScrumbanScrumban
Creating the right products
Creating the right productsCreating the right products
Creating the right products
Xebia Nederland BV
 
Videoscribe je agile transitie
Videoscribe je agile transitieVideoscribe je agile transitie
Videoscribe je agile transitie
Xebia Nederland BV
 
Sketchnote je Product Backlog Items & Sprint Retrospectives
Sketchnote je Product Backlog Items & Sprint RetrospectivesSketchnote je Product Backlog Items & Sprint Retrospectives
Sketchnote je Product Backlog Items & Sprint Retrospectives
Xebia Nederland BV
 
Why we need test automation, but it’s not the right question
Why we need test automation, but it’s not the right questionWhy we need test automation, but it’s not the right question
Why we need test automation, but it’s not the right question
Xebia Nederland BV
 
Testen in de transitie naar continuous delivery
Testen in de transitie naar continuous deliveryTesten in de transitie naar continuous delivery
Testen in de transitie naar continuous delivery
Xebia Nederland BV
 
Becoming an agile enterprise, focus on the test ingredient
Becoming an agile enterprise, focus on the test ingredientBecoming an agile enterprise, focus on the test ingredient
Becoming an agile enterprise, focus on the test ingredient
Xebia Nederland BV
 
How DUO started with Continuous Delivery and changed their way of Testing
How DUO started with Continuous Delivery and changed their way of TestingHow DUO started with Continuous Delivery and changed their way of Testing
How DUO started with Continuous Delivery and changed their way of Testing
Xebia Nederland BV
 
Become a digital company - Case KPN / Xebia
Become a digital company - Case KPN / XebiaBecome a digital company - Case KPN / Xebia
Become a digital company - Case KPN / Xebia
Xebia Nederland BV
 
Building a Docker powered feature driven delivery pipeline at hoyhoy.nl
Building a Docker powered feature driven delivery pipeline at hoyhoy.nlBuilding a Docker powered feature driven delivery pipeline at hoyhoy.nl
Building a Docker powered feature driven delivery pipeline at hoyhoy.nl
Xebia Nederland BV
 
Webinar Xebia & bol.com
Webinar Xebia & bol.comWebinar Xebia & bol.com
Webinar Xebia & bol.com
Xebia Nederland BV
 
TestWorks Conf The magic of models for 1000% test automation - Machiel van de...
TestWorks Conf The magic of models for 1000% test automation - Machiel van de...TestWorks Conf The magic of models for 1000% test automation - Machiel van de...
TestWorks Conf The magic of models for 1000% test automation - Machiel van de...
Xebia Nederland BV
 
TestWorks Conf Serenity BDD in action - John Ferguson Smart
TestWorks Conf Serenity BDD in action - John Ferguson SmartTestWorks Conf Serenity BDD in action - John Ferguson Smart
TestWorks Conf Serenity BDD in action - John Ferguson Smart
Xebia Nederland BV
 
TestWorks Conf Scalable QA with docker - Maarten van den Ende and Adé Mochtar
TestWorks Conf Scalable QA with docker - Maarten van den Ende and Adé MochtarTestWorks Conf Scalable QA with docker - Maarten van den Ende and Adé Mochtar
TestWorks Conf Scalable QA with docker - Maarten van den Ende and Adé Mochtar
Xebia Nederland BV
 
TestWorks Conf Robot framework - the unsung hero of test automation - Michael...
TestWorks Conf Robot framework - the unsung hero of test automation - Michael...TestWorks Conf Robot framework - the unsung hero of test automation - Michael...
TestWorks Conf Robot framework - the unsung hero of test automation - Michael...
Xebia Nederland BV
 
TestWorks Conf Performance testing made easy with gatling - Guillaume Corré
TestWorks Conf Performance testing made easy with gatling - Guillaume CorréTestWorks Conf Performance testing made easy with gatling - Guillaume Corré
TestWorks Conf Performance testing made easy with gatling - Guillaume Corré
Xebia Nederland BV
 

More from Xebia Nederland BV (20)

The 10 tip recipe for business model innovation
The 10 tip recipe for business model innovationThe 10 tip recipe for business model innovation
The 10 tip recipe for business model innovation
 
Scan je teams!
Scan je teams!Scan je teams!
Scan je teams!
 
Holacracy: een nieuwe bodem voor de Scrum taart
Holacracy: een nieuwe bodem voor de Scrum taartHolacracy: een nieuwe bodem voor de Scrum taart
Holacracy: een nieuwe bodem voor de Scrum taart
 
Judo Strategy
Judo StrategyJudo Strategy
Judo Strategy
 
Scrumban
ScrumbanScrumban
Scrumban
 
Creating the right products
Creating the right productsCreating the right products
Creating the right products
 
Videoscribe je agile transitie
Videoscribe je agile transitieVideoscribe je agile transitie
Videoscribe je agile transitie
 
Sketchnote je Product Backlog Items & Sprint Retrospectives
Sketchnote je Product Backlog Items & Sprint RetrospectivesSketchnote je Product Backlog Items & Sprint Retrospectives
Sketchnote je Product Backlog Items & Sprint Retrospectives
 
Why we need test automation, but it’s not the right question
Why we need test automation, but it’s not the right questionWhy we need test automation, but it’s not the right question
Why we need test automation, but it’s not the right question
 
Testen in de transitie naar continuous delivery
Testen in de transitie naar continuous deliveryTesten in de transitie naar continuous delivery
Testen in de transitie naar continuous delivery
 
Becoming an agile enterprise, focus on the test ingredient
Becoming an agile enterprise, focus on the test ingredientBecoming an agile enterprise, focus on the test ingredient
Becoming an agile enterprise, focus on the test ingredient
 
How DUO started with Continuous Delivery and changed their way of Testing
How DUO started with Continuous Delivery and changed their way of TestingHow DUO started with Continuous Delivery and changed their way of Testing
How DUO started with Continuous Delivery and changed their way of Testing
 
Become a digital company - Case KPN / Xebia
Become a digital company - Case KPN / XebiaBecome a digital company - Case KPN / Xebia
Become a digital company - Case KPN / Xebia
 
Building a Docker powered feature driven delivery pipeline at hoyhoy.nl
Building a Docker powered feature driven delivery pipeline at hoyhoy.nlBuilding a Docker powered feature driven delivery pipeline at hoyhoy.nl
Building a Docker powered feature driven delivery pipeline at hoyhoy.nl
 
Webinar Xebia & bol.com
Webinar Xebia & bol.comWebinar Xebia & bol.com
Webinar Xebia & bol.com
 
TestWorks Conf The magic of models for 1000% test automation - Machiel van de...
TestWorks Conf The magic of models for 1000% test automation - Machiel van de...TestWorks Conf The magic of models for 1000% test automation - Machiel van de...
TestWorks Conf The magic of models for 1000% test automation - Machiel van de...
 
TestWorks Conf Serenity BDD in action - John Ferguson Smart
TestWorks Conf Serenity BDD in action - John Ferguson SmartTestWorks Conf Serenity BDD in action - John Ferguson Smart
TestWorks Conf Serenity BDD in action - John Ferguson Smart
 
TestWorks Conf Scalable QA with docker - Maarten van den Ende and Adé Mochtar
TestWorks Conf Scalable QA with docker - Maarten van den Ende and Adé MochtarTestWorks Conf Scalable QA with docker - Maarten van den Ende and Adé Mochtar
TestWorks Conf Scalable QA with docker - Maarten van den Ende and Adé Mochtar
 
TestWorks Conf Robot framework - the unsung hero of test automation - Michael...
TestWorks Conf Robot framework - the unsung hero of test automation - Michael...TestWorks Conf Robot framework - the unsung hero of test automation - Michael...
TestWorks Conf Robot framework - the unsung hero of test automation - Michael...
 
TestWorks Conf Performance testing made easy with gatling - Guillaume Corré
TestWorks Conf Performance testing made easy with gatling - Guillaume CorréTestWorks Conf Performance testing made easy with gatling - Guillaume Corré
TestWorks Conf Performance testing made easy with gatling - Guillaume Corré
 

Recently uploaded

Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
jpupo2018
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
Federico Razzoli
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 

Recently uploaded (20)

Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 

Web apps of the future

  • 1. 1
  • 2. This summarizes the past decade in Java Web Application Architecture. Your current architecture probably looks like this. Middle block is Servlet-based, the past seven years or so generally Spring+Hibernate or JSF+JPA, Struts before that. It could be any of two dozen other stacks, the common thread is that the HTML composition happens server side. 2
  • 3. iPhone 3G was launched June 9th, 2008. The original iPhone had people curious, but generally unconvinced. The iPhone 3G was the game changer. 3
  • 4. This chart puts into perspective just how big touch screen portable devices became in how little time. It’s a pity the number of Windows licenses sold is not available, it would be nice to contrast these numbers to. 4
  • 5. This is the past decade in architecture today. It poses three main challenges. 5
  • 6. Smaller screens: obviously. Poor data connections: low bandwidth, high latency (actually a bigger problem for the TCP connection than the low bandwidth) and the damn thing resets to a low power state after a few seconds, with a significant ramp-up delay. People demand apps: not so much a technical limitation, but it impacts application architecture as we’ll see later. 6
  • 7. 7
  • 8. Dealing with small screens isn’t that difficult. There are three approaches: <list>. Device Detection happens on the server side: send tailored content to each device class. Responsive Design is the opposite: structure your views in such a way that they’ll work for any screen size. Essentially device detection on the client. [CSS3 Media Queries][1] have made this a lot easier. [1]: http://www.w3.org/TR/css3-mediaqueries/ 8
  • 9. This is a good example of responsive design. Live demo: just resize a browser window. http://www.lukew.com/ff/entry.asp?1509 9
  • 10. Summary: smaller screens. [Twitter Bootstrap][1] is the foremost CSS framework [1]: http://twitter.github.com/bootstrap/ 10
  • 11. Mobile connections have low bandwidth, high latency and intermittent availability. 11
  • 12. 12
  • 13. Filmstrip view courtesy of http://webpagetest.org Notice that BP’s site is quicker to show the first bit of content (perceived speed). However, BP’s initial content is a sidebar, whereas Exxon is quicker with the main content. Both sites are correctly built with regards to the large title image: the text content is not blocked from appearing before the image is loaded. 13
  • 14. (Shown in an external browser at full size, with horizontal scrolling) Shell’s website fares horribly compared to the other two. It’s content doesn’t even begin to appear until a second after the next nearest is completely done. Web performance matters. Google, Yahoo!, Bing, Mozilla and a bunch of others have all reported [significantly improved conversion rates][1] after a web page speedup. Google has started penalizing slow websites in PageRank. [1]: http://www.stevesouders.com/blog/2010/05/07/wpo-web-performance- optimization/ 14
  • 15. The timeline view is available in all current browsers to help optimize page loading. Take special notice of bars that abut (rather than overlap) earlier bars. In this case, a bit of content (such as a document.write() call in a script tag) may be prohibiting the browser from loading the next resource. 15
  • 16. AJAX loading: make part of the content appear with the initial load of HTML, then use JavaScript to load additional content. Widget toolkits: datatables.net, jqueryui.com, yuilibrary.com and tons of others. 16
  • 17. Summary: it’s all well-documented on the web. 17
  • 18. 18
  • 19. If you have an app, it’s quite likely that this has happened to you. All nice and dandy, but not desirable as a long term architecture. It’s hard to maintain feature parity between the two apps, it’s likely that they’ll grow apart. 19
  • 20. This is slightly healthier, but again, it’s likely that one of the two will receive more love than the other. 20
  • 21. Modern JavaScript has gotten [incredibly][1] [powerful][2] and it’s increasingly popular to move the full MVC to the client side, powered by a REST back-end. REST (Google it) is a paper by Roy Fielding that essentially defines the interface contract that HTTP implements. It’s the way to make the most of the HTTP protocol. [1]: http://bellard.org/jslinux/ (JavaScript x86 virtual machine running Linux) [2]: http://www.eveonline.com/universe/spaceships/ishtar/ (WebGL 3D starship viewer for EVE Online (Firefox/Chrome)) 21
  • 22. The desktop app is a JavaScript application that consumes the exact same JSON services as the mobile app. It requires a bit of static resources (HTML/CSS/JS and images) to bootstrap. Consider making your JSON API public. If you do, other people will make apps and mashups at no additional cost to you. A great example is the NS (Dutch railways): the NS has its own iOS and Android apps, but no Windows Phone app. Because their JSON API is public, other people have stepped in and made excellent Windows Phone apps. Note: the Edge Server is an optional architectural component. JavaScript single-origin issues may force you to use an edge server (reverse proxy) to expose multiple back- end systems via a single URL. The popular choices right now are Node.js and Nginx. If you can get away with not having one, life is generally easier. 22
  • 23. 23
  • 24. OAUTH came up during the Q&A. It’s an HTTP based mechanism by which to delegate user authentication to a trusted third party (“Sign in with your Twitter account”). The key thing is that OAUTH starts with an HTTPS redirect to the third party. During logon, the top-level URL in the browser’s address bar is the third party, not the client web site. This means the user does not share his/her username and password with any party other than the authentication provider. This implies that there’s no additional attack surface on the user’s credentials. Aside from authentication, OAUTH supports an authorization mechanism. This is commonly seen in sites and apps that interact with social networks like Twitter and Facebook. A website or app can be granted access to e.g. post on the user’s wall on their behalf. This access is revocable. 24