„Stapelverarbeitung“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K Änderungen von 84.147.254.191 (Diskussion) auf die letzte Version von Ajv39 zurückgesetzt
Markierung: Zurücksetzung
Markierung: 2017-Quelltext-Bearbeitung
(11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 11: Zeile 11:


=== Verarbeiten von Systemkommandos ===
=== Verarbeiten von Systemkommandos ===
{{Hauptartikel|Stapelverarbeitungsdatei}}
Der Begriff ‚Stapelverarbeitung‘ wird häufig für das Abarbeiten ''betriebssystemnaher Dienste und Aufgaben'' verwendet. In diesem Zusammenhang ist v.&nbsp;a. durch [[MS-DOS]] der Begriff ''Batch-Datei'' oder ''Batch-File'' bekannt geworden. Batch-Dateien enthalten eine Reihe von Befehlen, welche die [[Betriebssystem]]-Funktionen nutzen; diese werden durch das Ausführen der Batchdatei Schritt für Schritt abgearbeitet. Bei DOS/[[Microsoft Windows|Windows]] werden die Batch-Dateien üblicherweise mit der [[Dateinamenserweiterung]] <code><name>[[BAT-Datei|.bat]]</code> oder <code><name>.cmd</code> versehen. Unter Windows können sie durch einen Doppelklick gestartet werden. Bei [[Unix]] bezeichnet man Batchdateien als ''[[Shellskript]]''. Diese sind wesentlich leistungsfähiger als die ersten DOS-Batch-Programme (bis ''[[Windows 9x]]'', siehe auch <code>[[COMMAND.COM]]</code>), da unter Unix mehr Betriebssystem-Befehle oder -Werkzeuge zur Verfügung stehen. Beim [[Macintosh]] von Apple werden diese Programme ''[[AppleScript]]'' genannt. Das aktuelle System [[macOS]] ist ebenfalls eine Unix-Variante und kennt auch Batch-Dateien im üblichen Sinn. [[GNUstep]] verwendet ''[[StepTalk]]'', ein [[Smalltalk (Programmiersprache)|Smalltalk]]-[[Framework]]. Insgesamt findet der Begriff ''Skript'' auch für Batch-Programme immer mehr Verwendung.
Der Begriff ‚Stapelverarbeitung‘ wird häufig für das Abarbeiten ''betriebssystemnaher Dienste und Aufgaben'' verwendet. In diesem Zusammenhang ist v.&nbsp;a. durch [[MS-DOS]] der Begriff ''Batch-Datei'' oder ''Batch-File'' bekannt geworden. Batch-Dateien enthalten eine Reihe von Befehlen, welche die [[Betriebssystem]]-Funktionen nutzen; diese werden durch das Ausführen der Batchdatei Schritt für Schritt abgearbeitet. Bei DOS/[[Microsoft Windows|Windows]] werden die Batch-Dateien üblicherweise mit der [[Dateinamenserweiterung]] <code>.bat</code> oder <code>.cmd</code> versehen. Unter Windows können sie durch einen Doppelklick gestartet werden. Bei [[Unix]] und [[Unixoide Systeme|Unix-artigen Systemen]] werden derartige Dateien als ''[[Shellskript]]e'' bezeichnet. Diese sind wesentlich leistungsfähiger als die ersten DOS-Stapelverarbeitungsdateien (bis ''[[Windows&nbsp;9x]]'', siehe auch <code>[[COMMAND.COM]]</code>), da unter Unix mehr Betriebssystem-Befehle oder -Werkzeuge zur Verfügung stehen. Beim [[Macintosh]] von Apple werden diese Programme ''[[AppleScript]]'' genannt. Das aktuelle System [[macOS]] ist ebenfalls eine Unix-Variante und kennt daher auch Shellskripte. [[GNUstep]] verwendet ''[[StepTalk]]'', ein [[Smalltalk (Programmiersprache)|Smalltalk]]-[[Framework]]. Insgesamt findet der Begriff ''Skript'' auch für Batch-Programme immer mehr Verwendung.


=== Verarbeitung von Daten im Stapelbetrieb ===
=== Verarbeitung von Daten im Stapelbetrieb ===
Zeile 40: Zeile 41:
Unter dem Betriebssystem [[OpenVMS]] werden Batch-Jobs, die z.&nbsp;B. mittels der Kommandosprache [[Digital Command Language|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.
Unter dem Betriebssystem [[OpenVMS]] werden Batch-Jobs, die z.&nbsp;B. mittels der Kommandosprache [[Digital Command Language|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.


== Stapelverarbeitungsprogramme unter DOS, OS/2 und Windows ==
== {{Anker|DOS}}Stapelverarbeitungsprogramme unter DOS, OS/2 und Windows ==
{{Hauptartikel|BAT-Datei}}
{{Hauptartikel|Stapelverarbeitungsdatei}}


Die ''Stapelverarbeitungsprogramme'', auch ''Batch-Skripte'' oder ''Batch-Programme'' genannt, stammen aus der Zeit der [[PC-kompatibles DOS|PC-kompatiblen DOS-Betriebssysteme]] und sind bis heute unter allen DOS-, [[OS/2]]- und [[Microsoft Windows|Windows]]-Versionen ausführbar. Immer wenn häufig die gleichen Befehle ausgeführt werden sollen, bieten sich Stapelverarbeitungsprogramme an, so etwa für automatisierte Anmeldevorgänge. Es ist auch möglich, die Ausführung einzelner Befehlszeilen von einer [[Bedingte Anweisung und Verzweigung|Bedingung]] abhängig zu machen. Dafür gibt es Konstrukte wie <code>IF</code> oder <code>IF NOT</code>. Neben diesen Bedingungsoperatoren können auch [[Variable (Programmierung)|Variablen]] genutzt, [[Sprunganweisung|Sprünge]] ausgeführt und [[Kommentar (Programmierung)|Kommentare]] geschrieben werden.
Stapelverarbeitungsdateien werden manchmal auch ''Stapelverarbeitungsprogramme'', ''{{lang|en|Batch}}-Skripte'' oder ''{{lang|en|Batch}}-Programme'' genannt. Sie sind effektiv [[Shellskript]]e – es kann damit alles, was auf der Kommandozeile der Betriebssystem-Shell, dem Kommandointerpreter, ausgeführt werden kann, ebenfalls ausgeführt werden. Diese Form der Stapelverarbeitung stammt aus der Zeit der [[PC-kompatibles DOS|PC-kompatiblen DOS-Betriebssysteme]], {{lang|en|Batch}}-Dateien sind unter allen DOS-, [[OS/2]]- und [[Microsoft Windows|Windows]]-Versionen ausführbar. Immer wenn häufig die gleichen Befehle ausgeführt werden sollen, bieten sich Stapelverarbeitungsdateien an, beispielsweise für automatisierte Anmeldevorgänge. Unter DOS wird beispielsweise die <span style="font-family: monospace, monospace;">[[AUTOEXEC.BAT]]</span> bei jedem Systemstart ausgeführt, u.&nbsp;a. um [[Gerätetreiber]] und [[TSR-Programm]]e automatisch zu laden. Einige DOS-Programme nutzen Startdateien, die z.&nbsp;B. benötigte [[Umgebungsvariable]]n setzen oder, wie die <span style="font-family: monospace, monospace;">AUTOEXEC.BAT</span>, erforderliche TSR-Programme vor dem eigentlichen Programm starten. Mache DOS-Spiele nutzen eine {{lang|en|Batch}}-Datei, um vor dem eigentlichen Spiel ein Intro, das als eigenständiges Programm beiliegt, zu laden, nach dessen Beendigung dann das Spiel gestartet wird. Kompliziertere {{lang|en|Batch}}-Skripte machen von den Möglichkeiten des Kommandozeileninterpreters Gebrauch, die Ausführung einzelner Befehlszeilen von einer [[Bedingte Anweisung und Verzweigung|Bedingung]] abhängig zu machen. Dafür gibt es Konstrukte wie <code>IF</code> oder <code>IF NOT</code>. Neben diesen Bedingungsoperatoren können auch [[Variable (Programmierung)|Variablen]] genutzt, [[Sprunganweisung|Sprünge]] ausgeführt und [[Kommentar (Programmierung)|Kommentare]] geschrieben werden. Die Fähigkeiten der {{lang|en|Batch}}-Datei sind jedoch immer vom verwendeten Kommandozeileninterpreter bzw. der Shell abhängig, denn diese können die verwendeten Kommandos prinzipiell auch immer ohne Stapelverarbeitungsdatei durch manuelle Eingabe auf der Kommandozeile direkt ausführen.


Unter [[Microsoft Windows NT|Windows-NT]]-basierten [[Betriebssystem|Systemen]] gibt es außerdem sogenannte Befehlserweiterungen, die insbesondere die <code>IF</code>- und <code>FOR</code>-Befehle stark aufwerten, indem sie z.&nbsp;B. auch [[Vergleichsoperator|Vergleiche]] von [[Variable (Programmierung)|Werten]] anbieten.
Mit dem in [[Microsoft Windows NT|Windows-NT]]-basierten [[Betriebssystem|Systemen]] enthaltenen <code>cmd.exe</code> kamen Befehlserweiterungen, die insbesondere die <code>IF</code>- und <code>FOR</code>-Befehle stark aufwerten, indem sie z.&nbsp;B. auch [[Vergleichsoperator|Vergleiche]] von [[Variable (Programmierung)|Werten]] anbieten.


Unter dem Namen [[PowerShell]] wurde von [[Microsoft]] Ende 2006 eine Alternative veröffentlicht, die wesentlich komplexere Shellskripte zulässt und mittlerweile standardmäßig – zusätzlich zu <code>cmd.exe</code> – in [[Microsoft Windows|Windows]] enthalten ist, jedoch auch für andere Systeme (z.&nbsp;B. [[Linux]]) verfügbar ist.
Mittlerweile wurde auch ein möglicher Nachfolger der <code>[[COMMAND.COM]]</code> und der <code>[[Cmd.exe]]</code>-Shell unter dem Namen [[Windows PowerShell]] von [[Microsoft]] veröffentlicht, welcher wesentlich komplexere Stapelverarbeitungsprogramme zulässt.


== Siehe auch ==
== Siehe auch ==

Version vom 2. Mai 2023, 19:40 Uhr

Stapelverarbeitung, auch Batchverarbeitung genannt, ist ein Begriff aus der Datenverarbeitung und bezeichnet die Arbeitsweise von Computerprogrammen, bei der die in einem oder mehreren Datenbeständen als Eingabe bereitgestellte Menge an Aufgaben oder Daten vollständig, automatisch und meist sequenziell verarbeitet wird.

Die komplementäre Bearbeitungsform wird „Dialogverarbeitung“ genannt. Dabei verarbeitet das Programm genau einen Vorgang (eine Transaktion), der in der Regel von einem Benutzer interaktiv über einen Bildschirmarbeitsplatz zur Bearbeitung angestoßen wird. Danach 'wartet' das Programm auf weitere Transaktionen; evtl. parallel eintreffende Aufträge muss es nacheinander bzw. voneinander getrennt verarbeiten.

Begriffsherkunft

Die Bezeichnung „Stapelverarbeitung“ stammt aus der Anfangszeit der Datenverarbeitung, als interaktive Verarbeitung noch nicht möglich war. Datensätze lagen damals häufig in Form von Lochkarten vor und wurden vom jeweiligen Computerprogramm – dessen Programmcode oft ebenfalls als Lochkartenstapel vorlag – als Kartenstapel (englisch batch) nacheinander abgearbeitet. Als später die Lochkarte von anderen Speichermedien, z. B. Magnetbändern und Plattenlaufwerken, abgelöst wurde und auch interaktives Arbeiten mit dem Dialogcomputer möglich wurde (mit direkten Eingaben über ein Terminal), blieb der Begriff erhalten und wird bis heute für nicht-interaktive Datenverarbeitung verwendet: Man gibt einen Auftrag vor; dieser wird vom Computer mit allen dazugehörenden Daten „ohne Eingriff des Benutzers der Reihe nach abgearbeitet“.[1][2] Auch die Arbeitsergebnisse liegen bei dieser Verarbeitungsform i. d. R. als ‚Menge‘ (ebenfalls englisch batch) vor, zum Beispiel als Belege, Listen (Berichte), neue oder geänderte Datenbestände usw.

Varianten der Stapel-/Batchverarbeitung

Der Begriff ‚Stapelverarbeitung‘ hat zwei voneinander abweichende Bedeutungen:

Verarbeiten von Systemkommandos

Der Begriff ‚Stapelverarbeitung‘ wird häufig für das Abarbeiten betriebssystemnaher Dienste und Aufgaben verwendet. In diesem Zusammenhang ist v. a. durch MS-DOS der Begriff Batch-Datei oder Batch-File bekannt geworden. Batch-Dateien enthalten eine Reihe von Befehlen, welche die Betriebssystem-Funktionen nutzen; diese werden durch das Ausführen der Batchdatei 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 und Unix-artigen Systemen werden derartige Dateien als Shellskripte bezeichnet. Diese sind wesentlich leistungsfähiger als die ersten DOS-Stapelverarbeitungsdateien (bis Windows 9x, siehe auch COMMAND.COM), da unter Unix mehr Betriebssystem-Befehle oder -Werkzeuge zur Verfügung stehen. Beim Macintosh von Apple werden diese Programme AppleScript genannt. Das aktuelle System macOS ist ebenfalls eine Unix-Variante und kennt daher auch Shellskripte. GNUstep verwendet StepTalk, ein Smalltalk-Framework. Insgesamt findet der Begriff Skript auch für Batch-Programme immer mehr Verwendung.

Verarbeitung von Daten im Stapelbetrieb

In der kommerziellen Datenverarbeitung bezeichnet ‚Stapelverarbeitung‘ das automatische, sequentielle und vollständige Abarbeiten der in einer oder mehreren Eingabedatei(en) enthaltenen Daten. Das Programm läuft dabei nach dem Start vollkommen selbstständig und i. d. R. ohne jegliche Benutzerinteraktion ab; Ausnahmen könnten z. B. Fehlersituationen mit der Notwendigkeit von Operator-Eingriffen sein. Es stellt seine Ergebnisse in Form von Dateien oder (über Insert / Update / Delete) in Datenbanken oder über andere Ausgabegeräte (z. B. Drucker) zur Verfügung.

Beispiele für Stapel-Datenverarbeitung
  • Rechnungswesen: Einbuchen der Zahlungseingänge eines Arbeitstages; führt zu neuen Kontoständen
  • Versandhandel: Erstellen von Rechnungen für ausgelieferte Artikel; zum Versand an die Kunden
  • Mahnwesen: Erstellen von Mahnungen für Kunden, deren Rechnungen nach x Tagen noch unbezahlt sind
  • Einzelhandel: Erstellen einer Verkaufsstatistik aus allen Verkäufen des lfd. Monats, mit Anzahl und Umsatzsumme je Artikelgruppe und Filiale
  • Fotobearbeitung: Drehen aller Fotos (in einem bestimmten Ordner) um 90 Grad nach links
  • Rechenzentrum: Drucken von Daten, die von vorher gelaufenen Programmen zwischengespeichert wurden (siehe auch Spooling)
  • Datenmigration: Konvertieren von Daten / Dateien in ein anderes Dateiformat (siehe auch Dateikonverter)

Die Struktur von Stapelprogrammen folgt häufig standardisierten Konzepten, zum Beispiel der normierten Programmierung, weil der Ablauf in der internen Verarbeitung – bis auf aufgabenspezifische Details – identisch oder ähnlich sein kann.

Steuern und Starten von Batch-Jobs

Das Starten von Anwenderprogrammen zur Stapelverarbeitung geschieht über sog. Jobs, die von Systemdiensten zur Job-Steuerung verwaltet werden. Je nach Betriebssystem werden diese Dienste unterschiedlich genannt.

Zur Steuerung sind Steuerinformationen nötig, die (z. B. auf IBM-Betriebssystemen) mittels JCL hinterlegt werden. Inhalt dieser Vorgaben sind in erster Linie die jeweiligen Programmaufrufe, ggf. erforderliche Parameter, die Namen (mit Pfad- und Laufwerksangabe) für zu verarbeitende und zu erzeugende Dateien etc. Das Job-Steuerungssystem verwaltet die Jobs und startet sie zu einem definierten Zeitpunkt und/oder nach einem (vorher eingetretenen) Ereignis, z. B. dem erfolgreichen Ende eines vorher ausgeführten Programms. Batch-Jobs werden daher oft lastoptimierend eingesetzt, d. h. dann bearbeitet, wenn wenig interaktive Arbeit anfällt (nachts, am Wochenende). Dies kann gleichermaßen für Anwendungsprogramme und für Systemprogramme (z. B. zur Datensicherung) zutreffen.

Die 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 sogenannte 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 von 'Schachtelung' ist durch die Verwendung katalogisierter Prozeduren 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.

Stapelverarbeitungsprogramme unter DOS, OS/2 und Windows

Stapelverarbeitungsdateien werden manchmal auch Stapelverarbeitungsprogramme, Batch-Skripte oder Batch-Programme genannt. Sie sind effektiv Shellskripte – es kann damit alles, was auf der Kommandozeile der Betriebssystem-Shell, dem Kommandointerpreter, ausgeführt werden kann, ebenfalls ausgeführt werden. Diese Form der Stapelverarbeitung stammt aus der Zeit der PC-kompatiblen DOS-Betriebssysteme, Batch-Dateien sind unter allen DOS-, OS/2- und Windows-Versionen ausführbar. Immer wenn häufig die gleichen Befehle ausgeführt werden sollen, bieten sich Stapelverarbeitungsdateien an, beispielsweise für automatisierte Anmeldevorgänge. Unter DOS wird beispielsweise die AUTOEXEC.BAT bei jedem Systemstart ausgeführt, u. a. um Gerätetreiber und TSR-Programme automatisch zu laden. Einige DOS-Programme nutzen Startdateien, die z. B. benötigte Umgebungsvariablen setzen oder, wie die AUTOEXEC.BAT, erforderliche TSR-Programme vor dem eigentlichen Programm starten. Mache DOS-Spiele nutzen eine Batch-Datei, um vor dem eigentlichen Spiel ein Intro, das als eigenständiges Programm beiliegt, zu laden, nach dessen Beendigung dann das Spiel gestartet wird. Kompliziertere Batch-Skripte machen von den Möglichkeiten des Kommandozeileninterpreters Gebrauch, die Ausführung einzelner Befehlszeilen von einer Bedingung abhängig zu machen. Dafür gibt es Konstrukte wie IF oder IF NOT. Neben diesen Bedingungsoperatoren können auch Variablen genutzt, Sprünge ausgeführt und Kommentare geschrieben werden. Die Fähigkeiten der Batch-Datei sind jedoch immer vom verwendeten Kommandozeileninterpreter bzw. der Shell abhängig, denn diese können die verwendeten Kommandos prinzipiell auch immer ohne Stapelverarbeitungsdatei durch manuelle Eingabe auf der Kommandozeile direkt ausführen.

Mit dem in Windows-NT-basierten Systemen enthaltenen cmd.exe kamen Befehlserweiterungen, die insbesondere die IF- und FOR-Befehle stark aufwerten, indem sie z. B. auch Vergleiche von Werten anbieten.

Unter dem Namen PowerShell wurde von Microsoft Ende 2006 eine Alternative veröffentlicht, die wesentlich komplexere Shellskripte zulässt und mittlerweile standardmäßig – zusätzlich zu cmd.exe – in Windows enthalten ist, jedoch auch für andere Systeme (z. B. Linux) verfügbar ist.

Siehe auch

Einzelnachweise

  1. IT-Service24
  2. Springer Gabler Verlag (Herausgeber), Gabler Wirtschaftslexikon: Stichwort: Stapelbetrieb