The J2EE platform is for the development of enterprise-level systems, with an enterprise system defined as an information system that supports the various business processes of an organization.
This definition caters to an extremely broad spectrum of applications and encompasses systems as large and diverse as payroll, customer billing, stock management, human resources, point-of-sale, and decision support systems, to name but a few.
Developing systems at this enterprise level presents software engineers with some very real challenges that go beyond the traditional difficulties associated with standalone shrink-wrapped software.
Here are some of the main concerns a developer must consider when designing and building enterprise-level software:
Security is a high priority for all organizations, and security requirements consequently permeate all levels of the system. Virtually all corporate bodies have security policies in place that are mandatory across all applications.
The operational facets of an enterprise system can encompass a wide range of requirements. Aspects such as high availability, reliability, and scalability are all prerequisites for enterprise solutions.
The transaction is a fundamental element of any business-oriented application. Many of today's database vendors have long offered support for transactions. However, for the enterprise system, the boundaries of a transaction are not constrained to the database. Rather, true global transactions can involve many databases and disparate information systems. This presents very real challenges when attempting to maintain transaction integrity across all systems in an IT infrastructure.
Information held by most enterprise-level systems can be of a sensitive nature. Specifically, information relating to individuals is usually covered by government legislation that serves to protect the individual's privacy. Any system holding such data is therefore bound to comply with these overriding laws.
Auditing is closely linked with security and legal requirements. Company watchdogs monitor system access as well as the use of potentially sensitive corporate data. As such, most organizations have in place a standard set of auditing requirements for all systems.
Quality is now a business watchword, and quality standards permeate all levels of successful and highly structured organizations. IT systems are not excluded from these standards, and any vendor engaged in the development of bespoke software is expected to comply with whatever standards the customer believes are relevant.
A company's IT landscape is often cluttered with enterprise resources that must be carefully negotiated. Data warehouses, integration brokers, and content management systems are but a few examples of the strategic resources with which new applications are often required to interoperate.
The J2EE platform was designed to help overcome these challenges, thereby simplifying the development of enterprise systems. This next section summarizes the benefits the J2EE platform provides the enterprise software engineer.