In this chapter, the following content will be discussed: Requirements for Koala; Koala interfaces; binding, gluing and switches; the product line architecture; managing versions and variants; subtyping.
Trang 1Building Reliable Componentbased
Systems
Chapter 12 The Koala Component Model
Chapter 12 The Koala Component Model
Trang 2Building Reliable Componentbased Systems
Chapter 12 The Koala Component Model
Overview
Requirements for Koala
Koala Interfaces
Binding, Gluing and Switches
The Product Line Architecture
Managing Versions and Variants
Subtyping
Summary
Trang 3Building Reliable Componentbased Systems
Chapter 12 The Koala Component Model
Koala
Koala is
architectural description language component model for development of embedded software for consumer electronics products
Is used to build a large diversity of products from a repository of components.
Trang 4Building Reliable Componentbased Systems
Chapter 12 The Koala Component Model
Requirements for Koala
Original requirements:
Devise a technique with which components can be
‘freely’ composed into products
The technique must work in resource-constrained environments
Make the product architectures as explicit as possible
Additional requirements:
Let components make as few assumptions as possible about their environment
Allow for parameterized components that are as efficient
as dedicated components
Allow for various ways of connecting components
Trang 5Building Reliable Componentbased Systems
Chapter 12 The Koala Component Model
Koala Interfaces
Provide:
Like interfaces in COM and java
Require:
Communication with components environment
Multiple:
Handle evolution and diversity
Optional:
Fine tune
Trang 6Building Reliable Componentbased Systems
Chapter 12 The Koala Component Model
Binding and Bind Time in Koala
Basic binding scheme:
Usage of symbolic names
Architectural description language
Compiler generates #define
Can be used as long as we build closed systems.
Trang 7Building Reliable Componentbased Systems
Chapter 12 The Koala Component Model
Principle of Binding
A B
P
A B’
P’
Trang 8Building Reliable Componentbased Systems
Chapter 12 The Koala Component Model
Koala Components
Koala component:
Implementation in C
Component definition
Koala configuration:
List of components
Top-level component
Koala component definition:
Describes template for instantiating component
Resembles a class in java
Trang 9Building Reliable Componentbased Systems
Chapter 12 The Koala Component Model
CC
C2
C1
C3
m s
A Koala Component
A module
A switch Interfaces
Subcomponent
Trang 10Building Reliable Componentbased Systems
Chapter 12 The Koala Component Model
Composing Koala Components
Connect:
Requires interfaces to provides interfaces;
Provides interfaces to provides interfaces;
Requires interfaces to requires interfaces
Does not fit?
Connect a wider type
’Normal’ glue code
Switch
Trang 11Building Reliable Componentbased Systems
Chapter 12 The Koala Component Model
Architectural Rules
Initialization
Initialization interface
Multithreading
Pumps
Notifications
Large number of asynchronous activities
Trang 12Building Reliable Componentbased Systems
Chapter 12 The Koala Component Model
Overall Architecture
Separated into three layers:
Computing platform Audio/video/data platform Service and application
Layer contains a set of subsystems
Subsystems contain may components
Trang 13Building Reliable Componentbased Systems
Chapter 12 The Koala Component Model
A/V
Platform
API
uims
txt
apps
Computing Platform API
Audio / Video Hardware
A/V and Data Platform Applications & Services
Product Line Architecture
Trang 14Building Reliable Componentbased Systems
Chapter 12 The Koala Component Model
Managing Versions and Variants
Diversity in a product line should not be handled by a
CM system, because:
It keeps diversity outside scope of the architects and,
CM systems only handle compile-time variation
CM used for:
Maintaining full version history
Temporary branches
Safeguarding product in final testing phase
Koala used for permanent diversity.
Trang 15Building Reliable Componentbased Systems
Chapter 12 The Koala Component Model
Summary
Interfaces
Binding and bindtimes
Components composition
Architectural rules
Overall architecture
Version management