Title: Georg%20Jung,%20John%20Hatcliff,%20Venkatesh%20Prasad%20Ranganath,
1A 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
2Current 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)
3Component 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
4Component-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
5Component-based Design
Component Integration
up to 1000 components
6Middleware-based Implementation
7Middleware-based Implementation
8Middleware-based Implementation
Event channel
In reality
proxy
dispatch
consume
threading
timer/ thread pool
queuing
filtering network
multiplexing
produce
consumer references
Proxy Consumer
proxy
9Challenges 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
10Challenges 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
11What 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/
12What 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.
13Previous 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.
14Previous 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/)
15Previous 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.
16Events 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
17Summary
- 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
18Overview
- 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
19The 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
20General Outline of the Correlator
We specify a correlator as follows
type correlation name (type name,
type name, )
filter-expression
transformer- specification
Filter
Transformer
21The 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
22The 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
23The 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
24The 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.
25The Filter Combinators
match!
d a c c b a a d a b c
26The Filter Combinators
- Accumulation b c
- Sequence b c
match!
match!
d a c c b a a d a b c
27The 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
28The 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
29The 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.
30The 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
31The 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
32The 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
33The 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
34The 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
35The 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
36The 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.
37General Outline of the Correlator
We specify a correlation as follows
type correlation name (type name,
type name, )
filter-expression
transformer- specification
38The 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
39The Transformer Outline
-
- case l1
- push b
- case l2
- push new Notify
- timeStamp c.timeStamp
-
- case !l1 !l2
40The 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
41The 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
42The Transformer Example 1
- Consider the filter expression
- l1(a b) l2(a c)
- Option 3
ac
bca
ab
case true push new DataAvailable
43The 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
44The 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
45Dynamic 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
46Dynamic 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
47Dynamic 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
48Dynamic 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.
49Dynamic 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 ,)
50Dynamic 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
51Dynamic 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
52Dynamic 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
53Dynamic 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
54Synopsis
- 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