web application i have always dreamt of

37
Web-application I’ve always dreamt of @JEEConf 2015

Upload: victorcr

Post on 22-Jul-2015

541 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Web application I have always dreamt of

Web-applicationI’ve always dreamt of

@JEEConf

2015

Page 2: Web application I have always dreamt of

Victor Polischuk

Programming 26

Overall 32

Java 11

Web 11

Legacy 11

Professional 13

Has something to share

Page 3: Web application I have always dreamt of

Overview

http://zeroturnaround.com/rebellabs/top-4-java-web-frameworks-revealed-real-life-usage-data-of-spring-mvc-vaadin-gwt-and-

jsf/

Page 4: Web application I have always dreamt of

Prehistoric Era [...-1995]

• Static content only

• Interaction without server: Impossible

Unthinkable

• Server-side HTML adjustments

Page 5: Web application I have always dreamt of
Page 6: Web application I have always dreamt of

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

Page 7: Web application I have always dreamt of
Page 8: Web application I have always dreamt of

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

Page 9: Web application I have always dreamt of
Page 10: Web application I have always dreamt of

Modern Era [2010-...]

• Internet of Things

• Big Data

• Cloud Computing

• ???

Page 11: Web application I have always dreamt of

Business Needs

• Integration with anything:MobileMainframeCoffee 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

Page 12: Web application I have always dreamt of

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

Page 13: Web application I have always dreamt of

Idea

Page 14: Web application I have always dreamt of

Client

Page 15: Web application I have always dreamt of

Client

Page 16: Web application I have always dreamt of

Server

Page 17: Web application I have always dreamt of

Server

Page 18: Web application I have always dreamt of

Business Needs

• Integration with anything

• High availability

• Data is the TOP priority

• Client’s satisfaction

Page 19: Web application I have always dreamt of

Technical Needs

• Scalability

• Security

• Testability

• “Otherity”

Page 20: Web application I have always dreamt of

Scalability

• Server is just a bunch of endpoints

• Independent client

• StateClient needs it

Server doesn’t

• SLAWay to Nine-Nines

You do not want to lose clients, right?

Page 21: Web application I have always dreamt of

…We Design

Page 22: Web application I have always dreamt of

…We Imagine

Page 23: Web application I have always dreamt of

…We Build

Page 24: Web application I have always dreamt of

Security

• Do you need it on each request?

• Do you know how it works?

• Do you think it is secure?

Page 25: Web application I have always dreamt of

…Of Course

Page 26: Web application I have always dreamt of

…Safe JSF

Page 27: Web application I have always dreamt of

…Safe Cookies

Page 28: Web application I have always dreamt of

…Strong Password

Page 29: Web application I have always dreamt of

Testability

• Server side: Unit

Integration

Contract

[optional] Load & Performance

• Client side: Unit

Integration

Contract

[optional] Browser & Sanity

Page 30: Web application I have always dreamt of

…Client

Page 31: Web application I have always dreamt of

Responsibility

• Client:Responsive

User-friendly

Pretty

• Server:Scalable

Fail-proof

Redundant

Page 32: Web application I have always dreamt of

Traffic

• Reduce useless to none

• De-increase useful: Increase volume

Decrease size

Page 33: Web application I have always dreamt of

Optimization

• ClientCaching

Pre-fetching

Incremental updates

• Server: Caching

Pre-fetching

Incremental updates

Page 34: Web application I have always dreamt of

Encapsulation

• Both parties can have their own secrets

Page 35: Web application I have always dreamt of

Polygamy

• Is it moral if a client has many servers and vice versa?

Page 36: Web application I have always dreamt of

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

Page 37: Web application I have always dreamt of

Questions

• Thank you