The QuartzDesk platform consists of the following three downloadable components:
This is the main component whose installation is required for all QuartzDesk editions. The QuartzDesk Web Application is a standard Java web-application distributed as a WAR file that can be deployed to any light-weight Java servlet container (Tomcat, Jetty, etc.), or full-fledged Java application server (IBM WebSphere, RedHat JBoss, etc.). For the complete list of all currently supported servlet containers and application servers, please refer to our Supported Platforms list. The QuartzDesk Web Application provides the Graphical User Interface (GUI) for the QuartzDesk platform. Using this GUI, users can connect via the JMX protocol to remote Quartz scheduler instances and perform all management and monitoring operations.
The installation of the QuartzDesk Web Application component is described in the QuartzDesk Web-Application Installation and Upgrade Guide.
This component is required for the QuartzDesk Standard and Enterprise editions only. The QuartzDesk JVM Agent component works as a specialized JVM plugin that provides the following functionality:
In the future (QuartzDesk 2.0) the agent will provide a powerful job orchestration framework. Do you need to execute job B as soon as job A finishes executing? Only if job A finishes with a specific execution status (success, veto, error), or produces a specific result? Only if the job A's execution log contains a particular value? If you answered yes to any of these questions, then the job orchestration framework will be there for you!
We have lots of other ideas for the future agent functionality, but let us keep them secret for now.
The installation of the QuartzDesk JVM Agent component is described in the QuartzDesk JVM Agent Installation and Upgrade Guide.
This component is also required for the QuartzDesk Standard and Enterprise editions only. The QuartzDesk Public API Library works primarily as an interface between managed Quartz scheduler instances and the QuartzDesk JVM Agent. The library contains:
The QuartzDesk Public API Library is distributed as a single JAR file and Quartz scheduler enabled applications only need to include this library on their runtime classpath. For web applications this typically involves copying the library to the web application's WEB-INF\lib folder. There are no other installation steps required to use this library, just drop it on the classpath and that is it.
Starting with QuartzDesk 1.4.0, the QuartzDesk Public API Library component is published to the Maven Central repository so that developers can easily add it as a runtime dependency in their Maven-based projects.
The following figures describe deployment scenarios and roles of individual QuartzDesk platform components. There are two figures, the first one depicts the deployment scenario for the QuartzDesk Standard and Enterprise edition and its contains all three required components (QuartzDesk Web Application, QuartzDesk JVM Agent and QuartzDesk Public API Library). The second figure depicts the simplistic deployment model for the QuartzDesk Lite edition and it only contains the QuartzDesk Web Application component because the other two components are not used and supported for this feature-restricted edition.
At the bottom of both deployment scenarios you can see a JVM powering a Java servlet container / application server with deployed a QuartzDesk Web Application component. The QuartzDesk Web Application connects via JMX to two remote JVMs. The first JVM on the left is a JVM that powers a Java servlet container / application server with two deployed Quartz scheduler enabled applications. On the right, there is a JVM powering a standalone Quartz scheduler enabled application.
The two QuartzDesk JVM Agents in the above figure use dedicated quartzdesk_agent databases. Please note that this is not strictly required and it is usually preferable to use a shared quartzdesk_agent database for multiple QuartzDesk JVM Agents. Such a shared setup does not cause any data collisions provided that individual Quartz schedulers use unique MBean object names.