component-based system integration via (meta)model composition vanderbilt university nashville,...
TRANSCRIPT
Component-based System Integration via (Meta)Model
Composition
Vanderbilt University Nashville, Tennessee
Institute for Software Integrated Systems
Krishnakumar Balasubramanian, Douglas C. Schmidt, Zoltán Molnár, Ákos Lédeczi
Web Services
CORBA Component Model
Web Service Deployment descriptors
Gateway
Identity Manager
Business Logic
Naming Service
Coordinator
Database
Logging Logging
Java Log Analyzer
C# Log Analyzer
Log Analyzer
CCM Deployment descriptors
CCM ComponentWeb ServiceWeb Service Client
Motivating Application• System Domain
• Shipboard Computing • On-demand situation
awareness• Integration with human
operators• Distributed System
• Different client applications• Differentiated services to
clients• Originally built using CORBA
Component Model (CCM)• Need to integrate with W3C Web
Service Clients
2
Component-based System Integration• Integration can be done at multiple levels
• Data integration• Presentation Integration• Portal Integration• Process Integration• Functional Integration
• System refers to software systems built using
• Service-Oriented Architecture (SOA) technologies like Web Services
• Component middleware technologies like Enterprise Java Beans (EJB), CORBA Component Model (CCM)
• System Integration refers to functional integration done via
• Distributed Object Integration• Service-Oriented Integration
3
Functional Integration Challenges (1/5)1. Choosing an appropriate level
of integration• Select elements from the
different technologies• Selection Criteria
• Number of normalizations• To/from native types
• Flexibility of deployment• In-process/Out-of-
process• Evolving the integration
architecture• Increasing the number
of peers integrated• Availability of platform-
specific infrastructure • OS, languages
4
Web Services
CORBA Component Model
Web Service Deployment descriptors
1
Gateway
Identity Manager
Business Logic
Naming Service
Coordinator
Database
Logging Logging
Java Log Analyzer
C# Log Analyzer
Log Analyzer
CCM Deployment descriptors
CCM ComponentWeb ServiceWeb Service Client
Functional Integration Challenges (2/5)2. Reconciling differences in
interface specifications• Map interface specifications
between different technologies• Datatype Mapping
• e.g., CORBA IDL to Web Services WSDL
• Exception Mapping• e.g., SOAP faults to
CORBA Exception• Language Mapping
• Different source/target implementation languages
• Limited scope at level of functional integration
• Restricted to out-of-process IPC
5
Web Services
CORBA Component Model
Web Service Deployment descriptors
2
Gateway
Identity Manager
Business Logic
Naming Service
Coordinator
Database
Logging Logging
Java Log Analyzer
C# Log Analyzer
Log Analyzer
CCM Deployment descriptors
component Benchmark_Data_Collector { provides Testing_Service testing_service;
provides BDC_Control_Handle controls;
attribute long timeout;
attribute string service; };
<wsdl:service name="CUTS.Benchmark_Data_Collector"> <wsdl:port name="CUTS.Benchmark_Data_Collector.online_measurements" binding="tns:CUTS.Benchmark_Data_Collector._SE_online_measurements"> <soap:address location="http://localhost:8080/" wsdl:required="false"/> </wsdl:port> <wsdl:port name="CUTS.Benchmark_Data_Collector.controls" binding="tns:CUTS.Benchmark_Data_Collector._SE_controls"> <soap:address location="http://localhost:8080/" wsdl:required="false"/> </wsdl:port> </wsdl:service>
CCM ComponentWeb ServiceWeb Service Client
Web Services
CORBA Component Model
Web Service Deployment descriptors
3
Gateway
Identity Manager
Business Logic
Naming Service
Coordinator
Database
Logging Logging
Java Log Analyzer
C# Log Analyzer
Log Analyzer
CCM Deployment descriptors
TypeSpecific IIOP ó SOAP
CCM ComponentWeb ServiceWeb Service Client
Functional Integration Challenges (3/5)3. Reconciling differences in
implementation technologies• Map low-level technology
details such as networking, discovery
• Protocol Mapping• e.g., Internet Inter-ORB
Protocol (IIOP) in CCM vs. SOAP in Web Services
• Discovery Mapping• e.g., CORBA Naming
Service vs. UDDI repositories
• Quality of Service (QoS) mapping
• Ensure service-level agreements are met
6
Functional Integration Challenges (4/5)4. Managing deployment of
subsystems• Declarative notations used to
capture various configuration options
• e.g., CCM deployment descriptors, .NET assembly manifests
• Functionality of system depends on correct configuration of metadata
• Development-time default values different from production values
• e.g., security configuration of Web Servers hosting Web Services
7
Web Services
CORBA Component Model
Web Service Deployment descriptors
4
Gateway
Identity Manager
Business Logic
Naming Service
Coordinator
Database
Logging Logging
Java Log Analyzer
C# Log Analyzer
Log Analyzer
CCM Deployment descriptors
CCM ComponentWeb ServiceWeb Service Client
4
Functional Integration Challenges (5/5)5. Interoperability issues• Multiple implementations of
same middleware technology• Differences between
implementations• e.g., Java Web Services
stack vs. .NET Web Services stack
• Problems show up only during system integration
• e.g., existence of standards like Web Services-Interoperability (WS-I)
• Need to deal with interoperability issues in a less than ideal world
8
Web Services
CORBA Component Model
Web Service Deployment descriptors
5
Gateway
Identity Manager
Business Logic
Naming Service
Coordinator
Database
Logging Logging
Java Log Analyzer
C# Log Analyzer
Log Analyzer
CCM Deployment descriptors
CCM ComponentWeb ServiceWeb Service Client
9
Model-Driven Engineering (MDE)-based Solution• System Integration
Modeling Language• Developed using
Generic Modeling Environment (GME)
• Part of Component Synthesis using Model-Integrated Computing (CoSMIC) toolchain
• Capture elements & dependencies visually
• Define “static semantics” using Object Constraint Language (OCL)
• Defines “dynamic semantics” via model interpreters
• Generates domain-specific artifacts
http://www.dre.vanderbilt.edu/~kitty/pubs/RTAS05-final.pdfhttp://www.dre.vanderbilt.edu/~kitty/pubs/mde-book.pdfhttp://www.dre.vanderbilt.edu/~kitty/pubs/IEEE06.pdf
10
System Integration Modeling Language (SIML)• Hierarchical composition from
multiple sub-domain-specific Modeling Languages (DSMLs)
• CCM Platform-Independent Component Modeling Language (PICML)
• Web Services Web Services Modeling Language (WSML)
• Built in a reusable & extensible fashion
• “Open-Closed” principle• New languages can be
added; existing ones reused• Preserve existing investment in
tools• Existing tools work
seamlessly in composite DSML
CCM DSML
Web Services DSML
CCM Models
Web Service Models
System Integration
DSML
Model Composition
CCM Deployment descriptors
Web Service Deployment descriptors
CCM Deployment descriptors
Web Service Deployment descriptors
Integration Glue code
Imported Entity
Exported Entity
11
Key Properties of (Meta-)Model Composition1. Representation of independent
concepts• Concepts in sub-DSMLs
preserved, i.e., no merging of independent concepts
• Allows Import/Export2. Supporting model evolution
• Sub-DSMLs packaged as read-only model libraries
• Changes to original DSML propagated through library refresh
3. Partitioning model namespaces• Sub-DSMLs assigned
separate namespaces4. Handling constraints
• Namespaces used to provide appropriate context for constraint evaluation
System Integration Modeling Language
PICML WSML
Component
Port
Service
BindingPort
HttpsBinding
Service
BindingPort
1
2
3
4
12
Enabling Technology: Usage Scenarios• SIML targets system
developers & integrators• System Developers
• Use DSML of corresponding technology
• Assists in automating key deployment activities
• Used during development of individual sub-systems
• System Integrators• Use the integration DSML • Assists in combining sub-
systems together• Used during integration of
the whole system
System Integration Modeling Language (SIML)
PICML (CCM DSML)
WSML (WS DSML)
CCM Deployment descriptors
Web Service Deployment descriptors
Required Interface
Provided Interface
Event Source
Event Sink
Component
Resolving Challenge 1 : Choosing Integration Level• Combination of pre-defined
& customizable integration levels
• Pre-defined interactions• CCM Ports Web
Service Ports• User-defined interactions
• Component level• Assembly level
• SIML defines new interactions between CCM ports and Web Services ports
• Allows integration of other middleware technologies
• e.g., Enterprise Java Beans
13
System Integration Modeling Language
Web Services Modeling Language
Platform-Independent Component Modeling Language
CCM Component
Gateway
Identity Manager
Business Logic
Naming Service
Coordinator
Database
Logging Logging
Java Log Analyzer
C# Log Analyzer
Log Analyzer
Web ServiceWeb Service Client
Resolving Challenge 2: Reconciling Differences in Interfaces• SIML provides a set of tools
idl_to_wsdl, idl_to_picml, WSDLImporter
• Performs datatype mapping• Maps CORBA datatypes
to WSDL datatypes• Performs exception mapping
• Maps CORBA exceptions to WSDL faults
• Both IDL and WSDL can be directly imported into models
• Limited language mapping • Maps ISO/ANSI C++ to
Microsoft C++/CLI
14
System Integration Modeling Language
Web Services Modeling Language
Platform-Independent Component Modeling Language
CCM Component
Gateway
Identity Manager
Business Logic
Naming Service
Coordinator
Database
Logging Logging
Java Log Analyzer
C# Log Analyzer
Log Analyzer
component Benchmark_Data_Collector { provides Testing_Service testing_service;
provides BDC_Control_Handle controls;
attribute long timeout;
attribute string service; };
<wsdl:service name="CUTS.Benchmark_Data_Collector"> <wsdl:port name="CUTS.Benchmark_Data_Collector.online_measurements" binding="tns:CUTS.Benchmark_Data_Collector._SE_online_measurements"> <soap:address location="http://localhost:8080/" wsdl:required="false"/> </wsdl:port> <wsdl:port name="CUTS.Benchmark_Data_Collector.controls" binding="tns:CUTS.Benchmark_Data_Collector._SE_controls"> <soap:address location="http://localhost:8080/" wsdl:required="false"/> </wsdl:port> </wsdl:service>
idl_to_picml.exe
idl_to_wsdl.exe
WSDLImporter.exe
Web ServiceWeb Service Client
Resolving Challenge 3: Handling Implementation Differences• Resource Adapters are
typically used to bridge implementation differences
• SIML implements resource adapters via Gateways
• Automatically generates gateways from models
• Perform protocol mapping• IIOP SOAP mapping
• Perform discovery mapping• Connects to CORBA
Naming Service• Configurable gateway
generation• GSOAP, Microsoft .NET
Web Services
15
System Integration Modeling Language
Web Services Modeling Language
Platform-Independent Component Modeling Language
CCM Component
Gateway
Identity Manager
Business Logic
Naming Service
Coordinator
Database
Logging Logging
Java Log Analyzer
C# Log Analyzer
Log Analyzer
TypeSpecific Gateway IIOP ó SOAP
GatewayGenerator.exe
Web ServiceWeb Service Client
Resolving Challenge 4: Managing Heterogeneous Deployment• Deployment of sub-systems
requires different mechanisms
• SIML can use existing tools for individual sub-system deployment
• Possible because of model composition
• Deployment metadata configuration & generation
• Directly from within SIML
• CCM• DeploymentPlan.exe
• Web Services• WSDLExporter.exe
16
System Integration Modeling Language
Web Services Modeling Language
Platform-Independent Component Modeling Language
Web Service Deployment descriptors
CCM Component
Gateway
Identity Manager
Business Logic
Naming Service
Coordinator
Database
Logging Logging
Java Log Analyzer
C# Log Analyzer
Log Analyzer
CCM Deployment descriptors
WSDLExporter.exe
DeploymentPlan.exe
Web ServiceWeb Service Client
Resolving Challenge 5: Handling Interoperability Differences• Knowledge of sub-DSML
technologies built into SIML• Allows compensating for
interoperability differences• idl_to_wsdl.exe
• Maps IDL to WS-I defined subset of WSDL
• GatewayGenerator.exe• Inter-operable subset of
RPC encoding• WSDLExporter.exe
• Interoperable XML namespaces in WSDL
• Newly discovered incompatibilities can be worked around
17
System Integration Modeling Language
Web Services Modeling Language
Platform-Independent Component Modeling Language
Web Service Deployment descriptors
CCM Component
Gateway
Identity Manager
Business Logic
Naming Service
Coordinator
Database
Logging Logging
Java Log Analyzer
C# Log Analyzer
Log Analyzer
CCM Deployment descriptors
component Benchmark_Data_Collector { provides Testing_Service testing_service;
provides BDC_Control_Handle controls;
attribute long timeout;
attribute string service; };
<wsdl:service name="CUTS.Benchmark_Data_Collector"> <wsdl:port name="CUTS.Benchmark_Data_Collector.online_measurements" binding="tns:CUTS.Benchmark_Data_Collector._SE_online_measurements"> <soap:address location="http://localhost:8080/" wsdl:required="false"/> </wsdl:port> <wsdl:port name="CUTS.Benchmark_Data_Collector.controls" binding="tns:CUTS.Benchmark_Data_Collector._SE_controls"> <soap:address location="http://localhost:8080/" wsdl:required="false"/> </wsdl:port> </wsdl:service>
TypeSpecific Gateway IIOP ó SOAP
idl_to_picml.exe
idl_to_wsdl.exe
WSDLImporter.exe
WSDLExporter.exe
DeploymentPlan.exe
GatewayGenerator.exe
Web ServiceWeb Service Client
Related Work• Integration Evaluation Tools
• Evaluate integration strategy and tools, e.g., IBM’s WebSphere• System Execution Modeling Tools
• Smith, C., & Williams, L. (2001). Performance Solutions• Integration Design Tools
• UML profile for Enterprise Application Integration (EAI)• Integration Patterns
• Hohpe, G., & Woolf, B. (2003). Enterprise Integration Patterns• Resource Adapters
• Java Messaging Specification & J2EE Connector Architecture• IBM’s MQSeries (IBM, 1999), Microsoft BizTalk Server
• Integration frameworks• Semantic Web (OWL), GRID System Integration (Foster, 2002), QoS-
aware service composition (Zeng et al., 2004)• Integration Quality Analysis
• Web Service-Level Agreement language (WSLA) (Ludwig, 2003)
18
Concluding Remarks• Model-Driven Engineering
(MDE)-based approach to functional integration of component-based systems
• Based on (Meta-)Model Composition
• System Integration Modeling Language (SIML)
• Domain-Specific Modeling Language (DSML) for functional integration
• Composed from DSMLs for two different middleware technologies
• CORBA Component Model
• Web Services
19Available as Open-Source tools
http://www.dre.vanderbilt.edu/CoSMIC
System Integration Modeling Language (SIML)
CORBA Component
Model DSML
Web Services DSML
CCM Deployment descriptors
Web Service Deployment descriptors
CORBA Component Application
IDL 2 WSDL Generator
1
IDL 2 PICML Generator
WSDL Importer
Web Service Client
Web Service Client
TypeSpecific IIOP ó SOAP
SOAP Server
CCMClient
CCM Component
2
34
5
8
7
6
Invokes
Imports
Generates
Converts
Questions?
20