Application Servers and Enterprise JavaBeans
- 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
- Conclusions
Standalone Enterprise Applications
Direct use of Java enterprise APIs and technologies has historically required an application architecture as depicted in Figure 1. Here we see a "standalone" enterprise application utilizing the APIs offered by a database connectivity solution (for example, JDBC), a distributed enterprise communications paradigm (for example, CORBA, RMI, and DCOM), a set of distributed communications services (for example, JNDI, JMS, and JTS), and an enterprise security assurance solution (for example, Java Security).
Figure 1 Standalone enterprise applications.
Java enterprise applications built using such services run in a standalone manner without the use of any container environment or enterprise application framework. These applications are just plain old Java applications that you are probably familiar with, and they operate using a JDK 1.1 or Java 2, Standard Edition (J2SE) type of environment along with separately packaged standard Java extension APIs and implementations. In fact, such standalone applications were often the only option available to enterprise programmers using Java before the birth of application server environments.
Standalone enterprise applications, however, can require a lot of coding effort to make them fully functional in a multiuser, heterogeneous, distributed, secure, and scalable enterprise environment. For example, use of distributed communications-enabling technologies often requires an understand of a special interface language, requires thread-safety design considerations, and requires an understanding of how to create scalable server implementations. Use of JDBC also requires careful consideration of which drivers to use and how to create connection resources. This article explains how application server frameworks provide an infrastructure for such services. Furthermore, I pursue this discussion in the context of EJB application servers.