TPTP Data Collection Framework
Contents
Introduction
The Test and Performance Tools Platform (TPTP)
provides a data collection framework that allows client applications to obtain
data from data-collection applications on various platforms without knowing the
details of how to locate and launch the applications doing the collection. Any
application that provides a service, such as data collection, can become an
agent in this framework. The data collection framework defines the
architecture for agents and clients, and provides the basic building blocks to
create and consume services. A framework is a reusable design expressed as a
set of abstract classes and the way their instances collaborate. The data
collection framework consists of a set of abstract and concrete classes.
The three major components that interact in the TPTP data collection
framework are as follows:
-
Client — An application,
such as the Eclipse* workbench, which interacts with a user to determine
what information is desired and how to display that information.
-
Agent — An application
that generates data or performs a service of interest to a client.
-
Agent Controller — The
process that provides a set of services to help clients and agents work
together without knowing details about each other.
The framework includes a client API and an agent API, each available in Java
or C++. Client and agents communicate using data and control channels that
are managed by the Agent Controller. Because of this interface, both the client
and the agent component are independent of the operating environment or
underlying source language used by the other component.
A client makes requests of an agent using a set of commands defined by the
agent. Requests go through the control channel as XML-formatted fragments.
Agents send simple responses through the control channel and anything else through a data channel. Information sent through a data channel
can be in any format. A DIME-formatted header is attached to each block sent
through the channel so a single physical channel can be used for multiple
purposes.
The client API is an interface to services of the Agent Controller such as
discovering what agents are available, getting a handle to an agent,
establishing a data channel with an agent, getting asynchronous events from an
agent, and launching applications.
An application becomes an agent in this framework when it contacts the Agent
Controller (through a known channel) to register itself. This establishes a
communication channel through which the Agent Controller can forward commands to
the agent. The agent is then expected to listen for incoming requests for its
services on that channel and respond to them.
The user documentation is installed in the
Eclipse Help system. Refer to the Eclipse
workbench Help
Contents section labeled "
Working with the Agent Controller" for
an overview of Agent Controller operation and the tasks associated with
administering the Agent Controller.
The SDK package includes the header files, libraries, and Samples needed to
build new clients and agents (in either C++ or Java) that will work within this
framework. Documentation for the API’s is found in the locations specified
in the "
Developing Java* Clients and Agents"
or "
Developing Native Clients and Agents
using C++" sections that follow.
Developing Java* Clients and Agents
The Java* API specification can be found on the web at
https://www.eclipse.org/tptp/home/documents/resources/javadoc.html.
Start by navigating through the sample client and agents applications and use
cases.
To begin
development of a Java application using the data collection framework you
will need the Eclipse plugin
org.eclipse.tptp.platform.execution . Use the Java API
documentation to guide your use of the execution plugin depending on whether you
are doing client development or agent development.
Developing Native Clients and Agents
using C++
The document for the development of clients and agent using C++ is the
TPTP Data Collection Subsystem External Specification. The quickest way to understand the basics is to look at the samples
contained in <install-home>/samples. Each subdirectory contains either client
or agent sample code. Start by examining SampleClient and its agent
TimeCollector. Refer to <install-home>/bin/readme.txt
for detailed instructions on how to build the samples on Windows and Linux
platforms.
* Other brands and names are the property of
their respective owners.
Copyright (C) 2006, Intel Corporation.