Business Process Automation
A White Paper on Batch Scheduling

By Richard Romano


            
About the author:
Richard Romano is an accomplished software engineer with over 24 years of extensive and broad experience in software development and project management.
  Today, business is driven by computers and technology more than ever before. Company management relies more heavily on the output of software computing applications to help make critical (and everyday) business decisions. Software application processes, both in-house developed and external vendor packages, are used to help maintain a business operation and achieve the goals and missions of a company. When computing applications are not run on time or fail to run properly, vital information can be delayed and cause missed opportunities, reputational impact, dissatisfied customers and lost business.

Software application processes can be better managed using tools designed for this purpose. This paper discusses the significant benefits and potential obstacles that may be encountered when you implement a batch scheduling system within your organization.

            
A batch scheduling system automates running computer programs on a defined schedule.


 
What is a batch scheduling system?
A batch scheduling system, or scheduler for short, automates the running and monitoring of software applications to ensure critical applications are executed accurately and on time. A scheduler can operate 24/7 without human intervention.

You tell a scheduler what programs to run, at what time, and on what computers. At the scheduled run time, the scheduler will automatically initiate the application on the specified computer and then monitor the progress until the application has completed. Upon completion, the scheduler will retrieve the return status code from the application program and can notify the appropriate support persons if there is a failure.

Manual tasks are prone to errors.

Manual procedures are prone to error
Relying on office staff or a computer operations department to manually run needed software applications by following procedure runsheets, on specific days at specific times, is time consuming and error prone. Time can be wasted while an employee is waiting for a particular time to start running a program or when monitoring a running application for errors while waiting for it complete.

Using a scheduler can significantly reduce errors that occur due to manual procedure failures and oversights by accurately and consistently executing programs at their specified run time.

Application execution procedures are defined and stored in the scheduler. Documented procedures
On occasion, knowledge of how to run certain applications may be known by only one person or a limited group of people. If these employees are sick, or worse, leave the company, the business may have a difficult time trying to figure out correct procedures for executing the needed applications. Lost understanding of operating procedures could have serious effects on maintaining business as usual.

Dependency of business processes on specific employees can be greatly reduced or eliminated with a scheduler because the procedures for running applications are defined and stored in the scheduler system.

Undetected errors = business impact.

Timely error notification
The fact is, errors do and will occur when running computer applications. These errors occur for countless reasons, a bug in an application or bad data in an input file. When errors do occur, it is important that the persons responsible be notified quickly so the error may be diagnosed and corrected in a timely manner.

A scheduler has a built in alert facility for immediate and automated notification using email, beeper or pager, to the appropriate group or individual responsible when a particular application fails to complete successfully. Quick notification can prevent the impact of undetected errors.

Global status at a glance... Cross platform management and control
In some cases, application processes can span multiple operating system platforms. A scheduler provides a means of managing operations on multiple platforms from a single point of control providing for a consolidated view of all operating environments. This is accomplished using a GUI (graphical user interface) program that displays a real time consolidated view of all applications running under the control of the scheduler system at any given time. At a glance, the GUI can display status of all scheduled, running and completed applications across all operating platforms. The GUI can be used to remotely manage applications with actions such as start, hold and cancel.

Scalability... Stand alone vs Distributed
A scheduler system can be configured to operate completely on a single standalone computer or configured and operated in a distributed environment over a computer network where many computers can be involved in running programs under the control of the batch scheduler system.

In addition, a distributed implementation may contain one or more independent scheduler systems. Each system manages its own database and components. The GUI allows for simultaneously viewing each established scheduler system.

Ease of installation... Software installation
Installation of required software for a batch scheduler system is performed by a setup application and you should be able to have the package up and running in a short period of time.

For distributed environments, each computer that will be used for batch scheduling must have the appropriate scheduler software components installed. In addition, distributed operation requires the setup of a centrally located database that is needed by all scheduler components.

For ease of getting started, you can begin with a standalone installation on one computer. The system can be expanded to a distributed environment at a later time.

Implementation should be straightforward for applications that are readily batchable... Implementation
You should start by implementing a single application to get a feel for how the scheduler operates. Once you feel more confident with using the software, begin adding new applications into the scheduler at your own comfortable pace.

Adding a new application to be run by the scheduler is generally a straightforward process (you use the batch definition screens to tell the scheduler what program to run, what computer to run it on, and on what days and times).

Ideally, applications you want to run using a scheduler should be batchable, that is, the programs should be able to run completely unattended from start to finish. Any required input parameters should be able to be entered on the command line or provided in a disk file. In addition, A batchable program should never present a dialog or error message box on the screen which would require a manual keyboard entry or mouse click. This is especially true when operating in a distributed environment. When an application encounters and error, messages should be logged to a disk file. Upon exiting, an application should set the return code status to reflect the success or failure of the application.

In some cases, existing applications require keyboard and/or mouse input in order to produce the desired results. Depending on the complexity of required inputs and commands, "keyboard stuffing" may be used to implement these by having the scheduler pass a predefined set of key strokes to the program once it has started running.

Some applications may need preparation for scheduling. Obstacles
The biggest obstacle to a successful implementation of a scheduler will most likely be applications which are not readily batchable. Applications which require too much human interaction to achieve the desired output may be difficult or impossible to implement successfully. Changes to this type of application may be required to enable the program to run unattended in the scheduler environment.

Sometimes, applications such as those developed in Visual Basic (VB) do not have the ability to set a return code status. This may be ok if there is no real concern for whether an application completes successfully or not. In the case where it is important to know of VB application failures, the application may need to be changed to output a return code to a disk file that can be used by the scheduler to determine application completion status.

Moving forward, new development efforts should plan for the ability of applications to operate properly in a scheduler environment.

Another hidden obstacle that could hinder success might be employee resistance to change and fear of being let go as a result of implementation.

Training requirements vary according to user function. Documentation and Training
Available documentation on the scheduler and functions should be sufficient to educate users about the scheduler operation. Various levels of education and training for using the scheduler may be required depending on the role of individual users.

Administrator
A person performing administrative duties requires a broader understanding of all the components of the scheduler system. This might include functions such as software component installation and configuration, database setup and user/security administration.

Scheduler
Users who perform scheduling functions required to create and maintain batch schedule definitions will require knowledge of the batch management screens and a general understanding of scheduler operation.

Operator
Users who monitor the scheduler operations will require knowledge of how to use the GUI application to monitor and control running batches.

Developers
Software developers require an understanding of what is required for applications to operate properly under the control of the scheduler.

Employee productivity and impact reduction. Benefits and savings
There are several immediate savings which can be realized from a batch scheduler implementation. These savings can be seen in the areas of employee productivity gain, reduction or elimination of dependency on specific employees, reduction of potential business impacts, and in some cases, staff reduction.

The actual saving of a batch scheduling system is difficult to clearly define since it is impossible to accurately predict the cost and impact to business of future mishaps which might have occurred without a scheduler implementation.

Think about some of your time critical applications and what might be the impact of late or missed executions and outputs. Will there be additional impacts because other critical processes are dependent on a failing step.

Another benefit will be having employees engage in more productive activities that are better focused on the missions of the organization. Time otherwise wasted while managing the execution of applications.

One time expenses and recurring costs. Costs
There are several costs associated with implementing a batch scheduling system that you should be aware of. Some of these are one time expenditures such as cost of software and setup and there may be additional recurring costs as well.

One time costs:

Software purchase and support agreement - Cost of software purchase will vary depending on the total number of units required for your installation. Support costs will vary according to the size of the installation.

Installation and setup - Depending on the scale of your installation, employee time will be involved to initially install and configure the scheduler in your environment. Scheduling activities will also be required to convert existing manual processes into the scheduler.

Employee education and training - Time will be required for users to be educated on the use of the system.

Inhouse development expense - Software development activities associated with changes required to prepare existing applications for scheduling.

Capable database system - Optionally, a more powerful database system such as SQL Server or Oracle may be required to ensure efficient scheduler system operation.

Hardware expenses - This expense would only be incurred if you need additional equipment specifically for use with the scheduler system.


Recurring costs:
Annual support - For continued software support and periodic software updates and maintenance, an annual support agreement may be required and cost is dependent on the size of the installation.

Scheduling activities - Time will be required to maintain batch schedules as new applications are added or updated.

Administration - Time will be required for administration of scheduler users and access level security.

Inhouse development - Activities related to ensuring applications are able to be properly implemented in a batch scheduler environment.

Conclusion
Implementing a batch scheduling system will enable your business to run more smoothly and efficiently and prevent errors which occur due to human error and oversights. While there is a cost associated with having and managing a scheduler system, significant benefit and cost savings can be realized over time in several areas including general operating dependability, improved employee productivity, reduced staffing requirements and business impact reductions.

A batch scheduling system also provides management with a complete view of overall operational activities at a glance in a single consolidated view for an entire distributed environment.

Where to go from here
Conquest Data Systems Inc, Deluxe Batch Scheduler System provides a powerful scheduler system with all of the necessary features and capabilities described in this white paper at a very reasonable cost.

You may try the complete software package for a free evaluation by clicking the following link to setup the programs on your computer: Software setup application

Additional information and complete online documentation for this package may be found at the following link:
Deluxe Batch Scheduler Information


A final note
Thank you for taking the time to read this document. I hope you have found the information contained useful in your decision making process.

If you have any additional questions or comments, you may send email to Comments-at-ConquestDataSystems.com ( please replace '-at-' with the @ sign in the email address, this is done to avoid unwanted spam.)