When It All Began
J2EE leaped onto the scene in 1999. Considering the historical context of this product release you find that the cost of creating, deploying, and maintaining PC-based client/server software was becoming increasingly expensive. Partly in response to this, interest in the Internet and Web applications had been gathering steam for several years.
Java had been released only 4 years earlier and continued to demonstrate value in cross-platform development. The technology, the APIs beyond Java, continued to grow at a dizzying pace; therein lay part of the problem. The development of APIs was not always coordinated, and Java users would often need to struggle to cobble together a set of APIs that would perform the task required.
With its excellent crossplatform support, Java was already becoming the language of choice for middleware development, but there were issues in the development of middleware. Most notably, there was no consistent standard for development of services among vendors. Additionally, each vendor provided a different set of services for the applications. Clearly, there was an opportunity to impose some order on the industry.
By 1998, the Java programming language and its constituent set of APIs was burgeoning. Java had moved far beyond its original goal of being used as an embedded language. But the proliferation of APIs and standards was becoming difficult to work with. Developers found it increasingly difficult to find what they needed, and version release schedules between dependent APIs were not always synchronized.
The Java development team at Sun Microsystems saw several opportunities in this environment. First, the conglomeration of APIs and standards that was Java could be organized in such a way that it would be easier for developers to build applications, specifically Web applications, with Java. Second, Java could make more inroads in middleware development with a clear and consistent middleware standard. And third, the various Java technologies that were currently being used to develop Web applications could be combined with the middleware APIs to create a convenient package for developers to use to create applications. The result of this repackaging and branding exercise was the J2EE released in December 1999.
As part of this effort, the Java Development Kit (JDK) was split into three parts: Java 2 Standard Edition (J2SE), Java 2 Enterprise Edition (J2EE), and the Java 2 Micro Edition (J2ME). This split provided a convenient repackaging of the myriad APIs that was Java. What is confusing in relation to J2EE is that the J2SE is part of the J2EE release. In order to run the J2EE, the J2SE must be installed. To avoid this confusion, you should think of the J2SE as the core Java installation component. J2EE is built on the J2SE.
J2EE includes a number of APIs; the most important and the ones most frequently associated with J2EE are EJBs (Enterprise JavaBeans), JSPs, and servlets. The EJB specification preceded the J2EE specification and was no doubt partly intended to improve the portability of these components.