Open Tool Integration Framework
description
Transcript of Open Tool Integration Framework
Open Tool Integration Framework
Gabor Karsai
Institute for Software-Integrated Systems
PO.Box 1829B
Vanderbilt University
Nashville, TN 37235, USA
Overview
Tool Integration problem domain Meta-model driven integration Architecture Protocols Example Conclusions
Tool Integration Problem Domain
An engineering process supported by many tools. How to facilitate model interchange?
FMECA
Diagnostics
JLME
Safety
F. Impact
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
Tool Integration Problem Domain
Tool-A
Tool-B
Tool-C Tool-D
Tool-E
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.
Meta-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.
Tool-A
Tool-B
Tool-C Tool-D
Tool-E
MetamodelA input
MetamodelA output
MetamodelC input
MetamodelC output
MetamodelD input
MetamodelD output
MetamodelB input
MetamodelB output
MetamodelE input
MetamodelE output
Meta-model driven integration
What meta-data?1. Abstract syntax: entities, attributes, relationships of
the tool’s data.2. Well-formedness constraints UML class diagrams + OCL expressionsWhy 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
Architecture
BACKPLANE REGISTRATION/NOTIFICATION/TRANSFER SERVICES
TRANSLATOR
TRANSLATOR
TOOL
TOOL ADAPTOR
TOOL
TOOL ADAPTOR
TOOL
TOOL ADAPTOR MANAGER
Standard interface/ Protocol
METADATA WORKFLOW
Message routing, metadata repository, workflow engine
Direct tool interfaceSyntactic translation of tool data
Semantic translation of tool data
Management interface
ArchitectureExample
Tool-A
Tool-B
Tool-C Tool-D
Tool-E
Backplane
Tool-A Tool-CTool-B Tool-D Tool-E
A adaptor B adaptor C adaptor D adaptor E adaptor
A2C A2B A2E B2D B2E C2D
Tool chain:
As implemented:
ProtocolsData transfer
Metamodel:
a1:A
c1:C c2:C b1:B
r1:Rel
Typing
Metamodels are• instances of (UML-)meta classes • reside in the backplane• accessed via object referencesSimilar 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 supportedTransferred in a container
Model (data):
ProtocolsData transfer – Meta-metamodel
ProtocolsData 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 sequence<Obj> Obj_S; // Network of data objects struct DataNetwork { TypeGUID tId; // TypeId of meta object (Diagram) objectId root; // Root object Obj_S objects; // All objects };
ProtocolsBackplane 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
ProtocolsSession 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
ProtocolsTranslator Interfaces
Translator activation command:<translator> %FeedURI %SinkURI
TranslatorFeed interface– Subscribe to / Fetch documents
TranslatorSink interface– Publish documents
BackplaneTranslator
Feed
Sink
Notify()
Fetch()
Publish()
AIFXML
CONFIGXML
ExampleA practical system: ESML Toolsuite
Rational Rose
ESML/GMEESCM2ESML
Analysis Tool(s)ESML2AIF
AIF2ESML
ESML2CONF
CONF2ESML
ExecutionPlatform
Instrumentation
CONF2ESML
Build Tool
Component Development
System Development
System Analysis
System Generation
Legacy Reverse Engineering
Analysis feedback
Model update from
instrumentation
ExampleA practical system: ESML Toolsuite
Workflow:
Prescribes the correct sequencing of tool operations
Workflow model:
•Tools and their adaptors
•Document types and flows
•Translation operations
Workflow:
Prescribes the correct sequencing of tool operations
Workflow model:
•Tools and their adaptors
•Document types and flows
•Translation operations
BACKPLANE REGISTRATION/NOTIFICATION/TRANSFER SERVICES
SEMANTIC TRANSLATOR
SEMANTIC TRANSLATOR
TOOL
TOOL ADAPTOR
TOOL
TOOL ADAPTOR
TOOL
TOOL ADAPTOR MANAGER
Standard interface/ Protocol
METADATA
AIFXML
CONFIGXML
Rational Rose
ESML/GMEESCM2ESML
Analysis Tool(s)ESML2AIF
AIF2ESML
ESML2CONF
CONF2ESML
ExecutionPlatform
Instrumentation
CONF2ESML
Build Tool
ExampleA practical system: ESML Toolsuite
ESML/GMEESML/GME
Rational Rational RoseRose
AnalysisAnalysisTool(s)Tool(s)
BackplaneBackplane
escm2esml esml2conf conf2esml esml2aif
ESCM(XML)
ExporterExporter
T/A T/A
ESML(MGA)
ESML(MGA)
T/A
CONF(XML)
Build Build processprocess
T/A
AIF(XML)
IIF(XML)
T/A
iif2aif
T/A
aif2esml
Summary
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