Process decomposition involves breaking down complex programs or scripts into smaller programs with a clearly differentiated functionality.
Complex, long-running processes
Large and complex programs, usually with long runtimes, are used in many IT environments to perform nighttime or background processing tasks. Once they have been started, these programs run completely under their own control. Monitoring the program progress and pinpointing the causes of errors that occur usually involves considerable time and effort. Restarts following error situations are often possible only to a limited extent, or the entire program has to be restarted. If an error occurs during the final processing after 3 hours runtime, it may be necessary to wait for another 3 hours again. Overall, these large and complex programs incur high development, maintenance and operating costs.
Split up and control
Where inadequate operating system tools (e.g. cron) or job scheduling frameworks with insufficient functionality are being used to control the interaction of individual programs, aspects of the sequence control have to be implemented in the programs themselves, or the sequence needs be controlled using a superordinate program or script. Doing this significantly negates the benefits of process decomposition, however, and high development overheads, the loss of centralised control and a lack of transparency are the result.
To utilise the full potential of process decomposition, a job scheduling framework needs to be developed that meets all the sequence control requirements. Developing such a framework consumes substantial costs, however, and it often takes years to attain a level of maturity capable of handling all the requirements with adequate stability. The in-house development of such a framework is therefore never a practicable solution.
Job scheduling systems
A job scheduling system is expedient for controlling and automating the programs resulting from process decomposition. The purpose of the job scheduling system is to run processes at the ‘right’ time taking into consideration resource utilisation and availability, dependencies and priorities. It must be possible to monitor sequences and processes and to continue operating during exceptional or error situations, or after they have been remedied. To fulfil the purposes of process decomposition requires the capability to map all the pertinent constructs of the program logic in the job scheduling system. Indeed, the lack of a suitable job scheduling system frequently gives rise to the very complex programs with long runtimes which then have to be countered with process decomposition.
The requirements for process decomposition were incorporated in the BICsuite Enterprise Job Scheduling System right from the design stage. All the sequence control constructs required for implementing process decomposition are provided by BICsuite:
- Variables and parameters
- Sequential processing
- Parallelization and synchronisation
- Exception handling
The BICsuite Enterprise Job Scheduling System as a central element of the IT software infrastructure provides optimum support for process decomposition and takes the entire IT process automation environment up to a new level.