SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
Session 7 - Creating a Context-Aware Solution: Complex Event
Processing with Perseo
Fernando López, Cloud & Platform Senior Expert
fernando.lopez@fiware.org
@flopezaguilar
FIWARE Foundation, e.V.
Learning Goals
1
● What is a Complex Event Processing?
● How to connect Perseo with Orion Context Broker?
● How can I define an event with EPL?
● What are the available acBons?
Overview
2
▪ Context-aware CEP GE
• Listen to events from context information to identify patterns described by rules, and
immediately react by triggering actions.
• Designed to be NGSI-compliant, and thus, to implement systems that works seamless
and jointly with Orion CB.
□ Uses NGSI as communication protocol for events
□ Follows a PUSH model
• Based on Esper CEP
▪ It is focused on Complex Event Processing, not on Stream Processing.
• It defines a rule (query) engine, not a graph engine.
• Rules are set using SQL-like queries (EPL: Event Processing Language)
Introduction to Complex Event Processing
3
▪ Requirement to process events (or messages) in real-time or near real-time.
▪ Key considerations for these types of applications are throughput, latency and the
complexity of the logic required:
• High throughput - applications that process large volumes of messages (between 1,000 to
100k messages per second)
• Low latency - applications that react in real-time to conditions that occur (from a few
milliseconds to a few seconds)
• Complex computations - applications that detect patterns among events (event
correlation), filter events, aggregate time or length windows of events, join event series,
trigger based on absence of events etc.
Introduction to the Esper architecture
▪ Esper is a language, a language compiler and a runtime environment.
▪ Language
• The Esper language is the Event Processing Language (EPL).
• It is a declarative, data-oriented language for dealing with high frequency time-based
event data.
• EPL is compliant to the SQL-92 standard and extended for analyzing series of events
and in respect to time.
▪ Language Compiler
• Compiles EPL source code into Java Virtual Machine (JVM) bytecode.
• The resulting executable code runs on a JVM within the Esper runtime environment.
4
Introduction to the Esper architecture
▪ Runtime
• The Esper runtime runs on top of a JVM.
• You can run byte code produced by the Esper compiler using the Esper runtime.
▪ The Esper architecture is similar to Scala, Clojure and Kotlin.
5
Overview: CEP in FIWARE with Perseo
6
PERSEO
Context-Aware CEP
ACTIONS
RULES
ORION
Context
Broker
EVENTS
NGSI subscription
NGSI
Context
notification
Pattern
matching
REST API
ACTION: NGSI Update Context
ACTION: HTTP
ACTION: SMS
ACTION: EMAIL
ACTION: TWEET
Perseo-fe
Perseo-core
Events
Alarms
Actuate
Sensors
SMART IoT PLATFORM
▪ Repositories
• Perseo Core (https://github.com/telefonicaid/perseo-core)
• Perseo Front-End (https://github.com/telefonicaid/perseo-fe)
▪ Docker images
• Perseo Core (https://hub.docker.com/r/fiware/perseo-core/)
• Perseo Front-End (https://hub.docker.com/r/fiware/perseo/)
Overview: CEP in FIWARE with Perseo
7
Notice vs. Event
▪ Notifications or notices from Context Broker
are processed by Perseo (perseo-fe) before
being sent to its core (perseo-core + Esper)
as events.
▪ They correspond to changes in the values of
an attribute of an entity to which Perseo is
subscribed to.
{
"subscriptionId":"5bfaf6ab27124e3d9b6c0b20",
"data":[{
"id":"streetlight:gothenburg:3",
"type":"Streetlight",
"status":{
"type":"Text",
"value":"ok",
"metadata":{}
},
"dateLastLampChange":{
"type":"DateTime",
"value":"2018-11-20T11:00:00.00Z",
"metadata":{}
},
"address":{
"type":"Address",
"value":{
"addressLocality":"Gothenburg",
"addressCountry":"Sweden",
"postalCode":"425 30",
"streetAddress":"Norra Ligården 1”
},
"metadata":{}
},
"areaServed":{
"type":"Text",
"value":"Karra-Sodra",
"metadata":{}
},
"illuminanceLevel":{
"type":”Number",
"value":”95",
"metadata":{}
},
"powerState":{
"type":"Text",
"value":"off",
"metadata":{}
}
}],
"subservice":"/demo/fiwaresummit19",
"service":”carthage”
}
Notice
8
Notice vs. Event
▪ Notifications or notices from Context Broker
are processed by Perseo (perseo-fe) before
being sent to its core (perseo-core + Esper)
as events.
▪ They correspond to changes in the values of
an attribute of an entity to which Perseo is
subscribed to.
{
"noticeId":"710e8dd0-f15a-11e8-90d5-7fa905f73247",
"noticeTS":1543223138094,
"id":"streetlight:gothenburg:3",
"type":"Streetlight",
"isPattern":false,
"subservice":"/demo/fiwaresummit19",
"service":"carthage",
"status__type":"Text",
"status":"ok",
"address__type":"Address",
"address__addressLocality":"Gothenburg",
"address__addressCountry":"Sweden",
"address__postalCode":"425 30",
"address__streetAddress":"Norra Ligården 1",
"areaServed__type":"Text",
"areaServed":"Karra-Sodra",
"illuminanceLevel __type":"Number",
"illuminanceLevel": 95
"powerState__type":"Text",
"powerState":"off”
}
Event
Restriction:
▪ An attribute cannot be named id or type
9
Events, datatypes and NGSIv2
▪ Perseo flattens the data structures to access the internal values of each data type, and add the
next parsed values in the event. This attributes can be used in the rules individually.
"location__type":"geo:point",
"location__lat":12.0011546,
"location__lon":57.7934324,
"location__x":586374.5004314554,
"location__y":1326805.6699024632,
Location (geo:point, geo:line, geo:box, geo:polygon and geo:json):
"location": {
"type": "geo:point",
"value": "12.0011546, 57.7934324",
"metadata": {}
}
"dateLastLampChange__type": "DateTime",
"dateLastLampChange__iso": 2017-09-10T11:00:00.00Z,
"dateLastLampChange__ts": 1505041200000,
"dateLastLampChange__day": 10,
"dateLastLampChange__month": 9,
"dateLastLampChange__year": 2017,
"dateLastLampChange__hour": 13,
"dateLastLampChange__minute": 0,
"dateLastLampChange__second": 0,
"dateLastLampChange__millisecond": 0,
"dateLastLampChange__dayUTC": 10,
"dateLastLampChange__monthUTC": 9,
"dateLastLampChange__yearUTC": 2017,
"dateLastLampChange__hourUTC": 11,
"dateLastLampChange__minuteUTC": 0,
"dateLastLampChange__secondUTC": 0,
"dateLastLampChange__millisecondUTC": 0,
DateTime:
"dateLastLampChange": {
"type": "DateTime",
"value": "2017-09-10T11:00:00.00Z",
"metadata": {}
}
10
Rules
{
"name":“streetlight_column_alarm",
"text":"select ev.id? as id, ev.status? as laststatus, ev.dateLastLampChange__iso? as lastchange
pattern [every ev=iotEvent(type="Streetlight" and ev.status? = ‘columnIssue’)]",
"action”:{
"type":"update",
"parameters":{
"id":"${id}_alarm_column",
"type”:"StreetlightAlarm",
"version":"2",
"attributes": [
{
"name":"status",
"type":"Text",
"value":"${laststatus}"
},
{
"name":”lastChange",
"type":"DateTime",
"value":"${lastchange}"
}
]
}
}
Rule example. (create/update a StreetlightAlarm entity when a problem is detected in the column/pole)
▪ Perseo rules have three mandatory sections: name, text and action
11
Rules: names
▪ Simple description of the rule.
12
"name":“streetlight_column_alarm”
Name
Rules: text
▪ Based on Esper EPL SQL-like
rules
▪ Pattern matching:
• from pattern
• match_recognize
▪ Event stream called iotEvent
and instanciated as ev
▪ We can use predefined
functions, such as cast(),
avg(), etc…
▪ It is no longer necessary to add
the RuleName in the "text" field
SELECT ev.id? as id, ev.status? as laststatus, ev.areaServed?
as areaServed
FROM pattern
[every ev=iotEvent(type=‘Streetlight’ and ev.status? != ‘ok’)]
EPL using paGern clause
SELECT *
FROM iotEvent(type=‘Streetlight’).win:time(1 minute)
MATCH_RECOGNIZE (
measures A.status? as status
pattern (A B)
define(
A as A.status? != ‘ok’,
B as B.status? != ‘ok’ and
B.id? != A.id)
EPL using match_recognize
13
Rules: actions
Rule actions
▪ Options:
• Update context broker entity
• SMS
• Email
• HTTP invocation
• Send a tweet
▪ We can use placeholders, ${X},
to insert data from the events
"action":”:{
"type":"update",
"parameters":{
"id":"${id}_alarm_column",
"type”:"StreetlightAlarm",
"version":"2",
"attributes": [
{
"name":"status",
"type":"Text",
"value":"${laststatus}"
},
{
"name":”lastChange",
"type":"DateTime",
"value":"${lastchange}"
}
]
}
Update CB entity action
"action": {
"type": "sms",
"template": "${id} status has change to ${laststatus}",
"parameters": {
"to": "123456789"
}}
SMS action
14
Rules: actions
Rule actions
▪ Options:
• Update context broker entity
• SMS
• Email
• HTTP invocation
• Send a tweet
▪ We can use placeholders, ${X},
to insert data from the events
"action": {
"type": "email",
"template": "${id} status has change to ${laststatus}”,
"parameters": {
"to": "someone@fiware.org",
"from": "cep@system.org",
"subject": ”Problems with StreetLamp ${id}. The
status has change to ${laststatus}"
}
}
Email action
15
Rules: actions
Rule actions
▪ Options:
• Update context broker entity
• SMS
• Email
• HTTP invocation
• Send a tweet
▪ We can use placeholders, ${X},
to insert data from the events
"action":{
"type": "post",
"template": "${id} status has change to ${laststatus}",
"parameters":{
"url": "http://localhost:9182/${type}/${id}",
"method": "PUT",
"headers": {
"Content-type": "text/plain",
"X-${type}-status": "${laststatus}"
},
"qs": {
”status": "${laststatus}",
}
}
}
HTTP acLon
16
Rules: actions
Rule actions
▪ Options:
• Update context broker entity
• SMS
• Email
• HTTP invocation
• Send a tweet
▪ We can use placeholders, ${X},
to insert data from the events
"action": {
"type": "twitter",
"template": "${id} status has change to ${laststatus}"
"parameters": {
"consumer_key": "xvz1evFS4wEEPTGEFPHBog",
"consumer_secret":
"L8qq9PZyRg6ieKGEKhZolGC0vJWLw8iEJ88DRdyOg",
"access_token_key": "xvz1evFS4wEEPTGEFPHBog",
"access_token_secret":
"L8qq9PZyRg6ieKGEKhZolGC0vJWLw8iEJ88DRdyOg"
}
}
Tweet acLon
17
Timed Rules
{
"name":”10_sec_timer_rule",
"text":"select * from pattern [every timer:interval(10 sec)]",
"action":{...}
}
Rule example: fires each 10 seconds
{
"name":”2_week_timer_rule",
"text":"select * from pattern [every timer:interval(2 weeks)]",
"action":{...}
}
▪ timer:interval(<number|variable_name> <time-period>)
Rule example: fires each 2 weeks
Time Periods:
• " years" | "year"
• " months" | "month “
• " weeks" | "week“
• "days" | "day“
• "hours" | "hour“
• "minutes" | "minute" | "min“
• "seconds" | "second" | "sec“
• "milliseconds" | "millisecond" | "msec"
18
Timed Rules
▪ timer:at (minutes, hours, days of month, months, days of week [, seconds [, time zone]]).
{
"name":”5_min_past_hour",
"text":"select * from pattern [every timer:at(5, *, *, *, *)]",
"action":{...}
}
Rule example: fires once an hour, at minute five
{
"name":”17_PST",
"text":"select * from pattern [timer:at (0, 17, *, *, *, *, 'PST')]",
"action":{...}
}
Rule example: only fires 1 time at 5:00 pm Pacific Standard Time
19
Timed Rules
▪ timer:schedule(repetitions, date, period)
{
"name":"specific_date",
"text":"select * from pattern[every timer:schedule(repetitions: 2, date: '2018-03-01T13:00:00Z',
period: 1 year 2 month 10 days 2 hours 30 minutes)]",
"action":{...}
}
Rule example: fires 2 times, first callback (2018-03-01 at 13:00:00 UTC) second callback (2019-05-11 at 15:30:00 UTC)
{
"name":"next_minute",
"text":"select * from pattern[every timer:schedule(date: '2019-10-01T05:52:00Z')]",
"action":{...}
}
Rule example: fires on 2019-10-01T05:52:00Z
Note: There are many other kind of timed Esper rules, such as time_batch , ext_timed_batch, match_recognize intervals, etc.
20
Summary: Terms
21
● CEP, Complex Event processing is event processing that combines data from mulBple sources to infer
events or paYerns that suggest more complicated circumstances. (source: Wikipedia).
● Esper is an event stream processor that aims to enable a short development cycle from incepBon to
producBon for these types of applicaBons. (source: EsperTech).
● EPL, Event Processing Language (EPL) defined to be the Esper language and designed for Complex
Event Processing and Streaming AnalyBcs. (source: EsperTech).
References
22
● FIWARE Catalogue
o https://www.fiware.org/developers/catalogue
● FIWARE Academy
o https://fiware-academy.readthedocs.io/en/latest/index.html
● Perseo documentation
o https://perseo.readthedocs.io/en/latest/
References
23
● GitHub repos
o Perseo Core (https://github.com/telefonicaid/perseo-core)
o Perseo Front-End (https://github.com/telefonicaid/perseo-fe)
● Docker images
o Perseo Core (https://hub.docker.com/r/fiware/perseo-core)
o Perseo Front-End (https://hub.docker.com/r/fiware/perseo)
● Esper Doc
o http://esper.espertech.com/release-7.1.0/esper-reference/html/index.html
Question & Answer
24
fiware-tech-help@lists.fiware.org
2
6

Más contenido relacionado

La actualidad más candente

FIWARE: Managing Context Information at large scale
FIWARE: Managing Context Information at large scaleFIWARE: Managing Context Information at large scale
FIWARE: Managing Context Information at large scaleFermin Galan
 
FIWARE Training: JSON-LD and NGSI-LD
FIWARE Training: JSON-LD and NGSI-LDFIWARE Training: JSON-LD and NGSI-LD
FIWARE Training: JSON-LD and NGSI-LDFIWARE
 
Orion Context Broker NGSI-v2 Overview for Developers That Already Know NGSI-v...
Orion Context Broker NGSI-v2 Overview for Developers That Already Know NGSI-v...Orion Context Broker NGSI-v2 Overview for Developers That Already Know NGSI-v...
Orion Context Broker NGSI-v2 Overview for Developers That Already Know NGSI-v...Fermin Galan
 
Big Data and Machine Learning with FIWARE
Big Data and Machine Learning with FIWAREBig Data and Machine Learning with FIWARE
Big Data and Machine Learning with FIWAREFernando Lopez Aguilar
 
FIWARE Wednesday Webinars - Performing Big Data Analysis Using Cosmos With Sp...
FIWARE Wednesday Webinars - Performing Big Data Analysis Using Cosmos With Sp...FIWARE Wednesday Webinars - Performing Big Data Analysis Using Cosmos With Sp...
FIWARE Wednesday Webinars - Performing Big Data Analysis Using Cosmos With Sp...FIWARE
 
A short introduction to Canis Major
A short introduction to Canis MajorA short introduction to Canis Major
A short introduction to Canis MajorFIWARE
 
Session 5 - NGSI-LD Advanced Operations | Train the Trainers Program
Session 5 -  NGSI-LD Advanced Operations | Train the Trainers ProgramSession 5 -  NGSI-LD Advanced Operations | Train the Trainers Program
Session 5 - NGSI-LD Advanced Operations | Train the Trainers ProgramFIWARE
 
Kong, Keyrock, Keycloak, i4Trust - Options to Secure FIWARE in Production
Kong, Keyrock, Keycloak, i4Trust - Options to Secure FIWARE in ProductionKong, Keyrock, Keycloak, i4Trust - Options to Secure FIWARE in Production
Kong, Keyrock, Keycloak, i4Trust - Options to Secure FIWARE in ProductionFIWARE
 
Orion Context Broker 20220526
Orion Context Broker 20220526Orion Context Broker 20220526
Orion Context Broker 20220526Fermin Galan
 
FIWARE Training: API Umbrella
FIWARE Training: API UmbrellaFIWARE Training: API Umbrella
FIWARE Training: API UmbrellaFIWARE
 
Session 2 - NGSI-LD primer & Smart Data Models | Train the Trainers Program
Session 2 - NGSI-LD primer & Smart Data Models | Train the Trainers ProgramSession 2 - NGSI-LD primer & Smart Data Models | Train the Trainers Program
Session 2 - NGSI-LD primer & Smart Data Models | Train the Trainers ProgramFIWARE
 
FIWARE Training: NGSI-LD Advanced Operations
FIWARE Training: NGSI-LD Advanced OperationsFIWARE Training: NGSI-LD Advanced Operations
FIWARE Training: NGSI-LD Advanced OperationsFIWARE
 
FIWARE Global Summit - FogFlow, a new GE for IoT Edge Computing
FIWARE Global Summit - FogFlow, a new GE for IoT Edge ComputingFIWARE Global Summit - FogFlow, a new GE for IoT Edge Computing
FIWARE Global Summit - FogFlow, a new GE for IoT Edge ComputingFIWARE
 
NGSI-LD Introduction
NGSI-LD IntroductionNGSI-LD Introduction
NGSI-LD IntroductionFIWARE
 
FIWARE Tech Summit - FIWARE Cygnus and STH-Comet
FIWARE Tech Summit - FIWARE Cygnus and STH-CometFIWARE Tech Summit - FIWARE Cygnus and STH-Comet
FIWARE Tech Summit - FIWARE Cygnus and STH-CometFIWARE
 
FIWARE Wednesday Webinars - Core Context Management
FIWARE Wednesday Webinars - Core Context ManagementFIWARE Wednesday Webinars - Core Context Management
FIWARE Wednesday Webinars - Core Context ManagementFIWARE
 
FIWARE Wednesday Webinars - NGSI-LD and Smart Data Models: Standard Access to...
FIWARE Wednesday Webinars - NGSI-LD and Smart Data Models: Standard Access to...FIWARE Wednesday Webinars - NGSI-LD and Smart Data Models: Standard Access to...
FIWARE Wednesday Webinars - NGSI-LD and Smart Data Models: Standard Access to...FIWARE
 
Orion Context Broker 20221220
Orion Context Broker 20221220Orion Context Broker 20221220
Orion Context Broker 20221220Fermin Galan
 

La actualidad más candente (20)

FIWARE: Managing Context Information at large scale
FIWARE: Managing Context Information at large scaleFIWARE: Managing Context Information at large scale
FIWARE: Managing Context Information at large scale
 
FIWARE Training: JSON-LD and NGSI-LD
FIWARE Training: JSON-LD and NGSI-LDFIWARE Training: JSON-LD and NGSI-LD
FIWARE Training: JSON-LD and NGSI-LD
 
Orion Context Broker NGSI-v2 Overview for Developers That Already Know NGSI-v...
Orion Context Broker NGSI-v2 Overview for Developers That Already Know NGSI-v...Orion Context Broker NGSI-v2 Overview for Developers That Already Know NGSI-v...
Orion Context Broker NGSI-v2 Overview for Developers That Already Know NGSI-v...
 
FIWARE and Smart Data Models
FIWARE and Smart Data ModelsFIWARE and Smart Data Models
FIWARE and Smart Data Models
 
Big Data and Machine Learning with FIWARE
Big Data and Machine Learning with FIWAREBig Data and Machine Learning with FIWARE
Big Data and Machine Learning with FIWARE
 
Data Modeling with NGSI, NGSI-LD
Data Modeling with NGSI, NGSI-LDData Modeling with NGSI, NGSI-LD
Data Modeling with NGSI, NGSI-LD
 
FIWARE Wednesday Webinars - Performing Big Data Analysis Using Cosmos With Sp...
FIWARE Wednesday Webinars - Performing Big Data Analysis Using Cosmos With Sp...FIWARE Wednesday Webinars - Performing Big Data Analysis Using Cosmos With Sp...
FIWARE Wednesday Webinars - Performing Big Data Analysis Using Cosmos With Sp...
 
A short introduction to Canis Major
A short introduction to Canis MajorA short introduction to Canis Major
A short introduction to Canis Major
 
Session 5 - NGSI-LD Advanced Operations | Train the Trainers Program
Session 5 -  NGSI-LD Advanced Operations | Train the Trainers ProgramSession 5 -  NGSI-LD Advanced Operations | Train the Trainers Program
Session 5 - NGSI-LD Advanced Operations | Train the Trainers Program
 
Kong, Keyrock, Keycloak, i4Trust - Options to Secure FIWARE in Production
Kong, Keyrock, Keycloak, i4Trust - Options to Secure FIWARE in ProductionKong, Keyrock, Keycloak, i4Trust - Options to Secure FIWARE in Production
Kong, Keyrock, Keycloak, i4Trust - Options to Secure FIWARE in Production
 
Orion Context Broker 20220526
Orion Context Broker 20220526Orion Context Broker 20220526
Orion Context Broker 20220526
 
FIWARE Training: API Umbrella
FIWARE Training: API UmbrellaFIWARE Training: API Umbrella
FIWARE Training: API Umbrella
 
Session 2 - NGSI-LD primer & Smart Data Models | Train the Trainers Program
Session 2 - NGSI-LD primer & Smart Data Models | Train the Trainers ProgramSession 2 - NGSI-LD primer & Smart Data Models | Train the Trainers Program
Session 2 - NGSI-LD primer & Smart Data Models | Train the Trainers Program
 
FIWARE Training: NGSI-LD Advanced Operations
FIWARE Training: NGSI-LD Advanced OperationsFIWARE Training: NGSI-LD Advanced Operations
FIWARE Training: NGSI-LD Advanced Operations
 
FIWARE Global Summit - FogFlow, a new GE for IoT Edge Computing
FIWARE Global Summit - FogFlow, a new GE for IoT Edge ComputingFIWARE Global Summit - FogFlow, a new GE for IoT Edge Computing
FIWARE Global Summit - FogFlow, a new GE for IoT Edge Computing
 
NGSI-LD Introduction
NGSI-LD IntroductionNGSI-LD Introduction
NGSI-LD Introduction
 
FIWARE Tech Summit - FIWARE Cygnus and STH-Comet
FIWARE Tech Summit - FIWARE Cygnus and STH-CometFIWARE Tech Summit - FIWARE Cygnus and STH-Comet
FIWARE Tech Summit - FIWARE Cygnus and STH-Comet
 
FIWARE Wednesday Webinars - Core Context Management
FIWARE Wednesday Webinars - Core Context ManagementFIWARE Wednesday Webinars - Core Context Management
FIWARE Wednesday Webinars - Core Context Management
 
FIWARE Wednesday Webinars - NGSI-LD and Smart Data Models: Standard Access to...
FIWARE Wednesday Webinars - NGSI-LD and Smart Data Models: Standard Access to...FIWARE Wednesday Webinars - NGSI-LD and Smart Data Models: Standard Access to...
FIWARE Wednesday Webinars - NGSI-LD and Smart Data Models: Standard Access to...
 
Orion Context Broker 20221220
Orion Context Broker 20221220Orion Context Broker 20221220
Orion Context Broker 20221220
 

Similar a Creating a Context-Aware solution, Complex Event Processing with FIWARE Perseo

FIWARE Tech Summit - Complex Event Processing in FIWARE
FIWARE Tech Summit - Complex Event Processing in FIWAREFIWARE Tech Summit - Complex Event Processing in FIWARE
FIWARE Tech Summit - Complex Event Processing in FIWAREFIWARE
 
S4: Distributed Stream Computing Platform
S4: Distributed Stream Computing PlatformS4: Distributed Stream Computing Platform
S4: Distributed Stream Computing PlatformAleksandar Bradic
 
Complex Event Processor 3.0.0 - An overview of upcoming features
Complex Event Processor 3.0.0 - An overview of upcoming features Complex Event Processor 3.0.0 - An overview of upcoming features
Complex Event Processor 3.0.0 - An overview of upcoming features WSO2
 
Complex Event Processing: What?, Why?, How?
Complex Event Processing: What?, Why?, How?Complex Event Processing: What?, Why?, How?
Complex Event Processing: What?, Why?, How?Alexandre Vasseur
 
Complex Event Processing - A brief overview
Complex Event Processing - A brief overviewComplex Event Processing - A brief overview
Complex Event Processing - A brief overviewIstván Dávid
 
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...Puppet
 
Logisland "Event Mining at scale"
Logisland "Event Mining at scale"Logisland "Event Mining at scale"
Logisland "Event Mining at scale"Thomas Bailet
 
Overview Of Parallel Development - Ericnel
Overview Of Parallel Development -  EricnelOverview Of Parallel Development -  Ericnel
Overview Of Parallel Development - Ericnelukdpe
 
Flink Forward San Francisco 2018: David Reniz & Dahyr Vergara - "Real-time m...
Flink Forward San Francisco 2018:  David Reniz & Dahyr Vergara - "Real-time m...Flink Forward San Francisco 2018:  David Reniz & Dahyr Vergara - "Real-time m...
Flink Forward San Francisco 2018: David Reniz & Dahyr Vergara - "Real-time m...Flink Forward
 
Complex Event Processing with Esper
Complex Event Processing with EsperComplex Event Processing with Esper
Complex Event Processing with EsperTed Won
 
Apache Avro in LivePerson [Hebrew]
Apache Avro in LivePerson [Hebrew]Apache Avro in LivePerson [Hebrew]
Apache Avro in LivePerson [Hebrew]LivePerson
 
FIWARE CEP GE introduction, ICT 2015
FIWARE CEP GE introduction, ICT 2015FIWARE CEP GE introduction, ICT 2015
FIWARE CEP GE introduction, ICT 2015ishkin
 
WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor
WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor
WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor WSO2
 
WSO2 Product Release Webinar - WSO2 Complex Event Processor
WSO2 Product Release Webinar - WSO2 Complex Event ProcessorWSO2 Product Release Webinar - WSO2 Complex Event Processor
WSO2 Product Release Webinar - WSO2 Complex Event ProcessorWSO2
 
Swift profiling middleware and tools
Swift profiling middleware and toolsSwift profiling middleware and tools
Swift profiling middleware and toolszhang hua
 
eBay Pulsar: Real-time analytics platform
eBay Pulsar: Real-time analytics platformeBay Pulsar: Real-time analytics platform
eBay Pulsar: Real-time analytics platformKyoungMo Yang
 
Enabling Ad-hoc Business Process Adaptations through Event-driven Task Decoup...
Enabling Ad-hoc Business Process Adaptations through Event-driven Task Decoup...Enabling Ad-hoc Business Process Adaptations through Event-driven Task Decoup...
Enabling Ad-hoc Business Process Adaptations through Event-driven Task Decoup...Malinda Kapuruge
 
Complex Event Processing with Esper
Complex Event Processing with EsperComplex Event Processing with Esper
Complex Event Processing with EsperTed Won
 
When GenAI meets with Java with Quarkus and langchain4j
When GenAI meets with Java with Quarkus and langchain4jWhen GenAI meets with Java with Quarkus and langchain4j
When GenAI meets with Java with Quarkus and langchain4jJean-Francois James
 

Similar a Creating a Context-Aware solution, Complex Event Processing with FIWARE Perseo (20)

FIWARE Tech Summit - Complex Event Processing in FIWARE
FIWARE Tech Summit - Complex Event Processing in FIWAREFIWARE Tech Summit - Complex Event Processing in FIWARE
FIWARE Tech Summit - Complex Event Processing in FIWARE
 
S4: Distributed Stream Computing Platform
S4: Distributed Stream Computing PlatformS4: Distributed Stream Computing Platform
S4: Distributed Stream Computing Platform
 
Complex Event Processor 3.0.0 - An overview of upcoming features
Complex Event Processor 3.0.0 - An overview of upcoming features Complex Event Processor 3.0.0 - An overview of upcoming features
Complex Event Processor 3.0.0 - An overview of upcoming features
 
Complex Event Processing: What?, Why?, How?
Complex Event Processing: What?, Why?, How?Complex Event Processing: What?, Why?, How?
Complex Event Processing: What?, Why?, How?
 
Complex Event Processing - A brief overview
Complex Event Processing - A brief overviewComplex Event Processing - A brief overview
Complex Event Processing - A brief overview
 
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
Exploring the Final Frontier of Data Center Orchestration: Network Elements -...
 
Logisland "Event Mining at scale"
Logisland "Event Mining at scale"Logisland "Event Mining at scale"
Logisland "Event Mining at scale"
 
Overview Of Parallel Development - Ericnel
Overview Of Parallel Development -  EricnelOverview Of Parallel Development -  Ericnel
Overview Of Parallel Development - Ericnel
 
Flink Forward San Francisco 2018: David Reniz & Dahyr Vergara - "Real-time m...
Flink Forward San Francisco 2018:  David Reniz & Dahyr Vergara - "Real-time m...Flink Forward San Francisco 2018:  David Reniz & Dahyr Vergara - "Real-time m...
Flink Forward San Francisco 2018: David Reniz & Dahyr Vergara - "Real-time m...
 
Complex Event Processing with Esper
Complex Event Processing with EsperComplex Event Processing with Esper
Complex Event Processing with Esper
 
Apache Avro in LivePerson [Hebrew]
Apache Avro in LivePerson [Hebrew]Apache Avro in LivePerson [Hebrew]
Apache Avro in LivePerson [Hebrew]
 
FIWARE CEP GE introduction, ICT 2015
FIWARE CEP GE introduction, ICT 2015FIWARE CEP GE introduction, ICT 2015
FIWARE CEP GE introduction, ICT 2015
 
WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor
WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor
WSO2 Product Release Webinar - Introducing the WSO2 Complex Event Processor
 
WSO2 Product Release Webinar - WSO2 Complex Event Processor
WSO2 Product Release Webinar - WSO2 Complex Event ProcessorWSO2 Product Release Webinar - WSO2 Complex Event Processor
WSO2 Product Release Webinar - WSO2 Complex Event Processor
 
Swift profiling middleware and tools
Swift profiling middleware and toolsSwift profiling middleware and tools
Swift profiling middleware and tools
 
eBay Pulsar: Real-time analytics platform
eBay Pulsar: Real-time analytics platformeBay Pulsar: Real-time analytics platform
eBay Pulsar: Real-time analytics platform
 
Enabling Ad-hoc Business Process Adaptations through Event-driven Task Decoup...
Enabling Ad-hoc Business Process Adaptations through Event-driven Task Decoup...Enabling Ad-hoc Business Process Adaptations through Event-driven Task Decoup...
Enabling Ad-hoc Business Process Adaptations through Event-driven Task Decoup...
 
Complex Event Processing with Esper
Complex Event Processing with EsperComplex Event Processing with Esper
Complex Event Processing with Esper
 
When GenAI meets with Java with Quarkus and langchain4j
When GenAI meets with Java with Quarkus and langchain4jWhen GenAI meets with Java with Quarkus and langchain4j
When GenAI meets with Java with Quarkus and langchain4j
 
OneTeam Media Server
OneTeam Media ServerOneTeam Media Server
OneTeam Media Server
 

Más de Fernando Lopez Aguilar

Building the Smart City Platform on FIWARE Lab
Building the Smart City Platform on FIWARE LabBuilding the Smart City Platform on FIWARE Lab
Building the Smart City Platform on FIWARE LabFernando Lopez Aguilar
 
Operational Dashboards with FIWARE WireCloud
Operational Dashboards with FIWARE WireCloudOperational Dashboards with FIWARE WireCloud
Operational Dashboards with FIWARE WireCloudFernando Lopez Aguilar
 
FIWARE Identity Management and Access Control
FIWARE Identity Management and Access ControlFIWARE Identity Management and Access Control
FIWARE Identity Management and Access ControlFernando Lopez Aguilar
 
Cloud and Big Data in the agriculture sector
Cloud and Big Data in the agriculture sectorCloud and Big Data in the agriculture sector
Cloud and Big Data in the agriculture sectorFernando Lopez Aguilar
 
Context Information Management in IoT enabled smart systems - the basics
Context Information Management in IoT enabled smart systems - the basicsContext Information Management in IoT enabled smart systems - the basics
Context Information Management in IoT enabled smart systems - the basicsFernando Lopez Aguilar
 
Setting up your virtual infrastructure using FIWARE Lab Cloud
Setting up your virtual infrastructure using FIWARE Lab CloudSetting up your virtual infrastructure using FIWARE Lab Cloud
Setting up your virtual infrastructure using FIWARE Lab CloudFernando Lopez Aguilar
 
Connecting to the internet of things (IoT)
Connecting to the internet of things (IoT)Connecting to the internet of things (IoT)
Connecting to the internet of things (IoT)Fernando Lopez Aguilar
 

Más de Fernando Lopez Aguilar (20)

Introduction to FIWARE technology
Introduction to FIWARE  technologyIntroduction to FIWARE  technology
Introduction to FIWARE technology
 
DW2020 Data Models - FIWARE Platform
DW2020 Data Models - FIWARE PlatformDW2020 Data Models - FIWARE Platform
DW2020 Data Models - FIWARE Platform
 
How to deploy a smart city platform?
How to deploy a smart city platform?How to deploy a smart city platform?
How to deploy a smart city platform?
 
Building the Smart City Platform on FIWARE Lab
Building the Smart City Platform on FIWARE LabBuilding the Smart City Platform on FIWARE Lab
Building the Smart City Platform on FIWARE Lab
 
FIWARE and Robotics
FIWARE and RoboticsFIWARE and Robotics
FIWARE and Robotics
 
Operational Dashboards with FIWARE WireCloud
Operational Dashboards with FIWARE WireCloudOperational Dashboards with FIWARE WireCloud
Operational Dashboards with FIWARE WireCloud
 
FIWARE Identity Management and Access Control
FIWARE Identity Management and Access ControlFIWARE Identity Management and Access Control
FIWARE Identity Management and Access Control
 
How to debug IoT Agents
How to debug IoT AgentsHow to debug IoT Agents
How to debug IoT Agents
 
Core Context Management
Core Context ManagementCore Context Management
Core Context Management
 
What is an IoT Agent
What is an IoT AgentWhat is an IoT Agent
What is an IoT Agent
 
FIWARE Overview
FIWARE OverviewFIWARE Overview
FIWARE Overview
 
Overview of the FIWARE Ecosystem
Overview of the FIWARE EcosystemOverview of the FIWARE Ecosystem
Overview of the FIWARE Ecosystem
 
Cloud and Big Data in the agriculture sector
Cloud and Big Data in the agriculture sectorCloud and Big Data in the agriculture sector
Cloud and Big Data in the agriculture sector
 
Berlin OpenStack Summit'18
Berlin OpenStack Summit'18Berlin OpenStack Summit'18
Berlin OpenStack Summit'18
 
Context Information Management in IoT enabled smart systems - the basics
Context Information Management in IoT enabled smart systems - the basicsContext Information Management in IoT enabled smart systems - the basics
Context Information Management in IoT enabled smart systems - the basics
 
FIWARE IoT Introduction 1
FIWARE IoT Introduction 1FIWARE IoT Introduction 1
FIWARE IoT Introduction 1
 
Introduction to FIWARE IoT
Introduction to FIWARE IoTIntroduction to FIWARE IoT
Introduction to FIWARE IoT
 
Setting up your virtual infrastructure using FIWARE Lab Cloud
Setting up your virtual infrastructure using FIWARE Lab CloudSetting up your virtual infrastructure using FIWARE Lab Cloud
Setting up your virtual infrastructure using FIWARE Lab Cloud
 
Connecting to the internet of things (IoT)
Connecting to the internet of things (IoT)Connecting to the internet of things (IoT)
Connecting to the internet of things (IoT)
 
Fiware, the future internet
Fiware, the future internetFiware, the future internet
Fiware, the future internet
 

Último

Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...gajnagarg
 
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsRussian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsMonica Sydney
 
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrStory Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrHenryBriggs2
 
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency""Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency"growthgrids
 
Abu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Abu Dhabi Escorts Service 0508644382 Escorts in Abu DhabiAbu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Abu Dhabi Escorts Service 0508644382 Escorts in Abu DhabiMonica Sydney
 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdfMatthew Sinclair
 
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime NagercoilNagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoilmeghakumariji156
 
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制pxcywzqs
 
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC
 
Local Call Girls in Seoni 9332606886 HOT & SEXY Models beautiful and charmin...
Local Call Girls in Seoni  9332606886 HOT & SEXY Models beautiful and charmin...Local Call Girls in Seoni  9332606886 HOT & SEXY Models beautiful and charmin...
Local Call Girls in Seoni 9332606886 HOT & SEXY Models beautiful and charmin...kumargunjan9515
 
Mira Road Housewife Call Girls 07506202331, Nalasopara Call Girls
Mira Road Housewife Call Girls 07506202331, Nalasopara Call GirlsMira Road Housewife Call Girls 07506202331, Nalasopara Call Girls
Mira Road Housewife Call Girls 07506202331, Nalasopara Call GirlsPriya Reddy
 
Call girls Service in Ajman 0505086370 Ajman call girls
Call girls Service in Ajman 0505086370 Ajman call girlsCall girls Service in Ajman 0505086370 Ajman call girls
Call girls Service in Ajman 0505086370 Ajman call girlsMonica Sydney
 
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...kajalverma014
 
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查ydyuyu
 
Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.krishnachandrapal52
 
一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理F
 
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查ydyuyu
 
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdfMatthew Sinclair
 
Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirtrahman018755
 

Último (20)

Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
 
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsRussian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
 
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrStory Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
 
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency""Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
 
Abu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Abu Dhabi Escorts Service 0508644382 Escorts in Abu DhabiAbu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Abu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf
 
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime NagercoilNagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
 
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
 
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
 
Local Call Girls in Seoni 9332606886 HOT & SEXY Models beautiful and charmin...
Local Call Girls in Seoni  9332606886 HOT & SEXY Models beautiful and charmin...Local Call Girls in Seoni  9332606886 HOT & SEXY Models beautiful and charmin...
Local Call Girls in Seoni 9332606886 HOT & SEXY Models beautiful and charmin...
 
Mira Road Housewife Call Girls 07506202331, Nalasopara Call Girls
Mira Road Housewife Call Girls 07506202331, Nalasopara Call GirlsMira Road Housewife Call Girls 07506202331, Nalasopara Call Girls
Mira Road Housewife Call Girls 07506202331, Nalasopara Call Girls
 
Call girls Service in Ajman 0505086370 Ajman call girls
Call girls Service in Ajman 0505086370 Ajman call girlsCall girls Service in Ajman 0505086370 Ajman call girls
Call girls Service in Ajman 0505086370 Ajman call girls
 
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
 
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
 
Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.
 
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
 
一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理
 
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
 
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
 
Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirt
 

Creating a Context-Aware solution, Complex Event Processing with FIWARE Perseo

  • 1. Session 7 - Creating a Context-Aware Solution: Complex Event Processing with Perseo Fernando López, Cloud & Platform Senior Expert fernando.lopez@fiware.org @flopezaguilar FIWARE Foundation, e.V.
  • 2. Learning Goals 1 ● What is a Complex Event Processing? ● How to connect Perseo with Orion Context Broker? ● How can I define an event with EPL? ● What are the available acBons?
  • 3. Overview 2 ▪ Context-aware CEP GE • Listen to events from context information to identify patterns described by rules, and immediately react by triggering actions. • Designed to be NGSI-compliant, and thus, to implement systems that works seamless and jointly with Orion CB. □ Uses NGSI as communication protocol for events □ Follows a PUSH model • Based on Esper CEP ▪ It is focused on Complex Event Processing, not on Stream Processing. • It defines a rule (query) engine, not a graph engine. • Rules are set using SQL-like queries (EPL: Event Processing Language)
  • 4. Introduction to Complex Event Processing 3 ▪ Requirement to process events (or messages) in real-time or near real-time. ▪ Key considerations for these types of applications are throughput, latency and the complexity of the logic required: • High throughput - applications that process large volumes of messages (between 1,000 to 100k messages per second) • Low latency - applications that react in real-time to conditions that occur (from a few milliseconds to a few seconds) • Complex computations - applications that detect patterns among events (event correlation), filter events, aggregate time or length windows of events, join event series, trigger based on absence of events etc.
  • 5. Introduction to the Esper architecture ▪ Esper is a language, a language compiler and a runtime environment. ▪ Language • The Esper language is the Event Processing Language (EPL). • It is a declarative, data-oriented language for dealing with high frequency time-based event data. • EPL is compliant to the SQL-92 standard and extended for analyzing series of events and in respect to time. ▪ Language Compiler • Compiles EPL source code into Java Virtual Machine (JVM) bytecode. • The resulting executable code runs on a JVM within the Esper runtime environment. 4
  • 6. Introduction to the Esper architecture ▪ Runtime • The Esper runtime runs on top of a JVM. • You can run byte code produced by the Esper compiler using the Esper runtime. ▪ The Esper architecture is similar to Scala, Clojure and Kotlin. 5
  • 7. Overview: CEP in FIWARE with Perseo 6 PERSEO Context-Aware CEP ACTIONS RULES ORION Context Broker EVENTS NGSI subscription NGSI Context notification Pattern matching REST API ACTION: NGSI Update Context ACTION: HTTP ACTION: SMS ACTION: EMAIL ACTION: TWEET Perseo-fe Perseo-core Events Alarms Actuate Sensors SMART IoT PLATFORM
  • 8. ▪ Repositories • Perseo Core (https://github.com/telefonicaid/perseo-core) • Perseo Front-End (https://github.com/telefonicaid/perseo-fe) ▪ Docker images • Perseo Core (https://hub.docker.com/r/fiware/perseo-core/) • Perseo Front-End (https://hub.docker.com/r/fiware/perseo/) Overview: CEP in FIWARE with Perseo 7
  • 9. Notice vs. Event ▪ Notifications or notices from Context Broker are processed by Perseo (perseo-fe) before being sent to its core (perseo-core + Esper) as events. ▪ They correspond to changes in the values of an attribute of an entity to which Perseo is subscribed to. { "subscriptionId":"5bfaf6ab27124e3d9b6c0b20", "data":[{ "id":"streetlight:gothenburg:3", "type":"Streetlight", "status":{ "type":"Text", "value":"ok", "metadata":{} }, "dateLastLampChange":{ "type":"DateTime", "value":"2018-11-20T11:00:00.00Z", "metadata":{} }, "address":{ "type":"Address", "value":{ "addressLocality":"Gothenburg", "addressCountry":"Sweden", "postalCode":"425 30", "streetAddress":"Norra Ligården 1” }, "metadata":{} }, "areaServed":{ "type":"Text", "value":"Karra-Sodra", "metadata":{} }, "illuminanceLevel":{ "type":”Number", "value":”95", "metadata":{} }, "powerState":{ "type":"Text", "value":"off", "metadata":{} } }], "subservice":"/demo/fiwaresummit19", "service":”carthage” } Notice 8
  • 10. Notice vs. Event ▪ Notifications or notices from Context Broker are processed by Perseo (perseo-fe) before being sent to its core (perseo-core + Esper) as events. ▪ They correspond to changes in the values of an attribute of an entity to which Perseo is subscribed to. { "noticeId":"710e8dd0-f15a-11e8-90d5-7fa905f73247", "noticeTS":1543223138094, "id":"streetlight:gothenburg:3", "type":"Streetlight", "isPattern":false, "subservice":"/demo/fiwaresummit19", "service":"carthage", "status__type":"Text", "status":"ok", "address__type":"Address", "address__addressLocality":"Gothenburg", "address__addressCountry":"Sweden", "address__postalCode":"425 30", "address__streetAddress":"Norra Ligården 1", "areaServed__type":"Text", "areaServed":"Karra-Sodra", "illuminanceLevel __type":"Number", "illuminanceLevel": 95 "powerState__type":"Text", "powerState":"off” } Event Restriction: ▪ An attribute cannot be named id or type 9
  • 11. Events, datatypes and NGSIv2 ▪ Perseo flattens the data structures to access the internal values of each data type, and add the next parsed values in the event. This attributes can be used in the rules individually. "location__type":"geo:point", "location__lat":12.0011546, "location__lon":57.7934324, "location__x":586374.5004314554, "location__y":1326805.6699024632, Location (geo:point, geo:line, geo:box, geo:polygon and geo:json): "location": { "type": "geo:point", "value": "12.0011546, 57.7934324", "metadata": {} } "dateLastLampChange__type": "DateTime", "dateLastLampChange__iso": 2017-09-10T11:00:00.00Z, "dateLastLampChange__ts": 1505041200000, "dateLastLampChange__day": 10, "dateLastLampChange__month": 9, "dateLastLampChange__year": 2017, "dateLastLampChange__hour": 13, "dateLastLampChange__minute": 0, "dateLastLampChange__second": 0, "dateLastLampChange__millisecond": 0, "dateLastLampChange__dayUTC": 10, "dateLastLampChange__monthUTC": 9, "dateLastLampChange__yearUTC": 2017, "dateLastLampChange__hourUTC": 11, "dateLastLampChange__minuteUTC": 0, "dateLastLampChange__secondUTC": 0, "dateLastLampChange__millisecondUTC": 0, DateTime: "dateLastLampChange": { "type": "DateTime", "value": "2017-09-10T11:00:00.00Z", "metadata": {} } 10
  • 12. Rules { "name":“streetlight_column_alarm", "text":"select ev.id? as id, ev.status? as laststatus, ev.dateLastLampChange__iso? as lastchange pattern [every ev=iotEvent(type="Streetlight" and ev.status? = ‘columnIssue’)]", "action”:{ "type":"update", "parameters":{ "id":"${id}_alarm_column", "type”:"StreetlightAlarm", "version":"2", "attributes": [ { "name":"status", "type":"Text", "value":"${laststatus}" }, { "name":”lastChange", "type":"DateTime", "value":"${lastchange}" } ] } } Rule example. (create/update a StreetlightAlarm entity when a problem is detected in the column/pole) ▪ Perseo rules have three mandatory sections: name, text and action 11
  • 13. Rules: names ▪ Simple description of the rule. 12 "name":“streetlight_column_alarm” Name
  • 14. Rules: text ▪ Based on Esper EPL SQL-like rules ▪ Pattern matching: • from pattern • match_recognize ▪ Event stream called iotEvent and instanciated as ev ▪ We can use predefined functions, such as cast(), avg(), etc… ▪ It is no longer necessary to add the RuleName in the "text" field SELECT ev.id? as id, ev.status? as laststatus, ev.areaServed? as areaServed FROM pattern [every ev=iotEvent(type=‘Streetlight’ and ev.status? != ‘ok’)] EPL using paGern clause SELECT * FROM iotEvent(type=‘Streetlight’).win:time(1 minute) MATCH_RECOGNIZE ( measures A.status? as status pattern (A B) define( A as A.status? != ‘ok’, B as B.status? != ‘ok’ and B.id? != A.id) EPL using match_recognize 13
  • 15. Rules: actions Rule actions ▪ Options: • Update context broker entity • SMS • Email • HTTP invocation • Send a tweet ▪ We can use placeholders, ${X}, to insert data from the events "action":”:{ "type":"update", "parameters":{ "id":"${id}_alarm_column", "type”:"StreetlightAlarm", "version":"2", "attributes": [ { "name":"status", "type":"Text", "value":"${laststatus}" }, { "name":”lastChange", "type":"DateTime", "value":"${lastchange}" } ] } Update CB entity action "action": { "type": "sms", "template": "${id} status has change to ${laststatus}", "parameters": { "to": "123456789" }} SMS action 14
  • 16. Rules: actions Rule actions ▪ Options: • Update context broker entity • SMS • Email • HTTP invocation • Send a tweet ▪ We can use placeholders, ${X}, to insert data from the events "action": { "type": "email", "template": "${id} status has change to ${laststatus}”, "parameters": { "to": "someone@fiware.org", "from": "cep@system.org", "subject": ”Problems with StreetLamp ${id}. The status has change to ${laststatus}" } } Email action 15
  • 17. Rules: actions Rule actions ▪ Options: • Update context broker entity • SMS • Email • HTTP invocation • Send a tweet ▪ We can use placeholders, ${X}, to insert data from the events "action":{ "type": "post", "template": "${id} status has change to ${laststatus}", "parameters":{ "url": "http://localhost:9182/${type}/${id}", "method": "PUT", "headers": { "Content-type": "text/plain", "X-${type}-status": "${laststatus}" }, "qs": { ”status": "${laststatus}", } } } HTTP acLon 16
  • 18. Rules: actions Rule actions ▪ Options: • Update context broker entity • SMS • Email • HTTP invocation • Send a tweet ▪ We can use placeholders, ${X}, to insert data from the events "action": { "type": "twitter", "template": "${id} status has change to ${laststatus}" "parameters": { "consumer_key": "xvz1evFS4wEEPTGEFPHBog", "consumer_secret": "L8qq9PZyRg6ieKGEKhZolGC0vJWLw8iEJ88DRdyOg", "access_token_key": "xvz1evFS4wEEPTGEFPHBog", "access_token_secret": "L8qq9PZyRg6ieKGEKhZolGC0vJWLw8iEJ88DRdyOg" } } Tweet acLon 17
  • 19. Timed Rules { "name":”10_sec_timer_rule", "text":"select * from pattern [every timer:interval(10 sec)]", "action":{...} } Rule example: fires each 10 seconds { "name":”2_week_timer_rule", "text":"select * from pattern [every timer:interval(2 weeks)]", "action":{...} } ▪ timer:interval(<number|variable_name> <time-period>) Rule example: fires each 2 weeks Time Periods: • " years" | "year" • " months" | "month “ • " weeks" | "week“ • "days" | "day“ • "hours" | "hour“ • "minutes" | "minute" | "min“ • "seconds" | "second" | "sec“ • "milliseconds" | "millisecond" | "msec" 18
  • 20. Timed Rules ▪ timer:at (minutes, hours, days of month, months, days of week [, seconds [, time zone]]). { "name":”5_min_past_hour", "text":"select * from pattern [every timer:at(5, *, *, *, *)]", "action":{...} } Rule example: fires once an hour, at minute five { "name":”17_PST", "text":"select * from pattern [timer:at (0, 17, *, *, *, *, 'PST')]", "action":{...} } Rule example: only fires 1 time at 5:00 pm Pacific Standard Time 19
  • 21. Timed Rules ▪ timer:schedule(repetitions, date, period) { "name":"specific_date", "text":"select * from pattern[every timer:schedule(repetitions: 2, date: '2018-03-01T13:00:00Z', period: 1 year 2 month 10 days 2 hours 30 minutes)]", "action":{...} } Rule example: fires 2 times, first callback (2018-03-01 at 13:00:00 UTC) second callback (2019-05-11 at 15:30:00 UTC) { "name":"next_minute", "text":"select * from pattern[every timer:schedule(date: '2019-10-01T05:52:00Z')]", "action":{...} } Rule example: fires on 2019-10-01T05:52:00Z Note: There are many other kind of timed Esper rules, such as time_batch , ext_timed_batch, match_recognize intervals, etc. 20
  • 22. Summary: Terms 21 ● CEP, Complex Event processing is event processing that combines data from mulBple sources to infer events or paYerns that suggest more complicated circumstances. (source: Wikipedia). ● Esper is an event stream processor that aims to enable a short development cycle from incepBon to producBon for these types of applicaBons. (source: EsperTech). ● EPL, Event Processing Language (EPL) defined to be the Esper language and designed for Complex Event Processing and Streaming AnalyBcs. (source: EsperTech).
  • 23. References 22 ● FIWARE Catalogue o https://www.fiware.org/developers/catalogue ● FIWARE Academy o https://fiware-academy.readthedocs.io/en/latest/index.html ● Perseo documentation o https://perseo.readthedocs.io/en/latest/
  • 24. References 23 ● GitHub repos o Perseo Core (https://github.com/telefonicaid/perseo-core) o Perseo Front-End (https://github.com/telefonicaid/perseo-fe) ● Docker images o Perseo Core (https://hub.docker.com/r/fiware/perseo-core) o Perseo Front-End (https://hub.docker.com/r/fiware/perseo) ● Esper Doc o http://esper.espertech.com/release-7.1.0/esper-reference/html/index.html
  • 26.
  • 27. 2 6