ControlTier Inc. > Open.ControlTier
 
Font size:      

Workbench: Automation Designer

Overview

Workbench provides a number of graphical automation design features. You can use Workbench to define new types in the configuration data repository, introduce new artifact types in the package repository, and define new CTL automation control modules , commands and workflows. Workbench also provides graphical interfaces to view and edit your project's object model.

Workbench's automation design features are the graphical counterpart to the ProjectBuilder command line based utility.

Whether you prefer a graphical interface or source-based text files to define your automation model, Workbench is a handy integrated toolset to share and maintain your configuration and control model.

Example Uses

Type modeler

ControlTier uses an object-oriented approach to describing things and actions in your world. Each object is an instance of a defined type. ControlTier includes a standard set of base types (like Resource, Setting, Assembly, Managed-Entity, Package, Deployment, Service, Site) but you can define your own types, too.

Workbench's type modeling features help you manage your type model by providing tools to create, edit and browse types. One useful feature is Workbench's class browser available in any type view page. This class browser lets you conveniently navigate any direction of the class hierarchy, as well as listing instances of any type.

Workbench: Type view

An important aspect of the ControlTier model schema are constraints. Constraints let you define rules that govern how instances are created and edited. For example, you can define a set of allowable literal values for a given type property. You can make one of these allowed values, the default one. You can even enforce that only one of the allowable values can be selected.

The ControlTier model lets you represent application infrastructures as a network of interconnected objects. Another kind of constraint controls these interconnections. You can use this kind of constraint to define a policy that is enforceable by Workbench. For example, you can define a constraint that governs what parent and child dependencies a given type of object can have. You can define if only one or many kinds of a given dependency are allowed (i.e., cardinality).

Workbench: Type constraints

Command editor

A type's behavior is defined as a command and represent control operations. Via the inheritance model, subtypes inherit commands defined in their supertype. Workbench includes a graphical interface to view, create and edit commands. Workbench processes these command definitions for a type, and generates a usable CTL control module.

Choosing the "Commands" tab when viewing a type lists the commands defined in that type and any inherited from its supertype. You can create new commands and then select which kind of implementation you want to use. Implementation choices include shell (eg, bash or cmd.exe), Ant, Bean scripting framework (BSF) or Workflow.

Workbench: Type commands

Each command can have a set of options declared for it. Options that take arguments can have those options defaulted to a literal value, or an attribute. Attributes are defined by the type model, or data can be imported from other objects. This approach encourages very resuable and flexible commands that are data-driven.

Workbench: Command options

Workflow commands

Commands defined in a type can be combined together into a workflow. Since a workflow is a command, you can define a structure of workflows (i.e., one workflow can call another). This lets you build up layers of automated steps.

A workflow's command sequence executes in a configurable number of threads. By default, workflows execute in a single thread and therefore execute serially. You can configure a workflow to execute commands in parallel by raising the thread count.

If an error occurs within one of the commands in the sequence, control is passed to the error handler. Workbench's workflow editor lets you choose how to handle errors. You can ignore and supress error messages, fail immediatly, send notifications or execute another command.

Workbench: Type workflow

Of course, you can also model workflows using ProjectBuilder and XML definition (workflow reference)

Object editor

Workbench provides a graphical view into your project's object model. Instances of types are called objects. After navigating to any type, you can see the objects defined for that type (or any subtypes) by clicking the "Objects" tab. The Objects tab also includes a button to create new objects. Any constraint defined for that type will affect the UI controls.

Workbench: Object new

After an object has been created, Workbench lets you view various aspects of the object. The "Details" tab shows attribute vales for that object and child and parent dependencies. The "Commands" tab shows the commands that are defined in the type, as well as links to running that command via JobCenter. The "Properties" tab displays the object data in key value pair format (Java properties).

Workbench: Object view

From the "Browse/Search" control, you can access the Workbench class browser to navigate to other types. You can also search for other objects from the object view page. The object search function lets you search the project model using various keywords.

Workbench: Object search

Interfaces

Input

Form-based GUI Workbench includes both a graphical type and object editor. With the type editor, you can create your own data types, relationship constraints, attribute defaults, commands and workflows. The object editor lets you create and modify instances of your data types and link objects together to define relationships.w
Workbench: form gui
XML XML specifications can be used used to define new data types or populate the repository with your information.
Workbench: ProjectBuilder
Scripted You can use Workbench CLI tools to script the definition of new types and objects.
Workbench: Scripted input