functional integration - Distributed Object Computing (DOC) Group

Download Report

Transcript functional integration - Distributed Object Computing (DOC) Group

Component-based System Integration via
(Meta)Model Composition
Krishnakumar Balasubramanian, Douglas C. Schmidt,
Zoltán Molnár, Ákos Lédeczi
[email protected]
Institute for Software Integrated Systems
Vanderbilt University
Nashville, Tennessee
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
Log
Analyzer
Java Log
Analyzer
Naming
Service
Logging
Gateway
Business
Logic
Logging
C# Log
Analyzer
Database
Web Services
Identity
Manager
Coordinator
CORBA Component Model
Web Service
Deployment
descriptors
CCM Deployment
descriptors
Web Service Client
Web Service
CCM Component
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-ofprocess
• Evolving the integration
architecture
• Increasing the number
of peers integrated
• Availability of platformspecific infrastructure
• OS, languages
Log
Analyzer
Java Log
Analyzer
Naming
Service
1
Logging
Gateway
Business
Logic
Logging
C# Log
Analyzer
Database
Web Services
Identity
Manager
Coordinator
CORBA Component Model
Web Service
Deployment
descriptors
CCM Deployment
descriptors
Web Service Client
Web Service
CCM Component
4
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-ofprocess IPC
component Benchmark_Data_Collector
{
provides Testing_Service testing_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>
2
provides BDC_Control_Handle controls;
attribute long timeout;
attribute string service;
};
Log
Analyzer
Java Log
Analyzer
Naming
Service
Logging
Gateway
Business
Logic
Logging
C# Log
Analyzer
Database
Web Services
Identity
Manager
Coordinator
CORBA Component Model
Web Service
Deployment
descriptors
CCM Deployment
descriptors
Web Service Client
Web Service
CCM Component
5
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
Log
Analyzer
Naming
Service
Java Log
Analyzer
3
Logging
Logging
Gateway
Business
Logic
C# Log
Analyzer
Database
Web Services
Identity
Manager
Coordinator
TypeSpecific
IIOP ó SOAP
CORBA Component Model
Web Service
Deployment
descriptors
CCM Deployment
descriptors
Web Service Client
Web Service
CCM Component
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
Log
Analyzer
Java Log
Analyzer
Naming
Service
Logging
Gateway
Business
Logic
Logging
C# Log
Analyzer
Database
Web Services
Identity
Manager
4
Coordinator
CORBA Component Model
4
Web Service
Deployment
descriptors
CCM Deployment
descriptors
Web Service Client
Web Service
CCM Component
7
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
Log
Analyzer
Java Log
Analyzer
Naming
Service
Logging
Gateway
Business
Logic
5
Logging
C# Log
Analyzer
Database
Web Services
Identity
Manager
Coordinator
CORBA Component Model
Web Service
Deployment
descriptors
CCM Deployment
descriptors
Web Service Client
Web Service
CCM Component
8
Model-Driven Engineering (MDE)-based Solution
• System Integration
Modeling Language
• Developed using
Generic Modeling
Environment (GME)
• Part of Component
Synthesis using ModelIntegrated Computing
(CoSMIC) toolchain
• Capture elements &
dependencies visually
• Define “static semantics”
using Object Constraint
Language (OCL)
• Defines “dynamic
http://www.dre.vanderbilt.edu/~kitty/pubs/RTAS05-final.pdf
semantics” via model http://www.dre.vanderbilt.edu/~kitty/pubs/mde-book.pdf
interpreters
http://www.dre.vanderbilt.edu/~kitty/pubs/IEEE06.pdf
• Generates domain9
specific artifacts
System Integration Modeling Language (SIML)
• Hierarchical composition from
multiple sub-domain-specific
Modeling Languages (DSMLs)
• CCM  PlatformIndependent 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 Deployment
descriptors
CCM Models
CCM Deployment
descriptors
CCM
DSML
System
Integration
DSML
Web Services
DSML
Model
Composition
Web Service
Models
Web Service
Deployment
descriptors
Integration
Glue code
Web Service
Deployment
descriptors
Imported Entity
Exported Entity
10
Key Properties of (Meta-)Model Composition
1. Representation of independent
concepts
• Concepts in sub-DSMLs
preserved, i.e., no merging of
independent concepts
• Allows Import/Export
2. 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 namespaces
4. Handling constraints
• Namespaces used to provide
appropriate context for
constraint evaluation
4
System Integration Modeling
Language
1
PICML
Service
WSML
Port
Binding
2
Component
Port
Service
3
Binding
Port
HttpsBinding
11
Enabling Technology: Usage Scenarios
• SIML targets system developers
& integrators
System Integration Modeling Language (SIML)
• System Developers
Web Service
• Use DSML of
CCM Deployment
Deployment
descriptors
corresponding technology descriptors
PICML
WSML
• Assists in automating key
(CCM DSML)
(WS DSML)
deployment activities
• Used during development
of individual sub-systems
• System Integrators
• Use the integration DSML
• Assists in combining subRequired Interface
Event Source
systems together
Component
Event Sink
Provided Interface
• Used during integration of
the whole system
12
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
System Integration Modeling Language
Log
Analyzer
Java Log
Analyzer
Naming
Service
Logging
Gateway
Business
Logic
Logging
C# Log
Analyzer
Database
Web Services Modeling Language
Identity
Manager
Coordinator
Platform-Independent Component Modeling Language
Web Service Client
Web Service
CCM Component
13
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
component Benchmark_Data_Collector
{
provides Testing_Service testing_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_wsdl.exe
provides BDC_Control_Handle controls;
attribute long timeout;
attribute string service;
};
idl_to_picml.exe
WSDLImporter.exe
System Integration Modeling Language
Log
Analyzer
Java Log
Analyzer
Naming
Service
Logging
Gateway
Business
Logic
Database
Logging
C# Log
Analyzer
Web Services Modeling Language
Identity
Manager
Coordinator
Platform-Independent Component Modeling Language
Web Service Client
Web Service
CCM Component
14
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
System Integration Modeling Language
Log
Analyzer
Java Log
Analyzer
Naming
Service
Logging
Gateway
Business
Logic
Logging
C# Log
Analyzer
Database
Web Services Modeling Language
Identity
Manager
Coordinator
Platform-Independent Component Modeling Language
GatewayGenerator.exe
TypeSpecific Gateway
IIOP ó SOAP
Web Service Client
Web Service
CCM Component
15
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
System Integration Modeling Language
Log
Analyzer
Java Log
Analyzer
Naming
Service
Logging
Gateway
Business
Logic
Database
Logging
C# Log
Analyzer
Web Services Modeling Language
Identity
Manager
WSDLExporter.exe
Coordinator
Platform-Independent Component Modeling Language
DeploymentPlan.exe
Web Service
Deployment
descriptors
CCM Deployment
descriptors
Web Service Client
Web Service
CCM Component
16
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 
component Benchmark_Data_Collector
{
provides Testing_Service testing_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_wsdl.exe
provides BDC_Control_Handle controls;
attribute long timeout;
attribute string service;
};
idl_to_picml.exe
WSDLImporter.exe
System Integration Modeling Language
Log
Analyzer
Java Log
Analyzer
Naming
Service
Logging
Gateway
Business
Logic
Logging
C# Log
Analyzer
Database
Web Services Modeling Language
Identity
Manager
WSDLExporter.exe
Coordinator
Platform-Independent Component Modeling Language
GatewayGenerator.exe
DeploymentPlan.exe
TypeSpecific Gateway
IIOP ó SOAP
Web Service
Deployment
descriptors
CCM Deployment
descriptors
Web Service Client
Web Service
CCM Component
17
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), QoSaware 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
CORBA Component
Application
1
2
IDL 2 PICML
Generator
Invokes
Imports
IDL 2 WSDL
Generator
Generates
4
Converts
3
WSDL Importer
System Integration Modeling Language (SIML)
Web Service
Deployment
descriptors
5
CCM Deployment
descriptors
6
CORBA
Component
Model DSML
Web Services
DSML
8
7
CCM Component
CCM TypeSpecific SOAP
Client IIOP ó SOAP Server
Available as Open-Source tools
http://www.dre.vanderbilt.edu/CoSMIC
Web Service
Client
Web Service
Client
19
Questions?
20