Job Scheduling Utilities

So you’ve got a pile of jobs on your plate that you’re dying to automate,
right? Well, you say, there’s always the famous (and free) NT “AT” command,
so why bother with custom job scheduling software? Simply put, it’s because
it will allow you to customize your routine batch jobs to copy files from
place to place, set up custom application environments, or do almost anything
else you can imagine. Using job scheduling software, you can automate
tasks you need to accomplish on a daily basis. As long as you can reference
a batch, script or executable file and any associated switches, job scheduling
software can automate the process of running it—and make your life a heck
of a lot easier.

There are many requirements you should take into account when evaluating
job scheduling software. When you’re thinking about the right job scheduling
solution for your own situation, it may help to draw up a table of requirements
and see how well individual products meet your needs. Here are some ideas
to get you started.

First, think about the basic features of the program. What are its disk
space, CPU and RAM requirements? What about compatibility with various
platforms and architectures? Does it support Windows-Based Enterprise
Management (WBEM) and Windows Management Instrumentation (WMI)? These
last two are important because, in many cases, they control how easily
you can customize jobs. You should also look at the client interface and
what (if any) database you’ll need.

What about the core job scheduling and sequencing requirements? You may
want support for both date and time scheduling, including the ability
to schedule random days, omit non-business days and holidays, and so on.
Do you need job chaining (the ability to fire off a second job after the
first one has completed)? How about checking for the exit code on a job
and conditionally chaining? A nice feature would be the ability to customize
exit codes for each job. What sort of alerts and notification do you need?
Is the software capable of job monitoring and restarting stalled jobs?

Product
Information

Read comprehensive reviews of the products featured
in this roundup by clicking on the links here:

Finally, there are some enterprise-level requirements that don’t apply
in all situations. For example, job restarting and checkpointing allow
you to know when a job failed. Another important capability is the delegation
of jobs, giving the administrator the ability to pass the management of
jobs down to people who, while they don’t have administrative rights,
can still manage jobs.

You won’t get most of these features from the venerable AT command. But
all or most of them are within the reach of the three products I looked
at for this roundup: ActiveBatch, SmartBatch32 and JobEngine 4.0.

Advanced Systems Concepts’ ActiveBatch
ActiveBatch uses a three-tier methodology, which increases scalability
but adds complexity to the system. There’s a client component you have
to install on the client computers, as well as a job scheduler and an
execution agent. Execution agents can reside on Windows, Unix or Open
VMS computers (the latter in the ActiveBatch Cross Platform Enterprise
Edition only). The job scheduler and clients live only on Windows NT or
2000. The idea behind ActiveBatch is that you install the software on
the computers participating in the environment then set up a queue from
which you schedule your jobs. Pricing for ActiveBatch is relatively high:
A typical 10-server installation costs around $8,500.

ActiveBatch keeps track of the jobs you’ve run in its Runbook (a term
common to all of the reviewed products), allowing you to keep comprehensive
information about jobs that are scheduled to run, are running and that
have run, as well as each job’s status. The look and feel are similar
to that of Outlook Today. The ActiveBatch demo I ran utilized a proprietary
database; but if you purchase ActiveBatch, it will come with a SQL Server
2000 database from Pervasive and will allow you to use your own ODBC drivers
to connect to an in-house database.

Verdict: Cool, but expensive. If you don’t have cross-platform
needs, look at the other two products. The complexity of learning and
operating the system on a scale of 1 to 5 (1 being the easiest, 5 being
the hardest): 3.

OnLine ToolWorks’ SmartBatch32
There are two editions of SmartBatch32: Standard Edition ($595), for shops
with one or two servers, and Enterprise Edition ($1,195, plus $495 for
each remote agent) for larger installations. SmartBatch32 jobs can be
controlled from a central server (in Enterprise Edition) talking to remote
agents. SmartBatch32 is intended for Windows-only installations and can’t
play in the sandbox with Unix (though you could certainly write scripts
that somehow integrate with Unix systems—through, say, FTP, Samba or NFS—and
then run the scripts through SmartBatch32). The most impressive thing
about SmartBatch32 is its clear delineation of the job scheduling methodology
right in the interface. You can see the main user interface in Figure
1, which shows the Operations area of the product. From there you can
introduce as much detail as you’d like: a series of steps makes up a particular
operation, jobs comprise a series of operations, dependencies exist in
each job and step, and so on. You can think of SmartBatch32 as a repository
for various scripts, executables and other kinds of programs around the
enterprise you need to run on a routine basis.

Figure 1. The SmartBatch32 Operations area provides
a structured view of your jobs.

The online tutorial is well written, and the SmartBatch32 program is
fast! In the Enterprise Edition you can specify which computers the Operation
segment runs on. Also, you can store jobs in multiple ODBC-compliant databases
from the SmartBatch32 admin console.

Opalis Software’s JobEngine 4.0
Opalis has an extremely interesting offering with its JobEngine 4.0. The
product is a monster, at least twice as big as the others in this review—taking
up 60MB of disk space at installation time. RAM requirements are also
hefty, at a minimum recommended 128MB per installation. The idea centers
around a workspace into which you drag various representations of activities
you’d like to perform.

In Figure 2, I’ve dragged a Date Time Event object from the lower-left
Objects-Scheduling pane to the upper-center Workspace pane, giving it
a schedule and a title in the process. Options for adjusting the object’s
properties pop up when you drag an object to the workspace. Next, I dragged
a Run Program Task object to the workspace, filling in the details of
my test batch file. Finally, I connected the arrows between the two, right-clicked
either object, and selected Trigger from the ensuing context menu. Voila!
The batch file ran beautifully. But object manipulation for creating a
routinely running batch file? It felt awkward to me until I caught on.
I think that this idea of dragging objects to a workspace is very cool.
Once you catch on, it takes a lot of the effort out of job scheduling—making
it more graphical in nature and less programmatic. However, this methodology
takes up a lot of system resources, which may make you think twice about
the product.

Figure 2. The Opalis interface is powerful but
takes some getting used to. (Click image to view larger version.)

That being said, the price is right. JobEngine is a bargain at about
$330 per computer. Each purchase grants you a satellite license and a
user license. Satellite means you have the ability to connect remotely
to a computer that’s running JobEngine. User license, of course, deals
with the ability to bring up the UI. JobEngine also comes with a Web interface,
and I found it easy to configure and use from my browser. JobEngine can
store jobs in any ODBC-compliant database. Reports can be generated in
CSV, HTML or text format.

Verdict: Interesting idea, but confusing at first. If price is
a factor, opt for this product. Complexity of learning and operating:
4.

Wrap-up
All three of these products would be quite satisfactory in most environments.
Conceptually, their interfaces perform the same basic functions, though
each has its own look and feel.

It will really come down to two things: cost and cross-platform capability.
If you’re low on money, Opalis JobEngine seems to be the best bet. Alternatively,
ActiveBatch is a nice product and natively supports cross-platform capability
(though if you’ve got an FTP, Samba or NFS thing going, this shouldn’t
be of huge concern to you).

If I were buying the product, I’d opt for SmartBatch32 because I liked
the interface and the way that the company’s engineers designed the product.
But remember, you need to figure out what’s important in your own scripting
environment and evaluate all the choices against your own requirements.