You are here: Chapter 10: Database Administration > System Architecture

System Architecture

FootPrints is a web-based application that resides on a web-server machine.  It can be accessed from anywhere from within an Intranet or the Internet via TCP/IP using a standard web browser.

The FootPrints application consists of CGI (Common Gateway Interface) scripts that drive the application. The CGI scripts contain Perl, HTML, and JavaScript, and display forms, images, help files, and user and Workspace information.  Data is retrieved though SQL calls to the underlying relational database.

The FootPrints application directory contains the following sub-directories:

The following files are used to keep track of local definitions:

How FootPrints Works  

TheFootPrints system architecture is fully web-based.  The FootPrints application resides on a web server, such as Windows/IIS or Linux/Apache.  It can reside either within an Intranet or outside of the firewall for remote access.  Data is kept in a relational database, such as Microsoft SQL Server, MySQL, or Oracle.

The application is written in Perl, JavaScript, and C++.  The user interface is generated via CGI scripts that output HTML to the user’s web browser, while the database is queried via C++ programs that contain the proper SQL commands.  Customizations to the interface are performed through easy-to-use web administration tools with no programming needed.

Users are authenticated through the application to the domain, if using Windows, LDAP, or UNIX authentication, or directly to FootPrints, if using the native authentication method. The user is then authenticated within FootPrints to the proper Role, giving the user the correct preferences and permissions within the system.

Each time the user performs an action in FootPrints, for example, clicking GO to submit a new Issue, a CGI script is run on the server. This script invokes a database program to update the database and then creates new HTML dynamically to display to the user, and so on. All CGI scripts, data gathering, and display creation are done on the web server only.

Other functions: