Title: Thais Batista1,2
1Managing Dynamic Reconfiguration in
Component-based Systems
Thais Batista1,2 Ackbar Joolia2 Geoff Coulson2
1Informatics Department Federal University of Rio
Grande do Norte Natal RN, Brazil 2Computing
Department Lancaster University Lancaster, UK
2Summary
- Motivation
- Plastik
- ACME
- OpenCOM
- Reconfiguration
- Programmed
- Ad-hoc
- Final Remarks
3Motivation
- Integration
- Architectural Description Languages (ADLs)
- Runtime Component Models
Software Architecture Description
4Plastik
- ADL/Component runtime integration meta-framework
- ADL enhanced ACME/Armani
- Runtime the OpenCOM component model
- Support for Reconfiguration
- Programmed Reconfiguration
- Changes specified at design time
- Ad-hoc Reconfiguration
- Changes specified at runtime (unforeseen at
design time)
5Plastik Architecture
- ADL Levels
- Style Level
- Generic patterns with constraints
- Instance Level
- Style instance (can define additional
constraints) - Runtime Level
- System Configurator
- Architectural Configurator
- Supports reconfiguration requests at ADL level
- Translation between Architecture and Runtime
- Runtime Configurator
- Manages runtime level
6ACME/Armani
- Software Architecture Description Language
- Interchange language among different ADLs
- Extensible
- Armani
- FOPL-based language
- Constraints over ACME architectures
7ACME/Armani
- Style
- Components
- Ports (do not distinguish offered and required
ports) - Connectors
- Roles
- Systems
- Representations
- Attachments
- Properties
- Name, type, value
- Types
- Constraints
8OpenCOM
- Component Frameworks
- Components
- Interfaces
- Receptacles
- Bindings
- Capsules
- Reflective meta-models
- Architecture meta-model
- Interception meta-model
- Interface meta-model
9Mapping ACME/Armani - OpenCOM
10Reconfiguration
- ACME/Armani Support
- Invariants
- Extended with construct enables type extension
- Representation construct enables switching from
one representation of a component to another - Properties construct
11Programmed Reconfiguration
- ACME extensions
- Conditional construct
- On (ltpredicategt) do ltactionsgt
- Destruction of existing elements
- detach ltelementgt
- remove ltelementgt
- Dependencies
- dependencies ltstatementsgt
- Dynamic
- ltconnectorgt to dynamic ltcomponentype.portgt
12Programmed Reconfiguration
- Example On-do, detach, remove
On (Link.net_bandwidth low) do detach
MPEG_dec.downTo to AppToTrans.souce remove
MPEG-dec Component H263-dec decoder new
decoder extended with Property
decoder-type H263 Attachments
H263-dec.downTo to AppToTrans.source
Attachments ConnX.r to dynamic Network.p
13Programmed Reconfiguration
Component transport OSIComp ...
dependencies extended with RequiredPort
bufport Component bm bufferManager
Invariant forall pProvidedPort in
bm.Ports p.rate gt 1000
Connector transtobuf ProvidedRole
pr RequiredRole rr
Attachments transport.bufport to
transtobuf.rr bm.pp to transtobuf.pr
14Programmed Reconfiguration
- Runtime Support
- On-do compiled into a FSM representation
- ADL predicates represented as OpenCOM properties
- detach/remove use OpenCOMs architecture
meta-model - dependencies statement implies in the dynamic
loading (and binding) all specified dependencies - dynamic builds on OpenCOMs load/bind APIs
(according to the specified policies)
15Ad-hoc Reconfiguration
- ADL level ad-hoc reconfiguration
- Architecture modification script (in enhanced
ACME/Armani) to the Architectural configurator
Component BigBufferManager ProvidedPort pp
RequiredPort rp detach
BrufferManager.pp to transtobuf.pr remove
BufferManager Component bbm BigBufferManager
new BigBufferManager Attachments
BigBufferManager.pp to transtobuf.pr
Change Script
16Ad-hoc Reconfiguration
- Runtime ad-hoc reconfiguration
- Operations applied to the OpenCOM reflective
models
Component_instance loggingI Loaded_component
logging // new component logging
load(comp_type_logging) loggingI
instantiate(logging) If (ArchMM.connected(Networ
k-comp, Link-comp)) ArchMM.unbind(Network-co
mp, Link-comp) ArchMM.bind(NEWBINDER,
Network-comp, loggingI) ArchMM.bind(NEWBINDER
, loggingI, Link-comp) ArchMM.insert(loggingI
, CLSID) ArchMM.updateLink(CLSID,
Network-Comp) Runtime Reconfiguration
17Final Remarks
- Plastik meta-framework
- ADL with formal support enhanced ACME/Armani
- Component runtime environment OpenCOM
- Programmed and Ad-hoc reconfiguration
- Future directions
- Mapping Implementation (in progress)
- Experiments in realistic application scenarios