Overview of System Architecture

CGI Advantage has a standards-based open architecture, which employs Java Platform, Enterprise Edition (JEE) as its foundation.  It has an n-tier architecture, which is flexible and scalable for various loads and needs.  

There are many possible configurations of these logical tiers. These logical tiers do not necessarily imply separate physical servers. For example, it is technically possible to host the application server and database servers (and even the Web server) on the same physical server, although it may not be preferred in the production environment due to various operational, procedural, performance, and security reasons. The application is scalable vertically (more than one application server on the same physical server, to leverage the available CPU and memory) as well as horizontally (application servers spread across multiple physical servers), which provides tremendous flexibility in handling any load. Furthermore, for each tier, there are various deployment options in terms of hardware and Operating Systems platforms. The following topics describe some of these deployment options.

Client TierClient Tier

CGI Advantage uses a thin HTML client that requires only a Web browser. A component based rich user interface (UI) makes the application more intuitive to the end users, as it is consistent with basic Web application navigation and usage paradigms. It also eliminates the software distribution issues associated with the traditional client server applications and reduces the hardware requirements on the client tier. These factors combine to make the application more accessible to all users.

Web Server TierWeb Server Tier

The HTTP requests originating from end users’ browsers are handled first by the Web server(s). This traffic between the client and Web server may be encrypted and secured through the use of Secure Sockets Layer (SSL). While the Web server “understands” the HTTP and HTTPS protocols, it does not contain any application knowledge. Rather, it forwards the request to the servlet pointed to by the URL. The servlet, in turn, communicates to the application server, which contains the application business rules. The servlet can be configured in many ways: it can reside on the same machine as the Web server, or alternatively, it can reside on the application server machine.

Application Logic TierApplication Logic Tier

The application server tier contains the core functionality of the application. IBM’s WebSphere / Red Hat’s JBoss provides the “container” services for a J2EE based architecture of CGI Advantage. WebSphere /JBoss is responsible for application services such as failover, connection pooling, thread pooling, session management, and others, which provide the foundation for a transactional application like CGI Advantage. The application-level services can be broadly classified into the following logical sub-tiers:

Depending on the load on the system, multiple logical application servers can be configured to run on one or more physical servers. For example, it may be possible to run four “copies” of the application server on two physical servers.  The “copies” are capable of load balancing and failover.

Database TierDatabase Tier

The database server hosts an RDBMS.  The application server retrieves data from and updates data in the database through the connectors, which utilize the JDBC standard.

Please refer to the CGI Advantage Container Deployment Guide for the complete list of certified platforms (hardware, operating system, and other system software) for the various tiers.

N-tier Deployment EnvironmentN-tier Deployment Environment

While planning for a production environment, additional configuration issues become very important. For example, in a Web-based application, firewalls may need to be planned for in order to have a more secure environment. Although every implementation of CGI Advantage is different and it is not possible to recommend a “universal” production environment, the following figure depicts a sample production configuration to illustrate some of the issues related to Web-based application deployment. It shows a possible need for different configurations for internet and intranet users.