SlideShare a Scribd company logo
1 of 63
Context-aware application development with
FIWARE
FIWARE Orion Context Broker REST API
February 3rd, 2015 – Campus Party Brazil
Contact twitter
@fermingalan
Contact email
fermin.galanmarquez@telefonica.com
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 …
4
A sensor in a
pedestrian street
The Public Bus
Transport Management
system
A person from his smartphone
It’s too hot!
What’s the current temperature?
Context
Information
Context
Information
Context
Information
Context Management in FIWARE
Get notified when an update on context information takes place
5
Bus = “X”, last_stop = “A”,
arrived= “Yes”
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
6
Street lamp = “lamp1”, status= “on”
Street Lamp lamp1.status  “on”
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
1 n
“has”
Orion Context Broker in a nutshell
8
Orion Context Broker
Context
Producers
Context
Consumers
subscriptions
update
query
notify
notify
update
update
DB
1026
1026
GET <cb_host>:1026/version
{
"orion" : {
"version" : "0.17.0",
"uptime" : "7 d, 21 h, 33 m, 39 s",
"git_hash" : "238c3642ad67899da7c1ff08aba4b5c846b4901a",
"compile_time" : "Mon Dec 1 11:27:18 CET 2014",
"compiled_by" : "fermin",
"compiled_in" : "centollo"
}
}
9
Orion Context Broker – check health
Orion Context Broker - Operations
10
Functions Operations
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
Context Consumer
queryContext
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": "float",
"value": “98"
}
]
}
],
"updateAction": “APPEND"
}
200 OK
...
{
"contextResponses": [
{
"contextElement": {
"attributes": [
{
"name": "speed",
"type": "float",
"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": "float",
"value": "110"
}
]
}
],
"updateAction": "UPDATE"
}
200 OK
...
{
"contextResponses": [
{
"contextElement": {
"attributes": [
{
"name": "speed",
"type": "float",
"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": "float",
"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": "float",
"value": "115"
}
]
}
],
"updateAction": "UPDATE"
}
200 OK
...
{
"contextResponses": [
{
"contextElement": {
"attributes": [
{
"name": "speed",
"type": "float",
"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": "float",
"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": "float",
"value": "24"
},
{
"name": "pressure",
"type": "integer",
"value": "718"
}
]
}
],
"updateAction": "APPEND"
}
200 OK
...
{
"contextResponses": [
{
"contextElement": {
"attributes": [
{
"name": "temperature",
"type": "float",
"value": ""
},
{
"name": "pressure",
"type": "integer",
"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": "float",
"value": "25"
},
{
"name": "pressure",
"type": "integer",
"value": "720"
}
]
}
],
"updateAction": "UPDATE"
}
200 OK
...
{
"contextResponses": [
{
"contextElement": {
"attributes": [
{
"name": "temperature",
"type": "float",
"value": ""
},
{
"name": "pressure",
"type": "integer",
"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": "float",
"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": "float",
"value": "25"
},
{
"name": "pressure",
"type": "integer",
"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": "float",
"value": "33"
},
{
"name": "pressure",
"type": "integer",
"value": "722"
}
]
}
],
"updateAction": "APPEND"
}
200 OK
...
{
"contextResponses": [
{
"contextElement": {
"attributes": [
{
"name": "temperature",
"type": "float",
"value": ""
},
{
"name": "pressure",
"type": "integer",
"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": "float",
"value": "29"
},
{
"name": "pressure",
"type": "integer",
"value": "730"
}
]
}
],
"updateAction": "UPDATE"
}
200 OK
...
{
"contextResponses": [
{
"contextElement": {
"attributes": [
{
"name": "temperature",
"type": "float",
"value": ""
},
{
"name": "pressure",
"type": "integer",
"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": "float",
"value": "25"
}
],
"id": "Room1",
"isPattern": "false",
"type": "Room"
},
"statusCode": {
"code": "200",
"reasonPhrase": "OK"
}
},
{
"contextElement": {
"attributes": [
{
"name": "temperature",
"type": "float",
"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
24
subscription_id = subscribeContext (consumer, expr, duration)
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
25
19
Quick Usage Example: Notification
26
POST http://<host>:<port>/publish
…
{
"subscriptionId" : "51c0ac9ed714fb3b37d7d5a8",
"originator" : "localhost",
"contextResponses" : [
{
"contextElement" : {
"attributes" : [
{
"name" : "temperature",
"type" : "float",
"value" : "19"
}
],
"type" : "Room",
"isPattern" : "false",
"id" : "Room1"
},
"statusCode" : {
"code" : "200",
"reasonPhrase" : "OK"
}
}
]
}
Quick Usage Example: Notification
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
Usage Examples
Contact wwitter
@fermingalan
Contact email
fermin.galanmarquez@telefonica.com
Usage Examples
• Freeboard
• Weather Bot
• Orion Context Explorer
• Hackathon setup
Orion Context Broker
34
Usage Examples
• Freeboard
• Weather Bot
• Orion Context Explorer
• Hackathon setup
Orion Context Broker
35
Freeboard
• Playing the context consumer role
36
Freeboard
• Orion freeboard connector
– https://github.com/telefonicaid/fiware-
dataviz/tree/develop/FreeBoard-Orion-Plugin
• Very easy to use! (even in your local machine)
• The fiware-dataviz repository includes
connector for other visualization tools, along with
documentation on how to use them
– orion2duckboard connector
– orion2cartodb connector
37
Weather Bot
• Running at FIWARE Campus stand
38
FIWARE
Lab
Cloud
IoTA
Orion
orionlive.fiware.org
Campus Party
Net
Internet
REST client REST client REST client
…
UDP 60001
orion2twitter
Internet
Internet
@FIWAREOrionLiveTCP 80
Hackathon Setup
39
IoTA-TT IoTA-LW
Orion
hackfest.testbed.fiware.org
TT TTTT
Campus Party
Net
User Device User DeviceUser Device
Internet
Contex-aware
application
Contex-aware
application
Contex-aware
application…
… …
TCP 1026
TCP 80 UDP 9500
FIWARE
LabCloud
Orion
IoTA-UL2.0
eidas4.testbed.fiware.orgTCP 1026
TCP 8002
Commands
API
TCP 5371
Internet
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/
40
Advanced Topics
Contact wwitter
@fermingalan
Contact email
fermin.galanmarquez@telefonica.com
• 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")
Pagination
42
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
43
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.
44
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"
}
45
Metadata
• Users may attach metadata to attributes
• Reserved metadatas: ID, Location, creDate and modDate
• Examples:
46
…
"attributes": [
{
"name": "temperature",
"type": "float",
"value": "26.5",
"metadatas": [
{
"name": "accuracy",
"type": "float",
"value": "0.9"
}
]
}
]
…
…
"attributes": [
{
"name": "temperature",
"type": "float",
"value": "26.5",
"metadatas": [
{
"name": "average",
"type": "float",
"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"
}
47
Geo-location – Circle
48
Geo-location – Circle
49
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"
}
}
}
]
}
}
Geo-location – Inverse Circle
50
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"
}
}
}
]
}
}
Registration & Context Providers
• Uncached queries and updates
51
Application
ContextBroker ContextProvider
1. registerContext(provider= )
db
2. queryContext(id) 3. queryContext(id)
4. data5. data
Context
Consumer
POST <cb_host>:1026/v1/registry/registerContext
…
{
"contextRegistrations": [
{
"entities": [
{
"type": "Car",
"isPattern": "false",
"id": "Car1"
},
"attributes": [
{
"name": "speed",
"type": "float",
"isDomain": "false"
}
],
"providingApplication": "http://contextprovider.com/Cars"
}
],
"duration": "P1M"
}
200 OK
...
{
"duration" : "P1M",
"registrationId" : "52a744b011f5816465943d58"
}
52
Registration & Context Providers
53
POST <cb_host>:1026/v1/queryContext
...
{
"entities": [
{
"type": "Car",
"isPattern": "false",
"id": "Car1"
}
]
}
Registration & Context Providers
ContextBroker ContextProvider
db
queryContext(id)
data
200 OK
...
{
"contextResponses": [
{
"contextElement": {
"attributes": [
{
"name": "speed",
"type": "float",
"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
…
54
Entity Service Paths
• A service path is a hierarchical scope assigned to an entity
at creation time (with updateContext).
55
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 will look only into the specified node
– Use "ParentNode/#" to include all child nodes
– Queries without Fiware-ServicePath resolve to "/#"
– Entities will fall in the "/" node by default
ParqueNorte
Parterre2Parterre1
56
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
– It works not only with queries, but also with
subscriptions/notifications
ParqueNorte
Parterre1
light1
light1
A B
A or B
57
Thanks!Thanks!
BACKUP SLIDES
Backup slides
59
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
60
queryContext (e1,
attr1, attr2)
Context Provider
queryContext (e1,
attr1)
Context Consumer
updateContext (e1,
attr2)
Application
Context Broker
System BSystem A
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
61
FIWARE Context Broker
IoT
Agent-1
IoT
Agent-2
IoT
Agent-n
IoT Agent
Manager
create/monitor
FIWARE Backend IoT
Device Management
OMA NGSI API (northbound interface)
(southbound interfaces)
MQTTETSI M2M IETF CoAP
62
• Federation of infrastructures (private/public regions)
• Automated GE deploymentCloud
• Complete Context Management Platform
• Integration of Data and Media ContentData
•Easy plug&play of devices using multiple protocols
•Automated Measurements/Action Context updatesIoT
•Visualization of data (operation dashboards)
•Publication of data sets/servicesApps
•Easy support of UIs with advanced web-based 3D and AR
capabilities
•Visual representation of context information.
Web UI
•Advanced networking capabilities (SDN) and Middleware
•Interface to robotsI2ND
•Security Monitoring
•Built-in Identity/Access/Privacy ManagementSecurity
Context Management in FIWARE
FI-WARE Context/Data Management Platform
63
Context/Data Management Platform
Applications
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

Orion Context Broker 20220301
Orion Context Broker 20220301Orion Context Broker 20220301
Orion Context Broker 20220301Fermin Galan
 
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
 
FIWARE NGSI: Managing Context Information at Large Scale
FIWARE NGSI: Managing Context Information at Large ScaleFIWARE NGSI: Managing Context Information at Large Scale
FIWARE NGSI: Managing Context Information at Large ScaleFIWARE
 
Orion Context Broker 20210907
Orion Context Broker 20210907Orion Context Broker 20210907
Orion Context Broker 20210907Fermin Galan
 
Orion Context Broker 20220127
Orion Context Broker 20220127Orion Context Broker 20220127
Orion Context Broker 20220127Fermin Galan
 
NGSIv2 Overview for Developers That Already Know NGSIv1
NGSIv2 Overview for Developers That Already Know NGSIv1NGSIv2 Overview for Developers That Already Know NGSIv1
NGSIv2 Overview for Developers That Already Know NGSIv1Fermin 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
 
Orion Context Broker 1.15.0
Orion Context Broker 1.15.0Orion Context Broker 1.15.0
Orion Context Broker 1.15.0Fermin Galan
 
Orion Context Broker 20210412
Orion Context Broker 20210412Orion Context Broker 20210412
Orion Context Broker 20210412Fermin Galan
 
Orion Context Broker 20190214
Orion Context Broker 20190214Orion Context Broker 20190214
Orion Context Broker 20190214Fermin Galan
 
Fiware IoT_IDAS_intro_ul20_v2
Fiware IoT_IDAS_intro_ul20_v2Fiware IoT_IDAS_intro_ul20_v2
Fiware IoT_IDAS_intro_ul20_v2FIWARE
 
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
 
Fiware Developers Week IoT Agents (Advanced)
Fiware Developers Week IoT Agents (Advanced)Fiware Developers Week IoT Agents (Advanced)
Fiware Developers Week IoT Agents (Advanced)dmoranj
 
Orion Context Broker 20210602
Orion Context Broker 20210602Orion Context Broker 20210602
Orion Context Broker 20210602Fermin Galan
 
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
 
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
 
IoT Agents (With Lightweight M2M)
IoT Agents (With Lightweight M2M)IoT Agents (With Lightweight M2M)
IoT Agents (With Lightweight M2M)dmoranj
 
(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
 

What's hot (20)

Orion Context Broker 20220301
Orion Context Broker 20220301Orion Context Broker 20220301
Orion Context Broker 20220301
 
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 NGSI: Managing Context Information at Large Scale
FIWARE NGSI: Managing Context Information at Large ScaleFIWARE NGSI: Managing Context Information at Large Scale
FIWARE NGSI: Managing Context Information at Large Scale
 
Orion Context Broker 20210907
Orion Context Broker 20210907Orion Context Broker 20210907
Orion Context Broker 20210907
 
Orion Context Broker 20220127
Orion Context Broker 20220127Orion Context Broker 20220127
Orion Context Broker 20220127
 
NGSIv2 Overview for Developers That Already Know NGSIv1
NGSIv2 Overview for Developers That Already Know NGSIv1NGSIv2 Overview for Developers That Already Know NGSIv1
NGSIv2 Overview for Developers That Already Know NGSIv1
 
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 Context Broker
FIWARE Context BrokerFIWARE Context Broker
FIWARE Context Broker
 
Orion Context Broker 1.15.0
Orion Context Broker 1.15.0Orion Context Broker 1.15.0
Orion Context Broker 1.15.0
 
Introduction to FIWARE IoT
Introduction to FIWARE IoTIntroduction to FIWARE IoT
Introduction to FIWARE IoT
 
Orion Context Broker 20210412
Orion Context Broker 20210412Orion Context Broker 20210412
Orion Context Broker 20210412
 
Orion Context Broker 20190214
Orion Context Broker 20190214Orion Context Broker 20190214
Orion Context Broker 20190214
 
Fiware IoT_IDAS_intro_ul20_v2
Fiware IoT_IDAS_intro_ul20_v2Fiware IoT_IDAS_intro_ul20_v2
Fiware IoT_IDAS_intro_ul20_v2
 
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
 
Fiware Developers Week IoT Agents (Advanced)
Fiware Developers Week IoT Agents (Advanced)Fiware Developers Week IoT Agents (Advanced)
Fiware Developers Week IoT Agents (Advanced)
 
Orion Context Broker 20210602
Orion Context Broker 20210602Orion Context Broker 20210602
Orion Context Broker 20210602
 
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...
 
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...
 
IoT Agents (With Lightweight M2M)
IoT Agents (With Lightweight M2M)IoT Agents (With Lightweight M2M)
IoT Agents (With Lightweight M2M)
 
(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
 

Viewers also liked

context aware computing
context aware computingcontext aware computing
context aware computingswati sonawane
 
Conecta con la Internet de las Cosas desde FI-WARE, mención 1
Conecta con la Internet de las Cosas desde FI-WARE, mención 1Conecta con la Internet de las Cosas desde FI-WARE, mención 1
Conecta con la Internet de las Cosas desde FI-WARE, mención 1Fermin Galan
 
Io t basic-exercises
Io t basic-exercisesIo t basic-exercises
Io t basic-exercisesFermin Galan
 
The Context Aware Network A Holistic Approach to BYOD
The Context Aware Network A Holistic Approach to BYODThe Context Aware Network A Holistic Approach to BYOD
The Context Aware Network A Holistic Approach to BYODCisco Canada
 
Orion Context Broker Exercises
Orion Context Broker ExercisesOrion Context Broker Exercises
Orion Context Broker ExercisesFermin Galan
 
Context awareness and Resilience Engineering
Context awareness and Resilience EngineeringContext awareness and Resilience Engineering
Context awareness and Resilience EngineeringHenry Muccini
 
Context Aware Computing for Personalised Healthcare
Context Aware Computing for Personalised HealthcareContext Aware Computing for Personalised Healthcare
Context Aware Computing for Personalised HealthcareSaurav Gupta
 
Context Aware Computing
Context Aware ComputingContext Aware Computing
Context Aware Computingencircle.io
 
Thesis presentation final
Thesis presentation finalThesis presentation final
Thesis presentation finalRobin De Croon
 
[2C3]Developing context-aware applications
[2C3]Developing context-aware applications[2C3]Developing context-aware applications
[2C3]Developing context-aware applicationsNAVER D2
 
[SOCRS2013]Differential Context Modeling in Collaborative Filtering
[SOCRS2013]Differential Context Modeling in Collaborative Filtering[SOCRS2013]Differential Context Modeling in Collaborative Filtering
[SOCRS2013]Differential Context Modeling in Collaborative FilteringYONG ZHENG
 
Orion Context Broker workshop (CPMX5)
Orion Context Broker workshop (CPMX5)Orion Context Broker workshop (CPMX5)
Orion Context Broker workshop (CPMX5)Fermin Galan
 
Adaptive middleware of context aware application in smart homes
Adaptive middleware of context aware application in smart homesAdaptive middleware of context aware application in smart homes
Adaptive middleware of context aware application in smart homesambitlick
 
A short & brief introduction on context and context aware computing
A short & brief introduction on context and context aware computingA short & brief introduction on context and context aware computing
A short & brief introduction on context and context aware computingZohreh Dehghani Champiri
 
Context-Aware Recommender Systems for Mobile Devices
Context-Aware Recommender Systems for Mobile DevicesContext-Aware Recommender Systems for Mobile Devices
Context-Aware Recommender Systems for Mobile DevicesMatthias Braunhofer
 
Context-aware Mobile Computing - a Literature Review
Context-aware Mobile Computing - a Literature ReviewContext-aware Mobile Computing - a Literature Review
Context-aware Mobile Computing - a Literature ReviewThiwanka Makumburage
 
UX for emerging technologies & context-aware computing
UX for emerging technologies & context-aware computingUX for emerging technologies & context-aware computing
UX for emerging technologies & context-aware computingPrithvi Raj
 
Design of Capability Delivery Adjustments @ASDENCA2016
Design of Capability Delivery Adjustments @ASDENCA2016Design of Capability Delivery Adjustments @ASDENCA2016
Design of Capability Delivery Adjustments @ASDENCA2016CaaS EU FP7 Project
 

Viewers also liked (20)

context aware computing
context aware computingcontext aware computing
context aware computing
 
Conecta con la Internet de las Cosas desde FI-WARE, mención 1
Conecta con la Internet de las Cosas desde FI-WARE, mención 1Conecta con la Internet de las Cosas desde FI-WARE, mención 1
Conecta con la Internet de las Cosas desde FI-WARE, mención 1
 
Io t basic-exercises
Io t basic-exercisesIo t basic-exercises
Io t basic-exercises
 
The Context Aware Network A Holistic Approach to BYOD
The Context Aware Network A Holistic Approach to BYODThe Context Aware Network A Holistic Approach to BYOD
The Context Aware Network A Holistic Approach to BYOD
 
Orion Context Broker Exercises
Orion Context Broker ExercisesOrion Context Broker Exercises
Orion Context Broker Exercises
 
Context awareness and Resilience Engineering
Context awareness and Resilience EngineeringContext awareness and Resilience Engineering
Context awareness and Resilience Engineering
 
Context Aware Computing for Personalised Healthcare
Context Aware Computing for Personalised HealthcareContext Aware Computing for Personalised Healthcare
Context Aware Computing for Personalised Healthcare
 
Context Aware Computing
Context Aware ComputingContext Aware Computing
Context Aware Computing
 
Thesis presentation final
Thesis presentation finalThesis presentation final
Thesis presentation final
 
[2C3]Developing context-aware applications
[2C3]Developing context-aware applications[2C3]Developing context-aware applications
[2C3]Developing context-aware applications
 
[SOCRS2013]Differential Context Modeling in Collaborative Filtering
[SOCRS2013]Differential Context Modeling in Collaborative Filtering[SOCRS2013]Differential Context Modeling in Collaborative Filtering
[SOCRS2013]Differential Context Modeling in Collaborative Filtering
 
Orion Context Broker workshop (CPMX5)
Orion Context Broker workshop (CPMX5)Orion Context Broker workshop (CPMX5)
Orion Context Broker workshop (CPMX5)
 
Context as a Service
Context as a ServiceContext as a Service
Context as a Service
 
Adaptive middleware of context aware application in smart homes
Adaptive middleware of context aware application in smart homesAdaptive middleware of context aware application in smart homes
Adaptive middleware of context aware application in smart homes
 
Thesis Presentation
Thesis PresentationThesis Presentation
Thesis Presentation
 
A short & brief introduction on context and context aware computing
A short & brief introduction on context and context aware computingA short & brief introduction on context and context aware computing
A short & brief introduction on context and context aware computing
 
Context-Aware Recommender Systems for Mobile Devices
Context-Aware Recommender Systems for Mobile DevicesContext-Aware Recommender Systems for Mobile Devices
Context-Aware Recommender Systems for Mobile Devices
 
Context-aware Mobile Computing - a Literature Review
Context-aware Mobile Computing - a Literature ReviewContext-aware Mobile Computing - a Literature Review
Context-aware Mobile Computing - a Literature Review
 
UX for emerging technologies & context-aware computing
UX for emerging technologies & context-aware computingUX for emerging technologies & context-aware computing
UX for emerging technologies & context-aware computing
 
Design of Capability Delivery Adjustments @ASDENCA2016
Design of Capability Delivery Adjustments @ASDENCA2016Design of Capability Delivery Adjustments @ASDENCA2016
Design of Capability Delivery Adjustments @ASDENCA2016
 

Similar to Context-aware application development with FIWARE #CPBR8

Orion Context Broker 20230606
Orion Context Broker 20230606Orion Context Broker 20230606
Orion Context Broker 20230606Fermin Galan
 
Orion Context Broker 20230602
Orion Context Broker 20230602Orion Context Broker 20230602
Orion Context Broker 20230602Fermin Galan
 
Orion Context Broker introduction 20240227
Orion Context Broker introduction 20240227Orion Context Broker introduction 20240227
Orion Context Broker introduction 20240227Fermin Galan
 
Orion Context Broker 20221220
Orion Context Broker 20221220Orion Context Broker 20221220
Orion Context Broker 20221220Fermin Galan
 
Orion Context Broker introduction 20240115
Orion Context Broker introduction 20240115Orion Context Broker introduction 20240115
Orion Context Broker introduction 20240115Fermin Galan
 
FIWARE Tech Summit - FIWARE NGSIv2 Introduction
FIWARE Tech Summit - FIWARE NGSIv2 IntroductionFIWARE Tech Summit - FIWARE NGSIv2 Introduction
FIWARE Tech Summit - FIWARE NGSIv2 IntroductionFIWARE
 
Orion Context Broker 20211022
Orion Context Broker 20211022Orion Context Broker 20211022
Orion Context Broker 20211022Fermin Galan
 
Orion Context Broker 20211209
Orion Context Broker 20211209Orion Context Broker 20211209
Orion Context Broker 20211209Fermin Galan
 
Orion Context Broker 20220526
Orion Context Broker 20220526Orion Context Broker 20220526
Orion Context Broker 20220526Fermin Galan
 
Orion Context Broker 20210309
Orion Context Broker 20210309Orion Context Broker 20210309
Orion Context Broker 20210309Fermin Galan
 
Orion Context Broker 2020-10-29
Orion Context Broker 2020-10-29Orion Context Broker 2020-10-29
Orion Context Broker 2020-10-29Fermin Galan
 
Orion Context Broker 2020-10-28
Orion Context Broker 2020-10-28Orion Context Broker 2020-10-28
Orion Context Broker 2020-10-28Fermin Galan
 
Orion Context Broker 20191021
Orion Context Broker 20191021Orion Context Broker 20191021
Orion Context Broker 20191021Fermin Galan
 
Orion Context Broker 20180928
Orion Context Broker 20180928Orion Context Broker 20180928
Orion Context Broker 20180928Fermin Galan
 
Orion Context Broker 20181218
Orion Context Broker 20181218Orion Context Broker 20181218
Orion Context Broker 20181218Fermin Galan
 
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
 
FIWARE Training: IoT and Legacy
FIWARE Training: IoT and LegacyFIWARE Training: IoT and Legacy
FIWARE Training: IoT and LegacyFIWARE
 
TMForum Open:Hack - FIWARE Training Session
TMForum Open:Hack - FIWARE Training SessionTMForum Open:Hack - FIWARE Training Session
TMForum Open:Hack - FIWARE Training SessionAitor Magán García
 
Building Boston Rail - An Alexa Skill
Building Boston Rail - An Alexa SkillBuilding Boston Rail - An Alexa Skill
Building Boston Rail - An Alexa SkillCharles J Christina
 

Similar to Context-aware application development with FIWARE #CPBR8 (20)

Orion Context Broker 20230606
Orion Context Broker 20230606Orion Context Broker 20230606
Orion Context Broker 20230606
 
Orion Context Broker 20230602
Orion Context Broker 20230602Orion Context Broker 20230602
Orion Context Broker 20230602
 
Orion Context Broker introduction 20240227
Orion Context Broker introduction 20240227Orion Context Broker introduction 20240227
Orion Context Broker introduction 20240227
 
Orion Context Broker 20221220
Orion Context Broker 20221220Orion Context Broker 20221220
Orion Context Broker 20221220
 
Orion Context Broker introduction 20240115
Orion Context Broker introduction 20240115Orion Context Broker introduction 20240115
Orion Context Broker introduction 20240115
 
FIWARE Tech Summit - FIWARE NGSIv2 Introduction
FIWARE Tech Summit - FIWARE NGSIv2 IntroductionFIWARE Tech Summit - FIWARE NGSIv2 Introduction
FIWARE Tech Summit - FIWARE NGSIv2 Introduction
 
Orion Context Broker 20211022
Orion Context Broker 20211022Orion Context Broker 20211022
Orion Context Broker 20211022
 
Orion Context Broker 20211209
Orion Context Broker 20211209Orion Context Broker 20211209
Orion Context Broker 20211209
 
Orion Context Broker 20220526
Orion Context Broker 20220526Orion Context Broker 20220526
Orion Context Broker 20220526
 
Orion Context Broker 20210309
Orion Context Broker 20210309Orion Context Broker 20210309
Orion Context Broker 20210309
 
Orion Context Broker 2020-10-29
Orion Context Broker 2020-10-29Orion Context Broker 2020-10-29
Orion Context Broker 2020-10-29
 
Orion Context Broker 2020-10-28
Orion Context Broker 2020-10-28Orion Context Broker 2020-10-28
Orion Context Broker 2020-10-28
 
Orion Context Broker 20191021
Orion Context Broker 20191021Orion Context Broker 20191021
Orion Context Broker 20191021
 
Orion Context Broker 20180928
Orion Context Broker 20180928Orion Context Broker 20180928
Orion Context Broker 20180928
 
Orion Context Broker 20181218
Orion Context Broker 20181218Orion Context Broker 20181218
Orion Context Broker 20181218
 
FIWARE Context Broker
FIWARE Context BrokerFIWARE Context Broker
FIWARE Context Broker
 
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 Training: IoT and Legacy
FIWARE Training: IoT and LegacyFIWARE Training: IoT and Legacy
FIWARE Training: IoT and Legacy
 
TMForum Open:Hack - FIWARE Training Session
TMForum Open:Hack - FIWARE Training SessionTMForum Open:Hack - FIWARE Training Session
TMForum Open:Hack - FIWARE Training Session
 
Building Boston Rail - An Alexa Skill
Building Boston Rail - An Alexa SkillBuilding Boston Rail - An Alexa Skill
Building Boston Rail - An Alexa Skill
 

More from Fermin Galan

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
 
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
 
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
 
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
 
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
 
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
 
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
 
Orion Context Broker NGSIv2 Overview for Developers That Already Know NGSIv1 ...
Orion Context Broker NGSIv2 Overview for Developers That Already Know NGSIv1 ...Orion Context Broker NGSIv2 Overview for Developers That Already Know NGSIv1 ...
Orion Context Broker NGSIv2 Overview for Developers That Already Know NGSIv1 ...Fermin Galan
 
Orion Context Broker NGSIv2 Overview for Developers That Already Know NGSIv1 ...
Orion Context Broker NGSIv2 Overview for Developers That Already Know NGSIv1 ...Orion Context Broker NGSIv2 Overview for Developers That Already Know NGSIv1 ...
Orion Context Broker NGSIv2 Overview for Developers That Already Know NGSIv1 ...Fermin Galan
 
Orion contextbroker ngs-iv2-overview-for-developers-that-already-know-ngsiv1-...
Orion contextbroker ngs-iv2-overview-for-developers-that-already-know-ngsiv1-...Orion contextbroker ngs-iv2-overview-for-developers-that-already-know-ngsiv1-...
Orion contextbroker ngs-iv2-overview-for-developers-that-already-know-ngsiv1-...Fermin Galan
 

More from Fermin Galan (10)

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...
 
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...
 
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...
 
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...
 
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...
 
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...
 
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...
 
Orion Context Broker NGSIv2 Overview for Developers That Already Know NGSIv1 ...
Orion Context Broker NGSIv2 Overview for Developers That Already Know NGSIv1 ...Orion Context Broker NGSIv2 Overview for Developers That Already Know NGSIv1 ...
Orion Context Broker NGSIv2 Overview for Developers That Already Know NGSIv1 ...
 
Orion Context Broker NGSIv2 Overview for Developers That Already Know NGSIv1 ...
Orion Context Broker NGSIv2 Overview for Developers That Already Know NGSIv1 ...Orion Context Broker NGSIv2 Overview for Developers That Already Know NGSIv1 ...
Orion Context Broker NGSIv2 Overview for Developers That Already Know NGSIv1 ...
 
Orion contextbroker ngs-iv2-overview-for-developers-that-already-know-ngsiv1-...
Orion contextbroker ngs-iv2-overview-for-developers-that-already-know-ngsiv1-...Orion contextbroker ngs-iv2-overview-for-developers-that-already-know-ngsiv1-...
Orion contextbroker ngs-iv2-overview-for-developers-that-already-know-ngsiv1-...
 

Recently uploaded

The basics of sentences session 4pptx.pptx
The basics of sentences session 4pptx.pptxThe basics of sentences session 4pptx.pptx
The basics of sentences session 4pptx.pptxheathfieldcps1
 
philosophy and it's principles based on the life
philosophy and it's principles based on the lifephilosophy and it's principles based on the life
philosophy and it's principles based on the lifeNitinDeodare
 
slides CapTechTalks Webinar May 2024 Alexander Perry.pptx
slides CapTechTalks Webinar May 2024 Alexander Perry.pptxslides CapTechTalks Webinar May 2024 Alexander Perry.pptx
slides CapTechTalks Webinar May 2024 Alexander Perry.pptxCapitolTechU
 
Stl Algorithms in C++ jjjjjjjjjjjjjjjjjj
Stl Algorithms in C++ jjjjjjjjjjjjjjjjjjStl Algorithms in C++ jjjjjjjjjjjjjjjjjj
Stl Algorithms in C++ jjjjjjjjjjjjjjjjjjMohammed Sikander
 
An overview of the various scriptures in Hinduism
An overview of the various scriptures in HinduismAn overview of the various scriptures in Hinduism
An overview of the various scriptures in HinduismDabee Kamal
 
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...Nguyen Thanh Tu Collection
 
Behavioral-sciences-dr-mowadat rana (1).pdf
Behavioral-sciences-dr-mowadat rana (1).pdfBehavioral-sciences-dr-mowadat rana (1).pdf
Behavioral-sciences-dr-mowadat rana (1).pdfaedhbteg
 
Essential Safety precautions during monsoon season
Essential Safety precautions during monsoon seasonEssential Safety precautions during monsoon season
Essential Safety precautions during monsoon seasonMayur Khatri
 
Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17
Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17
Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17Celine George
 
How to Manage Closest Location in Odoo 17 Inventory
How to Manage Closest Location in Odoo 17 InventoryHow to Manage Closest Location in Odoo 17 Inventory
How to Manage Closest Location in Odoo 17 InventoryCeline George
 
Financial Accounting IFRS, 3rd Edition-dikompresi.pdf
Financial Accounting IFRS, 3rd Edition-dikompresi.pdfFinancial Accounting IFRS, 3rd Edition-dikompresi.pdf
Financial Accounting IFRS, 3rd Edition-dikompresi.pdfMinawBelay
 
ppt your views.ppt your views of your college in your eyes
ppt your views.ppt your views of your college in your eyesppt your views.ppt your views of your college in your eyes
ppt your views.ppt your views of your college in your eyesashishpaul799
 
IATP How-to Foreign Travel May 2024.pdff
IATP How-to Foreign Travel May 2024.pdffIATP How-to Foreign Travel May 2024.pdff
IATP How-to Foreign Travel May 2024.pdff17thcssbs2
 
REPRODUCTIVE TOXICITY STUDIE OF MALE AND FEMALEpptx
REPRODUCTIVE TOXICITY  STUDIE OF MALE AND FEMALEpptxREPRODUCTIVE TOXICITY  STUDIE OF MALE AND FEMALEpptx
REPRODUCTIVE TOXICITY STUDIE OF MALE AND FEMALEpptxmanishaJyala2
 
An Overview of the Odoo 17 Discuss App.pptx
An Overview of the Odoo 17 Discuss App.pptxAn Overview of the Odoo 17 Discuss App.pptx
An Overview of the Odoo 17 Discuss App.pptxCeline George
 
The Ball Poem- John Berryman_20240518_001617_0000.pptx
The Ball Poem- John Berryman_20240518_001617_0000.pptxThe Ball Poem- John Berryman_20240518_001617_0000.pptx
The Ball Poem- John Berryman_20240518_001617_0000.pptxNehaChandwani11
 
BỘ LUYỆN NGHE TIẾNG ANH 8 GLOBAL SUCCESS CẢ NĂM (GỒM 12 UNITS, MỖI UNIT GỒM 3...
BỘ LUYỆN NGHE TIẾNG ANH 8 GLOBAL SUCCESS CẢ NĂM (GỒM 12 UNITS, MỖI UNIT GỒM 3...BỘ LUYỆN NGHE TIẾNG ANH 8 GLOBAL SUCCESS CẢ NĂM (GỒM 12 UNITS, MỖI UNIT GỒM 3...
BỘ LUYỆN NGHE TIẾNG ANH 8 GLOBAL SUCCESS CẢ NĂM (GỒM 12 UNITS, MỖI UNIT GỒM 3...Nguyen Thanh Tu Collection
 
....................Muslim-Law notes.pdf
....................Muslim-Law notes.pdf....................Muslim-Law notes.pdf
....................Muslim-Law notes.pdfVikramadityaRaj
 

Recently uploaded (20)

The basics of sentences session 4pptx.pptx
The basics of sentences session 4pptx.pptxThe basics of sentences session 4pptx.pptx
The basics of sentences session 4pptx.pptx
 
philosophy and it's principles based on the life
philosophy and it's principles based on the lifephilosophy and it's principles based on the life
philosophy and it's principles based on the life
 
slides CapTechTalks Webinar May 2024 Alexander Perry.pptx
slides CapTechTalks Webinar May 2024 Alexander Perry.pptxslides CapTechTalks Webinar May 2024 Alexander Perry.pptx
slides CapTechTalks Webinar May 2024 Alexander Perry.pptx
 
Stl Algorithms in C++ jjjjjjjjjjjjjjjjjj
Stl Algorithms in C++ jjjjjjjjjjjjjjjjjjStl Algorithms in C++ jjjjjjjjjjjjjjjjjj
Stl Algorithms in C++ jjjjjjjjjjjjjjjjjj
 
An overview of the various scriptures in Hinduism
An overview of the various scriptures in HinduismAn overview of the various scriptures in Hinduism
An overview of the various scriptures in Hinduism
 
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
 
Behavioral-sciences-dr-mowadat rana (1).pdf
Behavioral-sciences-dr-mowadat rana (1).pdfBehavioral-sciences-dr-mowadat rana (1).pdf
Behavioral-sciences-dr-mowadat rana (1).pdf
 
Essential Safety precautions during monsoon season
Essential Safety precautions during monsoon seasonEssential Safety precautions during monsoon season
Essential Safety precautions during monsoon season
 
Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17
Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17
Removal Strategy _ FEFO _ Working with Perishable Products in Odoo 17
 
How to Manage Closest Location in Odoo 17 Inventory
How to Manage Closest Location in Odoo 17 InventoryHow to Manage Closest Location in Odoo 17 Inventory
How to Manage Closest Location in Odoo 17 Inventory
 
Financial Accounting IFRS, 3rd Edition-dikompresi.pdf
Financial Accounting IFRS, 3rd Edition-dikompresi.pdfFinancial Accounting IFRS, 3rd Edition-dikompresi.pdf
Financial Accounting IFRS, 3rd Edition-dikompresi.pdf
 
ppt your views.ppt your views of your college in your eyes
ppt your views.ppt your views of your college in your eyesppt your views.ppt your views of your college in your eyes
ppt your views.ppt your views of your college in your eyes
 
“O BEIJO” EM ARTE .
“O BEIJO” EM ARTE                       .“O BEIJO” EM ARTE                       .
“O BEIJO” EM ARTE .
 
IATP How-to Foreign Travel May 2024.pdff
IATP How-to Foreign Travel May 2024.pdffIATP How-to Foreign Travel May 2024.pdff
IATP How-to Foreign Travel May 2024.pdff
 
REPRODUCTIVE TOXICITY STUDIE OF MALE AND FEMALEpptx
REPRODUCTIVE TOXICITY  STUDIE OF MALE AND FEMALEpptxREPRODUCTIVE TOXICITY  STUDIE OF MALE AND FEMALEpptx
REPRODUCTIVE TOXICITY STUDIE OF MALE AND FEMALEpptx
 
Operations Management - Book1.p - Dr. Abdulfatah A. Salem
Operations Management - Book1.p  - Dr. Abdulfatah A. SalemOperations Management - Book1.p  - Dr. Abdulfatah A. Salem
Operations Management - Book1.p - Dr. Abdulfatah A. Salem
 
An Overview of the Odoo 17 Discuss App.pptx
An Overview of the Odoo 17 Discuss App.pptxAn Overview of the Odoo 17 Discuss App.pptx
An Overview of the Odoo 17 Discuss App.pptx
 
The Ball Poem- John Berryman_20240518_001617_0000.pptx
The Ball Poem- John Berryman_20240518_001617_0000.pptxThe Ball Poem- John Berryman_20240518_001617_0000.pptx
The Ball Poem- John Berryman_20240518_001617_0000.pptx
 
BỘ LUYỆN NGHE TIẾNG ANH 8 GLOBAL SUCCESS CẢ NĂM (GỒM 12 UNITS, MỖI UNIT GỒM 3...
BỘ LUYỆN NGHE TIẾNG ANH 8 GLOBAL SUCCESS CẢ NĂM (GỒM 12 UNITS, MỖI UNIT GỒM 3...BỘ LUYỆN NGHE TIẾNG ANH 8 GLOBAL SUCCESS CẢ NĂM (GỒM 12 UNITS, MỖI UNIT GỒM 3...
BỘ LUYỆN NGHE TIẾNG ANH 8 GLOBAL SUCCESS CẢ NĂM (GỒM 12 UNITS, MỖI UNIT GỒM 3...
 
....................Muslim-Law notes.pdf
....................Muslim-Law notes.pdf....................Muslim-Law notes.pdf
....................Muslim-Law notes.pdf
 

Context-aware application development with FIWARE #CPBR8

  • 1. Context-aware application development with FIWARE FIWARE Orion Context Broker REST API February 3rd, 2015 – Campus Party Brazil Contact twitter @fermingalan Contact email fermin.galanmarquez@telefonica.com
  • 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 … 4 A sensor in a pedestrian street The Public Bus Transport Management system A person from his smartphone It’s too hot! What’s the current temperature? Context Information Context Information Context Information
  • 5. Context Management in FIWARE Get notified when an update on context information takes place 5 Bus = “X”, last_stop = “A”, arrived= “Yes” 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 6 Street lamp = “lamp1”, status= “on” Street Lamp lamp1.status  “on” 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 1 n “has”
  • 8. Orion Context Broker in a nutshell 8 Orion Context Broker Context Producers Context Consumers subscriptions update query notify notify update update DB 1026 1026
  • 9. GET <cb_host>:1026/version { "orion" : { "version" : "0.17.0", "uptime" : "7 d, 21 h, 33 m, 39 s", "git_hash" : "238c3642ad67899da7c1ff08aba4b5c846b4901a", "compile_time" : "Mon Dec 1 11:27:18 CET 2014", "compiled_by" : "fermin", "compiled_in" : "centollo" } } 9 Orion Context Broker – check health
  • 10. Orion Context Broker - Operations 10 Functions Operations 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 Context Consumer queryContext 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": "float", "value": “98" } ] } ], "updateAction": “APPEND" } 200 OK ... { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "speed", "type": "float", "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": "float", "value": "110" } ] } ], "updateAction": "UPDATE" } 200 OK ... { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "speed", "type": "float", "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": "float", "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": "float", "value": "115" } ] } ], "updateAction": "UPDATE" } 200 OK ... { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "speed", "type": "float", "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": "float", "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": "float", "value": "24" }, { "name": "pressure", "type": "integer", "value": "718" } ] } ], "updateAction": "APPEND" } 200 OK ... { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "temperature", "type": "float", "value": "" }, { "name": "pressure", "type": "integer", "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": "float", "value": "25" }, { "name": "pressure", "type": "integer", "value": "720" } ] } ], "updateAction": "UPDATE" } 200 OK ... { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "temperature", "type": "float", "value": "" }, { "name": "pressure", "type": "integer", "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": "float", "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": "float", "value": "25" }, { "name": "pressure", "type": "integer", "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": "float", "value": "33" }, { "name": "pressure", "type": "integer", "value": "722" } ] } ], "updateAction": "APPEND" } 200 OK ... { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "temperature", "type": "float", "value": "" }, { "name": "pressure", "type": "integer", "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": "float", "value": "29" }, { "name": "pressure", "type": "integer", "value": "730" } ] } ], "updateAction": "UPDATE" } 200 OK ... { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "temperature", "type": "float", "value": "" }, { "name": "pressure", "type": "integer", "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": "float", "value": "25" } ], "id": "Room1", "isPattern": "false", "type": "Room" }, "statusCode": { "code": "200", "reasonPhrase": "OK" } }, { "contextElement": { "attributes": [ { "name": "temperature", "type": "float", "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 24 subscription_id = subscribeContext (consumer, expr, duration) 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. 25 19 Quick Usage Example: Notification 26
  • 27. POST http://<host>:<port>/publish … { "subscriptionId" : "51c0ac9ed714fb3b37d7d5a8", "originator" : "localhost", "contextResponses" : [ { "contextElement" : { "attributes" : [ { "name" : "temperature", "type" : "float", "value" : "19" } ], "type" : "Room", "isPattern" : "false", "id" : "Room1" }, "statusCode" : { "code" : "200", "reasonPhrase" : "OK" } } ] } Quick Usage Example: Notification 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. Usage Examples Contact wwitter @fermingalan Contact email fermin.galanmarquez@telefonica.com
  • 34. Usage Examples • Freeboard • Weather Bot • Orion Context Explorer • Hackathon setup Orion Context Broker 34
  • 35. Usage Examples • Freeboard • Weather Bot • Orion Context Explorer • Hackathon setup Orion Context Broker 35
  • 36. Freeboard • Playing the context consumer role 36
  • 37. Freeboard • Orion freeboard connector – https://github.com/telefonicaid/fiware- dataviz/tree/develop/FreeBoard-Orion-Plugin • Very easy to use! (even in your local machine) • The fiware-dataviz repository includes connector for other visualization tools, along with documentation on how to use them – orion2duckboard connector – orion2cartodb connector 37
  • 38. Weather Bot • Running at FIWARE Campus stand 38 FIWARE Lab Cloud IoTA Orion orionlive.fiware.org Campus Party Net Internet REST client REST client REST client … UDP 60001 orion2twitter Internet Internet @FIWAREOrionLiveTCP 80
  • 39. Hackathon Setup 39 IoTA-TT IoTA-LW Orion hackfest.testbed.fiware.org TT TTTT Campus Party Net User Device User DeviceUser Device Internet Contex-aware application Contex-aware application Contex-aware application… … … TCP 1026 TCP 80 UDP 9500 FIWARE LabCloud Orion IoTA-UL2.0 eidas4.testbed.fiware.orgTCP 1026 TCP 8002 Commands API TCP 5371 Internet
  • 40. 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/ 40
  • 41. Advanced Topics Contact wwitter @fermingalan Contact email fermin.galanmarquez@telefonica.com
  • 42. • 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") Pagination 42
  • 43. 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 43
  • 44. 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. 44
  • 45. 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" } 45
  • 46. Metadata • Users may attach metadata to attributes • Reserved metadatas: ID, Location, creDate and modDate • Examples: 46 … "attributes": [ { "name": "temperature", "type": "float", "value": "26.5", "metadatas": [ { "name": "accuracy", "type": "float", "value": "0.9" } ] } ] … … "attributes": [ { "name": "temperature", "type": "float", "value": "26.5", "metadatas": [ { "name": "average", "type": "float", "value": "22.4" } ] } ] …
  • 47. 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" } 47
  • 49. Geo-location – Circle 49 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" } } } ] } }
  • 50. Geo-location – Inverse Circle 50 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" } } } ] } }
  • 51. Registration & Context Providers • Uncached queries and updates 51 Application ContextBroker ContextProvider 1. registerContext(provider= ) db 2. queryContext(id) 3. queryContext(id) 4. data5. data Context Consumer
  • 52. POST <cb_host>:1026/v1/registry/registerContext … { "contextRegistrations": [ { "entities": [ { "type": "Car", "isPattern": "false", "id": "Car1" }, "attributes": [ { "name": "speed", "type": "float", "isDomain": "false" } ], "providingApplication": "http://contextprovider.com/Cars" } ], "duration": "P1M" } 200 OK ... { "duration" : "P1M", "registrationId" : "52a744b011f5816465943d58" } 52 Registration & Context Providers
  • 53. 53 POST <cb_host>:1026/v1/queryContext ... { "entities": [ { "type": "Car", "isPattern": "false", "id": "Car1" } ] } Registration & Context Providers ContextBroker ContextProvider db queryContext(id) data 200 OK ... { "contextResponses": [ { "contextElement": { "attributes": [ { "name": "speed", "type": "float", "value": "100" } ], "id": "Car1", "isPattern": "false", "type": "Car" }, "statusCode": { "code": "200", "details": "Redirected to context provider http://contextprovider.com/Cars", "reasonPhrase": "OK" } } ] }
  • 54. 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 … 54
  • 55. Entity Service Paths • A service path is a hierarchical scope assigned to an entity at creation time (with updateContext). 55
  • 56. 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 will look only into the specified node – Use "ParentNode/#" to include all child nodes – Queries without Fiware-ServicePath resolve to "/#" – Entities will fall in the "/" node by default ParqueNorte Parterre2Parterre1 56
  • 57. 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 – It works not only with queries, but also with subscriptions/notifications ParqueNorte Parterre1 light1 light1 A B A or B 57
  • 60. 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 60 queryContext (e1, attr1, attr2) Context Provider queryContext (e1, attr1) Context Consumer updateContext (e1, attr2) Application Context Broker System BSystem A
  • 61. 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 61 FIWARE Context Broker IoT Agent-1 IoT Agent-2 IoT Agent-n IoT Agent Manager create/monitor FIWARE Backend IoT Device Management OMA NGSI API (northbound interface) (southbound interfaces) MQTTETSI M2M IETF CoAP
  • 62. 62 • Federation of infrastructures (private/public regions) • Automated GE deploymentCloud • Complete Context Management Platform • Integration of Data and Media ContentData •Easy plug&play of devices using multiple protocols •Automated Measurements/Action Context updatesIoT •Visualization of data (operation dashboards) •Publication of data sets/servicesApps •Easy support of UIs with advanced web-based 3D and AR capabilities •Visual representation of context information. Web UI •Advanced networking capabilities (SDN) and Middleware •Interface to robotsI2ND •Security Monitoring •Built-in Identity/Access/Privacy ManagementSecurity Context Management in FIWARE
  • 63. FI-WARE Context/Data Management Platform 63 Context/Data Management Platform Applications 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