Published at DZone with permission of its author, adam bien.
- 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.
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.
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.
- 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.
- 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 :-).
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
- 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.
- 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
- 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.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)