Title: ETI
1ETI
2Overview
- ETI Web Platform
- Tool Integration
- Tool Coordinatition
- Using ETI's service
- Integrating with ETI
3ETI 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
4Motivation
- Too Many Tools!
- Hard to find the right one
- Trying tools is time consuming
- Comparison of tools
5- Levels of tools...
- intro to next slide.
6(No Transcript)
7Existing ETI Sites
- University of Dortmund, Germany Public
- http//eti.cs.uni-dortmund.de/
- Kansas State University, USA
- under construction
- John Hatcliff
- IT-Center Dortmund, Germany ITC internal
- Hans-Jürgen Kottmann
8(No Transcript)
9Tool Coordination
- Overview of tool coordination
- HLL Coordination Language
- SLTL Language
10HLL
- HLL High Level Language
- High Level refers to its pragmatics
- No powerful language constructs
- Used to generate sequences of actions
11SLTL
Semantic Linear-time Temporal Logic
- Used to loosely coordinate type / action
sequences.
12Integration
13Layered integration process
GUI
communication
coordination
integration
encapsulation
tool repository
14Integration 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
15Integration Process
The integration layer makes the objects created
by encapsulation accessible from the HLL
coordination language.
GUI
communication
coordination
integration
encapsulation
tool repository
16Integration Process
The coordination layer provides an environment
for automatic synthesis of coordination sequences.
GUI
communication
coordination
integration
encapsulation
tool repository
17Integration 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
18Integration Process
Three steps to integrating your tool with ETI
GUI
- Taxonomy Extension
- HLL Extension
- Tool Encapsulation
communication
coordination
integration
encapsulation
tool repository
19Integration Process
We really do this in the opposite order.
GUI
- 1. Tool Encapsulation
- 2. HLL Extension
- 3. Taxonomy Extension
communication
coordination
integration
encapsulation
tool repository
201. 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
21Black 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
22Type 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!
23Encapsulation Questions
- What are the external data types the tool uses?
- What operations can be performed on those types?
- What type transformations are needed?
24Encapsulation 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.
25Encapsulation Details
26Encapsulation 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.
27Implementing 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.
282. 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.
29Integration Layer
Adapter Code
Adapter Code
Integration Layer
AdapterSpecification
Encapsulation Layer
EncapsulationCode
Tool Repository
Tool
30Adapter 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.
31Sample 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
32HLL 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 ltlt CADP.caesarAUT uninitialized
LOTOSFile or AUTFile object ltlt endl - else
- // converting the HLL objects into the
corresponding C objects - // and calling the corresponding function of
the Caesar/Aldebaran - // functional module
- ETIApplInfo i CAESAROperationscaesarAUT(l
otosFile.value,autFile.value) - i-gtshow() // passing obtained runtime
information to the GUI -
33Type / 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.
34Type / Action Taxonomies
- In order to synthesize HLL from loose
specifications, we must create type and action
taxonomies.
35Using 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.
36Using ETI
- From browsing the taxonomy
- Timed Graphs in Kronos KronosSystem
- minimization activities minimizer
- visualize graphs on screen displayGraph
37Using ETI
Given a benchmark system in KRONOS format,
compute an equivalent minimal system and display
it on screen. ((KronosSystemltminimizer) lt
displayGraph)
38Using ETI
39Using ETI
Given a benchmark system in KRONOS format,
compute an equivalent minimal system and display
it on screen. ((KronosSystemltminimizer) lt
displayGraph)