|Jakarta EE 10 - A New Era For Java On The Cloud|
|Written by Nikos Vaggalis|
|Friday, 23 September 2022|
After a lot of iterations and false starts in terms of dates, Jakarta EE 10 is finally here and primarily focused on the Cloud and microservices.
Jakarta EE finds itself mostly used in an Enterprise setting. That property is embodied in its name after all - EE for Enterprise Edition. Born in 2017 out of Java EE when Oracle contributed it to the Eclipse Foundation, it was subsequently relaunched as Jakarta EE as well as open-sourced. What it essentially represents, is Java's ability of modernizing, but at the same time keeping ties with the past - a quality highly sought after by those enterprise environments.
At its core Jakarta EE is a both a framework and a collection of APIs mainly for developing Web services as well as enabling interoperability between distributed systems. Its versatility lies in that, while you can use it in building microservices, you can also use it in developing monoliths.
In fact, Jakarta EE underpins many such infrastructure technologies:
Apache Tomcat implements four Jakarta EE specifications — Jakarta Servlet, Jakarta Standard Tag Library, Jakarta WebSocket, and Jakarta Authentication.
Spring Boot embeds Apache Tomcat, Eclipse Jetty, or Undertow as a runtime.
Eclipse Jetty implements the Jakarta Servlet, Jakarta Server Pages, and Jakarta WebSocket specifications.
MicroProfile implements four Jakarta EE specifications – Jakarta RESTful Web Services, Jakarta Contexts and Dependency Injection, Jakarta JSON Binding, and Jakarta JSON Processing.
Jakarta EE version 10 is going to be by far the most important update to enterprise Java in the last decade. Last year's Eclipse Foundation's 2021 Jakarta EE Survey revealed the trend of Jakarta departing from the old model of monolithic applications and transitioning to the Cloud, meaning that it facilitates enterprises taking that step forward without having to dump their existing infrastructure. Version 10 turns that into reality, bringing Java up to par with the cloud native era of microservices and containers.
A profile is a configuration of the Jakarta EE platform targeted at a specific class of applications. Until now Jakarta EE had two profiles - Full and Web. The Web Profile comprises of a set of specifications focused on typical Web Applications involving components such as REST, Servlet, JSON, JPA, Security, Faces. The Full profile comprises of a set of specifications focused on WebServices, Messaging, EJB and more.
For the purposes of the Cloud, a new profile is now being introduced, the Core Profile. It is a profile specifically aimed at lightweight runtimes that are optimized for running cloud-native Java Microservices with a focus on enabling implementations that make use of ahead-of-time compilation.
AOT for Java sprung out of the underlying technology that was already there on Android. It's a technique which determines what the application is going to need at compile time in order to avoid reflection completely thus keeping memory requirements down and performance up by doing more things at compile time than at runtime.
For use of AOT beyond Android the catalyst was the emergence of GraalVM. It's the runtime that compiles Java bytecode into native self-contained executables, under which it can create native images which can reduce the start up time to miliseconds up to 100x faster than when running on the JVM. Of course, this sacrifices platform portability since the image made is machine specific.
Quarkus is such a Microservices AOT enabler framework which adheres to the Eclipse MicroProfile specifications of
Context and Dependency
all compatible with Jakarta, which means that its users can immediately feel at home when implementing Quarkus-based applications.
Talking about specs, Jakarta EE 10 is the first release updating the core specifications since Java EE 8. As such the following specs get all updated:
Activation 2. 1 (minor release)
The next thing required for the standard to take off is to wait for the vendors to upgrade. Saying that there are several compatible implementations already:
So what do Jakarta, Spring, Quarkus, the Cloud and Microservices have in common? Java. The old horse is being fully rejuvenated.
or email your comment to: firstname.lastname@example.org
|Last Updated ( Friday, 23 September 2022 )|