Heim

Stapelverarbeitung

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 Betriebssystemfunktionen nutzen; diese werden nach Starten der Datei Schritt für Schritt 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 DOS-Batch-Dateien, da unter Unix mehr Betriebssystembefehle bzw. -werkzeuge zur Verfügung stehen. Apple Macintosh benutzt AppleScript; das neueste System Mac OS X ist eine Unix-Variante und kennt auch Batch-Dateien im üblichen Sinn. GNUstep verwendet StepTalk, ein Smalltalk-Framework. Insgesamt setzt sich der Begriff Skript für Batch-Dateien immer mehr durch.

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

Batch-Dateien oder auch Stapelverarbeitungs-Dateien stammen zwar noch aus der Zeit von DOS, sind aber keineswegs von gestern. Im Gegenteil: Auch heute leisten sie unter allen Windows-Versionen wertvolle Arbeit. Immer, wenn häufig die gleichen Befehle ausgeführt werden sollen, bieten sich Batch-Dateien an, so etwa bei Anmeldeskripten. Es ist auch möglich, die Ausführung einzelner Befehlszeilen von einer Bedingung abhängig zu machen. Dafür gibt es Konstrukte wie IF oder IF NOT. Außerdem kann man Vergleiche durchführen, Variablen benutzen, Sprünge ausführen, Kommentare schreiben etc.

Unter Windows-NT-basierten Systemen, zu denen auch Windows 2000, XP, Server 2003 und Vista gehören, gibt es außerdem so genannte Befehlserweiterungen, die insbesondere die IF und FOR-Befehle stark aufwerten, indem sie z. B. auch Vergleiche von Werten anbieten.

Mittlerweile wurde aber der Nachfolger der Cmd.exe-Shell sowie der Batch-Dateien unter dem Namen Windows PowerShell veröffentlicht, der wesentlich komplexere Skripts zulässt.

 Wikibooks: Informationen zur Windows-Batch-Programmierung – Lern- und Lehrmaterialien