System and method for defining run books

In a computing environment, metadata may be used to define common aspects such as verbs, policies, categories and variables of run book procedures. Variable data of the procedures may be stored in application files. A procedure may be generated by retrieving a pre-defined metadata definition of a procedure from a metadata database and an application file for the procedure that contains the variable data for the procedure. The metadata and the variable data may be formatted into a procedure which may be incorporated into a run book and/or transmitted to an external machine for execution of the procedure.

FIELD OF THE INVENTION

This disclosure relates to systems and methods for aggregating procedures and in particular to defining and documenting procedures of an organization. This disclosure also relates to systems and methods for creating and automating procedures within an organization.

BACKGROUND OF THE INVENTION

Run books are necessary in an organization for documenting the procedures by which the organization operates. A run book may electronically or physically document start up and shut down procedures as well as emergency or crisis management procedures. A run book may also be used to implement the day to day procedural policies of an organization. A particular requirement for run books is to provide sufficiently detailed instructions to enable the organization to operate in the absence of the usual system administrator. Traditional run books are a set of non-computerized steps or actions that have been produced and maintained manually.

What is required is a system, method and computer readable medium that enables run-book procedures to be defined, documented and/or executed from within a computing environment.

SUMMARY OF THE INVENTION

In one aspect of the disclosure, there is provided a method for creating and managing automated computing system run book events comprising. The method comprises defining a plurality of metadata elements, storing the plurality of metadata elements in a database, defining at least one procedure comprising at least one of the plurality of metadata elements, receiving a request for a procedure, retrieving the metadata elements for a requested procedure, and formatting retrieved metadata elements into a procedure.

In one aspect of the disclosure, there is provided a system for generating a run book comprising a plurality of metadata elements, a plurality of application files comprising variable data, and a plurality of procedure definitions defined using at least one of the plurality of metadata elements and at least one of the application files.

In one aspect of the disclosure, there is provided a computer-readable medium comprising computer-executable instructions for execution by a processor, that, when executed, cause the processor to receive a trigger for a procedure, retrieve metadata for a procedure from a database, and format the metadata into a procedure.

DETAILED DESCRIPTION OF THE INVENTION

The present disclosure utilizes the manipulation and use of metadata by a user of that data. Specifically a user and a system can utilize metadata definitions and combinations to define and action services for an organization.

Metadata (meta data, or sometimes metainformation) is “data about data”, of any sort in any media. An item of metadata may describe an individual datum, or content item, or a collection of data including multiple content items and hierarchical levels, for example a database schema. In data processing, metadata may include definitional data that provides information about or documentation of other data managed within an application or environment.

For example, metadata may document data about data elements or attributes, (name, size, data type, etc) and data about records or data structures (length, fields, columns, etc) and data about data (where it is located, how it is associated, ownership, etc.). Metadata may include descriptive information about the context, quality and condition, or characteristics of the data.

This disclosure provides for the extension of this information in a manner that allows metadata users to catalog and link objects in a peer-to-peer fashion. Through the linking of metadata defined objects that can be executed on computing systems with the association to an organization, a company can define a run book.

InFIG. 1, there is shown a system10for aggregating procedures into a run book. In the system10, a metadata services module11retrieves metadata from a metadata storage12and data stored in a data storage13. The metadata may include variables21, categories22, verbs23, and policies24and step/conditional elements25, as will be described in greater detail below, which can be used to instantiate the contract organization computing procedures and procedure navigation framework within a computing system. This metadata describes the methods to implement computing system activities on computing system consumer machines. Examples of computing system activities may include configuration (or re-configuration) of machines, testing, maintenance, etc.

The metadata services module11of the system10may use the metadata of metadata storage12to form procedures, as will be described in greater detail below. An aggregation services module15of the system10may receive procedures from the metadata services module11to formulate a run book of procedures for the system10. The aggregation services15may format the aggregated run book into a presentation16, which may be a human readable presentation or a machine readable presentation. In addition, the aggregated run book may be presented to an external system machine (not shown).

InFIG. 2, there is shown a system20for creating and managing automated computing system run book events. In addition to the metadata storage12and data storage13, the system20includes an application server27, which may include the metadata services11and/or aggregation services19shown inFIG. 1. The application server27may use the metadata verbs, parameters and procedures to provide a dynamic aggregation method that provides the ability to establish, edit and offer to computing system providers a mechanism to create, document and execute new metadata driven procedures. These methods can be instantiated by pre-determined events or may be scheduled for action. A web server26provides a presentation server that in one instance may be used as an interface, such as a metadata aggregation layer29, for a user to access the application server for creating the metadata and defining metadata driven procedures. In a second instance, the web server26may present metadata driven procedures from the application server27to one or more workstations29in a presentation cluster28. The workstations29may include laptop computers, desktop computers, hand held computer or any other appropriate computing devices as will be apparent to a person skilled in the art.

The metadata storage12may be based on a relational database management system environment that can store the metadata elements (verbs, policies, categories, variable definitions and conditional step) that comprise a procedure. The data of data storage13is typically a series of application files, e.g. procedure files, that contain the variable data used in a procedure.

A method for creating and managing automated computing system run book events in the systems10,20is illustrated in the flowchart100ofFIG. 3. Initially, the metadata elements are defined101and stored102in the metadata database12. Once the metadata elements have been defined, one or more of the metadata elements may be used to define a procedure103. When a request for a defined procedure is received104, the metadata elements for a requested procedure are retrieved105and formatted into a procedure106.

InFIGS. 4 and 5, there is illustrated a process flow200for a run book procedure. At step201, a system server such as the application server27, identifies the need for a procedure to be executed. The procedure may be started either via a predetermined date-time or by an externally occurring computing system event. At step202, the application server27begins processing the request by retrieving a data file pertaining to the procedure from the data storage13. The data file provides variable data based on the start action requirement for data definitions. At step203, the application server20retrieves the metadata for the procedure from the metadata storage12. At step204, the application server20formats the metadata components into a procedure using the variable data from the data file and subject to the metadata constraints. Conditional evaluations (if-then-else) may be added at step205and then the procedure may be formatted into a computing system message that can be communicated to an external system206. The message is transmitted to an external machine (workstation or server) for processing at step207. The message may be a computer message that encapsulates the procedure actions/results. For example, in step206, the message may be formatted as an “XML” message packet. The external computer may then format the message per the application or instructions may be utilized to format the message to a human readable format.

Metadata driven procedures may be defined through the web server26. In a specific example, a plurality of workstations may require common configuration changes. These configuration changes may be stored as metadata driven procedures. For example, a procedure to establish a system wide policy for password length may be defined as a metadata driven procedure. During a definition process, a user, operating through an interface such as the interface60illustrated inFIG. 6, may create and/or edit a procedure for a password length requirement. The Password Length procedure may be placed in a Configuration Changes category61(FIG. 7). Initially, a Conditional requirement (if)62may be added in a design window63using the “Peer IF” icon64. In the present example, the Conditional requirement62is set to “Always True”, meaning that the Conditional requirement will always be met and thus the subsequent steps will always execute. However, in some examples, the conditional requirement may only be satisfied under some conditions.

After the Conditional requirement62, a procedural step65is added using the “Peer Step” icon66. The step65represents a pre-defined verb from the metadata set12and is selected by a drop down menu67in the Step Properties window68. In the present example, the “Set Registry Value” verb is selected. Examples of alternative verbs are shown in the Step Properties window68.

Once the specific metadata verb is selected for the step, additional metadata elements defined in the metadata set12as corresponding to the verb are shown, as illustrated in the instance of the interface60shown inFIG. 7. For the present example, a policy71is set that indicates the operating system(s) on which the step is enacted. In the specific case, the policy71indicates that the step is to be enacted on “All operating systems”, since this procedure is executed when common configuration changes are required. Other possible values for this policy include a specifically indicated workstation, a list of workstations, a network, a host workstation, or a workstation that provided a procedure request.

Further metadata elements defined for this step include variables for a path to a registry key containing a value72, a data field73containing a specific data value to write to the registry key and the data type74of the data that will be written to the registry key. Data for the specific variables is entered and stored in an associated application file in the data storage13.

The present procedure example shows only a single step (or verb) to be undertaken, however a person skilled in the art will recognize that multiple steps may be defined for a procedure. At the conclusion of the procedure definition, the procedure consists of a series of steps defined by metadata elements.

At some later time, a configuration change request may be received by the application server that triggers the Password Length procedure. When the procedure is triggered, the metadata elements are retrieved from the metadata storage12together with the data from the data storage14. Specifically, the Conditional element62and the set registry value65verb element are retrieved. To these metadata elements are added the specific data values72,73,74for the step65to complete the formulation of the procedure. The metadata elements are then formatted into a procedure, such as a series of commands that instruct the indicated registry key to be updated to the indicated value having the indicated datatype. The commands are formatted into a message that is sent to all operating systems, in accordance with the policy71, which process the commands to update the registry value as required.

It can be seen through the above examples, that the metadata elements can be used as the building blocks for procedures. Steps common to multiple procedures may be defined as individual metadata elements. In particular, actions such as the “Set Registry Value” step, may be common to many different procedures. Pre-defining these actions as verbs in the metadata allows the common commands of the step to be defined once only. The variable data, such as the registry path, registry value, and registry value type, may be drawn from an application file pertaining to a specific procedure. For example, a procedure to set the default browser web page may include the same “Set Registry Value” metadata element but may draw its variable data from a different application file which contains the values including a registry path to the default web page register and a value for the default web page address.

Procedures may be defined in a variety of ways and for a variety of purposes as follows:

Module-specific procedures. Module specific procedures may be categorized for each application module. For example, a service desk could have six types of procedures used to automate service desk business processes. Since these procedures apply only to service desk, they are listed in the “Service Desk” category.

Procedures serve dedicated purposes. These procedures may only be selected if they are designed from the beginning to support a particular function. For example, each procedure drop-down selection list in the configuration tables only shows procedures of the appropriate type for that drop-down list.

Specialized IF-ELSE options. Each type of procedure provides only the subset of IF-ELSE commands available that make sense for that type of procedure. This guides users to workable procedure solutions faster.

Events-based vs. Scheduled. Types of procedures are further organized by whether they run immediately (event-based) or run a specified time after an event has occurred (scheduled).

Multiple procedures may be brought together to generate a run book. Run books may be generated for specific procedures, such as for the above definitions, by category, or other appropriate groupings.

Examples of definitions of the different metadata types will now be described.

Variables. The Variables set defines variables used in procedures. A variable may include the following attributes:Name—The variable name.Description—A brief description of the variable.Verb Set—The verb set determines where the variable can be used. Use any verb set type of variable in Policies. Two variables with the same name can be defined, providing they are assigned different verb sets. Set options include:Notify—Applies to Change Tickets procedures.Escalate—Applies to Ticket Escalations procedures.Goal—Applies to Ticket Goals procedures.Event Dup—Applies to External Event Duplicates procedures.Event Map—Applies to External Event Maps procedures.Field Map—Applies to Stage Entry or Exit procedures.All—Applies to all procedures.Value—The default value of the variable.

Policies

Policies regulate how a set of procedures can be used, including when a resource may be contacted, the method of contact used, resources available and other requirements. A variable can be assigned to a policy. Procedures can both read and override the value set by a policy variable.

In one example, an “Hour's Covered” record is assigned to a Policies record A, and a Policies record is assigned to a stage definition.

A policy may include the following attributes:Name—The record identifier.Description—A brief description of the policy.Policy Hours—Assigns a variable such as Hour's Covered record to this Policy's record.Contact by—Assign a second variable.Time Measured Against Coverage—goals and escalations defined include Hours Covered when calculating escalations. For example, if a new event is created, escalation may be scheduled for two hours, and then escalation won't occur until two hours after the next scheduled event period starts. If blank, calendar time alone is used.

Category

Categories define the groupings a procedure is under. Generally it is associated with the set of actions that are taken by the procedure (e.g., configuration changes, service desk, back-up, anti-virus, etc.).

A category may include the following attributes:Name—The record identifier.Description—A brief description of the policy.

Verbs

Verbs define actions to be taken within a procedure. The action is on a variable or on a template. In an example for sending a message, the verb “Send” tells the system to do something on a template “message” with a verb that is passed “data”.

The following provides a summary of some additional Step statements:Add a Note: adds a note to the event being processed by the procedure;Assign Property: assigns a value to a field;Execute Script: starts another procedure;Delete an event: deletes the event being processed by the procedure;Get Variable: gets an entered value or a value from a file;Send Email: sends an email to one or more recipients;Send Message: displays a message in a dialog box on the managed machine;Set Escalation Time: sets the time for escalation;Set Goal Time: sets the time a stage goal is scheduled to be completed;Write Script Log Entry: write a string to the Script Log.

The following provides a summary of some additional conditional (if/else) statements:Check a Variable: evaluate a given variable;Test a Property Value of the New Ticket: compares the value of a field to a specified value or variable;Test Property Value of the Receipt: compares the value of a field in an inbound email to a specified value or variable.

A user may create, define and edit any of these metadata elements through the interface60illustrated inFIGS. 6 and 7. In one embodiment, the interface60may be provided through the web server26.

The web server26also provides an interface to format a procedure into a computing system message that shall be transmitted to an end machine. The message may be acted on by an agent resident on the end user machine.

One use of the systems described above is the formulation of run books. Metadata driven run books have advantage over the way run books are historically put together including the ability to provide computing system procedure driven activities and have them self document the business process.

The components of the systems10,20may be embodied in hardware, software, firmware or a combination of hardware, software and/or firmware. In a hardware embodiment, the application server27may be provided in a device, such as a computer, etc including a processor61operatively associated with a memory62as shown inFIG. 8. The memory62may store instructions that are executable on the processor61. An instruction set300that may be executed on the application server processor61is depicted in the flowchart ofFIG. 9. Specifically, when executed, the instruction set300allows the processor to receive a trigger for a procedure301. In response to the trigger, the processor61may retrieve metadata for the procedure from a database (step302), such as the metadata database12shown inFIG. 2. Though not depicted, the processor may also retrieve variable data for the procedure from the variable datastore13. At step303, the processor61formats the metadata and any variable data into a procedure.

As shown inFIG. 10, the application processor61may communicate with further processors, such as an external machine processor71with associated memory72, through a suitable communications link65. Through the communications link, the application server processor61may provide the formatted procedure messages for execution on the external machine.

Although embodiments of the present invention have been illustrated in the accompanied drawings and described in the foregoing description, it will be understood that the invention is not limited to the embodiments disclosed, but is capable of numerous rearrangements, modifications, and substitutions without departing from the spirit of the invention as set forth and defined by the following claims. For example, the capabilities of the invention can be performed fully and/or partially by one or more of the blocks, modules, processors or memories. Also, these capabilities may be performed in the current manner or in a distributed manner and on, or via, any device able to provide and/or receive information. Further, although depicted in a particular manner, various modules or blocks may be repositioned without departing from the scope of the current invention. Still further, although depicted in a particular manner, a greater or lesser number of modules and connections can be utilized with the present invention in order to accomplish the present invention, to provide additional known features to the present invention, and/or to make the present invention more efficient. Also, the information sent between various modules can be sent between the modules via at least one of a data network, the Internet, an Internet Protocol network, a wireless source, and a wired source and via plurality of protocols.