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:
The Business Logic Server (BLS) contains all the business logic associated with the CGI Advantage objects and processes. It consists of Java classes and Enterprise Java Beans (EJBs) generated from the business rules specified in the design studio, custom Java code, and all the supporting class libraries.
The Presentation Logic Server (PLS) is responsible for providing the presentation services required for client framework. Just like the business logic server, this is composed of the generated Java classes, EJBs, custom code, and supporting class libraries.
The client framework is responsible for interacting with the PLS. It constructs and renders the user interface and controls its behavior.
The Connectors provide the interface to the data and help to keep the business logic independent of the data access mechanism. In other words, connectors ensure that how the data is accessed is independent of the business logic. Although the connectors are most commonly used to interface with Relational Database Management Systems (RDBMS), they can also be used to interface CGI Advantage with external systems or other data stores.
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.