Introduction to Key Concepts
This topic provides an overview of the architecture of adTempus, introducing key concepts and components of the software.
adTempus is highly modular in design. This means that there are many pieces (we will call them "objects"), most of which are fairly simple, that can be combined in many ways to produce complex configurations.
Before we proceed, we will outline an example that will be used to illustrate concepts as we go.
You need to automate the nightly update of your organization's data warehouse. This involves several different steps:
- Download a data file using FTP.
- Load the downloaded data into the data warehouse.
- Run the process that reprocesses the data warehouse and rebuilds the data cubes.
Note that each of these three steps involves a single discrete task.
Jobs, Steps, and Tasks
Because adTempus is a job scheduler, the central object is the Job. In adTempus the job contains all of the information needed for adTempus to accomplish a specific goal for you. Each job contains one or more Step; each step executes a single Task.
In our example above, our goal is to complete the nightly data warehouse update; this becomes our job. Each of the three steps we listed above becomes a step within the job.
Note that in some other automation tools, "job" and "task" are synonymous: each of the steps above would be a separate job and the jobs would be linked together to complete the entire process. While you could set up your processing flow this way in adTempus, it is often easier to manage fewer jobs with more steps than more jobs with fewer steps. For more information, see the Multiple Steps vs Separate Jobs topic.
The task represents a single operation that adTempus is to perform (typically, a single program, script, batch file, or other operation that it is to execute). adTempus supports several different kinds of tasks that allow you to run programs, scripts, and batch files; launch documents; restart the computer; control services; and more. For more information, see the Tasks topic.
For more information, see the Jobs and Tasks topics.
Triggers
Jobs can be started manually (a user tells adTempus to run a particular job) but are generally started automatically by adTempus at specified times, or in response to other events on the computer.
A Trigger is what tell adTempus when to run a job. For example, if you want your data warehouse update to run at 11:30 each night, you would add a schedule trigger to the job to trigger it at 11:30. Other kinds of triggers allow you to create jobs that will run in response to other events, such as when a file is uploaded to a particular directory on your server.
For more information, see the Triggers topic.
Conditions
Conditions place restrictions on whether a job or step should run. For example, you can specify that a job should run only if a particular file exists.
Conditions do not cause a job to start—only triggers do this. Conditions are evaluated aftera trigger starts a job.
For more information, see the Conditions topic.
Responses, Events, and Actions
Responses allow you to respond to state changes during the execution of a job, and to customize the flow of execution within and between jobs.
At various points during the execution of jobs and steps, adTempus fires Events. For example, an event is fired when a job starts, when a step starts, when a step finishes successfully, if a step fails, etc. To each of these events you can attach Responses, which specify Actions adTempus should execute when the event occurs. Actions allow you to execute other jobs or steps, send notification messages, capture files, and run scripts.
Using a Response, for example, you can send an e-mail notification message when a job fails or start the next job in a sequence when the job succeeds.
For more information, see the Responses topic.
Job Groups
Job Groups allow you to organize your jobs into "folders" for easier management in the Console. Job Groups are simply a visual organizational tool, and do not create any sort of relationship between the jobs in a Group.
For more information, see the Job Group topic.
Job Queues
Job Queues allow you to limit the number of jobs that can run at the same time, or prevent certain jobs from running at the same time.
For more information, see the Job Queue topic.