Title: How ADLs concepts can help in adapting the CORBA Component Model to RealTime Embedded Software Desig
1How ADLs concepts can help in adapting the CORBA
Component Model to Real-Time Embedded Software
Design
- Sylvain Robert1, Ansgar Radermacher1, Vincent
Seignole2, Sébastien Gérard1, Virginie Watine2,
Stéphane Ménoret2 and François Terrier1
1 CEA-LIST CEA Saclay 91191 Gif sur Yvette
France
2 Thales/ALICE pilot programme THALES 91300
Massy France
2Context
- construction of RT and embedded systems via
composition - relevance of the component-based approach
- provides systematic approach to cope with
complexity - systems are less and less dedicated to very
precise functions - follow standard conforming approaches
- CCM (CORBA Component model) from OMG
- introduction of clear decomposition of roles /
concerns in sw-process - but needs some adaptation
- was primarily thought for mainstream / non-RT
systems - in particular
- provision of a real-time environment
- as well as adequate inter-components interactions
support - This talk focuses on RT interactions for CCM
- is the topic for THALES-SC2 CEA-List
collaborative CARROLL-ICE project
3Presentation outline
- Review of CORBA Component Model aspects
- ingredients, role, process
- how it can be opened to integrate connector
notions - Analysis of classical interaction mechanisms
- classification attempt, analysis
- Presentation of CCM extension strategy
- how we introduce the connector concept into CCM
- Conclusions and future work
4Review of CCM features
- a component model
- description of components
- provided/required services
- events published/consumed
- an execution environment
- Containers
- provide a templated usage of CORBA
- shield component developers from middleware
technical concerns - underlying CORBA middleware support
- a packaging model
- software-package format
- auto-descriptive contents, dependencies
- a deployment infrastructure
- components assembly descriptors runtime support
5CCM features review development process / roles
- different separated roles
- component provider
- provides implementation
- provides package compnt
- container provider
- provide container with adequate non-func support
- integrator
- i.e provide assembly description, configuration
and use deployment tools to set up whole system.
6Answering the need for CCM interactions
improvement
- Only basic interactions supported by CCM
- synchronous method invocation
- (1,n) push-push typed events propagation
- Variety of architectural styles in RT-systems
- Examples are
- pipes and filters
- very classical in the communication protocols
domain - variants of publish-subscribe
- push/pull, typed / untyped events
- blackboard pattern
- Goal allow these kinds of architectural styles
(and others) in CCM
7Answering the needs for CCM interaction
improvements
- ADLs presently introduce the concept of
connectors - separation between components and connectors
- Components functional entities
- Connectors interaction entities
- We follow these ideas and introduce connectors in
CCM - to realize the interactions needed
- behind well-defined interfaces
- will suitable configuration mechanisms
- invoked during deployment/setup phase
- in a reusable manner
- packaging of connectors
- including connector binaries, description, and
code generation plugins for particular connectors
that need it. - we are also lead to define new kinds of
components' ports - will correspond to connector interface for
component role in a particular interaction. - goal have a reusable Port types / Connector
library.
8Analysis of main interaction patterns in
real-time systems
- Analysis
- goal was to list main interaction mechanisms
families - Broad review of technologies
- RTOSes, real-time middlewares, design platforms
- classification follows spirit of paper
- Towards a taxonomy of software connectors, by
N.R Mehta, N. Medvidovic, S. Phadke, ICSE 2000 - but differs in some points
- Results
- Characterization of an interaction is done via
- the participants in the interaction (roles and
cardinalities), - the type of service (communication or/and
synchronization, ...) - QoS features
- Three primitive connector types
- Message, Event, Procedure call
9Analysis of main interaction patterns in
real-time systems
- Example Message Connector (subset)
10CCM Extension strategy
- Integration of connectors solution involves
- provision of description mechanisms
- for connectors
- for new kinds of ports, for usage of them
- provision of framework
- for implementation of connectors
- or for code generation plugins (in case of
type-specialized conn.) - extension of CCM runtime
- to install / setup / configure
- bind connectors instances to components
- extension of CCM assembly descriptors
- to let appear the connector notion in it
- and specify binding to components
11Impact on software engineering process
- description of ports affected to components
- done via extended IDL3
- uses_port new keyword inside component type
decl - refers to Port collection
- CIF is derived from port types definitions
codegen - Assembly descriptor
- defines connector instances
- in addition to comp instances
- defines
- binding of components to connectors
- configuration of connectors
- Connector instantiation
- additional code generation step for typed
connectors
12Connectors Examples
- Event Bus
- Push/Pull pub-sub
- publishers / subscribers
- are associated to collection of char strings
- event delivered to subscribers whose tag
collection is a subset of the emitter one - Event channel plays particular role
- Delayed procedure call
- poll-based version
- connector naturally parameterized by type of
target interface
connector EvtBus provides PushInterface
for_publishers provides PullInterface
for_consumers
connector RPC_PollltIgt provides trsf(I)
for_poll_client uses I for_server
13More insight on connectors for CCM (runtime
setting)
- connectors realizations are fragmented
- some fragments co-localized with components
- implement interface between component and
connector - some fragments in a priori unknown in advance
place - example event channel
- collaboration modalities between fragments is
connector specific - fragments created and configured via local
factories
14Relations between components, ports, and
connectors
Example
- Ports
- definitions
- can be parameterized
- refer to IDL interfaces
- Components
- declare Ports usage
- Connectors
- refer to port types
- or directly to interfaces
- if the mapping is 1 to 1
interface PushEventInterface void push( in
any evt ) Port_type PushPublisher uses
PushEventInterface pe Port_type PushConsumer
provides PushEventInterface pe
component C uses_port PushPublisher
pub_port component D uses_port
PushConsumer cons_port
connector PushPushEvent provides_port
PushPublisher for_pubs provides_port
PushConsumer for_cons
15Extension of configuration and deployment for CCM
- Extensions
- of assembly file format (XML Schema)
- for ability to refer to connector package
- for ability to install, instantiate and configure
connector instance - local fragments as well as non-localization
constrained ones - configuration per connector instance, or
associated to particular components bound to
connector instance - for ability to define bindings between components
ports to connector slots (i.e between matching
ports) - of CCM runtime
- to support interaction with deployment tool
16Conclusions
- Presented extensions of CCM to support
- multiple kinds of software interactions
- via a framework used to develop connectors
- via extension of CCM runtime (to allow
instantiation of them) - configuration mechanisms for connectors
- Assessment and validation of proposal
- forthcoming with application on a radio-protocol
stack (inspired from UMTS) use-case - Could lead to CCM extensions proposal in the
future in case of good evaluation.