ETI Dave Arney. Overview ● ETI Web Platform ● Tool Integration ● Tool Coordinatition ● Using...

Preview:

Citation preview

ETI

Dave Arney

Overview

● ETI Web Platform● Tool Integration● Tool Coordinatition● Using ETI's service● Integrating with ETI

ETI OverviewETI =Electronic Tool IntegrationAssociated with STTT

(Software Tools for Technology Transfer)Tools published in STTT get integrated into ETI

www.eti-service.orghttp://eti.cs.uni-dortmund.de

MotivationToo Many Tools!

●Hard to find the right one●Trying tools is time consuming●Comparison of tools

Levels of tools...intro to next slide.

University of Dortmund, Germany Publichttp://eti.cs.uni-dortmund.de/

Kansas State University, USA under construction

John Hatcliff

IT-Center Dortmund, Germany ITC internal Hans-Jürgen Kottmann

Existing ETI Sites

Tool Coordination

● Overview of tool coordination● HLL Coordination Language● SLTL Language

HLLHLL = High Level Language

“High Level” refers to its pragmaticsNo powerful language

constructsUsed to generate sequences of

actions

SLTL

Used to loosely coordinate type / action sequences.

Semantic Linear-time Temporal Logic

Integration

Layered integration process

GUIcommunication

encapsulation

coordinationintegration

tool repository

Integration Process

GUIcommunication

encapsulation

coordinationintegration

tool repository

The encapsulation layer wraps the functionality and data formats of the tool into data structures known to ETI.

Integration Process

GUIcommunication

encapsulation

coordinationintegration

tool repository

The integration layer makes the objects created by encapsulation accessible from the HLL coordination language.

Integration Process

GUIcommunication

encapsulation

coordinationintegration

tool repository

The coordination layer provides an environment for automatic synthesis of coordination sequences.

Integration Process

GUIcommunicati

on

encapsulation

coordinationintegration

tool repository

The communication layer connects the coordination layer with the GUI.

The communication layer is provided by ETI.

Integration Process

Taxonomy ExtensionHLL ExtensionTool Encapsulation

Three steps to integrating your tool with ETI

GUIcommunication

encapsulation

coordinationintegration

tool repository

Integration Process

1. Tool Encapsulation2. HLL Extension3. Taxonomy Extension

We really do this in the opposite order.

GUIcommunication

encapsulation

coordinationintegration

tool repository

1. Tool Encapsulation● classes that represent tool's data types● a class to access the tool's functionality● methods to convert from this tool's data types into types available in ETI

We define:

Black Box EncapsulationIgnores the internal operation of the tool.Only has access to its functional behavior and external data representations.

● Define classes representing external data types of the tool (files)● Implement a class with methods to invoke the tool

Type TransformersType transformers link tools together by providing data type conversions.

They may be simpleconverting int to real

Or complexPascal program to Fortran

May contain abstractionsMore detail to come!

Encapsulation Questions

What are the external data types the tool uses?What operations can be performed on those types?What type transformations are needed?

Encapsulation DetailsWill show the details of encapsulating a single functionality of the tool CAESAR.

Note that this is a simple example.A more complicated example showing ETIs support for labeled directed graphs is in one of the papers.

Encapsulation Details

Encapsulation Detailsclass LOTOSFilerepresents in ETI the contents of a file

type .lotos which contains a LOTOS program.class CAESAROperations

encapsulates the functionality of CAESAR.

includes a method caesarAUT which translates a LOTOS program into

a FSA.class AUTFile

represents file type .aut which contains a labled transition system.

Implementing Type Transformers

In order to transform class A to class B, create a class ABTransformer which contains all the methods needed to transform an object of class A into an object of class B.

2. Integration Layer

When encapsulation is done, we have a collection of C++ classes. The next step is to make these methods accessible to the coordination mechanism via HLL.

Integration Layer

Tool

Encapsulation

Code

AdapterSpecification

Adapter Code

Integration Layer

Adapter Code

Encapsulation

Layer

Tool Repository

Adapter SpecificationETI found that writing the HLL adapter code was tedious and prone to error.

Now they write adapter specifications in MFI(MetaFrame intermediate integration language)

Soon they hope to completely automate it.

Sample HLL definition

// The HLL type AUTGraph is realized by

// a pointer to a C++ AUTGraph object

%type AUTGraph // HLL type name

{

AUTGraph *value; // C++ realization

}

HLL function definition in MFI// declaring and defining a HLL procedure caeserAUT that takes a

// reference to a HLL LOTOSFile and delivers a corresponding

// HLL AUTFile object in the autFile argument

%procedure caeserAUT(ref LOTOSFile: lotosFile: lotosFile, ref AUTFile: autFile)

{

// check for uninitialized LOTOSFile and AUTFile objects

if(lotosFile.value == NULL || autFile.value == NULL)

cout << “CADP.caesarAUT: uninitialized LOTOSFile or AUTFile object” << endl;

else {

// converting the HLL objects into the corresponding C++ objects

// and calling the corresponding function of the Caesar/Aldebaran

// functional module

ETIApplInfo* i CAESAROperations::caesarAUT(*lotosFile.value,*autFile.value);

i->show(); // passing obtained runtime information to the GUI

}}

Type / Action TaxonomiesAt this point, users could write their own coordination programs in HLL.

However, a goal is to support users not familiar with HLL.

A solution is to offer support for loose coordination specifications which are then automagically synthesized into HLL.

Type / Action Taxonomies

In order to synthesize HLL from loose specifications, we must create type and action taxonomies.

Using ETI

We'll walk through the steps of using ETI to solve this informal problem:

Given a benchmark system in KRONOS format, compute an equivalent minimal system and display it on screen.

Using ETIFrom browsing the taxonomy:

Timed Graphs in KronosKronosSystemminimization activitiesminimizervisualize graphs on screendisplayGraph

Using ETI

Given a benchmark system in KRONOS format, compute an equivalent minimal system and display it on screen.

((KronosSystem<minimizer) < displayGraph)

Using ETI

Using ETI

Given a benchmark system in KRONOS format, compute an equivalent minimal system and display it on screen.

((KronosSystem<minimizer) < displayGraph)