SlideShare a Scribd company logo
1 of 57
Managing Context Information 
at large scale 
(Introduction) 
Contact twitter 
@fermingalan 
@LeandroJGuillen 
Contact email 
fermin.galanmarquez@telefonica.com 
(Reference Orion Context Broker version: 0.16.0)
Introduction 
• Context Management in FIWARE 
• Orion Context Broker 
• Creating and pulling data 
• Pushing data and notifications 
• Convenience operations 
Orion Context Broker 
2
Context Management in FIWARE 
The value of the attributes that 
characterize entities relevant to 
applications 
3 
API 
Bus 
• Location 
• No. passengers 
• Driver 
• Licence plate 
Person 
• Name-Surname 
• Birthday 
• Preferences 
• Location 
• ToDo list 
Shop 
• Location 
• Business name 
• Franchise 
• offerings 
My Application 
Context Information
Context Management in FIWARE 
Context information may come from many sources using different 
interfaces and protocols … but programmers should just care about 
entities and their attributes … 
Context 
Information 
Context 
Information 
4 
A sensor in a 
pedestrian street 
The Public Bus 
Transport Management 
system 
It’s too hot! 
A person from his smartphone 
Context 
Information 
What’s the current temperature?
Context Management in FIWARE 
Get notified when an update on context information takes place 
Bus = “X”, last_stop = “A”, 
arrived= “Yes” 
5 
push 
Notify me when bus “X” 
arrives at the bus stop “A” 
API
Context Management in FIWARE 
Acting on devices can be as easy as changing the value of attributes 
linked to its corresponding entity 
Street Lamp lamp1.status  “on” 
Street lamp = “lamp1”, status= “on” 
6 
API
Orion Context Broker 
• Main functions: 
– Context availability management 
– Context management 
• HTTP and REST-based 
– XML payload support 
– JSON payload support 
• Context in NGSI is based in an entity-attribute model: 
7 
Attributes 
• Name 
• Type 
• Value 
Entity 
• EntityId 
• EntityType 
“has” 
1 n
Orion Context Broker in a nutshell 
Orion Context Broker 
8 
Context 
Producers 
Context 
Consumers 
subscriptions 
update 
query 
notify 
notify 
update 
update 
DB 
1026 
1026
Orion Context Broker – check health 
GET <cb_host>:1026/version 
{ 
"orion" : { 
"version" : "0.16.0", 
"uptime" : "7 d, 21 h, 33 m, 39 s", 
"git_hash" : "238c3642ad67899da7c1ff08aba4b5c846b4901a", 
"compile_time" : "Mon Nov 3 11:27:18 CET 2014", 
"compiled_by" : "fermin", 
"compiled_in" : "centollo" 
} 
} 
9
Orion Context Broker - Operations 
Functions Operations 
10 
NGSI9 
• Register, 
• Search and 
• Subscribe for context sources 
• registerContext 
• discoverContextAvailability 
• subscribeContextAvailability 
• updateContextAvailabilitySubscription 
• unsubscribeContextAvailability 
NGSI10 
• Query, 
• Update and 
• Subscribe to context elements 
• updateContext 
• queryContext 
• subscribeContext 
• updateContextSubscription 
• unsubscribeContextSubscription
Context Broker operations: create & pull data 
• Context Producers publish data/context elements by invoking the 
updateContext operation on a Context Broker. 
• Context Consumers can retrieve data/context elements by invoking the 
queryContext operation on a Context Broker 
11 
queryContext 
Context Consumer 
Context Producer 
updateContext 
Context Broker
Quick Usage Example: Car Create 
POST localhost:1026/v1/updateContext 
... 
{ 
"contextElements": [ 
{ 
"type": "Car", 
"isPattern": "false", 
"id": "Car1", 
"attributes": [ 
{ 
"name": "speed", 
"type": "km/h", 
"value": “98" 
} 
] 
} 
], 
"updateAction": “APPEND" 
} 
200 OK 
... 
{ 
"contextResponses": [ 
{ 
"contextElement": { 
"attributes": [ 
{ 
"name": "speed", 
"type": "km/h", 
"value": "" 
} 
], 
"id": "Car1", 
"isPattern": "false", 
"type": "Car" 
}, 
"statusCode": { 
"code": "200", 
"reasonPhrase": "OK" 
} 
} 
] 
} 
12
Quick Usage Example: Car UpdateContext (1) 
POST localhost:1026/v1/updateContext 
... 
{ 
"contextElements": [ 
{ 
"type": "Car", 
"isPattern": "false", 
"id": "Car1", 
"attributes": [ 
{ 
"name": "speed", 
"type": "km/h", 
"value": "110" 
} 
] 
} 
], 
"updateAction": "UPDATE" 
} 
200 OK 
... 
{ 
"contextResponses": [ 
{ 
"contextElement": { 
"attributes": [ 
{ 
"name": "speed", 
"type": "km/h", 
"value": "" 
} 
], 
"id": "Car1", 
"isPattern": "false", 
"type": "Car" 
}, 
"statusCode": { 
"code": "200", 
"reasonPhrase": "OK" 
} 
} 
] 
} 
13
Quick Usage Example: Car QueryContext (1) 
POST <cb_host>:1026/v1/queryContext 
... 
{ 
"entities": [ 
{ 
"type": "Car", 
"isPattern": "false", 
"id": "Car1" 
} 
] 
} 
200 OK 
... 
{ 
"contextResponses": [ 
{ 
"contextElement": { 
"attributes": [ 
{ 
"name": "speed", 
"type": "km/h", 
"value": "110" 
} 
], 
"id": "Car1", 
"isPattern": "false", 
"type": "Car" 
}, 
"statusCode": { 
"code": "200", 
"reasonPhrase": "OK" 
} 
} 
] 
} 
14
Quick Usage Example: Car UpdateContext (2) 
POST localhost:1026/v1/updateContext 
... 
{ 
"contextElements": [ 
{ 
"type": "Car", 
"isPattern": "false", 
"id": "Car1", 
"attributes": [ 
{ 
"name": "speed", 
"type": "km/h", 
"value": "115" 
} 
] 
} 
], 
"updateAction": "UPDATE" 
} 
200 OK 
... 
{ 
"contextResponses": [ 
{ 
"contextElement": { 
"attributes": [ 
{ 
"name": "speed", 
"type": "km/h", 
"value": "" 
} 
], 
"id": "Car1", 
"isPattern": "false", 
"type": "Car" 
}, 
"statusCode": { 
"code": "200", 
"reasonPhrase": "OK" 
} 
} 
] 
} 
15
Quick Usage Example: Car QueryContext (2) 
16 
POST <cb_host>:1026/v1/queryContext 
... 
{ 
"entities": [ 
{ 
"type": "Car", 
"isPattern": "false", 
"id": "Car1" 
} 
] 
} 
200 OK 
... 
{ 
"contextResponses": [ 
{ 
"contextElement": { 
"attributes": [ 
{ 
"name": "speed", 
"type": "km/h", 
"value": "115" 
} 
], 
"id": "Car1", 
"isPattern": "false", 
"type": "Car" 
}, 
"statusCode": { 
"code": "200", 
"reasonPhrase": "OK" 
} 
} 
] 
}
Quick Usage Example: Room Create (1) 
17 
POST localhost:1026/v1/updateContext 
... 
{ 
"contextElements": [ 
{ 
"type": "Room", 
"isPattern": "false", 
"id": "Room1", 
"attributes": [ 
{ 
"name": "temperature", 
"type": "centigrade", 
"value": "24" 
}, 
{ 
"name": "pressure", 
"type": "mmHg", 
"value": "718" 
} 
] 
} 
], 
"updateAction": "APPEND" 
} 
200 OK 
... 
{ 
"contextResponses": [ 
{ 
"contextElement": { 
"attributes": [ 
{ 
"name": "temperature", 
"type": "centigrade", 
"value": "" 
}, 
{ 
"name": "pressure", 
"type": "mmHg", 
"value": "" 
} 
], 
"id": "Room1", 
"isPattern": "false", 
"type": "Room" 
}, 
"statusCode": { 
"code": "200", 
"reasonPhrase": "OK" 
} 
} 
] 
}
Quick Usage Example: Room UpdateContext (2) 
POST localhost:1026/v1/updateContext 
... 
{ 
"contextElements": [ 
{ 
"type": "Room", 
"isPattern": "false", 
"id": "Room1", 
"attributes": [ 
{ 
"name": "temperature", 
"type": "centigrade", 
"value": "25" 
}, 
{ 
"name": "pressure", 
"type": "mmHg", 
"value": "720" 
} 
] 
} 
], 
"updateAction": "UPDATE" 
} 
200 OK 
... 
{ 
"contextResponses": [ 
{ 
"contextElement": { 
"attributes": [ 
{ 
"name": "temperature", 
"type": "centigrade", 
"value": "" 
}, 
{ 
"name": "pressure", 
"type": "mmHg", 
"value": "" 
} 
], 
"id": "Room1", 
"isPattern": "false", 
"type": "Room" 
}, 
"statusCode": { 
"code": "200", 
"reasonPhrase": "OK" 
} 
} 
] 
} 
18
Quick Usage Example: Room QueryContext (1) 
19 
POST <cb_host>:1026/v1/queryContext 
... 
{ 
"entities": [ 
{ 
"type": "Room", 
"isPattern": "false", 
"id": "Room1" 
} , 
"attributes": [ 
"temperature" 
] 
] 
} 
200 OK 
... 
{ 
"contextResponses": [ 
{ 
"contextElement": { 
"attributes": [ 
{ 
"name": "temperature", 
"type": "centigrade", 
"value": "25" 
} 
], 
"id": "Room1", 
"isPattern": "false", 
"type": "Room" 
}, 
"statusCode": { 
"code": "200", 
"reasonPhrase": "OK" 
} 
} 
] 
}
Quick Usage Example: Room QueryContext (2) 
20 
POST <cb_host>:1026/v1/queryContext 
... 
{ 
"entities": [ 
{ 
"type": "Room", 
"isPattern": "false", 
"id": "Room1" 
} 
] 
} 
200 OK 
... 
{ 
"contextResponses": [ 
{ 
"contextElement": { 
"attributes": [ 
{ 
"name": "temperature", 
"type": "centigrade", 
"value": "25" 
}, 
{ 
"name": "pressure", 
"type": "mmHg", 
"value": "720" 
} 
], 
"id": "Room1", 
"isPattern": "false", 
"type": "Room" 
}, 
"statusCode": { 
"code": "200", 
"reasonPhrase": "OK" 
} 
} 
] 
}
Quick Usage Example: Room Create (2) 
21 
POST localhost:1026/v1/updateContext 
... 
{ 
"contextElements": [ 
{ 
"type": "Room", 
"isPattern": "false", 
"id": "Room2", 
"attributes": [ 
{ 
"name": "temperature", 
"type": "centigrade", 
"value": "33" 
}, 
{ 
"name": "pressure", 
"type": "mmHg", 
"value": "722" 
} 
] 
} 
], 
"updateAction": "APPEND" 
} 
200 OK 
... 
{ 
"contextResponses": [ 
{ 
"contextElement": { 
"attributes": [ 
{ 
"name": "temperature", 
"type": "centigrade", 
"value": "" 
}, 
{ 
"name": "pressure", 
"type": "mmHg", 
"value": "" 
} 
], 
"id": "Room1", 
"isPattern": "false", 
"type": "Room" 
}, 
"statusCode": { 
"code": "200", 
"reasonPhrase": "OK" 
} 
} 
] 
}
Quick Usage Example: Room UpdateContext (2) 
POST localhost:1026/v1/updateContext 
... 
{ 
"contextElements": [ 
{ 
"type": "Room", 
"isPattern": "false", 
"id": "Room2", 
"attributes": [ 
{ 
"name": "temperature", 
"type": "centigrade", 
"value": "29" 
}, 
{ 
"name": "pressure", 
"type": "mmHg", 
"value": "730" 
} 
] 
} 
], 
"updateAction": "UPDATE" 
} 
200 OK 
... 
{ 
"contextResponses": [ 
{ 
"contextElement": { 
"attributes": [ 
{ 
"name": "temperature", 
"type": "centigrade", 
"value": "" 
}, 
{ 
"name": "pressure", 
"type": "mmHg", 
"value": "" 
} 
], 
"id": "Room1", 
"isPattern": "false", 
"type": "Room" 
}, 
"statusCode": { 
"code": "200", 
"reasonPhrase": "OK" 
} 
} 
] 
} 
22
Quick Usage Example: Room QueryContext (3) 
23 
POST <cb_host>:1026/v1/queryContext 
... 
{ 
"entities": [ 
{ 
"type": "Room", 
"isPattern": "true", 
"id": "Room.*" 
} , 
"attributes": [ 
"temperature" 
] 
] 
} 
200 OK 
... 
{ 
"contextResponses": [ 
{ 
"contextElement": { 
"attributes": [ 
{ 
"name": "temperature", 
"type": "centigrade", 
"value": "25" 
} 
], 
"id": "Room1", 
"isPattern": "false", 
"type": "Room" 
}, 
"statusCode": { 
"code": "200", 
"reasonPhrase": "OK" 
} 
}, 
{ 
"contextElement": { 
"attributes": [ 
{ 
"name": "temperature", 
"type": "centigrade", 
"value": "29" 
} 
], 
"id": "Room2", 
"isPattern": "false", 
"type": "Room" 
}, 
"statusCode": { 
"code": "200", 
"reasonPhrase": "OK" 
} 
} 
] 
}
Context Broker operations: push data 
• Context Consumers can subscribe to receive context information that satisfy 
certain conditions using the subscribeContext. Such subscriptions may have 
a duration. 
• The Context Broker notifies updates on context information to subscribed 
Context Consumers by invoking the notifyContext operation they export 
subscription_id = subscribeContext (consumer, expr, duration) 
24 
Context Consumer 
notifyContext (subscription_id, data/context) 
Context Broker 
Application
Quick Usage Example: Subscription 
POST <cb_host>:1026/v1/subscribeContext 
… 
{ 
"entities": [ 
{ 
"type": "Room", 
"isPattern": "false", 
"id": "Room1" 
} 
], 
"attributes": [ 
"temperature" 
], 
"reference": "http://<host>:<port>/publish", 
"duration": "P1M", 
"notifyConditions": [ 
{ 
"type": "ONCHANGE", 
"condValues": [ 
"temperature" 
] 
} 
], 
"throttling": "PT5S" 
} 
200 OK 
... 
{ 
"subscribeResponse": { 
"duration": "P1M", 
"subscriptionId": "51c0ac9ed714fb3b37d7d5a8", 
"throttling": "PT5S" 
} 
} 
25
Quick Usage Example: Notification 
25 
19 
26
Quick Usage Example: Notification 
POST http://<host>:<port>/publish 
… 
{ 
"subscriptionId" : "51c0ac9ed714fb3b37d7d5a8", 
"originator" : "localhost", 
"contextResponses" : [ 
{ 
"contextElement" : { 
"attributes" : [ 
{ 
"name" : "temperature", 
"type" : "centigrade", 
"value" : "19" 
} 
], 
"type" : "Room", 
"isPattern" : "false", 
"id" : "Room1" 
}, 
"statusCode" : { 
"code" : "200", 
"reasonPhrase" : "OK" 
} 
} 
] 
} 
27
Convenience Operations 
• They are equivalent to previous standard operations in functionality 
• Avoid the need for POST-ing payloads in many cases or simplifying them 
considerably 
• Simple to write, more REST-like 
• They are not a substitute but a complement to standard NGSI operations 
• Four examples (there are many others): 
– Entities 
– Attributes 
– Subscriptions 
– Types 
28
Convenience Operations – Example 1 
Entities 
• GET /v1/contextEntities/{entityID} 
• Retrieves an entity 
• POST /v1/contextEntities/{entityID} 
• Creates an entity 
• PUT /v1/contextEntities/{entityID} 
• Updates an entity 
• DELETE /v1/contextEntities/{entityID} 
• Deletes an entity
Convenience Operations – Example 2 
Attributes 
• GET /v1/contextEntities/{entityID}/attributes/{attrID} 
• Retrieves an attribute’s value 
• POST /v1/contextEntities/{entityID}/attributes/{attrID} 
• Creates a new attribute for an entity 
• PUT /v1/contextEntities/{entityID}/attributes/{attrID} 
• Updates an attribute’s value 
• DELETE /v1/contextEntities/{entityID}/attributes/{attrID} 
• Deletes an attribute
Convenience Operations – Example 3 
Subscriptions 
• POST /v1/contextSubscriptions 
• Creates a subscription 
• PUT /v1/contextSubscriptions/{subID} 
• Updates a subscription 
• DELETE /v1/contextSubscriptions/{subID} 
• Cancel a subscription
Convenience Operations – Example 4 
Entity Types 
• GET /v1/contextTypes 
• Retrieve a list of all entity types currently in Orion, 
including their corresponding attributes 
• GET /v1/contextTypes/{typeID} 
• Retrieve attributes associated to an entity type 
PRO TIP 
GET /v1/contextTypes?collapse=true 
Retrieves a list of all entity types without attribute info
Managing Context Information 
at large scale 
(Advanced Topics) 
Contact wwitter 
@fermingalan 
@LeandroJGuillen 
Contact email 
fermin.galanmarquez@telefonica.com 
(Reference Orion Context Broker version: 0.16.0)
Advanced Features 
• Pagination 
• Compound attribute values 
• Geo-location 
• Metadata 
• Registrations & context providers 
• Multitenancy 
• Entity service paths 
Orion Context Broker 
34
Pagination 
• Pagination helps clients organize query and 
discovery requests with a large number of 
responses. 
• Three URI parameters: 
– limit 
• Number of elements per page (default: 20, max: 1000) 
– offset 
• Number of elements to skip (default: 0) 
– details 
• Returns total elements (default: "off") 
35
Pagination 
• Example, querying the first 100 entries: 
POST <orion_host>:1026/v1/queryContext?limit=100&details=on 
• The first 100 elements are returned, along with the following errorCode in 
the response: 
"errorCode": { 
"code": "200", 
"details": "Count: 322", 
"reasonPhrase": "OK" 
} 
• Now we now there are 322 entities, we can keep querying the broker for 
them: 
– POST <orion_host>:1026/v1/queryContext?offset=100&limit=100 
– POST <orion_host>:1026/v1/queryContext?offset=200&limit=100 
– POST <orion_host>:1026/v1/queryContext?offset=300&limit=100 
36
Compound Attribute Values 
• An attribute can have a structured value. Vectors 
and key-value maps are supported. 
• It maps directly to JSON's objects and arrays. 
37
Compound Attribute Values 
• Example: we have 
a car whose four 
wheels' pressure 
we want to 
represent as a 
compound 
attribute for a car 
entity. We would 
create the car 
entity like this: 
{ 
"contextElements": [ 
{ 
"type": "Car", 
"isPattern": "false", 
"id": "Car1", 
"attributes": [ 
{ 
"name": "tirePressure", 
"type": "kPa", 
"value": { 
"frontRight": "120", 
"frontLeft": "110", 
"backRight": "115", 
"backLeft": "130" 
} 
} 
] 
} 
], 
"updateAction": "APPEND" 
} 
38
Metadata 
• Users may attach metadata to attributes 
• Reserved metadatas: ID, Location, creDate and modDate 
• Examples: 
39 
… 
"attributes": [ 
{ 
"name": "temperature", 
"type": "centigrade", 
"value": "26.5", 
"metadatas": [ 
{ 
"name": "accuracy", 
"type": "float", 
"value": "0.9" 
} 
] 
} 
] 
… 
… 
"attributes": [ 
{ 
"name": "temperature", 
"type": "centigrade", 
"value": "26.5", 
"metadatas": [ 
{ 
"name": "average", 
"type": "centigrade", 
"value": "22.4" 
} 
] 
} 
] 
…
Geo-location 
• Entities can have an attribute 
that specifies its location 
– Using a "location" metadata 
• Example: create an entity called 
Madrid 
…and create a couple more towns: 
• Leganés 
• Alcobendas 
POST <cb_host>:1026/v1/updateContext 
{ 
"contextElements": [ 
{ 
"type": "City", 
"isPattern": "false", 
"id": "Madrid", 
"attributes": [ 
{ 
"name": "position", 
"type": "coords", 
"value": "40.418889, -3.691944", 
"metadatas": [ 
{ 
"name": "location", 
"type": "string", 
"value": "WSG84" 
} 
] 
} 
] 
} 
], 
"updateAction": "APPEND" 
} 
40
Geo-location – Circle 
41
Geo-location – Circle 
POST <cb_host>:1026/v1/queryContext 
… 
{ 
"entities": [ 
{ 
"type": "City", 
"isPattern": "true", 
"id": ".*" 
} 
], 
"restriction": { 
"scopes": [ 
{ 
"type" : "FIWARE::Location", 
"value" : { 
"circle": { 
"centerLatitude": "40.418889", 
"centerLongitude": "-3.691944", 
"radius": "13500" 
} 
} 
} 
] 
} 
} 
42
Geo-location – Inverse Circle 
POST <cb_host>:1026/v1/queryContext 
… 
{ 
"entities": [ 
{ 
"type": "City", 
"isPattern": "true", 
"id": ".*" 
} 
], 
"restriction": { 
"scopes": [ 
{ 
"type" : "FIWARE::Location", 
"value" : { 
"circle": { 
"centerLatitude": "40.418889", 
"centerLongitude": "-3.691944", 
"radius": "13500", 
"inverted": "true" 
} 
} 
} 
] 
} 
} 
43
Registration & Context Providers 
• Uncached queries and updates 
1. registerContext(provider= ) 
5. data 4. data 
44 
Application 
ContextBroker ContextProvider 
db 
2. queryContext(id) 3. queryContext(id) 
Context 
Consumer
Registration & Context Providers 
POST <cb_host>:1026/v1/registry/registerContext 
… 
{ 
"contextRegistrations": [ 
{ 
"entities": [ 
{ 
"type": "Car", 
"isPattern": "false", 
"id": "Car1" 
}, 
"attributes": [ 
{ 
"name": "speed", 
"type": "km/h", 
"isDomain": "false" 
} 
], 
"providingApplication": "http://contextprovider.com/Cars" 
} 
], 
"duration": "P1M" 
} 
200 OK 
... 
{ 
"duration" : "P1M", 
"registrationId" : "52a744b011f5816465943d58" 
} 
45
46 
POST <cb_host>:1026/v1/queryContext 
... 
{ 
"entities": [ 
{ 
"type": "Car", 
"isPattern": "false", 
"id": "Car1" 
} 
] 
} 
Registration & Context Providers 
data 
ContextBroker ContextProvider 
db 
queryContext(id) 
200 OK 
... 
{ 
"contextResponses": [ 
{ 
"contextElement": { 
"attributes": [ 
{ 
"name": "speed", 
"type": "km/h", 
"value": "100" 
} 
], 
"id": "Car1", 
"isPattern": "false", 
"type": "Car" 
}, 
"statusCode": { 
"code": "200", 
"details": "Redirected to context provider 
http://contextprovider.com/Cars", 
"reasonPhrase": "OK" 
} 
} 
] 
}
Multitenancy 
• Simple multitenant model based on 
logical database separation. 
• It eases tenant-based authorization 
provided by other components. 
• Just use an additional HTTP header 
called "Fiware-Service", whose value 
is the tenant name. Example: 
Fiware-Service: Tenant1 
Context 
Broker 
Tenant1 
Tenant2 
… 
47
Entity Service Paths 
• A service path is a hierarchical scope assigned to an entity 
at creation time (with updateContext). 
48
Entity Service Paths 
• In order to use a service path we put in a new HTTP header 
called “Fiware-ServicePath". For example: 
Fiware-ServicePath: Madrid/Gardens/ParqueNorte/Parterre1 
• Properties: 
– A query on a service path only searches on the tree down the 
specified node. 
• For example, a query on ParqueNorte for street lights will return all street 
lights contained in ParqueNorte, ParqueNorte/Parterre1 and 
ParqueNorte/Parterre2 
ParqueNorte 
Parterre1 Parterre2 
49
Entity Service Paths 
• Properties (continued): 
– You can OR a query using a comma (,) 
operator in the header 
• For example, to query all street lights that are either 
in ParqueSur or in ParqueOeste you would use: 
ServicePath: Madrid/Gardens/ParqueSur, 
Madrid/Gardens/ParqueOeste 
• You can OR up to 10 different scopes. 
– Maximum scope levels: 10 
• Scope1/Scope2/.../Scope10 
– You can have the same element IDs in 
different scopes (be careful with this!) 
– You can't change scope once the element is 
created 
– One entity can belong to only one scope 
A B 
A or B 
ParqueNorte 
Parterre1 
light1 
light1 
50
Bonus Track: Orion Context Explorer 
• Publicly available browser-based front-end for Orion 
Context Broker 
– Open source development by VM9 
• Authentication integrated with FIWARE Lab account 
• Have a look! 
– http://orionexplorer.com/ 
51
Thanks!
Backup slides 
BACKUP SLIDES 
53
Integration with existing systems 
• Context adapters will be developed to interface with existing systems (e.g., 
municipal services management systems in a smart city) acting as Context 
Providers, Context Producers, or both 
• Some attributes from a given entity may be linked to a Context Provider 
while other attributes may be linked to Context Producers 
System A System B 
54 
queryContext (e1, 
attr1, attr2) 
queryContext (e1, 
attr1) 
Context Provider 
updateContext (e1, 
attr2) 
Context Consumer 
Application 
Context Broker
Integration with sensor networks 
• The backend IoT Device Management GE enables creation and 
configuration of NGSI IoT Agents that connect to sensor networks 
• Each NGSI IoT Agent can behave as Context Consumers or Context 
Providers, or both 
OMA NGSI API (northbound interface) 
FIWARE Context Broker 
55 
IoT 
Agent-1 
IoT 
Agent-2 
IoT 
Agent-n 
IoT Agent 
Manager 
create/monitor 
FIWARE Backend IoT 
Device Management 
(southbound interfaces) 
ETSI M2M MQTT IETF CoAP
Context Management in FIWARE 
• Federation of infrastructures (private/public regions) 
• Automated GE deployment Cloud 
• Complete Context Management Platform 
• Integration of Data and Media Content Data 
•Easy plug&play of devices using multiple protocols 
•Automated Measurements/Action Context updates IoT 
• Visualization of data (operation dashboards) 
•Publication of data sets/services Apps 
•Easy support of UIs with advanced web-based 3D and AR 
capabilities 
•Visual representation of context information. 
56 
Web UI 
•Advanced networking capabilities (SDN) and Middleware 
• Interface to robots I2ND 
•Security Monitoring 
•Built-in Identity/Access/Privacy Management Security
FI-WARE Context/Data Management Platform 
Applications 
Context/Data Management Platform 
57 
OMA NGSI-9/10 
Processing/Analysis 
Algorithms 
Gathered data is 
injected for 
processing/analysis 
Distributed 
Context 
Sources Complex Event 
Processing 
(PROTON) 
BigData 
(COSMOS) 
Processed data is 
injected for 
processing/analysi 
s 
Data generated either by CEP 
or BigData is published 
Gathered data injected 
for CEP-like processing 
Direct 
bigdata 
injection 
Programming of 
rules

More Related Content

What's hot

Fiware IoT Proposal & Community
Fiware IoT Proposal & Community Fiware IoT Proposal & Community
Fiware IoT Proposal & Community TIDChile
 
Fiware io t_ul20_cpbr8
Fiware io t_ul20_cpbr8Fiware io t_ul20_cpbr8
Fiware io t_ul20_cpbr8FIWARE
 
Orion Context Broker
Orion Context Broker Orion Context Broker
Orion Context Broker TIDChile
 
Orion Context Broker 20220301
Orion Context Broker 20220301Orion Context Broker 20220301
Orion Context Broker 20220301Fermin Galan
 
Orion Context Broker 20190214
Orion Context Broker 20190214Orion Context Broker 20190214
Orion Context Broker 20190214Fermin Galan
 
Developing your first application using FI-WARE
Developing your first application using FI-WAREDeveloping your first application using FI-WARE
Developing your first application using FI-WAREFermin Galan
 
FIWARE Developers Week_BootcampWeBUI_presentation1
FIWARE Developers Week_BootcampWeBUI_presentation1FIWARE Developers Week_BootcampWeBUI_presentation1
FIWARE Developers Week_BootcampWeBUI_presentation1FIWARE
 
NGSIv2 Overview for Developers That Already Know NGSIv1 20180716
NGSIv2 Overview for Developers That Already Know NGSIv1 20180716NGSIv2 Overview for Developers That Already Know NGSIv1 20180716
NGSIv2 Overview for Developers That Already Know NGSIv1 20180716Fermin Galan
 
Hack it like its hot!
Hack it like its hot!Hack it like its hot!
Hack it like its hot!Stefan Adolf
 
Parse: A Mobile Backend as a Service (MBaaS)
Parse: A Mobile Backend as a Service (MBaaS)Parse: A Mobile Backend as a Service (MBaaS)
Parse: A Mobile Backend as a Service (MBaaS)Ville Seppänen
 
(MBL303) Build Mobile Apps for IoT Devices and IoT Apps for Devices
(MBL303) Build Mobile Apps for IoT Devices and IoT Apps for Devices(MBL303) Build Mobile Apps for IoT Devices and IoT Apps for Devices
(MBL303) Build Mobile Apps for IoT Devices and IoT Apps for DevicesAmazon Web Services
 
Orion Context Broker 20210412
Orion Context Broker 20210412Orion Context Broker 20210412
Orion Context Broker 20210412Fermin Galan
 
APIs, APIs Everywhere!
APIs, APIs Everywhere!APIs, APIs Everywhere!
APIs, APIs Everywhere!BIWUG
 
Essential Capabilities of an IoT Cloud Platform - AWS Online Tech Talks
Essential Capabilities of an IoT Cloud Platform - AWS Online Tech TalksEssential Capabilities of an IoT Cloud Platform - AWS Online Tech Talks
Essential Capabilities of an IoT Cloud Platform - AWS Online Tech TalksAmazon Web Services
 
Cutting edge HTML5 API you can use today (by Bohdan Rusinka)
 Cutting edge HTML5 API you can use today (by Bohdan Rusinka) Cutting edge HTML5 API you can use today (by Bohdan Rusinka)
Cutting edge HTML5 API you can use today (by Bohdan Rusinka)Binary Studio
 
"Auth for React.js APP", Nikita Galkin
"Auth for React.js APP", Nikita Galkin"Auth for React.js APP", Nikita Galkin
"Auth for React.js APP", Nikita GalkinFwdays
 
MongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB.local Atlanta: Introduction to Serverless MongoDBMongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB.local Atlanta: Introduction to Serverless MongoDBMongoDB
 
Building Android apps with Parse
Building Android apps with ParseBuilding Android apps with Parse
Building Android apps with ParseDroidConTLV
 
Security enforcement of Java Microservices with Apiman & Keycloak
Security enforcement of Java Microservices with Apiman & KeycloakSecurity enforcement of Java Microservices with Apiman & Keycloak
Security enforcement of Java Microservices with Apiman & KeycloakCharles Moulliard
 

What's hot (19)

Fiware IoT Proposal & Community
Fiware IoT Proposal & Community Fiware IoT Proposal & Community
Fiware IoT Proposal & Community
 
Fiware io t_ul20_cpbr8
Fiware io t_ul20_cpbr8Fiware io t_ul20_cpbr8
Fiware io t_ul20_cpbr8
 
Orion Context Broker
Orion Context Broker Orion Context Broker
Orion Context Broker
 
Orion Context Broker 20220301
Orion Context Broker 20220301Orion Context Broker 20220301
Orion Context Broker 20220301
 
Orion Context Broker 20190214
Orion Context Broker 20190214Orion Context Broker 20190214
Orion Context Broker 20190214
 
Developing your first application using FI-WARE
Developing your first application using FI-WAREDeveloping your first application using FI-WARE
Developing your first application using FI-WARE
 
FIWARE Developers Week_BootcampWeBUI_presentation1
FIWARE Developers Week_BootcampWeBUI_presentation1FIWARE Developers Week_BootcampWeBUI_presentation1
FIWARE Developers Week_BootcampWeBUI_presentation1
 
NGSIv2 Overview for Developers That Already Know NGSIv1 20180716
NGSIv2 Overview for Developers That Already Know NGSIv1 20180716NGSIv2 Overview for Developers That Already Know NGSIv1 20180716
NGSIv2 Overview for Developers That Already Know NGSIv1 20180716
 
Hack it like its hot!
Hack it like its hot!Hack it like its hot!
Hack it like its hot!
 
Parse: A Mobile Backend as a Service (MBaaS)
Parse: A Mobile Backend as a Service (MBaaS)Parse: A Mobile Backend as a Service (MBaaS)
Parse: A Mobile Backend as a Service (MBaaS)
 
(MBL303) Build Mobile Apps for IoT Devices and IoT Apps for Devices
(MBL303) Build Mobile Apps for IoT Devices and IoT Apps for Devices(MBL303) Build Mobile Apps for IoT Devices and IoT Apps for Devices
(MBL303) Build Mobile Apps for IoT Devices and IoT Apps for Devices
 
Orion Context Broker 20210412
Orion Context Broker 20210412Orion Context Broker 20210412
Orion Context Broker 20210412
 
APIs, APIs Everywhere!
APIs, APIs Everywhere!APIs, APIs Everywhere!
APIs, APIs Everywhere!
 
Essential Capabilities of an IoT Cloud Platform - AWS Online Tech Talks
Essential Capabilities of an IoT Cloud Platform - AWS Online Tech TalksEssential Capabilities of an IoT Cloud Platform - AWS Online Tech Talks
Essential Capabilities of an IoT Cloud Platform - AWS Online Tech Talks
 
Cutting edge HTML5 API you can use today (by Bohdan Rusinka)
 Cutting edge HTML5 API you can use today (by Bohdan Rusinka) Cutting edge HTML5 API you can use today (by Bohdan Rusinka)
Cutting edge HTML5 API you can use today (by Bohdan Rusinka)
 
"Auth for React.js APP", Nikita Galkin
"Auth for React.js APP", Nikita Galkin"Auth for React.js APP", Nikita Galkin
"Auth for React.js APP", Nikita Galkin
 
MongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB.local Atlanta: Introduction to Serverless MongoDBMongoDB.local Atlanta: Introduction to Serverless MongoDB
MongoDB.local Atlanta: Introduction to Serverless MongoDB
 
Building Android apps with Parse
Building Android apps with ParseBuilding Android apps with Parse
Building Android apps with Parse
 
Security enforcement of Java Microservices with Apiman & Keycloak
Security enforcement of Java Microservices with Apiman & KeycloakSecurity enforcement of Java Microservices with Apiman & Keycloak
Security enforcement of Java Microservices with Apiman & Keycloak
 

Viewers also liked

Cosmos, Big Data GE Implementation
Cosmos, Big Data GE ImplementationCosmos, Big Data GE Implementation
Cosmos, Big Data GE ImplementationFIWARE
 
FIWARE Developers Week_IoT Agents with Thinking Things and OMA lightweight M...
 FIWARE Developers Week_IoT Agents with Thinking Things and OMA lightweight M... FIWARE Developers Week_IoT Agents with Thinking Things and OMA lightweight M...
FIWARE Developers Week_IoT Agents with Thinking Things and OMA lightweight M...FIWARE
 
Developing your first application using FIWARE
Developing your first application using FIWAREDeveloping your first application using FIWARE
Developing your first application using FIWAREFIWARE
 
Io t idas_intro_ul20_nobkg
Io t idas_intro_ul20_nobkgIo t idas_intro_ul20_nobkg
Io t idas_intro_ul20_nobkgFIWARE
 
FIWARE IoT Proposal & Community
FIWARE IoT Proposal & CommunityFIWARE IoT Proposal & Community
FIWARE IoT Proposal & CommunityFIWARE
 
IoT Agents (Introduction)
IoT Agents (Introduction)IoT Agents (Introduction)
IoT Agents (Introduction)dmoranj
 
The 'Serverless' Paradigm, OpenWhisk and FIWARE
The 'Serverless' Paradigm, OpenWhisk and FIWAREThe 'Serverless' Paradigm, OpenWhisk and FIWARE
The 'Serverless' Paradigm, OpenWhisk and FIWAREFIWARE
 
FIWARE IoT Ready Programme
FIWARE IoT Ready ProgrammeFIWARE IoT Ready Programme
FIWARE IoT Ready ProgrammeFIWARE
 
FIWARE Developers Week_IoT basic exercises
FIWARE Developers Week_IoT basic exercisesFIWARE Developers Week_IoT basic exercises
FIWARE Developers Week_IoT basic exercisesFIWARE
 
Fiware Developers Week Iot exercises (Advanced)
Fiware Developers Week Iot exercises (Advanced)Fiware Developers Week Iot exercises (Advanced)
Fiware Developers Week Iot exercises (Advanced)dmoranj
 
Fiware IoT_IDAS_intro_ul20_v2
Fiware IoT_IDAS_intro_ul20_v2Fiware IoT_IDAS_intro_ul20_v2
Fiware IoT_IDAS_intro_ul20_v2FIWARE
 

Viewers also liked (11)

Cosmos, Big Data GE Implementation
Cosmos, Big Data GE ImplementationCosmos, Big Data GE Implementation
Cosmos, Big Data GE Implementation
 
FIWARE Developers Week_IoT Agents with Thinking Things and OMA lightweight M...
 FIWARE Developers Week_IoT Agents with Thinking Things and OMA lightweight M... FIWARE Developers Week_IoT Agents with Thinking Things and OMA lightweight M...
FIWARE Developers Week_IoT Agents with Thinking Things and OMA lightweight M...
 
Developing your first application using FIWARE
Developing your first application using FIWAREDeveloping your first application using FIWARE
Developing your first application using FIWARE
 
Io t idas_intro_ul20_nobkg
Io t idas_intro_ul20_nobkgIo t idas_intro_ul20_nobkg
Io t idas_intro_ul20_nobkg
 
FIWARE IoT Proposal & Community
FIWARE IoT Proposal & CommunityFIWARE IoT Proposal & Community
FIWARE IoT Proposal & Community
 
IoT Agents (Introduction)
IoT Agents (Introduction)IoT Agents (Introduction)
IoT Agents (Introduction)
 
The 'Serverless' Paradigm, OpenWhisk and FIWARE
The 'Serverless' Paradigm, OpenWhisk and FIWAREThe 'Serverless' Paradigm, OpenWhisk and FIWARE
The 'Serverless' Paradigm, OpenWhisk and FIWARE
 
FIWARE IoT Ready Programme
FIWARE IoT Ready ProgrammeFIWARE IoT Ready Programme
FIWARE IoT Ready Programme
 
FIWARE Developers Week_IoT basic exercises
FIWARE Developers Week_IoT basic exercisesFIWARE Developers Week_IoT basic exercises
FIWARE Developers Week_IoT basic exercises
 
Fiware Developers Week Iot exercises (Advanced)
Fiware Developers Week Iot exercises (Advanced)Fiware Developers Week Iot exercises (Advanced)
Fiware Developers Week Iot exercises (Advanced)
 
Fiware IoT_IDAS_intro_ul20_v2
Fiware IoT_IDAS_intro_ul20_v2Fiware IoT_IDAS_intro_ul20_v2
Fiware IoT_IDAS_intro_ul20_v2
 

Similar to FIWARE Developers Week_ Introduction to Managing Context Information at Large Scale_presentation

SDKs, the good the bad the ugly - Japan
SDKs, the good the bad the ugly - JapanSDKs, the good the bad the ugly - Japan
SDKs, the good the bad the ugly - Japantristansokol
 
2011 05-23 metrics-agilasverige-english
2011 05-23 metrics-agilasverige-english2011 05-23 metrics-agilasverige-english
2011 05-23 metrics-agilasverige-englishMårten Gustafson
 
JSON Schema: Your API's Secret Weapon
JSON Schema: Your API's Secret WeaponJSON Schema: Your API's Secret Weapon
JSON Schema: Your API's Secret WeaponPete Gamache
 
Session 7 - Connecting to Legacy Systems, IoT and other Systems | Train the T...
Session 7 - Connecting to Legacy Systems, IoT and other Systems | Train the T...Session 7 - Connecting to Legacy Systems, IoT and other Systems | Train the T...
Session 7 - Connecting to Legacy Systems, IoT and other Systems | Train the T...FIWARE
 
Micro app-framework - NodeLive Boston
Micro app-framework - NodeLive BostonMicro app-framework - NodeLive Boston
Micro app-framework - NodeLive BostonMichael Dawson
 
HTML for the Mobile Web, Firefox OS - All Things Open - 2014-10-22
HTML for the Mobile Web, Firefox OS - All Things Open - 2014-10-22HTML for the Mobile Web, Firefox OS - All Things Open - 2014-10-22
HTML for the Mobile Web, Firefox OS - All Things Open - 2014-10-22Frédéric Harper
 
Scalable and Fault-Tolerant Apps with AWS
Scalable and Fault-Tolerant Apps with AWSScalable and Fault-Tolerant Apps with AWS
Scalable and Fault-Tolerant Apps with AWSFernando Rodriguez
 
FIWARE Training: IoT and Legacy
FIWARE Training: IoT and LegacyFIWARE Training: IoT and Legacy
FIWARE Training: IoT and LegacyFIWARE
 
ELK Stack - Turn boring logfiles into sexy dashboard
ELK Stack - Turn boring logfiles into sexy dashboardELK Stack - Turn boring logfiles into sexy dashboard
ELK Stack - Turn boring logfiles into sexy dashboardGeorg Sorst
 
Streaming Operational Data with MariaDB MaxScale
Streaming Operational Data with MariaDB MaxScaleStreaming Operational Data with MariaDB MaxScale
Streaming Operational Data with MariaDB MaxScaleMariaDB plc
 
Designing REST API automation tests in Kotlin
Designing REST API automation tests in KotlinDesigning REST API automation tests in Kotlin
Designing REST API automation tests in KotlinDmitriy Sobko
 
Evolving your Data Access with MongoDB Stitch
Evolving your Data Access with MongoDB StitchEvolving your Data Access with MongoDB Stitch
Evolving your Data Access with MongoDB StitchMongoDB
 
20110525[Taipei GTUG] titanium mobile簡介
20110525[Taipei GTUG] titanium mobile簡介20110525[Taipei GTUG] titanium mobile簡介
20110525[Taipei GTUG] titanium mobile簡介Justin Lee
 
0 to 60 with AWS AppSync: Rapid Development Techniques for Mobile APIs (MOB32...
0 to 60 with AWS AppSync: Rapid Development Techniques for Mobile APIs (MOB32...0 to 60 with AWS AppSync: Rapid Development Techniques for Mobile APIs (MOB32...
0 to 60 with AWS AppSync: Rapid Development Techniques for Mobile APIs (MOB32...Amazon Web Services
 
HTML, not just for desktops: Firefox OS - Congreso Universitario Móvil - 201...
HTML, not just for desktops: Firefox OS - Congreso Universitario Móvil - 201...HTML, not just for desktops: Firefox OS - Congreso Universitario Móvil - 201...
HTML, not just for desktops: Firefox OS - Congreso Universitario Móvil - 201...Frédéric Harper
 
Mastering Spring Boot's Actuator with Madhura Bhave
Mastering Spring Boot's Actuator with Madhura BhaveMastering Spring Boot's Actuator with Madhura Bhave
Mastering Spring Boot's Actuator with Madhura BhaveVMware Tanzu
 
Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22
Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22
Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22Frédéric Harper
 
APIdays Zurich 2019 - Specification Driven Development for REST APIS Alexande...
APIdays Zurich 2019 - Specification Driven Development for REST APIS Alexande...APIdays Zurich 2019 - Specification Driven Development for REST APIS Alexande...
APIdays Zurich 2019 - Specification Driven Development for REST APIS Alexande...apidays
 

Similar to FIWARE Developers Week_ Introduction to Managing Context Information at Large Scale_presentation (20)

SDKs, the good the bad the ugly - Japan
SDKs, the good the bad the ugly - JapanSDKs, the good the bad the ugly - Japan
SDKs, the good the bad the ugly - Japan
 
2011 05-23 metrics-agilasverige-english
2011 05-23 metrics-agilasverige-english2011 05-23 metrics-agilasverige-english
2011 05-23 metrics-agilasverige-english
 
JSON Schema: Your API's Secret Weapon
JSON Schema: Your API's Secret WeaponJSON Schema: Your API's Secret Weapon
JSON Schema: Your API's Secret Weapon
 
Session 7 - Connecting to Legacy Systems, IoT and other Systems | Train the T...
Session 7 - Connecting to Legacy Systems, IoT and other Systems | Train the T...Session 7 - Connecting to Legacy Systems, IoT and other Systems | Train the T...
Session 7 - Connecting to Legacy Systems, IoT and other Systems | Train the T...
 
Micro app-framework - NodeLive Boston
Micro app-framework - NodeLive BostonMicro app-framework - NodeLive Boston
Micro app-framework - NodeLive Boston
 
HTML for the Mobile Web, Firefox OS - All Things Open - 2014-10-22
HTML for the Mobile Web, Firefox OS - All Things Open - 2014-10-22HTML for the Mobile Web, Firefox OS - All Things Open - 2014-10-22
HTML for the Mobile Web, Firefox OS - All Things Open - 2014-10-22
 
Scalable and Fault-Tolerant Apps with AWS
Scalable and Fault-Tolerant Apps with AWSScalable and Fault-Tolerant Apps with AWS
Scalable and Fault-Tolerant Apps with AWS
 
Deep Dive: AWS CloudFormation
Deep Dive: AWS CloudFormationDeep Dive: AWS CloudFormation
Deep Dive: AWS CloudFormation
 
FIWARE Training: IoT and Legacy
FIWARE Training: IoT and LegacyFIWARE Training: IoT and Legacy
FIWARE Training: IoT and Legacy
 
Ams adapters
Ams adaptersAms adapters
Ams adapters
 
ELK Stack - Turn boring logfiles into sexy dashboard
ELK Stack - Turn boring logfiles into sexy dashboardELK Stack - Turn boring logfiles into sexy dashboard
ELK Stack - Turn boring logfiles into sexy dashboard
 
Streaming Operational Data with MariaDB MaxScale
Streaming Operational Data with MariaDB MaxScaleStreaming Operational Data with MariaDB MaxScale
Streaming Operational Data with MariaDB MaxScale
 
Designing REST API automation tests in Kotlin
Designing REST API automation tests in KotlinDesigning REST API automation tests in Kotlin
Designing REST API automation tests in Kotlin
 
Evolving your Data Access with MongoDB Stitch
Evolving your Data Access with MongoDB StitchEvolving your Data Access with MongoDB Stitch
Evolving your Data Access with MongoDB Stitch
 
20110525[Taipei GTUG] titanium mobile簡介
20110525[Taipei GTUG] titanium mobile簡介20110525[Taipei GTUG] titanium mobile簡介
20110525[Taipei GTUG] titanium mobile簡介
 
0 to 60 with AWS AppSync: Rapid Development Techniques for Mobile APIs (MOB32...
0 to 60 with AWS AppSync: Rapid Development Techniques for Mobile APIs (MOB32...0 to 60 with AWS AppSync: Rapid Development Techniques for Mobile APIs (MOB32...
0 to 60 with AWS AppSync: Rapid Development Techniques for Mobile APIs (MOB32...
 
HTML, not just for desktops: Firefox OS - Congreso Universitario Móvil - 201...
HTML, not just for desktops: Firefox OS - Congreso Universitario Móvil - 201...HTML, not just for desktops: Firefox OS - Congreso Universitario Móvil - 201...
HTML, not just for desktops: Firefox OS - Congreso Universitario Móvil - 201...
 
Mastering Spring Boot's Actuator with Madhura Bhave
Mastering Spring Boot's Actuator with Madhura BhaveMastering Spring Boot's Actuator with Madhura Bhave
Mastering Spring Boot's Actuator with Madhura Bhave
 
Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22
Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22
Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22
 
APIdays Zurich 2019 - Specification Driven Development for REST APIS Alexande...
APIdays Zurich 2019 - Specification Driven Development for REST APIS Alexande...APIdays Zurich 2019 - Specification Driven Development for REST APIS Alexande...
APIdays Zurich 2019 - Specification Driven Development for REST APIS Alexande...
 

More from FIWARE

Behm_Herne_NeMo_akt.pptx
Behm_Herne_NeMo_akt.pptxBehm_Herne_NeMo_akt.pptx
Behm_Herne_NeMo_akt.pptxFIWARE
 
Katharina Hogrebe Herne Digital Days.pdf
 Katharina Hogrebe Herne Digital Days.pdf Katharina Hogrebe Herne Digital Days.pdf
Katharina Hogrebe Herne Digital Days.pdfFIWARE
 
Christoph Mertens_IDSA_Introduction to Data Spaces.pptx
Christoph Mertens_IDSA_Introduction to Data Spaces.pptxChristoph Mertens_IDSA_Introduction to Data Spaces.pptx
Christoph Mertens_IDSA_Introduction to Data Spaces.pptxFIWARE
 
Behm_Herne_NeMo.pptx
Behm_Herne_NeMo.pptxBehm_Herne_NeMo.pptx
Behm_Herne_NeMo.pptxFIWARE
 
Evangelists + iHubs Promo Slides.pptx
Evangelists + iHubs Promo Slides.pptxEvangelists + iHubs Promo Slides.pptx
Evangelists + iHubs Promo Slides.pptxFIWARE
 
Lukas Künzel Smart City Operating System.pptx
Lukas Künzel Smart City Operating System.pptxLukas Künzel Smart City Operating System.pptx
Lukas Künzel Smart City Operating System.pptxFIWARE
 
Pierre Golz Der Transformationsprozess im Konzern Stadt.pptx
Pierre Golz Der Transformationsprozess im Konzern Stadt.pptxPierre Golz Der Transformationsprozess im Konzern Stadt.pptx
Pierre Golz Der Transformationsprozess im Konzern Stadt.pptxFIWARE
 
Dennis Wendland_The i4Trust Collaboration Programme.pptx
Dennis Wendland_The i4Trust Collaboration Programme.pptxDennis Wendland_The i4Trust Collaboration Programme.pptx
Dennis Wendland_The i4Trust Collaboration Programme.pptxFIWARE
 
Ulrich Ahle_FIWARE.pptx
Ulrich Ahle_FIWARE.pptxUlrich Ahle_FIWARE.pptx
Ulrich Ahle_FIWARE.pptxFIWARE
 
Aleksandar Vrglevski _FIWARE DACH_OSIH.pptx
Aleksandar Vrglevski _FIWARE DACH_OSIH.pptxAleksandar Vrglevski _FIWARE DACH_OSIH.pptx
Aleksandar Vrglevski _FIWARE DACH_OSIH.pptxFIWARE
 
Water Quality - Lukas Kuenzel.pdf
Water Quality - Lukas Kuenzel.pdfWater Quality - Lukas Kuenzel.pdf
Water Quality - Lukas Kuenzel.pdfFIWARE
 
Cameron Brooks_FGS23_FIWARE Summit_Keynote_Cameron.pptx
Cameron Brooks_FGS23_FIWARE Summit_Keynote_Cameron.pptxCameron Brooks_FGS23_FIWARE Summit_Keynote_Cameron.pptx
Cameron Brooks_FGS23_FIWARE Summit_Keynote_Cameron.pptxFIWARE
 
FiWareSummit.msGIS-Data-to-Value.2023.06.12.pptx
FiWareSummit.msGIS-Data-to-Value.2023.06.12.pptxFiWareSummit.msGIS-Data-to-Value.2023.06.12.pptx
FiWareSummit.msGIS-Data-to-Value.2023.06.12.pptxFIWARE
 
Boris Otto_FGS2023_Opening- EU Innovations from Data_PUB_V1_BOt.pptx
Boris Otto_FGS2023_Opening- EU Innovations from Data_PUB_V1_BOt.pptxBoris Otto_FGS2023_Opening- EU Innovations from Data_PUB_V1_BOt.pptx
Boris Otto_FGS2023_Opening- EU Innovations from Data_PUB_V1_BOt.pptxFIWARE
 
Bjoern de Vidts_FGS23_Opening_athumi - bjord de vidts - personal data spaces....
Bjoern de Vidts_FGS23_Opening_athumi - bjord de vidts - personal data spaces....Bjoern de Vidts_FGS23_Opening_athumi - bjord de vidts - personal data spaces....
Bjoern de Vidts_FGS23_Opening_athumi - bjord de vidts - personal data spaces....FIWARE
 
Abdulrahman Ibrahim_FGS23 Opening - Abdulrahman Ibrahim.pdf
Abdulrahman Ibrahim_FGS23 Opening - Abdulrahman Ibrahim.pdfAbdulrahman Ibrahim_FGS23 Opening - Abdulrahman Ibrahim.pdf
Abdulrahman Ibrahim_FGS23 Opening - Abdulrahman Ibrahim.pdfFIWARE
 
FGS2023_Opening_Red Hat Keynote Andrea Battaglia.pdf
FGS2023_Opening_Red Hat Keynote Andrea Battaglia.pdfFGS2023_Opening_Red Hat Keynote Andrea Battaglia.pdf
FGS2023_Opening_Red Hat Keynote Andrea Battaglia.pdfFIWARE
 
HTAG_Skalierung_Plattform_lokal_final_versand.pptx
HTAG_Skalierung_Plattform_lokal_final_versand.pptxHTAG_Skalierung_Plattform_lokal_final_versand.pptx
HTAG_Skalierung_Plattform_lokal_final_versand.pptxFIWARE
 
WE_LoRaWAN _ IoT.pptx
WE_LoRaWAN  _ IoT.pptxWE_LoRaWAN  _ IoT.pptx
WE_LoRaWAN _ IoT.pptxFIWARE
 
EU Opp_Clara Pezuela - German chapter.pptx
EU Opp_Clara Pezuela - German chapter.pptxEU Opp_Clara Pezuela - German chapter.pptx
EU Opp_Clara Pezuela - German chapter.pptxFIWARE
 

More from FIWARE (20)

Behm_Herne_NeMo_akt.pptx
Behm_Herne_NeMo_akt.pptxBehm_Herne_NeMo_akt.pptx
Behm_Herne_NeMo_akt.pptx
 
Katharina Hogrebe Herne Digital Days.pdf
 Katharina Hogrebe Herne Digital Days.pdf Katharina Hogrebe Herne Digital Days.pdf
Katharina Hogrebe Herne Digital Days.pdf
 
Christoph Mertens_IDSA_Introduction to Data Spaces.pptx
Christoph Mertens_IDSA_Introduction to Data Spaces.pptxChristoph Mertens_IDSA_Introduction to Data Spaces.pptx
Christoph Mertens_IDSA_Introduction to Data Spaces.pptx
 
Behm_Herne_NeMo.pptx
Behm_Herne_NeMo.pptxBehm_Herne_NeMo.pptx
Behm_Herne_NeMo.pptx
 
Evangelists + iHubs Promo Slides.pptx
Evangelists + iHubs Promo Slides.pptxEvangelists + iHubs Promo Slides.pptx
Evangelists + iHubs Promo Slides.pptx
 
Lukas Künzel Smart City Operating System.pptx
Lukas Künzel Smart City Operating System.pptxLukas Künzel Smart City Operating System.pptx
Lukas Künzel Smart City Operating System.pptx
 
Pierre Golz Der Transformationsprozess im Konzern Stadt.pptx
Pierre Golz Der Transformationsprozess im Konzern Stadt.pptxPierre Golz Der Transformationsprozess im Konzern Stadt.pptx
Pierre Golz Der Transformationsprozess im Konzern Stadt.pptx
 
Dennis Wendland_The i4Trust Collaboration Programme.pptx
Dennis Wendland_The i4Trust Collaboration Programme.pptxDennis Wendland_The i4Trust Collaboration Programme.pptx
Dennis Wendland_The i4Trust Collaboration Programme.pptx
 
Ulrich Ahle_FIWARE.pptx
Ulrich Ahle_FIWARE.pptxUlrich Ahle_FIWARE.pptx
Ulrich Ahle_FIWARE.pptx
 
Aleksandar Vrglevski _FIWARE DACH_OSIH.pptx
Aleksandar Vrglevski _FIWARE DACH_OSIH.pptxAleksandar Vrglevski _FIWARE DACH_OSIH.pptx
Aleksandar Vrglevski _FIWARE DACH_OSIH.pptx
 
Water Quality - Lukas Kuenzel.pdf
Water Quality - Lukas Kuenzel.pdfWater Quality - Lukas Kuenzel.pdf
Water Quality - Lukas Kuenzel.pdf
 
Cameron Brooks_FGS23_FIWARE Summit_Keynote_Cameron.pptx
Cameron Brooks_FGS23_FIWARE Summit_Keynote_Cameron.pptxCameron Brooks_FGS23_FIWARE Summit_Keynote_Cameron.pptx
Cameron Brooks_FGS23_FIWARE Summit_Keynote_Cameron.pptx
 
FiWareSummit.msGIS-Data-to-Value.2023.06.12.pptx
FiWareSummit.msGIS-Data-to-Value.2023.06.12.pptxFiWareSummit.msGIS-Data-to-Value.2023.06.12.pptx
FiWareSummit.msGIS-Data-to-Value.2023.06.12.pptx
 
Boris Otto_FGS2023_Opening- EU Innovations from Data_PUB_V1_BOt.pptx
Boris Otto_FGS2023_Opening- EU Innovations from Data_PUB_V1_BOt.pptxBoris Otto_FGS2023_Opening- EU Innovations from Data_PUB_V1_BOt.pptx
Boris Otto_FGS2023_Opening- EU Innovations from Data_PUB_V1_BOt.pptx
 
Bjoern de Vidts_FGS23_Opening_athumi - bjord de vidts - personal data spaces....
Bjoern de Vidts_FGS23_Opening_athumi - bjord de vidts - personal data spaces....Bjoern de Vidts_FGS23_Opening_athumi - bjord de vidts - personal data spaces....
Bjoern de Vidts_FGS23_Opening_athumi - bjord de vidts - personal data spaces....
 
Abdulrahman Ibrahim_FGS23 Opening - Abdulrahman Ibrahim.pdf
Abdulrahman Ibrahim_FGS23 Opening - Abdulrahman Ibrahim.pdfAbdulrahman Ibrahim_FGS23 Opening - Abdulrahman Ibrahim.pdf
Abdulrahman Ibrahim_FGS23 Opening - Abdulrahman Ibrahim.pdf
 
FGS2023_Opening_Red Hat Keynote Andrea Battaglia.pdf
FGS2023_Opening_Red Hat Keynote Andrea Battaglia.pdfFGS2023_Opening_Red Hat Keynote Andrea Battaglia.pdf
FGS2023_Opening_Red Hat Keynote Andrea Battaglia.pdf
 
HTAG_Skalierung_Plattform_lokal_final_versand.pptx
HTAG_Skalierung_Plattform_lokal_final_versand.pptxHTAG_Skalierung_Plattform_lokal_final_versand.pptx
HTAG_Skalierung_Plattform_lokal_final_versand.pptx
 
WE_LoRaWAN _ IoT.pptx
WE_LoRaWAN  _ IoT.pptxWE_LoRaWAN  _ IoT.pptx
WE_LoRaWAN _ IoT.pptx
 
EU Opp_Clara Pezuela - German chapter.pptx
EU Opp_Clara Pezuela - German chapter.pptxEU Opp_Clara Pezuela - German chapter.pptx
EU Opp_Clara Pezuela - German chapter.pptx
 

Recently uploaded

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
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
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
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 Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
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
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 

Recently uploaded (20)

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
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
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
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 Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
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
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 

FIWARE Developers Week_ Introduction to Managing Context Information at Large Scale_presentation

  • 1. Managing Context Information at large scale (Introduction) Contact twitter @fermingalan @LeandroJGuillen Contact email fermin.galanmarquez@telefonica.com (Reference Orion Context Broker version: 0.16.0)
  • 2. Introduction • Context Management in FIWARE • Orion Context Broker • Creating and pulling data • Pushing data and notifications • Convenience operations Orion Context Broker 2
  • 3. Context Management in FIWARE The value of the attributes that characterize entities relevant to applications 3 API Bus • Location • No. passengers • Driver • Licence plate Person • Name-Surname • Birthday • Preferences • Location • ToDo list Shop • Location • Business name • Franchise • offerings My Application Context Information
  • 4. Context Management in FIWARE Context information may come from many sources using different interfaces and protocols … but programmers should just care about entities and their attributes … Context Information Context Information 4 A sensor in a pedestrian street The Public Bus Transport Management system It’s too hot! A person from his smartphone Context Information What’s the current temperature?
  • 5. Context Management in FIWARE Get notified when an update on context information takes place Bus = “X”, last_stop = “A”, arrived= “Yes” 5 push Notify me when bus “X” arrives at the bus stop “A” API
  • 6. Context Management in FIWARE Acting on devices can be as easy as changing the value of attributes linked to its corresponding entity Street Lamp lamp1.status  “on” Street lamp = “lamp1”, status= “on” 6 API
  • 7. Orion Context Broker • Main functions: – Context availability management – Context management • HTTP and REST-based – XML payload support – JSON payload support • Context in NGSI is based in an entity-attribute model: 7 Attributes • Name • Type • Value Entity • EntityId • EntityType “has” 1 n
  • 8. Orion Context Broker in a nutshell Orion Context Broker 8 Context Producers Context Consumers subscriptions update query notify notify update update DB 1026 1026
  • 9. Orion Context Broker – check health GET <cb_host>:1026/version { "orion" : { "version" : "0.16.0", "uptime" : "7 d, 21 h, 33 m, 39 s", "git_hash" : "238c3642ad67899da7c1ff08aba4b5c846b4901a", "compile_time" : "Mon Nov 3 11:27:18 CET 2014", "compiled_by" : "fermin", "compiled_in" : "centollo" } } 9
  • 10. Orion Context Broker - Operations Functions Operations 10 NGSI9 • Register, • Search and • Subscribe for context sources • registerContext • discoverContextAvailability • subscribeContextAvailability • updateContextAvailabilitySubscription • unsubscribeContextAvailability NGSI10 • Query, • Update and • Subscribe to context elements • updateContext • queryContext • subscribeContext • updateContextSubscription • unsubscribeContextSubscription
  • 11. Context Broker operations: create & pull data • Context Producers publish data/context elements by invoking the updateContext operation on a Context Broker. • Context Consumers can retrieve data/context elements by invoking the queryContext operation on a Context Broker 11 queryContext Context Consumer Context Producer updateContext Context Broker
  • 12. Quick Usage Example: Car Create POST localhost:1026/v1/updateContext ... { "contextElements": [ { "type": "Car", "isPattern": "false", "id": "Car1", "attributes": [ { "name": "speed", "type": "km/h", "value": “98" } ] } ], "updateAction": “APPEND" } 200 OK ... { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "speed", "type": "km/h", "value": "" } ], "id": "Car1", "isPattern": "false", "type": "Car" }, "statusCode": { "code": "200", "reasonPhrase": "OK" } } ] } 12
  • 13. Quick Usage Example: Car UpdateContext (1) POST localhost:1026/v1/updateContext ... { "contextElements": [ { "type": "Car", "isPattern": "false", "id": "Car1", "attributes": [ { "name": "speed", "type": "km/h", "value": "110" } ] } ], "updateAction": "UPDATE" } 200 OK ... { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "speed", "type": "km/h", "value": "" } ], "id": "Car1", "isPattern": "false", "type": "Car" }, "statusCode": { "code": "200", "reasonPhrase": "OK" } } ] } 13
  • 14. Quick Usage Example: Car QueryContext (1) POST <cb_host>:1026/v1/queryContext ... { "entities": [ { "type": "Car", "isPattern": "false", "id": "Car1" } ] } 200 OK ... { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "speed", "type": "km/h", "value": "110" } ], "id": "Car1", "isPattern": "false", "type": "Car" }, "statusCode": { "code": "200", "reasonPhrase": "OK" } } ] } 14
  • 15. Quick Usage Example: Car UpdateContext (2) POST localhost:1026/v1/updateContext ... { "contextElements": [ { "type": "Car", "isPattern": "false", "id": "Car1", "attributes": [ { "name": "speed", "type": "km/h", "value": "115" } ] } ], "updateAction": "UPDATE" } 200 OK ... { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "speed", "type": "km/h", "value": "" } ], "id": "Car1", "isPattern": "false", "type": "Car" }, "statusCode": { "code": "200", "reasonPhrase": "OK" } } ] } 15
  • 16. Quick Usage Example: Car QueryContext (2) 16 POST <cb_host>:1026/v1/queryContext ... { "entities": [ { "type": "Car", "isPattern": "false", "id": "Car1" } ] } 200 OK ... { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "speed", "type": "km/h", "value": "115" } ], "id": "Car1", "isPattern": "false", "type": "Car" }, "statusCode": { "code": "200", "reasonPhrase": "OK" } } ] }
  • 17. Quick Usage Example: Room Create (1) 17 POST localhost:1026/v1/updateContext ... { "contextElements": [ { "type": "Room", "isPattern": "false", "id": "Room1", "attributes": [ { "name": "temperature", "type": "centigrade", "value": "24" }, { "name": "pressure", "type": "mmHg", "value": "718" } ] } ], "updateAction": "APPEND" } 200 OK ... { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "temperature", "type": "centigrade", "value": "" }, { "name": "pressure", "type": "mmHg", "value": "" } ], "id": "Room1", "isPattern": "false", "type": "Room" }, "statusCode": { "code": "200", "reasonPhrase": "OK" } } ] }
  • 18. Quick Usage Example: Room UpdateContext (2) POST localhost:1026/v1/updateContext ... { "contextElements": [ { "type": "Room", "isPattern": "false", "id": "Room1", "attributes": [ { "name": "temperature", "type": "centigrade", "value": "25" }, { "name": "pressure", "type": "mmHg", "value": "720" } ] } ], "updateAction": "UPDATE" } 200 OK ... { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "temperature", "type": "centigrade", "value": "" }, { "name": "pressure", "type": "mmHg", "value": "" } ], "id": "Room1", "isPattern": "false", "type": "Room" }, "statusCode": { "code": "200", "reasonPhrase": "OK" } } ] } 18
  • 19. Quick Usage Example: Room QueryContext (1) 19 POST <cb_host>:1026/v1/queryContext ... { "entities": [ { "type": "Room", "isPattern": "false", "id": "Room1" } , "attributes": [ "temperature" ] ] } 200 OK ... { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "temperature", "type": "centigrade", "value": "25" } ], "id": "Room1", "isPattern": "false", "type": "Room" }, "statusCode": { "code": "200", "reasonPhrase": "OK" } } ] }
  • 20. Quick Usage Example: Room QueryContext (2) 20 POST <cb_host>:1026/v1/queryContext ... { "entities": [ { "type": "Room", "isPattern": "false", "id": "Room1" } ] } 200 OK ... { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "temperature", "type": "centigrade", "value": "25" }, { "name": "pressure", "type": "mmHg", "value": "720" } ], "id": "Room1", "isPattern": "false", "type": "Room" }, "statusCode": { "code": "200", "reasonPhrase": "OK" } } ] }
  • 21. Quick Usage Example: Room Create (2) 21 POST localhost:1026/v1/updateContext ... { "contextElements": [ { "type": "Room", "isPattern": "false", "id": "Room2", "attributes": [ { "name": "temperature", "type": "centigrade", "value": "33" }, { "name": "pressure", "type": "mmHg", "value": "722" } ] } ], "updateAction": "APPEND" } 200 OK ... { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "temperature", "type": "centigrade", "value": "" }, { "name": "pressure", "type": "mmHg", "value": "" } ], "id": "Room1", "isPattern": "false", "type": "Room" }, "statusCode": { "code": "200", "reasonPhrase": "OK" } } ] }
  • 22. Quick Usage Example: Room UpdateContext (2) POST localhost:1026/v1/updateContext ... { "contextElements": [ { "type": "Room", "isPattern": "false", "id": "Room2", "attributes": [ { "name": "temperature", "type": "centigrade", "value": "29" }, { "name": "pressure", "type": "mmHg", "value": "730" } ] } ], "updateAction": "UPDATE" } 200 OK ... { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "temperature", "type": "centigrade", "value": "" }, { "name": "pressure", "type": "mmHg", "value": "" } ], "id": "Room1", "isPattern": "false", "type": "Room" }, "statusCode": { "code": "200", "reasonPhrase": "OK" } } ] } 22
  • 23. Quick Usage Example: Room QueryContext (3) 23 POST <cb_host>:1026/v1/queryContext ... { "entities": [ { "type": "Room", "isPattern": "true", "id": "Room.*" } , "attributes": [ "temperature" ] ] } 200 OK ... { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "temperature", "type": "centigrade", "value": "25" } ], "id": "Room1", "isPattern": "false", "type": "Room" }, "statusCode": { "code": "200", "reasonPhrase": "OK" } }, { "contextElement": { "attributes": [ { "name": "temperature", "type": "centigrade", "value": "29" } ], "id": "Room2", "isPattern": "false", "type": "Room" }, "statusCode": { "code": "200", "reasonPhrase": "OK" } } ] }
  • 24. Context Broker operations: push data • Context Consumers can subscribe to receive context information that satisfy certain conditions using the subscribeContext. Such subscriptions may have a duration. • The Context Broker notifies updates on context information to subscribed Context Consumers by invoking the notifyContext operation they export subscription_id = subscribeContext (consumer, expr, duration) 24 Context Consumer notifyContext (subscription_id, data/context) Context Broker Application
  • 25. Quick Usage Example: Subscription POST <cb_host>:1026/v1/subscribeContext … { "entities": [ { "type": "Room", "isPattern": "false", "id": "Room1" } ], "attributes": [ "temperature" ], "reference": "http://<host>:<port>/publish", "duration": "P1M", "notifyConditions": [ { "type": "ONCHANGE", "condValues": [ "temperature" ] } ], "throttling": "PT5S" } 200 OK ... { "subscribeResponse": { "duration": "P1M", "subscriptionId": "51c0ac9ed714fb3b37d7d5a8", "throttling": "PT5S" } } 25
  • 26. Quick Usage Example: Notification 25 19 26
  • 27. Quick Usage Example: Notification POST http://<host>:<port>/publish … { "subscriptionId" : "51c0ac9ed714fb3b37d7d5a8", "originator" : "localhost", "contextResponses" : [ { "contextElement" : { "attributes" : [ { "name" : "temperature", "type" : "centigrade", "value" : "19" } ], "type" : "Room", "isPattern" : "false", "id" : "Room1" }, "statusCode" : { "code" : "200", "reasonPhrase" : "OK" } } ] } 27
  • 28. Convenience Operations • They are equivalent to previous standard operations in functionality • Avoid the need for POST-ing payloads in many cases or simplifying them considerably • Simple to write, more REST-like • They are not a substitute but a complement to standard NGSI operations • Four examples (there are many others): – Entities – Attributes – Subscriptions – Types 28
  • 29. Convenience Operations – Example 1 Entities • GET /v1/contextEntities/{entityID} • Retrieves an entity • POST /v1/contextEntities/{entityID} • Creates an entity • PUT /v1/contextEntities/{entityID} • Updates an entity • DELETE /v1/contextEntities/{entityID} • Deletes an entity
  • 30. Convenience Operations – Example 2 Attributes • GET /v1/contextEntities/{entityID}/attributes/{attrID} • Retrieves an attribute’s value • POST /v1/contextEntities/{entityID}/attributes/{attrID} • Creates a new attribute for an entity • PUT /v1/contextEntities/{entityID}/attributes/{attrID} • Updates an attribute’s value • DELETE /v1/contextEntities/{entityID}/attributes/{attrID} • Deletes an attribute
  • 31. Convenience Operations – Example 3 Subscriptions • POST /v1/contextSubscriptions • Creates a subscription • PUT /v1/contextSubscriptions/{subID} • Updates a subscription • DELETE /v1/contextSubscriptions/{subID} • Cancel a subscription
  • 32. Convenience Operations – Example 4 Entity Types • GET /v1/contextTypes • Retrieve a list of all entity types currently in Orion, including their corresponding attributes • GET /v1/contextTypes/{typeID} • Retrieve attributes associated to an entity type PRO TIP GET /v1/contextTypes?collapse=true Retrieves a list of all entity types without attribute info
  • 33. Managing Context Information at large scale (Advanced Topics) Contact wwitter @fermingalan @LeandroJGuillen Contact email fermin.galanmarquez@telefonica.com (Reference Orion Context Broker version: 0.16.0)
  • 34. Advanced Features • Pagination • Compound attribute values • Geo-location • Metadata • Registrations & context providers • Multitenancy • Entity service paths Orion Context Broker 34
  • 35. Pagination • Pagination helps clients organize query and discovery requests with a large number of responses. • Three URI parameters: – limit • Number of elements per page (default: 20, max: 1000) – offset • Number of elements to skip (default: 0) – details • Returns total elements (default: "off") 35
  • 36. Pagination • Example, querying the first 100 entries: POST <orion_host>:1026/v1/queryContext?limit=100&details=on • The first 100 elements are returned, along with the following errorCode in the response: "errorCode": { "code": "200", "details": "Count: 322", "reasonPhrase": "OK" } • Now we now there are 322 entities, we can keep querying the broker for them: – POST <orion_host>:1026/v1/queryContext?offset=100&limit=100 – POST <orion_host>:1026/v1/queryContext?offset=200&limit=100 – POST <orion_host>:1026/v1/queryContext?offset=300&limit=100 36
  • 37. Compound Attribute Values • An attribute can have a structured value. Vectors and key-value maps are supported. • It maps directly to JSON's objects and arrays. 37
  • 38. Compound Attribute Values • Example: we have a car whose four wheels' pressure we want to represent as a compound attribute for a car entity. We would create the car entity like this: { "contextElements": [ { "type": "Car", "isPattern": "false", "id": "Car1", "attributes": [ { "name": "tirePressure", "type": "kPa", "value": { "frontRight": "120", "frontLeft": "110", "backRight": "115", "backLeft": "130" } } ] } ], "updateAction": "APPEND" } 38
  • 39. Metadata • Users may attach metadata to attributes • Reserved metadatas: ID, Location, creDate and modDate • Examples: 39 … "attributes": [ { "name": "temperature", "type": "centigrade", "value": "26.5", "metadatas": [ { "name": "accuracy", "type": "float", "value": "0.9" } ] } ] … … "attributes": [ { "name": "temperature", "type": "centigrade", "value": "26.5", "metadatas": [ { "name": "average", "type": "centigrade", "value": "22.4" } ] } ] …
  • 40. Geo-location • Entities can have an attribute that specifies its location – Using a "location" metadata • Example: create an entity called Madrid …and create a couple more towns: • Leganés • Alcobendas POST <cb_host>:1026/v1/updateContext { "contextElements": [ { "type": "City", "isPattern": "false", "id": "Madrid", "attributes": [ { "name": "position", "type": "coords", "value": "40.418889, -3.691944", "metadatas": [ { "name": "location", "type": "string", "value": "WSG84" } ] } ] } ], "updateAction": "APPEND" } 40
  • 42. Geo-location – Circle POST <cb_host>:1026/v1/queryContext … { "entities": [ { "type": "City", "isPattern": "true", "id": ".*" } ], "restriction": { "scopes": [ { "type" : "FIWARE::Location", "value" : { "circle": { "centerLatitude": "40.418889", "centerLongitude": "-3.691944", "radius": "13500" } } } ] } } 42
  • 43. Geo-location – Inverse Circle POST <cb_host>:1026/v1/queryContext … { "entities": [ { "type": "City", "isPattern": "true", "id": ".*" } ], "restriction": { "scopes": [ { "type" : "FIWARE::Location", "value" : { "circle": { "centerLatitude": "40.418889", "centerLongitude": "-3.691944", "radius": "13500", "inverted": "true" } } } ] } } 43
  • 44. Registration & Context Providers • Uncached queries and updates 1. registerContext(provider= ) 5. data 4. data 44 Application ContextBroker ContextProvider db 2. queryContext(id) 3. queryContext(id) Context Consumer
  • 45. Registration & Context Providers POST <cb_host>:1026/v1/registry/registerContext … { "contextRegistrations": [ { "entities": [ { "type": "Car", "isPattern": "false", "id": "Car1" }, "attributes": [ { "name": "speed", "type": "km/h", "isDomain": "false" } ], "providingApplication": "http://contextprovider.com/Cars" } ], "duration": "P1M" } 200 OK ... { "duration" : "P1M", "registrationId" : "52a744b011f5816465943d58" } 45
  • 46. 46 POST <cb_host>:1026/v1/queryContext ... { "entities": [ { "type": "Car", "isPattern": "false", "id": "Car1" } ] } Registration & Context Providers data ContextBroker ContextProvider db queryContext(id) 200 OK ... { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "speed", "type": "km/h", "value": "100" } ], "id": "Car1", "isPattern": "false", "type": "Car" }, "statusCode": { "code": "200", "details": "Redirected to context provider http://contextprovider.com/Cars", "reasonPhrase": "OK" } } ] }
  • 47. Multitenancy • Simple multitenant model based on logical database separation. • It eases tenant-based authorization provided by other components. • Just use an additional HTTP header called "Fiware-Service", whose value is the tenant name. Example: Fiware-Service: Tenant1 Context Broker Tenant1 Tenant2 … 47
  • 48. Entity Service Paths • A service path is a hierarchical scope assigned to an entity at creation time (with updateContext). 48
  • 49. Entity Service Paths • In order to use a service path we put in a new HTTP header called “Fiware-ServicePath". For example: Fiware-ServicePath: Madrid/Gardens/ParqueNorte/Parterre1 • Properties: – A query on a service path only searches on the tree down the specified node. • For example, a query on ParqueNorte for street lights will return all street lights contained in ParqueNorte, ParqueNorte/Parterre1 and ParqueNorte/Parterre2 ParqueNorte Parterre1 Parterre2 49
  • 50. Entity Service Paths • Properties (continued): – You can OR a query using a comma (,) operator in the header • For example, to query all street lights that are either in ParqueSur or in ParqueOeste you would use: ServicePath: Madrid/Gardens/ParqueSur, Madrid/Gardens/ParqueOeste • You can OR up to 10 different scopes. – Maximum scope levels: 10 • Scope1/Scope2/.../Scope10 – You can have the same element IDs in different scopes (be careful with this!) – You can't change scope once the element is created – One entity can belong to only one scope A B A or B ParqueNorte Parterre1 light1 light1 50
  • 51. Bonus Track: Orion Context Explorer • Publicly available browser-based front-end for Orion Context Broker – Open source development by VM9 • Authentication integrated with FIWARE Lab account • Have a look! – http://orionexplorer.com/ 51
  • 53. Backup slides BACKUP SLIDES 53
  • 54. Integration with existing systems • Context adapters will be developed to interface with existing systems (e.g., municipal services management systems in a smart city) acting as Context Providers, Context Producers, or both • Some attributes from a given entity may be linked to a Context Provider while other attributes may be linked to Context Producers System A System B 54 queryContext (e1, attr1, attr2) queryContext (e1, attr1) Context Provider updateContext (e1, attr2) Context Consumer Application Context Broker
  • 55. Integration with sensor networks • The backend IoT Device Management GE enables creation and configuration of NGSI IoT Agents that connect to sensor networks • Each NGSI IoT Agent can behave as Context Consumers or Context Providers, or both OMA NGSI API (northbound interface) FIWARE Context Broker 55 IoT Agent-1 IoT Agent-2 IoT Agent-n IoT Agent Manager create/monitor FIWARE Backend IoT Device Management (southbound interfaces) ETSI M2M MQTT IETF CoAP
  • 56. Context Management in FIWARE • Federation of infrastructures (private/public regions) • Automated GE deployment Cloud • Complete Context Management Platform • Integration of Data and Media Content Data •Easy plug&play of devices using multiple protocols •Automated Measurements/Action Context updates IoT • Visualization of data (operation dashboards) •Publication of data sets/services Apps •Easy support of UIs with advanced web-based 3D and AR capabilities •Visual representation of context information. 56 Web UI •Advanced networking capabilities (SDN) and Middleware • Interface to robots I2ND •Security Monitoring •Built-in Identity/Access/Privacy Management Security
  • 57. FI-WARE Context/Data Management Platform Applications Context/Data Management Platform 57 OMA NGSI-9/10 Processing/Analysis Algorithms Gathered data is injected for processing/analysis Distributed Context Sources Complex Event Processing (PROTON) BigData (COSMOS) Processed data is injected for processing/analysi s Data generated either by CEP or BigData is published Gathered data injected for CEP-like processing Direct bigdata injection Programming of rules

Editor's Notes

  1. 1. En la primera slide poned una lista de puntos de lo que se puede hacer con ese GE/set de GEs. Me refiero en plan titulares, sin muchas explicaciones. 2. Mostrad un ejemplo representativo de uno o varios de los puntos anteriores.     Recordad: si lo hacéis como demo, poned slides con capturas y explicaciones también (así sirve también por si la demo os falla en ese momento ;-) ). 3. Mostrad un enlace donde pondremos esta semana las slides de la Campus que tienen los detalles de todos los puntos mencionados en 1.    (Poned la lista de ficheros pero dejad el enlace en blanco que ya lo pondremos a última hora).
  2. Orion Context Broker is an implementation of a context information broker with persistent storage It implements OMA NGSI9/10 specification NGSI9 is about context information availability (i.e. sources of context information) management NGSI10 is about context information itself
  3. Do the following sequence (showing the XML) registerContext Room1-temperature updateContext Room1-temperture = 30ºC queryContext Room1-temperature updateContext Room1-temperture = 31ºC queryContext Room1-temperature
  4. 1. En la primera slide poned una lista de puntos de lo que se puede hacer con ese GE/set de GEs. Me refiero en plan titulares, sin muchas explicaciones. 2. Mostrad un ejemplo representativo de uno o varios de los puntos anteriores.     Recordad: si lo hacéis como demo, poned slides con capturas y explicaciones también (así sirve también por si la demo os falla en ese momento ;-) ). 3. Mostrad un enlace donde pondremos esta semana las slides de la Campus que tienen los detalles de todos los puntos mencionados en 1.    (Poned la lista de ficheros pero dejad el enlace en blanco que ya lo pondremos a última hora).
  5. Do the following sequence (showing the XML) registerContext Room1-temperature updateContext Room1-temperture = 30ºC queryContext Room1-temperature updateContext Room1-temperture = 31ºC queryContext Room1-temperature
  6. Do the following sequence (showing the XML) registerContext Room1-temperature updateContext Room1-temperture = 30ºC queryContext Room1-temperature updateContext Room1-temperture = 31ºC queryContext Room1-temperature
  7. Do the following sequence (showing the XML) registerContext Room1-temperature updateContext Room1-temperture = 30ºC queryContext Room1-temperature updateContext Room1-temperture = 31ºC queryContext Room1-temperature
  8. Do the following sequence (showing the XML) registerContext Room1-temperature updateContext Room1-temperture = 30ºC queryContext Room1-temperature updateContext Room1-temperture = 31ºC queryContext Room1-temperature
  9. Do the following sequence (showing the XML) registerContext Room1-temperature updateContext Room1-temperture = 30ºC queryContext Room1-temperature updateContext Room1-temperture = 31ºC queryContext Room1-temperature
  10. Do the following sequence (showing the XML) registerContext Room1-temperature updateContext Room1-temperture = 30ºC queryContext Room1-temperature updateContext Room1-temperture = 31ºC queryContext Room1-temperature
  11. Do the following sequence (showing the XML) registerContext Room1-temperature updateContext Room1-temperture = 30ºC queryContext Room1-temperature updateContext Room1-temperture = 31ºC queryContext Room1-temperature
  12. Do the following sequence (showing the XML) registerContext Room1-temperature updateContext Room1-temperture = 30ºC queryContext Room1-temperature updateContext Room1-temperture = 31ºC queryContext Room1-temperature
  13. Do the following sequence (showing the XML) registerContext Room1-temperature updateContext Room1-temperture = 30ºC queryContext Room1-temperature updateContext Room1-temperture = 31ºC queryContext Room1-temperature
  14. Do the following sequence (showing the XML) registerContext Room1-temperature updateContext Room1-temperture = 30ºC queryContext Room1-temperature updateContext Room1-temperture = 31ºC queryContext Room1-temperature
  15. Do the following sequence (showing the XML) registerContext Room1-temperature updateContext Room1-temperture = 30ºC queryContext Room1-temperature updateContext Room1-temperture = 31ºC queryContext Room1-temperature
  16. Do the following sequence (showing the XML) registerContext Room1-temperature updateContext Room1-temperture = 30ºC queryContext Room1-temperature updateContext Room1-temperture = 31ºC queryContext Room1-temperature
  17. Do the following sequence (showing the XML) registerContext Room1-temperature updateContext Room1-temperture = 30ºC queryContext Room1-temperature updateContext Room1-temperture = 31ºC queryContext Room1-temperature
  18. Do the following sequence (showing the XML) registerContext Room1-temperature updateContext Room1-temperture = 30ºC queryContext Room1-temperature updateContext Room1-temperture = 31ºC queryContext Room1-temperature
  19. Do the following sequence (showing the XML) registerContext Room1-temperature updateContext Room1-temperture = 30ºC queryContext Room1-temperature updateContext Room1-temperture = 31ºC queryContext Room1-temperature