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 any 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 one of the supported JMX protocols to remote Quartz scheduler instances and perform all management and monitoring operations.
The QuartzDesk Web Application exposes multiple JAX-WS SOAP endpoints of web-services through which you can access most of the functionality that is available in the GUI.
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:
The installation of QuartzDesk JVM Agent is described in the QuartzDesk JVM Agent Installation and Upgrade Guide.
This component is 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.
Please note that the QuartzDesk Public API Library is available in 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. The first figure depicts the deployment scenario for the QuartzDesk Standard and Enterprise edition and it refers to all three QuartzDesk platform 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 refers to 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.
The decision on whether to use a shared quartzdesk_agent database, or multiple dedicated, or partially shared databases depends on the number of active jobs and triggers running on individual JVMs, the job execution frequency and other factors. As a general rule of thumb, a single quartzdesk_agent database can easily handle hundreds of active jobs and triggers and hundreds of job executions per day. There are no hard rules and if you are unsure about the sizing, please contact us to discuss your details.