eti dave arney. overview ● eti web platform ● tool integration ● tool coordinatition ● using...
Post on 30-Jan-2016
230 views
TRANSCRIPT
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)