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.
Chapter 12 The Koala Component Model Building Reliable Componentbased Overview Requirements for Koala Koala Interfaces Binding, Gluing and Switches The Product Line Architecture Managing Versions and Variants Subtyping Summary Building Reliable Componentbased 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 Building Reliable Componentbased 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 Building Reliable Componentbased Koala Interfaces Provide: Like interfaces in COM and java Require: Communication with components environment Multiple: Handle evolution and diversity Optional: Fine tune Building Reliable Componentbased 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 Building Reliable Componentbased Principle of Binding P A B P’ A B’ Building Reliable Componentbased 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 Building Reliable Componentbased A Koala Component Subcomponent Interfaces A switch CC C1 s C2 m C3 A module Building Reliable Componentbased 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 Building Reliable Componentbased Architectural Rules Initialization Initialization interface Multithreading Pumps Notifications Large number of asynchronous activities Building Reliable Componentbased 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 Building Reliable Componentbased Product Line Architecture apps uims Applications & Services A/V Platform API epg tvsvc fact A/V and Data Platform txt tvplf Computing Platform deal infra Audio / Video Hardware Building Reliable Componentbased Computing Hardware Computing Platform API 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 Building Reliable Componentbased Summary Interfaces Binding and bindtimes Components composition Architectural rules Overall architecture Version management Building Reliable Componentbased ... closed systems Building Reliable Component based Principle of Binding P A B P’ A B’ Building Reliable Component based Koala Components Koala component: Implementation in C Component definition Koala. .. of components Top-level component Koala component definition: Describes template for instantiating component Resembles a class in java Building Reliable Component based A Koala Component Subcomponent... Requirements for Koala Koala Interfaces Binding, Gluing and Switches The Product Line Architecture Managing Versions and Variants Subtyping Summary Building Reliable Component based Koala Koala is architectural