Job scheduling has a long history. Job schedulers have been one of the major components of
IT infrastructure since the early mainframe systems. At first, stacks of
punched cards were processed one after the other, hence the term "
batch processing". From a historical point of view, we can distinguish two main eras about Job schedulers: • The mainframe era •
Job Control Language (JCL) on
IBM mainframes. Initially based on JCL functionality to handle dependencies, this era is typified by the development of sophisticated scheduling solutions (such as
Job Entry Subsystem 2/3) forming part of the systems management and automation toolset on the mainframe. • The
open systems era • Modern schedulers on a variety of architectures and operating systems. With standard scheduling tools limited to commands such as
at and batch, the need for mainframe standard job schedulers has grown with the increased adoption of distributed computing environments. In terms of the type of scheduling, there are also distinct eras: •
Batch processing - the traditional date and time based execution of background tasks based on a defined period during which resources were available for batch processing (the
batch window). In effect, the original mainframe approach transposed onto the open systems environment. • Event-driven process automation - where background processes cannot be simply run at a defined time, either because the nature of the business demands that workload is based on the occurrence of external events (such as the arrival of an order from a customer or a stock update from a store branch), or because there is no / insufficient batch window. • Service Oriented job scheduling - recent developments in
Service Oriented Architecture (SOA) have seen a move towards deploying job scheduling as a reusable IT infrastructure service that can play a role in the integration of existing business application workload with new
Web Services based real-time applications. == Scheduling ==