SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
LiSEP: a Lightweight and Extensible tool for
Complex Event Processing
Ivan Zappia, David Parlanti, Federica Paganelli
National Interuniversity Consortium for
Telecommunications
Firenze, Italy
ReferencesReferences
1/19
Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
I. Zappia, F. Paganelli, D. Parlanti, "A Lightweight and Extensible
Complex Event Processing System for Sense and Respond
Applications", Expert Systems with Applications, 39 (12), pp.
10408-10419,2012, http://dx.doi.org/10.1016/j.eswa.2012.01.197.
I. Zappia, D. Parlanti, F. Paganelli, "LiSEP: a Lightweight and
Extensible tool for Complex Event Processing", Proceedings -
2011 IEEE International Conference on Services Computing,
SCC 2011, art. no. 6009325 , pp. 701-708, Washington, 2011,
http://dx.doi.org/10.1109/SCC.2011.63
ContextContext
1/19
Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
Need for integrating heterogeneous information systems has
promoted the increasing adoption of architectural patterns based
on loose-coupling and message exchange.
Event-Driven Architecture is based on a push asynchronous
communication mechanism; messages (events) are used to
propagate system state alterations.
Specific analysis tools are needed to manipulate great volumes of
events, non necessarily organized, in order to obtain a more
aggregate and manageable view (Event Processing).
Complex Event Processing to correlate (time and causality)
heterogeneous event instances so to infer and manage higher
abstraction levels of information.
Complex Event ProcessingComplex Event Processing
A family of technologies concurring at the elaboration of large amount of simple data. Goal
is to identify the most valuable information samples and/or infer new entities placed at
higher abstraction levels.
-Events are available as streams or clouds of data, each one marked with a timestamp.
-Event patterns are represented through query statements modeling temporal and causality-
based relations.
-Received events are continuously evaluated against registered statements so to produce
prompt feedback (“inversion” of the database concept).
Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
3/19
Research goalResearch goal
This paper proposes a novel Complex Event
Processing engine conceived with extensibility,
portability, modularity and scalability requirements
in mind. Ease of use and “lightness” are also well-
accepted features.
2/19
Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
Requirements analysisRequirements analysis
Functional requirements:
- system should allow event patterns definition and memorization;
- system should be able to interpret a sufficiently expressive high level language designed
to define said event patterns;
- system should be able to accept and evaluate incoming events;
- system should allow the definition of (complex) actions to be executed when a particular
pattern is detected;
- system should expose a public administration interface.
Non-functional requirements:
- portability;
- modularity and extensibility;
- scalability;
- minimal configuration and deployment requirements.
4/19
Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
Event Processing Language (1/2)Event Processing Language (1/2)
High level and SQL-like language; clauses have been “extended”
to enable event patterns definition (event types, different kinds of
constraints).
SELECT o.amount AS 'OA', p.amount AS 'PA'
ORDER BY 'PA' ASCENDING
FROM ns.Order o WHEN 10
WITHIN '2011/02/22 08:00:00:000 CEST'
AND '2011/02/22 11:30:00:000 CEST',
ns.Payment p WHEN 10
STARTING_FROM '2011/01/01 08:00:00:000 CEST'
EXPIRES_ON '2011/12/31 18:00:00:000 CEST'
INNER_JOIN o, p ON o.id = p.orderId
WHERE o.amount < 30000
5/19
Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
Event Processing Language (2/2)Event Processing Language (2/2)
To interpret the EPL language and translate statements in objects the
CEP engine can actually use we need a parser.
A parser analyzes the syntactic structure of input statement strings
and produces a semantically equivalent data structure, a tree in this
case.
As a consequence of its SQL-like syntax, this EPL language is made
up of independent clauses, which are elaborated in sequence
according to a pre-defined and fixed order.
Adopting a divide et impera approach, five distinct parsers were
designed, each of them tailored for a specific language clause.
These parsers are used to compile textual clauses into clause
expressions; said expressions enable the following evaluation phase.
6/19
Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
Design choicesDesign choices
Non-functional requirements reception:
• Java programming language was adopted to match the
portability constraint;
• an internal structure based on the Staged Event-Driven
Architecture (SEDA) pattern by Matt Welsh (2001) was
adopted to achieve modularity, extensibility and scalability;
• the adoption of only strictly Java SE libraries (thus avoiding
any application container usage) and as few as possible third
party libraries (thus preventing vendor lock-ins) led to
deployment requisites minimization.
For these reasons our CEP tool is named Lightweight Stage-
based Event Processor (LiSEP).
7/19
Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
Staged Event-Driven ArchitectureStaged Event-Driven Architecture
8/19
• Idea: decomposition of a complex event-driven system in
stages connected by event-queues.
• Main pattern goals:
- efficient, event-driven concurrency (thread pools, non-
blocking I/O primitives);
- stages decoupling;
- stages have a unique control point for incoming events;
- easy load balancing (event-queues);
- code modularity.
Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
M. Welsh, 2001
Layered architectureLayered architecture
Hardware
Operating System
Java Virtual Machine
SEDA Framework
Stage Stage Stage
LiSEP
9/19
Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
Internal structureInternal structure
10/19
Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
Use case example:
statement registration
Use case example:
statement registration
11/19
Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
EvaluationEvaluation
Submitted events are enqueued in
batches according to registered
statements (From Clause Manager).
When full, each batch is forwarded to
the next stage on the evaluation chain,
according to an optimized, and
statement-specific, Evaluation Routing
Table.
From there on, multiple computation
paths are executed in parallel
(messages asynchronicity).
The Listeners Manager stage is
assigned to call listeners interested in
those batches that reaches this final
evaluation phase.
12/19
Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
Performance analysis (1/2)Performance analysis (1/2)
14/19
Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
• Testing machine: Intel Core i5-750 (2,72GHz) desktop with 4GB of DDR3
PC3-12800 (1600MHz) RAM.
• Two test cases parameterized on variables batch size and selectivity.
1st test case, filtering statement:
• greater batch size leads to
fewer exchanged messages
and therefore higher throughput
values;
• greater selectivity leads to
fewer events in the latter stages
and therefore higher throughput
values.
2nd test case, high-expressivity
correlation statement:
• greater batch size leads to a
more computationally
challenging projection phase;
• configuring four threads on the
Join stage, performances
triplicate on the reference multi-
core machine.
Performance analysis (2/2)Performance analysis (2/2)
14/19
Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
• Testing machine: Intel Core i5-750 (2,72GHz) desktop with 4GB of DDR3
PC3-12800 (1600MHz) RAM.
• Two test cases parameterized on variables batch size and selectivity.
Case study (1/3)Case study (1/3)
Case study on dangerous goods monitoring in maritime transport routes.
This activity is part of an ongoing research project, called SITMAR (acronym for
the Italian equivalent of “Integrated system for goods maritime transport in multi-
modal scenarios”), funded by the Italian Ministry for Economic Development.
The monitoring and control infrastructure is based on a set of RFIDs and
sensors, deployed in the container (the reference loading unit) and/or in the ship
storage area in order to monitor and control the environment conditions.
LiSEP can be configured in order to:
- deliver filtered and aggregated events to a monitoring application component
deployed locally
- detect anomalies in the physical parameters of containers and the storage
area in order to trigger alert services
15/19
Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
Case study (2/3)Case study (2/3)
The following statement is built to detect the “possible fire” complex event
from raw temperature sensor readings and simple event LightDetected
occurrences.
SELECT l.senderId AS ‘senderId’,
t.timestamp AS ‘T timestamp’,
l.timestamp AS ‘L timestamp’,
t.value AS ‘T value’
FROM model.events.LightDetected l BATCH 1
model.events.Temperature t BATCH 1
FILTER t.value >= <temperatureThreshold>
INNER_JOIN t, l ON t.senderId = l.senderId
WHERE t.senderId = <containerId> &
(t.timestamp − l.timestamp < 10000 |
l.timestamp − t.timestamp < 10000)
16/19
Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
Case study (3/3)Case study (3/3)
17/19
Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
ConclusionsConclusions
Distinctive LiSEP traits:
• stage-based and modular architecture according to the SEDA pattern; this approach
clearly separates the core logic devoted to event processing from the inner
communication mechanism and low-level thread management;
• SEDA framework adoption eases system configuration, thus allowing available
resources exploitation (scalability);
• each stage is extremely simple and intelligible;
• high maintainability and extensibility given the high separation of concerns through
the autonomous and specialized units constituting the engine; adjustments can be
performed with limited impact and only on strictly related areas;
• deployment procedure is simple given the independence from specific libraries other
than standard Java SE platform;
• independence from third party libraries concurs in producing a lightweight engine,
which can be easily integrated in pre-existing applications.
18/19
Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
Further investigationsFurther investigations
Areas that could benefit from specific further
investigations:
• the Event Processing Language may be extended to
increase system features (new negation operator,
extension of present temporal operators);
• the SEDA framework may be extended with a self-
tuning module so to optimize exploitation of available
resources (e.g., changing number of threads allocated
per stage).
19/19
Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
LiSEP: a Lightweight and Extensible tool for
Complex Event Processing
Thanks!

Weitere ähnliche Inhalte

Ähnlich wie LiSEP: Lightweight CEP tool

2012 ieee projects software engineering @ Seabirds ( Trichy, Chennai, Pondich...
2012 ieee projects software engineering @ Seabirds ( Trichy, Chennai, Pondich...2012 ieee projects software engineering @ Seabirds ( Trichy, Chennai, Pondich...
2012 ieee projects software engineering @ Seabirds ( Trichy, Chennai, Pondich...SBGC
 
2014 carlos gzlez florido nksip the erlang sip application server
2014 carlos gzlez florido nksip the erlang sip application server2014 carlos gzlez florido nksip the erlang sip application server
2014 carlos gzlez florido nksip the erlang sip application serverVOIP2DAY
 
Document
DocumentDocument
Documentshiva1224
 
PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...
PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...
PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...AMD Developer Central
 
178 - A replicated study on duplicate detection: Using Apache Lucene to searc...
178 - A replicated study on duplicate detection: Using Apache Lucene to searc...178 - A replicated study on duplicate detection: Using Apache Lucene to searc...
178 - A replicated study on duplicate detection: Using Apache Lucene to searc...ESEM 2014
 
TaskMan-Middleware 2011
TaskMan-Middleware 2011TaskMan-Middleware 2011
TaskMan-Middleware 2011Andrea Tino
 
Inefficiencies in using Middleboxes with OpenFlow
Inefficiencies in using Middleboxes with OpenFlowInefficiencies in using Middleboxes with OpenFlow
Inefficiencies in using Middleboxes with OpenFlowUS-Ignite
 
Ph.D Annual Report III
Ph.D Annual Report IIIPh.D Annual Report III
Ph.D Annual Report IIIMatteo Avalle
 
RAVI
RAVIRAVI
RAVIRavi Y
 
LOCK-FREE PARALLEL ACCESS COLLECTIONS
LOCK-FREE PARALLEL ACCESS COLLECTIONSLOCK-FREE PARALLEL ACCESS COLLECTIONS
LOCK-FREE PARALLEL ACCESS COLLECTIONSijdpsjournal
 
Lock free parallel access collections
Lock free parallel access collectionsLock free parallel access collections
Lock free parallel access collectionsijdpsjournal
 
Arunkumar_profile
Arunkumar_profileArunkumar_profile
Arunkumar_profileArunkumar P
 
Function points and elements
Function points and elementsFunction points and elements
Function points and elementsBusi Sreedhaar Reddy
 
Debs 2011 tutorial on non functional properties of event processing
Debs 2011 tutorial  on non functional properties of event processingDebs 2011 tutorial  on non functional properties of event processing
Debs 2011 tutorial on non functional properties of event processingOpher Etzion
 
Portable Ontology Alignment Fragments - 2008
Portable Ontology Alignment Fragments - 2008Portable Ontology Alignment Fragments - 2008
Portable Ontology Alignment Fragments - 2008Yannis Kalfoglou
 
Iygapyisi cause10-slideshare
Iygapyisi cause10-slideshareIygapyisi cause10-slideshare
Iygapyisi cause10-slidesharedwengincsu
 
Sulthan's_JAVA_Material_for_B.Sc-CS.pdf
Sulthan's_JAVA_Material_for_B.Sc-CS.pdfSulthan's_JAVA_Material_for_B.Sc-CS.pdf
Sulthan's_JAVA_Material_for_B.Sc-CS.pdfSULTHAN BASHA
 
FusionInventory at LSM/RMLL 2012
FusionInventory at LSM/RMLL 2012FusionInventory at LSM/RMLL 2012
FusionInventory at LSM/RMLL 2012Nouh Walid
 

Ähnlich wie LiSEP: Lightweight CEP tool (20)

2012 ieee projects software engineering @ Seabirds ( Trichy, Chennai, Pondich...
2012 ieee projects software engineering @ Seabirds ( Trichy, Chennai, Pondich...2012 ieee projects software engineering @ Seabirds ( Trichy, Chennai, Pondich...
2012 ieee projects software engineering @ Seabirds ( Trichy, Chennai, Pondich...
 
2014 carlos gzlez florido nksip the erlang sip application server
2014 carlos gzlez florido nksip the erlang sip application server2014 carlos gzlez florido nksip the erlang sip application server
2014 carlos gzlez florido nksip the erlang sip application server
 
Ws2001 sessione8 cibella_tuoto
Ws2001 sessione8 cibella_tuotoWs2001 sessione8 cibella_tuoto
Ws2001 sessione8 cibella_tuoto
 
Document
DocumentDocument
Document
 
PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...
PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...
PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...
 
178 - A replicated study on duplicate detection: Using Apache Lucene to searc...
178 - A replicated study on duplicate detection: Using Apache Lucene to searc...178 - A replicated study on duplicate detection: Using Apache Lucene to searc...
178 - A replicated study on duplicate detection: Using Apache Lucene to searc...
 
TaskMan-Middleware 2011
TaskMan-Middleware 2011TaskMan-Middleware 2011
TaskMan-Middleware 2011
 
Inefficiencies in using Middleboxes with OpenFlow
Inefficiencies in using Middleboxes with OpenFlowInefficiencies in using Middleboxes with OpenFlow
Inefficiencies in using Middleboxes with OpenFlow
 
Ph.D Annual Report III
Ph.D Annual Report IIIPh.D Annual Report III
Ph.D Annual Report III
 
RAVI
RAVIRAVI
RAVI
 
LOCK-FREE PARALLEL ACCESS COLLECTIONS
LOCK-FREE PARALLEL ACCESS COLLECTIONSLOCK-FREE PARALLEL ACCESS COLLECTIONS
LOCK-FREE PARALLEL ACCESS COLLECTIONS
 
Lock free parallel access collections
Lock free parallel access collectionsLock free parallel access collections
Lock free parallel access collections
 
Arunkumar_profile
Arunkumar_profileArunkumar_profile
Arunkumar_profile
 
Function points and elements
Function points and elementsFunction points and elements
Function points and elements
 
Rajesh - CV
Rajesh - CVRajesh - CV
Rajesh - CV
 
Debs 2011 tutorial on non functional properties of event processing
Debs 2011 tutorial  on non functional properties of event processingDebs 2011 tutorial  on non functional properties of event processing
Debs 2011 tutorial on non functional properties of event processing
 
Portable Ontology Alignment Fragments - 2008
Portable Ontology Alignment Fragments - 2008Portable Ontology Alignment Fragments - 2008
Portable Ontology Alignment Fragments - 2008
 
Iygapyisi cause10-slideshare
Iygapyisi cause10-slideshareIygapyisi cause10-slideshare
Iygapyisi cause10-slideshare
 
Sulthan's_JAVA_Material_for_B.Sc-CS.pdf
Sulthan's_JAVA_Material_for_B.Sc-CS.pdfSulthan's_JAVA_Material_for_B.Sc-CS.pdf
Sulthan's_JAVA_Material_for_B.Sc-CS.pdf
 
FusionInventory at LSM/RMLL 2012
FusionInventory at LSM/RMLL 2012FusionInventory at LSM/RMLL 2012
FusionInventory at LSM/RMLL 2012
 

KĂźrzlich hochgeladen

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
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
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

KĂźrzlich hochgeladen (20)

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
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
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

LiSEP: Lightweight CEP tool

  • 1. LiSEP: a Lightweight and Extensible tool for Complex Event Processing Ivan Zappia, David Parlanti, Federica Paganelli National Interuniversity Consortium for Telecommunications Firenze, Italy
  • 2. ReferencesReferences 1/19 Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event I. Zappia, F. Paganelli, D. Parlanti, "A Lightweight and Extensible Complex Event Processing System for Sense and Respond Applications", Expert Systems with Applications, 39 (12), pp. 10408-10419,2012, http://dx.doi.org/10.1016/j.eswa.2012.01.197. I. Zappia, D. Parlanti, F. Paganelli, "LiSEP: a Lightweight and Extensible tool for Complex Event Processing", Proceedings - 2011 IEEE International Conference on Services Computing, SCC 2011, art. no. 6009325 , pp. 701-708, Washington, 2011, http://dx.doi.org/10.1109/SCC.2011.63
  • 3. ContextContext 1/19 Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event Need for integrating heterogeneous information systems has promoted the increasing adoption of architectural patterns based on loose-coupling and message exchange. Event-Driven Architecture is based on a push asynchronous communication mechanism; messages (events) are used to propagate system state alterations. Specific analysis tools are needed to manipulate great volumes of events, non necessarily organized, in order to obtain a more aggregate and manageable view (Event Processing). Complex Event Processing to correlate (time and causality) heterogeneous event instances so to infer and manage higher abstraction levels of information.
  • 4. Complex Event ProcessingComplex Event Processing A family of technologies concurring at the elaboration of large amount of simple data. Goal is to identify the most valuable information samples and/or infer new entities placed at higher abstraction levels. -Events are available as streams or clouds of data, each one marked with a timestamp. -Event patterns are represented through query statements modeling temporal and causality- based relations. -Received events are continuously evaluated against registered statements so to produce prompt feedback (“inversion” of the database concept). Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event 3/19
  • 5. Research goalResearch goal This paper proposes a novel Complex Event Processing engine conceived with extensibility, portability, modularity and scalability requirements in mind. Ease of use and “lightness” are also well- accepted features. 2/19 Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
  • 6. Requirements analysisRequirements analysis Functional requirements: - system should allow event patterns definition and memorization; - system should be able to interpret a sufficiently expressive high level language designed to define said event patterns; - system should be able to accept and evaluate incoming events; - system should allow the definition of (complex) actions to be executed when a particular pattern is detected; - system should expose a public administration interface. Non-functional requirements: - portability; - modularity and extensibility; - scalability; - minimal configuration and deployment requirements. 4/19 Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
  • 7. Event Processing Language (1/2)Event Processing Language (1/2) High level and SQL-like language; clauses have been “extended” to enable event patterns definition (event types, different kinds of constraints). SELECT o.amount AS 'OA', p.amount AS 'PA' ORDER BY 'PA' ASCENDING FROM ns.Order o WHEN 10 WITHIN '2011/02/22 08:00:00:000 CEST' AND '2011/02/22 11:30:00:000 CEST', ns.Payment p WHEN 10 STARTING_FROM '2011/01/01 08:00:00:000 CEST' EXPIRES_ON '2011/12/31 18:00:00:000 CEST' INNER_JOIN o, p ON o.id = p.orderId WHERE o.amount < 30000 5/19 Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
  • 8. Event Processing Language (2/2)Event Processing Language (2/2) To interpret the EPL language and translate statements in objects the CEP engine can actually use we need a parser. A parser analyzes the syntactic structure of input statement strings and produces a semantically equivalent data structure, a tree in this case. As a consequence of its SQL-like syntax, this EPL language is made up of independent clauses, which are elaborated in sequence according to a pre-defined and fixed order. Adopting a divide et impera approach, five distinct parsers were designed, each of them tailored for a specific language clause. These parsers are used to compile textual clauses into clause expressions; said expressions enable the following evaluation phase. 6/19 Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
  • 9. Design choicesDesign choices Non-functional requirements reception: • Java programming language was adopted to match the portability constraint; • an internal structure based on the Staged Event-Driven Architecture (SEDA) pattern by Matt Welsh (2001) was adopted to achieve modularity, extensibility and scalability; • the adoption of only strictly Java SE libraries (thus avoiding any application container usage) and as few as possible third party libraries (thus preventing vendor lock-ins) led to deployment requisites minimization. For these reasons our CEP tool is named Lightweight Stage- based Event Processor (LiSEP). 7/19 Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
  • 10. Staged Event-Driven ArchitectureStaged Event-Driven Architecture 8/19 • Idea: decomposition of a complex event-driven system in stages connected by event-queues. • Main pattern goals: - efficient, event-driven concurrency (thread pools, non- blocking I/O primitives); - stages decoupling; - stages have a unique control point for incoming events; - easy load balancing (event-queues); - code modularity. Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event M. Welsh, 2001
  • 11. Layered architectureLayered architecture Hardware Operating System Java Virtual Machine SEDA Framework Stage Stage Stage LiSEP 9/19 Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
  • 12. Internal structureInternal structure 10/19 Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
  • 13. Use case example: statement registration Use case example: statement registration 11/19 Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
  • 14. EvaluationEvaluation Submitted events are enqueued in batches according to registered statements (From Clause Manager). When full, each batch is forwarded to the next stage on the evaluation chain, according to an optimized, and statement-specific, Evaluation Routing Table. From there on, multiple computation paths are executed in parallel (messages asynchronicity). The Listeners Manager stage is assigned to call listeners interested in those batches that reaches this final evaluation phase. 12/19 Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
  • 15. Performance analysis (1/2)Performance analysis (1/2) 14/19 Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event • Testing machine: Intel Core i5-750 (2,72GHz) desktop with 4GB of DDR3 PC3-12800 (1600MHz) RAM. • Two test cases parameterized on variables batch size and selectivity. 1st test case, filtering statement: • greater batch size leads to fewer exchanged messages and therefore higher throughput values; • greater selectivity leads to fewer events in the latter stages and therefore higher throughput values.
  • 16. 2nd test case, high-expressivity correlation statement: • greater batch size leads to a more computationally challenging projection phase; • configuring four threads on the Join stage, performances triplicate on the reference multi- core machine. Performance analysis (2/2)Performance analysis (2/2) 14/19 Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event • Testing machine: Intel Core i5-750 (2,72GHz) desktop with 4GB of DDR3 PC3-12800 (1600MHz) RAM. • Two test cases parameterized on variables batch size and selectivity.
  • 17. Case study (1/3)Case study (1/3) Case study on dangerous goods monitoring in maritime transport routes. This activity is part of an ongoing research project, called SITMAR (acronym for the Italian equivalent of “Integrated system for goods maritime transport in multi- modal scenarios”), funded by the Italian Ministry for Economic Development. The monitoring and control infrastructure is based on a set of RFIDs and sensors, deployed in the container (the reference loading unit) and/or in the ship storage area in order to monitor and control the environment conditions. LiSEP can be configured in order to: - deliver filtered and aggregated events to a monitoring application component deployed locally - detect anomalies in the physical parameters of containers and the storage area in order to trigger alert services 15/19 Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
  • 18. Case study (2/3)Case study (2/3) The following statement is built to detect the “possible fire” complex event from raw temperature sensor readings and simple event LightDetected occurrences. SELECT l.senderId AS ‘senderId’, t.timestamp AS ‘T timestamp’, l.timestamp AS ‘L timestamp’, t.value AS ‘T value’ FROM model.events.LightDetected l BATCH 1 model.events.Temperature t BATCH 1 FILTER t.value >= <temperatureThreshold> INNER_JOIN t, l ON t.senderId = l.senderId WHERE t.senderId = <containerId> & (t.timestamp − l.timestamp < 10000 | l.timestamp − t.timestamp < 10000) 16/19 Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
  • 19. Case study (3/3)Case study (3/3) 17/19 Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
  • 20. ConclusionsConclusions Distinctive LiSEP traits: • stage-based and modular architecture according to the SEDA pattern; this approach clearly separates the core logic devoted to event processing from the inner communication mechanism and low-level thread management; • SEDA framework adoption eases system configuration, thus allowing available resources exploitation (scalability); • each stage is extremely simple and intelligible; • high maintainability and extensibility given the high separation of concerns through the autonomous and specialized units constituting the engine; adjustments can be performed with limited impact and only on strictly related areas; • deployment procedure is simple given the independence from specific libraries other than standard Java SE platform; • independence from third party libraries concurs in producing a lightweight engine, which can be easily integrated in pre-existing applications. 18/19 Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
  • 21. Further investigationsFurther investigations Areas that could benefit from specific further investigations: • the Event Processing Language may be extended to increase system features (new negation operator, extension of present temporal operators); • the SEDA framework may be extended with a self- tuning module so to optimize exploitation of available resources (e.g., changing number of threads allocated per stage). 19/19 Ivan Zappia, David Parlanti, Federica Paganelli / LiSEP: a Lightweight and Extensible tool for Complex Event
  • 22. LiSEP: a Lightweight and Extensible tool for Complex Event Processing Thanks!