ETI Dave Arney

advertisement
ETI
Dave Arney
Overview
●
●
●
●
●
ETI Web Platform
Tool Integration
Tool Coordinatition
Using ETI's service
Integrating with ETI
ETI Overview
ETI =Electronic Tool Integration
Associated with STTT
(Software Tools for Technology Transfer)
Tools published in STTT get integrated into ETI
www.eti-service.org
http://eti.cs.uni-dortmund.de
Motivation
Too Many Tools!
Hard to find the right one
●Trying tools is time consuming
●Comparison of tools
●
Levels of tools...
intro to next slide.
Existing ETI Sites
University of Dortmund, Germany
http://eti.cs.uni-dortmund.de/
Public
Kansas State University, USA
under construction
John Hatcliff
IT-Center Dortmund, Germany ITC internal
Hans-Jürgen Kottmann
Tool Coordination
●
●
●
Overview of tool coordination
HLL Coordination Language
SLTL Language
HLL
HLL = High Level Language
“High Level” refers to its pragmatics
No powerful language constructs
Used to generate sequences of actions
SLTL
Semantic Linear-time Temporal Logic
Used to loosely coordinate type /
action sequences.
Integration
Layered integration process
GUI
communication
coordination
integration
encapsulation
tool repository
Integration Process
The encapsulation layer wraps the functionality
and data formats of the tool into data structures
known to ETI.
GUI
communication
coordination
integration
encapsulation
tool repository
Integration Process
The integration layer makes the objects created by
encapsulation accessible from the HLL
coordination language.
GUI
communication
coordination
integration
encapsulation
tool repository
Integration Process
The coordination layer provides an environment
for automatic synthesis of coordination sequences.
GUI
communication
coordination
integration
encapsulation
tool repository
Integration Process
The communication layer connects the
coordination layer with the GUI.
The communication layer is provided by ETI.
GUI
communication
coordination
integration
encapsulation
tool repository
Integration Process
Three steps to integrating your tool with ETI
Taxonomy Extension
HLL Extension
Tool Encapsulation
GUI
communication
coordination
integration
encapsulation
tool repository
Integration Process
We really do this in the opposite order.
1. Tool Encapsulation
2. HLL Extension
3. Taxonomy Extension
GUI
communication
coordination
integration
encapsulation
tool repository
1. Tool Encapsulation
We define:
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
●
Black Box Encapsulation
Ignores 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 Transformers
Type transformers link tools together by
providing data type conversions.
They may be simple
converting int to real
Or complex
Pascal program to Fortran
May contain abstractions
More 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 Details
Will 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 Details
class LOTOSFile
represents 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
Integration
Layer
Adapter
Code
Adapter
Specification
Encapsulation
Layer
Encapsulation
Code
Tool
Repository
Tool
Adapter Specification
ETI 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 Taxonomies
At 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 ETI
From browsing the taxonomy:
Timed Graphs in Kronos
KronosSystem
minimization activities
visualize graphs on screen
minimizer
displayGraph
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)
Download