SlideShare a Scribd company logo
PainSoftware
Web-application
I’ve always dreamt of
@JavaDay Lviv
2015
Victor Polischuk
PainSoftware
Programming 26
Overall 32
Java 11
Web 11
Legacy 11
Professional 13
Has something to share
@alkovictor
Prehistoric Era [...-1995]
• Static content only
• Interaction without server:
Impossible
Unthinkable
• Server-side HTML adjustments
PainSoftware
PainSoftware
Medieval Era [1995-2005]
• Static content mostly
• Interaction without server: cached resources
• Server-side HTML+CSS+JS adjustments
• Frames as asynchronous data loading
• Birth of:
Servlet API
JavaScript
DHTML concept
Flash
Browser-compatibility hell
RFC1925
PainSoftware
PainSoftware
Renaissance Era [2005-2010]
• Static content with dynamic “whistles”
• Interaction without server: simple functions
• Server-side HTML+CSS+JS adjustments
• Rising popularity of Rich Internet Applications
• Birth of:
jQuery
DOJO
AJAX and Comet
PainSoftware
PainSoftware
Modern Era [2010-...]
• Internet of Things
• Big Data
• Cloud Computing
• ???
PainSoftware
Overview
PainSoftware
http://zeroturnaround.com/rebellabs/top-4-java-web-frameworks-revealed-real-life-usage-data-of-spring-mvc-vaadin-gwt-and-jsf/
Business Needs
• Integration with anything:
Mobile
Mainframe
Coffee machine
• High availability:
Hard to predict clients behavior
• Data is the TOP priority:
We make money out of it
• Client’s satisfaction:
Should be happier than those of our competitors
PainSoftware
Idea
• “All problems in computer science can be solved by another level of
indirection” © David Wheeler
• “Do One Thing and Do It Well” © Unix community
PainSoftware
Idea
PainSoftware
Client
PainSoftware
Client
PainSoftware
Server
PainSoftware
Server
PainSoftware
Business Needs
• Integration with anything
• High availability
• Data is the TOP priority
• Client’s satisfaction
PainSoftware
Technical Needs
• Scalability
• Security
• Testability
• “Otherity”
PainSoftware
Scalability
• Server is just a bunch of endpoints
• Independent client
• State
Client needs it
Server doesn’t
• SLA
Way to Nine-Nines
You do not want to lose clients, right?
PainSoftware
…We Design
PainSoftware
…We Imagine
PainSoftware
…We Build
PainSoftware
Security
• Do you need it on each request?
• Do you know how it works?
• Do you think it is secure?
PainSoftware
…Of Course
PainSoftware
…Safe JSF
PainSoftware
…Safe Cookies
PainSoftware
…Strong Password
PainSoftware
…$5000 bug
PainSoftware
PainSoftware
Testability
• Server side:
Unit
Integration
Contract
[optional] Load & Performance
• Client side:
Unit
Integration
Contract
[optional] Browser & Sanity
PainSoftware
…Client
PainSoftware
Responsibility
• Client:
Responsive
User-friendly
Pretty
• Server:
Scalable
Fail-proof
Redundant
PainSoftware
Traffic
• Reduce useless to none
• De-increase useful:
Increase volume
Decrease size
PainSoftware
Optimization
• Client
Caching
Pre-fetching
Incremental updates
• Server:
Caching
Pre-fetching
Incremental updates
PainSoftware
Encapsulation
• Both parties can have their own secrets
PainSoftware
Polygamy
• Is it moral if a client has many servers and vice versa?
PainSoftware
Summary
• Effectiveness: you have one job
• Security: you are limiting interaction to minimum
• Testability: test JSF page, I dare you!
• State: -less server, -ful client
• Elasticity/scalability: your data volume is growing
• Network optimizations: you know what you send
• Local optimizations: you know what you do
• Many-to-many connections
• SLA
PainSoftware
Questions
PainSoftware

More Related Content

PPTX
Web-application I’ve always dreamt of (Kharkiv)
PPTX
ASP.NET MVC 4
PDF
Orchestrator for QlikView: add-on product description
PPTX
Vincent biret azure functions and flow (toronto)
PPTX
Vincent biret azure functions and flow (ottawa)
PDF
Single Page Apps
PPTX
Building Modern Web Applications with ASP.NET5
PPTX
How to ease the learning curve
Web-application I’ve always dreamt of (Kharkiv)
ASP.NET MVC 4
Orchestrator for QlikView: add-on product description
Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (ottawa)
Single Page Apps
Building Modern Web Applications with ASP.NET5
How to ease the learning curve

What's hot (20)

PPTX
Why XAF and XPO?
PPTX
Improving Perceived Page Performance with ASP.NET Web API and AJAX
PPT
Project FiFo - Architecture
PDF
Saigon Ruby Meetup 06/10/2015 - Changeful Gem
PPT
Create scalable and failure safe cluster MagentoCommerce using cloud hosting ...
PDF
Next Generation Web Development Techniques with Cloud Foundry
PPTX
Les nouveautés ASP.NET 5 avec Visual Studio 2015
PDF
User percieved performance
PPTX
Magento applications and modules functional testing
PPTX
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
PDF
Em presentation victor herman
PPTX
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
PDF
Journey to a multi-tenant e commerce solution in the cloud with Kubernetes - ...
PPTX
AppFx.ServiceBus - Simple Messaging with Windows Azure Service Bus
PPTX
Host, deploy & scale Blazor Server Apps
PPTX
Connect 2014 - EXTJS in XPages: Modernizing IBM Notes Views Without Sacrifici...
PPTX
Office script labs
PDF
Monolithic to microservices migration journey with spring cloud
PPTX
How to automate your BizTalk Installations and Deployments with Chef
PPTX
Introduction presentation
Why XAF and XPO?
Improving Perceived Page Performance with ASP.NET Web API and AJAX
Project FiFo - Architecture
Saigon Ruby Meetup 06/10/2015 - Changeful Gem
Create scalable and failure safe cluster MagentoCommerce using cloud hosting ...
Next Generation Web Development Techniques with Cloud Foundry
Les nouveautés ASP.NET 5 avec Visual Studio 2015
User percieved performance
Magento applications and modules functional testing
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Em presentation victor herman
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
Journey to a multi-tenant e commerce solution in the cloud with Kubernetes - ...
AppFx.ServiceBus - Simple Messaging with Windows Azure Service Bus
Host, deploy & scale Blazor Server Apps
Connect 2014 - EXTJS in XPages: Modernizing IBM Notes Views Without Sacrifici...
Office script labs
Monolithic to microservices migration journey with spring cloud
How to automate your BizTalk Installations and Deployments with Chef
Introduction presentation
Ad

Similar to Web application I have always dreamt of (Lviv) (20)

PPTX
Web application I have always dreamt of
PDF
lec-01-WP.pdf
PPT
SLC ASP.NET Framework and BPM (Eng)
PDF
01 web 2.0 - more than a pretty face for soa
PPT
Appathika.ppt
PPTX
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User Experience
PPTX
X internet framework
PDF
Application-Servers.pdf
PPTX
Php Web Frameworks
PDF
Is Silverlight Ready to Replace Flash in the Enterprise?
PPT
Platform as Art: A Developer’s Perspective
PDF
Netapp Michael Galpin
PPT
Web Server Primer
PPT
Web Server Primer
PPTX
PPTX
Client Server Architecture
PPT
Web Speed And Scalability
PPT
Composite Applications For Users
PDF
Dmeeker Finala
PDF
Web applicationsolutions
Web application I have always dreamt of
lec-01-WP.pdf
SLC ASP.NET Framework and BPM (Eng)
01 web 2.0 - more than a pretty face for soa
Appathika.ppt
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User Experience
X internet framework
Application-Servers.pdf
Php Web Frameworks
Is Silverlight Ready to Replace Flash in the Enterprise?
Platform as Art: A Developer’s Perspective
Netapp Michael Galpin
Web Server Primer
Web Server Primer
Client Server Architecture
Web Speed And Scalability
Composite Applications For Users
Dmeeker Finala
Web applicationsolutions
Ad

More from Victor_Cr (14)

PPTX
Data Wars: The Bloody Enterprise strikes back
PPTX
Data Wars: The Bloody Enterprise strikes back
PPTX
Type War: Weak vs Strong [JEEConf 2016]
PPTX
Types: Weak/Duck/Optional vs Strong/Strict. Let the War Begin!
PPTX
Types: Weak/Duck/Optional vs Strong/Strict. Let the War Begin!
PPTX
Legacy: как победить в гонке (Joker)
PPTX
Legacy projects: how to win the race
PPTX
Legacy projects: how to win the race
PPTX
Jboss drools expert (ru)
PPTX
JEEConf WEB
PPTX
JEEConf JBoss Drools
ODP
JBoss Drools
PPTX
XPDays Ukraine: Legacy
PPTX
Club of anonimous developers "Refactoring: Legacy code"
Data Wars: The Bloody Enterprise strikes back
Data Wars: The Bloody Enterprise strikes back
Type War: Weak vs Strong [JEEConf 2016]
Types: Weak/Duck/Optional vs Strong/Strict. Let the War Begin!
Types: Weak/Duck/Optional vs Strong/Strict. Let the War Begin!
Legacy: как победить в гонке (Joker)
Legacy projects: how to win the race
Legacy projects: how to win the race
Jboss drools expert (ru)
JEEConf WEB
JEEConf JBoss Drools
JBoss Drools
XPDays Ukraine: Legacy
Club of anonimous developers "Refactoring: Legacy code"

Recently uploaded (20)

PPTX
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
PDF
PPT on Performance Review to get promotions
PPTX
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
PPTX
Lesson 3_Tessellation.pptx finite Mathematics
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PPTX
UNIT-1 - COAL BASED THERMAL POWER PLANTS
PPTX
Lecture Notes Electrical Wiring System Components
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
PDF
composite construction of structures.pdf
PPTX
Internet of Things (IOT) - A guide to understanding
PDF
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
PDF
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
PDF
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
PPTX
Geodesy 1.pptx...............................................
PPTX
Strings in CPP - Strings in C++ are sequences of characters used to store and...
DOCX
573137875-Attendance-Management-System-original
PDF
Operating System & Kernel Study Guide-1 - converted.pdf
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
Model Code of Practice - Construction Work - 21102022 .pdf
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
PPT on Performance Review to get promotions
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
Lesson 3_Tessellation.pptx finite Mathematics
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
UNIT-1 - COAL BASED THERMAL POWER PLANTS
Lecture Notes Electrical Wiring System Components
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
composite construction of structures.pdf
Internet of Things (IOT) - A guide to understanding
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
Geodesy 1.pptx...............................................
Strings in CPP - Strings in C++ are sequences of characters used to store and...
573137875-Attendance-Management-System-original
Operating System & Kernel Study Guide-1 - converted.pdf

Web application I have always dreamt of (Lviv)