The Progress Application Server (PAS) is a platform that provides Web server support for Progress applications. Progress applications are packaged as Web application archives (WAR files) and deployed to the Java Servlet Container of a running instance of PAS. Client access to a PAS server is through HTTP/HTTPS protocols. Clients include (but are not limited to) mobile apps and browser-based web apps.
Apache Tomcat is a Web server that includes a Java servlet container for hosting Web applications. The Apache Tomcat that you can download from the Apache Software Foundation is tailored primarily as a development server for testing, validating and debugging Web applications. PAS is tailored primarily as a production server for deploying Progress web applications.
PAS tailors Apache Tomcat as a production server by replacing the default Tomcat ROOT Web application with a ROOT application that:
Returns no content if a client accesses the root URL of the server, so that information about server configuration and deployed Web applications is not accessible
Adds an implementation of the Spring Security framework to support user authentication and authorization
Removes functionality, like remote administration, that could present a security risk
However, a key feature of PAS is that you can easily create and run more than one instance of the core server, and configure the instances separately to function either in a development or in a production environment. Each instance of the core PAS shares the executables and libraries of a common Tomcat server, but each instance is a separate process, running in a separate JVM, with its own configuration (ports, security framework, Web applications, etc.).
The following figure illustrates a common core PAS that supports a development server for testing, and a production server for publishing Progress Web applications.
Figure 1. The Core PAS with development and production instances
The figure shows that:
Both the production instance and the development instance start up by invoking the same Tomcat runtime.
Although it is possible to run the PAS core as a Web server, it usually does not run in a deployment with multiple instances. As shown here, the core is merely the source for the Tomcat executables and libraries that are common to all instances. (Among other advantages, this arrangement allows you to upgrade the core PAS without having to redeploy all of your Web applications.)
Each instance is a unique process, running in its own JVM.
Each instance has its own configuration, including uniquely defined ports.
Each instance supports its own set of Web applications.
Note that each instance has a ROOT Web application tailored to its use as either a development or as a production server. Each ROOT application is also tailored to support whatever combination of Progress products that you intend to deploy. Also notice that the Development server has a manager.war application that is missing from the Production server. The manager.war application supports a variety of management and configuration utilities that you would not want to implement in a production sever.
Note: The ability to create multiple instances derived from a common core server is a powerful feature of the PAS architecture. Not only can you create and configure multiple server types, you can also create multiple servers to support load balancing. In addition, instances allow you to update the core Tomcat server without having to update or re-deploy Web applications.