Adam Bien's Weblog

9 Reasons Why Java EE 6 Will Save Real Money - Or How To Convince Your Management

  1. Prototyping: in general (Enterprise) Java projects start with evaluation which frameworks to use. This can take from few hours, to several months (although these times are hopefully over). Java EE 6 comes with “one stop shopping”. You can download Java EE 6 with the IDE (eclipse, netbeans, jdeveloper and commercial IntelliJ) and just start hacking. You can install and develop a prototype in minutes. The package sizes are small e.g. NetBeans 6.8 with Glassfish v3, Derby and all required plugins take 146 MB Eclipse with Glassfish / Java EE tooling is also small: 147 MB for MacOS X.
  2. Development: Java EE 6 implementations are lightweight. Glassfish comes with 30 MB for the Web Profile, or 75 MB (everything). Deployment takes only few milliseconds. Incremental deployment is supported out-of-the-box. You only have to save the file. The other application servers (JBoss, Caucho's Resin, Geronimo / openEJB) are expected to be similarly lightweight. Because the majority of the libraries and frameworks is already located on the server, you have only to deploy the application code. The deployment archive contains mainly your application code and is so surprisingly small - a kilobyte deployment is possible.
  3. Production: Glassfish, JBoss, Geronimo and probably the others do follow the opensource model. You can decide whether you need commercial support or not. You can start small - then scale.
  4. Licensing: Java EE 5/6 applications are surprisingly portable - there are no more vendor specific deployment descriptors required. You can easily port your application from one server to another. It is actually the matter of copying of an WAR / EAR archive from one directory to another. We actually did it in the past to ensure application server independence. These are is possible since Java EE 5 and so 2006. Knowing that, you have a good position to be able to get better offers for licensing / support. You are not dependent on a particular vendor and can pick the most interesting one.
  5. Training / Knowledge: You “only” have to learn Java EE 6 and so its API - the start is easy. This knowledge is generic and can be applied to any application server out there. If you know Java EE 5 already - you will love Java EE 6 :-).
  6. Portability: ancient legacy J2EE 1.X projects are easy to migrate to Java EE 5/6. Java EE 6 containers still have to support the old programming model. Porting your application is fun - it mainly consists of deleting superfluous artifacts. J2EE 1.X and Java EE 6 components can even peacefully coexist.
  7. Adoption: Java EE 6 was developed by the JCP. It wasn’t developed by Sun, rather than by the community and all major players. IBM, Oracle, SAP, Red Hat, Google, even Spring Source / VMWare (Rod Johnson) contributed an API. The Java EE 6 spec is expected to be adopted as well as Java EE 5. There were 14 different certified Java EE 5 servers.
  8. Freedom of Choice / Investment Protection: because Java EE 6 was developed by the community (BEA, IBM, SAP, Oracle Sun, SpringSource etc.), and not a single vendor it will remain stable. It is impossible for one entity to change / break the spec, an API. This is a huge advantage of Java / Java EE over other languages. You can still run your ancient J2EE 1.4 apps on your shiny Java EE 5/6 server without any modifications.
  9. Risk Mitigation / Plan B: Java EE APIs are not intrusive and heavily based on annotations and Convention over Configuration / Dependency Injection principles. In case for some reason Java EE 6 will not work for you - the migration to the alternatives like Spring is relatively easy. Both components models (EJBs, CDI / Spring) are rather similar.


NEW workshop: HTML 5 and JavaScript Essentials, Three days in April 2017: from Java EE 7 Architectures over Microservices to Performance, Troubleshooting and Monitoring
On demand workshops: Java EE 7: Bootstrap, Effective, Testing and Microservices available for streaming.

Newsletter: airhacks.news

A book about rethinking Java EE Patterns

Comments:

Hi Adam,

Again a great article on the benefits of Java EE!

I already used (an will continue to use) your arguments in discussion on "Lightweigth Tomcat" vs. "Heavyweight Java EE Application Servers".

It's very annoying, that a lot of developers still think that Java EE is heavy and slow and they start to build a their applications on Tomcat with the need of many other libraries like Spring, Axis etc.
They end up with a WAR file of 30 MB! If they used Java EE the EAR will only be 300 KB because all the stuff needed is already in place.

There is a lot of work in propagating Java EE as a lightweight and protable (for developers) and investment protecting (for management) solution.

Greetings from Switzerland
Simon

Posted by Simon Martinelli on December 16, 2009 at 11:01 AM CET #

Hi Simon,

thanks! My arguments are simple: start with plain Java SE, then Java EE in case it doesn't work include the alternatives. I would call that: "the least trouble approach". It isn't as sexy as including tons of frameworks at the beginning - but it works very well in the practice.

Just be KISS! Even Caucho is going to implement EJB,

thanks!,

adam

Posted by Adam Bien on December 16, 2009 at 12:07 PM CET #

Tomcat takes only a few seconds to startup, glassfish on the other hand, is a big fat bloated beastie. How can you make the claim that glassfish is 'lightweight' with a straight face?

I will continue to use tomcat since developing on it saves me lots of time and it is fast and simple. Glassfish is anything but.

Posted by devops on December 16, 2009 at 04:43 PM CET #

@devops
Have you tried GF v3? It starts in seconds as well and is, compared with Tomcat, a fully featured Java EE 6 app server.

Posted by Simon Martinelli on December 16, 2009 at 05:23 PM CET #

@Devops,

thanks for your constructive feedback :-). Glassfish v3 is similarly fast to Tomcat. Btw. you don't have to restart it very often - incremental deployment just works.

Nothing against Tomcat, but sometimes plain, old web containers are not the easiest choice: http://www.adam-bien.com/roller/abien/entry/jsf_jpa_ejb_bloat

thanks!,

adam

Posted by Adam Bien on December 16, 2009 at 05:32 PM CET #

@devops Glassfish_v3 starts up (and shuts down) faster than the typical 'Tomcat + Hibernate + Spring + Quartz' combo.

And I really don't think that anyone can tell the difference between the Glassfish Web Profile startup and Tomcat.

Posted by BryanY on December 16, 2009 at 06:50 PM CET #

Fantastic list. I completely agree with the points.
Another great thing of JEE 6 is that there will be frameworks on top like Seam 3 that will make it even easier and more powerful.

Posted by Claus Hausberger on December 16, 2009 at 07:07 PM CET #

Hi Adam,

at paragraph 8) i unfortunately disagree with you.

The community you mentioned doesn't exist any more.

BEA + SUN + Oracle = Oracle

And since Shai Agassi left SAP, they move more and more back to ABAP.
Since Oracle, their biggest competitor, acquired SUN they won't wait what will happen to Java in the future.

IBM is left a a member in the community, but for them Oracle is a more dangerous competitor then SUN was and now Oracle owns Java.

And Spring is to small to have important role in the big game of large enterprise IT.

So if i was an CIO who has to make a decision for an enterprise software tool which will last for the next 20 years, i wouldn't be sure if I still had the freedom of choice with Java like I had before Oracle acquired SUN.

Posted by RB on December 16, 2009 at 10:32 PM CET #

@RB,

btw. Shai Agassi is doing even cooler stuff, than Java EE right now.

SAP is an active member of JCP - and the EGs were very active (e.g. in JPA). IBM WebSphere is still widely adopted. JBoss and Glassfish are perfect alternatives. Jonas, Geronimo and Caucho is a niche - but you have a lot of choice.

In IT it is hardly possible to plan for 20 years.

I'm glad, that you only disagree with 8.,

thanks!,

adam

Posted by Adam Bien on December 16, 2009 at 10:57 PM CET #

At least you can plan to pay for enterprise support for java se 5 from 2010 to 2019.;-)

And for example a lot SAP App Server out there are still on 1.4.2.

http://java.sun.com/products/archive/eol.policy.html

Posted by rb on December 17, 2009 at 12:54 AM CET #

@Adam Shai Agassi defenetly does cooler stuff right now. I wish I could be part of it actually!

Besides good list, however I miss a bit the argument here: What are you comparing JEE6 against? Save real money in compare to doing what?

Posted by Ben on December 22, 2009 at 03:28 PM CET #

@Ben,

comparing it to use any other collection of Java frameworks. Java EE 6 is just KISS - the simplest possible solution - which is independent of a single vendor on top.

Posted by Adam Bien on December 22, 2009 at 05:33 PM CET #

Hello,
good article but it lacks the most important point: it is the most easy to mantain platform.
PHP, ROR and others may be faster to develop but the resulting code is much difficult to understand. With JEE 6 you can write complex applications with few lines of code that are very clear (thanks to java annotations and JSF XML).
It is incredibly easy to understand the basic model of a JEE 6 application:
Managed beans: controllers
JSF pages: views
EJB: business logic
JPA: data access

Pau

Posted by Pau Carré Cardona on December 28, 2009 at 11:05 PM CET #

@Pau

You are skipping the interesting part: What is the Model?

I had endless discussions about this topic ...

Posted by Jonas on December 29, 2009 at 04:48 PM CET #

check this you are going to like this : http://codeheaven.wordpress.com/5-reasons-to-learn-java/?preview=true&preview_id=223&preview_nonce=b718cc187e

Posted by steve on January 20, 2014 at 09:55 PM CET #

Post a Comment:
  • HTML Syntax: NOT allowed
realworldpatterns.com
Online Workshops
...the last 150 posts
...the last 10 comments
License