Title: Open Tool Integration Framework
1Open Tool Integration Framework
Institute for Software-Integrated Systems PO.Box
1829B Vanderbilt University Nashville, TN 37235,
USA
2Overview
- Tool Integration problem domain
- Meta-model driven integration
- Architecture
- Protocols
- Example
- Conclusions
3Tool Integration Problem Domain
- An engineering process supported by many tools.
How to facilitate model interchange?
- Assumptions
- Tools are the primary holders of documents
(models) - Integration should be supported by an
architecture that can be instantiated for
specific tools - Architecture elements interoperate via
well-defined protocols
4Tool Integration Problem Domain
Tool-A
Tool-C
Tool-D
Tool-E
Tool-B
- Assumptions
- The engineering process defines a work flow,
which imposes dependencies among the tools. - Each edge is a (potential) place for a
translation on models. - The Tool Integration Framework should provide the
infrastructure to construct tool chains
consisting of arbitrary tools and translators. - Tools can reside on different hosts, possibly as
web services.
5Meta-model driven integration
- Assumptions
- The integration happens through a translation
process that connects various tools into a tool
chain. - Tools manage their own data it is not the
task of the framework. - Tools are described using meta-models capturing
the abstract syntax of the models.
Metamodel C input
Metamodel C output
Metamodel D input
Metamodel D output
Metamodel A input
Metamodel A output
Metamodel E input
Metamodel E output
Metamodel B input
Metamodel B output
6Meta-model driven integration
- What meta-data?
- Abstract syntax entities, attributes,
relationships of the tools data. - Well-formedness constraints
- UML class diagrams OCL expressions
- Why meta-data?
- Allows a general, tool-independent, canonical
form for models that can be used in the
communication protocols - Provides for type-checking on models
- Provides help in developing translators
- Translators model-to-model transformation
engines - Allows generic tools for archiving, visualizing,
manipulating, etc. models
7Architecture
Direct tool interface Syntactic translation of
tool data
Management interface
Semantic translation of tool data
Message routing, metadata repository, workflow
engine
8ArchitectureExample
Tool-A
Tool-C
Tool-D
Tool chain
Tool-E
Tool-B
As implemented
Tool-A
Tool-C
Tool-B
Tool-D
Tool-E
A adaptor
B adaptor
C adaptor
D adaptor
E adaptor
Backplane
A2C
A2B
A2E
B2D
B2E
C2D
9ProtocolsData transfer
Metamodel
- Metamodels are
- instances of (UML-)meta classes
- reside in the backplane
- accessed via object references
- Similar to MOF
- Model elements (i.e. data) are
- instances of structures
- tagged with a type ID (from the corresponding
meta model) - Relationships are implemented via instance Ids
- BLOB-s are also supported
- Transferred in a container
Typing
Model (data)
10ProtocolsData transfer Meta-metamodel
11ProtocolsData transfer Objects and Containers
// Data object struct Obj TypeGUID tId
// TypeId of meta object (Class)
objectId id // Unique object id
timeStamp created // Creation time
timeStamp modified // Last modification time
string creator // Creator's name string
modifier // Last modifier's name
AttrValue_S attrs // Attribute values
ParentRole parent // Parent object
AssocRole_S assocs // Associations of this
object any userData // Add'l,
impl-spec data typedef sequenceltObjgt
Obj_S // Network of data objects struct
DataNetwork TypeGUID tId //
TypeId of meta object (Diagram) objectId
root // Root object Obj_S
objects // All objects
12ProtocolsBackplane Interface
- Information services
- Current metamodels,translators, active documents
and tool adaptor types - Locking, fetching, unlocking a metamodel
- Tool adaptor information
- Current timestamp
- Upload configuration
- Session services
- Login/logout a manager
- Login/logout a tool adaptor
13ProtocolsSession Interfaces
- Manager session
- Register/unregister metamodel
- Register/unregister translator
- Modify attributes of/destroy document
- Change password/shutdown backplane
- Tooladaptor session
- Publish document
- Subscribe to new document/change notifications
- Fetch documents
- Retrieve information about document
14ProtocolsTranslator Interfaces
- Translator activation command
- lttranslatorgt FeedURI SinkURI
- TranslatorFeed interface
- Subscribe to / Fetch documents
- TranslatorSink interface
- Publish documents
Backplane
Translator
Notify()
Fetch()
Feed
Sink
Publish()
15ExampleA practical system ESML Toolsuite
Component Development
System Development
System Analysis
Analysis Tool(s)
AIF XML
Rational Rose
ESML2AIF
System Generation
AIF2ESML
ESML/GME
ESCM2ESML
Build Tool
CONFIG XML
ESML2CONF
CONF2ESML
Execution Platform
Analysis feedback
CONF2ESML
Instrumentation
Legacy Reverse Engineering
Model update from instrumentation
16ExampleA practical system ESML Toolsuite
Analysis Tool(s)
AIF XML
Rational Rose
ESML2AIF
AIF2ESML
ESML/GME
ESCM2ESML
Build Tool
CONFIG XML
ESML2CONF
CONF2ESML
Execution Platform
CONF2ESML
Instrumentation
- Workflow
- Prescribes the correct sequencing of tool
operations - Workflow model
- Tools and their adaptors
- Document types and flows
- Translation operations
17ExampleA practical system ESML Toolsuite
Rational Rose
ESML/GME
Build process
Analysis Tool(s)
IIF (XML)
Exporter
ESML (MGA)
ESML (MGA)
CONF (XML)
AIF (XML)
ESCM (XML)
T/A
T/A
T/A
T/A
T/A
T/A
Backplane
esml2aif
escm2esml
esml2conf
conf2esml
aif2esml
iif2aif
18Summary
- Architecture and protocols defined
- Prototype implementations exists
- OTIF (incl. Eclipse Generic Tool Adaptor)
- Next steps
- MOF compliant data layer
- Fine-grain change notification
- Event-based integration
- Object traceability