What is Java EE
Java Platform, Enterprise Edition (JavaEE), formerly known as J2EE, is a popular platform developed by Sun Microsystems for server programming using Java programming language. The platform offers an API and runtime environment to develop and run the entire gamut of enterprise software, including web and network services and other applications. It offers a design based on modular components.
What is TomEE
Apache Tomcat is an open source web server that implements Sun Microsystem’s Java Servlet and the JavaServer Pages (JSP) specifications, offering developers an open-source “pure Java HTTP web server environment” to run Java code.
Apache TomEE is the Java Enterprise Edition version of Apache Tomcat, adding Java enterprise projects such as Apache OpenEJB, Apache OpenWebBeans, Apache OpenJPA, Apache MyFaces, OpenWebBeans, BeanVal, and TransactionManager to the basic Tomcat flavor. TomEE+ adds ActiveMQ and CXF to the mix.
TomEE offers a simple and lightweight JavaEE container, making for a good alternative to the original Java EE platform. Oracle Corporation has certified TomEE as compatible implementation of the Java EE 6 Web Profile.
Java EE vs. Tom EE
David Blevins, the founder of the Apache TomEE project, a Java EE and open source veteran, believes that Tom EE is not directly pitted against JavaEE, and that TomEE is actually a common middle ground for developers caught between the legacy Java EE platform and the open source Tomcat platform.
Many developers, not happy with JavaEE, migrated to Tomcat, and developed TomEE to cater to their requirements. But side-by-side, Java EE also upgraded itself to do away with much of its deficiencies. Java EE 6 has gained a huge traction among developers, and Java EE 7 is poised to do even better, as it would be the first Java EE version undergoing open development.
The major criticisms levied against Java EE is that it caters to the present and does not allow for future requirements. It is also seen as slow and bloated, without the capability to cope with large enterprise applications efficiently.
TomEE thrives on speed and nimbleness.
Apache built on Tomcat and developed TomEE as a complete implementation of the Web Profile. Doing so, it did not deviate significantly from the basic Tomcat architecture, and ensured that starup was fast, and memory consumption low.
In TomEE, it is possible to better integrate third-party libraries that scan the Web app for annotated components. The scanning process opens each jar in the Web app, reads each class file, parses it, and checks for any annotations. This spares the developer from doing this same process afresh at each startup. For this reason alone, TomEE apps start faster.
The game changer, however, may just be the cloud. With enterprises migrating more and more applications to the cloud, traditional server based platforms are anyway becoming obsolete. However, PaaS provider Jelastic and ActiveState are adding support to TomEE, as one of its many options. This is primarily due to TomEE’s capability of working out of the box with tools such as Eclipse, NetBeans, Intellij, JRebel, NewRelic and YourKit.
TomEE will therefore have a life in the cloud, something that Java EE cannot hope for, as of now.