The AESOP FP7 project Jerker Delsing, Jens Eliasson, Per Lindgren, Pawe ł Pietrzak, Rumen Kyusakov, Henrik Mäkitaavola, +Jonas Gustafsson, etc. 1
The AESOP FP7 project • Swedish partners – LKAB, MIDROC,LTU/EISLAB + ProcessIT • European partners – Large companies • Schneider • SAP • Honeywell • Microsoft-EMIC – Research Organizations • Fho-Embden • IFAK • TUT (Tampere) 2
The AESOP FP7 project • SOA Architecture – E.g., described in Technologies for SOA-based Distributed Large Scale Process Monitoring and Control Systems (Schneider/Fr, Fho-Emden/De, LTU/Se, SAP/De, Honeywell/Cz, Microsoft-Emic/De) • EISLAB – Lightweight SOA • 6LoWPAN, CoAP, EXI (LTU + Schneider + Ifak) • TinyOS+CRO -> TOSPRO scheduling (LTU) – Complex event processing for SOA • CRO + CEP (LTU + Microsoft-Emic) 3
Motivation Sensors ¡ • Pushing monitoring & control Web ¡servers ¡ down to embedded devices CEP CEP Feeds ¡ Local “intelligence” CEP • Inherently event-based Control systems traditionally scan-based CEP CEP current trend towards event-based • Better responsiveness Can act directly when an event occurs CEP CEP CEP independent of scan time Complex Analytics & Data Mining • Minimize network traffic, save bandwidth, etc. A. Colombo and S. Karnouskos, Towards the factory of the future: A service-oriented cross-layer infrastructure, in ICT Shaping The World - A Scientific View, The European Telecommunications Standards Institute (ETSI) . John Wiley and Sons Ed., April 2009, ch. 6. 4
Complex | Event | Processing • Complex – Made up of multiple detailed parts. • Event – Something that happens • Processing – A series of events to produce a result Source: Wiktionary.org 5
Events and Complex Events • Basic (atomic) events – A: church bells ringing, – B: the appearance of a man in a tuxedo with a woman in a flowing white gown, – C: rice flying through the air – Complex event: wedding? W = WHEN ALL (A, B, C) 6
Events and Complex Events Events may have a Duration (start/stop) A B C W = WHEN ALL (A, B, C) W Time 7
Complex Event Processing • Most applications today in Business world – Algorithmic stock-trading – Detection of credit-card fraud. • Etc. Business aspects, e.g., Microsoft R. Barga, H. Caituiro-Monge, …, Event Correlation and Pattern Detection in CEDR. Springer Berlin / Heidelberg, 2006, vol. 4254, pp. Theoretical aspects, e.g., MDH J. Carlson and B. Lisper, A resource-efficient event algebra Science of Computer Programming , vol. 75, no. 12, pp. 1215–1234, December 2010. 8
CEP vs SQL SQL queries typically • “one shot” (new queries created dynamically) • return a result • operate on database (relatively static) CEP queries typically • typically act as a filter (standing query) • produce event when matching • operate on streaming data (dynamic) 9
Complex Event Processing in “Our World” • Combines data from multiple sources • Infer events or patterns that suggest more complicated circumstances. The goal: - Identify meaningful events (such as opportunities or threats) - Respond , either by emitting new events or taking some action. 10
Embedded System • Designed for specific purpose • Often operating under real-time constraints • Limited resources – CPU – Memory – Communication bandwidth 11
CEDR - CRO • CEDR : Complex Event Detection and Response – Query language used commercially (Microsoft) – Capture event types and order • CRO : Concurrent Reactive Objects – Execution and concurrency model – React to atomic events – Between events: idle – Built in notion of time 12
CEDR EVENT < query name > WHEN < event expression > WHERE < correlation expression > OUTPUT< instance transformation conditions > 13
CEDR - WHEN • ALL(E1 , . . . , Ek ) • ANY(E1 , . . . , Ek ) • SEQUENCE(E1 , . . . , Ek ) • UNLESS(E1 , E2 , t) • etc. 14
CEDR (Cont’d) WHERE • Correlation between values in events payload Example: EVENT Temperature_alarm WHEN Any(Water_temp, Air_temp) AS x WHERE x.temperature > 100 OUTPUT Alarm x.ID 15
Concurrent Reactive Objects • Reactivity – React to external stimuli or internal events • Objects and state encapsulation – All states are encapsulated in objects O1, … , On • Message passing and specification of timing behavior – ASYNC(O, m, t) : Asynchronous (may be delayed) – SYNC(O,m) : Synchronous call returns with a result • Execution model behind the Timber language and the TinyTimber C-code API. 16
CRO/Timber - Example 17
Event Processing in CRO CEDR query into a CRO program EVENT Master_alarm WHEN UNLESS(ANY(High_temp,High_press) AS x, Button pressed , 10 seconds) (for the working example we omit payload) 18
An Event Expression Tree WHEN UNLESS ( ANY ( High_temp , High_press ) AS x, Button pressed , 10 seconds) 19
CEDR - CRO WHEN UNLESS ( ANY ( High_temp , High_press ), Button pressed , 10 seconds) O 5 UNLESS 10 seconds O 3 O 4 ANY Button_Pressed O 1 O 2 High_Temp High_Temp 20
CEDR - CRO 21
Towards a Lightweight Complex Event Processing Engine for Embedded Systems IECON 2012 : 38th Annual Conference of the IEEE Industrial Electronics Society Pawel Pietrzak, Per Lindgren, Henrik Mäkitaavola • Lightweight and efficient implementation in TinyTimber (C-Code API to CRO kernel) – Simple states, no queues (besides inside kernel) – Static structure facilitates analysis • Subset of CEDR rules (easily extendable) Future work • Support dynamic queries • Support re-occurring/overlapping events • Support real-time constraints 22
CEP in Monitoring and Control Systems • CEP for Monitoring and Control – Powerful mechanism to process streaming data (events can be time triggered, similar to scan-based) – Inherent support for event based control – Can connect loosely coupled Systems of Systems • Requirements (quality) – Accurate time of event occurrence – Bound & small delay of delivery • processing and communication, boils down to • scheduling of nodes and channels • data representation 23
Challenges to solve • Traditional CEP only deals with time in order to correlate events, not the time to process and deliver • Scheduling (prioritizing) is at best achieved through assigning priority to a thread that process the query – Time separated from query – Non compositional D. Anicic, P. Fodor, S. …, Ep-sparql: a unified language for event processing and stream reasoning in Proceedings of the 20th international conference on World wide web , ser. WWW ’11. New York, NY, USA: ACM, 2011, pp. 635–644. R. Barga, H. Caituiro-Monge, …, Event Correlation and Pattern Detection in CEDR . Springer Berlin / Heidelberg, 2006, vol. 4254, pp. 919–930 24
Real-Time Complex Event Processing using Concurrent Reactive Objects Extends our prior work to address – non-deterministic (out of order) execution improves schedulability – reoccurring events and overlapping timing windows relaxes the assumption that a query must be restarted after completion, multiple overlapping matches can now be handled – real-time properties allows CEP processing under hard real-time requirements 25
Our approach • CRO Timing model permissible execution window execution time event baseline deadline t after t before Message should be processed within execution window Each clause (sub-expression) is associated with a message UNLESS 5 10s Button pressed 4 ANY 3 , High temp 1 High press 2 26
CEP encoding of unless in CRO-model • w is the window size (in this example 10s) • Button_pressed operate under the deadline d1 UNLESS 5 • d2 is the deadline for processing the unless query • by schdeuling the accept at w+d1 we can ensure 10s that outstanding Button_pressed events inside w have ANY 3 , Button pressed 4 been processed. • a triggering event (ANY) will be processed within w+d1+d2 (end-end deadline for the processing) High temp 1 High press 2 Deadlines can be either synthesized (from top level quieries) or derived (i.e., allowing timing of external hard-/software to be accounted for.) The notion of deadlines allows timing requirements to be fully compositional. 27
CEP encoding of unless in Timber unless e w d1 d2 = class tmr = new timer abortT := [] start = before w + d1 action after w + d1 send accept drop = before d1 action UNLESS 5 abortT := (<- tmr.sample) : abortT 10s accept = before d2 action t = <-tmr.sample ANY 3 , Button pressed 4 if elem True (map (inW t) abortT) then send e.drop else High temp 1 High press 2 send e.accept abortT := (filter (inWOrL t) abortT) where inW t at = (at > t-w-d1) && (at < t-d1) inWOrL t at = at > t-w-d1-d2 result Cep {..} 28
CEP encoding of unless in Timber unless e w d1 d2 = class tmr = new timer • w d1 and d2 are parameters to the class abortT := [] • timing specification directly in the language, before and after constructs start = before w + d1 action • … rest is just implementation …. after w + d1 send accept drop = before d1 action abortT := (<- tmr.sample) : abortT accept = before d2 action t = <-tmr.sample if elem True (map (inW t) abortT) then send e.drop else send e.accept abortT := (filter (inWOrL t) abortT) where inW t at = (at > t-w-d1) && (at < t-d1) inWOrL t at = at > t-w-d1-d2 result Cep {..} 29
Recommend
More recommend