Software:JobScheduler

From HandWiki
JobScheduler
Developer(s)Software- und Organisations-Service GmbH[1]
Initial release2005; 19 years ago (2005)[2]
Stable release
1.13.4[3] / June 10, 2020; 3 years ago (2020-06-10)
Written inC++, Java, Scala, JavaScript
Operating systemMaster: Linux, Windows; Agent: any platform
Available inEnglish
Typejob scheduling
LicenseGPL or closed source license[4]
Websitewww.sos-berlin.com/jobscheduler

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.

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.[5]
  • 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.[6]

History and Development

The JobScheduler has been developed by the SOS GmbH with code contributed by Joacim Zschimmer.[6] 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.[2] 64-bit versions of the JobScheduler were released in 2013 [7] and the Universal Agent in September 2015[8]

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 worldwide workload automation market. The JobScheduler was described as "... attractive for organizations with an open-source tool adoption policy."[9]

Description

Architecture

  • The JobScheduler can be configured to run as a standalone application.[10]
  • The JobScheduler implements a master / agent architecture to run jobs on the master and on agents that are deployed to remote computers.[10]
  • 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.[11]
  • For deployment of jobs a JobScheduler supervisor can be used that synchronizes the configuration in a cluster.[12]

Modes of operation

  • The JobScheduler runs unattended in the background as a Unix daemon or Windows service:[6]
    • 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.[13]
  • Monitoring and manual intervention can be carried out from the command line or with a built-in web-based graphical user interface.[14]

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.[15]
  • Job dependencies, which can be based on the results of the execution of preceding job nodes in one or more job chains.[16]
  • Cross-platform scheduling:[17]
    • Universal agents to execute jobs directly on remote hosts across different operating systems,[18]
    • Agentless scheduling to execute jobs across different operating systems.[19]
  • Active/passive clusters for scalability & high-availability.[20]
  • Recording of job history,[21] frequency and log information[22] in SQL databases.
  • Triggering of job starts by directory monitoring[23] and file watching.[24]
  • Built-in file transfer capabilities.[25]
  • Scripting capabilities (Shell, JavaScript, PowerShell, etc.).[26]
  • A monitoring interface for integration with system monitors such as Nagios, Zabbix, SCOM, etc.[27]
  • A library of standard job templates covering operations such as file transfer and log rotation.[28]
  • Graphical interfaces for job configuration, workflow control and access to the job logs and history.[29]

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.[14]
  • Information about the individual objects processed by the JobScheduler - jobs, job chains, orders, schedules, etc. - are persistently stored in the form of XML files.[6]
  • A database management system (DBMS) is used by the JobScheduler master to store job status, protocol and history information.[6] 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.[30]
  • The agent runs on any operating system that supports a Java Virtual Machine.[18][30]
  • The agent acquires its configuration and task execution requests from one or more JobScheduler master instances and does not require a DBMS.[30]
  • Master / agent communication uses a single HTTP or HTTPS connection.[31]
  • A number of JobScheduler agents can be configured in an agent cluster for redundancy and fail-over.[18]

Supported platforms

JobScheduler Master

Operating systems:[32]

Database management systems:[33]

JobScheduler Universal Agent

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

Licensing

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

Support and Services

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

See also

References

  1. "Legal Notice". https://www.sos-berlin.com/legal-notice. Retrieved 27 May 2016. 
  2. 2.0 2.1 "Job Scheduler 1.2 moved to SourceForge.net". https://sourceforge.net/p/jobscheduler/news/2005/10/job-scheduler-12-moved-to-sourceforgenet/. Retrieved 27 May 2016. 
  3. "Versions". https://kb.sos-berlin.com/x/fIFB. Retrieved 11 June 2020. 
  4. 4.0 4.1 4.2 4.3 "Licensing". https://www.sos-berlin.com/licensing. Retrieved 2015-09-16. 
  5. "Features". https://kb.sos-berlin.com/x/fYRB. Retrieved 26 May 2016. 
  6. 6.0 6.1 6.2 6.3 6.4 "The JobScheduler in a Nutshell". https://www.sos-berlin.com/jobscheduler-nutshell. Retrieved 26 May 2016. 
  7. "64-Bit JobScheduler released". https://www.sos-berlin.com/news-64-bit-jobscheduler-released. Retrieved 26 May 2016. 
  8. "JobScheduler, Universal Agent and JADE 1.10 released". https://www.sos-berlin.com/news-jobscheduler-universal-agent-and-jade-110-released. Retrieved 26 May 2016. 
  9. Govekar, Milind; Mahapatra, Biswajeet (February 2012). Magic Quadrant for Workload Automation. Stamford: Gartner, Inc.. G00219826. 
  10. 10.0 10.1 "Architecture". https://kb.sos-berlin.com/x/ggNO. Retrieved 26 May 2016. 
  11. "High Availability". https://kb.sos-berlin.com/x/QgHj. Retrieved 26 May 2016. 
  12. "Supervisor". https://kb.sos-berlin.com/x/qoR9. Retrieved 26 May 2016. 
  13. "Orders". https://kb.sos-berlin.com/x/84V9. Retrieved 26 May 2016. 
  14. 14.0 14.1 "JobScheduler". https://www.sos-berlin.com/jobscheduler. Retrieved 26 May 2016. 
  15. "Job Chains". https://kb.sos-berlin.com/x/8YV9. Retrieved 27 May 2016. 
  16. "Job dependencies". https://kb.sos-berlin.com/x/gQB3. Retrieved 27 May 2016. 
  17. "Cross-Platform Scheduling". https://kb.sos-berlin.com/x/BIN9. Retrieved 27 May 2016. 
  18. 18.0 18.1 18.2 "JobScheduler Universal Agent". https://kb.sos-berlin.com/x/PwCS. Retrieved 26 May 2016. 
  19. "Agentless Scheduling". https://kb.sos-berlin.com/x/DoQ3. Retrieved 27 May 2016. 
  20. "Cluster Operation". https://kb.sos-berlin.com/x/JoI3. Retrieved 27 May 2016. 
  21. "Daily Plans". https://kb.sos-berlin.com/x/X4I3. Retrieved 27 May 2016. 
  22. "What logging possibilities does JobScheduler provide". https://kb.sos-berlin.com/x/7YI3. Retrieved 27 May 2016. 
  23. "Directory Monitoring". https://kb.sos-berlin.com/x/DoV9. Retrieved 27 May 2016. 
  24. "File Watching". https://kb.sos-berlin.com/x/9IR9. Retrieved 27 May 2016. 
  25. "YADE Advanced File Transfer". https://kb.sos-berlin.com/x/R4d9. Retrieved 27 May 2016. 
  26. "Scripting". https://kb.sos-berlin.com/x/-ABO. Retrieved 27 May 2016. 
  27. "JobScheduler Monitoring Interface". https://kb.sos-berlin.com/x/UgCX. Retrieved 27 May 2016. 
  28. "JITL - JobScheduler Integrated Template Library". https://kb.sos-berlin.com/x/64FB. Retrieved 27 May 2016. 
  29. "Components". https://kb.sos-berlin.com/x/VIBB. Retrieved 27 May 2016. 
  30. 30.0 30.1 30.2 30.3 "JobScheduler Universal Agent". https://www.sos-berlin.com/jobscheduler-universal-agent. Retrieved 26 May 2016. 
  31. "JobScheduler Universal Agent - Secure HTTPS communication". https://kb.sos-berlin.com/x/3Qqg. Retrieved 26 May 2016. 
  32. "Which platforms is JobScheduler available for and what platform support is provided?". https://kb.sos-berlin.com/x/BIM3. Retrieved 26 May 2016. 
  33. "Which common Database Management Systems are supported by JobScheduler". https://kb.sos-berlin.com/x/ZQGg. Retrieved 26 May 2016. 

External links