SlideShare ist ein Scribd-Unternehmen logo
1 von 47
Downloaden Sie, um offline zu lesen
Pasquale Vitale
Engineering Ingegneria Informatica
FIWARE Contex Broker
Introduction
Managing Context Information at large scale
FIWARE Context Broker GE (implementation: Orion)
Creating and pulling data
Pushing data and notifications
Convenience operations
Managing Context Information at large scale
Context Information is represented through values assigned to attributes
The Context Broker is able to:
handle context information at large scale
enable your application to query on context information
subscribe to changes in context information that will be received through notifications
enable your application or other applications to modify the context information
Context Management in FIWARE
Context Information: the value of attributes that characterize those entities relevant to your application
NGSI API
Bus
• Location
• No. passengers
• Driver
• License plate
Citizen
• Name-Surname
• Birthday
• Preferences
• Location
• To Do list
Shop
• Location
• Business name
• Franchise
• Offerings
Applications/Services
Context Broker
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?
… but programmers should just care
about entities and their attributes
Context Information independent from the source
Context information may come from many sources using different interfaces and protocols …
Context Management in FIWARE
Get notified when an update on context information takes place
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
Street lamp = “lamp1”, status= “on”
Street Lamp lamp1.status “on”
API
FIWARE Context Broker GE: Orion
Main functions:
Context availability management - OMA NGSI-9 specs
Context management - OMA NGSI-10 specs
HTTP and REST-based
XML payload support
JSON payload support
FIWARE Context Broker GE: Orion
Functions Operations
NGSI-9
• Register,
• Search,
• Subscribe for context sources
• registerContext
• discoverContextAvailability
• subscribeContextAvailability
• updateContextAvailabilitySubscription
• unsubscribeContextAvailability
NGSI-10
• Query,
• Update,
• Subscribe to context elements
• updateContext
• queryContext
• subscribeContext
• updateContextSubscription
• unsubscribeContextSubscription
FIWARE Context Broker GE: Orion
Context in NGSI is based in an entity-attribute model:
Attributes
• Name
• Type
• Value
Entity
• EntityId
• EntityType 1 n
“has”
FIWARE Context Broker GE: Orion
Orion Architecture
11
Orion Context Broker
Context
Producers
Context
Consumers
subscriptions
update
query
notify
notify
update
update
DB
1026
1026
Context Broker operations: create and 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
Context Consumer
queryContext
Context Producer
updateContext
Context Broker
speed
Entity creation example: car create
updateContext operation with APPEND action type
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"
}
}
]
}
Update context elements example: car updateContext
updateContext operation with UPDATE action type
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"
}
}
]
}
Query context operation example: car queryContext
queryContext operation by Id
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"
}
}
]
}
Entity creation example: room create
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"
}
}
]
}
Two attributes: temperature and pressure
Update context elements example: room updateContext
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"
}
}
]
}
Update: temperature and pressure
Query context operation example: room queryContext
queryContext operation by Id
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"
}
}
]
}
Query context operation example: room queryContext
queryContext operation by Id and attribute
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"
}
}
]
}
Entity creation example: room create
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": "Room2",
"isPattern": "false",
"type": "Room"
},
"statusCode": {
"code": "200",
"reasonPhrase": "OK"
}
}
]
}
Append another room: Room2
Query context operation example: room queryContext
queryContext operation by regex Room.*
POST <cb_host>:1026/v1/queryContext
... 
{
"entities": [
{
"type": “Room",
"isPattern": “true",
"id": "Room.*"
}
] ,
"attributes": [
"temperature"
]
} 
{
"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": “33"
}
],
"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)
Context Consumer
notifyContext (subscription_id, data/context)
Context Broker
Application
Context subscriptions example: ONTIMEINTERVAL
POST <cb_host>:1026/v1/subscribeContext
…
{
"entities": [
{
"type": "Room",
"isPattern": "false",
"id": "Room1"
}
],
"attributes": [
"temperature"
],
"reference": "http://<host>:<port>/publish",
"duration": "P1M",
"notifyConditions": [
{
"type": "ONTIMEINTERVAL",
"condValues": [
“PT10S"
]
}
]
}
200 OK
... 
{
"subscribeResponse": {
"duration": "P1M",
"subscriptionId": "54dcb87fa85d63b107245ff1"
}
}
25
19
Context subscriptions example: ONCHANGE
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
19
Notification
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"
}
}
]
}
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
Convenience Operations
Entities
GET /v1/contextEntities/{entityID} Query Context Retrieves an entity
POST /v1/contextEntities/{entityID} Entity Creation Creates an entity
PUT /v1/contextEntities/{entityID} Update Context Updates an entity
DELETE /v1/contextEntities/{entityID} Delete Context Deletes an entity
GET all entities
GET /v1/contextEntities
Convenience Operations
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
Subscriptions
POST /v1/contextSubscriptions Creates a subscription
PUT / v1/contextSubscriptions/{subID} Updates a subscription
DELETE / v1/contextSubscriptions/{subID} Deletes a subscription
Convenience Operations
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
Advanced features
Pagination
Compound attribute values
Metadata
Geo-location
Registrations & context providers
Entity service paths
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")
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 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
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
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"
}
Metadata
Users may attach metadata to attributes
Reserved metadatas: ID, Location, creDate and modDate
Examples:
…
"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"
}
]
}
]
…
Context Element attributes
• Name
• Type
• Value
Context Element
• EntityId
• EntityType
n
“has”
1
Metadata
• Name
• Type
• Valuen
“has”
1
Geo-location
Entities can have an attribute that specifies its location
- Using a "location" metadata
Example:
create an entity called Madrid (of type "City")
with attribute "position" defined as location
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": "WGS84"
}
]
}
]
}
],
"updateAction": "APPEND"
}
Coordinates for Madrid are:
• latitude 40.418889
• longitude 3.691944
Geo-located queries
Entities location can be used in queryContex using:
- FIWARE::Location as scopeType
- and an area specification as scopeValue
The area specification are:
- area internal to a circle, given its centre and radius
- area external to a circle, given its centre and radius
- area internal to a polygon, given its vertices
- area external to a polygon, given its vertices
{
"entities": [
{
"type": "Point",
"isPattern": "true",
"id": ".*"
}
],
"restriction": {
"scopes": [
{
"type" : "FIWARE::Location",
"value" : {
"polygon": {
"vertices": [
{
"latitude": "0",
"longitude": "0"
},
{
"latitude": "0",
"longitude": "6"
},
{
"latitude": "6",
"longitude": "6"
},
{
"latitude": "6",
"longitude": "0"
}
]
}
}
}
]
}
}
Geo-location - circle
Distances between:
- Madrid / Alcobendas 13.65 km
- Madrid / Leganes 12.38 km
Consider a radius of 13.5 km
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"
}
}
}
]
}
}
The query is Madrid and Leganes
Geo-location - inverse circle
Distances between:
- Madrid / Alcobendas 13.65 km
- Madrid / Leganes 12.38 km
Consider a radius of 13.5 km
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"
}
}
}
]
}
}
The query is Alcobendas
Registration & Context Providers
Context Broker doesn't cache the result of the query internally
Application
Context Broker Context Provider
1. registerContext(provider= )
2. queryContext(id) 3. queryContext(id)
4. data5. data
Context Consumer
db
Registration & Context Providers
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"
}
The application registers the Context Provider for the Car1 speed using providingApplication attribute
Application
registerContext
http://contextprovider.com/Cars
{
"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"
}
}
]
}
Registration & Context Providers
It includes details in the response
POST <cb_host>:1026/v1/queryContext
... 
{
"entities": [
{
"type": "Car",
"isPattern": "false",
"id": "Car1"
}
]
}
queryContext(id)
data
Multitenancy
Context Broker implements a simple multitenant/multiservice model based and logical database separation
Make easer service/tenant based authorization policies provided by other FI-WARE components or third
party software
Orion uses the "Fiware-Service" HTTP header in the request to identify the service/tenant
Example:
Fiware-Service: Tenant1
Context
Broker
Context
Broker
Tenant1
Tenant2
…
entities1/attributes1/subscripitions1
entities2/attributes2/subscripitions2
Entity Service Paths
Orion Context Broker supports hierarchical scopes
Entities can be assigned to a scope at creation time with updateContext
queryContext can be also scoped to locate entities in the corresponding scopes
For example, consider the following scopes in the figure:
- Madrid, as first level scope
- Gardens and Districts, as second-level scope (children of Madrid)
- ParqueNorte, ParqueOeste and ParqueSur (children of Gardens)
and Fuencarral and Latina (children of Districts)
- Parterre1 and Parterre2 (children of ParqueNorte)
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
ParqueNorte
Parterre2Parterre1
Entity Service Paths
Properties:
1. A query on a service path will look only into the specified node
2. Use ParentNode/# to include all child nodes
3. Queries without Fiware-ServicePath resolve to /#
4. Entities will fall in the "/" node by default
5. 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
1. You can have the same element IDs in different scopes (be careful with this!)
2. You can't change scope once the element is created
3. One entity can belong to only one scope
A B
A or B
ParqueNorte
Parterre1
light1
light1
Thanks!Thanks!

Weitere ähnliche Inhalte

Was ist angesagt?

Orion Context Broker 20210907
Orion Context Broker 20210907Orion Context Broker 20210907
Orion Context Broker 20210907Fermin 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 20210602
Orion Context Broker 20210602Orion Context Broker 20210602
Orion Context Broker 20210602Fermin Galan
 
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 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 Primer - Learn FIWARE in 60 Minutes
FIWARE Primer - Learn FIWARE in 60 MinutesFIWARE Primer - Learn FIWARE in 60 Minutes
FIWARE Primer - Learn FIWARE in 60 MinutesFederico Michele Facca
 
Iot Toolkit and the Smart Object API - Architecture for Interoperability
Iot Toolkit and the Smart Object API - Architecture for InteroperabilityIot Toolkit and the Smart Object API - Architecture for Interoperability
Iot Toolkit and the Smart Object API - Architecture for InteroperabilityMichael Koster
 
Monitoring docker, k8s and your applications with the elastic stack
Monitoring docker, k8s and your applications with the elastic stackMonitoring docker, k8s and your applications with the elastic stack
Monitoring docker, k8s and your applications with the elastic stackSmartWave
 
Orion Context Broker 20211209
Orion Context Broker 20211209Orion Context Broker 20211209
Orion Context Broker 20211209Fermin Galan
 
Full stack visibility with elastic, KubeCon 2017
Full stack visibility with elastic, KubeCon 2017Full stack visibility with elastic, KubeCon 2017
Full stack visibility with elastic, KubeCon 2017Carlos Pérez-Aradros
 
Exposing and Controlling Kafka Event Streaming with Kong Konnect Enterprise |...
Exposing and Controlling Kafka Event Streaming with Kong Konnect Enterprise |...Exposing and Controlling Kafka Event Streaming with Kong Konnect Enterprise |...
Exposing and Controlling Kafka Event Streaming with Kong Konnect Enterprise |...HostedbyConfluent
 
NGSI: Geoqueries & Carto integration
NGSI: Geoqueries & Carto integrationNGSI: Geoqueries & Carto integration
NGSI: Geoqueries & Carto integrationFIWARE
 
Testing Event Driven Architectures: How to Broker the Complexity | Frank Kilc...
Testing Event Driven Architectures: How to Broker the Complexity | Frank Kilc...Testing Event Driven Architectures: How to Broker the Complexity | Frank Kilc...
Testing Event Driven Architectures: How to Broker the Complexity | Frank Kilc...HostedbyConfluent
 
2017 Hackathon Scality & 42 School
2017 Hackathon Scality & 42 School2017 Hackathon Scality & 42 School
2017 Hackathon Scality & 42 SchoolScality
 
Leveraging Data in Motion | Jun Rao, Co-Founder, Confluent | Kafka Summit APA...
Leveraging Data in Motion | Jun Rao, Co-Founder, Confluent | Kafka Summit APA...Leveraging Data in Motion | Jun Rao, Co-Founder, Confluent | Kafka Summit APA...
Leveraging Data in Motion | Jun Rao, Co-Founder, Confluent | Kafka Summit APA...HostedbyConfluent
 
Architecting Azure IoT Solutions
Architecting Azure IoT SolutionsArchitecting Azure IoT Solutions
Architecting Azure IoT SolutionsGlobalLogic Ukraine
 
Living on the (IoT) edge (Sam Vanhoutte @TechdaysNL 2017)
Living on the (IoT) edge (Sam Vanhoutte @TechdaysNL 2017)Living on the (IoT) edge (Sam Vanhoutte @TechdaysNL 2017)
Living on the (IoT) edge (Sam Vanhoutte @TechdaysNL 2017)Codit
 
Logisland "Event Mining at scale"
Logisland "Event Mining at scale"Logisland "Event Mining at scale"
Logisland "Event Mining at scale"Thomas Bailet
 

Was ist angesagt? (20)

Orion Context Broker 20210907
Orion Context Broker 20210907Orion Context Broker 20210907
Orion Context Broker 20210907
 
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
 
Orion Context Broker 20210602
Orion Context Broker 20210602Orion Context Broker 20210602
Orion Context Broker 20210602
 
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 20220301
Orion Context Broker 20220301Orion Context Broker 20220301
Orion Context Broker 20220301
 
Introduction to FIWARE IoT
Introduction to FIWARE IoTIntroduction to FIWARE IoT
Introduction to FIWARE IoT
 
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 Primer - Learn FIWARE in 60 Minutes
FIWARE Primer - Learn FIWARE in 60 MinutesFIWARE Primer - Learn FIWARE in 60 Minutes
FIWARE Primer - Learn FIWARE in 60 Minutes
 
Iot Toolkit and the Smart Object API - Architecture for Interoperability
Iot Toolkit and the Smart Object API - Architecture for InteroperabilityIot Toolkit and the Smart Object API - Architecture for Interoperability
Iot Toolkit and the Smart Object API - Architecture for Interoperability
 
Monitoring docker, k8s and your applications with the elastic stack
Monitoring docker, k8s and your applications with the elastic stackMonitoring docker, k8s and your applications with the elastic stack
Monitoring docker, k8s and your applications with the elastic stack
 
Orion Context Broker 20211209
Orion Context Broker 20211209Orion Context Broker 20211209
Orion Context Broker 20211209
 
Full stack visibility with elastic, KubeCon 2017
Full stack visibility with elastic, KubeCon 2017Full stack visibility with elastic, KubeCon 2017
Full stack visibility with elastic, KubeCon 2017
 
Exposing and Controlling Kafka Event Streaming with Kong Konnect Enterprise |...
Exposing and Controlling Kafka Event Streaming with Kong Konnect Enterprise |...Exposing and Controlling Kafka Event Streaming with Kong Konnect Enterprise |...
Exposing and Controlling Kafka Event Streaming with Kong Konnect Enterprise |...
 
NGSI: Geoqueries & Carto integration
NGSI: Geoqueries & Carto integrationNGSI: Geoqueries & Carto integration
NGSI: Geoqueries & Carto integration
 
Testing Event Driven Architectures: How to Broker the Complexity | Frank Kilc...
Testing Event Driven Architectures: How to Broker the Complexity | Frank Kilc...Testing Event Driven Architectures: How to Broker the Complexity | Frank Kilc...
Testing Event Driven Architectures: How to Broker the Complexity | Frank Kilc...
 
2017 Hackathon Scality & 42 School
2017 Hackathon Scality & 42 School2017 Hackathon Scality & 42 School
2017 Hackathon Scality & 42 School
 
Leveraging Data in Motion | Jun Rao, Co-Founder, Confluent | Kafka Summit APA...
Leveraging Data in Motion | Jun Rao, Co-Founder, Confluent | Kafka Summit APA...Leveraging Data in Motion | Jun Rao, Co-Founder, Confluent | Kafka Summit APA...
Leveraging Data in Motion | Jun Rao, Co-Founder, Confluent | Kafka Summit APA...
 
Architecting Azure IoT Solutions
Architecting Azure IoT SolutionsArchitecting Azure IoT Solutions
Architecting Azure IoT Solutions
 
Living on the (IoT) edge (Sam Vanhoutte @TechdaysNL 2017)
Living on the (IoT) edge (Sam Vanhoutte @TechdaysNL 2017)Living on the (IoT) edge (Sam Vanhoutte @TechdaysNL 2017)
Living on the (IoT) edge (Sam Vanhoutte @TechdaysNL 2017)
 
Logisland "Event Mining at scale"
Logisland "Event Mining at scale"Logisland "Event Mining at scale"
Logisland "Event Mining at scale"
 

Ähnlich wie Managing Context Information with 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.0Fermin Galan
 
Fiware: the pillar of the Future Internet (Overview)
Fiware: the pillar of the Future Internet (Overview)Fiware: the pillar of the Future Internet (Overview)
Fiware: the pillar of the Future Internet (Overview)Juanjo Hierro
 
FIWARE Developers Week_Managing context information at large scale_conference
FIWARE Developers Week_Managing context information at large scale_conferenceFIWARE Developers Week_Managing context information at large scale_conference
FIWARE Developers Week_Managing context information at large scale_conferenceFIWARE
 
orioncontextbroker-20180615
orioncontextbroker-20180615orioncontextbroker-20180615
orioncontextbroker-20180615Fermin Galan
 
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 20240115
Orion Context Broker introduction 20240115Orion Context Broker introduction 20240115
Orion Context Broker introduction 20240115Fermin Galan
 
Orion Context Broker 20220526
Orion Context Broker 20220526Orion Context Broker 20220526
Orion Context Broker 20220526Fermin Galan
 
Orion Context Broker 20220127
Orion Context Broker 20220127Orion Context Broker 20220127
Orion Context Broker 20220127Fermin Galan
 
Orion Context Broker 20221220
Orion Context Broker 20221220Orion Context Broker 20221220
Orion Context Broker 20221220Fermin Galan
 
Orion Context Broker 20211022
Orion Context Broker 20211022Orion Context Broker 20211022
Orion Context Broker 20211022Fermin Galan
 
Orion Context Broker 20210412
Orion Context Broker 20210412Orion Context Broker 20210412
Orion Context Broker 20210412Fermin Galan
 
Orion Context Broker introduction 20240227
Orion Context Broker introduction 20240227Orion Context Broker introduction 20240227
Orion Context Broker introduction 20240227Fermin Galan
 
FIWARE From Open Data to Open APIs
FIWARE From Open Data to Open APIsFIWARE From Open Data to Open APIs
FIWARE From Open Data to Open APIsSergio Garcia Gomez
 
Orion Context Broker 20210309
Orion Context Broker 20210309Orion Context Broker 20210309
Orion Context Broker 20210309Fermin 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 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-03-25
Orion Context Broker 2020-03-25Orion Context Broker 2020-03-25
Orion Context Broker 2020-03-25Fermin 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
 

Ähnlich wie Managing Context Information with FIWARE Context Broker (20)

Orion Context Broker 1.15.0
Orion Context Broker 1.15.0Orion Context Broker 1.15.0
Orion Context Broker 1.15.0
 
Fiware: the pillar of the Future Internet (Overview)
Fiware: the pillar of the Future Internet (Overview)Fiware: the pillar of the Future Internet (Overview)
Fiware: the pillar of the Future Internet (Overview)
 
FIWARE Developers Week_Managing context information at large scale_conference
FIWARE Developers Week_Managing context information at large scale_conferenceFIWARE Developers Week_Managing context information at large scale_conference
FIWARE Developers Week_Managing context information at large scale_conference
 
orioncontextbroker-20180615
orioncontextbroker-20180615orioncontextbroker-20180615
orioncontextbroker-20180615
 
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 20240115
Orion Context Broker introduction 20240115Orion Context Broker introduction 20240115
Orion Context Broker introduction 20240115
 
Orion Context Broker 20220526
Orion Context Broker 20220526Orion Context Broker 20220526
Orion Context Broker 20220526
 
Orion Context Broker 20220127
Orion Context Broker 20220127Orion Context Broker 20220127
Orion Context Broker 20220127
 
Orion Context Broker 20221220
Orion Context Broker 20221220Orion Context Broker 20221220
Orion Context Broker 20221220
 
Orion Context Broker 20211022
Orion Context Broker 20211022Orion Context Broker 20211022
Orion Context Broker 20211022
 
Orion Context Broker 20210412
Orion Context Broker 20210412Orion Context Broker 20210412
Orion Context Broker 20210412
 
Orion Context Broker introduction 20240227
Orion Context Broker introduction 20240227Orion Context Broker introduction 20240227
Orion Context Broker introduction 20240227
 
FIWARE From Open Data to Open APIs
FIWARE From Open Data to Open APIsFIWARE From Open Data to Open APIs
FIWARE From Open Data to Open APIs
 
Orion Context Broker 20210309
Orion Context Broker 20210309Orion Context Broker 20210309
Orion Context Broker 20210309
 
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 2020-10-29
Orion Context Broker 2020-10-29Orion Context Broker 2020-10-29
Orion Context Broker 2020-10-29
 
Orion Context Broker 2020-03-25
Orion Context Broker 2020-03-25Orion Context Broker 2020-03-25
Orion Context Broker 2020-03-25
 
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
 

Mehr von Miguel García González

FIWARE successful SME Instrument Winner (TEAMDEV)
FIWARE successful SME Instrument Winner (TEAMDEV)FIWARE successful SME Instrument Winner (TEAMDEV)
FIWARE successful SME Instrument Winner (TEAMDEV)Miguel García González
 
FIWARE successful SME Instrument Winner (TEA SISTEMI)
FIWARE successful SME Instrument Winner (TEA SISTEMI)FIWARE successful SME Instrument Winner (TEA SISTEMI)
FIWARE successful SME Instrument Winner (TEA SISTEMI)Miguel García González
 
FIWAREPamplona - Training Day - Orizont Agrifood Accelerator
FIWAREPamplona - Training Day - Orizont Agrifood AcceleratorFIWAREPamplona - Training Day - Orizont Agrifood Accelerator
FIWAREPamplona - Training Day - Orizont Agrifood AcceleratorMiguel García González
 
#FIWAREPamplona - Training Day - Gaining and retaining customers
#FIWAREPamplona - Training Day - Gaining and retaining customers#FIWAREPamplona - Training Day - Gaining and retaining customers
#FIWAREPamplona - Training Day - Gaining and retaining customersMiguel García González
 
#FIWAREPamplona - Training day - Open and agile smart cities. A technical int...
#FIWAREPamplona - Training day - Open and agile smart cities. A technical int...#FIWAREPamplona - Training day - Open and agile smart cities. A technical int...
#FIWAREPamplona - Training day - Open and agile smart cities. A technical int...Miguel García González
 
#FIWAREPamplona - Training Day - ODINE incubator
#FIWAREPamplona - Training Day - ODINE incubator#FIWAREPamplona - Training Day - ODINE incubator
#FIWAREPamplona - Training Day - ODINE incubatorMiguel García González
 
#FIWAREPamplona - Training Day - Fiware stories
#FIWAREPamplona - Training Day - Fiware stories#FIWAREPamplona - Training Day - Fiware stories
#FIWAREPamplona - Training Day - Fiware storiesMiguel García González
 
#FIWAREPamplona - Training Day - Tips for an efficient Marketing Strategy
#FIWAREPamplona - Training Day - Tips for an efficient Marketing Strategy#FIWAREPamplona - Training Day - Tips for an efficient Marketing Strategy
#FIWAREPamplona - Training Day - Tips for an efficient Marketing StrategyMiguel García González
 
#FIWAREPamplona-TrainingDay Communication plan
#FIWAREPamplona-TrainingDay Communication plan#FIWAREPamplona-TrainingDay Communication plan
#FIWAREPamplona-TrainingDay Communication planMiguel García González
 
#FIWAREPamplona - Training Day - European Public Funding Opportunities for SMEs
#FIWAREPamplona - Training Day - European Public Funding Opportunities for SMEs#FIWAREPamplona - Training Day - European Public Funding Opportunities for SMEs
#FIWAREPamplona - Training Day - European Public Funding Opportunities for SMEsMiguel García González
 
The story of mixing open data, entrepreneurs and FIWARE technologies
The story of mixing open data, entrepreneurs and FIWARE technologiesThe story of mixing open data, entrepreneurs and FIWARE technologies
The story of mixing open data, entrepreneurs and FIWARE technologiesMiguel García González
 
FINODEX - General presentation on EU public funding
FINODEX - General presentation on EU public fundingFINODEX - General presentation on EU public funding
FINODEX - General presentation on EU public fundingMiguel García González
 

Mehr von Miguel García González (20)

FINODEX summary
FINODEX summaryFINODEX summary
FINODEX summary
 
Open Data for Startups Webinar
Open Data for Startups WebinarOpen Data for Startups Webinar
Open Data for Startups Webinar
 
Agenda Demo Day - FINODEX - FIWARE Trento
Agenda Demo Day - FINODEX - FIWARE TrentoAgenda Demo Day - FINODEX - FIWARE Trento
Agenda Demo Day - FINODEX - FIWARE Trento
 
SME Instrument Evaluator VIEW
SME Instrument Evaluator VIEWSME Instrument Evaluator VIEW
SME Instrument Evaluator VIEW
 
FIWARE successful SME Instrument Winner (TEAMDEV)
FIWARE successful SME Instrument Winner (TEAMDEV)FIWARE successful SME Instrument Winner (TEAMDEV)
FIWARE successful SME Instrument Winner (TEAMDEV)
 
FIWARE successful SME Instrument Winner (TEA SISTEMI)
FIWARE successful SME Instrument Winner (TEA SISTEMI)FIWARE successful SME Instrument Winner (TEA SISTEMI)
FIWARE successful SME Instrument Winner (TEA SISTEMI)
 
FIWARE SME Instrument Webinar - Zabala
FIWARE SME Instrument Webinar - ZabalaFIWARE SME Instrument Webinar - Zabala
FIWARE SME Instrument Webinar - Zabala
 
FIWAREPamplona - Training Day - Orizont Agrifood Accelerator
FIWAREPamplona - Training Day - Orizont Agrifood AcceleratorFIWAREPamplona - Training Day - Orizont Agrifood Accelerator
FIWAREPamplona - Training Day - Orizont Agrifood Accelerator
 
#FIWAREPamplona - Training Day - Gaining and retaining customers
#FIWAREPamplona - Training Day - Gaining and retaining customers#FIWAREPamplona - Training Day - Gaining and retaining customers
#FIWAREPamplona - Training Day - Gaining and retaining customers
 
#FIWAREPamplona - Training day - Open and agile smart cities. A technical int...
#FIWAREPamplona - Training day - Open and agile smart cities. A technical int...#FIWAREPamplona - Training day - Open and agile smart cities. A technical int...
#FIWAREPamplona - Training day - Open and agile smart cities. A technical int...
 
#FIWAREPamplona - Training Day - ODINE incubator
#FIWAREPamplona - Training Day - ODINE incubator#FIWAREPamplona - Training Day - ODINE incubator
#FIWAREPamplona - Training Day - ODINE incubator
 
#FIWAREPamplona - Training Day - Fiware stories
#FIWAREPamplona - Training Day - Fiware stories#FIWAREPamplona - Training Day - Fiware stories
#FIWAREPamplona - Training Day - Fiware stories
 
#FIWAREPamplona - Training Day - Tips for an efficient Marketing Strategy
#FIWAREPamplona - Training Day - Tips for an efficient Marketing Strategy#FIWAREPamplona - Training Day - Tips for an efficient Marketing Strategy
#FIWAREPamplona - Training Day - Tips for an efficient Marketing Strategy
 
#FIWAREPamplona-TrainingDay Communication plan
#FIWAREPamplona-TrainingDay Communication plan#FIWAREPamplona-TrainingDay Communication plan
#FIWAREPamplona-TrainingDay Communication plan
 
#FIWAREPamplona - Training Day - European Public Funding Opportunities for SMEs
#FIWAREPamplona - Training Day - European Public Funding Opportunities for SMEs#FIWAREPamplona - Training Day - European Public Funding Opportunities for SMEs
#FIWAREPamplona - Training Day - European Public Funding Opportunities for SMEs
 
FIWARE Foundation
FIWARE FoundationFIWARE Foundation
FIWARE Foundation
 
The story of mixing open data, entrepreneurs and FIWARE technologies
The story of mixing open data, entrepreneurs and FIWARE technologiesThe story of mixing open data, entrepreneurs and FIWARE technologies
The story of mixing open data, entrepreneurs and FIWARE technologies
 
Open data and entrepreneurship
Open data and entrepreneurshipOpen data and entrepreneurship
Open data and entrepreneurship
 
#FIWAREPamplona Aporta IODC16 Open Data
#FIWAREPamplona Aporta IODC16 Open Data#FIWAREPamplona Aporta IODC16 Open Data
#FIWAREPamplona Aporta IODC16 Open Data
 
FINODEX - General presentation on EU public funding
FINODEX - General presentation on EU public fundingFINODEX - General presentation on EU public funding
FINODEX - General presentation on EU public funding
 

Kürzlich hochgeladen

Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 

Kürzlich hochgeladen (20)

Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 

Managing Context Information with FIWARE Context Broker

  • 1. Pasquale Vitale Engineering Ingegneria Informatica FIWARE Contex Broker
  • 2. Introduction Managing Context Information at large scale FIWARE Context Broker GE (implementation: Orion) Creating and pulling data Pushing data and notifications Convenience operations
  • 3. Managing Context Information at large scale Context Information is represented through values assigned to attributes The Context Broker is able to: handle context information at large scale enable your application to query on context information subscribe to changes in context information that will be received through notifications enable your application or other applications to modify the context information
  • 4. Context Management in FIWARE Context Information: the value of attributes that characterize those entities relevant to your application NGSI API Bus • Location • No. passengers • Driver • License plate Citizen • Name-Surname • Birthday • Preferences • Location • To Do list Shop • Location • Business name • Franchise • Offerings Applications/Services Context Broker
  • 5. 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? … but programmers should just care about entities and their attributes Context Information independent from the source Context information may come from many sources using different interfaces and protocols …
  • 6. Context Management in FIWARE Get notified when an update on context information takes place Bus = “X”, last_stop = “A”, arrived= “Yes” push Notify me when bus “X” arrives at the bus stop “A” API
  • 7. 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” API
  • 8. FIWARE Context Broker GE: Orion Main functions: Context availability management - OMA NGSI-9 specs Context management - OMA NGSI-10 specs HTTP and REST-based XML payload support JSON payload support
  • 9. FIWARE Context Broker GE: Orion Functions Operations NGSI-9 • Register, • Search, • Subscribe for context sources • registerContext • discoverContextAvailability • subscribeContextAvailability • updateContextAvailabilitySubscription • unsubscribeContextAvailability NGSI-10 • Query, • Update, • Subscribe to context elements • updateContext • queryContext • subscribeContext • updateContextSubscription • unsubscribeContextSubscription
  • 10. FIWARE Context Broker GE: Orion Context in NGSI is based in an entity-attribute model: Attributes • Name • Type • Value Entity • EntityId • EntityType 1 n “has”
  • 11. FIWARE Context Broker GE: Orion Orion Architecture 11 Orion Context Broker Context Producers Context Consumers subscriptions update query notify notify update update DB 1026 1026
  • 12. Context Broker operations: create and 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 Context Consumer queryContext Context Producer updateContext Context Broker speed
  • 13. Entity creation example: car create updateContext operation with APPEND action type 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" } } ] }
  • 14. Update context elements example: car updateContext updateContext operation with UPDATE action type 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" } } ] }
  • 15. Query context operation example: car queryContext queryContext operation by Id 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" } } ] }
  • 16. Entity creation example: room create 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" } } ] } Two attributes: temperature and pressure
  • 17. Update context elements example: room updateContext 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" } } ] } Update: temperature and pressure
  • 18. Query context operation example: room queryContext queryContext operation by Id 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" } } ] }
  • 19. Query context operation example: room queryContext queryContext operation by Id and attribute 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. Entity creation example: room create 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": "Room2", "isPattern": "false", "type": "Room" }, "statusCode": { "code": "200", "reasonPhrase": "OK" } } ] } Append another room: Room2
  • 21. Query context operation example: room queryContext queryContext operation by regex Room.* POST <cb_host>:1026/v1/queryContext ...  { "entities": [ { "type": “Room", "isPattern": “true", "id": "Room.*" } ] , "attributes": [ "temperature" ] }  { "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": “33" } ], "id": "Room2", "isPattern": "false", "type": "Room" }, "statusCode": { "code": "200", "reasonPhrase": "OK" } } ] }
  • 22. 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) Context Consumer notifyContext (subscription_id, data/context) Context Broker Application
  • 23. Context subscriptions example: ONTIMEINTERVAL POST <cb_host>:1026/v1/subscribeContext … { "entities": [ { "type": "Room", "isPattern": "false", "id": "Room1" } ], "attributes": [ "temperature" ], "reference": "http://<host>:<port>/publish", "duration": "P1M", "notifyConditions": [ { "type": "ONTIMEINTERVAL", "condValues": [ “PT10S" ] } ] } 200 OK ...  { "subscribeResponse": { "duration": "P1M", "subscriptionId": "54dcb87fa85d63b107245ff1" } } 25 19
  • 24. Context subscriptions example: ONCHANGE 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 19
  • 26. 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
  • 27. Convenience Operations Entities GET /v1/contextEntities/{entityID} Query Context Retrieves an entity POST /v1/contextEntities/{entityID} Entity Creation Creates an entity PUT /v1/contextEntities/{entityID} Update Context Updates an entity DELETE /v1/contextEntities/{entityID} Delete Context Deletes an entity GET all entities GET /v1/contextEntities
  • 28. Convenience Operations 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
  • 29. Convenience Operations Subscriptions POST /v1/contextSubscriptions Creates a subscription PUT / v1/contextSubscriptions/{subID} Updates a subscription DELETE / v1/contextSubscriptions/{subID} Deletes a subscription
  • 30. Convenience Operations 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
  • 31. Advanced features Pagination Compound attribute values Metadata Geo-location Registrations & context providers Entity service paths
  • 32. 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")
  • 33. 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 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
  • 34. 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 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" }
  • 35. Metadata Users may attach metadata to attributes Reserved metadatas: ID, Location, creDate and modDate Examples: … "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" } ] } ] … Context Element attributes • Name • Type • Value Context Element • EntityId • EntityType n “has” 1 Metadata • Name • Type • Valuen “has” 1
  • 36. Geo-location Entities can have an attribute that specifies its location - Using a "location" metadata Example: create an entity called Madrid (of type "City") with attribute "position" defined as location 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": "WGS84" } ] } ] } ], "updateAction": "APPEND" } Coordinates for Madrid are: • latitude 40.418889 • longitude 3.691944
  • 37. Geo-located queries Entities location can be used in queryContex using: - FIWARE::Location as scopeType - and an area specification as scopeValue The area specification are: - area internal to a circle, given its centre and radius - area external to a circle, given its centre and radius - area internal to a polygon, given its vertices - area external to a polygon, given its vertices { "entities": [ { "type": "Point", "isPattern": "true", "id": ".*" } ], "restriction": { "scopes": [ { "type" : "FIWARE::Location", "value" : { "polygon": { "vertices": [ { "latitude": "0", "longitude": "0" }, { "latitude": "0", "longitude": "6" }, { "latitude": "6", "longitude": "6" }, { "latitude": "6", "longitude": "0" } ] } } } ] } }
  • 38. Geo-location - circle Distances between: - Madrid / Alcobendas 13.65 km - Madrid / Leganes 12.38 km Consider a radius of 13.5 km 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" } } } ] } } The query is Madrid and Leganes
  • 39. Geo-location - inverse circle Distances between: - Madrid / Alcobendas 13.65 km - Madrid / Leganes 12.38 km Consider a radius of 13.5 km 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" } } } ] } } The query is Alcobendas
  • 40. Registration & Context Providers Context Broker doesn't cache the result of the query internally Application Context Broker Context Provider 1. registerContext(provider= ) 2. queryContext(id) 3. queryContext(id) 4. data5. data Context Consumer db
  • 41. Registration & Context Providers 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" } The application registers the Context Provider for the Car1 speed using providingApplication attribute Application registerContext http://contextprovider.com/Cars
  • 43. Multitenancy Context Broker implements a simple multitenant/multiservice model based and logical database separation Make easer service/tenant based authorization policies provided by other FI-WARE components or third party software Orion uses the "Fiware-Service" HTTP header in the request to identify the service/tenant Example: Fiware-Service: Tenant1 Context Broker Context Broker Tenant1 Tenant2 … entities1/attributes1/subscripitions1 entities2/attributes2/subscripitions2
  • 44. Entity Service Paths Orion Context Broker supports hierarchical scopes Entities can be assigned to a scope at creation time with updateContext queryContext can be also scoped to locate entities in the corresponding scopes For example, consider the following scopes in the figure: - Madrid, as first level scope - Gardens and Districts, as second-level scope (children of Madrid) - ParqueNorte, ParqueOeste and ParqueSur (children of Gardens) and Fuencarral and Latina (children of Districts) - Parterre1 and Parterre2 (children of ParqueNorte)
  • 45. 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 ParqueNorte Parterre2Parterre1
  • 46. Entity Service Paths Properties: 1. A query on a service path will look only into the specified node 2. Use ParentNode/# to include all child nodes 3. Queries without Fiware-ServicePath resolve to /# 4. Entities will fall in the "/" node by default 5. 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 1. You can have the same element IDs in different scopes (be careful with this!) 2. You can't change scope once the element is created 3. One entity can belong to only one scope A B A or B ParqueNorte Parterre1 light1 light1