Page 393
In this chapter
Page 394
The Internet burst into the consciousness of most people within the past 18 to 24 months. The Internet was seized upon by the media and by computer users as something new, unlike any computing innovation that preceded it.
The Internet has also added some new standards to the computing environment. With the nearly universal addressing scheme offered by the Internet and TCP/IP, the standard mail and other protocols offered by the Internet services, and an easy, cross-platform hypertext display standard in HTML, the Internet provides a way to integrate dissimilar computers across the world.
Oracle has been a leader in providing database technology for the past 15 years, and because the Internet is a gigantic network for exchanging data, it makes sense that Oracle products should play a role in the retrieval and dissemination of data over the Internet and through Internet-based applications.
The Oracle Web Application Server is the basis for Oracle's use of the Internet. However, it is also much more than just a way to use the Internet. The Oracle Web Application Server is a key piece of the Network Computing Architecture (NCA), which is, in turn, the blueprint for the implementation of a completely distributed application system. Internet-based applications are a type of distributed application, so the Oracle Web Application Server is ideally suited for Web-based applications as well. The rest of this chapter introduces you, at a high level, to the Oracle Web Application Server. The rest of this book will help you create systems that are implemented over the Internet or an intranet and use the services of the Oracle Web Application Server.
The Network Computing Architecture is a framework that can be used to create open, distributed application systems. To understand the NCA, it helps to take a look at the evolution of the computing infrastructure over the past few years.
Ten years ago, virtually all applications were deployed on a single monolithic machine, with users connected to the machine by dumb terminals. Different software components running on the machine were used to implement systems, such as database management systems and application programs, but all the components communicated with each other through shared resources, such as disk and memory, or, at worst, over an internal communication bus.
As personal computers (PCs) began to enter the computing landscape, the client/server model began to be used for application systems. Client/server computing featured personal computers as clients, with enough power to support the graphical user interfaces demanded by users, as well as the execution of application logic, connected over a local area network to a database server. It took several years for developers and the tools that they used to appropriately
Page 395
support the client/server architecture and reduce the impact of the bottlenecks imposed by limited network bandwidth.
The client/server computing architecture was widely favored by users, but the distribution of computing resources over a wide number of client machines created its own set of problems for application developers and system administrators. Whenever applications changed, new client components had to be distributed to all client machines, and the growing complexity of application logic began to strain the limits of the computing power on PC clients. To address both of these issues, a three-tier computing model evolved, where application logic was run on a server machine that acted as an intermediary between the client and the database server.
The NCA has been introduced to extend the three-tier model into a multitier model. The NCA provides a standard interface that can be used by a variety of cartridges, which are self- contained units of functionality that can act as client components, application logic components, or data components. The Network Computing Architecture also includes a standardized communication protocol, so that the different cartridges in an NCA application can communicate with each other. The basic structure of the Network Computing Architecture is illustrated in Figure 16.1.
FIG. 16.1
The Network Computing
Architecture provides
a framework for
distributed computing.
The NCA is also ideally suited for Internet applications. A Web client, in the form of a browser, can use the NCA framework to interact with other application components. The same components can be used as cartridges within a more traditional client/server architecture, or even with dumb terminals connected to a monolithic computer. By clearly defining the ways that client, logic, and data cartridges interact, the NCA allows virtually unlimited flexibility in creating and deploying application systems.
The Oracle Web Application Server plays a key role in the Network Computing Architecture and acts as the focal point for the management of cartridge services and the communication between cartridges.
Page 396
The illustration of the Network Computing Architecture presents a conceptual view of the NCA. The Oracle Web Application Server provides some of the substance that is needed to make the Network Computing Architecture a reality.
A cartridge is a code module which interacts with the Oracle Web Application Server through a standard interface. The basic function of the Oracle Web Application Server in the NCA is to manage the interaction of cartridges. To accomplish this, the Oracle Web Application Server manages the creation of application logic cartridges, the communication between client cartridges and application logic cartridges, and the inter-cartridge communication between application logic cartridges. The Oracle Web Application Server also provides basic services to cartridges that are necessary to implement robust applications using the Network Computing Architecture.
The Oracle Web Application Server is composed of the following three basic components:
This layered architecture gives Oracle Web Application Server two basic advantages. First of all, it allows each component to be designed to best address the needs of its particular function, instead of trying to handle all of the tasks of a server. For instance, the Web Listener must be ready to receive all HTTP messages, so it should be a small application to be as responsive as possible. Web Request Broker, on the other hand, will potentially have to handle many different types of requests, so it will have to be able to manage multiple tasks, requiring a more robust application.
The Oracle Web Application Server can support multiple instances of individual cartridges, which makes applications that use these cartridges highly scalable. This scalability is enhanced by the ability to add additional resources where you need them, without affecting the rest of the components. For instance, you can have multiple listeners to handle high volume traffic, or spawn additional cartridge instances if a particular cartridge's functionality is heavily taxed.
The second advantage comes from having a well-defined application program interface between the different components. This interface makes Oracle Web Application Server an open system, to which you can add your own custom components to create your system. For instance, you can substitute some other HTTP listener for Oracle Web Listener and still use the other components of the Oracle Web Application Server. Even more importantly, the open architecture of Oracle Web Request Broker allows you to write your own cartridges, to support any development environment, and to deliver any type of functionality you need in your Web applications.