What is Jakarta EE?

Photo of Priya Khaira-Hanks by Priya Khaira-Hanks

Java is the world’s third most used programming language, and the basis of some of the world’s biggest software projects.

If you are running a large, enterprise application - supporting commercial projects - Java alone may not be enough. You need to use it with Jakarta EE, formerly called Java EE.

What Is Jakarta EE?

Jakarta EEis a set of software components, APIs, for developing specifically enterpriseJava applications. These components are often referred to as specifications.

Jakarta EE specifications extend Java SE - the standard edition Java programming language - with ways to perform the functions particulary useful for an enterprise application. 

Jakarta EE logo

How does Jakarta EE Help You With Enterprise Applications? 

An enterprise application project needs to be scalable, secure and handle a lot of information. Jakarta EE specifications therefore provide ways to perform the actions you might need to for this kind of project, such as generating web pages, operating with a database, and balancing your processing efficiently. 

The specifications help you because they mean you don’t have to code everything yourself.

What Does a Jakarta EE Specification Consist Of? 

Each Jakarta EE specification consists of: a document defining the purpose of the API and how it’s used; the API JAR, the actual interfaces to be coded against as a developer; and Technology Compatibility Kit (TCK), the test suite that is used to determine whether independent implementations of the API meet its requirements.

What Is A Jakarta EE Runtime? 

The Jakarta EE specifications are designed to work with a Jakarta EE compatible runtime.

Image illustrating Jakarta EE modelA runtime is a program which runs your application and handles the HTTP requests that connect it to its users on the internet.

Larger runtimes have additional features to make developing applications easier and faster, so you don’t need to deal with the low-level stuff (Security, configuration, logging, metrics) manually. Jakarta EE is designed to work with these larger runtimes. Together with a runtime - the compute infrastructure in the diagram to the left - Jakarta EE will handle many infrastructural and operational tasks, allowing you to concentrate on business logic.

What Is Java EE?

Java EE is what Jakarta EE was formerly known as, when it was created by Sun Microsystems and then developed further byOracle.Java EE no longer exists

Development and progression of the specifications have now been taken on by open-source

software organisation theEclipse Foundation, but they did not have the legal rights to the javax namespace. Therefore, the transition has now been made to Jakarta EE.

How Does Jakarta EE Make Life Easier? 

The specifications avoid you having to write lots of extra code yourself.

As a result, you allow your developers to focus on the business logic of your application, rather than infrastructural tasks.

This doesn’t just save time: your application is now actually separated from those infrastructural tasks in the runtime. Complexity is hidden, your actual developer experience will be better.

If you choose a managed runtime, you can also access benefits like high availability, clustering capabilities and the ability to store data from one node and retrieve it from another node. All these qualities will make a more efficient system for your users.

Just A Few Of The Key Specifications (There Are Many!):

  • Jakarta RESTful Web Services - support in web transfer over HTTP, according to the Representational State Transfer (REST) architectural pattern. It is often used to connect the front-end (user facing) with the back-end (connection to databases, data processing).
  • Jakarta Context and Dependency Injection (CDI) - provides features that allow for dependency injection - an object in your code receiving other objects it depends on. With it, you can define beans (objects that can be used with others) that provide services or keep user data, and define the way they will work, their lifecycle etc.
  • Jakarta Persistence - specifications about the mapping between your database tables and Java classes.
  • Jakarta Concurrency- allows you to retain context - for example security context - between threads.

What Is MicroProfile? 

MicroProfile is a set of specifications that build on the Jakarta EE specifications, and are designed to optimise Enterprise Java for a microservices environment. We will be following up with another blog on what exactly Eclipse MicroProfile is.

MicroProfile logo

Learn more about Jakarta EE:

This blog is written to coincide with our ‘Dismiss the Myths: Get to Know the Real Jakarta EE’ eBook which provides a more comprehensive 57-page guide; covering the growth of Jakarta EE, the move from J2EE, the transition to Eclipse in more detail, Jakarta EE Core, Full and Web Profile, and more.

Read here:Dismiss the Myths Get To Know Jakarta EE Guide

Comments