Component Generation Technology for Semantic Tool Integration 1 Gabor Karsai and Jeff Gray Institute...
-
Upload
meryl-carter -
Category
Documents
-
view
212 -
download
0
Transcript of Component Generation Technology for Semantic Tool Integration 1 Gabor Karsai and Jeff Gray Institute...
Component Generation Technology for Semantic Tool Integration1
Gabor Karsai and Jeff GrayInstitute for Software Integrated Systems
Vanderbilt University
http://www.isis.vanderbilt.edu
{gabor, jgray}@vuse.vanderbilt.edu
Motivating Problem: Tool Integration
• Problem Description• Previous Approaches
– File Translators, Middleware, Universal Language, PCTE
• Increased complexity and semantic richness requires semantic translation
• The core of our solution involves software generators that offer a componentized solution to the tool integration problem
Integrated Data Model
MMLRU
FR
FDE
LRU VAR
OBS
UNITMSG
ALR
Evaluating Tool Integration Solutions
• How much time and effort does it cost to integrate a new tool?
• How scalable is the integration approach?
• How much expert knowledge is needed to realize an integration solution?
• What is the coupling between the individual tools and the integration technology?
Tool Integration Framework (TIF)
ORB
Integrated Model
Browser
Legacy Tool 1
Tool Adapter
Integrated Tool
Naming Service
Legacy Tool N
Tool Adapter
Common Model Interface
Meta-Model Objects
IMS
Semantic Translation
Integrated Model Database
…
IMS models can be viewed in a web browser
New tools can access the IMS directly through the CMI
Legacy tools require abi-directional tool adapter
The CMI is specified in CORBA IDL and defines rules and data structures
for accessing the IMS
MS Repository sits on top of an ODBC database; currently Access or SQL Server
CORBA
Entity_2
Top_Model
Entity_1 Component
1
*
Tool Specificationparadigm Foo;
model Top_Model { ... part Component components;}
model Component { ... part Entity_1 ent_1; part Entity_2 ent_2; part Component subComponents; rel Rel aRel}
entity Entity_1 { ... }
entity Entity_2 { ... }
relation Rel { Entity_1 src 1<->Entity_2 dst *;}
Creating a Semantic Translator
INTEGRATEDMODEL
DATABASEModel Model
Instance Instance DataData
Reusable ComponentReusable ComponentD
ata
base
Sca
ffold
ing
Data
base
Sca
ffold
ing
Hand-coded ComponentHand-coded Component
CM
I Sca
ffold
ing
CM
I Sca
ffold
ing
Generated Generated ComponentComponent
Tool Meta DataTool Meta Data
Constraint EnforcerConstraint Enforcer
Reposito
ry In
terfa
ceR
eposito
ry In
terfa
ce
GEN ToolGEN ToolGEN ToolGEN Tool XLG ToolXLG ToolXLG ToolXLG Tool DBB ToolDBB ToolDBB ToolDBB Tool
UP TranslatorUP Translator
DOWN TranslatorDOWN Translator
Tool DataTool DataModelModel
(MSF/UML)(MSF/UML)
IMS DataIMS DataModelModel
(MSF/UML)(MSF/UML)
Translation ModelTranslation ModelTraversals and C++Traversals and C++
Structured Specification of Translators
visitor Visitor
{
at Component[...]
<<...>> traverse[...];
at Entity_1[...]
<<...>>;
at Entity_2[...]
<<...>>;
at Rel[...]
traverse[...];
}
traversal Traversal using Visitor
{
from Top_Model ->[…]
<<...>> to { components[...] } <<...>>;
from Component[...]
to { entity_1[...], entity_2[...],
subComponents[...], rel[...]
};
from Rel[...]
<<...>> to {src[...], dst[...] } <<...>>;
}
The Process (Semantic Translators)
Customer/DevelopersCreate tool
model specification Tool.msf
DevelopersCreate semantic
translator specification Tool2IMS spec
Generatesemantic translator IMS.msf Semantic Translator
Process is repeated for IMS2Tool translator
Represents the underlying IMS model schema;Assume to be created previously;
May require modification
Pluggable servercomponent
Representation of tool using our model specification notation
Creating a Tool Adapter
TOOLDATABASEModel Model
Instance Instance DataData
Reusable ComponentReusable Component
CM
I/CO
RB
AC
MI/C
OR
BA
Tool Adapter Tool Adapter Main CodeMain Code
CM
I Sca
ffold
ing
CM
I Sca
ffold
ing
Generated Generated ComponentComponent
Tool Meta Data Tool Meta Data ScaffoldingScaffolding
TAG ToolTAG ToolTAG ToolTAG Tool
Tool DataTool DataModelModel
(MSF/UML)(MSF/UML)
Support utility classesSupport utility classes
Hand-coded ComponentHand-coded Component
The Process (Tool Adapters)
Tool.msf
Create Tool AdapterDevelopers Tool Adapter
Tool AdapterGenerator Tool_taf.cpp
Wrapper for CMIdata structures
TAFCommon reusable code
IMS Browser (Instance Data)
Development Effort• Translators can be written within a few man-days
– Average translator was 225 lines of traversal/visitor code
• Tool Adapter development depends on: – Complexity of tool
– Complexity of the tool’s data access mechanism (e.g., ADO, COM, comma separated values)
– Developer experience with previous Tool Adapters
• Our average development time for a bi-directional Tool Adapter is about 10 man-weeks
Lessons Learned
• Successful integration of 4 tools• Separation of concerns:
– Cleaner solution by separating semantic and syntactic issues
• Framework approach using software generators– infrastructural elements
– tool-specific translators (componentized)
– traversal/visitor specification language
Future enhancements
• Incremental translation (fine-grain operations)
• Intelligent data fusion (merge)
• Web-based access to IMS (XML server)
• Automatic generation of integrated schema from the individual tool specifications