Unter Process Decomposition verstehen wir die Zerlegung von großen Programmen bzw. Scripten in kleinere Programme mit klar abgegrenzter Funktionalität.
Komplexe, lange laufende Prozesse
In vielen IT-Umgebungen kommen in der Nacht- bzw. Hintergrundverarbeitung große und komplexe Programme mit meist langer Laufzeit zum Einsatz. Nach dem Start geht die Kontrolle vollständig auf diese Programme über.
Die Überwachung des Programmfortschritts und die Ermittlung der Ursache beim Auftreten von Fehlern ist meist mit erheblichem Aufwand verbunden. Der Wiederanlauf nach Fehlersituationen ist oft nur eingeschränkt möglich oder das gesamte Programm muss neu gestartet werden. Tritt nach drei Stunden Laufzeit in der Endverarbeitung ein Fehler auf, müssen dann evtl. erneut drei Stunden Wartezeit in Kauf genommen werden. Insgesamt kann festgestellt werden, dass diese großen und komplexen Programme hohe Kosten in Entwicklung, Wartung und Betrieb verursachen.
Teile und herrsche
Durch die Anwendung der Process Decomposition entstehen kleinere, überschaubarere Programme mit kürzerer Laufzeit, welche flexibler eingesetzt werden können. Durch die klar abgegrenzte Funktionalität dieser Programme werden die Aufwände für Entwicklung und Wartung reduziert. Überwachung, Fehlersuche und Wiederanlauf werden vereinfacht und Potentiale für Parallelverarbeitung und Lastverteilung auf mehrere Systeme können wesentlich einfacher genutzt werden. Um das Potential der Process Decomposition voll zu nutzen, muss eine optimale Granularität der Teilprozesse erreicht werden und der Code der Teilprozesse muss völlig frei von Aspekten der Ablaufsteuerung sein.
Werden zur Steuerung des Zusammenspiels der einzelnen Programme unzulängliche Betriebssystemmittel (z.B. cron) oder Job Scheduling Frameworks mit unzureichender Funktionalität eingesetzt, müssen Aspekte der Ablaufsteuerung in den Programmen selbst implementiert werden oder der Ablauf muss mittels eines übergeordneten Programmes bzw. Scriptes gesteuert werden. Damit geht jedoch ein erheblicher Teil der Vorteile der Process Decomposition verloren und hohe Entwicklungsaufwände, Verlust der zentralen Kontrolle und Intransparenz sind die Folge. Will man das volle Potential der Process Decomposition nutzen, muss ein Job Scheduling Framework erarbeitet werden, das alle Anforderungen der Ablaufsteuerung erfüllt. Die Entwicklung eines solchen Frameworks ist jedoch mit erheblichen Kosten verbunden und es vergehen oft Jahre, bis ein Reifegrad erreicht ist, der allen Anforderungen mit ausreichender Stabilität gerecht wird. Die Eigenentwicklung eines solchen Frameworks ist deshalb niemals sinnvoll.
Job Scheduling Systeme
Zur Steuerung bzw. Automatisierung der durch Process Decomposition entstandenen Programme ist der Einsatz eines Job Scheduling Systems sinnvoll. Aufgabe des Job Scheduling Systems ist, Prozesse unter Berücksichtigung von Ressourcenauslastung und -verfügbarkeit, Abhängigkeiten und Prioritäten zum ‘richtigen’ Zeitpunkt zur Ausführung zu bringen. Abläufe und Prozesse müssen überwacht und der Betrieb muss während bzw. nach der Behebung von Ausnahme- bzw. Fehlersituationen fortgeführt werden können. Um die Ziele der Process Decomposition zu erreichen, müssen alle dafür notwendigen Konstrukte der Programmlogik im Job Scheduling System abbildbar sein. Häufig ist sogar das Fehlen eines geeigneten Job Scheduling Systems die Ursache für die Entstehung von komplexen, langlaufenden Programmen, welchen mit der Process Decomposition begegnet werden soll.
BICsuite
Die Anforderungen der Process Decomposition gingen bereits im Design in das BICsuite Enterprise Job Scheduling System ein. Alle für die Umsetzung der Process Decomposition notwendigen Konstrukte der Ablaufsteuerung werden von BICsuite bereitgestellt:
- Variable und Parameter
- Sequenzielle Verarbeitung
- Verzweigungen
- Schleifen
- Paralleliserung und Synchronisation
- Ausnahmebehandlung
- Modularisierung
Mit dem BICsuite Enterprise Job Scheduling System als zentrales Element der IT Software Infrastruktur wird die Process Decomposition optimal unterstützt und die gesamte IT-Prozessautomatisierung auf ein neues Level gehoben.