SlideShare a Scribd company logo
1 of 22
Cloud PARTE
Elastic Complex Event Processing
based on Mobile Actors
J. Swalens, T. Renaux, L. Hoste, S. Marr, W. De Meuter
Software Languages Lab
AGERE Workshop, 2013-10-27
Use Case

Traffic
Management

©Filip Bogdan
http://photo.net/photodb/photo?photo_id=5953570

2
Traffic Management at City Scale?
©Jupiter Systems,
Beijing Traffic
Management Bureau

Singapore: GPS coord. of 16000 taxis = 200 coord./sec = 12KB/sec
Source: City-Scale Traffic Estimation from a Roving Sensor Network, Javed Aslam, Sejoon Lim, Xinghao Pan, and Daniela Rus. Proceedings of the 10th ACM Conference on Embedded Network Sensor Systems. ACM, (2012)
Challenges:
Large Variety of Input Sources

Personal Onboard Units

Pedestrian Sensing

Vehicle Sensing
©Jupiter Systems, Beijing Traffic Management Bureau

4
Challenges:
Combining the Data
Imperative
int gru_tapping(struct grail *ge, const struct utouch_frame *frame) {
struct gesture_recognizer *gru = ge->gru;
struct tapping_model *state = &gru->tapping;
struct move_model *move = &gru->move;
state->tap = 0;
if (frame->num_active && !frame->prev->num_active) {
state->mintouch = 0;
state->maxtouch = 0;
}
if (move->ntouch > state->maxtouch) {
if (state->active) {
gin_gid_discard(ge, state->gid);
state->active = 0;
}
state->start = move->time;
state->maxtouch = move->ntouch;
set_props(ge->gin, state, move, frame);
if (state->maxtouch <= 5) {
int type = GRAIL_TYPE_TAP1 + state->maxtouch - 1;
state->gid = gin_gid_begin(ge, type, PRIO_TAP, frame);
state->active = 1;
}
return 0;
}
if (!state->active) {
state->mintouch = move->ntouch;
state->maxtouch = move->ntouch;
return 0;
}
if (move->ntouch <= state->mintouch) {
int x = state->prop[GRAIL_PROP_TAP_X];
int y = state->prop[GRAIL_PROP_TAP_Y];
int t = move->time - state->start;
if (t > move->fm[FM_X].bar_ms) {
gin_gid_discard(ge, state->gid);
state->mintouch = move->ntouch;
state->maxtouch = move->ntouch;
state->active = 0;
return 0;
}
state->tap = state->maxtouch;
state->prop[GRAIL_PROP_TAP_DT] = t;
gin_gid_event(ge, state->gid, x, y, state->maxtouch,
state->prop, state->nprop, 1);
state->mintouch = move->ntouch;

Declarative

a simple tap

(defrule detectTap
(Press (x ?x)
(y ?y)
(finger "index")
(timestamp ?t1))
(Release (x ?x)
(y ?y)
(finger "index")
(timestamp ?t2))
(test (< ?t1 ?t2))
=>
(tapDetected ?x ?y)))

5
Challenges:
Combining the Data
(defrule StolenCarInTraffic
(defrule CarTooFast
(StolenCar
(plate ?pl))
(Car (camera ?c1) (plate ?pl)
(Car
(plate ?pl) (camera ?c))
(time ?t1))
(Camera (id ?c) (highway ?hw)
(Car (camera ?c2) (plate ?pl)
(direction ?d) (position ?p))
(time ?t2))
(test (> ?t2 ?t1))
=>
(Camera (id ?c1) (highway ?hw)
(printout "Sloten car " ?pl
(direction ?d) (position ?p1))
" seen on highway " ?hw
(Camera (id ?c2) (highway ?hw)
" at " ?p
(direction ?d) (position ?p2))
" in direction " ?d))
(test (> (speed ?t1 ?p1 ?t2 ?p2)
*speed-limit*))

=>
(printout "Car too fast: "
?pl " at "
(speed ?t1 ?p1 ?t2 ?p2) " km/h."))

6
Challenges:
Combining the Data
(defrule StationaryCar
(Car (camera ?c) (plate ?pl)
(time ?t1))
(Car (camera ?c) (plate ?pl)
(time ?t2))
(test (> (- ?t2 ?t1) 30))
(Camera (id ?c) (highway ?hw)
(direction ?d) (position ?p))

=>
(assert (StationaryCar (camera ?c)
(plate ?pl) (time ?t1))))

(defrule StationaryCars
(Camera (id ?c) (highway ?hw)
(direction ?d) (position ?p))
(StationaryCar (camera ?c)
(plate ?pl1) (time ?t1))
(StationaryCar (camera ?c)
(plate ?pl2) (time ?t2))
(StationaryCar (camera ?c)
(plate ?pl3) (time ?t3))
(test (!= ?pl1 ?pl2 ?pl3))
(test (< 0 (- ?t2 ?t1) 1))
(test (< 0 (- ?t3 ?t2) 1))

=>
(assert (StationaryCars
(camera ?c) (time ?t1))))

7
How to approach such scenarios?
• Declarative rules!
• Online processing of real-time events!

1 set of rules
1 set of facts

Load balancing

Elasticity

(transparent distribution)
8
Our Approach

Parallel + Soft Real-Time

•
•
•
•

Distributed for “Big Data”

Declarative rules
Mobile actors
Central managing interface
Simple heuristics for load balancing
9
PARTE: A Parallel, Actor-based Rete Engine
(defrule StationaryCar
(Car (cam ?c) (plate ?plt) (time ?t1))
(Car (cam ?c) (plate ?plt) (time ?t2))
(test (> (- ?t2 ?t1) 30))
(Cam (id ?c) (position ?p))

Events
e=Car

• Each node an actor
• Unification memory
intensive
• Tests computationally
intensive

e=Cam

Unification
1.cam=2.cam
1.plate=2.plate

=>
(assert (StationaryCar (pos ?p)))

Type Tests

1

2

Test
time-diff > 30
Unification
cam=id

3
4

assert

[1] Rete: A Fast Algorithm for the Many Patterns/Many Objects Match Problem, Charles L. Forgy. Artif. Intell. 19(1):17–37 (1982)
[2] Parallel Gesture Recognition with Soft Real-Time Guarantees, T. Renaux, L. Hoste, S. Marr, and W. De Meuter. AGERE’12, 35–46.

10
Cloud PARTE
From Parallel to Distributed

1

Events

2

3

(defrule StationaryCar
(Car (cam ?c) (plate ?plt) (time
?t1))
(Car (cam ?c) (plate ?plt) (time
?t2))
(test (> (- ?t2 ?t1) 30))
(Cam (id ?c) (position ?p))

=>
(assert (StationaryCar (pos ?p)))

4
master

App

• Transparent Distribution
worker

Cloud PARTE builds on Theron (C++ actor library, http://www.theron-library.com/)

11
Cloud PARTE
From Parallel to Distributed

Events

1

Load
Balancer

2

(defrule StationaryCar
(Car (cam ?c) (plate ?plt) (time
?t1))
(Car (cam ?c) (plate ?plt) (time
?t2))
(test (> (- ?t2 ?t1) 30))
(Cam (id ?c) (position ?p))

=>
(assert (StationaryCar (pos ?p)))

4
master

App

3

worker

• Automatic Load Balancing
• Mobile actors
• Heuristic
– Length of message queue

Cloud PARTE builds on Theron (C++ actor library, http://www.theron-library.com/)

12
Cloud PARTE
From Parallel to Distributed

1

Load
Balancer

3

4
master

App

Events

2

worker

• Elasticity
– Adding/removing
of workers

• Coordination
required
(currently)
13
Cloud PARTE
From Parallel to Distributed

• Elasticity
2

Load
Balancer

3

4
master

App

Events

1

worker

– Adding/removing
of workers

• Coordination
required
(currently)
14
Performance

EVALUATION
10/27/20

15
Microbenchmarks
16 heavy tests

Cloud PARTE Scalability

PARTE vs.
CloudPARTE

Slow
down

101 simple tests
501 simple tests
101 complex tests
… with variables
10x101 simple tests
10x8 heavy tests
16 heavy tests
32 heavy tests
64 heavy tests
128 heavy tests
Joining tree
Search

18x
29x
5x
5x
60x
2x
4x
4x
4x
3x
6x
2x

Single machine
Performance Evaluation: Comparison with non-distributed PARTE

16
Performance: Traffic Scenario

Simulating events from variety of sources

17
11% speedup

2 machines
Static Actor Distribution

2 machines
Static Actor Distribution +
Dynamic Load Balancing

17% speedup

3 machines
Static Actor Distribution +
Dynamic Load Balancing +
Empty Machine
18
CONCLUSION

19
1 set of rules
1 set of facts

Load balancing

Elasticity

(transparent distribution)
Traffic Management

Cloud PARTE: Elastic Complex Event Processing based on Mobile Actors

20
BACKUP

21
Mobile Actors: Movement Protocol

22

More Related Content

Viewers also liked

Graph Processing with Apache TinkerPop
Graph Processing with Apache TinkerPopGraph Processing with Apache TinkerPop
Graph Processing with Apache TinkerPopJason Plurad
 
Gelly in Apache Flink Bay Area Meetup
Gelly in Apache Flink Bay Area MeetupGelly in Apache Flink Bay Area Meetup
Gelly in Apache Flink Bay Area MeetupVasia Kalavri
 
Introduction to Streaming Analytics
Introduction to Streaming AnalyticsIntroduction to Streaming Analytics
Introduction to Streaming AnalyticsGuido Schmutz
 
Converting Relational to Graph Databases
Converting Relational to Graph DatabasesConverting Relational to Graph Databases
Converting Relational to Graph DatabasesAntonio Maccioni
 
Netflix Keystone—Cloud scale event processing pipeline
Netflix Keystone—Cloud scale event processing pipelineNetflix Keystone—Cloud scale event processing pipeline
Netflix Keystone—Cloud scale event processing pipelineMonal Daxini
 
Introducing Apache Giraph for Large Scale Graph Processing
Introducing Apache Giraph for Large Scale Graph ProcessingIntroducing Apache Giraph for Large Scale Graph Processing
Introducing Apache Giraph for Large Scale Graph Processingsscdotopen
 
Semantic Complex Event Processing
Semantic Complex Event ProcessingSemantic Complex Event Processing
Semantic Complex Event ProcessingAdrian Paschke
 

Viewers also liked (10)

Graph Processing with Apache TinkerPop
Graph Processing with Apache TinkerPopGraph Processing with Apache TinkerPop
Graph Processing with Apache TinkerPop
 
Gelly in Apache Flink Bay Area Meetup
Gelly in Apache Flink Bay Area MeetupGelly in Apache Flink Bay Area Meetup
Gelly in Apache Flink Bay Area Meetup
 
ETL into Neo4j
ETL into Neo4jETL into Neo4j
ETL into Neo4j
 
20170126 big data processing
20170126 big data processing20170126 big data processing
20170126 big data processing
 
Introduction to Streaming Analytics
Introduction to Streaming AnalyticsIntroduction to Streaming Analytics
Introduction to Streaming Analytics
 
Converting Relational to Graph Databases
Converting Relational to Graph DatabasesConverting Relational to Graph Databases
Converting Relational to Graph Databases
 
Netflix Keystone—Cloud scale event processing pipeline
Netflix Keystone—Cloud scale event processing pipelineNetflix Keystone—Cloud scale event processing pipeline
Netflix Keystone—Cloud scale event processing pipeline
 
Real-Time Event Processing
Real-Time Event ProcessingReal-Time Event Processing
Real-Time Event Processing
 
Introducing Apache Giraph for Large Scale Graph Processing
Introducing Apache Giraph for Large Scale Graph ProcessingIntroducing Apache Giraph for Large Scale Graph Processing
Introducing Apache Giraph for Large Scale Graph Processing
 
Semantic Complex Event Processing
Semantic Complex Event ProcessingSemantic Complex Event Processing
Semantic Complex Event Processing
 

Similar to Cloud PARTE: Elastic Complex Event Processing based on Mobile Actors

The 'right' choices in GIS - Grontmij
The 'right' choices in GIS - GrontmijThe 'right' choices in GIS - Grontmij
The 'right' choices in GIS - GrontmijXander Bakker
 
INAC Online Hazards Database App
INAC Online Hazards Database AppINAC Online Hazards Database App
INAC Online Hazards Database AppGerry James
 
Level Crossing protection integration into connected car tecnologies
Level Crossing protection integration into connected car tecnologiesLevel Crossing protection integration into connected car tecnologies
Level Crossing protection integration into connected car tecnologiesJose Gomez Castaño
 
Material Handling System
Material Handling SystemMaterial Handling System
Material Handling Systemwombaty
 
Multi-agent approach to resource allocation inautonomous vehicle fleet
Multi-agent approach to resource allocation inautonomous vehicle fleetMulti-agent approach to resource allocation inautonomous vehicle fleet
Multi-agent approach to resource allocation inautonomous vehicle fleetdaoudalaa
 
State of the Art Web Mapping with Open Source
State of the Art Web Mapping with Open SourceState of the Art Web Mapping with Open Source
State of the Art Web Mapping with Open SourceOSCON Byrum
 
Mobility insights at Swisscom - Understanding collective mobility in Switzerland
Mobility insights at Swisscom - Understanding collective mobility in SwitzerlandMobility insights at Swisscom - Understanding collective mobility in Switzerland
Mobility insights at Swisscom - Understanding collective mobility in SwitzerlandFrançois Garillot
 
Spark Summit EU talk by Francois Garillot and Mohamed Kafsi
Spark Summit EU talk by Francois Garillot and Mohamed KafsiSpark Summit EU talk by Francois Garillot and Mohamed Kafsi
Spark Summit EU talk by Francois Garillot and Mohamed KafsiSpark Summit
 
Portofolio Control Version SN
Portofolio Control Version SNPortofolio Control Version SN
Portofolio Control Version SNSamuel Narcisse
 
Deep Learning, Microsoft Cognitive Toolkit (CNTK) and Azure Machine Learning ...
Deep Learning, Microsoft Cognitive Toolkit (CNTK) and Azure Machine Learning ...Deep Learning, Microsoft Cognitive Toolkit (CNTK) and Azure Machine Learning ...
Deep Learning, Microsoft Cognitive Toolkit (CNTK) and Azure Machine Learning ...Naoki (Neo) SATO
 
The Uncertain Enterprise
The Uncertain EnterpriseThe Uncertain Enterprise
The Uncertain EnterpriseClarkTony
 
How to Develop Your Own Simulators for Discrete-Event Systems
How to Develop Your Own Simulators for Discrete-Event SystemsHow to Develop Your Own Simulators for Discrete-Event Systems
How to Develop Your Own Simulators for Discrete-Event SystemsDonghun Kang
 
2018.07 Self-driving cars meetup
2018.07 Self-driving cars meetup2018.07 Self-driving cars meetup
2018.07 Self-driving cars meetupPunnu Phairatt
 
Mission planning of autonomous quadrotors
Mission planning of autonomous quadrotorsMission planning of autonomous quadrotors
Mission planning of autonomous quadrotorsIvano Malavolta
 
A hybrid controller for vision based navigation of autonomous vehicles in urb...
A hybrid controller for vision based navigation of autonomous vehicles in urb...A hybrid controller for vision based navigation of autonomous vehicles in urb...
A hybrid controller for vision based navigation of autonomous vehicles in urb...Sushil kumar
 

Similar to Cloud PARTE: Elastic Complex Event Processing based on Mobile Actors (20)

Mechatronics engineer
Mechatronics engineerMechatronics engineer
Mechatronics engineer
 
The 'right' choices in GIS - Grontmij
The 'right' choices in GIS - GrontmijThe 'right' choices in GIS - Grontmij
The 'right' choices in GIS - Grontmij
 
Anderson_CV_NN
Anderson_CV_NNAnderson_CV_NN
Anderson_CV_NN
 
INAC Online Hazards Database App
INAC Online Hazards Database AppINAC Online Hazards Database App
INAC Online Hazards Database App
 
Level Crossing protection integration into connected car tecnologies
Level Crossing protection integration into connected car tecnologiesLevel Crossing protection integration into connected car tecnologies
Level Crossing protection integration into connected car tecnologies
 
Dealing with the need for Infrastructural Support in Ambient Intelligence
Dealing with the need for Infrastructural Support in Ambient IntelligenceDealing with the need for Infrastructural Support in Ambient Intelligence
Dealing with the need for Infrastructural Support in Ambient Intelligence
 
Material Handling System
Material Handling SystemMaterial Handling System
Material Handling System
 
Multi-agent approach to resource allocation inautonomous vehicle fleet
Multi-agent approach to resource allocation inautonomous vehicle fleetMulti-agent approach to resource allocation inautonomous vehicle fleet
Multi-agent approach to resource allocation inautonomous vehicle fleet
 
State of the Art Web Mapping with Open Source
State of the Art Web Mapping with Open SourceState of the Art Web Mapping with Open Source
State of the Art Web Mapping with Open Source
 
Mobility insights at Swisscom - Understanding collective mobility in Switzerland
Mobility insights at Swisscom - Understanding collective mobility in SwitzerlandMobility insights at Swisscom - Understanding collective mobility in Switzerland
Mobility insights at Swisscom - Understanding collective mobility in Switzerland
 
Spark Summit EU talk by Francois Garillot and Mohamed Kafsi
Spark Summit EU talk by Francois Garillot and Mohamed KafsiSpark Summit EU talk by Francois Garillot and Mohamed Kafsi
Spark Summit EU talk by Francois Garillot and Mohamed Kafsi
 
Portofolio Control Version SN
Portofolio Control Version SNPortofolio Control Version SN
Portofolio Control Version SN
 
Deep Learning, Microsoft Cognitive Toolkit (CNTK) and Azure Machine Learning ...
Deep Learning, Microsoft Cognitive Toolkit (CNTK) and Azure Machine Learning ...Deep Learning, Microsoft Cognitive Toolkit (CNTK) and Azure Machine Learning ...
Deep Learning, Microsoft Cognitive Toolkit (CNTK) and Azure Machine Learning ...
 
The Uncertain Enterprise
The Uncertain EnterpriseThe Uncertain Enterprise
The Uncertain Enterprise
 
How to Develop Your Own Simulators for Discrete-Event Systems
How to Develop Your Own Simulators for Discrete-Event SystemsHow to Develop Your Own Simulators for Discrete-Event Systems
How to Develop Your Own Simulators for Discrete-Event Systems
 
HTML5 and CartoDB
HTML5 and CartoDBHTML5 and CartoDB
HTML5 and CartoDB
 
Mechatronics engineer
Mechatronics engineerMechatronics engineer
Mechatronics engineer
 
2018.07 Self-driving cars meetup
2018.07 Self-driving cars meetup2018.07 Self-driving cars meetup
2018.07 Self-driving cars meetup
 
Mission planning of autonomous quadrotors
Mission planning of autonomous quadrotorsMission planning of autonomous quadrotors
Mission planning of autonomous quadrotors
 
A hybrid controller for vision based navigation of autonomous vehicles in urb...
A hybrid controller for vision based navigation of autonomous vehicles in urb...A hybrid controller for vision based navigation of autonomous vehicles in urb...
A hybrid controller for vision based navigation of autonomous vehicles in urb...
 

More from Stefan Marr

Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...
Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...
Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...Stefan Marr
 
Seminar on Parallel and Concurrent Programming
Seminar on Parallel and Concurrent ProgrammingSeminar on Parallel and Concurrent Programming
Seminar on Parallel and Concurrent ProgrammingStefan Marr
 
Optimizing Communicating Event-Loop Languages with Truffle
Optimizing Communicating Event-Loop Languages with TruffleOptimizing Communicating Event-Loop Languages with Truffle
Optimizing Communicating Event-Loop Languages with TruffleStefan Marr
 
Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...
Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...
Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...Stefan Marr
 
Why Is Concurrent Programming Hard? And What Can We Do about It?
Why Is Concurrent Programming Hard? And What Can We Do about It?Why Is Concurrent Programming Hard? And What Can We Do about It?
Why Is Concurrent Programming Hard? And What Can We Do about It?Stefan Marr
 
Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...
Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...
Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...Stefan Marr
 
Building High-Performance Language Implementations With Low Effort
Building High-Performance Language Implementations With Low EffortBuilding High-Performance Language Implementations With Low Effort
Building High-Performance Language Implementations With Low EffortStefan Marr
 
Supporting Concurrency Abstractions in High-level Language Virtual Machines
Supporting Concurrency Abstractions in High-level Language Virtual MachinesSupporting Concurrency Abstractions in High-level Language Virtual Machines
Supporting Concurrency Abstractions in High-level Language Virtual MachinesStefan Marr
 
Identifying A Unifying Mechanism for the Implementation of Concurrency Abstra...
Identifying A Unifying Mechanism for the Implementation of Concurrency Abstra...Identifying A Unifying Mechanism for the Implementation of Concurrency Abstra...
Identifying A Unifying Mechanism for the Implementation of Concurrency Abstra...Stefan Marr
 
Sly and the RoarVM: Parallel Programming with Smalltalk
Sly and the RoarVM: Parallel Programming with SmalltalkSly and the RoarVM: Parallel Programming with Smalltalk
Sly and the RoarVM: Parallel Programming with SmalltalkStefan Marr
 
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...Stefan Marr
 
Sly and the RoarVM: Exploring the Manycore Future of Programming
Sly and the RoarVM: Exploring the Manycore Future of ProgrammingSly and the RoarVM: Exploring the Manycore Future of Programming
Sly and the RoarVM: Exploring the Manycore Future of ProgrammingStefan Marr
 
PHP.next: Traits
PHP.next: TraitsPHP.next: Traits
PHP.next: TraitsStefan Marr
 
The Price of the Free Lunch: Programming in the Multicore Era
The Price of the Free Lunch: Programming in the Multicore EraThe Price of the Free Lunch: Programming in the Multicore Era
The Price of the Free Lunch: Programming in the Multicore EraStefan Marr
 
Locality and Encapsulation: A Foundation for Concurrency Support in Multi-Lan...
Locality and Encapsulation: A Foundation for Concurrency Support in Multi-Lan...Locality and Encapsulation: A Foundation for Concurrency Support in Multi-Lan...
Locality and Encapsulation: A Foundation for Concurrency Support in Multi-Lan...Stefan Marr
 
Insertion Tree Phasers: Efficient and Scalable Barrier Synchronization for Fi...
Insertion Tree Phasers: Efficient and Scalable Barrier Synchronization for Fi...Insertion Tree Phasers: Efficient and Scalable Barrier Synchronization for Fi...
Insertion Tree Phasers: Efficient and Scalable Barrier Synchronization for Fi...Stefan Marr
 
Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...
Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...
Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...Stefan Marr
 
Intermediate Language Design of High-level Language VMs: Towards Comprehensiv...
Intermediate Language Design of High-level Language VMs: Towards Comprehensiv...Intermediate Language Design of High-level Language VMs: Towards Comprehensiv...
Intermediate Language Design of High-level Language VMs: Towards Comprehensiv...Stefan Marr
 
Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...
Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...
Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...Stefan Marr
 
VMADL: An Architecture Definition Language for Variability and Composition ...
VMADL: An Architecture Definition Language  for Variability and Composition  ...VMADL: An Architecture Definition Language  for Variability and Composition  ...
VMADL: An Architecture Definition Language for Variability and Composition ...Stefan Marr
 

More from Stefan Marr (20)

Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...
Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...
Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...
 
Seminar on Parallel and Concurrent Programming
Seminar on Parallel and Concurrent ProgrammingSeminar on Parallel and Concurrent Programming
Seminar on Parallel and Concurrent Programming
 
Optimizing Communicating Event-Loop Languages with Truffle
Optimizing Communicating Event-Loop Languages with TruffleOptimizing Communicating Event-Loop Languages with Truffle
Optimizing Communicating Event-Loop Languages with Truffle
 
Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...
Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...
Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...
 
Why Is Concurrent Programming Hard? And What Can We Do about It?
Why Is Concurrent Programming Hard? And What Can We Do about It?Why Is Concurrent Programming Hard? And What Can We Do about It?
Why Is Concurrent Programming Hard? And What Can We Do about It?
 
Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...
Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...
Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...
 
Building High-Performance Language Implementations With Low Effort
Building High-Performance Language Implementations With Low EffortBuilding High-Performance Language Implementations With Low Effort
Building High-Performance Language Implementations With Low Effort
 
Supporting Concurrency Abstractions in High-level Language Virtual Machines
Supporting Concurrency Abstractions in High-level Language Virtual MachinesSupporting Concurrency Abstractions in High-level Language Virtual Machines
Supporting Concurrency Abstractions in High-level Language Virtual Machines
 
Identifying A Unifying Mechanism for the Implementation of Concurrency Abstra...
Identifying A Unifying Mechanism for the Implementation of Concurrency Abstra...Identifying A Unifying Mechanism for the Implementation of Concurrency Abstra...
Identifying A Unifying Mechanism for the Implementation of Concurrency Abstra...
 
Sly and the RoarVM: Parallel Programming with Smalltalk
Sly and the RoarVM: Parallel Programming with SmalltalkSly and the RoarVM: Parallel Programming with Smalltalk
Sly and the RoarVM: Parallel Programming with Smalltalk
 
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
 
Sly and the RoarVM: Exploring the Manycore Future of Programming
Sly and the RoarVM: Exploring the Manycore Future of ProgrammingSly and the RoarVM: Exploring the Manycore Future of Programming
Sly and the RoarVM: Exploring the Manycore Future of Programming
 
PHP.next: Traits
PHP.next: TraitsPHP.next: Traits
PHP.next: Traits
 
The Price of the Free Lunch: Programming in the Multicore Era
The Price of the Free Lunch: Programming in the Multicore EraThe Price of the Free Lunch: Programming in the Multicore Era
The Price of the Free Lunch: Programming in the Multicore Era
 
Locality and Encapsulation: A Foundation for Concurrency Support in Multi-Lan...
Locality and Encapsulation: A Foundation for Concurrency Support in Multi-Lan...Locality and Encapsulation: A Foundation for Concurrency Support in Multi-Lan...
Locality and Encapsulation: A Foundation for Concurrency Support in Multi-Lan...
 
Insertion Tree Phasers: Efficient and Scalable Barrier Synchronization for Fi...
Insertion Tree Phasers: Efficient and Scalable Barrier Synchronization for Fi...Insertion Tree Phasers: Efficient and Scalable Barrier Synchronization for Fi...
Insertion Tree Phasers: Efficient and Scalable Barrier Synchronization for Fi...
 
Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...
Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...
Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...
 
Intermediate Language Design of High-level Language VMs: Towards Comprehensiv...
Intermediate Language Design of High-level Language VMs: Towards Comprehensiv...Intermediate Language Design of High-level Language VMs: Towards Comprehensiv...
Intermediate Language Design of High-level Language VMs: Towards Comprehensiv...
 
Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...
Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...
Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...
 
VMADL: An Architecture Definition Language for Variability and Composition ...
VMADL: An Architecture Definition Language  for Variability and Composition  ...VMADL: An Architecture Definition Language  for Variability and Composition  ...
VMADL: An Architecture Definition Language for Variability and Composition ...
 

Recently uploaded

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 

Recently uploaded (20)

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 

Cloud PARTE: Elastic Complex Event Processing based on Mobile Actors

  • 1. Cloud PARTE Elastic Complex Event Processing based on Mobile Actors J. Swalens, T. Renaux, L. Hoste, S. Marr, W. De Meuter Software Languages Lab AGERE Workshop, 2013-10-27
  • 3. Traffic Management at City Scale? ©Jupiter Systems, Beijing Traffic Management Bureau Singapore: GPS coord. of 16000 taxis = 200 coord./sec = 12KB/sec Source: City-Scale Traffic Estimation from a Roving Sensor Network, Javed Aslam, Sejoon Lim, Xinghao Pan, and Daniela Rus. Proceedings of the 10th ACM Conference on Embedded Network Sensor Systems. ACM, (2012)
  • 4. Challenges: Large Variety of Input Sources Personal Onboard Units Pedestrian Sensing Vehicle Sensing ©Jupiter Systems, Beijing Traffic Management Bureau 4
  • 5. Challenges: Combining the Data Imperative int gru_tapping(struct grail *ge, const struct utouch_frame *frame) { struct gesture_recognizer *gru = ge->gru; struct tapping_model *state = &gru->tapping; struct move_model *move = &gru->move; state->tap = 0; if (frame->num_active && !frame->prev->num_active) { state->mintouch = 0; state->maxtouch = 0; } if (move->ntouch > state->maxtouch) { if (state->active) { gin_gid_discard(ge, state->gid); state->active = 0; } state->start = move->time; state->maxtouch = move->ntouch; set_props(ge->gin, state, move, frame); if (state->maxtouch <= 5) { int type = GRAIL_TYPE_TAP1 + state->maxtouch - 1; state->gid = gin_gid_begin(ge, type, PRIO_TAP, frame); state->active = 1; } return 0; } if (!state->active) { state->mintouch = move->ntouch; state->maxtouch = move->ntouch; return 0; } if (move->ntouch <= state->mintouch) { int x = state->prop[GRAIL_PROP_TAP_X]; int y = state->prop[GRAIL_PROP_TAP_Y]; int t = move->time - state->start; if (t > move->fm[FM_X].bar_ms) { gin_gid_discard(ge, state->gid); state->mintouch = move->ntouch; state->maxtouch = move->ntouch; state->active = 0; return 0; } state->tap = state->maxtouch; state->prop[GRAIL_PROP_TAP_DT] = t; gin_gid_event(ge, state->gid, x, y, state->maxtouch, state->prop, state->nprop, 1); state->mintouch = move->ntouch; Declarative a simple tap (defrule detectTap (Press (x ?x) (y ?y) (finger "index") (timestamp ?t1)) (Release (x ?x) (y ?y) (finger "index") (timestamp ?t2)) (test (< ?t1 ?t2)) => (tapDetected ?x ?y))) 5
  • 6. Challenges: Combining the Data (defrule StolenCarInTraffic (defrule CarTooFast (StolenCar (plate ?pl)) (Car (camera ?c1) (plate ?pl) (Car (plate ?pl) (camera ?c)) (time ?t1)) (Camera (id ?c) (highway ?hw) (Car (camera ?c2) (plate ?pl) (direction ?d) (position ?p)) (time ?t2)) (test (> ?t2 ?t1)) => (Camera (id ?c1) (highway ?hw) (printout "Sloten car " ?pl (direction ?d) (position ?p1)) " seen on highway " ?hw (Camera (id ?c2) (highway ?hw) " at " ?p (direction ?d) (position ?p2)) " in direction " ?d)) (test (> (speed ?t1 ?p1 ?t2 ?p2) *speed-limit*)) => (printout "Car too fast: " ?pl " at " (speed ?t1 ?p1 ?t2 ?p2) " km/h.")) 6
  • 7. Challenges: Combining the Data (defrule StationaryCar (Car (camera ?c) (plate ?pl) (time ?t1)) (Car (camera ?c) (plate ?pl) (time ?t2)) (test (> (- ?t2 ?t1) 30)) (Camera (id ?c) (highway ?hw) (direction ?d) (position ?p)) => (assert (StationaryCar (camera ?c) (plate ?pl) (time ?t1)))) (defrule StationaryCars (Camera (id ?c) (highway ?hw) (direction ?d) (position ?p)) (StationaryCar (camera ?c) (plate ?pl1) (time ?t1)) (StationaryCar (camera ?c) (plate ?pl2) (time ?t2)) (StationaryCar (camera ?c) (plate ?pl3) (time ?t3)) (test (!= ?pl1 ?pl2 ?pl3)) (test (< 0 (- ?t2 ?t1) 1)) (test (< 0 (- ?t3 ?t2) 1)) => (assert (StationaryCars (camera ?c) (time ?t1)))) 7
  • 8. How to approach such scenarios? • Declarative rules! • Online processing of real-time events! 1 set of rules 1 set of facts Load balancing Elasticity (transparent distribution) 8
  • 9. Our Approach Parallel + Soft Real-Time • • • • Distributed for “Big Data” Declarative rules Mobile actors Central managing interface Simple heuristics for load balancing 9
  • 10. PARTE: A Parallel, Actor-based Rete Engine (defrule StationaryCar (Car (cam ?c) (plate ?plt) (time ?t1)) (Car (cam ?c) (plate ?plt) (time ?t2)) (test (> (- ?t2 ?t1) 30)) (Cam (id ?c) (position ?p)) Events e=Car • Each node an actor • Unification memory intensive • Tests computationally intensive e=Cam Unification 1.cam=2.cam 1.plate=2.plate => (assert (StationaryCar (pos ?p))) Type Tests 1 2 Test time-diff > 30 Unification cam=id 3 4 assert [1] Rete: A Fast Algorithm for the Many Patterns/Many Objects Match Problem, Charles L. Forgy. Artif. Intell. 19(1):17–37 (1982) [2] Parallel Gesture Recognition with Soft Real-Time Guarantees, T. Renaux, L. Hoste, S. Marr, and W. De Meuter. AGERE’12, 35–46. 10
  • 11. Cloud PARTE From Parallel to Distributed 1 Events 2 3 (defrule StationaryCar (Car (cam ?c) (plate ?plt) (time ?t1)) (Car (cam ?c) (plate ?plt) (time ?t2)) (test (> (- ?t2 ?t1) 30)) (Cam (id ?c) (position ?p)) => (assert (StationaryCar (pos ?p))) 4 master App • Transparent Distribution worker Cloud PARTE builds on Theron (C++ actor library, http://www.theron-library.com/) 11
  • 12. Cloud PARTE From Parallel to Distributed Events 1 Load Balancer 2 (defrule StationaryCar (Car (cam ?c) (plate ?plt) (time ?t1)) (Car (cam ?c) (plate ?plt) (time ?t2)) (test (> (- ?t2 ?t1) 30)) (Cam (id ?c) (position ?p)) => (assert (StationaryCar (pos ?p))) 4 master App 3 worker • Automatic Load Balancing • Mobile actors • Heuristic – Length of message queue Cloud PARTE builds on Theron (C++ actor library, http://www.theron-library.com/) 12
  • 13. Cloud PARTE From Parallel to Distributed 1 Load Balancer 3 4 master App Events 2 worker • Elasticity – Adding/removing of workers • Coordination required (currently) 13
  • 14. Cloud PARTE From Parallel to Distributed • Elasticity 2 Load Balancer 3 4 master App Events 1 worker – Adding/removing of workers • Coordination required (currently) 14
  • 16. Microbenchmarks 16 heavy tests Cloud PARTE Scalability PARTE vs. CloudPARTE Slow down 101 simple tests 501 simple tests 101 complex tests … with variables 10x101 simple tests 10x8 heavy tests 16 heavy tests 32 heavy tests 64 heavy tests 128 heavy tests Joining tree Search 18x 29x 5x 5x 60x 2x 4x 4x 4x 3x 6x 2x Single machine Performance Evaluation: Comparison with non-distributed PARTE 16
  • 17. Performance: Traffic Scenario Simulating events from variety of sources 17
  • 18. 11% speedup 2 machines Static Actor Distribution 2 machines Static Actor Distribution + Dynamic Load Balancing 17% speedup 3 machines Static Actor Distribution + Dynamic Load Balancing + Empty Machine 18
  • 20. 1 set of rules 1 set of facts Load balancing Elasticity (transparent distribution) Traffic Management Cloud PARTE: Elastic Complex Event Processing based on Mobile Actors 20
  • 22. Mobile Actors: Movement Protocol 22

Editor's Notes

  1. First: all the good ideas are the ones of my colleagues, and the bad ones are all mine.Second: what I am going to talk about is a distributed Rete engineA forward chaining inference engine, for complex event detection, pattern matching
  2. NYC area 8mio cars, and 18mio peopleBeijing 5mio cars, 20mio peopleImagine we want to manage the traffic based on realtime dataThe amount of data is not the real problem:Singapore: 5mio people.
  3. State the conclusions, requirements, base to work fromMany to many matchingMany Rules and Many events
  4. Declarative rules!Online processing of real-time eventsLoad-balancing (dynamic)Elastic (add more machines)Transparent distribution (single system image)
  5. So, why would you care? Well, we believe that we do not only have a contribution in the field of Rete engines, but at the same time a relevant application of the actor modelInitial prototype with:Transparent DistributionMobile actorsCentral managing interface (managing actor)Simple load balancing heuristic
  6. Make explicit: all nodes are actors, communicate via message passingPoint out the data intensive nodes, cross-product of cars, and cams and cars.Point out that tests can be all kind of things, complex expressions, but also compute intensive external functions, e.g., to calculate the spatial relationships between points
  7. Mobility built on top of theronclassic code mobilitythe actor contains it’s code, for instance the test expressionGather load info per machineFind load imbalance node overloaded if &gt; 50 messages machine overloaded if ≥ 5 overloaded nodesmachine underloaded if &lt; 3 overloaded nodes 3. Select node to move and destination
  8. Single machine comparison:PARTE vs. CloudPARTE
  9. Goal: chose realistic scenario
  10. Starts with static distribution over 2 machines