Universal Agent Architecture


Overview

Universal Agent consists of many product components distributed throughout a computer network working together to perform a unit of work. Some components remain executing as long as the operating system on which they are installed remains executing. Other components are being started and stopped, as necessary, when new work is requested.

Universal Event Subsystem (UES) event data provides the information necessary to associate the distributed Universal Agent components working together in performing a unit of work.

Examples of components and their associations are:

  • Universal Command Manager is associated with a remote Universal Command Server, and the Universal Command Server is associated with the job process it has started on behalf of the Universal Command Manager.
  • Universal Data Mover Manager is associated with a remote Universal Data Mover Server, and the Universal Data Mover Server is associated with a file being transferred on behalf of the Universal Data Mover Manager.

The components and their associations partly define the Universal Agent architecture. This page provides the necessary understanding of the Universal Agent architecture as presented by the UES event data.

Components and Associations

UES event data has many references to components. In the context of UES, a component is a Universal Agent program, a job or command, a file, or any object that is being managed by Universal Agent.

Components are highly likely to be associated with other components, since Universal Agent consists of components distributed across a computer network working together to accomplish a unit of work. UES event data represents component associations in order to provide a complete understanding of a distributed unit of work.

Components are uniquely identified using a Universally Unique Identifier (UUID). The UUID format is based upon a version 4 UUID as defined in ISO/IEC 11578:1996. The value of each UUID is unique regardless of the time or location in which it was generated. The UUID allows for each instance of a component execution to be uniquely identified.

UUID Values

There are four UUID values maintained in all event records:

  • Object UUID
  • Parent UUID
  • Unit UUID
  • Group UUID

Object UUID

The object UUID uniquely identifies the component, or object, from all other component instances. No two components will have the same object UUID value.

Parent UUID

The parent UUID defines the association between a child object and its parent object. The parent object either starts or is responsible for the child object. For example, a Universal Command Manager starts a Universal Command Server. In this case, the Server component is the child object and the Manager component is the parent object.

Unit UUID

The unit UUID identifies a set of components working together to perform a service. The set of components are distributed on different host systems and communicating with each other over the network to accomplish the requested service. The set of components is considered a work unit and identified by the unit UUID. An example would be a Universal Command Manager job is comprised of a Manager, Server and Job component. The three components comprise the work unit.

Group UUID

The group UUID identifies a set of work units that are working together to perform a service. Some services require multiple work units to accomplish the service. A work group may consist of one to many work units. An example would be a Universal Data Mover (UDM) Manager that executes a Universal Command Manager (UCM) to perform a service. There are two work units: UDM and UCM.


There is one component that is the head of a work unit and work group. A component with an object UUID that matches a unit UUID is the head of the work unit. Similarly, a component with an object UUID that matches the group UUID is the head of the work group.

Example

The following figure, for example, illustrates several different components and their associations with each other.



The following points should be noted about this illustration:

  • Each component has an object, a parent, a unit, and a group UUID. The object UUID uniquely identifies each component.
  • The Manager component is the unit and group leader, as its object UUID is equal to its unit and group UUID.
  • The Manager, Server, Job, and File objects all have the same unit and group UUID.
  • The Server's parent UUID identifies the Manager as its parent, while the job's parent UUID identifies the Server as its parent.
  • Broker components report on Manager and Server components, but there are no associations made between a Broker and components started on some other entity's behalf.