Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
As in the case of object-oriented programming, not all software architectures will be web-centric. With the explosion of the public Internet, corporate intranets and extranets, however, web-centric software is becoming more and more universal. This changes not only the way you design software, but also some of the very basic infrastructure requirements as well. Here are some of the infrastructure components needed for a typical web-centric application:
Database server. A web-centric application will typically access one or more corporate databases. Unlike a two-tiered client-server application, however, a web-centric application is less likely to access a database directly. More commonly, a web-centric application would access some sort of middle-tier application server containing the business rules of the application. The middle-tier application would then communicate with the database server on behalf of the web-centric client. There are many advantages to such a multi-tiered approach, including greater application scalability, security, and flexibility.
Application servers. In a web-centric architecture, application servers implement the business logic of the application. In many cases, this is programmed using the Java language. From a Java program, the Java Database Connectivity (JDBC) API is most often used to connect back to the central database. Specialized application servers may offer services such as DBMS data caching or transactions. A single business function is often broken down into components that execute across many application servers.
Web servers. Web servers are used to store and distribute both Java applications and web pages containing text and graphics. Many advanced applications will generate web pages dynamically to provide a customized look and feel.
Caching proxy servers. These servers, while not explicitly part of the application, are typically located strategically across the network to cut down on network bandwidth and provide faster access times to web-based data and applications.
Reverse proxy servers. A reverse proxy server is typically used o provide remote users secure access over the Internet back to their corporate Intranet.
Web clients. Until recently, a web client meant either Netscape's Communicator (or Navigator) browser or Microsoft's Internet Explorer browser. Today, a web client could still be one of these browsers, or it could be any of the following:
An HTML rendering JavaBean component in your application
An applet viewer built into a Java Development Kit (JDK)
A Java application
A collection of functions built directly into the operating system