model-driven engineering of component systems vanderbilt university nashville, tennessee institute...
TRANSCRIPT
Model-Driven Engineering of Component Systems
Vanderbilt University Nashville, Tennessee
Institute for Software Integrated Systems
Proposal Defense, March 3rd, 2006
Krishnakumar [email protected]
www.dre.vanderbilt.edu/~kitty
2
Presentation Road Map
• Motivation• Technology Context• Overview of Research Challenges• Research Area 1: Composition of Component
Systems• Research Area 2: Expression of Design Intent• Research Area 3: Application-Specific
Optimizations• Summary of Research Contributions• Concluding Remarks
3
Where We Started: Object-Oriented Programming
• Object-oriented (OO) programming simplified software development through higher level abstractions & patterns, e.g.,
Well-written OO programs exhibit recurring structures that promote abstraction, flexibility, modularity, & elegance
• Decoupling interfaces & implementations
• Associating related data & operations
operation1()operation2()operation3()operationn()
data
class X
4
Distributed Object Computing (DOC) Middleware
• Applies the Broker pattern to abstract away lower-level OS & protocol-specific details for network programming
• Creates distributed systems that are easier to model & build using OO techniques
• Result: robust distributed systems built with distributed object computing (DOC) middleware
• e.g., CORBA, Java RMI, etc.
1 1Proxy
service
Service
service
AbstractService
service
Client
We now have more robust software & more powerful distributed systems
operation()Object :
Interface X: Client
Middleware
5
Traditional DOC Middleware Limitations• Unable to provide multiple, alternate
views per client
Component
Client C
Client A
6
Traditional DOC Middleware Limitations• Unable to provide multiple, alternate
views per client
• Unable to navigate between interfaces in a standardized fashion
Component
Client C
Client A
7
Traditional DOC Middleware Limitations• Unable to provide multiple, alternate
views per client
• Unable to navigate between interfaces in a standardized fashion
• Extensibility restricted to language (Java, C++) and/or platform (CORBA) C++ Component
Java Component C++ Component C# Component
8
Traditional DOC Middleware Limitations• Unable to provide multiple,
alternate views per client
• Unable to navigate between interfaces in a standardized fashion
• Extensibility restricted to language (Java, C++) and/or platform (COM, CCM)
• Specification & enforcement of policy
• Done via low-level mechanisms, i.e., by writing code
// Get the correct bands from the <server_declared_obj>. policies[0] = server_declared_obj->_get_policy (RTCORBA::PRIORITY_BANDED_CONNECTION_POLICY_TYPE); RTCORBA::PriorityBandedConnectionPolicy_var
bands_policy = RTCORBA::PriorityBandedConnectionPolicy ::_narrow (policies[0]); RTCORBA::PriorityBands_var bands = bands_policy->priority_bands ();
// Set the proper bands at the object level. Note that a new // object is returned. object = client_propagated_obj->_set_policy_overrides(policies,
CORBA::SET_OVERRIDE);
9
Traditional DOC Middleware Limitations• Unable to provide multiple, alternate
views per client
• Unable to navigate between interfaces in a standardized fashion
• Extensibility restricted to language (Java, C++) and/or platform (COM, CCM)
• Specification & enforcement of policy
• Done via low-level mechanisms, i.e., by writing code
• Accidental complexities
• Middleware configuration is complex, tedious & error-prone
• Ad hoc deployment mechanisms
• Tedious, error-prone
• Not reusable
Significant challenges for system developers!
QoSProperties
Checksum
Version Dependencies
List of FilesQoS Specs ComponentInterconnections
ImplementationDLL DLL
QoSProperties
Checksum
Version Dependencies
ImplementationDLL DLL
10
Presentation Road Map
• Motivation• Technology Context• Overview of Research Challenges• Research Area 1: Composition of Component
Systems• Research Area 2: Expression of Design Intent• Research Area 3: Application-Specific
Optimizations• Summary of Research Contributions• Concluding Remarks
11
Component Middleware
• Components encapsulate “business” logic
• Components interact via ports• Provided interfaces• Required interfaces• Event sinks & sources• Attributes
• Allow navigation between ports• Containers provide execution
environment for components• Components/containers can also
• Communicate via a middleware bus & reuse common middleware services
SecurityReplication NotificationPersistence
SchedulingA/V Streaming Load Balancing
Middleware Bus
…
Container
… …
…
Container
Components allow reasoning about systems at higher level of abstraction
e.g., CORBA Component Model (CCM), Microsoft .NET Web Services, Enterprise Java Beans (EJB)
12
Interface Design
Component Design
Component Implementation
Component Packaging
ApplicationAssembly
SystemDeployment
Interface IDL Definitions
Stubs&
Skeletons
Object Implementations
RunningApplications
Component IDL
Definitions
IDL Compiler
CIDL Compiler
Component CIDL
Definitions
Servants,Executors,Contexts
Language Tools
Component DLLs
Component & Home Properties
Component Interface
Descriptors (.ccd)
Packaging Tools
Component & Home Properties
Component Implementation
Descriptors (.cid)
DeploymentTools
Implementation Artifact
Descriptors (.iad)
Deployment Plan
Descriptor (.cdp)
AssemblyTools
Component Implementation
Descriptor(*.cid)
Component Package
Descriptors (.cpd)
MonolithicComponentDescription
Component Package
Descriptors (.cpd)
Component Assembly
Descriptors
realizes
realizes
uses
DeploymentPlanning
DeploymentPlanning
Tools
ComponentDomain
Descriptor(.cdd)
Component & Home Properties
realizes
Component System Development Lifecycle
Specification of supported interfaces
13
Interface Design
Component Design
Component Implementation
Component Packaging
ApplicationAssembly
SystemDeployment
Interface IDL Definitions
Stubs&
Skeletons
Object Implementations
RunningApplications
Component IDL
Definitions
IDL Compiler
CIDL Compiler
Component CIDL
Definitions
Servants,Executors,Contexts
Language Tools
Component DLLs
Component & Home Properties
Component Interface
Descriptors (.ccd)
Packaging Tools
Component & Home Properties
Component Implementation
Descriptors (.cid)
DeploymentTools
Implementation Artifact
Descriptors (.iad)
Deployment Plan
Descriptor (.cdp)
AssemblyTools
Component Implementation
Descriptor(*.cid)
Component Package
Descriptors (.cpd)
MonolithicComponentDescription
Component Package
Descriptors (.cpd)
Component Assembly
Descriptors
realizes
realizes
uses
DeploymentPlanning
DeploymentPlanning
Tools
ComponentDomain
Descriptor(.cdd)
Component & Home Properties
realizes
Component System Development Lifecycle
Specification of component types, e.g.,
provided & required interfaces
14
Interface Design
Component Design
Component Implementation
Component Packaging
ApplicationAssembly
SystemDeployment
Interface IDL Definitions
Stubs&
Skeletons
Object Implementations
RunningApplications
Component IDL
Definitions
IDL Compiler
CIDL Compiler
Component CIDL
Definitions
Servants,Executors,Contexts
Language Tools
Component DLLs
Component & Home Properties
Component Interface
Descriptors (.ccd)
Packaging Tools
Component & Home Properties
Component Implementation
Descriptors (.cid)
DeploymentTools
Implementation Artifact
Descriptors (.iad)
Deployment Plan
Descriptor (.cdp)
AssemblyTools
Component Implementation
Descriptor(*.cid)
Component Package
Descriptors (.cpd)
MonolithicComponentDescription
Component Package
Descriptors (.cpd)
Component Assembly
Descriptors
realizes
realizes
uses
DeploymentPlanning
DeploymentPlanning
Tools
ComponentDomain
Descriptor(.cdd)
Component & Home Properties
realizes
Component System Development Lifecycle
Component Implementation
15
Interface Design
Component Design
Component Implementation
Component Packaging
ApplicationAssembly
SystemDeployment
Interface IDL Definitions
Stubs&
Skeletons
Object Implementations
RunningApplications
Component IDL
Definitions
IDL Compiler
CIDL Compiler
Component CIDL
Definitions
Servants,Executors,Contexts
Language Tools
Component DLLs
Component & Home Properties
Component Interface
Descriptors (.ccd)
Packaging Tools
Component & Home Properties
Component Implementation
Descriptors (.cid)
DeploymentTools
Implementation Artifact
Descriptors (.iad)
Deployment Plan
Descriptor (.cdp)
AssemblyTools
Component Implementation
Descriptor(*.cid)
Component Package
Descriptors (.cpd)
MonolithicComponentDescription
Component Package
Descriptors (.cpd)
Component Assembly
Descriptors
realizes
realizes
uses
DeploymentPlanning
DeploymentPlanning
Tools
ComponentDomain
Descriptor(.cdd)
Component & Home Properties
realizes
Component System Development Lifecycle
Grouping of component implementation artifacts
& metadata into component packages
16
Interface Design
Component Design
Component Implementation
Component Packaging
ApplicationAssembly
SystemDeployment
Interface IDL Definitions
Stubs&
Skeletons
Object Implementations
RunningApplications
Component IDL
Definitions
IDL Compiler
CIDL Compiler
Component CIDL
Definitions
Servants,Executors,Contexts
Language Tools
Component DLLs
Component & Home Properties
Component Interface
Descriptors (.ccd)
Packaging Tools
Component & Home Properties
Component Implementation
Descriptors (.cid)
DeploymentTools
Implementation Artifact
Descriptors (.iad)
Deployment Plan
Descriptor (.cdp)
AssemblyTools
Component Implementation
Descriptor(*.cid)
Component Package
Descriptors (.cpd)
MonolithicComponentDescription
Component Package
Descriptors (.cpd)
Component Assembly
Descriptors
realizes
realizes
uses
DeploymentPlanning
DeploymentPlanning
Tools
ComponentDomain
Descriptor(.cdd)
Component & Home Properties
realizes
Component System Development Lifecycle
Specification of component interconnections &
composition of component assembly packages
17
Interface Design
Component Design
Component Implementation
Component Packaging
ApplicationAssembly
SystemDeployment
Interface IDL Definitions
Stubs&
Skeletons
Object Implementations
RunningApplications
Component IDL
Definitions
IDL Compiler
CIDL Compiler
Component CIDL
Definitions
Servants,Executors,Contexts
Language Tools
Component DLLs
Component & Home Properties
Component Interface
Descriptors (.ccd)
Packaging Tools
Component & Home Properties
Component Implementation
Descriptors (.cid)
DeploymentTools
Implementation Artifact
Descriptors (.iad)
Deployment Plan
Descriptor (.cdp)
AssemblyTools
Component Implementation
Descriptor(*.cid)
Component Package
Descriptors (.cpd)
MonolithicComponentDescription
Component Package
Descriptors (.cpd)
Component Assembly
Descriptors
realizes
realizes
uses
DeploymentPlanning
DeploymentPlanning
Tools
ComponentDomain
Descriptor(.cdd)
Component & Home Properties
realizes
Component System Development Lifecycle
Specification of deployment target domain & configuration
of component assembly
18
Interface Design
Component Design
Component Implementation
Component Packaging
ApplicationAssembly
SystemDeployment
Interface IDL Definitions
Stubs&
Skeletons
Object Implementations
RunningApplications
Component IDL
Definitions
IDL Compiler
CIDL Compiler
Component CIDL
Definitions
Servants,Executors,Contexts
Language Tools
Component DLLs
Component & Home Properties
Component Interface
Descriptors (.ccd)
Packaging Tools
Component & Home Properties
Component Implementation
Descriptors (.cid)
DeploymentTools
Implementation Artifact
Descriptors (.iad)
Deployment Plan
Descriptor (.cdp)
AssemblyTools
Component Implementation
Descriptor(*.cid)
Component Package
Descriptors (.cpd)
MonolithicComponentDescription
Component Package
Descriptors (.cpd)
Component Assembly
Descriptors
realizes
realizes
uses
DeploymentPlanning
DeploymentPlanning
Tools
ComponentDomain
Descriptor(.cdd)
Component & Home Properties
realizes
Component System Development Lifecycle
Deploy component assembly packages onto target nodes
according to a deployment plan
19
Presentation Road Map
• Motivation• Technology Context• Overview of Research Challenges• Research Area 1: Composition of Component
Systems• Research Area 2: Expression of Design Intent• Research Area 3: Application-Specific
Optimizations• Summary of Research Contributions• Concluding Remarks
20
Component System Development Challenges• Lack of system composition tools
Component
ResourceRequirements
Impl Impl Impl
Properties
Component Assembly
ComponentComponent
ComponentComponent
21
Component System Development Challenges• Lack of system composition tools
• Complexity of declarative platform API & notations
<assemblyImpl>
<instance xmi:id="ScaleQosket">
<name>ScaleQosket</name>
<package href="ScaleQosket.cpd"/>
</instance>
<instance xmi:id="LocalResourceManagerComponent">
<name>LocalResourceManagerComponent</name>
<package href="LocalResourceManagerComponent.cpd"/>
</instance>...<connection>
<name>incoming_image_outgoing_image_Evt</name>
<internalEndpoint>
<portName>outgoing_image_Evt</portName>
<instance xmi:idref="LocalReceiver"/>
</internalEndpoint>
<internalEndpoint>
<portName>incoming_image_Evt</portName>
<instance xmi:idref="MultiReceiver"/>
</internalEndpoint>
</connection>
</assemblyImpl>
OS KERNEL
OS I/O Subsystem
Network Interfaces
OS KERNEL
OS I/O Subsystem
Network Interfaces
MIDDLEWARE
ComponentComponent
<assemblyImpl>
<instance xmi:id="ScaleQosket">
<name>ScaleQosket</name>
<package href="ScaleQosket.cpd"/>
</instance>
<instance xmi:id="LocalResourceManagerComponent">
<name>LocalResourceManagerComponent</name>
<package href="LocalResourceManagerComponent.cpd"/>
</instance>...<connection>
<name>incoming_image_outgoing_image_Evt</name>
<internalEndpoint>
<portName>outgoing_image_Evt</portName>
<instance xmi:idref="LocalReceiver"/>
</internalEndpoint>
<internalEndpoint>
<portName>incoming_image_Evt</portName>
<instance xmi:idref="MultiReceiver"/>
</internalEndpoint>
</connection>
</assemblyImpl>
<assemblyImpl>
<instance xmi:id="ScaleQosket">
<name>ScaleQosket</name>
<package href="ScaleQosket.cpd"/>
</instance>
<instance xmi:id="LocalResourceManagerComponent">
<name>LocalResourceManagerComponent</name>
<package href="LocalResourceManagerComponent.cpd"/>
</instance>...<connection>
<name>incoming_image_outgoing_image_Evt</name>
<internalEndpoint>
<portName>outgoing_image_Evt</portName>
<instance xmi:idref="LocalReceiver"/>
</internalEndpoint>
<internalEndpoint>
<portName>incoming_image_Evt</portName>
<instance xmi:idref="MultiReceiver"/>
</internalEndpoint>
</connection>
</assemblyImpl>
<assemblyImpl>
<instance xmi:id="ScaleQosket">
<name>ScaleQosket</name>
<package href="ScaleQosket.cpd"/>
</instance>
<instance xmi:id="LocalResourceManagerComponent">
<name>LocalResourceManagerComponent</name>
<package href="LocalResourceManagerComponent.cpd"/>
</instance>...<connection>
<name>incoming_image_outgoing_image_Evt</name>
<internalEndpoint>
<portName>outgoing_image_Evt</portName>
<instance xmi:idref="LocalReceiver"/>
</internalEndpoint>
<internalEndpoint>
<portName>incoming_image_Evt</portName>
<instance xmi:idref="MultiReceiver"/>
</internalEndpoint>
</connection>
</assemblyImpl>
XML
XMLXML
XML
22
Component System Development Challenges• Lack of system composition tools
• Complexity of declarative platform API & notations
• Composition overhead in large-scale systems
Node Application
Container
CHCH
CHCH
CHCH
CHCH
CHCH
CHCH
CHCH
CHCH
CH
Receptacle
Facet
Event Sink
Event SourceComponent Home
Component Assembly
Component Remote Invocation
Collocated Invocation
Creates
23
Component System Development Challenges
My research provides tools to design & optimize “systems-in-the-large”
• Lack of system composition tools
• Complexity of declarative platform API & notations
• Composition overhead in large-scale systems
• Emphasis still on programming-in-the-small
• Whack-a-mole approach to system development
• Violation of Don’t Repeat Yourself (DRY) principle
• Need abstractions for expressing system level design intent
24
Component Assembler
Component Assembly
Component Component
Component Component
Component Package
Component Assembly
Component Component
Component Component
Component Assembly
Component Component
Component Component
(1)
Inte
rfac
e D
efin
ition
(2) Interaction Definition
(3) Hierarchical Composition
(5) Metadata Generation
(4) Assembly Optimization
Component Developer
Component Packager
ComponentDeployer
PICMLco
mposition
asse
mbl
y
optimization
gene
ratio
n
specification
Assembly
Deployment
Assembly
Assembly
DAnCE Framework
Component
ResourceRequirements
Implementation
Properties
ImplementationImplementation
Solution Approach: PICML
• System Composition Technologies - A Domain-Specific Modeling Language (DSML) to allow component specification & composition
• System Optimization Technologies – System optimization infrastructure• Generative Technologies – Metadata generation infrastructure
Generative Technologies
System Composition Technologies System
Optimization Technologies
25
Control Center SystemResource
Manager
ScaleQosket
CropQosket
Compress Qosket
LocalResourceManager
Cropping QoSPredictorScaling QoS
Predictor
Compression QoSPredictor
Image Feeds (.NET Web
Service)
• System Resource Manager
• Global QoS manager• Control Center
• User interaction• .NET Web Services
• Image Stream(s)• Local Resource
Manager• Local QoS
manager• Qoskets
• QoS enforcer• QoS predictors
• QoS estimators• Built using the
Component-Integrated ACE ORB (CIAO)
Example Scenario: Emergency Response System
Developed for DARPA PCES program (dist-systems.bbn.com/papers/)
26
Presentation Road Map
• Motivation• Technology Context• Overview of Research Challenges• Research Area 1: Composition of Component
Systems• Research Area 2: Expression of Design Intent• Research Area 3: Application-Specific
Optimizations• Summary of Research Contributions• Concluding Remarks
27
• Component middleware allows composition across multiple dimensions
• Temporal – Static vs. dynamic
Research Area 1: Composition of Component Systems
Static Dynamic
Time
Hierarchical
Flat
Str
uct
ura
lComponent Assembly
Component Component
Component ComponentComponent Component
Component Component
Deployment Time
Build Time
Component Assembly
28
• Component middleware allows composition across multiple dimensions
• Temporal – Static vs. dynamic• Structural – Flat vs. hierarchical
• Systems are no longer built from scratch
• Composed from COTS components & frameworks using design patterns
Research Area 1: Composition of Component Systems
Static Dynamic
Time
Hierarchical
Flat
Str
uct
ura
lComponent Assembly
Component Component
Component ComponentComponent Component
Component Component
Deployment Time
Build Time
Component Assembly
29
Related ResearchCategory Related Research
Component Environments
G. Karsai et al, A Modeling Language & Its Supporting Tools for Avionics Systems, In Proceedings of 21st Digital Avionics Systems Conf., Aug. 2002.
Lüer, C. & Rosenblum, D. S. 2001, WREN---an environment for component-based development, SIGSOFT Soft. Eng. Notes 26, 5 (Sep. 2001), 207-217.
Jack Greenfield et al, Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools, Wiley, 2004
Programming Models
G. T. Heineman & W. T. Councill, editors, Component-Based Software Engineering: Putting the Pieces Together, Addison-Wesley, 2001.
Czarnecki, K. & Eisenecker, U. W. Generative Programming: Methods, Tools, & Applications, ACM Press/Addison-Wesley Publishing Co., 2000
Batory, D. et al, Scaling step-wise refinement, in Proceedings of the 25th International Conference on Software Engineering (Portland, Oregon, May 03 - 10, 2003).
Functional Verification
J. Hatcliff et. al., Cadena: An Integrated Development, Analysis, & Verification Environment for Component-based Systems, in Proceedings of the 25th International Conference on Software Engineering, (Portland, OR), May 2003.
J. A. Stankovic et al, VEST: An Aspect-based Composition Tool for Real-time Systems, in Proceedings of the IEEE Real-time Applications Symposium, (Washington,DC), IEEE, May 2003.
30
Related Research: What’s Missing?• Tool-specific component
technologies• As opposed to component-
technology agnostic tools!• Emphasis on component
programming models /languages• How to write better
components?• Lack of deployment-time tool
support• No support for deployment
artifacts!• Lack of tool support for system
level development
It’s not just the functionality, it’s the packaging!
Component
ResourceRequirements
Impl Impl Impl
Properties
Component Assembly
ComponentComponent
ComponentComponent
31
1.Lack of tool support for defining consistent component interactions• Primitive interface definition
tools: EditCompileRun Fix cycle
component SystemResourceManager {attribute double available_cpu;
attribute double available_bw; attribute double needed_cpu; attribute double needed_bw; attribute UAV_List uavs_from_lrm; uses multiple LRMInterface my_lrms;provides SRMInterface srm_interface;
publishes ResourceAllocationEvt resourceEvt; publishes PolicyChangeEvt policy_evt; };
Control Center Display
SystemResourceManager
LocalResourceManager
Sender ReceiverCrop
Qosket
Compress Qosket
Scale Qosket
Compression QoS Predictor
Scaling QoS Predictor
Cropping QoS Predictor
Stream 4
Stream 3
Stream 2
Stream 1
System Composition: Unresolved Challenges
32
Control Center Display
SystemResourceManager
LocalResourceManager
Sender ReceiverCrop
Qosket
Compress Qosket
Scale Qosket
Compression QoS Predictor
Scaling QoS Predictor
Cropping QoS Predictor
Stream 4
Stream 3
Stream 2
Stream 1
1.Lack of tool support for defining consistent component interactions• Primitive interface definition
tools: EditCompileRun Fix cycle
• No inter-connection information
2.Lack of integrated system view• Design view, e.g., UML models• Development view, e.g., Visual
Studio
component MultiReceiver
: ImageProcessingQosket
{
consumes ResourceAllocationEvt
resourceEvt;
consumes PolicyChangeEvt
policyEevt;
};
Integrated view of the system is essential!
System Composition: Unresolved Challenges
33
Control Center Display
SystemResourceManager
LocalResourceManager
Sender ReceiverCrop
Qosket
Compress Qosket
Scale Qosket
Compression QoS Predictor
Scaling QoS Predictor
Cropping QoS Predictor
Stream 4
Stream 3
Stream 2
Stream 1
3.Lack of tool support for multi-level composition
• Change propagation done in an ad-hoc fashion
• Redundant & error-prone
• Violates “Don’t Repeat Yourself” (DRY) principle
• Need support for different composition granularities
4.Lack of context-aware policy specification mechanisms
• No one size fits all!
5.Lack of scalable techniques for composition
• Manual techniques don’t scale well
Lack of tool support negates benefits of components!
System Composition: Unresolved ChallengesPolicy A
Policy A’
34
Solution Approach: DSML Infrastructure• Platform-Independent
Component Modeling Language (PICML)• Developed using GME• Core of Component
Synthesis using Model-Integrated Computing (CoSMIC) toolchain
• Capture elements & dependencies visually
35
Solution Approach: DSML Infrastructure• Platform-Independent
Component Modeling Language (PICML)• Developed using GME• Core of Component
Synthesis using Model-Integrated Computing (CoSMIC) toolchain
• Capture elements & dependencies visually
• Define “static semantics” using Object Constraint Language (OCL)
36
Solution Approach: DSML Infrastructure• Platform-Independent
Component Modeling Language (PICML)• Developed using GME• Core of Component
Synthesis using Model-Integrated Computing (CoSMIC) toolchain
• Capture elements & dependencies visually
• Define “static semantics” using Object Constraint Language (OCL)
• Define “dynamic semantics” via model interpreters
• Employ generative technologies
Component Developer
IDL Files
Domain Expert
Define domain elemets
Import/Export IDL
Define interfaces
Associate components with domain elements
PICML
Model Application
Application Model
Application Developer
Refine application during life-time
Target Domain Model
Model interfaces
Deployment Descriptors
37
Solution Approach: System Composition Tools• Disallow inconsistent
component interactions
• Provide integrated view of system
• Support system composition across multiple levels
• Support context-dependent policy specifications
• Support scalable composition techniques
• Support integration with component build tools & component repositories
Pol
ResIma
Stream1
Pol
ResIma
Stream2
Pol
ResIma
Stream3
Pol
ResIma
Stream4
pol
res
inc
out
MultiReceiver[ MultiReceiver ]
blupol
res
SystemResourceManager[ SystemResourceManager ]
c3
c1
c2
c4
c5
c6
publish
deliverTo
deliverTo
deliverTo
deliverTo
publish
deliverTo
deliverTo
deliverTo
deliverTo
publish
deliverTodeliverTo
deliverTo
publish
deliverTo
deliverTo
deliverTo
publish
publish
qos
ScaleQosPredictor[ ScaleQosPredictor ]
imainccur
out
CompressQosket[ CompressQosket ]
imainccur
out
DiffServQosket[ Dif fServQosket ]
cpu
CPUBrokerComponent[ CPUBrokerComponent ]
imainccur
out
ScaleQosket[ ScaleQosket ]
qos
CroppingQosPredictor[ CroppingQosPredictor ]
inc out
LocalReceiver[ LocalReceiver ]
PolicyChangeEvt
ResourceAllocationEvt
ImageGenerationEvt
qos
CompressionQosPredictor[ CompressionQosPredictor ]
imasen
out
Sender[ Sender ]
polresinccomscacrodifcpu
imaoutcrosca
com
LocalResourceManagerComponent[ LocalResourceManagerComponent ]
imainccur
out
CropQosket[ CropQosket ]
invoke
emit
emit
delegatesTo
delegatesTo
emit
delegatesTo
invoke
invoke
invoke
invoke
emit
invoke
emit
invokeinvoke
Policy A
Policy A’
38
Challenges 1 & 2 Resolved: Visual Interaction Definition
ima
inc
cur
out
CropQosket[ CropQosket ]
qos
CroppingQosPredictor[ CroppingQosPredictor ]
pol
res
inc
com
sca
cro
ima
out
cro
sca
com
dif
cpu
LocalResourceManagerComponent[ LocalResourceManagerComponent ]
ima
inc
cur
out
CompressQosket[ CompressQosket ]
ima
senout
Sender[ Sender ]
qos
CompressionQosPredictor[ CompressionQosPredictor ]
qos
ScaleQosPredictor[ ScaleQosPredictor ]
ima
inc
cur
out
ScaleQosket[ ScaleQosket ]
cpu
CPUBrokerComponent[ CPUBrokerComponent ]
inc out
LocalReceiver[ LocalReceiver ]
PolicyChangeEvt
ResourceAllocationEvt
ImageGenerationEvt
ima
inc
cur
out
DiffServQosket[ Dif fServQosket ]
delegatesTo
delegatesTo
emit
invoke
invoke
invokeinvoke
invoke
emit emit emit
invoke
invokeinvoke
emit
delegatesTo
1.Syntactically compatible component interaction definition• Enforce platform semantics using OCL
constraints
Disallow inconsistent component interactions
39
Challenges 1 & 2 Resolved: Visual Interaction Definition
ima
inc
cur
out
CropQosket[ CropQosket ]
qos
CroppingQosPredictor[ CroppingQosPredictor ]
pol
res
inc
com
sca
cro
ima
out
cro
sca
com
dif
cpu
LocalResourceManagerComponent[ LocalResourceManagerComponent ]
ima
inc
cur
out
CompressQosket[ CompressQosket ]
ima
senout
Sender[ Sender ]
qos
CompressionQosPredictor[ CompressionQosPredictor ]
qos
ScaleQosPredictor[ ScaleQosPredictor ]
ima
inc
cur
out
ScaleQosket[ ScaleQosket ]
cpu
CPUBrokerComponent[ CPUBrokerComponent ]
inc out
LocalReceiver[ LocalReceiver ]
PolicyChangeEvt
ResourceAllocationEvt
ImageGenerationEvt
ima
inc
cur
out
DiffServQosket[ Dif fServQosket ]
delegatesTo
delegatesTo
emit
invoke
invoke
invokeinvoke
invoke
emit emit emit
invoke
invokeinvoke
emit
delegatesTo
1.Syntactically compatible component interaction definition• Enforce platform semantics using OCL
constraints2.High-level integrated view of system
• In addition to multiple task-specific views of the same system
K Balasubramanian et al, “Applying Model-Driven Development to Distributed Real-time & Embedded Avionics Systems,” the International Journal of Embedded Systems,
special issue on Design & Verification of Real-Time Embedded Software, April 2005
Provide integrated view of system
40
Challenges 3 & 4 Resolved: Hierarchical Composition3.Allow composition across multiple levels
• Components, assemblies of components & assemblies of assemblies
• Propagate changes automatically• Define assemblies as types• Instantiate multiple times
Support system composition across multiple levels
41
Challenges 3 & 4 Resolved: Hierarchical Composition3.Allow composition across multiple levels
• Components, assemblies of components & assemblies of assemblies
• Propagate changes automatically• Define assemblies as types• Instantiate multiple times
4.Policy/Configuration can be specified
• At component level• Overridden at assembly
level(s)
K Balasubramanian et al, “A Platform-Independent Component Modeling Language for Dist-ributed Real-time & Embedded Systems,” Journal of Computer & System Sciences, 2006
Support context-dependent policy specifications
42
Challenge 5 Resolved: Scalable System Composition 5.Integrate support for scalable
composition techniques
• Aspect-Oriented Modeling
• Addresses scalability of modeling effort
• C-SAW tool
• Developed by SOFTCOM (UAB)
• C-SAW with PICML
• Provides template configurations (using ECL) that are weaved into a model
• User can customize the templates depending on application requirements
K. Balasubramanian et al, “Weaving Deployment Aspects into Domain-Specific Models,” the International Journal on Software Engineering & Knowledge Engineering, 2006 (Accepted)
Support scalable composition techniques
43
Research Contributions
Category Benefits Publications
System Composition Technologies
• Support static composition of systems by ensuring that the components get built correctly
• Support dynamic composition of systems by ensuring that the connections between components are correct
• Provide integrated view of system
• Address composition scalability concerns by employing model-weaving technologies
1. IEEE Workshop on Object-oriented Real-time Dependable Systems (WORDS), 2003.
2. International Journal of Embedded Systems, Special issue on Design & Verification of Real-Time Embedded Software, 2005.
3. Elsevier Journal of Computer & System Sciences, 2006.
4. International Journal on Software Engineering & Knowledge Engineering, 2006. (Accepted)
44
System Composition: Proposed Enhancements• Integrate with portable infrastructure
build tools like MakeProjectCreator• Exploit application context
information to take advantage of native platform build tool capabilities, e.g.:• Alter the visibility of symbols
• Elevate implementation artifact abstraction• Allows managing components in
terms of packages• Push metadata into Repository
Manager to allow execution of meta-queries, e.g.:• “Do you have a sensor with
latency specification < 6 µs?”• “Give me a database capable of
handling 2,000 transactions/sec”
Component
ResourceRequirements
Impl Impl Impl
Properties
Component Assembly
ComponentComponent
ComponentComponent
45
Proposed Enhancements: Evaluation Criteria• Baseline for comparison
• Deployment of a system with existing tools (vanilla CIAO & DAnCE)
• Eliminate the need to manually write build scripts
• Reduce static footprint per component type by 20%
• Simple changes already yield 10%
• Total savings accrue based on number of unique types per assembly
• Automate the creation of component packages
• Ability to automatically deploy a package into the Repository Manager
PICML
COMPONENT REPOSITORY
QoS Specs
Configurations
Dependencies
46
Presentation Road Map
• Motivation• Technology Context• Overview of Research Challenges• Research Area 1: Composition of Component
Systems• Research Area 2: Expression of Design Intent• Research Area 3: Application-Specific
Optimizations• Summary of Research Contributions• Concluding Remarks
47
Research Area 2: Expression of Design Intent• Traditional middleware had a
significant gap between design intent & its expression using 3rd generation languages
• Component middleware helps bridge this gap by replacing imperative techniques with declarative techniques
• Examples:
• Describing connection between components
• Describing constituents of component packages
• Configuration of components
• Configuration of middleware infrastructure
<assemblyImpl>
<instance xmi:id="ScaleQosket">
<name>ScaleQosket</name>
<package href="ScaleQosket.cpd"/>
</instance>
<instance xmi:id="LocalResourceManagerComponent">
<name>LocalResourceManagerComponent</name>
<package href="LocalResourceManagerComponent.cpd"/>
</instance>...<connection>
<name>incoming_image_outgoing_image_Evt</name>
<internalEndpoint>
<portName>outgoing_image_Evt</portName>
<instance xmi:idref="LocalReceiver"/>
</internalEndpoint>
<internalEndpoint>
<portName>incoming_image_Evt</portName>
<instance xmi:idref="MultiReceiver"/>
</internalEndpoint>
</connection>
</assemblyImpl>
OS KERNEL
OS I/O Subsystem
Network Interfaces
OS KERNEL
OS I/O Subsystem
Network Interfaces
MIDDLEWARE
ComponentComponent
<assemblyImpl>
<instance xmi:id="ScaleQosket">
<name>ScaleQosket</name>
<package href="ScaleQosket.cpd"/>
</instance>
<instance xmi:id="LocalResourceManagerComponent">
<name>LocalResourceManagerComponent</name>
<package href="LocalResourceManagerComponent.cpd"/>
</instance>...<connection>
<name>incoming_image_outgoing_image_Evt</name>
<internalEndpoint>
<portName>outgoing_image_Evt</portName>
<instance xmi:idref="LocalReceiver"/>
</internalEndpoint>
<internalEndpoint>
<portName>incoming_image_Evt</portName>
<instance xmi:idref="MultiReceiver"/>
</internalEndpoint>
</connection>
</assemblyImpl>
<assemblyImpl>
<instance xmi:id="ScaleQosket">
<name>ScaleQosket</name>
<package href="ScaleQosket.cpd"/>
</instance>
<instance xmi:id="LocalResourceManagerComponent">
<name>LocalResourceManagerComponent</name>
<package href="LocalResourceManagerComponent.cpd"/>
</instance>...<connection>
<name>incoming_image_outgoing_image_Evt</name>
<internalEndpoint>
<portName>outgoing_image_Evt</portName>
<instance xmi:idref="LocalReceiver"/>
</internalEndpoint>
<internalEndpoint>
<portName>incoming_image_Evt</portName>
<instance xmi:idref="MultiReceiver"/>
</internalEndpoint>
</connection>
</assemblyImpl>
<assemblyImpl>
<instance xmi:id="ScaleQosket">
<name>ScaleQosket</name>
<package href="ScaleQosket.cpd"/>
</instance>
<instance xmi:id="LocalResourceManagerComponent">
<name>LocalResourceManagerComponent</name>
<package href="LocalResourceManagerComponent.cpd"/>
</instance>...<connection>
<name>incoming_image_outgoing_image_Evt</name>
<internalEndpoint>
<portName>outgoing_image_Evt</portName>
<instance xmi:idref="LocalReceiver"/>
</internalEndpoint>
<internalEndpoint>
<portName>incoming_image_Evt</portName>
<instance xmi:idref="MultiReceiver"/>
</internalEndpoint>
</connection>
</assemblyImpl>
XML
XMLXML
XML
48
Related ResearchCategory Related Research
Operating System
John DeTreville, Making System Configuration More Declarative, Proceedings of the 10th Work. on Hot Topics in Operating Systems, June 2005, USENIX.
Bryan Cantrill et al, Dynamic Instrumentation of Production Systems, USENIX Annual Technical Conference, 2004
Lionel Cons & Piotr Poznanski, Pan: A High-Level Configuration Language, LISA, Proceedings of the 16th Conference on Systems Administration (LISA 2002), 2002, pp.83-98
Software Description
R. Chinnici et al, Web Services Description Language (WSDL) 2.0 part 1: Core language, August 2004, http://www.w3.org/TR/2004/WD-wsdl20-20040803.
Dashofy, E. M. et al, An infrastructure for the rapid development of XML-based architecture description languages, Proceedings of the 24th international Conference on Software Engineering (Orlando, Florida, May 19 - 25, 2002)
Middleware Packaging
Richter, J., Applied Microsoft .NET Framework Programming, Microsoft Press, 2002.
Sun Microsystems, Enterprise Java Beans Specification, Version 2.1, 2002
Middleware Communication
M Rose, The Blocks Extensible Exchange Protocol Core (BEEP), RFC 3080, March 2001
Don Box et al, Simple Object Access Protocol (SOAP) 1.1, http://www.w3.org/TR/2000/NOTE-SOAP-20000508
49
<assemblyImpl>
<instance xmi:id="ScaleQosket">
<name>ScaleQosket</name>
<package href="ScaleQosket.cpd"/>
</instance>
<instance xmi:id="LocalResourceManagerComponent">
<name>LocalResourceManagerComponent</name>
<package href="LocalResourceManagerComponent.cpd"/>
</instance>...<connection>
<name>incoming_image_outgoing_image_Evt</name>
<internalEndpoint>
<portName>outgoing_image_Evt</portName>
<instance xmi:idref="LocalReceiver"/>
</internalEndpoint>
<internalEndpoint>
<portName>incoming_image_Evt</portName>
<instance xmi:idref="MultiReceiver"/>
</internalEndpoint>
</connection>
</assemblyImpl>
Related Research: What’s Missing?• Declarative techniques use
tool-friendly technologies to express design intent
• Example: XML
• XML is non-intuitive
• Error-prone to write manually
• Changes to system require changes to generated XML
• Redundant effort
• Problems with imperative techniques not solved
• Declarative techniques shifted the problem into a different space
• “Whack-a-mole” approach
Support for declarative notations of component middleware is critical!
Is id unique?
Does portName refer to a valid port?
Is idref a valid reference?
50
Expression of Design Intent: Unresolved Challenges
1.Complexity of Declarative Notations
• Example 1: CORBA Interface Definition Language (IDL)
• Differences between CORBA 2.x & CORBA 3.x (CCM)
• New keywords in the language
• Subtle differences in syntax & semantics of similar elements
–CORBA 2.x interfaces
–CORBA 3.x components
// CORBA 3.xcomponent ImageProvider {};component ImageViewer {};component LRM : ImageProvider, ImageViewer
{ // Operations on LRM
};
// CORBA 2.xinterface ImageProvider {};interface ImageViewer {};interface LRM : ImageProvider,
ImageViewer{ // Operations on LRM
};
Accidental complexities are present in every technology!
51
Expression of Design Intent: Unresolved Challenges• Example 2: .NET manifests
• Each assembly in .NET can be associated with manifests
• Policy specifications for assembly, user, domain
• Configuration of assembly• Manifest names are closely
associated with assembly names• Foo.dll Foo.dll.manifest• Foo.dll Foo.dll.config
• OS loader ignores configurations in files with other names
2.Lack of support for system evolution• Interfaces & metadata of
individual components needs to evolve with the system
Need flexible abstractions to express design intent!
Policy
`
Group
Application Assembly Manifest
User
Component
ResourceRequirements
Implementation
Properties
ImplementationImplementation
Component Assembly Configuration
Component Assembly Manifest
Application Assembly Configuration
52
PICML (CCM)
PICML (.NET)
CCM Models
.NET Web Service Models
PICML (CCM+.NET)
GME Composition
CCM Deployment descriptors
.NET Deployment descriptors
CCM Deployment descriptors
.NET Deployment descriptors
CCM+.NET Web Service
Models
Solution Approach: Model-Driven Generation• Provide high-level
abstractions for specification of design intent
• Automate generation of platform-specific metadata from these abstractions
• Provide support for system interface & metadata evolution
• Provide support for developing heterogeneous systems
53
Challenge 1 Resolved: Automate Generation of Metadata
1.High-level, user-friendly visual abstractions for declarative notations
• Define a type system that captures the platform semantics
• e.g., CCM, .NET
ModelInterpreters
Application Model
<connection> <name>compressionQosPredictor_qosLevels</name> <internalEndpoint> <portName>qosLevels</portName> <instance xmi:idref="CompressionQosPredictor"/> </internalEndpoint> <internalEndpoint> <portName>compressionQosPredictor</portName> <instance xmi:idref="LocalResourceManagerComponent"/> </internalEndpoint></connection>
Generated Descriptors
N N N N
N
N
N
N
NN
Application Model Abstract Syntax Tree
Provide high-level abstractions for specification of design intent
54
Challenge 1 Resolved: Automate Generation of Metadata
1.High-level, user-friendly visual abstractions for declarative notations
• Define a type system that captures the platform semantics
• e.g., CCM, .NET
ModelInterpreters
Application Model
<connection> <name>compressionQosPredictor_qosLevels</name> <internalEndpoint> <portName>qosLevels</portName> <instance xmi:idref="CompressionQosPredictor"/> </internalEndpoint> <internalEndpoint> <portName>compressionQosPredictor</portName> <instance xmi:idref="LocalResourceManagerComponent"/> </internalEndpoint></connection>
Generated Descriptors
N N N N
N
N
N
N
NN
Application Model Abstract Syntax Tree
• Build model interpreters
• Generate descriptors in required (potentially different) declarative notation(s) for multiple platforms
• Ensure generated artifacts are:
• Syntactically valid
K. Balasubramanian et al, “Developing Applications Using Model-Driven Design Environments,” Computer, vol. 39, no. 2, pp. 33-40, Feb., 2006
Automate generation of platform-specific metadata from these abstractions
55
Challenge 2 Resolved: System Interface Evolution
2.Provide support for system interface evolution
• (Re-)Import/(Re-)Export IDL• Provides migration for
legacy systems• Eliminate accidental
complexities• Define platform interface
semantics using MetaGME & OCL constraints• e.g., a receptacle should
be connected to a facet of the same type or a type derived from the receptacle
K. Balasubramanian et al, “A Platform-Independent Component Modeling Language for Distributed Real-time & Embedded Systems,” Proceedings of the 11th IEEE Real-Time &
Embedded Technology & Applications Symposium, San Francisco, CA, March 2005
Provide automated support system interface & metadata evolution
56
Research ContributionsCategory Benefits Publications
Generative System Technologies
• Expressing domain constraints in the form of a platform-independent MDE tool
• Manage & automate the generation of syntactically valid metadata in various (potentially different) required declarative notations
1. Model Driven Engineering for Distributed Real-time & Embedded Systems, edited by Sebastien Gerard, Joel Champea, & Jean-Philippe Babau, Hermes, 2005
2. IEEE Real-Time & Embedded Technology & Applications Symposium, 2005
3. Elsevier Journal of Science of Computer Programming: Special Issue on Model Driven Architecture, 2006
4. IEEE Computer, 2006
57
Expression of Design Intent: Proposed Enhancements
• Extend generative capabilities of PICML to .NET Web Services to generate:• Assembly manifests (.dll.manifest) –
Describes contents of a .NET component• Application manifests (.exe.manifest) –
Describes metadata associated with an application
• Application Configuration Files (app.config) – Describes application behavior configuration elements
• Web Service Configuration File (web.config) – Equivalent to app.config for external subsystems of a web Service
• Policy files ({enterprisesec, machine, security}.config) – Describes code access security policy elements
Policy
`
Group
Application Assembly Manifest
User
Component
ResourceRequirements
Implementation
Properties
ImplementationImplementation
Component Assembly Configuration
Component Assembly Manifest
Application Assembly Configuration
Support development of heterogeneous systems
58
Proposed Enhancements: Evaluation Criteria• Baseline for comparison
• Deployment of a system having both CCM components & .NET Web Services with existing tools (vanilla CIAO, Visual Studio)
• Automate three-staged deployment of typical .NET Web services • Syntactically valid manifests for
the 3 stages: Development, Testing, & Production
• Eliminate errors in deployment due to inconsistent policies
• Eliminate need for user to write glue code to integrate a CCM component with a .NET Web Service
PICML (CCM)
PICML (.NET)
CCM Models
.NET Web Service Models
PICML (CCM+.NET)
GME Composition
CCM Deployment descriptors
.NET Deployment descriptors
CCM Deployment descriptors
.NET Deployment descriptors
CCM+.NET Web Service
Models
59
Presentation Road Map
• Motivation• Technology Context• Overview of Research Challenges• Research Area 1: Composition of Component
Systems• Research Area 2: Expression of Design Intent• Research Area 3: Application-Specific
Optimizations• Summary of Research Contributions• Concluding Remarks
60
Control Center SystemResource
Manager
ScaleQosket
CropQosket
Compress Qosket
LocalResourceManager
Cropping QoSPredictorScaling QoS
Predictor
Compression QoSPredictor
Image Feeds (.NET Web
Service)
Research Area 3: Application Specific Optimizations • Middleware tries to optimize
execution for every application
• Collocated method invocations
• Optimize the (de-)marshaling costs by exploiting locality
• Specialization of request path by exploiting protocol properties
• Caching, Compression, Various Encoding schemes, e.g. FOCUS tool-chain
• Reducing communication costs
• Moving data closer to the consumers by replication
• Reflection-based approaches
• Choosing appropriate alternate implementations
61
Related ResearchCategory Related Research
Component Middleware
Wang, N. et al, Applying Reflective Techniques to Optimize a QoS-enabled CORBA Component Model Implementation, 24th Annual International Computer Software & Applications Conference Taipai, Taiwan, October 2000.
Teiniker, E. et al, Local Components & Reuse of Legacy Code in the CORBA Component Model, EUROMICRO 2002, Dortmund, Germany (2002)
Diaconescu, A. & Murphy, J., Automating the Performance Management of Component-based Enterprise Systems through the Use of Redundancy, Proceedings of the 20th IEEE/ACM international Conference on Automated Software Engineering (Long Beach, CA, USA, November 07 - 11, 2005).
Gurdip Singh & Sanghamitra Das, Customizing Event Ordering Middleware for Component-Based Systems, pp. 359-362, Eighth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC'05), 2005.
Web Services Gao, L et al, 2003, Application specific Data Replication for Edge Services, In Proceedings of the 12th International Conference on World Wide Web (Budapest, Hungary, May 20 - 24, 2003). WWW '03. ACM Press, New York, NY, 449-460.
Mukhi, N. K., 2004, Cooperative Middleware Specialization for Service Oriented Architectures, Proceedings of the 13th International World Wide Web Conference on Alternate Track Papers & Posters (New York, NY, USA, May 19 - 21, 2004).
62
Related Research: What’s missing?• Lack of high-level notation to guide
optimization frameworks
• Missing AST of application
N N N N
N
N
N
N
NN
Application Abstract Syntax Tree
63
Related Research: What’s missing?• Lack of high-level notation to
guide optimization frameworks
• Missing AST of application
• Emphasis on detection at run-time (reflection)
• Additional overhead in the fast path
• Not suitable for all systems
• Not completely application transparent
• Requires providing multiple implementations
• Optimization performed either
• Too early, or too late
Control Center SystemResource
Manager
ScaleQosket
CropQosket
Compress Qosket
LocalResourceManager
Cropping QoSPredictorScaling QoS
Predictor
Compression QoSPredictor
Image Feeds (.NET Web
Service)
64
Control Center Display
SystemResourceManager
LocalResourceManager
Sender ReceiverCrop
Qosket
Compress Qosket
Scale Qosket
Compression QoS Predictor
Scaling QoS Predictor
Cropping QoS Predictor
Stream 4
Stream 3
Stream 2
Stream 1
Application Specific Optimizations: Unresolved Challenges1.Lack of application
context• Missed middleware
optimization opportunities
• E.g., every invocation performs check for locality
• Optimization decisions relegated to run-time
• Impossible for middleware (alone) to predict application usage
• Settle for near-optimal solutions
Cannot be solved efficiently at middleware level alone!
Node Application
Container
CHCH
CHCH
CHCH
CHCH
CHCH
CHCH
CHCH
CHCH
CH
Receptacle
Facet
Event Sink
Event SourceComponent Home
Component Assembly
Component Remote Invocation
Collocated Invocation
Creates
65
Control Center Display
SystemResourceManager
LocalResourceManager
Sender ReceiverCrop
Qosket
Compress Qosket
Scale Qosket
Compression QoS Predictor
Scaling QoS Predictor
Cropping QoS Predictor
Stream 4
Stream 3
Stream 2
Stream 1
Node Application
Container
CHCH
CHCH
CHCH
CHCH
CHCH
CHCH
CHCH
CHCH
CH
Receptacle
Facet
Event Sink
Event SourceComponent Home
Component Assembly
Component Remote Invocation
Collocated Invocation
Creates
2.Overhead of platform mappings
• Blind adherence to platform semantics
• Inefficient middleware glue code generation per component
• Example: Overhead of external components similar to internal ones
• Factory objects for internal components
3.Standard component models define only virtual assemblies
Need optimization techniques to build large-scale component systems!
Application Specific Optimizations: Unresolved Challenges
66
Control Center Display
SystemResourceManager
LocalResourceManager
Sender ReceiverCrop
Qosket
Compress Qosket
Scale Qosket
Compression QoS Predictor
Scaling QoS Predictor
Cropping QoS Predictor
Stream 4
Stream 3
Stream 2
Stream 1
Node Application
Container
Factory
CHCH
CH
CH
CH
CH
Receptacle
Facet
Event Sink
Event Source
Component Home
Component Assembly
Component Remote Invocation
Optimized Invocation
Creates
CHCHCH
Proposed Approach: Supply Application Context w/Models1.Use models to capture &
derive application context
• Explicit, e.g., radar & sensor are collocated (user-specified)
• Implicit, e.g., radar & sensor deployed onto same node
• Detect components internal to an assembly
2.Optimize platform mappings
• Eliminate space overhead at system level
• e.g., eliminate creation overhead of homes for internal components
67
Proposed Approach: Physical Assembly Mapping3.Devise mapping for physical
component assembly
• Exploit hierarchy of application structure to fuse (make a component internal) at multiple levels in hierarchy
• Experimentally validate right depth of hierarchy to stop fusion
• Too deep – Single giant blob
• Too shallow – Potentially lower benefits
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
CH
68
Proposed Approach: Evaluation Criteria • Baseline for comparison
• Performance & footprint (with vanilla CIAO)
• Emergency Response System (30+ components)
• ARMS GateTest scenarios (1,800+ components)
• Scenario with & without inherent hierarchy
• Reduce static & dynamic footprint
• n = no. of internal components, x = total no. of components in the assembly
• Reduce no. of homes by (n-1)/x
• Reduce no. of objects registered with POA by (n-1)/x
CH CH
CHCH
CH CH
CHCH
CH CH
CHCH
CH CH
CHCH
Assembly Optimizer
Factory
CHCH
CH
CH
CH
CH CHCH
69
Proposed Approach: Evaluation Criteria • Improve performance
• t = no. of interactions between components within an assembly
• Transform t collocation checked calls to t unchecked calls
• Eliminate mis-optimizations• Check incompatible POA
policies• Incompatible invocation
semantics (oneway or twoway)
• No changes to individual component implementations• Eliminate need for a local
vs. remote version
• Customizable & application transparent• Investigate feasibility of applying
optimizations to .NET Web Services (in addition to CCM)
70
Presentation Road Map
• Motivation• Technology Context• Overview of Research Challenges• Research Area 1: Composition of Component
Systems• Research Area 2: Expression of Design Intent• Research Area 3: Application-Specific
Optimizations• Summary of Research Contributions• Concluding Remarks
71
Summary of Research ContributionsTopic Benefits
System Composition Technologies
Support static composition of systems by ensuring that the components get built correctly
Support dynamic composition of systems by ensuring that the connections between components are correct
Address composition scalability concerns by employing model-weaving technologies
Generative Technologies
Expressing domain constraints in the form of a platform-independent MDE tool
Manage & automate the generation of syntactically valid metadata in various required declarative notations
System Optimization Technologies
Automatic discovery & realization of optimizations from models using application context; such optimizations are impossible to perform if operating at the middleware layer alone.
Propose a novel mechanism for mapping an assembly as a component without any extra overhead
Component Assembler
Component Assembly
Component Component
Component Component
Component Package
Component Assembly
Component Component
Component Component
Component Assembly
Component Component
Component Component
(1)
Inte
rfa
ce
De
finiti
on
(2) Interaction Definition
(3) Hierarchical Composition
(5) Metadata Generation
(4) Assembly Optimization
Component Developer
Component Packager
ComponentDeployer
PICMLcompositio
n
asse
mbl
y
optimization
gene
ratio
n
specification
Assembly
Deployment
Assembly
Assembly
DAnCE Framework
Component
ResourceRequirements
Implementation
Properties
ImplementationImplementation
Component Assembler
Component Assembly
Component Component
Component Component
Component Package
Component Assembly
Component Component
Component Component
Component Assembly
Component Component
Component Component
(1)
Inte
rfa
ce
De
finiti
on
(2) Interaction Definition
(3) Hierarchical Composition
(5) Metadata Generation
(4) Assembly Optimization
Component Developer
Component Packager
ComponentDeployer
PICMLco
mposition
asse
mb
ly
optimization
gene
ratio
n
specification
Assembly
Deployment
Assembly
Assembly
DAnCE Framework
Component
ResourceRequirements
Implementation
Properties
ImplementationImplementation
Component Assembler
Component Assembly
Component Component
Component Component
Component Package
Component Assembly
Component Component
Component Component
Component Assembly
Component Component
Component Component
(1)
Inte
rfac
e D
efin
ition
(2) Interaction Definition
(3) Hierarchical Composition
(5) Metadata Generation
(4) Assembly Optimization
Component Developer
Component Packager
ComponentDeployer
PICMLco
mposition
asse
mbl
y
optimization
gene
ratio
n
specification
Assembly
Deployment
Assembly
Assembly
DAnCE Framework
Component
ResourceRequirements
Implementation
Properties
ImplementationImplementation
72
Summary of PublicationsCategory Publications
Generative System Technologies
1. A Platform-Independent Component Modeling Language for Distributed Real-time & Embedded Systems, 11th IEEE Real-Time & Embedded Technology & Applications Symposium, San Francisco, CA, March 2005.
2. Developing Applications Using Model-Driven Design Environments, Computer, vol. 39, no. 2, pp. 33-40, Feb., 2006.
3. Model-driven Development of Component-based Distributed Real-time & Embedded Systems, Model Driven Engineering for Distributed Real-time & Embedded Systems, Hermes, 2005.
4. Model Driven Middleware: A New Paradigm for Deploying & Provisioning Distributed Real-time & Embedded Applications, Elsevier J. of Science of Computer Programming: Special Issue on Model Driven Architecture, 2006.
System Composition Technologies
1. Towards Composable Distributed Real-time & Embedded Software, Proceedings of the 8th IEEE Workshop on Object-oriented Real-time Dependable Systems (WORDS), Guadalajara, Mexico, January 2003.
2. Applying Model-Driven Development to Distributed Real-time & Embedded Avionics Systems, the International Journal of Embedded Systems, special issue on Design & Verification of Real-Time Embedded Software, April 2005.
3. A Platform-Independent Component Modeling Language for Distributed Real-time & Embedded Systems, Elsevier J. of Computer & System Sciences, 2006.
4. Weaving Deployment Aspects into Domain-Specific Models, International J. on Software Engineering & Knowledge Engineering, Summer 2006 (Accepted).
First Author Second Author
73
Doctoral Research & Dissertation Timeline
Non-generated artifact
To be implemented
Implementation complete
Collaboration with Jeff Parsons
9 Jan, 2003 15 Dec, 2006
3/03 6/03 9/03 12/03 3/04 6/04 9/04 12/04 3/05 6/05 9/05 12/05 3/06 6/06 9/06
1/03WORDS 03 Paper
7/03Work on PICML started
4/04Inital version of PICML
10/03Elsevier Journal 06 Paper
6/04Support for generation of metadata
8/04Support for hierarchical composition
9/04RTAS 05 Paper
5/05Elsevier Journal 06 Paper
12/04IJES 05 Paper 3/05
IJSEKE 06 Paper
1/05MDE Book Chapter 05
10/05IEEE Computer 06
2/05Support for scalable composition
10/04OOPSLA 04 Poster
10/06Support for .NET Web Services
4/06 - 9/06Submissions to MoDELS, Middleware,
OOPSLA/GPCE, DOA, RTSS, ICSE
3/06Qualifying Exam
7/06Support for assembly optimization
74
Concluding Remarks
• Component middleware is an emerging paradigm
• Crucial to realizing the vision of Software Factories
• Problems with component middleware
• Significant gaps in the development & integration toolchain
• Potential to negate benefits of using component middleware
• Direct application to DRE systems not possible
• Might not meet the stringent QoS requirements of DRE systems
• My research
• Resulted in improved tool-support for component middleware
• Model-Driven Engineering toolchain
• Successful transition to DD(X) program for TSCEI deployment & configuration services
• Proposes to perform optimizations on component middleware that were previously infeasible
• Exploit application context made available by MDE tool-chain
Tools can be downloaded from www.dre.vanderbilt.edu/CoSMIC/