Through years of work have been trying many of Java frameworks which provides different level of abstractions on both server and client-side. Pure Servlet+JSP, JSF, GWT, Struts, Spring MVC, Vaadin, Play!, DWR, you name it. Sometimes it felt good, sometimes not, and with each year number of “good” applications reduced to the critical minimum. Later I tried to bring all the good points I had ever seen together to create “a perfect being” and after years of struggling I feel that I have reached the goal. Let me share it…
11. 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
20. 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
37. Polygamy
• Is it moral if a client has many servers and vice versa?
PainSoftware
38. 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