24 october 2003 seescoaseescoa stww - programma seescoa component models and component composition:...
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
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
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 '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