What Do I Need to Know About Database Application Architecture?
The authors, along with many Oracle technologists, have experienced technology shifts from mainframe to mini-computer, from mini-computer to microcomputer client/server, and from microcomputer client/server (two-tier) to microcomputer multi-tier, as well as its recent variation of web browser clients and web servers. Each shift requires a retooling of decision processes for architectures, system design methodologies, and best practices for development. However, there is a common thread in the architectures that has appeared throughout the years, and it is worth reviewing this common aspect to help understand J2EE architectures.
The main actions in a database system are interacting with the data—inputting and outputting it—and managing the data—storing and serving requests for input and output. Data is kept and managed by a specific program—in the case of relational systems, a relational database management system (RDBMS). Users or systems requiring access to the data use another program, the application (or interface). The application program recognizes and interprets user input to be sent to the RDBMS and also receives data and message results from the RDBMS. A communications network transmits data and messages between the RDBMS and the user access layer. J2EE is no different in these basic characteristics. The difference in technologies through the years has been where (on which computer) the various programs are located and how communication between the computers is provided, as described in the following examples.
For the sake of clarity in the examples in this section, the client computers with which the user interacts are described and diagrammed in a singular way, but most enterprise database application systems are set up to serve more than one user simultaneously.
Mainframe In a mainframe architecture (shown in Figure 1-a), the application program and the database management program often reside on a single computer — the mainframe. All processing occurs on that computer. The user interacts with the application program using a dumb terminal session. No communication lines are required other than to connect the dumb terminal to the mainframe.
Client/Server Client/server (two-tier) architecture divides the processing, as shown in Figure 1-b. The application program resides on a client’s desktop computer (often a microcomputer). The database management program resides on a centralized server computer, and a communications network connects the database server with all client computers. Application processing occurs on the client computer; data management processing occurs on the database server.
Multi-Tier A multi-tier architecture places program components on different computers, each of which is a tier, that is, a location for a specific type of processing. Figure 1-c shows a sample multi-tier architecture. This architecture is also called n-tier, because, unlike client/server, which always runs programs on only two tiers (client and server), multi-tier systems can operate on any number of computers. In the example shown in Figure 1-c, the client computer runs part of an application program that communicates with application services running on an application server.
The application services consist of parts of the application that can be shared among programs and among client users—for example, code to manage and maintain connections to the database server, as well as data-caching software that offloads processing from the database for frequently accessed data.
The database server operates the same type of database management system as in the other architectures. The only difference is that the database server communicates with the application server (middle tier) programs, not directly with the client computer.
Oracle Forms Services (Oracle Forms 9i and later versions running on the Web) is an example of a multi-tier architecture. The client runs inside a web browser; the application code runs mainly on the application server (but partially on the client); and the application server communicates with the database server.
If these concepts are not new, you already have a basis for understanding J2EE architectures. J2EE offers the same types of architectures, variations on familiar architectures, and new architectures. Before discussing how J2EE architectures differ from those just described, a discussion of the J2EE basics is in order.
NOTE Multi-tier environments often separate the web server, which handles requests from web clients and returns results to those clients, and the application server, which runs the application code.