Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Introduction

SOS offers to migrate existing migration of jobs and dependencies of the Control-M® scheduling product to JS7 JobScheduler.

  • JS7 brings comparable capabilities to Control-M®.
  • JS7 maps dependencies from Control-M® In Conditions and Out Conditions to JS7 workflows.
    • Control-M® implements a job job net in which any job can be related to any other jobs by In/Out Conditions.
    • JS7 is oriented towards a Directed Acyclic Graph (DAG) which is a clean foundation for a finite state machine that allows workflow patterns.
      • Benefits of a DAG include that it prevents illegal circular references, that it allows to predetermine the execution path and that it can be cleanly visualized.
      • Benefits of workflow patterns include that they are clearly understood, are standardized and prevent any ambiguity that comes with arbitrary relationships in job nets.
    • The mapping of a Control-M® job net to a JS7 DAG with workflow patterns is performed by the JS7 Converter utility that is offered as a service.
  • JS7 supports calendars and schedules similar to Control-M®.

...

Migration of Control-M® jobs starts from an export of the job inventory using the deftable utility. The utility exports data from the Control-M® database to an a file in XML format. This file is used as input to the JS7 Converter.

...

In the Control-M® we find Smart Folders and Sub-Folders for the grouping of jobs. Folders preferably serve the visibility of job groups. As any job can use arbitrary In Conditions inside and outside of a folder there is no meaning for of folders other than specifying the limits of visibility.

...

Mapping of Job Dependencies

Control-M® makes use of loosely structured dependencies that are managed from a job net:

  • Each job optionally is assigned one or more Out Conditions that are triggered after successful or unsuccessful execution of the job.
  • Each job can be assigned one or more In Conditions that make the job wait for execution until the In Conditions are met.

...

  • Job dependencies are visualized in SVG files that consider boundaries of Smart Folders and Sub-folders.
  • The visualization is guaranteed to correspond to the later mapping conversion of job dependencies. It allows users to check from a glance that dependencies are accurately understoodanalyzed.

Mapping to Workflow Patterns

The JS7 Converter utility analyzes the Control-M® job net and maps dependencies to workflow patterns.

The following patterns are applied by the JS7 Converter.

Sequence

If a number of jobs each are related by a single Out Condition that is used as the only In Condition of a successor job then this dependency is converted to a Sequence of jobs like this:

...

Jobs with the same In Condition make it for parallel branches in a JS7 - Fork-Join Instruction. Jobs in branches are executed in parallel. Each branch can have include any number of successor jobs from a Sequence or other JS7 - Workflow Instructions. Forking can be nested.

...

For jobs that use In Conditions from other jobs that are not included with the same Smart Folder or Sub-Folder external dependencies are created. They are mapped to use of JS7 - Notice Boards and include use of the JS7 - PostNotices Instruction and JS7 - ExpectNotices Instruction like this:


...

Operations on Conditions

Control-M® offers a number of operations on Conditions:

...

  • By design there is no JS7 workflow instruction to delete a Condition/Notice that has not been waited for.
  • Instead, waiting and deleting one or more Conditions/Notices is considered a distributed transaction.
    • If more then one Condition/Notice is waited for then all of them have to be available.
    • The same In Conditions can be specified in a number of workflows that are executed in parallel. The fact that a first workflow will expect and acquire one or more In Conditions does not prevent parallel workflows from acquiring the same In Condition. The JS7 will propagate and synchronize deletion of In Conditions which allows parallel workflows to complete processing of a ConsumeNotices Instruction block and only then the In Condition will be deleted. 
    • Consider the fact that jobs inside ConsumeNotices Instructions referencing the same In Conditions are executed autonomously by JS7 Agents. It is understood that transactional behavior includes to synchronize results of any JS7 Agent involved in executing such jobs.

Operators for Conditions

Both the JS7 - ExpectNotices Instruction and JS7 - ConsumeNotices Instruction can make use of Boolean operators when specifying more than one Condition.

  • Conditions can be combined with && (and), || (or).
    • Example: condition1 && condition2 
  • Brackets can be used to specify the precedence of operators.
    • Example: (condition1 || condition 2) && condition3

This maps to Control-M® use of Boolean operators for In Conditions.

Mapping of Calendars and Schedules

...

  • The Control-M® job inventory provided from the deftable utility does not indicate calendar rules but specific days per year only. This makes little sense for conversion as users do not want to specify individual days but want to specify rules such as Mon-Fri, 1st day of month, 2nd last day of month etc.
    • JS7 offers a wide range of rules to specify calendar dates, see JS7 - Calendars.
    • JS7 calendars and schedules are more flexible than what is offered with by Control-M®.   JS7 - Schedules reference a given calendar and can be used to further restrict the resulting days by own rules. This means that users are not forced to create individual calendars per rule but can work with very a few base basic calendars, for example for all days and for weekdays, and apply restrictions at Schedule level.
  • As a result users typically will rework their calendars to reduce the overall number of calendars and to apply the more versatile calendar rules offered by JS7. However, uses users are free to stick to use of a larger number of calendars that they manage at annual basis.
  • The JS7 Converter creates calendar objects that specify all days of the year and that require to be reworked by the user to map days to the underlying rules.

Schedules

JS7 - Schedules are automatically created from start times specified for jobs with the Control-M® inventory.

  • Control-M® does not know the concept of Schedules shared by one or more jobs.
    • Instead, jobs inherit or specify a calendar that provides the given days and they indicate the start time for which the job should run.
  • Conversion
    • If Control-M® jobs consider In Conditions then the start time specified is not necessarily the effective point in time of job execution. Instead the calendar and start time determine the earliest point in time of job execution provided that the In Condition is met. The JS7 Converter maps this configuration to use of JS7 - Admission Times for Jobs, see next chapter.
    • If Control-M® jobs use a start time but do not make use of In Conditions then the JS7 Converter will create a Schedule that is considered for the JS7 - Daily Plan.

...

  • If an order arrives at a job in a workflow before begin of opening hours then the order will wait for the given timeslot on the same day.
  • If an order arrives at a job after end of opening hours then the order will wait for a timeslot on the next day indicated by the job's opening hours.
  • If no admission times are specified for a given day (weekday, day of month or specific day) then the job will be skipped and the order will proceed in the workflow.

...