The last few years have been extraordinary with respect to the changing landscape of enterprise software development. At the center of this change is the Java 2 Platform, Enterprise Edition(J2EE), which provides a unified platform for developing distributed, server-centric applications. The widespread adoption of the strategic, enabling technologies of the J2EE have provided the development community with open standards on which to build service-based architectures for the enterprise.
At the same time, learning J2EE technologies is too often confused with learning to design with J2EE technologies. Many existing Java books do an excellent job of explaining specific aspects of the technology, but are not always clear on how to apply it.
A J2EE architect needs to understand more than the relevant APIs, including
- What are the best practices?
- What are the bad practices?
- What are the common recurring problems and proven solutions to these problems?
- How is code refactored from a less optimal scenario, or bad practice, to a better one typically described by a pattern?
Good designs are discovered from experience. When these designs are communicated as patterns using a standard pattern template,they become a powerful mechanism for communication exchange and reuse, and can be leveraged to improve the way we design and build software. What Is J2EE?
J2EE is a platform for developing distributed enterprise software applications. Since the inception of the Java language, it has undergone tremendous adoption and growth. More and more technologies have become part of the Java platform, and new APIs and standards have been developed to address various needs. Eventually, Sun and a group of industry leaders, under the auspices of the open Java Community Process (JCP), unified all these enterprise-related standards and APIs into the J2EE Platform.
The J2EE Platform offers numerous advantages to the enterprise:
- J2EE establishes standards for areas of enterprise computing needs such as database connectivity, enterprise business components, message-oriented middleware (MOM), Web-related components, communication protocols, and interoperability.
- J2EE promotes best-of-breed implementations based on open standards, protecting technological investment.
- J2EE provides a standard platform for building software components that are portable across vendor implementations, avoiding vendor lock-in.
- J2EE increases time-to-market since much of the infrastructure and plumbing is provided by the vendors' products that are implemented according to the standard J2EE specification. IT organizations can now get out of the middleware business and concentrate on building applications for their business.
- J2EE increases programmer productivity, since Java programmers can relatively easily learn J2EE technologies based on the Java language. All enterprise software development can be accomplished under the J2EE platform, using Java as the programming language.
- J2EE promotes interoperability within existing heterogenous environments.