JGAS overview

The Genero Application Server for Java (JGAS) is an implementation of the Genero Application Server (GAS) that is written in Java. It can be used for the development, testing, and deployment of applications.

This implementation performs the same functions as the GAS. Where it differs noticeably from the standard GAS is in its architecture and in terms of how it implements configuration and logging. In configuration it offers more flexibility with element order and schema validation, and it enhances the logging mechanism. See JGAS configuration file.

Using the JGAS

The JGAS is packaged with the FGLGWS product, and the fglgar tool, included in the FGLGWS installation, provides you with access to the JGAS and a means to package and deploy applications.
Note: For more information on using fglgar, see the fglgar topic in the Genero Business Development Language User Guide.
The fglgar war command provides the ability to package a Genero archive (gar) file with your applications, and to include the JGAS implementation, the Genero Browser Client, and any additional files in a Java Web Archive (war) file. The war can be deployed in any existing Java Enterprise Edition container such as Apache Tomcat®, Jetty, or Glassfish and the applications can be run in a browser.

JGAS Architecture

The JGAS uses Java and is designed to run on the J2EE servlet. It differs from the standard GAS in the way it uses Web server resources such as sockets and memory in the handling of HTTP communication between the DVM and the front-end.

In the standard GAS when an application is started (for example by launching it from the browser or from the Genero Desktop Client), the communication passes through the following three stages of processing:
  1. The Web server receives an HTTP request that is forwarded to the GAS dispatcher.
  2. The GAS dispatcher forwards it to the proxy using sockets.
  3. The proxy sends the data to the DVM and handles any child VMs that may be started.

In the JGAS architecture those processes are similar except that proxies are not used between the DVM and the dispatcher. HTTP requests are processed internally and one socket per DVM is all that is required to maintain the communication.

JGAS offers the following advantages:
  • Less resources are consumed overall as less system processing is required.

  • There are no proxy processes running, and therefore no sockets are required between the proxy and the dispatcher.

  • Asynchronous management of requests allows the J2EE container to recycle worker threads instead of keeping them locked waiting for a response.

JGAS as standalone

The JGAS can not run standalone but a standalone feature similar to that of the standard GAS standalone dispatcher httpdispatch, is provided by the jgas-standalone.jar included in the war. This jar provides the function of a J2EE server when the war file is run with the fglgar run command, allowing you to deploy and run application files without having to install and administer a complete J2EE server.

This feature offers an enhancement for testing applications that allows you to access the JGAS configuration and deployed applications via a user interface. See Deploy and run standalone.