Puneet Varma (Editor)

JobScheduler

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Development status
  
Active

Developer(s)
  
Software- und Organisations-Service GmbH

Initial release
  
2005; 12 years ago (2005)

Stable release
  
1.10.6 / November 4, 2016; 4 months ago (2016-11-04)

Written in
  
C++, Java, Scala, JavaScript

Operating system
  
Master: Linux, Windows; Agent: any platform

The JobScheduler is an open-source computer application for enterprise-level scheduling and process automation. It is used to launch executable files and shell scripts and to automatically run database procedures. The JobScheduler stores status and historical information in a backend database management system.

Contents

All features of the JobScheduler can be used under the GPL license. A commercial license is available for users seeking enterprise-level support and services.

Key functions

  • The JobScheduler can start executable files, shell scripts and database procedures.
  • Job starts can be triggered by events such as calendar events, monitoring of incoming files, other job scheduling events (forward dependencies) and API events initiated by external applications.
  • History and Development

    The JobScheduler has been developed by the SOS GmbH with code contributed by Joacim Zschimmer. Development of the JobScheduler as an independent product was begun in 2005 and it was released under the open source GPL 2 license in the same year. 64-bit versions of the JobScheduler were released in 2013 and the Universal Agent in September 2015

    Notability

    The SOS GmbH and the JobScheduler were recognized in 2012 with selection by the Gartner IT research and advisory company for their Magic Quadrant report on the world-wide workload automation market. The JobScheduler was described as "... attractive for organizations with an open-source tool adoption policy."

    Architecture

  • The JobScheduler can be configured to run as a standalone application.
  • The JobScheduler implements a master / agent architecture to run jobs on the master and on agents that are deployed to remote computers.
  • The JobScheduler master and agents can be configured to run in high availability and load balancing clusters with fixed priority scheduling and round-robin scheduling.
  • For deployment of jobs a JobScheduler supervisor can be used that synchronizes the configuration in a cluster.
  • Modes of operation

  • The JobScheduler runs unattended in the background as a Unix daemon or Windows service:
  • The JobScheduler can be used for batch processing to run a series of operations.
  • Near real-time processing can be initiated for individual operations. Near real-time triggers can be generated on the fly in response to external events such as the arrival of incoming files.
  • Monitoring and manual intervention can be carried out from the command line or with a built-in web-based graphical user interface.
  • Key features

  • Job chains, which can be seen as an assembly line on which multiple job nodes are passed. Each job in a job chain makes up a step in the processing of the chain.
  • Job dependencies, which can be based on the results of the execution of preceding job nodes in one or more job chains.
  • Cross-platform scheduling:
  • Universal agents to execute jobs directly on remote hosts across different operating systems,
  • Agentless scheduling to execute jobs across different operating systems.
  • Active/passive clusters for scalability & high-availability.
  • Recording of job history, frequency and log information in SQL databases.
  • Triggering of job starts by directory monitoring and file watching.
  • Built-in file transfer capabilities.
  • Scripting capabilities (Shell, JavaScript, PowerShell, etc.).
  • A monitoring interface for integration with system monitors such as Nagios, Zabbix, SCOM, etc.
  • A library of standard job templates covering operations such as file transfer and log rotation.
  • Graphical interfaces for job configuration, workflow control and access to the job logs and history.
  • Implementation

  • The JobScheduler master is written in C++ and Java, the agent has been developed with Scala and Java. Standard jobs distributed with the JobScheduler are implemented with Java.
  • Information about the individual objects processed by the JobScheduler - jobs, job chains, orders, schedules, etc. - are persistently stored in the form of XML files.
  • A database management system (DBMS) is used by the JobScheduler master to store job status, protocol and history information. Supported DBMSs are listed below.
  • JobScheduler Universal Agent

  • The Universal Agent has been introduced for carrying out complex scheduling tasks on remote computers and operating systems not otherwise supported by the JobScheduler master.
  • The agent runs on any operating system that supports a Java Virtual Machine.
  • The agent acquires its configuration and task execution requests from one or more JobScheduler master instances and does not require a DBMS.
  • Master / agent communication uses a single HTTP or HTTPS connection.
  • A number of JobScheduler agents can be configured in an agent cluster for redundancy and fail-over.
  • JobScheduler Master

    Operating systems:

  • Windows (32 & 64 bit)
  • Linux (32 & 64 bit)
  • Database management systems:

  • Oracle
  • SQL Server
  • DB2
  • MySQL
  • MariaDB
  • PostgreSQL
  • JobScheduler Universal Agent

    The Universal Agent can be run on any operating system that supports a Java Virtual Machine. A DBMS is not required.

    Licensing

    The JobScheduler can be used under the open source GPL 2.0 license. Users can also purchase commercial licenses. The JobScheduler Universal Agent can be used under a freeware license (under restriction) or commercial licenses.

    Support and Services

    Enterprise-level support and services are available for users with commercial licenses. Users operating JobScheduler under the open source license can obtain support from the JobScheduler Knowledge Base and the forum on SourceForge.

    References

    JobScheduler Wikipedia