3. „People who live in the present often wind up
exploiting the present to an extent that it starts
removing the possibility of having a future.”
[Alan Kay, UCLA/MIT/Atari/Turing award]
4. THE PROBLEM? THINGS CHANGE
MAKING IT HARD TO STAY ON TARGET
WITHIN 10+ YEARS. EVEN IN AGILE
PROMOTED EVOLVING
ARCHITECTURES. EVEN IF YOU DECIDE
„AS LATE AS POSSIBLE”.
5. Goals of this talk
Define sustainability and reasons for even
proposing this approach
View the problem from multiple angles and
put it in plain sight
Propose an approach for long term Java
architectures
11. WE ARE GOING TO DO THIS
BOTTOM UP SO PLEASE BEAR
WITH US
12. “Software architecture is the collection of decisions
affecting the system’s quality attributes; which have
global effects and are hardest to change. Software
architecture provides the frame within which the
design (code) is built.”
Arnon Rotem-Gal-Oz in Agile Architecture
13. FACT: JAVA 7 WAS MADE AVAILABLE
IN JULY 2011. AND MADE DEAD IN
APRIL 2015.
LET’S START WITH THE
RUNTIME. JVM? WHICH
VERSION?
14. FACT: JAVA IS THE NEW COBOL. IT WILL STICK LIKE SOMETHING
YOU PICKED UP ON A BACHELOR’S PARTY
UP THE LADDER IS THE
LANGUAGE. THERE’S MORE
THAN 50 ON THE JVM.
FACT: TIOBE INDEX, JOB MARKET INDEX, COLLEGE EDUCATION
– ALL PREFER JAVA TO OTHER JVM LANGUAGES
15. FACT: THERE IS THE EE AND THE SE
APPROACH. EACH WILL LIVE TO TELL, BUT
WHAT ABOUT THE IMPLICATIONS TO THE
OVERALL SOLUTION?
WHICH JAVA EDITION WILL HELP ME
STAY ON TARGET FOR THE NEXT 10+
YEARS?
16. FACT: THERE’S THOUSANDS OF FRAMEWORKS
AND MODULES AROUND, WE’LL TRY TO GIVE
SOME GUIDANCE ON PICKING THE
SUSTAINABLE ONES.
LET’S BE HONEST, DEVELOPERS DO
NOT DEVELOP REALLY THAT MUCH.
THEY USE FRAMEWORKS AND
MODULES.
17. IS THERE
AN ESCAPE
HATCH?
TRACK
RECORD OF
BACKWARD
COMPATIBLITY
IS THERE AN
ECOSYSTEM
AROUND IT?
IS IT EASY FOR
A JUNIOR TO
LEARN?
COMMUNITY
SIZE &
ENGAGEMENT
DO I REALLY
NEED IT?
18. FACT: WEB IS THE STANDARD, BUT WITHOUT
STANDARDISATION. KEEP IT SIMPLE,
BOOTSTRAP SHOULD BE ENOUGH.
USER INTERFACE APPROACH? WEB,
NATIVE DESKTOP, MOBILE, HYBRID
DESKTOP, HYBRID MOBILE, … IT
USED TO BE SO SIMPLE
20. APPLICATION MIDDLEWARE
Embedded HTTP serverArchitecture based on BPM or similar
Architecture based on the app server over
JVM
Do you NEED to use the features of the app
server?
Can you afford scaling the server up?
JUST THE APP SERVER ADVANCED MIDDLEWARE NO MIDDLEWARE
Can you afford scaling the server up?
23. TAKEWAYS BY PROBLEM AREA
Use the Microservices architecture
(where applicable)
Use Java as the default languageUse the latest JVM
Go light on the APP middleware
Be wary of frontend frameworks
CHANGING
ENVIRONMENTS
MAINTAINING
KNOWLEDGE
BUILDING SCALABILITY
IN
Do not build your own frameworks,
unless you are Google
Owner: Matija
It depends on your deveopment time, align it with your processes. If you are going to be developing the solution for more than a year, than all the bugs in the „just out” JVM version will have been fixed by your production date. As a rule of thumb, for long term architectures, start immediatelly with the latest JVM, even the ones in beta. JVM version affects performance tuning, garbage collection and even coding style. Four years is not a long time.
Owner: Roko
Owner: Roko
EE and Spring based frameworks are both long-term worthy. But, the EE approach requires an application server, which may or may not live up to its future glory? Since the EE architecture will use a lot of App serv features, will that affect its chance to be future proof?
EE ima manju zajednicu
Also, the EE way will mostly deny the possibility to implement microservices.
What will happen to Grails?