You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Management design notes:

attached: schema of mgmt data from Qpid C++ broker, needs to be correlated with Java broker when Java broker is updated to 0-10.

Todo / info to fill out:

  • Management cmd line client
  • Management data formats
  • Gateway defintions for SNMP, JMX etc..

Management Requirements

  • Must operate from a formally defined management schema.
  • Must support the following operations
    • SET operation on configurable (persistent) aspects of objects
    • GET operation on all aspects of objects
    • METHOD invocation on schema-defined object-specific methods
    • Distribution of unsolicited periodic updates of instrumentation data
      • Data updates shall carry an accurate sample timestamp for rate calculation
      • Updates shall carry object create/delete timestamps.
      • Transient objects shall be fully accounted for via updates. Note that short-lived transient objects may come and go within a single update interval. All of the information pertaining to such an object must be captured and transmitted.
    • Distribution of unsolicited event and/or alert indications (schema defined)
  • Role-based access control at object, operation, and method granularity
  • End-to-end encryption and signing of management content
  • Schema must be self-describing so the management client need not have prior knowledge of the management model of the system under management.

Definitions of Terms

class

A type definition for a manageable object.

object

Also "manageable object". An instantiation of a class. An object represents a physical or logical component in the core function of the system under management.

configuration element

A typed member of a class which represents a configurable attribute of the class. Configurable attributes are persistent on the system under management (i.e. they are inherent to the system or are stored in a configuration file on the system).

instrumentation element

A typed member of a class which represents an instrumentation attribute of the class. Instrumentation elements are typically counters or state values.

method

A member of a class which represents a callable procedure on an object of the class. Methods may have an arbitrary set of typed arguments and may supply a return code. Methods typically have side effects on the associated object.

event

A member of a class which represents the occurence of an event of interest within the system under management.

management agent

A software component built into the broker that handles management traffic and distributes management data.

The Management Exchange

The management exchange (called "qpid.management" currently) is a special type of exchange used for remote management access to the Qpid broker. The management exchange is an extension of the standard "Topic" exchange. It behaves like a topic exchange with the following exceptions:

  1. When a queue is successfully bound to the exchange, a method is invoked on the broker's management agent to notify it of the presence of a new remote managment client.
  2. When messages arrive at the exchange for routing, the exchange examines the message's routing key and if the key represents a management command or method, it routes it directly to the management agent rather than routing it to queues using the topic algorithm.
    The management exchange is used by the management agent to distribute unsolicited management data. Such data is classified by the routing key allowing management clients to register for only the data they need.

Routing Key Structure

As noted above, the structure of the binding and routing keys used on the management exchange is important to the function of the management architecture. The routing key of a management message determines:

  1. The type of message (i.e. operation request or unsolicited update).
  2. The class of the object that the message pertains to.
  3. The specific operation or update type.

Placing this information in the routing key provides the ability to enforce access control at class, operation, and method granularity. It also separates the command structure from the content of the management message (i.e. element values) allowing the content to be encrypted and signed end-to-end while still allowing access control at the message-transport level. This means that special access control code need not be written for the management agent.
There are two general types of routing/binding key:

  • Command keys have the structure: method.<class>.<method> where
    • <class> is the name of the class as defined in the schema, and
    • <method> is one of "get", "set", or a schema-defined class-specific method name.
  • Unsolicited keys have the structure: mgmt.<type>.<class> where
    • <type> is one of "schema", "config", "inst", or "event", and
    • <class> is the name of the class as defined in the schema.
      In both cases, the content of the message (i.e. method arguments, element values, etc.) is carried in the body segment of the message.

Management Message Body Structure

''To be Supplied''

  • No labels