The Top-Level TPTP project consists of a large amount of common infrastructure in the areas of user interface, EMF based data models, data collection and communications control, as well as remote execution environments. All of these subsystems are included in the Hyades platform.
The TPTP Platform Project provides these common subsystems as well as all the extension points for leveraging or extending them in solution specific tooling or runtime. This includes Eclipse workbench plug-ins as well as runtime plug-ins on a target and optionally remote system.
The following subsystems are described briefly below:
|Log View||A list and property viewer for Common Base Events.|
|Probe Editor||An Editor of the detailed description of a probe content as well as itís intended insertion point|
|Sequence Diagrams||A read only UML 2 sequence diagram that can be bound to any appropriate data source, such as call graphs or machine interactions.|
|Charting Service||A service that when fed the proper data can be used to render in SWT or SVG standard business graphs for purposes such as reporting test histories or CPU utilization over time.|
|Trace and Profiling perspective||A single perspective and navigator where trace and monitoring data are shown in the context they were collected in.|
Data models are intended to be a key integration point in the project and are provided in 5 basic areas.
All these models can be cross-linked and made persistent using XMI or in some cases a relational database back end is optionally used.
The Rational Rose generated web based documentation of the data models can be found here.
A basic framework is provided to run a query oriented rule against a resource and have it result in user messages and optionally a "quick fix" to the resource. The platform provide this set of interfaces, extension points as well as some simple rules.
An infrastructure is provided to collect data for the various models. This includes the XML
fragment specifications that need to be created as well as the model loaders that will load those
fragments into the specific model. Where meaningful, service function is provided to assist in
creating the instances of these fragments. For example, a correlation service is provided to
assist in creating data that can be correlated across machine boundaries. A set of classes to
create Common Base Event instances is also provided.
The data collection and agents are made up of the following components:
|Framework||The basic control flow infrastructure complete with interfaces for the management of an agent an the data it collects. This includes a large set of predefined XML fragment based events that can be sent and will be loaded into the model as appropriate.|
|JVMPI||A JVMPI agent used for profiling a JVM as well as sharing class load events for BCI engines.|
|JVMTI||The Java1.5 replacement for JVMPI. Implementation is TBD.|
|Logging||A default logging agent for this framework as well as an implementation of a Common Base Event.|
Although the actual communication layer can be replaced via plug-in, a default TCP/IP based infrastructure is provided that has an optional security plug-in. Wrapped around the actual communication layer is a generic interface to facilitate the movement of commands and data between the workbench and one or more agents. The agents reside in the system being monitored and shared memory pipes are provided to the common communications infrastructure.
There is also a full management system for agents. This includes registration so they can be shared across process and transaction boundaries on a given machine. The data communication and control interfaces are being exposed with C, Java, and Web services bindings.
A method for controlling an execution environment for a system under test is often needed. From the basics of attaching, starting, and stopping a remote process as well as providing a predefined link to the communication layer is provided in this subsystem of the platform.
A generic runtime that can be driven by a process description is also provided. The initial intent is to use this environment as a generic test behavior implementation that can be used to drive any public interface, especially a web service binding.
The execution environment has the following components:
|Correlation Engine||An extension point implementation that associates Common Base Events based on various data value oriented algorithms such as URI and timestamps.|
|Probekit and Byte Code Insertion||The technology to instrument a class with byte code based on a specification created using the Probekit editor|
|Common Base Event and Logging||A set of logging interface implementations to match JSR 47, Apache Commons etc. that also support the use of common base events, as well as base Eclipse workbench logging.|
|Framework||A set of APIs and interfaces used to control a separate application. Particularly test execution and monitored applications.|
|Choreography Engine||A dynamically scriptable engine used to run tests without the requirement of generated code. BPEL is used to define the behavioural flow across the various test services.|