Click here to load reader

KOALA, Robocop, KobrA, PECOS and Pin Aneta Vulgarakis COMPONENT MODELS

  • View
    212

  • Download
    0

Embed Size (px)

Text of KOALA, Robocop, KobrA, PECOS and Pin Aneta Vulgarakis COMPONENT MODELS

  • Slide 1
  • KOALA, Robocop, KobrA, PECOS and Pin Aneta Vulgarakis COMPONENT MODELS
  • Slide 2
  • KOALA component model C[K]omponent Organizer and Linking Assistent Developed and used by Philips for development of software in consumer electronics
  • Slide 3
  • 3 KOALA component definition Component is a unit of design, development and reuse Interact between the environment or other components ONLY through explicit interfaces Koala components are defined in its: IDL (interface definition language) CDL (component definition language) DDL (data definition language) Syntactically: KOALA components are defined in ADL-like language Semantically: KOALA components are units of computation and control connected together in an architecture C influenced syntaxes
  • Slide 4
  • 4 KOALA interface definition Interfaces are represented as squares with triangles The tip of the triangle represents the direction of the function call Two types of interfaces: provides interface = methods to access the component from outside requires interface Koala component may behave like a system by itself provides interface required interface
  • Slide 5
  • 5 KOALA component composition Repository for KOALA components is the KoalaModel Workspace Composition of components is only possible in the design phase Connect: Provides interfaces to requires interfaces; Provides interfaces to provides interfaces; Requires interfaces to requires interfaces. Combination of components is a composite component KOALA configuration is a list of components and a list of connectors between the components
  • Slide 6
  • 6 KOALA component composition (contd) Three kinds of connectors: Binding connect requires interface of a component to a provides interface of the same type of another component - provides interfaces are wider than requires interfaces => possible evolution of components - adding new functionalities to a component and still compatible with former versions - represented as a line Glue code connects requires interface of a component to a provides interface of a different type of another component - written in C or limited expression language within Koala - represented as m (for modules) Switch special glue code that switches binding between components - chooses between provides interfaces of different components at run time - represented as a switch note
  • Slide 7
  • 7 KOALA component composition (contd) In deployment phase Koala components are compiled into a programming language and executed in the runtime environment of that language NO NEW COMPOSITION OF COMPONENT INSTANCES IS POSSIBLE! subcomponent module switch interface
  • Slide 8
  • 8 KOALA example Stopwatch device for counting down from a specific number e.g. 100 Stopwatch device comprises Countdown and Display component Interface of Countdown component specifies the signature of function count which Countdown component implements Countdown component definition defines its provides interface ICount and its implementation c_impl
  • Slide 9
  • 9 KOALA example (contd)
  • Slide 10
  • 10 KOALA basic principles of CBSE Reusability ok Composition possible only at design time The builder can retrieve (composite) components from the repository reuse Substitutability no ? subtyping: new versions of a component are backward compatible with old versions Use subtyping for achieving substitutability Component A can be replaced by component B if it is a B subtype of A HOWEVER there are no direct constructs for replacing components by other components in the Koala language Extensibility ok- at design and compile time New components can be added Possible to create a new interface type that contains all the functions of the previous interface plus some additional ones at design time Composibility - not ideal Only possible at design phase
  • Slide 11
  • 11 KOALA summary Component is a unit of design, development and reuse Koala components are constructed as CDL files and deposited into repository KoalaModel Workspace In design phase Koala components are composed by method calls through connectors In deployment phase no new composition is possible => there is no assembler Koala components are compiled into C and executed in the rum-time environment of that language
  • Slide 12
  • Robocop component model Developed in Eindhoven University Variant of the Koala model
  • Slide 13
  • 13 Robocop the project Defines an open, CB architecture for the middleware layer of high- volume consumer electronics The architecture consists of: development and execution framework optional download and resource framework At development level the component is a collection of models and relationship between these models Allow system builders to reason about a-priori about systems composed from components At execution level there is a binary component model, which combines element of OMG,CORBA,COM and KOALA
  • Slide 14
  • 14 Robocop component definition Component is a set of models each providing information about the component Different types of models are possible such as: - functional model - non-functional model: describes timing, reliability, memory usage Components are logically subdivided in services (similar to public classes in OO language Services are instantiated in run-time and are logically equivalent to objects in OO programming Robocop Component Resource Model Simulation Model Documentation Executable Component Functional Model Source Code
  • Slide 15
  • 15 Robocop interface definition Interface definitions are specified in an Interface Definition Language (IDL) Robocop IDL (RIDL) Interfaces are defined separately from services => multiple services can provide implementation of the same interface Each service has a special management interface, service interface Service interface contains operations for obtaining provided services from the service and binding the required interface to the provided interface of another server
  • Slide 16
  • 16 Robocop interface definition (contd) Robocop convention: User of some functionality is called a client Provider is called a server For minimizing coupling between clients and servers: The functionality is encapsulated in services that expose their functionality through interfaces provided interfaces Required interface and 3 rd party binding clients specify what they need but not who will provide it, this is responsibility of the 3 rd party Multiple interfaces supported from provided and required side
  • Slide 17
  • 17 Robocop component composition Components can be composed from several models The composition of components is called application Robocop framework can calculate system properties from composition of components During run-time a Robocop platform can execute a component that resides on the platform or request a component from the repository => possible dynamic binding of services required by a component to services provided by another component
  • Slide 18
  • 18 Robocop basic principles of CBSE Reusability - ok It is possible to use third party components and reuse old ones Substitutability ? Extensibility ok Add new functionality to the system at design time, compile time and run- time Composibility At design and deployment phase ???
  • Slide 19
  • 19 Robocop summary Component is a set of models each providing information about the component Components are logically subdivided in services Interface definitions are specified in an Robocop IDL (RIDL) Interfaces are defined separately from services => multiple services can provide implementation of the same interface Components can be composed from several models and the composition of components is called application
  • Slide 20
  • KobrA component model Komponentenbasierte Anwendungsentwicklung Supported by the German Ministry of Research and Technology (BMBF) - Variation of UML model driven representation of components-
  • Slide 21
  • 21 KobrA component and interface definition Component is a UML component Component specification = what it does Describes all the properties of components instances that are visible to other component instances Specification of a component is the interface of the component Two interfaces: Requires interface = imported, supplied or used interface Provides interface = supplied or server interface KobrA component may behave as a system by itself
  • Slide 22
  • 22 KobrA component vs. system Many approaches see component development and component assembly as different activities Development with components development of components In KobrA component development and assembly are the same thing => A system = a component + = + =
  • Slide 23
  • 23 KobrA example Bookstore which wishes to maintain a database of its book stock The bookstore sells its books by and Automatic Teller Machine (ATM) The specification of the bookstore component is:
  • Slide 24
  • 24 KobrA component composition KobrA components are composed by direct method calls only in the design phase Construction of KobrA components in a visual builder ex Visual UML Repository of KobrA components is a file system stores a set of UML diagrams not possible to form a composite component in KobrA, only system template Design Deployment Run-time Component life-cycle
  • Slide 25
  • 25 K

Search related