Data Collection Conceptual Model


Contents

Introduction

The essential components of the TPTP data collection framework include the Client (normally the Eclipse workbench), the Agent Controller, and the Agent(s).  The Client resides on the Source Machine. The Agent and Agent Controller reside on the Target Machine (which may or may not be the same as the Source Machine). Data is communicated between the Client and the Agent via the Agent Controller through three channels: the Control Channel, the Data Channel, and the Console Channel. The following diagram shows the data collection components and indicates their relationships.

Source machine connects to target machine via data, console and control channels

Number Text Number Text
1   Source Machine 6   Target Machine
2   Client (e.g. Eclipse* Workbench) 7   Agent Controller
3   Control Channel 8   Agent
4   Data Channel 9   Application
5   Console Channel 10   To or From Additional Agents

The three components of the TPTP data collection framework are inter-related.  Data cannot be collected and visualized without the involvement of all three components. 

Data Collection Component Relationships

The following relationships exist between the data collection components:

The Agent and the Agent Controller reside on the same machine (the target machine).  The Client may reside in a different machine (with the Eclipse workbench), or on the same machine as the Agent Controller.  In either case, the Client and Agent Controller communicate in the same manner as indicated in the diagram.

Data and Control Channels

The channels indicated in the above diagram are logically separated to represent the kinds of information and the flow direction of that information between the components.  The actual connections used between components is not a one-to-one mapping, and it is configurable.  The channels are:

Control Channel
The bi-directional Control Channel between the Client and the Agent Controller allows the exchange of command-formatted messages.  The Client makes requests and the Agent Controller sends responses.  A separate control channel exists between the Agent Controller and an Agent.  A Client can exchange control messages with an Agent, but the Agent Controller is in the middle of the exchange when using the control channel.  The control channels are set up when a Client or an Agent initiates contact with the Agent Controller through a pre-configured port or named pipe.
Data Channel
The Data Channel can be either a uni-directional or bi-directional channel over which data of any form can be sent.  Information in the Data Channel is not required to be in the form of a control message.  Typically, the Client establishes half of the channel and then sends a request (along with its own handle) to the Agent that it wants to exchange data with, and telling it to create the other half of the channel.  The Agent then asks the Agent Controller to connect the two halves, thus establishing a Client-to-Agent Data Channel.
Console Channel
A Console Channel is simply a special case of a bi-directional data channel that is used to support an application that requires input, output, or both to a console display.  The Client establishes half of the data channel and then includes that handle in a subsequent request to launch an application requiring console input or output.  The Agent responsible for launching the application reacts to the presence of this channel handle in its launch request by creating the other half of the channel, then asking the Agent Controller to connect both halves.  The Agent then launches the application so its standard input or standard output or standard error data flows across this channel.

Client Interactions

The data collection Client processes and displays data of interest to an end user.  The Client is typically the Eclipse workbench, and the tools and services available within Eclipse are used to display the collected data.

The Client must attach to an Agent in order to begin receiving data.  The Client can attach to an Agent that is already running, or it can launch an Agent using the Agent Controller.  Once the Agent is activated, all Client or Agent communications happen via the Agent Controller.

Agent Interactions

An Agent is tightly coupled with the Agent Controller.  It can be launched by the Agent Controller, by the Client, or manually. When launched, the Agent opens a known communication path and tries to register itself with the Agent Controller.  Once registered, the Agent Controller manages communication between a Client and the Agent.  The Agent typically initializes itself and then waits for control messages (commands).

All Agents respond to a small set of common control messages plus a set of additional control messages as defined by the individual Agent.  For example, Agents that collect data wait to begin collecting and transferring data until after the Client sends the appropriate commands to the Agent. The Agent defines how the data gets sent across the channel.  Some data might be a continuous stream that continues until the Client sends a "request to terminate".  Other data might be sent in segments, on demand from the Client.

Agent Controller Interactions

The Agent Controller provides a set of services that help the Client and Agent to work together.  The following services are available from the Agent Controller:

 

Related tasks
Agent Controller Overview
Administering the Agent Controller
 

Copyright (C) 2005, 2010 Intel Corporation and others.