24 october 2003 seescoaseescoa stww - programma seescoa component models and component composition:...

24
24 October 2003 S E E S C O A STWW - Programma SEESCOA Component Models and Component Composition: Highlights Viviane Jonckers and Yolande Berbers

Upload: stewart-hampton

Post on 02-Jan-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

24 October 2003

S

E

E

S

C

O

A STWW - Programma

SEESCOA Component Models and Component Composition:

Highlights

Viviane Jonckers and Yolande Berbers

S

E

E

S

C

O

A

Component Modeling and Composition

CCOM Component & Contract Oriented Modeling

Based on

Component-port-connector paradigm

Contract paradigm

PacoSuite

Based on

MSC's for specification of component usage

Composition patterns as n-ary connectors

Mapping of Concrete API's

Static & Dynamic Verification of Contracts

Component Modeling and Code Generation

S

E

E

S

C

O

A

CCOM: Main Characteristics

CCOM components loosely coupled to facilitate reuse

communicate through ports

Connectors to connect communicating ports

Constructs for composing applications blueprints describe design-time compositions

instances describe run-time compositions

Contracts specify & verify non-functional constraints specify and verify compositions at design-time

verify the correct execution of compositions at run-time

Supported by CASE tool & runtime environment

S

E

E

S

C

O

A

CCOM: Contracts

Imposes a non-functional constraint

Is attached to participants

Participants

Component instance

Port instance

Connector

Currently two types of contracts

Deadline Timing Contracts: deadline and periodicity

Bandwidth Contract

Described in a scenario model

S

E

E

S

C

O

A

CCOM: Timing Contracts

Timing contracts Deadline Timing Contract:

imposes a deadline on an event

Periodicity Timing Contract: imposes a periodicity constraint on an event

Use MCS’s for specification

S

E

E

S

C

O

A

CCOM: Bandwidth Contracts

How Statistical data-flow charact. of each port’s output

average, max, min, variance Data-flow requirements on each port’s input

average, max, min, variance

Data analysis No incomprehensible low-level data

no packets, time slots, ... From the designer’s point of view

Interval Time Between Messages (ITMB)Message Size (MS)

S

E

E

S

C

O

A

CCOM: Case Tool

S

E

E

S

C

O

A

Static Verification of Contracts

Static checking of timing constraints

Deadline and periodic constraints

Bandwidth constraints

Extension to Pacosuite MSC editor

Implementation of Floyd-Warshall algorithm for checking

consistency of timed MSCs

Local checking: consistency of a single MSC

Incremental checking: consistency of the set of MSCs

used while composing an application

S

E

E

S

C

O

A

PacoSuite

S

E

E

S

C

O

A

Static Local Checking

S

E

E

S

C

O

A

Incremental checking

Compositionpattern

Role1 Role2

Component A Component B

Timed MSC

Timed MSCTimed MSC

A

BB

A

B

A

SomeTiming

constraints

SomeTiming

constraints

SomeTiming

constraints

S

E

E

S

C

O

A

Dynamic Verification of Contracts

Extend the Component System

Contract Monitoring through Monitoring Subsystem

Exploit power of Aspect Oriented Programming

Extension of PacoSuite with component adaptors

Automatic generation of monitoring code

On component interaction by changing the glue code

On component interaction by changing the Java

bytecode

S

E

E

S

C

O

A

Contract Monitoring in CCOM

Timing contracts can be monitored at runtime Monitoring Subsystem

Intercepts (and timestamps) relevant messages Verifies adherence to contract parameters Reports contract violations

S

E

E

S

C

O

A

Monitoring subsystem

Monitoring functionality split in Monitoring Node (# = 1): contract monitoring, violation reporting

Monitored Nodes (# = n): event collection/timestamping

based on Clock synchronization: NTP (Network Time Protocol)

Contract files on monitoring node

Probe files on monitored nodes

Violations made explicit through feedback ports on contracts

S

E

E

S

C

O

A

Monitoring Node

NTPserver

Event Collector

Monitored Node 1

Monitored Node 2

NTPclient

EventSource

probefile

Sync. IFEvent Sort/Filter

DEADLINE PERIODICITY

Configcontract

file

ConfigClock IF

OTHER

Cn2

Cn3

Cn4

Cn5

Cn6

Probes

Cm1Cm2

feedback

[<node>:<comp.>\<port>\<hook>\<occ.> + timestamp]

Cn1

Violation reporting

Monitoring subsystem

S

E

E

S

C

O

A

Contract Monitoring in PacoSuite

A contract is translated to input to an

explicit contract checking component

a composition adaptor that timestamps and redirects the relevant events

JButton Juggler

GlueCodeTimingChecker InvasiveTimer

S

E

E

S

C

O

A

Evolution and Version Control

Component Libraries:

Different views on components (functionality, deployment platform, versioning, quality of service, etc) in a multi-dimensional approach (extension of the faceted classification)

Components documented and classified

Connectors between components and Component-based systems also described and managed by the component library

Generic configuration model: support for many component models (SEESCOA, JavaBeans, J2EE,…)

Support for maintenance and evolution thanks to the detailed information of components and component-based systems in the component library.

S

E

E

S

C

O

A

Component Documentation (1)

Functionality Dimension:

S

E

E

S

C

O

A

Component Documentation (2)

Quality of Service Dimension:

S

E

E

S

C

O

A

Configuration Model

S

E

E

S

C

O

A

Component 'Blueprints' for SEESCOA

Component ‘Blueprints’:

Design components in high-level design language

Automatically generate specific implementations

Targeted to specific hardware/software platform

Generate partial functionality

Driven by quality requirements

CoCompose approach:

Visual modelling starting from concepts => eventually map to concrete implementation constructs.

Allows for high-level design, but also refinement to executable/implementation level.

Automatic translation process uses selection and constraint checking mechanism to derive feasible implementation.

S

E

E

S

C

O

A

CoCompose Example

Solution patterns

Top-level model

C#SEESCOA

Java

ImplementationGenerators

S

E

E

S

C

O

A

Extending CoCompose for SEESCOA

VisualModelling

TranslationProcess

Existing Tool Support

(Generic) Models/Solution Patterns

Java, ...ImplementationGenerators

Java, ... Backend

SEESCOAImplementationGenerators

Implements low-levelcomposites in SEESCOA

language constructs

SEESCOA Backend

Generates SEESCOAelements and files

S

E

E

S

C

O

A

Conclusions

Expertise in:

visual component modeling and composition environments

static and dynamic checking of contracts

software libraries for components and component-based applications

Modelling of component internals and automatic code generation for components