Docstoc

A Classification Framework for Component Models

Document Sample
A Classification Framework for Component Models Powered By Docstoc
					A Classification Framework for
     Component Models
   Ivica Crnkovic, Séverine Sentilles,
        Aneta Vulgarakis, Michel
               Chaudron
       Essential principles of CB
               approach
• Component-Based Development
   – Build software systems from pre-existing “elements” called
     components
     (like building cars from existing components)

   – Building components that can be reused in different applications

   – Maintain systems by replacement of components and
     introducing new components into the system

   – Separate development of components from development of
     systems




          23-May-13                                                     2
                 Different solutions
Many CB models (with many different characteristics) exist
  todayy
                                             A
                                 Input                                  Output
                                 ports                                  ports
                                                   C1      C2
                                                   wcet1   wcet2
                                                   f1      f2




                                                           AUTOSAR      MS COM
                                                           BIP          OpenCom
                                                           COMDES       OSGi PIN
                                                           CCA          PECOS
                                                           Corba CM     ROBOCOP
                                                           EJBFractal   RUBUS
<<component>>                      <<component>>           KOALA        SaveCCM
    Client                             Server              KobrA        SOFA 2.0
                  IdenticalItf

            23-May-13                                                            3
                   Questions
– What is common to component models?

– It is possible to identify common principles and common
  features?

– Is it possible to utilize/instantiate these principles for
  particular component models in particular domains?




      23-May-13              ICATSarajevo - 2007-10-29         4
                       Goal
• Propose a classification framework for
  component models
  – Identify characteristics and categorize them
  – Illustrate its use by providing a survey of a number
    of component models
  – (Analysis of the data resulting)




       23-May-13                                           5
                         Classification
• How to describe (i) Commonalities, (ii) Differences?
• Different approaches
    – Specification of Meta model
    – List of characteristics
    – Identification of categories and their characteristics


• Component Specification
             C = <{Interfaces}, {Properties}>
• Component Composition:
             C = C1  C2
             Interaction (Interface composition):       I(C) = I(C1)  I(C2)
             Property composition:                      Pi(C) = Pi(C1)  Pi(C2)
• Component Lifecycle


             23-May-13                                                            7
      The Classification Framework -
                Categories
                                                                              EFP

•   Lifecycle. The lifecycle dimension identifies the support
    provided (explicitly or implicitly) by the component model,
    in certain points of a lifecycle of components or
    component-based systems.

•   Construction. The construction dimension identifies
    (i) the component interface used for the interaction with
    other components and external environment, and                lifecycle
    (ii) the means of component binding (initiate
    communication )and
    (iii) communication.

•   Extra-Functional Properties. The extra-functional
    properties dimension identifies specifications and support
    that includes the provision of property values and means
    for their composition.

•   Domains. This dimension shows in which application and
    business domains component models are used.          Domain A             Domain B



             23-May-13                                                                   8
                     Component lifecycle
requirements
                 modelling                            Component lifecycle

                             implementation

                                                   packaging

        Component forms                                          deployment

                                                                               Execution
       Specification       Code                  Storage
       • Interface         • Source code         • Repository
       • Models            • Executable code     • Package         Installed   Executable
       • Meta data         • Executable models   • Meta data       Files       code




               23-May-13                   ICAT Sarajevo - 2007-10-29                       9
                   Construction (I)
• Specification of
  – Interface             <<component>>
                              Client




                         <<component>>    <<component>>
  – Composition              Client           Server


    (binding &
    interaction)




       23-May-13                                          11
                   Interface Specification
                              Categories
                               • Levels
                                  – - Syntactic
                                    - Semantic
                                    - Behavioral
<<component>>                  • Specification language
    Client


                               • Distinquish
                                  – Provide
<<component>>                     – Require
    Client
                               • Interface type
                                  – Operation-based
<<component>>                     – Port-based
    Client




                23-May-13                                 12
Binding & Deployment




23-May-13   ICAT Sarajevo - 2007-10-29   13
                          Bindning (I)
<<component>>                 <<component>>
    Client                        Server




        Architectural style                       Communication type
     (client-server, pipe-filter)             (synchronous, asynchronous)




            23-May-13                                                       14
                       Binding (II)
        Endogenous

<<component>>          <<component>>
    Client                 Server




         Exogenous


<<component>>          <<Connector>>
                       <<component>>   <<component>>
    Client                  between
                         In Server         Server




           23-May-13                                   15
                           Binding (III)
                                                    Composition

<<component>>                  <<component>>
    Client                         Server
                                                           Horizontal




                                                              Vertical
                          <<component>>
                              Server


          <<component>>             <<component>>
              Client                    Server




           23-May-13                                                     16
  Construction classification
• Interface
   – operation-based/port-based
   – provides/requires

   – The interface level (syntactic, semantic, behaviour)
   – distinctive features
• Connections
   – Architectural Style
   – Communication type (synchronous/asynchronous)
   – Binding type
      • Endogenous, Exogenous
      • Vertical, horisontal


          23-May-13                                         17
  Extra-Functional Properties
• Management of extra-functional properties
  – Does a component provide any support for extra-functional
    properties?
  – What are the mechanisms?
  – Which properties are managed?


• Composition of extra-functional properties
  – P(C1 o C2) = P(C1) o P(C2)
  – What kind of composition is supported?
  – Which properties?




        23-May-13                                               18
                 Management of EFP
                 A                                              B     component                    component

Endogenous EFP                                                      EFP Management             EFP Management
                      component                   component
  management     EFP Management                EFP Management


                                                                                  EFP Management
                           Component Execution Platform
                                                                           Component Execution Platform




                 C                                              D     component                    component

Exogenous EFP          component                  component
 management
                     EFP Management            EFP Management
                                                                                  EFP Management
                           Component Execution Platform                    Component Execution Platform




                       EFP Managed per collaboration                     EFP Managed systemwide
     EPF – composition types (I)
1. Directly composable properties.

2. Architecture-related properties


3. Derived properties.



4. Usage-depended properties.



5. System environment context properties.



          23-May-13                         20
    EPF – composition types (II)
1. Directly composable properties. A property of an assembly is a
   function of, and only of, the same property of the components
   involved.
    – P(A) = f(P(C1),…P(Ci),…,P(Cn))
2. Architecture-related properties. A property of an assembly is a
   function of the same property of the components and of the
   software architecture.

    – P(A) = f(SA, …P(Ci)…), i=1…n
    – SA = software architecture


          23-May-13                                                  21
     EPF – composition types (III)
3   Derived properties. A property of an assembly depends on several
    different properties of the components.
    – P(A) = f(SA, …Pi(Cj)…), i=1…m, j=1…n
    – Pi = component properties
    – Cj = components
4   Usage-depended properties. A property of an assembly is
    determined by its usage profile.
    – P(A,U) = f(SA, …Pi(Cj,U)…), i=1…m, j=1…n
    – U = Usage profile
5   System environment context properties. A property is determined
    by other properties and by the state of the system environment.
    – P(S,U,X) = f(SA, …Pi(Cj,U,X)…), i=1…m, j=1…n
    – S= system, X = system context


            23-May-13                                                  22
                     Domains
Applications and business domain of the Component Models

• General-purpose:
   – Basic mechanisms for the production and the composition of
     components
   – Provide no guidance, nor support for any specific architecture.

• Specialised:
   – Specific application domains
     (i.e. consumer electronics, automotive, …)

• Generative:
   – Instantiation of particular component models
   – Provide common principles and some common parts of technologies
     (for example modelling)
   – Other parts are specific (for example different implementations)



      23-May-13                                                         23
Classification
summary




                 23-May-13   24
Illustration of the Classification
          Framework use
• Survey of 25 component models

• Selection of documentation for each component model
   – Satisfies criteria
   – Disposability the definition (Interfaces, composition)
   – Some points in the table have been subject our interpretation.




     23-May-13                                                        25
    Chosen component models
•   AUTOSAR          •   MS COM
•   BIP              •   OpenCOM
•   BlueArX          •   OSGi
•   CCM
                     •   Palladio
•   COMDES II
                     •   PECOS
•   CompoNETS
•   EJB
                     •   Pin
•   Fractal          •   ProCom
•   KOALA            •   ROBOCOP
•   KobrA            •   RUBUS
•   IEC 61131        •   SaveCCM
•   IEC 61499        •   SOFA 2.0
•   JavaBeans



         23-May-13                  26
                                              Lifecycle table
Component
                              Modelling                              Implementation                       Packaging                        Deployment
 Models

AUTOSAR                            N/A                                       C               Non-formal specification of container        At compilation

             A 3-layered representation: behavior, interaction,
   BIP                                                                BIP Language                            N/A                         At compilation
                              and priority
 BlueArX                           N/A                                       C                              N/A                           At compilation
                                                                                                   Deployment Unit archive
  CCM                              N/A                            Language independent                                                      At run-time
                                                                                                        (JARs, DLLs)
COMDES II                   ADL-like language                                C                              N/A                           At compilation
                                                                                                   Deployment Unit archive
CompoNETS           Behavour modeling (Petri Nets)                Language independent                                                      At run-time
                                                                                                        (JARs, DLLs)
   EJB                            N/A                                       Java                         EJB-Jar files                      At run-time
                            ADL-like language                      Java (in Julia, Aokell)
  Fractal             (Fractal ADL, Fractal IDL),                    C/C++ (in Think)            File system based repository               At run-time
                         Annotations (Fractlet)                   .Net lang. (in FracNet)
 KOALA         ADL-like languages (IDL,CDL and DDL)                          C                   File system based repository             At compilation
  KobrA                       UML Profile                         Language independent                        N/A                              N/A
                     Function Block Diagram (FBD)
                                                                  Structured Text (ST)
IEC 61131                Ladder Diagram (LD)                                                                  N/A                         At compilation
                                                                  Instruction List (IL)
                     Sequential Function Chart (SFC)
IEC 61499            Function Block Diagram (FBD)                 Language independent                        N/A                         At compilation
JavaBeans                         N/A                                      Java                            Jar packages                   At compilation
                                                                                                                                     At compilation and at run-
 MS COM                           N/A                                 OO languages                             DLL
                                                                                                                                                time
OpenCOM                           N/A                                 OO languages                             DLL                          At run-time
                                                                                                                                         At run-time and at
  OSGi                            N/A                                      Java                         Jar-files (bundles)
                                                                                                                                            compilation
 Palladio                    UML profile                                 Java                                N/A                            At run-time
 PECOS              ADL-like language (CoCo)                          C++ and Java                   Jar packages or DLL                  At compilation
   Pin               ADL-like language (CCL)                               C                                 DLL                          At compilation
 ProCom           ADL-like language, timed automata                        C                     File system based repository             At compilation
                                                                                                                                     At compilation and at run-
ROBOCOP     ADL-like language, resource management model                C and C++                    Structures in zip files
                                                                                                                                                time
  RUBUS               Rubus Design Language                                 C                    File system based repository             At compilation
 SaveCCM       ADL-like (SaveComp), timed automata                          C                    File system based repository             At compilation
 SOFA 2.0      Meta-model based specification language                     Java                            Repository                       At run-time


                23-May-13                                                                                                                                         27
                    Lifecycle table
Component
                 Modelling           Implementation         Packaging        Deployment
 Models
                                                                                 At
AUTOSAR              N/A                     C
                                                               N/A           compilation
                 A 3-layered
                                        Source code,
              representation:                                                    At
   BIP                               implementation in         N/A
            behavior, interaction                                            compilation
                                       BIP language
                and priority
                   Abstract
                                                         Deployment Unit
              model:OMG-IDL,             Language
  CCM                                                        archive         At run-time
                Programming            independent.
                                                          (JARs, DLLs)
                model: CIDL
              ADL-like language            Julia,
            (Fractal ADL, Fractal      Aokell(Java)      File system based
 Fractal                                                                     At run-time
                    IDL),              Think(C/C++)          repository
            Annotations (Fractlet)     FracNet(.Net)
              ADL-like languages                         File system based        At
 KOALA                                       C
            (IDL,CDL and DDL)                                repository      compilation
   EJB                N/A             Java binary code      EJB-Jar files    At run-time
             23-May-13                                                                     28
                         Constructs table - Interface
                          Distinction                                               Interface
Component   Interface          of                                  Interface         Levels
                                        Distinctive features                       (Syntactic,
 Models       type        Provides /                               Language         Semantic,
                           Requires                                                Behaviour)
            Operation-
AUTOSAR       based          Yes        AUTOSAR Interface*        C header files   Syntactic
            Port-based
                                         Complete interfaces,                      Syntactic
   BIP      Port-based        No                                 BIP Language      Semantic
                                        Incomplete interfaces                      Behaviour
 BlueArX    Port-based       Yes                 N/A                    C          Syntactic
            Operation-                  Facets and receptacles
  CCM         based          Yes                                  CORBA IDL,       Syntactic
                                        Event sinks and event       CIDL
            Port-based
                                               sources
                                                                  C header files   Syntactic
COMDES II Port-based         Yes                N/A                State charts    Behaviour
                                                                    diagrams
                                        Facets and receptacles
CompoNET Operation-
           based             Yes
                                                                  CORBA IDL,
                                                                      CIDL,        Syntactic
                                        Event sinks and event                      Behaviour
   S     Port-based                                                 Petri nets
                                               sources
                                                                       Java
   EJB      Operation-        No                N/A               Programming      Syntactic
              based                                                Language +
                                                                   Annotations
                                                                   IDL, Fractal
            Operation-                  Component Interface,     ADL, or Java or   Syntactic
  Fractal     based          Yes                                        C,         Behaviour
                                          Control Interface        Behavioural
                                                                     Protocol
 KOALA      Operation-       Yes         Diversity Interface,      IDL, CDL        Syntactic
              based                      Optional Interface
              23-May-13                                                                          29
            Constructs table - interaction
                                                           BINDING TYPE
 COMPONENT       INTERACTION       COMMUNICATION
   MODELS          STYLES             TYPE
                                                   EXOGENOUS       HIERARCHICAL



AUTOSAR       Request response,    Synchronous,      No             Delegation
              Messages passing     Asynchronous

                 Triggering        Synchronous,
   BIP          Rendez-vous,       Asynchronous      No             Delegation
                 Broadcast

 BlueArX         Pipe&filter       Synchronous       No             Delegation
   CCM        Request response,    Synchronous,      No                   No
                 Triggering        Asynchronous
COMDES II        Pipe&filter       Synchronous       No                   No
CompoNETS     Request response     Synchronous,      No                   No
                                   Asynchronous
   EJB        Request response     Synchronous,      No                   No
                                   Asynchronous
  Fractal          Multiple        Synchronous,      Yes           Delegation,
              interaction styles   Asynchronous                    Aggregation
 KOALA        Request response     Synchronous       No            Delegation,
              23-May-13
                                                                   Aggregation    30
                                              EFP
Component         Management of                      Properties                     Composition and
 Models               EFP                           specification                   analysis support
               Endogenous per collaboration      Resource usage, Timing
  BlueArX                                                                                      N/A
                           (A)                           properties
  EJB 3.0       Exogenous system wide (D)                   N/A                                N/A
               Exogenous per collaboration     Ability to add properties (by
  Fractal                                                                                      N/A
                           (C)                adding “property” controllers)
                                                                                      Compile time checks of
  KOALA        Endogenous system wide (B)             Resource usage
                                                                                            resources
               Endogenous per collaboration
  KobrA                                                      N/A                               N/A
                          (A)
                                                  Performance properties
  Palladio     Endogenous system wide (B)                                             Performance properties
                                                        specification
                                                Timing properties, generic
  PECOS        Endogenous system wide (B)                                                      N/A
                                              specification of other properties
                                                 Analytic interface, timing         Different EFP composition
    Pin         Exogenous system wide (D)
                                                         properties                  theories, example latency
                                                                                       Timing and resources at
  ProCom       Endogenous system wide (B)           Timing and resources
                                                                                      design and compile time
                                              Memory consumption, Timing             Memory consumption and
  Robocop      Endogenous system wide (B)     properties, reliability, ability to       timing properties at
                                                   add other properties                     deployment
                                                                                    Timing properties at design
  Rubus        Endogenous system wide (B)                  Timing
                                                                                                time
                                                Timing properties, generic          Timing properties at design
 SaveCCM       Endogenous system wide (B)
                                              specification of other properties                 time
 SOFA 2.0      Endogenous system wide (B)         Behavioural (protocols)              Composition at design
             23-May-13                                                                                            31
                         purpose
                                        Domain




                         General-

                         Specialised
            Generative
                         x
                                       AUTOSAR




                         x




23-May-13
                                          BIP



                          x
                                        BlueArX
                               x          CCM
                         x             COMDES II
                               x


                                       CompoNETS
                               x



                                          EJB
            x
                               x




                                         Fractal
                         x




                                        KOALA
                               x




                                         KobrA
                                                    Domains



                          x




                                       IEC 61131
                          x




                                       IEC 61499
                               x




                                       JavaBeasns
                               x




                                        MS COM
                               x




                                       OpenCOM
                         x




                                         OSGi
                               x




                                        Palladio
                         x




                                        PECOS
                               x




                                          Pin
32
                      Conclusion
• From the results we can recognize some recurrent patterns such as
   – general-purpose component models utilize client-server style
   – Specialized domains (mostly embedded systems) pipe & filter is
     the predominate style.
   – Composition of extra-functional properties is rather scarce.
   – Behaviour & Semantic rarely supported
   – Almost never repository

• Further work
   – Refinement of the model (detailed and more formalised
     classification)
   – Inclusion of additional component models
   – Analysis per domain
   – Pattern for specific groups of models
   – Identifying an “abstract component model”


          23-May-13                                                   33

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:0
posted:5/22/2013
language:English
pages:31
langkunxg langkunxg http://
About