Deployment architecture

The Genero Report Writer solution can be implemented using a distributed or non-distributed architecture, on one machine or across multiple machines.

There are three deployment architectures:
  • non-distributed mode
  • local distributed mode
  • remote distributed mode
This topic helps you to choose the appropriate architecture for handling your reporting needs.

Non-Distributed or Distributed mode

The first decision you will have to make is whether to use non-distributed or distributed mode.
  • In non-distributed mode, each report starts a new Java Virtual Machine (JVM).
  • In distributed mode, the report engine is started as a daemon in listen mode (using greportwriter –l). Report applications process reports by connecting to this daemon.

Non-distributed mode is the default, and does not require additional configuration. It is good for development.

Distributed mode offers faster processing for short documents. The startup time of the JVM that is incurred for every report in regular mode can exceed the processing time of the report, causing the overall performance to be poor. In distributed mode, the JVM is started and initialized only once. For short documents, the improvement in performance can be dramatic.

In Java applications, distributed mode prevents conflicts between different versions of open source libraries. You can use the greclient.jar library, which doesn't require any external libraries. This prevents the version conflicts that can occur with popular open source libraries such as Apache POI, JFreeChart, or iText.

Important:

In production, always choose distributed mode to avoid slow start for short documents and extra resource consumption.

Local Distributed or Remote Distributed mode

With distributed mode, you have the option to be on a single machine (local) or on different machines (remote).

In local distributed mode, the application and the Genero Report Engine are started on the same machine. The advantages of a local distributed architecture:
  • Local distributed mode provides for faster processing times.
  • Local distributed mode allows you to manage your system on one machine.
In remote distributed mode, the application and the Genero Report Engine are started on different machines. The advantages of a remote distributed architecture:
  • Your IT policy might require the GRE and application sit on separate machines.
  • Remote distributed mode allows for improved scalability. Formatting graphical reports is CPU intensive, and CPU is usually expensive on a server optimized for IO (such as servers running the running report application and/or the database). Remote distributed mode allows offloading the report processing to a cheaper machine, such as a standard PC.
  • The required fonts might sit on a specific machine. Specifically, a dedicated report formatting PC could be installed with Windows™, which has the additional advantage of handling fonts and printers in a user-friendly way.