Stapelverarbeitung oder auch Batchverarbeitung ist ein Begriff aus der EDV und bezeichnet die sequentielle, nicht-interaktive Bearbeitung von Aufgaben.
Inhaltsverzeichnis |
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. Allerdings können Batch-Files sehr wohl interaktive Programme oder Befehle (z.B. Choice.com) ausführen.
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 Batchdatei oder Batchfile bekannt geworden.
Batchdateien 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 Batchdateien üblicherweise mit der Dateinamenserweiterung .bat oder .cmd versehen. Unter Windows können sie durch einen Doppelklick gestartet werden.
Bei Unix bezeichnet man Batchdateien als Shellskript. Diese sind wesentlich leistungsfähiger als DOS-Batchdateien, 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 Batchdateien im üblichen Sinn.
GNUstep verwendet StepTalk, ein Smalltalk-Framework.
Insgesamt setzt sich der Begriff Skript für Batchdateien immer mehr durch.
Dem Ursprung der Batchverarbeitung, der in der nicht-interaktiven Bearbeitung von Anwenderprogrammen lag, folgt die Verarbeitung von Batchjobs. Batchjobs sind Anwenderprogramme, die durch geeignete Maßnahmen auf eine nicht-interaktive Ausführung vorbereitet und zur Ausführung an einen Systemdienst (das Batchsystem) ü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 programmiert und dann vom Batchsystem interpretiert werden. Das Batchsystem ermittelt anhand der Steuerinformationen einen geeigneten Startzeitpunkt und verwaltet den Joblauf, ohne dass der Nutzer sich darum kümmern muss. Batchjobs werden daher oft lastoptimierend eingesetzt, d.h. dann bearbeitet, wenn wenig interaktive Arbeit anfällt (nachts, am Wochenende).
Verarbeitung von Batchjobs 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 Batchjobs 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 Batchjobs werden in erster Linie für automatisierte Verarbeitungen (oft Massenverarbeitungen) eingesetzt. Das Betriebssystem enthält zur Jobsteuerung ein Job Entry Subsystem JES2 oder JES3.
Batchjobs 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.
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 geradezu an. Genau das ist beispielsweise bei Anmeldeskripten der Fall. 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, dazu gehört auch Windows 2000, XP, Server 2003 und Vista 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 Batchdateien unter dem Namen Windows PowerShell veröffentlicht, der wesentlich komplexere Skripts zulässt.
| Wikibooks: Informationen zur Windows-Batch-Programmierung – Lern- und Lehrmaterialien |