- Batchverarbeitung
-
Stapelverarbeitung oder auch Batchverarbeitung ist ein Begriff aus der EDV und bezeichnet die sequentielle, nicht-interaktive Bearbeitung von Aufgaben.
Inhaltsverzeichnis
Herkunft
Die Bezeichnung „Stapelverarbeitung“ stammt aus der Anfangszeit der Datenverarbeitung, als interaktive Verarbeitung noch nicht möglich war. Programme und Datensätze wurden damals auf Lochkarten gestanzt, die Lochkarten wurden auf einen Kartenstapel (batch) gelegt und nacheinander abgearbeitet. Als später die Lochkarte als Eingabemedium vom Terminal abgelöst und damit interaktives Arbeiten möglich wurde, blieb der Begriff erhalten und wird bis heute (in zwei voneinander abweichenden Bedeutungen) für nicht-interaktive Datenverarbeitung verwendet. Man gibt einen Auftrag vor und der wird vom Computer erledigt, ohne dass der Benutzer weiter eingreifen muss.
Verarbeitung von Batch-Dateien
Stapelverarbeitung im Sinne von Listenabarbeitung wird häufig für betriebssystemnahe Dienste und Aufgaben verwendet. Für solche Listen ist v. a. durch MS-DOS der Begriff Batch-Datei oder Batch-File bekannt geworden. Batch-Dateien enthalten eine Reihe von Befehlen, die die Betriebssystem-Funktionen nutzen; diese werden nach Starten der Datei Schritt für Schritt, wie ein Programm, abgearbeitet. Bei DOS/Windows werden die Batch-Dateien üblicherweise mit der Dateinamenserweiterung
.bat
oder.cmd
versehen. Unter Windows können sie durch einen Doppelklick gestartet werden. Bei Unix bezeichnet man Batch-Dateien als Shellskript. Diese sind wesentlich leistungsfähiger als die ersten DOS-Batch-Programme (bis Windows 9x, siehe auchCommand.com
), da unter Unix mehr Betriebssystem-Befehle oder -Werkzeuge zur Verfügung stehen. Bei Apple Macintosh werden diese Programme AppleScript genannt. Das aktuelle System Mac OS X ist ebenfalls eine Unix-Variante und kennt auch Batch-Dateien im üblichen Sinn. GNUstep verwendet StepTalk, ein Smalltalk-Framework. Insgesamt findet der Begriff Skript, auch für Batch-Programme, immer mehr Verwendung.Verarbeitung von Batch-Jobs
Dem Ursprung der Batch-Verarbeitung, der in der nicht-interaktiven Bearbeitung von Anwenderprogrammen lag, folgt die Verarbeitung von Batch-Jobs. Batch-Jobs sind Anwenderprogramme, die durch geeignete Maßnahmen auf eine nicht-interaktive Ausführung vorbereitet und zur Ausführung an einen Systemdienst (das Batch-System) übergeben wurden.
Für die Batch-Verarbeitung benötigen die Jobs neben ihrem auszuführenden Programm eine Reihe von Steuerinformationen, die z. B. mittels JCL (auf IBM-Betriebssystemen) programmiert und dann vom Batch-System interpretiert werden. Das Batch-System ermittelt anhand der Steuerinformationen einen geeigneten Startzeitpunkt und verwaltet den Joblauf, ohne dass der Nutzer sich darum kümmern muss. Batch-Jobs werden daher oft lastoptimierend eingesetzt, d. h. dann bearbeitet, wenn wenig interaktive Arbeit anfällt (nachts, am Wochenende).
Verarbeitung von Batch-Jobs war lange eine Domäne von Mainframes. Auf Systemen, die unter dem IBM-Betriebssystem z/OS (vormals MVS) laufen, werden sie normalerweise durch eine Steuerungssoftware (z. B. OPC) gesteuert, können aber auch durch einen TSO-Benutzer oder einen bereits laufenden Job oder eine so genannte Started-Task ausgelöst werden.
Bei z/OS sind Batch-Jobs in JCL geschrieben und normalerweise in einem Partitioned Data Set (JCL-Library) mit Recordformat FB und Recordlänge 80 abgelegt. Eine Art Unterprogramm ist durch die Verwendung von Cataloged Procedures möglich. Administrative Arbeiten, welche bei Unix mittels Shellskripten durchgeführt werden, werden bei z/OS heutzutage sehr oft mit REXX-Skripten unter TSO durchgeführt. Die Batch-Jobs werden in erster Linie für automatisierte Verarbeitungen (oft Massenverarbeitungen) eingesetzt. Das Betriebssystem enthält zur Jobsteuerung ein Job Entry Subsystem JES2 oder JES3.
Batch-Jobs analog zu denen der z/OS-Mainframes sind inzwischen auch auf Unix-basierten Servern möglich und insbesondere im Hochleistungsrechnen auch üblich. Hierzu werden spezielle Batchjob-Scheduler verwendet, die insbesondere die Herausforderungen von programminterner Parallelität handhaben können. Einfache Stapelverarbeitung ist mittels Cronjobs auf Unix/Linux denkbar.
Unter dem Betriebssystem OpenVMS werden Batch-Jobs, die z. B. mittels der Kommandosprache DCL programmiert werden können, durch sogenannte Batch-Queues unterstützt. Diese Queues können auf vielseitige Weise eingerichtet werden und sorgen für eine automatisierte Abarbeitung der Batch-Jobs.
Batch-Skripte unter Windows
Die Batch-Skripte, auch Batch-Programme oder Stapelverarbeitungsprogramme genannt, stammen aus der Zeit von DOS und sind bis heute unter allen Windows-Versionen ausführbar. Immer wenn häufig die gleichen Befehle ausgeführt werden sollen, bieten sich Batch-Skripte an, so etwa für automatisierte Anmeldevorgänge. Es ist auch möglich, die Ausführung einzelner Befehlszeilen von einer Bedingung abhängig zu machen. Dafür gibt es Konstrukte wie
IF
oderIF NOT
. Neben diesen Bedingungsoperatoren können auch Variablen genutzt, Sprünge ausgeführt und Kommentare geschrieben werden.Unter Windows-NT-basierten Systemen gibt es außerdem so genannte Befehlserweiterungen, die insbesondere die
IF
undFOR
-Befehle stark aufwerten, indem sie z. B. auch Vergleiche von Werten anbieten.Mittlerweile wurde auch ein möglicher Nachfolger der
Cmd.exe
-Shell unter dem Namen Windows PowerShell von Microsoft veröffentlicht, welcher wesentlich komplexere Batch-Skripte zulässt.Siehe auch
- Kommandozeileninterpreter
- Eingabeaufforderung
- Cmd.exe bzw. Command.com
- Windows Batch
- Windows PowerShell
Weblinks
Wikimedia Foundation.