Geplante Tasks automatisiert starten

Was ist ein Job-Scheduler?

| Autor / Redakteur: Otto Geißler / Ulrike Ostler

Job-Scheduling ist der Prozess der Zuweisung von Systemressourcen zu verschiedenen Aufgaben durch ein Betriebssystem.
Job-Scheduling ist der Prozess der Zuweisung von Systemressourcen zu verschiedenen Aufgaben durch ein Betriebssystem. (Bild: © djama - stock.adob.com)

Ein Job-Scheduler ist eine Anwendung zur Steuerung der unbeaufsichtigten Ausführung von Jobs, einzelne Aufgaben einer Transaktionsverarbeitung, beziehungsweise Hintergrundprogrammen wie Lohn- und Gehaltsabrechnungsprogramme.

Job-Scheduler werden auch als Batch-Scheduler bezeichnet, da die Ausführung nicht-interaktiver Jobs oft als Batch-Verarbeitung betrachtet wird. Des Weiteren sind auch die Synonyme Batch-System, Distributed Resource Manager (DRM), Distributed Resource Management System (DRMS) und Workload-Automatisierung gebräuchlich.

Betriebssysteme wie Unix oder „Windows“ beinhalten standardmäßige Job-Planungs-Funktionen. Programme wie zum Beispiel Datenbank-Verwaltungssysteme (DBMS), Backup Enterprise Resource Planning (ERP) und Geschäftsprozess-Management (BPM) bieten ebenfalls spezifische Job-Scheduling-Funktionen.

Historie der Job-Scheduler

Die Jobplanung hat eine lange Tradition und gehört seit den ersten Mainframe-Systemen zu den Hauptkomponenten einer IT-Infrastruktur. Da in jener Zeit noch Stapel von Lochkarten nacheinander abgearbeitet wurden, entstand der Begriff „Stapelverarbeitung“. Aus historischer Sicht lassen sich hauptsächlich zwei Phasen des Job-Scheduling unterscheiden: die Mainframe-Zeit und das offene System-Zeitalter.

Die Mainframe-Zeit, die auf Job Control Language (JCL) zur Bewältigung von Abhängigkeiten basierte, wurde durch die Entwicklung anspruchsvoller Planungslösungen (zum Beispiel Job Entry Subsystem 2/3) geprägt, die Teil der System-Management- und Automatisierungswerkzeuge auf dem Mainframe waren.

Das offene System-Zeitalter beherbergt moderne Planer auf einer Vielzahl von Architekturen und Betriebssystemen. Da sich die Standard-Planungs-Tools auf Befehle wie at und batch reduzieren, nahm der Bedarf an Mainframe-Standardjob-Scheduler mit der Einführung von verteilten Computerumgebungen zu.

Einsatzbereiche und Funktionen

Die Verwaltung von regelmäßigen Jobs auf Servern kann schnell in unnötige Arbeit ausufern, vor allem wenn mehrere Rechner involviert sind. Einfacher geht es mit einem Job-Scheduler: Er übernimmt die Automatisierung von Geschäftsprozessen und Arbeitsabläufen und bietet Lösungen für komplexe Szenarien.

Das heißt, mithilfe eines Job-Scheduler können Dateien, Skripte und Datenbankprozeduren automatisch ausgeführt werden. Die einzelnen Jobs werden nach Kalenderereignissen per Verzeichnisüberwachung oder API gestartet. Das Programm speichert alle Statusinformationen in einem Datenbanksystem ab. Für die Definition und Überwachung von Hintergrundausführungen bieten moderne Job-Scheduler in einem verteilten Netzwerk eine grafische Benutzeroberfläche sowie einen singulären Kontrollpunkt an.

Job-Scheduler kommen zunehmend zum Einsatz, um die Integration von Geschäftsaktivitäten in Echtzeit mit der traditionellen IT-Hintergrundverarbeitung über verschiedene Betriebssystemplattformen und Geschäftsanwendungsumgebungen hinweg zu koordinieren. Sie starten und steuern Jobs automatisch, indem sie vorbereitete Anweisungen für die Jobsteuerungssprache ausführen.

Bei der Planung eines Job-Scheduler werden eine Reihe verschiedener Schemata verwendet, um einen spezifischen Job zur Ausführung zu bringen. Folgende Parameter können Berücksichtigung finden:

  • Verfügbarkeit der Rechenressource
  • Prioritäten der Jobs
  • Anzahl der zulässigen parallelen Jobs
  • Zugewiesene Ausführungszeit
  • Vorhandensein von Peripheriegeräten
  • Anzahl der Fälle vorgeschriebener Ereignisse
  • Lizenzschlüssel, wenn für den Job eine lizenzierte Software verwendet wird.

Kriterien für ein optimiertes Job-Scheduling

Eine leistungsfähige Job-Scheduler-Software optimiert folgende Funktionen:

Durchsatz

Es werden in kurzer Zeit möglichst viele Prozesse abgearbeitet.

Effizienz

Bereitgestellte Ressourcen werden möglichst vollständig ausgelastet.

Fairness

„Gerechte“ Zuteilung der Ressourcen an die Prozesse. Das bedeutet, dass kein Prozess auf Dauer vernachlässigt werden darf. Das Verfahren soll keine einzelnen Prozesse „verhungern“ lassen.

Transparenz

Die Prozesse werden in einzelne Schritte aufgeteilt und in ihrem Ablauf und in ihrer Zuordnung zu Ressourcen klar definiert.

Termineinhaltung

Die Prozesse müssen so geplant werden, dass sie zu einem festgelegten Termin beendet sind. In der IT spricht man hier von Deadlines und unterscheidet verschiedene Typen von Echtzeitanforderungen:

  • Eine „harte Echtzeit“ hält alle Deadlines genau ein.
  • Die „weiche Echtzeit“ räumt gewisse Toleranzen ein.
  • Ein „Best Effort“ sichert im Grunde keine Einhaltung der Deadlines zu.
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45661918 / Definitionen)