This is an era of cutting edge technologies to gain competitive advantage by quickly developing and deploying applications that provide accurate business services. Today's areas of concerns in this technology era are:
- Response Time
The Java 2 Platform, Enterprise Edition (J2EE) addresses these areas of concerns very effectively.
The Java 2 Platform, Enterprise Edition (J2EE) defines the standard for developing multi-tier enterprise applications. J2EE simplifies enterprise applications by basing them on standardized and modular components, by providing a complete set of services to those components, and by handling many details of application behavior automatically, without complex programming. Java and the J2EE platform are now established as standards for building Web and Enterprise applications.
The J2EE architecture consists of the multi-tier architecture as follows:
1. Presentation Layer
This layer provides means to interact with the system to users. This layer enables support for multiple access channels to the underlying services.
- Separates service consumption from service orchestration and service provisioning
- Isolates presentation technology specific details from other layers.
Presentation layer communicate with both Business Process Layer as well as Services Layer. These invocations will use Web Services.
2. Business Process Layer
This layer will orchestrate the business processes by invoking services on the end systems to realize this process. The services are arranged in a flow as modeled in the business process and achieve the desired business function.
Process Layer will communicate with Service layer using SCA binding.
3. Service Layer
This layer consists of core business services, which are reusable and can be invoked from various business processes. These services may be used as is, or as a composite service.
- Separates service provisioning from service orchestration and service consuming
- Provides separation of concern with respect to complexity, reusability, frequency of change, granularity and visibility of services
4. Resource Layer
This layer provides resources to access Application Data. These include Adapters and Web service integration with external systems and other J2EE services created within the application.
- Database (JDBC) adapters will be used to access the database using JDBC. This approach can be used for performance intensive DB operations, where using the DAO and ORM layer would have a negative impact on performance
- File Adapters can be used for reading/writing Files wherever an automated Files based interface is required
- Web Service integration for interfacing with external systems.
5. QoS layer
This layer provides the capabilities required to monitor, manage, and maintain QoS such as security, performance, and availability. The QoS layer facilitates the monitoring and management of QoS requirements for services and business processes. It enables the governance of services and applications.
The main constituents of this layer are given below:
- Infrastructure for enforcement of security policies
- Monitoring tools, agents and consoles to manage the performance and availability of services, processes and applications
The above layering strategy satisfies the following key QoS requirement:
- The ability to incrementally change the system; e.g. by switching service providers, extending services, modifying service providers and consumers. All of these can be done safely, due to well-controlled coupling
- The ability to create multiple instances of service, providing more computing capabilities at run time based on the load on the application
The J2EE platform, built on the Java programming language and Java technologies, is the application architecture that is best suited for an enterprise-distributed environment. The J2EE platform is a standard that brings the following benefits to IT organizations, application developers, and product vendors:
- Products can run on wide range of system platforms that supports the J2EE platform.
- IT industries can benefit from the advantages of portable component technology.
- IT developers can focus on supporting business process requirements rather than building in-house application infrastructure. The application servers handle the complex issues of multithreading, synchronization, transactions, resource allocation, and life-cycle management.
- IT organizations can take advantage of the best available products built on a standard platform. They can choose among products and select the most suitable and cost-effective development products, deployment products, and deployment platforms based on their requirements.
- Development teams can build new applications and systems more rapidly. This decreases time-to-market and reduces the cost of development.
- A standard development platform for distributed computing ensures that robust applications are built on a proven platform.
- The J2EE platform provides a clear, logical, and physical partitioning of applications into various tiers, thus naturally addressing multi-tier application requirements.