As we celebrate the last 20 years of enterprise Java, it is important to look back at the platform's history to better understand where it came from and how we arrived where we are today.
Enterprise Java emerged during a pivotal time in the history of enterprise computing. When Java 2 Platform, Enterprise Edition (J2EE) 1.2 was introduced in December 1999, it not only marked the birth of enterprise Java, but also signaled an important shift in how organizations were thinking about the web.
Roughly five years earlier, in May 1995, the Java programming language had been publicly released. The language was originally developed to address obstacles faced by a stealth innovation team at Sun Microsystems building the Star7, an interactive handheld home entertainment controller; however, after a tepid response from the television industry, the team instead set its sights on the internet.
Web browsers were making the web more accessible to users, and when the Java language was first announced by Sun, it came with a crucial endorsement: Netscape, one of the leaders in the nascent Web browser market at the time, announced in 1995 that it would include support for Java in its namesake browser.
Reflecting on this development in an interview with Red Hat, John R. Rymer, vice president and principal analyst at Forrester Research, Inc. said, “When Netscape endorsed it [the Java language], that was huge.” Indeed, it was the push that the language needed to find its place in the world of application development. “That was when it really started to take off, and it never looked back,” noted Rymer.
Into the enterprise
By 1999, Java had developed a loyal following among application developers and Sun saw an opportunity to extend the language for traditional enterprise workloads. With the launch of J2EE, and another technology that was gaining prominence—the application server—enterprises now had a platform that was designed to meet their needs with capabilities for things like security, scalability and reliability.
That same year, a new project was started called Enterprise Java Bean Open Source Software (EJB-OSS), which implemented the EJB application programming interface (API) in J2EE. The moniker was eventually shortened to JBoss and the project sprouted a company by the same name that was focused on the development of an open source application server.
When J2EE 1.3 was released in 2001, it delivered on the “write once, run anywhere” vision of the Java language by enabling portability across the various Java application servers on the market, which by this time included a number of open source and proprietary offerings. “We had a lot of discussions with clients at that point about porting their Java code from one app server to another,” recalls Rymer. Organizations were going back and forth between competing application server technologies as they sought to optimize their architectures. “[J2EE] 1.3 was really effective. Portability was very high, and people were happy about that. It was really very helpful.”
Following the 1.3 release of J2EE, the platform entered several years of quiet stability until 2006 when Sun renamed it to Java Enterprise Edition (EE) and launched Java EE 5. That same year, Red Hat acquired JBoss.
“At the time, the enterprise Java platform was primarily designed by a committee of experts trying to anticipate what would be needed in enterprise development,” recalls Andrew Binstock, a long-time market analyst and the current editor of Java Magazine. Beyond the new name, Binstock also noted an important shift in the technology taking shape. “It wasn't until Java EE 5 and EE 6 some years later that they were able to get the model less cumbersome,” noting that where things had become unwieldy, users were finding ways around it. “For smaller companies, rather than adopt the whole Java EE stack, they would use a small container and just select a number of services in Java EE and use that as their model going forward.”
Java and open source
While the source code for the Java language was always available, it was not formally open sourced until later in 2006 when Sun released its core Java technologies under the GNU General Public License 2.0 (GPLv2). This was broadly seen as an important step in the evolution of Java toward a more collaborative, community-driven future.
RedMonk’s principal analyst and co-founder Stephen O'Grady views the release of Java as open source software as one of the most pivotal moments in its history. “This was a complicated and often contentious process, but one that ultimately opened Java up and gave it new life as a platform where organizations otherwise at odds with each other could continue to work together on a core platform above which they would compete.”
Not long after this, Sun was acquired by Oracle, where Java EE continued in relative calm for a number of years. During this time, the release cadence of the enterprise Java platform slowed. After Java EE 6 was released in 2009, four years passed before Java EE 7 was released in 2013, and by 2016 Java EE 8 appeared to be on a similar trajectory.
It was also during this period that enterprise IT started to pivot toward lighter and more modular application approaches. This was a shift from the traditional, monolithic applications for which Java EE had long been a fundamental enabler. With organizations beginning to favor application architectures like microservices, Java EE needed to evolve.
To help meet this need, members of the enterprise Java community came together in 2016 and released the MicroProfile project, now part of the Eclipse Foundation, which aims to optimize enterprise Java for microservices architecture. Binstock sees a parallel with the smaller companies that years before found value in implementing a selection of Java EE services instead of adopting the entire stack. “You see the same kind of orientation toward 'smaller' and 'lighter' in MicroProfile today. How to make [Java] EE technologies cloud-native, how to make them small enough that you can bundle them into microservices. That has been the direction—from an omnibus kind of solution when it came out to one that is lighter and more carefully honed to the needs of software developers and enterprises.”
In 2017, Oracle announced the donation of Java EE to the Eclipse Foundation, where it could more closely align with the ongoing work taking place around MicroProfile and innovation on the platform can happen faster and more collaboratively.
As part of the Eclipse Foundation, the platform took on a new name, becoming Jakarta EE in 2018, and today boasts a vibrant community that continues to look to the future.
Follow along this week as we continue to explore the past two decades of Java in the enterprise and what the future holds, right here on the Red Hat blog.
Editor's note: The opinions expressed in this blog are those of the individuals who contributed to it and not those of their respective employers.