Georg%20Jung,%20John%20Hatcliff,%20Venkatesh%20Prasad%20Ranganath, - PowerPoint PPT Presentation

About This Presentation
Title:

Georg%20Jung,%20John%20Hatcliff,%20Venkatesh%20Prasad%20Ranganath,

Description:

order to detect composite events that. correspond to event patterns in the event. stream. ... The detection of composite events (ab) Done according to event ... – PowerPoint PPT presentation

Number of Views:52
Avg rating:3.0/5.0
Slides: 47
Provided by: geo122
Category:

less

Transcript and Presenter's Notes

Title: Georg%20Jung,%20John%20Hatcliff,%20Venkatesh%20Prasad%20Ranganath,


1
A Correlation Framework for the CORBA Component
Model
  • Georg Jung, John Hatcliff, Venkatesh Prasad
    Ranganath,
  • jung,hatcliff,rvprasad_at_cis.ksu.edu
  • Department of Computing and Information Sciences
  • Kansas State University

2
Current Component Frameworks
  • EJB (Enterprise Java Beans)
  • Bonobo (Gnome Desktop Framework, e.g.
    debian-Linux)
  • KOM, KParts (KDE Desktop Framework)
  • Boldstroke, Prism (Boeing Company)
  • AADL (Avionics Architecture Description Language,
    Honeywell et al.)
  • SCA, JTRS (Software Communications Architecture,
    Joint Tactical Radio System)
  • CCM (CORBA Component Model)

3
Component Architecture
Loosely coupled entities components
Java
C
C
Middleware Layer
Event Service
Transaction Service
Middleware Layer
Heavily relying on events as major mean of
communication
Naming Service
Synchronization Service
C
Java
C
4
Component-based Design
A software component is a unit of
composition with contractually specified
interfaces and explicit context dependencies
only. A Software component can be
deployed independently and is subject to
composition by third parties. --Szyperski.
Component Software. 2nd ed. p. 195
5
Component-based Design
Component Integration
up to 1000 components
6
Middleware-based Implementation
7
Middleware-based Implementation
8
Middleware-based Implementation
Event channel
In reality
proxy
dispatch
consume
threading
timer/ thread pool
queuing
filtering network
multiplexing
produce
consumer references
Proxy Consumer
proxy
9
Challenges of Event Communication
Consider the following situation
  • Component C is receiving from two components A
    and B
  • A and B send at different rates
  • C needs both inputs to become active

A
a
C
ab
b
B
10
Challenges of Event Communication
If we add correlations to the infrastructure
Consider the following situation
  • We can
  • Reduce network traffic
  • Simplify computation inside the component
  • Clarify the design
  • Define the components in a more general way

A
a
a b
C
ab
b
B
11
What is a Correlation
Event correlation is a process where a stream
of primitive events is processed in order to
detect composite events that correspond to event
patterns in the event stream.
-- Unix-Manpage of SEC 2.2.0 http//kodu.neti.ee/
risto/sec/
12
What is a Correlation
According to this definition we have
  • A stream of primitive events (e.g. a, b)
  • The detection of composite events (ab)
  • Done according to event patterns (ab)

But there is more!
  • The performing of an action upon detection of a
    desired pattern in the input stream.

13
Previous Correlation Frameworks
GEM defines primitive events with
event-id, source-id, and generic attributes.
These characteristics are used to find single
matches. A number of infix-operators can be
used to combine single matches into
sequences, accumulative or parallel matches,
possibly guarded by a boolean expression
  • GEM (Mansouri-Samani, Sloman, Generalized Event
    Monitoring language)
  • Event Correlation (Sankaranarayanan, Simpa,
    Zhang, Dill, Manna)
  • Reflex (Louvau, Chen, Jackson, Devanbu, Gertz,
    http//reflex.cs.ucdavis.edu/)
  • SEC (Risto Vaarandi, Simple Event Correlator,
    http//kodu.neti.ee/risto/sec/)

The Event Correlation Language focuses
on predicates. These predicates can
state combinations similarly to the operators in
GEM, but they also specify actions, e.g.
iterations, failure of expressions (by
interleaving, or explicitly by use of the
predicate fail), or the issuing of a new event.
Single events are matched by boolean expressions
over event characteristics, e.g source or type.
Reflex was introduced as a tool to
improve Internet security. Rules are
called policies, offering four different ways
to combine single events into patterns. Single
events are found by matching event-attributes.
SEC reads from files or Unix-pipes
(e.g. sytem-log files) and matches the input
with regular expressions to detect
primitive events. Sequential rules can detect
pairs of events, a matched rule can serve as
input event for a subsequent rule. Every rule
can fire an action, i.e. a program or script.
14
Previous Correlation Frameworks
  • GEM (Mansouri-Samani, Sloman, Generalized Event
    Monitoring language)
  • Event Correlation (Sankaranarayanan, Simpa,
    Zhang, Dill, Manna)
  • Reflex (Louvau, Chen, Jackson, Devanbu, Gertz,
    http//reflex.cs.ucdavis.edu/)
  • SEC (Risto Vaarandi, Simple Event Correlator,
    http//kodu.neti.ee/risto/sec/)

15
Previous Correlation Frameworks
  • In GEM, Event Correlation, and Reflex events are
    tuples of attributes
  • number3, sourceGPSModule, colorgreen,
  • Single events are matched against boolean
    expressions over the attributes
  • (color red)(color mauve)
  • SEC uses regular expressions to match single
    events in the input stream (Unix file-stream)
  • Events are combined by operators or policies or
    rules into compound events.

16
Events in CCM
In CCM events are more complex!
  • In Previous Frameworks
  • Event attributes serve as characteristics rather
    than data containers
  • These characteristics identify the event
  • In a CCM environment
  • Event attributes carry runtime data
  • An event is identified by the port it comes from

In a component architecture we need to enhance
the idea of correlations to handle Content Data.
Events in CCM are Asynchronous Messages
17
Summary
  • Component systems are used in many different
    areas
  • We can improve design and efficiency of component
    systems by adding correlations
  • Previous frameworks are tailored at monitoring,
    they do not take into account payload

18
Overview
  • The remaining talk will cover the specifics of
    our model, i.e.
  • How patterns for detection are specified
  • How a detected pattern is identified to perform
    according actions
  • How the reaction to occurring patterns takes into
    account the data payload
  • How patterns can be modified dynamically upon
    changes in the system

19
The Two-Phase Model
  • Conceptually, the correlator divides into two
    distinct phases
  • The Filter
  • The Transformer

Reacting to a detected pattern
  • Information about
  • which events arrived
  • what data is present

Filter
Transformer
Generates new output events
eout eout
Detection of event patterns
And performs internal actions
  • Information about
  • which events arrived
  • what data is present

20
General Outline of the Correlator
We specify a correlator as follows
type correlation name (type name,
type name, )
filter-expression
transformer- specification

Filter
Transformer
21
The Filter
  • Listens to named, typed ports.
  • (t1 n1, t2 n2, t3 n3, )
  • The names are used in an expression. This
    expression is constructed over a set of
    combinators.
  • (n1 n2) n3 n2
  • Labels can be used to identify subexpressions.
  • l1(n1 n2) l2n3 n2

22
The Filter Syntax
  • filter sequence ( filter)
  • sequence collection ( sequence)
  • collection accumulation ( collection)
  • accumulation atom ( accumulation)
  • atom (label)? event
  • (label)? (sequence)
  • Example
  • (a lbb) c (a ldd) c
  • Three basic combinators
  • Sequential Composition
  • Collection of Events
  • Accumulation of Events
  • On top-level, also Parallel Composition
  • can be used

23
The Filter Semantics
  • The Basic Match
  • A stream of incoming events
  • s e1...en
  • of events e1, , en matches a singleton
  • expression a, iff an event a is in s, i.e.
  • there is an i, 1 i n, such that
  • ei a.
  • d a c c b a a d a b c

24
The Filter Semantics
  • A stream s of incoming events matches a
  • filter expression x1 ? x2 iff
  • ? is and s matches x1 and s matches x2,
  • ? is and s matches x1 or s matches x2,
  • ? is and s can be split into two substreams s1
    and s2 with s s1s1 and s1 matches x1 and s2
    matches x2.

25
The Filter Combinators
  • Accumulation b c

match!
d a c c b a a d a b c
26
The Filter Combinators
  • Accumulation b c
  • Sequence b c

match!
match!
d a c c b a a d a b c
27
The Filter Combinators
  • Accumulation b c
  • Sequence b c
  • Collection b c

match!
match!
match!
d a c c b a a d a b c
28
The Filter Combinators
  • Accumulation b c
  • Sequence b c
  • Collection b c
  • A more complex expression
  • (a b d) (d c b)

match!
match!
match!
match!
d a c c b a a d a b c
29
The Filter Semantics
  • When we inspect the stream of incoming events, we
    want to react at the first instant where a
    pattern is complete
  • We define the shortest match to specify a
    complete pattern
  • The shortest match then serves to identify the
    instant then the correlator triggers.

30
The Filter Semantics
  • The Shortest Match
  • A stream s matches an expression x,
  • but no proper prefix of s matches x.

Example (a b) (a c)
d c d a b c a b c
Shortest Match
31
The Filter Semantics
  • The Trigger
  • A shortest match is a trigger if it does not
    overlap with a previous trigger
  • Example a b a
  • b a b b a b a a b b a b b b a b a
  • We call this behavior Reset Semantics

32
The Filter Result
Consider the following filter expression
Subexpressions which are matched by the current
trigger are called active.
(a b) (a c)
And the following streams
matches a b
a b a a c c
matches a c
a c a b b a
matches a b and a c
c b b c a a
33
The Filter Result
l1(a b) l2(a c)
Adding Labels to the expression
Labels attached to active subexpressions are
called active.
(a b) (a c)
And again the streams
subexpression at l1
a b a a c c
subexpression at l2
a c a b b a
subexpressions at l1 and l2
c b b c a a
34
The Filter Result
Result of the filter is the set of active labels
  • Labels are the connection between filter and
    transformer
  • Active labels identify the subpatterns which are
    present in the input
  • The level of detail can be chosen easily

35
The Filter The Parallel Combinator
  • On top level filter expressions can contain an
    additional combinator
  • The parallel combinator combines two expressions
    for parallel evaluation
  • x1 x2
  • The set of triggers T equals the union Tx1 U
    Tx2 of the triggers of x1 and x2
  • Intuitively x1 and x2 are evaluated independently
    without reset

36
The Filter Summary
  • The filter detects patterns in the input stream.
  • Patterns are specified by labeled expressions
    over the combinators , , (and on top level
    the parallel operator ).
  • The correlator triggers on a complete shortest
    match.
  • Result of the evaluation is the set of active
    labels.
  • Note that it is easy to build an acceptor for a
    given filter expression, since they describe a
    subset of regular languages.

37
General Outline of the Correlator
We specify a correlation as follows
type correlation name (type name,
type name, )
filter-expression
transformer- specification

38
The Transformer
  • Receives a set of active labels from the filter
  • Selects according to this set the necessary
    actions
  • Rearranges the incoming data and emits new events
  • Modifies the filter

39
The Transformer Outline
  • case l1
  • push b
  • case l2
  • push new Notify
  • timeStamp c.timeStamp
  • case !l1 !l2

40
The Transformer Example 1
Note that all clauses with satisfied guard are
executed
  • Consider the filter expression
  • l1(a b) l2(a c)
  • Option 1

ab
ac
bca
case l1 push new NavData air a.air, nav
b.nav case l2 push new NavData air a.air,
nav c.nav
41
The Transformer Example 1
  • Consider the filter expression
  • l1(a b) l2(a c)
  • Option 2

ac
bca
ab
case l1 push new NavData air a.air, nav
b.nav case l2 !l1 push new NavData air
a.air, nav c.nav
42
The Transformer Example 1
  • Consider the filter expression
  • l1(a b) l2(a c)
  • Option 3

ac
bca
ab
case true push new DataAvailable
43
The Transformer Example 2
  • We consider three subexpressions x1, x2, x3. x3
    shall not interleave between x1 and x2.
  • x1 (l2x2 l3x3)

Previous approaches offer a specific, distinct
construct to express interleaving (e.g.
e1e2!e3 in GEM, faildof1unlessf2
in Event Correlation) Due to the
two-phase model a specific operator for
interleaving is not necessary.
case l2 push new success-event
case l3 push new error-event
case l2 push new success-event case l3
push new error-event
44
The Transformer Summary
  • Boolean expressions over the active labels allow
    a flexible and versatile mean to fine-tune the
    reactions to occurring patterns
  • Being a communication device, the correlator can
    rearrange data into new events, but does no
    computation
  • Using data from incoming events, new events can
    be constructed, which match the type the
    receiving component expects

45
Dynamic Adaption
  • Consider an array of redundant components
  • A1, A2, , An.
  • and a single receiving component B,
  • interested in the accumulation of all events
  • a1, a2, , an.
  • The filter expression is then
  • a1 a2 an

B
46
Dynamic Adaption Rationale
  • a1 a2 an
  • In a component system some components
  • can be temporarily unavailable!

We want to be able to adapt the pattern detection
to this new situation.
If one component does not send anymore the whole
pattern is never satisfied!
B
47
Dynamic Adaption Idea
  • Again, we use labels
  • l1a1 liai lnan
  • Assume e.g. component Ai becoming unavailable.
  • We want to switch off the corresponding
    subexpression

For this we introduce the notion of labels and
their respective subexpressions of being enabled
or disabled


B
48
Dynamic Adaption Syntax
  • We add the following commands to the transformer
    syntax
  • abort label,
  • revive label,
  • toggle label.
  • abort disables a label,
  • revive re-enables a label, and consequently
  • toggle switches the status of a label.

49
Dynamic Adaption Semantics
  • Intuitively, a disabled subexpression is simply
    omitted
  • l0 disabled
  • Filter l0x0 ? x1 x1 x1 ? l0x0 x1
    (for ? in ,,,)
  • Guard l0 ? e e e ? l0 e !l0 ? e
    e e ? !l0 e (for ? in ,)

50
Dynamic Adaption Semantics
  • Intuitively, a disabled subexpression is simply
    omitted
  • l0 disabled ?
  • (l0x0 x1)
  • (x1 l0x0)
  • (l0x0 x1)
  • (x1 l0x0)
  • (l0x0 x1)
  • (x1 l0x0)
  • (l0x0 x1)
  • (x1 l0x0)

x1
51
Dynamic Adaption Semantics
  • Intuitively, a disabled subexpression is simply
    omitted
  • l0 disabled ?
  • (l0 e1)
  • (e1 l0)
  • (l0 e1)
  • (e1 l0)
  • (!l0 e1)
  • (e1 !l0)
  • (!l0 e1)
  • (e1 !l0)

l0 !l0
false
e1
52
Dynamic Adaption Example
  • Notify correlation SensorArray
  • (Notify a1, , Notify an,
  • Control c1, , Control cn)
  • l1a1 lnan m1c1 mncn
  • case l1 ln push new Notify
  • case m1 toggle l1
  • case mn toggle ln

Sensor Array
53
Dynamic Adaption Summary
  • Labels do not only serve as carrier from the
    filter to the transformer, the transformer can
    also communicate back changes to the filter
  • We can arbitrarily switch on and off
    subexpressions in the filter as well as in the
    guards inside the transformer
  • Standard tasks such as temporarily omitting input
    are easily specified

54
Synopsis
  • We presented a correlation service suitable to
    handle the requirements of component based
    systems
  • The specification of a correlator is intuitive
    and simple, but with a strict background
  • The correlation framework is implemented and used
    in and will probably be
    introduced into Prism
Write a Comment
User Comments (0)
About PowerShow.com