- Standalone Enterprise Applications
- Application Server-Based Enterprise Applications
- Application Server Architecture Provider Roles
- Application Server Components
- Application Server Client Interfaces
- Application Server Client Implementations
- Enterprise Application Configuration and Deployment
- Application Service Management
Application Service Management
In addition to making it easy for enterprise application components to be built and for clients to connect to these components, application servers make it easy for enterprise application components to tap various enterprise services. Service mechanisms include data connectivity, communications enabling, security, availability, enterprise application integration, and more. Some of these services are transparently provided using declarative configuration parameters in a deployment descriptor file. Other services have their APIs exposed to the enterprise application component by the application server. Regardless of how the component accesses these services, the application server often creates, allocates, destroys, and generally manages the life cycle of all underlying service-related objects.
J2EE-based servers are no different. For example, security and transaction management are provided as services to the EJB (as well as Web components) in a declarative manner using configurable deployment descriptor properties. Access to such services can also be provided programmatically via exposed APIs. JDBC is another example in which the J2EE container/server will manage the creation and destruction of connections and the allocation of connections to J2EE components from a JDBC connection pool. J2EE components can then utilize the JDBC connection and statement APIs as usual.
To close this article, here's a brief list of services commonly managed by application servers, with specific focus on EJB-based servers and how such service management is provided:
Distributed communications servicesApplication servers transparently provide distributed communication support for server-side components.
State managementApplication servers often handle the resolution of particular client requests to the state managed for that client on the server side.
Database connectivityApplication servers often provide handles to pooled database connections via an API and also might provide object-relational data-mapping services.
Configuration servicesApplication servers also provide ways to define properties of an application that can be read from configuration files.
SecuritySecurity in application servers can be specified via configuration parameters in an XML file (that is, declaratively) and programmatically.
AvailabilityAvailability of service in application servers is provided primarily as a function of proper thread management, resource management, transaction management, and state management.
Enterprise application integration and connectivityMany application server products realize the importance not only of connecting to back-end enterprise data, but also of connecting to back-end enterprise business logic.