TPTP Platform Execution Plugin

See:
          Description

Packages
org.eclipse.tptp.platform.execution.client.agent Provides interfaces and classes necessary to enable a client to launch, attach, and communicate with agents (host processes or target application).   
org.eclipse.tptp.platform.execution.client.core Contains all interfaces and classes for communicating with the Agent Controller, launching processes, and utilizing other Agent Controller services.
org.eclipse.tptp.platform.execution.datacollection Provides the framework for developing an Agent. An agent provides services to the host process (example: application under profile or test) and provides a mechanism by which application data can be forwarded to attached clients
org.eclipse.tptp.platform.execution.exceptions Provides the classes for all exceptions processed.
org.eclipse.tptp.platform.execution.util Contains common interfaces and classes that are consumed by Client and DataCollection classes.

 

/*****************************************************************************
* Copyright (c) 2005 Intel Corporation.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*Contributors:
*Guru Nagarajan, Intel - Initial API-TPTP 4.0
*Vishnu Naikawadi, Intel - Initial API-TPTP 4.0
* IBM - Initial API - TPTP 3.2 API and implementation

*******************************************************************************/

fig 1: TPTP platform execution plug-in overview

 
The Test and Performance Tools Platform (TPTP) data collection sub-component provides a framework that defines the architecture for agentsand clients, and provides the basic building blocks to create and consume data collection services. An Agent is a reusable binary file that provides services to the host process (example: application under profile or test), provides a mechanism by which application data can be forwarded to clients. An agent registers with the Agent controller to be consumed by clients. The Agent Controller is a standalone component independent of the TPTP Client (Eclipse workbench). It is a daemon that resides on each local or remote deployment host. The primary service of the agent controller  is to launch new processes and attach to agents that externalize the process data to clients. The agent controller provides extensible agent architecture for control capabilities and data collection. Agents hosted within the Agent Controller may communicate data back to monitoring clients (e.g. TPTP/Eclipse workbench). A Client is a local or remote application (example: Eclipse Workbench) that is the terminal destination of host process data that is externalized by an agent. The data collection framework consists of a set of abstract and concrete classes. This document describes the framework for developing agents and clients.

Terminology

Command: An instruction to the recipient (client, agent or the AC) calling for an action. A command is the primary mechanism for message passing in the AC and is represented using XML elements. See the command protocol changes for further information.

Interface: Basically, a token used as an identifier to logically group services. Example: An interface serviced by the Agent controller is "agentManager", these token groups together services provided by the AC.

Agent Manager: The Agent Manager is a service provided by the AC that enables the interface that allows clients and agents to get information about agents and process/consume agent instance services.

Process Controller: The Process Controller service is a "System" Agent (system agents are specific agents that are required by the AgentController to service requests) that is started by the Agent Controller during its startup.  It may be used by the Agent Controller to launch other agents and by clients/agents to launch applications to be monitored. (System agents by default are shared and used by multiple clients/agents. System agents are dependent on the configuration of the AgentController.

Command Protocol: The basic command protocol has been modified in the AC to allow extensibility and portability by the use of XML. The schema for the command protocol is as described below. The command element must have a root of "<Cmd>" that contains the attributes destination (dest), source (src) and, context (ctxt). The destination is the connection identifier of the recipient, and the source is the connection identifier of the sender. Connection identifier is a token given by the agent manager in the AC to either a client or agent on its completion of a successful connection. The child element of a command is the name of the actual command, for example registerAgent in the example below. This command is serviced by the agent manager as described in the attribute interface identifier (iid).  All elements encapsulated in the child element of the command are elements that comprise the necessary data elements for the command. This is extensible and can contain elements that have to be processed by the command recipient.

Command Schema:

Naming convention

External API or Public API interfaces and classes are defined in top level packages example: org.eclipse.tptp.platform.execution.client.agent. The underlying implementation of the external API is available under "packagename.impl" example: org.eclipse.tptp.platform.execution.client.agent.impl.

New features:

  • This execution plug-in supports the ability to host multiple Agent Controllers(AC) on a target machine. 
  • AC provides services to get agents by name, query deployed and running agents based on a criteria.
  • New interface for Process launching - IProcessInfo. IProcessInfo defines the interface for Process launch configuration. 
  • New Variable Interface for accessing and modifying certain Agent properties.
  • ConnectionInfo object to build a connection type using various connection specific parameters
  • The message protocol used across the TPTP platform is based on data representation using XML
  • The external interface for accessing the File and Security services have been modified.
  • TPTP 3.x execution packages - internal and external have been refactored to delineate the interface and underlying implementation.
Package Changes:
  • The following packages have been modified
    • org.eclipse.tptp.platform.execution.client.core - Communication, Message, Control and File API. These are based on org.eclipse.hyades.execution.core, org.eclipse.hyades.internal.execution.local, and org.eclipse.hyades.internal.execution.local.common packages from the existing implementation.
    • org.eclipse.tptp.platform.execution.client.agent - Client Agent framework to communicate with agents.These are based on org.eclipse.hyades.execution.remote, org.eclipse.hyades.internal.execution.local.control and org.eclipse.hyades.internal.execution.remote.
  • org.eclipse.tptp.platform.execution.datacollection - Agent framework to develop agents. Based on org.eclipse.hyades.execution.remote, and org.eclipse.hyades.internal.execution.remote.
  • Security interfaces are specified in
    • org.eclipse.tptp.platform.execution.security
  • All the exceptions are provided in one package
    • org.eclipse.tptp.platform.execution.exceptions
  • The following package contains necessary utility classes
    • org.eclipse.tptp.platform.execution.util

Release Notes


Example:

Sample Client - TPTP Collector

Sample Client - TPTP File transfer

Sample Client - TPTP Process launch and console

Sample Client - TPTP Agent query, availability and reference

Sample Java Agent

Perfmon Plugin migrated to new Data Collection Framework