The first thing to know about Java EE is that it’s no longer called Java EE.
“Java EE is under new management,” says Mike Milinkovich, executive director of the Eclipse Foundation.
A bit of a quick history lesson, courtesy of Milinkovich: Oracle contributed Java EE to Eclipse in 2017, and it became an open source project. Subsequently, the name was changed to Jakarta EE. Today, the project is overseen by the Jakarta EE Working Group, which Milinkovich describes as a who’s who of Java industry leaders, such as Fujitsu, IBM, Oracle, Payara, Red Hat, and Tomitribe.
Jakarta EE can be viewed as a bridge between old and new, in the sense that it’s a means of adopting and working with modern technologies without dumping your existing application and infrastructure investments – a nonstarter for most companies, not to mention IT pros who’ve invested significant time and energy in their existing skill sets but want to continue to adapt to newer tools and languages.
“Jakarta EE provides your enterprise with two strategic advantages: a path forward for your existing investments in the Java EE application code running your business, and a bright future for the skilled Java developers on your staff,” Milinkovich says.
“Jakarta EE and Java EE before it, form the backbone of many critical enterprise systems today,” says Mark Little, VP middleware engineering for Red Hat. “Its stability, maturity of specifications, and the reliability of implementations based upon it, are at the core of its value proposition today and in the future.”
History 101 complete, let’s dig into what Jakarta EE is, what it’s used for, and why it matters.
Java EE and Jakarta EE, explained
“Jakarta EE is a commercial-grade platform that offers a set of components and APIs for the development of Java business applications,” Milinkovich says. “Jakarta EE extends the popular Java SE with specifications for developing and running scalable, reliable, and secure enterprise applications.”
The API piece of that definition is fundamental: Jakarta EE is in the simplest terms a collection of APIs and a framework for creating new ones. As such, it’s particularly relevant to backend or server-side development.
“Jakarta EE is a mature Java-based framework that is primarily used to develop web services, or APIs,” says Dana Wyatt, PhD, a senior instructor of software development at DevelopIntelligence.
If you need to explain this to a non-technical colleague, you might simply say: It’s a way of enabling one application to talk to another.
“Jakarta EE is used in a distributed computing environment when you need one application to communicate with another,” Wyatt says. “The applications don’t have to be written in the same programming language, and they don’t have to run on the same computer.”
What is Jakarta EE used for?
That was both a definition and also part of Jakarta EE’s relevance: Distributed computing environments – think hybrid cloud, multi-cloud, containers, and microservices – are increasingly common. We’ll get back to why this matters in a moment, but first let’s consider a good generic example relevant to many businesses: How the backends of any web store or ordering system communicate with each other.
“Your ordering system needs to communicate with your credit authorization system when a user purchases an item online with a credit card,” Wyatt says. “But perhaps your customer service support application also needs to communicate with your credit authorization system to accept phone payments or even issue credits.”
Jakarta EE can be the phone line that effectively puts these different applications into conversation. Consider another practical example: a hotel chain that has its own on-premises infrastructure but also wants to expose certain data to external partners.
“A hotel chain might provide an API written using Jakarta EE that, one, provides access to hotel locations and room types; two, returns information about availability and pricing based on specific requests; and, three, accepts reservation requests,” Wyatt says. “Instead of hosting this API on their own computers, the hotel hosts it on [a public cloud]. The hotel chain then recruits online travel sites such as Priceline, Expedia, and Kayak to use the API and present the hotel’s rooms as online users inquire about travel.”
Why is Jakarta EE important?
Again, distributed IT environments are more common than ever, especially in larger enterprises. Companies need the ability to enable applications to connect and communicate regardless of their location, language, or other characteristics.
They also need to strike the balance between their existing investments and forward-looking goals. That’s why Jakarta EE specs have been evolving for a cloud-native world, Milinkovich says, while also recognizing some basic business and IT realities, such as: Most of the Fortune 500 has Java in their codebase. There may be newer, cooler languages, but Java remains a mainstay.
Jakarta EE creates a framework for developing and supporting both cloud-native architectures such as microservices as well as traditional monolithic applications, as well as connecting with modern software paradigms like containers, microservices, and orchestration, according to Milinkovich.
“This flexibility means organizations can evolve existing corporate and commercial applications in a way that makes the most of existing technology and infrastructure investments,” Milinkovich says. “At the same time, they can develop new, cloud-native applications that increase agility, consistency, and automation.”
One of the ways those latter benefits can be attained is in a reduction of development and operational overhead moving from a monolithic to a more modular system.
“Java EE helps avoid writing extra code and significantly reduce the cost and complexity of developing, deploying, and managing modular server-side applications,” says Vladimir Sinkevich, head of Java development at ScienceSoft.
Sinkevich also points out that while Jakarta EE (formerly known as Java EE) is more common in large enterprises and governments, it’s not actually limited to those spheres.
“While Java EE is mostly used in applications for large corporations and government entities, the word ‘enterprise’ in its name stands rather for ‘large, scalable, reliable, and secure web applications’ and Java EE can also be helpful for individual developers and small organizations involved in the development of such applications,” Sinkevich says.
The hybrid cloud connection
The Eclipse Foundation’s Milinkovich, meanwhile, reiterates the openness and vendor-neutrality of the Jakarta EE platform. Both are crucial to hybrid cloud and increasingly distributed systems. They’re also important recognitions of the modern IT reality that going cloud-native – unless you’re a startup building everything from scratch – doesn’t actually entail dumping the rest of your IT portfolio. That’s where those APIs come back in.
“The beauty of APIs is they allow communication between heterogeneous, or disparate, systems using a standard message-based communication protocol,” Wyatt says. “In lay terms, this means that an application written on an older platform like COBOL can communicate with APIs written for completely different, newer platforms. Neither application cares about how the other works, only that the APIs accept and return data as expected.”
When you hear words like “modern” or “hybrid” in IT circles these days, this should be the connotation – if not the dictionary definition.
Why else is this technology important? Jakarta EE should also help enterprises with delivering faster innovation, thanks to a quicker release cadence for updates (There were only 8 releases in the last 20 years for Java EE.) It also lowers the barriers to participation in the community: The Eclipse Foundation provides a transparent process for iteration and innovation, with a diverse ecosystem of vendors, system integrators, and community members and no single entity with an elevated role.
[ How can automation free up more staff time for innovation? Get the free eBook: Managing IT with Automation. ]