SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
Actuation, Federation and
Interoperability of Context Brokers
Advanced and Novel Features available in NGSI-LD 1.6.1
Jason Fox, Senior Technical Evangelist, FIWARE Foundation.
Learning Goals
▪ Overview advanced deployments
▪ Multi-Attributes with datasetId (alternative sources, 1-n relationships)
▪ Scopes (filter based on hierarchies)
▪ Distributed deployments based on registrations (IoT Agents, Context Brokers)
▪ Federated deployments (transparently give applications access to context
information from different players running own Context Brokers)
▪ Tenants (use same Context Broker instance, but isolate databases)
▪ Outlook: New distributed deployment features in NGSI-LD v1.6.1
1
Multi-attributes: Use of datasetId
2
Multi-Attributes with datasetId (1)
Properties
▪ There may be more than one source for the same information, e.g.
speed of the same car from speedometer, navigation system, external sensor
▪ They all provide the speed of the car but they may be systematically different, e.g. the
speedometer shall never show a speed lower than the actual speed in practice it will often
show a slightly higher speed
▪ If a single property value in a Context Broker was arbitrarily updated by the different sensors,
such values would be quite volatile, especially when looking at a temporal evolution, even if
the actual value was relatively stable
It is necessary to distinguish between the values from the different sources
3
“speed": {
"type" : "Property",
"value" : 100
}
“speed": {
"type" : "Property",
"value" : 95
}
“speed": {
"type" : "Property",
"value" : 93
}
Multi-Attributes with datasetId (2)
Properties
▪ The datasetId has the purpose of distinguishing values from different sources
▪ Property values with different datasetIds are considered distinct values and stored
separately
▪ Property values with a datasetId can thus be updated independently without affecting
values of the same property with a different datasetId
▪ Property values without a datasetId are considered to be the default value
▪ An update without a datasetId updates the default value
▪ A retrieve / query / notification returns all existing values for the same property – as JSON
object if there is a single value, within a container, if there are multiple
4
"speed": {
"type" : "Property",
"value" : 100,
"datasetId": "urn:speedometer"
}
"speed": {
"type" : "Property",
"value" : 95,
"datasetId": "urn:gps"
}
"speed": {
"type" : "Property",
"value" : 93,
"datasetId": "urn:speedcamera"
}
Multi-Attributes with datasetId (3)
5
▪ Create Entity … Add further speeds
curl -iX POST 
'.../ngsi-ld/v1/entities' 
--header 'Content-Type: application/json' 
--data-raw '{
"id": "urn:HDXX234",
"type": "Vehicle",
"speed": {
"type": "Property",
"value": 100,
"unitCode": "KMH",
"datasetId": "urn:speedometer"
}
}'
curl -iX POST 
'.../ngsi-ld/v1/entities/urn:HDXX234/attrs' 
--header 'Content-Type: application/json' 
--data-raw '{
"speed": [
{
"type": "Property",
"value" : 95,
"unitCode": "KMH",
"datasetId": "urn:gps"
},
{
"type": "Property",
"value": 92,
"unitCode": "KMH",
"datasetId": "urn:speedcamera"
}
]
}'
Multi-Attributes with datasetId (4)
6
▪ Update Speedometer Speed Result
▪ Query Vehicle urn:HDXX234
curl --iX PATCH 
'.../ngsi-ld/v1/entities/urn:HDXX234/attrs' 
--header 'Content-Type: application/JSON' 
--data-raw '{
"id": "urn:HDXX234",
"type": "Vehicle",
"speed": {
"type": "Property",
"value": 103,
"unitCode": "KMH"
"datasetId": "urn:speedometer"
}
}'
{
"id": "urn:HDXX234",
"type": "Vehicle",
"speed": [
{
"type": "Property",
"datasetId": "urn:gps",
"value": 95,
"unitCode": "KMH"
},
{
"type": "Property",
"datasetId": "urn:speedcamera",
"value": 92,
"unitCode": "KMH"
},
{
"type": "Property",
"datasetId": "urn:speedometer",
"value": 103,
"unitCode": "KMH"
}
]
}
curl -iX GET 
'.../ngsi-ld/v1/entities/urn:HDXX234' 
--header 'Accept: application/json'
Multi-Attributes with datasetId (5)
Relationships
▪ In addition to 1:1 relationships, there are also 1:n relationships
▪ Each element of a 1:n relationship can be represented with a datasetId
▪ Each relationship may have different meta information (sub-attributes)
▪ If David becomes the new best friend, the information can be updated
accordingly, using the datasetIds.
7
"friend": {
"type" : "Relationship",
"object" : "John“,
"datasetId": "urn:001"
}
"friend": {
"type" : "Relationship",
"object" : "Paul",
"datasetId": "urn:002",
}
"friend": {
"type" : "Relationship",
"object" : "David",
"datasetId": "urn:003",
"bestFriend": {
"type" : "Property",
"value" : true
}
}
Logical Data Separation of Entities: use of scopeQ
8
NGSI-LD Scopes (1)
• Hierarchical structures play an important role for
structuring and organizing our world, e.g.
hierarchical location structures (example on the
left) or organizational structures (e.g. of a
company)
• The special scope property allows giving an entity
a hierarchical scope, e.g. ParqueSur in the
example on the left
• In queries and subscriptions, scopes can be used
for filtering with the scopeQ parameter, e.g.
scopeQ="/Madrid/Gardens/ParqueSur",
which would only match entities that have this
particular scope.
Note: NGSI-LD Scopes are the successor of NGSIv2 Fiware-ServicePath, but
there are important differences
9
NGSI-LD Scopes (2)
• Entities can have multiple hierarchical scopes attached, e.g.
• Scopes are optional and independent of the Entity ID
• Scopes can be used to scope queries and subscriptions
• The scope query language (scopeQ) allows wildcards
• + for an arbitrary value of one hierarchy level, e.g. scopeQ="/CompanyA/+/HR", for matching the
HR groups of all departments of CompanyA
• # matches the given scope and the whole hierarchy of scopes below, e.g.
scopeQ="/Madrid/Gardens/# matches all entities with scope /Madrid/Gardens or any of its
direct or indirect sub-scopes
• /# matches all entities that have any explicit scope attached
• The scope query language (scopeQ) also has logical and and or operators, e.g.
scopeQ="/Madrid/District/Centro,/Madrid/District/Cortes" for all entities whose scope is
/Madrid/District/Centro or /Madrid/District/Cortes
• Scopes of entities can be updated
• Scopes can be registered as part of registrations
"scope":[
"/Madrid/District/Latina",
"/CompanyA/DepartmentX/UnitC"
]
10
NGSI-LD Scopes (3)
11
curl -iX POST 
'.../ngsi-ld/v1/entities' 
--header 'Content-Type: application/json' 
--data-raw '{
"id": "urn:HDMY185",
"type": "Vehicle",
"scope":[
"/Germany/Heidelberg",
"/CompanyA/DepartmentX/UnitC"
],
"speed": {
"type": "Property",
"value": 32,
"datasetId": "urn:speedometer"
}
}'
curl -iX POST 
'.../ngsi-ld/v1/entities' 
--header 'Content-Type: application/json' 
--data-raw '{
"id": "urn:BFF2016",
"type": "Vehicle",
"scope":[
"/Germany/Berlin/Charlottenburg",
"/CompanyA/DepartmentX"
],
"speed": {
"type": "Property",
"value": 32,
"datasetId": "urn:speedometer"
}
}'
NGSI-LD Scopes (4)
12
curl -iX GET 
'.../ngsi-ld/v1/entities?type=Vehicle&scopeQ=/CompanyA' 
--header 'Accept: application/json'
[]
[
{
"id": "urn:BFF2016",
"type": "Vehicle",
"scope": [
"/Germany/Berlin/Charlottenburg",
"/CompanyA/DepartmentX"
],
…
},
{
"id": "urn:HDMY185",
"type": "Vehicle",
"scope": [
"/Germany/Heidelberg",
"/CompanyA/DepartmentX/UnitC"
],
…
}
]
curl -iX GET 
'.../ngsi-ld/v1/entities?type=Vehicle&scopeQ=/CompanyA/%23' 
--header 'Accept: application/json' 
URL encoded Hash
Multi-tenancy: use of the NGSILD-Tenant header
13
Tenants (1)
▪ If the same context broker instance is to be used for multiple different
user (groups), their context information has to be isolated from each
other
▪ The concept for this is called multi-tenancy and each user (group) is
associated with one tenant
▪ NGSI-LD implementations can optionally support multitenancy. In all
requests a tenant can optionally be specified.
▪ In the HTTP binding this is done through the HTTP header “NGSILD-
Tenant”
▪ NGSILD-Tenant is the successor of Fiware-Service in NGSIv2
14
Tenants (2)
▪ The support for tenants can be implicit, i.e. a tenant is created when first used in the
context of a create (entity, subscription, registration) operation. There are currently
no API operations for explicitly creating or deleting tenants.
▪ Principle: if no tenant is specified, there is always a “default tenant” (which does not
have to be created and does not necessarily have to have any information to
provide).
▪ How tenants are implemented, i.e. how isolation is achieved, is up to the
implementation.
▪ Registrations target a tenant (if not, the “default tenant” is assumed) – if the same
context source / broker is to be registered for multiple tenants, multiple registrations
are needed.
15
Accessing Different Tenants
16
curl -iX POST 
'.../ngsi-ld/v1/entities' 
--header 'Content-Type: application/json' 
--data-raw '{
"id": "urn:SZZ546",
"type": "Vehicle",
"speed": {
"type": "Property",
"value": 32,
}
}'
Default Tenant
curl -iX GET 
'.../ngsi-ld/v1/entities?type=Vehicle' 
--header 'Accept: application/json'
[{
"id": "urn:SZZ546",
"type": "Vehicle",
"speed": {
"type": "Property",
"value": 32
}
}]
A named Tenant called "FIWARE"
curl -iX POST 
'.../ngsi-ld/v1/entities' 
--header 'Content-Type: application/json' 
--header 'NGSILD-Tenant: FIWARE' 
--data-raw '{
"id": "urn:MYY456",
"type": "Vehicle",
"speed": {
"type": "Property",
"value": 66
}
}'
curl -iX GET 
'.../ngsi-ld/v1/entities?type=Vehicle' 
--header 'Accept: application/json' 
--header 'NGSILD-Tenant: FIWARE' 
[{
"id": "urn:MYY456",
"type": "Vehicle",
"speed": {
"type": "Property",
"value": 66
}
}]
Federations, Actuations and Advanced Deployments
Including new Registration features in NGSI-LD 1.6.1
https://www.etsi.org/deliver/etsi_gs/CIM/001_099/009/01.06.01_60/gs_CIM009v010601p.pdf
17
Overview: Advanced Deployments
▪ Simple deployments typically:
• are controlled by a single operator that can
guarantee consistency
• handle a few hundred entities
• are used by a single application or a small set
of applications
… and can be handled by a single Broker /
single database
18
NGSI-LD has features to support advanced deployments
▪ Advanced deployments may:
• handle thousands or even millions of entities
(scalability)
• are controlled by multiple independent operators
• have heterogeneous sources of overlapping
information
• require that only some of the information is shared
• are used by many different applications
… and require interaction between many Brokers
and/or aggregation of information from multiple data
sources
Distributed deployments
NGSI-LD supports distributed deployments with multiple context sources,
which can also be full context brokers
Context brokers, but also IoT agents or other context sources (partially)
implementing the NGSI-LD API, can register with the context registry what
information they can provide
The context broker uses the information from the context registry to access
and aggregate information to be returned to the requesting
As the next level of context brokers can again have context brokers
registered, whole hierarchies of context brokers can be created, possibly
reflecting company structures or geographical structures
19
Federated deployments
▪ Federated deployments are distributed deployments that transparently give
applications access to context information from different players running own
context brokers
• a federated scenario is not technically different from other distributed
scenarios, but the assumption is that it goes across administrative
boundaries, there is no central control that can be assumed
▪ In federated scenarios, the focus typically is on accessing (and possibly
aggregating) context information from multiple context brokers, while the
management of the information (create, update, delete) is done locally in
each domain.
20
NGSI-LD Architectural Roles
Context
Source
Context
Consumer
Query
Subscribe/
Notify
Query
Subscribe/
Notify
Discover
Subscribe/
Notify
Discovery
Register
Discover
Subscribe/
Notify Discovery
Context
Registry
Broker
Context
Producer
Create
Update
Delete
21
Federation and Single Request for different Entities (1)
22
Federation
Broker
Broker 1 Broker 2
Application
Context
Registry
"urn:SZZ546"
"speed"
"urn:BVV987"
"speed"
{
"id": "urn:HDXX234",
"type": "Vehicle",
"speed": {
"type": "Property",
"value": 100
}
}
{
"id": "urn:SZZ546",
"type": "Vehicle",
"speed": {
"type": "Property",
"value": 32,
"datasetId":"urn:speedometer"
}
}
{
"id": "urn:BVV987",
"type": "Vehicle",
"speed": {
"type": "Property",
"value": 75
}
}
"urn:HDXX234"
"speed"
Federation and Single Request for different Entities (2)
23
Federation
Broker
Broker 1 Broker 2
Application
Context
Registry
register
register
"urn:vehicle1"
"urn:vehicle2"
"urn:SZZ546"
"speed"
"urn:HDXX234"
"speed"
"urn:BVV987"
"speed"
curl -iX POST 
'.../ngsi-ld/v1/csourceRegistrations' 
--header 'Content-Type: application/json' 
--data-raw '{
"id": "urn:ngsi-ld:ContextSourceRegistration:vehicle1",
"type": "ContextSourceRegistration",
"information": [{
"entities": [{
"type": "Vehicle"
}]
}
],
"endpoint": "http://broker1:9090"
}'
curl iX POST 
'.../ngsi-ld/v1/csourceRegistrations' 
--header 'Content-Type: application/json' 
--data-raw '{
"id": "urn:ngsi-ld:ContextSourceRegistration:vehicle2",
"type": "ContextSourceRegistration",
"information": [{
"entities": [{
"type": "Vehicle"
}]
}
],
"endpoint": "http://broker2:9090"
}'
Federation and Single Request for different Entities (3)
24
Federation
Broker
Broker 1 Broker 2
Application
Context
Registry
query
query
query
"urn:SZZ546"
"speed"
"urn:HDXX234"
"speed"
"urn:BVV987"
"speed"
"urn:vehicle1"
"urn:vehicle2"
[
{
"id": "urn:BVV987",
"type": "Vehicle",
"speed": {
"type": "Property",
"datasetId": "urn:speedometer",
"value": 75
}
},
{
"id": "urn:SZZ546",
"type": "Vehicle",
"speed": {
"type": "Property",
"datasetId": "urn:speedometer",
"value": 32
}
},
{
"id": "urn:HDXX234",
"type": "Vehicle",
"speed": {
"type": "Property",
"value": 100
}
}
]
curl -iX GET 
'.../ngsi-ld/v1/entities?type=Vehicle' 
--header 'Accept: application/json'
Federation and Single Request for the same Entity (1)
25
Federation
Broker
Broker 1 Broker 2
Application
Context
Registry
"ncc:1701-D"
"class"
"ncc:1701-D"
"bearing"
{
"id": "ncc:1701-D",
"type": "Vehicle",
"speed": {
"type": "Property",
"value": 9.9,
"unit": "WARP"
}
}
{
"id": "ncc:1701-D",
"type": "Vehicle",
"class": {
"type": "Property",
"value": "Galaxy class"
}
}
{
"id": "ncc:1701-D",
"type": "Vehicle",
"bearing": {
"type": "Property",
"value": "14 mark 68"
}
}
"ncc:1701-D"
"speed"
"urn:vehicle1"
"urn:vehicle2"
Federation and Single Request for the same Entity (2)
26
Federation
Broker
Broker 1 Broker 2
Application
Context
Registry
query
query
query
"urn:vehicle1"
"urn:vehicle2"
[
{
"id": "ncc:1701-D",
"type": "Vehicle",
"class": {
"type": "Property",
"value": "Galaxy class"
},
"bearing": {
"type": "Property",
"value": "14 mark 68"
},
"speed": {
"type": "Property",
"value": 9.9,
"unitCode": "WARP"
}
}
]
curl -iX GET 
'.../ngsi-ld/v1/entities?type=Vehicle' 
--header 'Accept: application/json'
"ncc:1701-D"
"speed"
"ncc:1701-D"
"class"
"ncc:1701-D"
"bearing"
Federation and Single Request for the same Entity (3)
27
Federation
Broker
Broker 1 Broker 2
Application
Context
Registry
"urn:vehicle1"
"urn:vehicle2"
"ncc:1701-D"
"speed"
"ncc:1701-D"
"class"
"ncc:1701-D"
"bearing"
curl --location --
request POST 'http://localhost:9090/ngsi-
ld/v1/entities/ncc:1701-D/attrs' 
--header 'Content-Type: application/json' 
--data-raw '{
"id": "ncc:1701-D",
"type": "Vehicle",
"speed": [{
"type": "Property",
"value": 21.468,
"unit": "c",
"datasetId": "urn:inspeedoflight"
},
{
"type": "Property",
"value": 6500000000,
"unitCode": "KMH",
"datasetId": "urn:inkmh"
}]
}'
"ncc:1701-D"
"class", "speed"
Add more values to speed property in
Federation Broker, using datasetId
Federation and Single Request for the same Entity (4)
28
Federation
Broker
Broker 1 Broker 2
Application
Context
Registry
query
query
query
"urn:vehicle1"
"urn:vehicle2"
[
{
"id": "ncc:1701-D",
"type": "Vehicle",
…
"speed": [
{
"type": "Property",
"value": 9.9,
"unitCode": "WARP"
},
{
"type": "Property",
"datasetId": "urn:inspeedoflight",
"value": 21.468,
"unit": "c"
},
{
"type": "Property",
"datasetId": "urn:inkmh",
"value": 6500000000,
"unitCode": “KMH"
}
]
}
]
curl --location --request 
GET 'http://localhost:9090/ngsi-
ld/v1/entities?type=Vehicle' 
--header 'Accept: application/json'
"ncc:1701-D"
"speed"
"ncc:1701-D"
"direction"
Broker
1
Federation
Broker
"ncc:1701-D"
"class", "speed"
Tenants in Distributed/Federated Cases:
Tenant Mapping in the Registry
▪ As for other operations, a tenant can be specified in registry operations
▪ Due to isolation between tenants, there are de facto separate registries per tenant (realization
is implementation-dependent)
▪ The available tenants in registered Context Sources or Brokers may be different from those in
the Broker to which the registry belongs therefore a mapping is required
▪ Thus: optional tenant information can be added to registrations (see next slide)
▪ Brokers then use this tenant information from the registrations when interacting with the
registered Context Sources / Brokers (not the tenant information provided in the original
request)
29
Tenant Information in CsourceRegistrations
ADD SECTION NAME
Name Data type Restriction Cardinality Description
id URI At creation time, If it is not provided, it will be
assigned during registration process and
returned to client.
It cannot be later modified in update
operations
0..1 Unique registration identifier. (JSON-LD @id).
There may be multiple registrations per
Context Source, i.e. the id is unique per
registration
type string "ContextSource
Registration"
1 JSON-LD @type
Use reserved type for identifying Context
Source Registration
name string Non-empty string 0..1 A name given to this Context Source
Registration
description string Non-empty string 0..1 A description of this Context Source
Registration
Information RegistrationInfo[] See data type definition in clause 5.2.10. Empty
array (0 length) is not allowed
1 Describes the Entities, Properties and
Relationships for which the Context Source
may be able to provide information
tenant string 0..1 Identifies the tenant that has to be
specified in all requests to the Context
Source that are related to the
information registered in this Context
Source Registration. If not present, the
default tenant is assumed. Should only
be present in systems supporting
multi-tenancy.
[…] […] […] […] […]
Beyond Federations: New distributed deployment features
Focus up to here has been on federated cases of context broker to context
broker operations, which is defined as the default case for NGSI-LD
However, there are also other common distributed deployment scenarios:
▪ Support for actuation (IoT Agents)
▪ Support for “lazy” attributes (IoT Agents)
▪ Explicit distribution of context information, e.g. one context
source for vehicles, another for bicycles
▪ Backup context sources e.g. less frequently updated
▪ Complex Data Sharing scenarios
These require a different subset of operations to the standard
federation case – a full context broker is frequently not required
▪ Security concerns may be explicitly deny certain operations
▪ In other cases, some entities or attributes may only be obtained from
a single specific context source (e.g. device actuation)
▪ Others could be augmented from multiple sources with limited availability
31
NGSI-LD v1.6.1
Distributed Operation Modes (1)
Additive Registrations
A Context Broker is permitted to hold context data about the Entities
and Attributes locally itself, and also obtain data from (possibly multiple)
external sources
▪ An inclusive Context Source Registration specifies that the Context Broker
considers all registered Context Sources as equals and will distribute operations to
those Context Sources even if relevant context data is available directly within the
Context Broker itself (in which case, all results will be integrated in the final
response). This federative and is the default mode of operation.
▪ An auxiliary Context Source Registration never overrides data held directly within
a Context Broker. Auxiliary distributed operations are limited to context information
consumption operations (see clause 5.7). Context data from auxiliary context
sources is only included if it is supplementary to the context data otherwise
available to the Context Broker.
NGSI-LD v1.6.1
additive proxied
inclusive auxiliary exclusive redirect
registration
options
32
Distributed Operation Modes (2)
Proxied Registrations
A Context Broker is not permitted to hold context data about the Entities
and Attributes locally itself. All context data is obtained from the external
registered sources.
▪ An exclusive Context Source Registration specifies that all of the registered
context data is held in a single location external to the Context Broker. The
Context Broker itself holds no data locally about the registered Attributes and no
overlapping proxied Context Source Registrations shall be supported for the
same combination of registered Attributes on the Entity.
An exclusive registration must be fully specified. It always relates to specific
Attributes found on a single Entity. It can be used for actuations
▪ A redirect Context Source Registration also specifies that the registered context
data is held in a location external to the Context Broker, but potentially multiple
distinct redirect registrations can apply at the same time.
NGSI-LD v1.6.1 33
additive proxied
inclusive auxiliary exclusive redirect
registration
options
Limiting Distributed Operations: local
▪ In order to avoid cascading distributed operations, the query parameter local can
be used to limit all operations to be executed on locally available information only.
(Clause 6.3.18)
▪ Context Sources can also put localOnly in the management info, provided in the
Context Source Registration to indicate that, for all requests forwarded to it, local
should be set.
Name Data Type Cardinality Remarks
local boolean 0..1 If local=true then no Context Source Registrations shall
be considered as matching to avoid cascading distributed
operations (see clause 4.3.6.4)
NGSI-LD v1.6.1 34
Context Source Registration
NGSI-LD v1.6.1 35
Supported Distributed Operations in Registration
NGSI-LD v1.6.1
Individual Operations Pre-defined Operation Groups
default
36
⬅ Actuators
⬅ "lazy"
Attributes
⬅ Federations
⬅ CRUD Proxies
Optional Registration Management Info
NGSI-LD v1.6.1 37
Conclusions
38
Summary (1)
▪ All NGSI-LD brokers (e.g Scorpio, Stellio, Orion-LD) are working towards a common
NGSI-LD specification
▪ The NSGI-LD Specification defines many advanced features, that Context Brokers
support are obliged to support to comply.
• These features are essential for certain advanced use cases, but in general usage of advance
features is not mandatory and usually will not be required when running simpler installations.
▪ Use Multi-Attributes with datasetId for alternative sources, 1-n relationships and
sequential command actuations
▪ Use Scopes to logically separate data. scopeQ filters hierarchical queries
▪ Use Tenants and the NGSILD-Tenant header to isolate context data into separate
databases.
▪ Use Advanced Registration features to alter the scope of distributed operations
39
Summary (2)
Remember, specification runs before implementation:
▪ As of September 2022, The latest specification revision was 1.6.1 and can be found
at: https://www.etsi.org/deliver/etsi_gs/CIM/001_099/009/01.06.01_60/gs_CIM009v010601p.pdf.
▪ Basic operations (e.g. from 1.3, 1.4) are commonly available across all brokers
• Federation has already been achieved between different brokers.
▪ Expect rollout of recently defined advanced distributed operation 1.6.1 features to
arrive in brokers in the coming months based on commercial priorities.
40
Summary (3)
▪ 4 distributed operation modes have been defined :
• inclusive = federation (default)
• exclusive = IoT devices
• redirect = distributed databases
• auxiliary = weak secondary sources
▪ The default list of supported distributed operations is explicitly defined as Federation
(i.e. Query + Subscribe operations)
• No changes required for existing federated environments
▪ For advanced operations and the use of limited partial brokers such as IoT Agents,
switch to using registration mode and the new operations list as soon as available
• Limit unnecessary and unsupported forwarded requests whenever possible.
▪ Registration management info (e.g localOnly) can be used to add further restrictions to
avoid unnecessary traffic, but remember that support for these options is always defined
as best effort only
41
Thank you!
http://fiware.org
Follow @FIWARE on Twitter

Weitere ähnliche Inhalte

Was ist angesagt?

FIWARE Global Summit - NGSI-LD – an Evolution from NGSIv2
FIWARE Global Summit - NGSI-LD – an Evolution from NGSIv2FIWARE Global Summit - NGSI-LD – an Evolution from NGSIv2
FIWARE Global Summit - NGSI-LD – an Evolution from NGSIv2FIWARE
 
Creating a Context-Aware solution, Complex Event Processing with FIWARE Perseo
Creating a Context-Aware solution, Complex Event Processing with FIWARE PerseoCreating a Context-Aware solution, Complex Event Processing with FIWARE Perseo
Creating a Context-Aware solution, Complex Event Processing with FIWARE PerseoFernando Lopez Aguilar
 
Session 2 - NGSI-LD primer & Smart Data Models | Train the Trainers Program
Session 2 - NGSI-LD primer & Smart Data Models | Train the Trainers ProgramSession 2 - NGSI-LD primer & Smart Data Models | Train the Trainers Program
Session 2 - NGSI-LD primer & Smart Data Models | Train the Trainers ProgramFIWARE
 
FIWARE Global Summit - NGSI-LD - NGSI with Linked Data
FIWARE Global Summit - NGSI-LD - NGSI with Linked DataFIWARE Global Summit - NGSI-LD - NGSI with Linked Data
FIWARE Global Summit - NGSI-LD - NGSI with Linked DataFIWARE
 
Session 5 - NGSI-LD Advanced Operations | Train the Trainers Program
Session 5 -  NGSI-LD Advanced Operations | Train the Trainers ProgramSession 5 -  NGSI-LD Advanced Operations | Train the Trainers Program
Session 5 - NGSI-LD Advanced Operations | Train the Trainers ProgramFIWARE
 
Scaling Data and ML with Apache Spark and Feast
Scaling Data and ML with Apache Spark and FeastScaling Data and ML with Apache Spark and Feast
Scaling Data and ML with Apache Spark and FeastDatabricks
 
Session 4 - Bringing the pieces together - Detailed review of a reference ex...
Session 4 -  Bringing the pieces together - Detailed review of a reference ex...Session 4 -  Bringing the pieces together - Detailed review of a reference ex...
Session 4 - Bringing the pieces together - Detailed review of a reference ex...FIWARE
 
FIWARE Training: IoT and Legacy
FIWARE Training: IoT and LegacyFIWARE Training: IoT and Legacy
FIWARE Training: IoT and LegacyFIWARE
 
FIWARE Wednesday Webinars - How to Design DataModels
FIWARE Wednesday Webinars - How to Design DataModelsFIWARE Wednesday Webinars - How to Design DataModels
FIWARE Wednesday Webinars - How to Design DataModelsFIWARE
 
FIWARE Wednesday Webinars - FIWARE Overview
FIWARE Wednesday Webinars - FIWARE OverviewFIWARE Wednesday Webinars - FIWARE Overview
FIWARE Wednesday Webinars - FIWARE OverviewFIWARE
 
Naver속도의, 속도에 의한, 속도를 위한 몽고DB (네이버 컨텐츠검색과 몽고DB) [Naver]
Naver속도의, 속도에 의한, 속도를 위한 몽고DB (네이버 컨텐츠검색과 몽고DB) [Naver]Naver속도의, 속도에 의한, 속도를 위한 몽고DB (네이버 컨텐츠검색과 몽고DB) [Naver]
Naver속도의, 속도에 의한, 속도를 위한 몽고DB (네이버 컨텐츠검색과 몽고DB) [Naver]MongoDB
 
FIWARE Training: Introduction to Smart Data Models
FIWARE Training: Introduction to Smart Data ModelsFIWARE Training: Introduction to Smart Data Models
FIWARE Training: Introduction to Smart Data ModelsFIWARE
 
Intro to Neo4j and Graph Databases
Intro to Neo4j and Graph DatabasesIntro to Neo4j and Graph Databases
Intro to Neo4j and Graph DatabasesNeo4j
 
MongoDB Fundamentals
MongoDB FundamentalsMongoDB Fundamentals
MongoDB FundamentalsMongoDB
 
FIWARE: Managing Context Information at large scale
FIWARE: Managing Context Information at large scaleFIWARE: Managing Context Information at large scale
FIWARE: Managing Context Information at large scaleFermin Galan
 
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...InfluxData
 
Interactive real time dashboards on data streams using Kafka, Druid, and Supe...
Interactive real time dashboards on data streams using Kafka, Druid, and Supe...Interactive real time dashboards on data streams using Kafka, Druid, and Supe...
Interactive real time dashboards on data streams using Kafka, Druid, and Supe...DataWorks Summit
 
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
 
FIWARE Training: JSON-LD and NGSI-LD
FIWARE Training: JSON-LD and NGSI-LDFIWARE Training: JSON-LD and NGSI-LD
FIWARE Training: JSON-LD and NGSI-LDFIWARE
 

Was ist angesagt? (20)

FIWARE Global Summit - NGSI-LD – an Evolution from NGSIv2
FIWARE Global Summit - NGSI-LD – an Evolution from NGSIv2FIWARE Global Summit - NGSI-LD – an Evolution from NGSIv2
FIWARE Global Summit - NGSI-LD – an Evolution from NGSIv2
 
Creating a Context-Aware solution, Complex Event Processing with FIWARE Perseo
Creating a Context-Aware solution, Complex Event Processing with FIWARE PerseoCreating a Context-Aware solution, Complex Event Processing with FIWARE Perseo
Creating a Context-Aware solution, Complex Event Processing with FIWARE Perseo
 
Data Modeling with NGSI, NGSI-LD
Data Modeling with NGSI, NGSI-LDData Modeling with NGSI, NGSI-LD
Data Modeling with NGSI, NGSI-LD
 
Session 2 - NGSI-LD primer & Smart Data Models | Train the Trainers Program
Session 2 - NGSI-LD primer & Smart Data Models | Train the Trainers ProgramSession 2 - NGSI-LD primer & Smart Data Models | Train the Trainers Program
Session 2 - NGSI-LD primer & Smart Data Models | Train the Trainers Program
 
FIWARE Global Summit - NGSI-LD - NGSI with Linked Data
FIWARE Global Summit - NGSI-LD - NGSI with Linked DataFIWARE Global Summit - NGSI-LD - NGSI with Linked Data
FIWARE Global Summit - NGSI-LD - NGSI with Linked Data
 
Session 5 - NGSI-LD Advanced Operations | Train the Trainers Program
Session 5 -  NGSI-LD Advanced Operations | Train the Trainers ProgramSession 5 -  NGSI-LD Advanced Operations | Train the Trainers Program
Session 5 - NGSI-LD Advanced Operations | Train the Trainers Program
 
Scaling Data and ML with Apache Spark and Feast
Scaling Data and ML with Apache Spark and FeastScaling Data and ML with Apache Spark and Feast
Scaling Data and ML with Apache Spark and Feast
 
Session 4 - Bringing the pieces together - Detailed review of a reference ex...
Session 4 -  Bringing the pieces together - Detailed review of a reference ex...Session 4 -  Bringing the pieces together - Detailed review of a reference ex...
Session 4 - Bringing the pieces together - Detailed review of a reference ex...
 
FIWARE Training: IoT and Legacy
FIWARE Training: IoT and LegacyFIWARE Training: IoT and Legacy
FIWARE Training: IoT and Legacy
 
FIWARE Wednesday Webinars - How to Design DataModels
FIWARE Wednesday Webinars - How to Design DataModelsFIWARE Wednesday Webinars - How to Design DataModels
FIWARE Wednesday Webinars - How to Design DataModels
 
FIWARE Wednesday Webinars - FIWARE Overview
FIWARE Wednesday Webinars - FIWARE OverviewFIWARE Wednesday Webinars - FIWARE Overview
FIWARE Wednesday Webinars - FIWARE Overview
 
Naver속도의, 속도에 의한, 속도를 위한 몽고DB (네이버 컨텐츠검색과 몽고DB) [Naver]
Naver속도의, 속도에 의한, 속도를 위한 몽고DB (네이버 컨텐츠검색과 몽고DB) [Naver]Naver속도의, 속도에 의한, 속도를 위한 몽고DB (네이버 컨텐츠검색과 몽고DB) [Naver]
Naver속도의, 속도에 의한, 속도를 위한 몽고DB (네이버 컨텐츠검색과 몽고DB) [Naver]
 
FIWARE Training: Introduction to Smart Data Models
FIWARE Training: Introduction to Smart Data ModelsFIWARE Training: Introduction to Smart Data Models
FIWARE Training: Introduction to Smart Data Models
 
Intro to Neo4j and Graph Databases
Intro to Neo4j and Graph DatabasesIntro to Neo4j and Graph Databases
Intro to Neo4j and Graph Databases
 
MongoDB Fundamentals
MongoDB FundamentalsMongoDB Fundamentals
MongoDB Fundamentals
 
FIWARE: Managing Context Information at large scale
FIWARE: Managing Context Information at large scaleFIWARE: Managing Context Information at large scale
FIWARE: Managing Context Information at large scale
 
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
 
Interactive real time dashboards on data streams using Kafka, Druid, and Supe...
Interactive real time dashboards on data streams using Kafka, Druid, and Supe...Interactive real time dashboards on data streams using Kafka, Druid, and Supe...
Interactive real time dashboards on data streams using Kafka, Druid, and Supe...
 
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
 
FIWARE Training: JSON-LD and NGSI-LD
FIWARE Training: JSON-LD and NGSI-LDFIWARE Training: JSON-LD and NGSI-LD
FIWARE Training: JSON-LD and NGSI-LD
 

Ähnlich wie Actuation, Federation and Interoperability of Context Brokers

orioncontextbroker-ngsiv2-overview-for-developers-that-already-know-ngsiv1-20...
orioncontextbroker-ngsiv2-overview-for-developers-that-already-know-ngsiv1-20...orioncontextbroker-ngsiv2-overview-for-developers-that-already-know-ngsiv1-20...
orioncontextbroker-ngsiv2-overview-for-developers-that-already-know-ngsiv1-20...Fermin 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 NGSIv1FIWARE
 
Getting data into Rudder
Getting data into RudderGetting data into Rudder
Getting data into RudderRUDDER
 
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 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
 
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 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
 
NGSIv2 Overview for Developers That Already Know NGSIv1 20180928
NGSIv2 Overview for Developers That Already Know NGSIv1 20180928NGSIv2 Overview for Developers That Already Know NGSIv1 20180928
NGSIv2 Overview for Developers That Already Know NGSIv1 20180928Fermin Galan
 
Introductory webinar-composite-app-2
Introductory webinar-composite-app-2Introductory webinar-composite-app-2
Introductory webinar-composite-app-2Reka Ajanthan
 
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
 
NGSIv2 Overview for Developers That Already Know NGSIv1 20181218
NGSIv2 Overview for Developers That Already Know NGSIv1 20181218NGSIv2 Overview for Developers That Already Know NGSIv1 20181218
NGSIv2 Overview for Developers That Already Know NGSIv1 20181218Fermin Galan
 
ngsiv2-overview-for-developers-that-already-know-ngsiv1-20190214
ngsiv2-overview-for-developers-that-already-know-ngsiv1-20190214ngsiv2-overview-for-developers-that-already-know-ngsiv1-20190214
ngsiv2-overview-for-developers-that-already-know-ngsiv1-20190214Fermin 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
 

Ähnlich wie Actuation, Federation and Interoperability of Context Brokers (20)

DevOps as a Contract
DevOps as a ContractDevOps as a Contract
DevOps as a Contract
 
orioncontextbroker-ngsiv2-overview-for-developers-that-already-know-ngsiv1-20...
orioncontextbroker-ngsiv2-overview-for-developers-that-already-know-ngsiv1-20...orioncontextbroker-ngsiv2-overview-for-developers-that-already-know-ngsiv1-20...
orioncontextbroker-ngsiv2-overview-for-developers-that-already-know-ngsiv1-20...
 
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
 
Getting data into Rudder
Getting data into RudderGetting data into Rudder
Getting data into Rudder
 
Consul and Consul Pusher
Consul and Consul PusherConsul and Consul Pusher
Consul and Consul Pusher
 
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 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-...
 
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 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...
 
NGSIv2 Overview for Developers That Already Know NGSIv1 20180928
NGSIv2 Overview for Developers That Already Know NGSIv1 20180928NGSIv2 Overview for Developers That Already Know NGSIv1 20180928
NGSIv2 Overview for Developers That Already Know NGSIv1 20180928
 
Introductory webinar-composite-app-2
Introductory webinar-composite-app-2Introductory webinar-composite-app-2
Introductory webinar-composite-app-2
 
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 ...
 
NGSIv2 Overview for Developers That Already Know NGSIv1 20181218
NGSIv2 Overview for Developers That Already Know NGSIv1 20181218NGSIv2 Overview for Developers That Already Know NGSIv1 20181218
NGSIv2 Overview for Developers That Already Know NGSIv1 20181218
 
ngsiv2-overview-for-developers-that-already-know-ngsiv1-20190214
ngsiv2-overview-for-developers-that-already-know-ngsiv1-20190214ngsiv2-overview-for-developers-that-already-know-ngsiv1-20190214
ngsiv2-overview-for-developers-that-already-know-ngsiv1-20190214
 
Core Context Management
Core Context ManagementCore Context Management
Core Context Management
 
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...
 

Mehr von FIWARE

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

Mehr von FIWARE (20)

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

Kürzlich hochgeladen

Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 

Kürzlich hochgeladen (20)

Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 

Actuation, Federation and Interoperability of Context Brokers

  • 1. Actuation, Federation and Interoperability of Context Brokers Advanced and Novel Features available in NGSI-LD 1.6.1 Jason Fox, Senior Technical Evangelist, FIWARE Foundation.
  • 2. Learning Goals ▪ Overview advanced deployments ▪ Multi-Attributes with datasetId (alternative sources, 1-n relationships) ▪ Scopes (filter based on hierarchies) ▪ Distributed deployments based on registrations (IoT Agents, Context Brokers) ▪ Federated deployments (transparently give applications access to context information from different players running own Context Brokers) ▪ Tenants (use same Context Broker instance, but isolate databases) ▪ Outlook: New distributed deployment features in NGSI-LD v1.6.1 1
  • 4. Multi-Attributes with datasetId (1) Properties ▪ There may be more than one source for the same information, e.g. speed of the same car from speedometer, navigation system, external sensor ▪ They all provide the speed of the car but they may be systematically different, e.g. the speedometer shall never show a speed lower than the actual speed in practice it will often show a slightly higher speed ▪ If a single property value in a Context Broker was arbitrarily updated by the different sensors, such values would be quite volatile, especially when looking at a temporal evolution, even if the actual value was relatively stable It is necessary to distinguish between the values from the different sources 3 “speed": { "type" : "Property", "value" : 100 } “speed": { "type" : "Property", "value" : 95 } “speed": { "type" : "Property", "value" : 93 }
  • 5. Multi-Attributes with datasetId (2) Properties ▪ The datasetId has the purpose of distinguishing values from different sources ▪ Property values with different datasetIds are considered distinct values and stored separately ▪ Property values with a datasetId can thus be updated independently without affecting values of the same property with a different datasetId ▪ Property values without a datasetId are considered to be the default value ▪ An update without a datasetId updates the default value ▪ A retrieve / query / notification returns all existing values for the same property – as JSON object if there is a single value, within a container, if there are multiple 4 "speed": { "type" : "Property", "value" : 100, "datasetId": "urn:speedometer" } "speed": { "type" : "Property", "value" : 95, "datasetId": "urn:gps" } "speed": { "type" : "Property", "value" : 93, "datasetId": "urn:speedcamera" }
  • 6. Multi-Attributes with datasetId (3) 5 ▪ Create Entity … Add further speeds curl -iX POST '.../ngsi-ld/v1/entities' --header 'Content-Type: application/json' --data-raw '{ "id": "urn:HDXX234", "type": "Vehicle", "speed": { "type": "Property", "value": 100, "unitCode": "KMH", "datasetId": "urn:speedometer" } }' curl -iX POST '.../ngsi-ld/v1/entities/urn:HDXX234/attrs' --header 'Content-Type: application/json' --data-raw '{ "speed": [ { "type": "Property", "value" : 95, "unitCode": "KMH", "datasetId": "urn:gps" }, { "type": "Property", "value": 92, "unitCode": "KMH", "datasetId": "urn:speedcamera" } ] }'
  • 7. Multi-Attributes with datasetId (4) 6 ▪ Update Speedometer Speed Result ▪ Query Vehicle urn:HDXX234 curl --iX PATCH '.../ngsi-ld/v1/entities/urn:HDXX234/attrs' --header 'Content-Type: application/JSON' --data-raw '{ "id": "urn:HDXX234", "type": "Vehicle", "speed": { "type": "Property", "value": 103, "unitCode": "KMH" "datasetId": "urn:speedometer" } }' { "id": "urn:HDXX234", "type": "Vehicle", "speed": [ { "type": "Property", "datasetId": "urn:gps", "value": 95, "unitCode": "KMH" }, { "type": "Property", "datasetId": "urn:speedcamera", "value": 92, "unitCode": "KMH" }, { "type": "Property", "datasetId": "urn:speedometer", "value": 103, "unitCode": "KMH" } ] } curl -iX GET '.../ngsi-ld/v1/entities/urn:HDXX234' --header 'Accept: application/json'
  • 8. Multi-Attributes with datasetId (5) Relationships ▪ In addition to 1:1 relationships, there are also 1:n relationships ▪ Each element of a 1:n relationship can be represented with a datasetId ▪ Each relationship may have different meta information (sub-attributes) ▪ If David becomes the new best friend, the information can be updated accordingly, using the datasetIds. 7 "friend": { "type" : "Relationship", "object" : "John“, "datasetId": "urn:001" } "friend": { "type" : "Relationship", "object" : "Paul", "datasetId": "urn:002", } "friend": { "type" : "Relationship", "object" : "David", "datasetId": "urn:003", "bestFriend": { "type" : "Property", "value" : true } }
  • 9. Logical Data Separation of Entities: use of scopeQ 8
  • 10. NGSI-LD Scopes (1) • Hierarchical structures play an important role for structuring and organizing our world, e.g. hierarchical location structures (example on the left) or organizational structures (e.g. of a company) • The special scope property allows giving an entity a hierarchical scope, e.g. ParqueSur in the example on the left • In queries and subscriptions, scopes can be used for filtering with the scopeQ parameter, e.g. scopeQ="/Madrid/Gardens/ParqueSur", which would only match entities that have this particular scope. Note: NGSI-LD Scopes are the successor of NGSIv2 Fiware-ServicePath, but there are important differences 9
  • 11. NGSI-LD Scopes (2) • Entities can have multiple hierarchical scopes attached, e.g. • Scopes are optional and independent of the Entity ID • Scopes can be used to scope queries and subscriptions • The scope query language (scopeQ) allows wildcards • + for an arbitrary value of one hierarchy level, e.g. scopeQ="/CompanyA/+/HR", for matching the HR groups of all departments of CompanyA • # matches the given scope and the whole hierarchy of scopes below, e.g. scopeQ="/Madrid/Gardens/# matches all entities with scope /Madrid/Gardens or any of its direct or indirect sub-scopes • /# matches all entities that have any explicit scope attached • The scope query language (scopeQ) also has logical and and or operators, e.g. scopeQ="/Madrid/District/Centro,/Madrid/District/Cortes" for all entities whose scope is /Madrid/District/Centro or /Madrid/District/Cortes • Scopes of entities can be updated • Scopes can be registered as part of registrations "scope":[ "/Madrid/District/Latina", "/CompanyA/DepartmentX/UnitC" ] 10
  • 12. NGSI-LD Scopes (3) 11 curl -iX POST '.../ngsi-ld/v1/entities' --header 'Content-Type: application/json' --data-raw '{ "id": "urn:HDMY185", "type": "Vehicle", "scope":[ "/Germany/Heidelberg", "/CompanyA/DepartmentX/UnitC" ], "speed": { "type": "Property", "value": 32, "datasetId": "urn:speedometer" } }' curl -iX POST '.../ngsi-ld/v1/entities' --header 'Content-Type: application/json' --data-raw '{ "id": "urn:BFF2016", "type": "Vehicle", "scope":[ "/Germany/Berlin/Charlottenburg", "/CompanyA/DepartmentX" ], "speed": { "type": "Property", "value": 32, "datasetId": "urn:speedometer" } }'
  • 13. NGSI-LD Scopes (4) 12 curl -iX GET '.../ngsi-ld/v1/entities?type=Vehicle&scopeQ=/CompanyA' --header 'Accept: application/json' [] [ { "id": "urn:BFF2016", "type": "Vehicle", "scope": [ "/Germany/Berlin/Charlottenburg", "/CompanyA/DepartmentX" ], … }, { "id": "urn:HDMY185", "type": "Vehicle", "scope": [ "/Germany/Heidelberg", "/CompanyA/DepartmentX/UnitC" ], … } ] curl -iX GET '.../ngsi-ld/v1/entities?type=Vehicle&scopeQ=/CompanyA/%23' --header 'Accept: application/json' URL encoded Hash
  • 14. Multi-tenancy: use of the NGSILD-Tenant header 13
  • 15. Tenants (1) ▪ If the same context broker instance is to be used for multiple different user (groups), their context information has to be isolated from each other ▪ The concept for this is called multi-tenancy and each user (group) is associated with one tenant ▪ NGSI-LD implementations can optionally support multitenancy. In all requests a tenant can optionally be specified. ▪ In the HTTP binding this is done through the HTTP header “NGSILD- Tenant” ▪ NGSILD-Tenant is the successor of Fiware-Service in NGSIv2 14
  • 16. Tenants (2) ▪ The support for tenants can be implicit, i.e. a tenant is created when first used in the context of a create (entity, subscription, registration) operation. There are currently no API operations for explicitly creating or deleting tenants. ▪ Principle: if no tenant is specified, there is always a “default tenant” (which does not have to be created and does not necessarily have to have any information to provide). ▪ How tenants are implemented, i.e. how isolation is achieved, is up to the implementation. ▪ Registrations target a tenant (if not, the “default tenant” is assumed) – if the same context source / broker is to be registered for multiple tenants, multiple registrations are needed. 15
  • 17. Accessing Different Tenants 16 curl -iX POST '.../ngsi-ld/v1/entities' --header 'Content-Type: application/json' --data-raw '{ "id": "urn:SZZ546", "type": "Vehicle", "speed": { "type": "Property", "value": 32, } }' Default Tenant curl -iX GET '.../ngsi-ld/v1/entities?type=Vehicle' --header 'Accept: application/json' [{ "id": "urn:SZZ546", "type": "Vehicle", "speed": { "type": "Property", "value": 32 } }] A named Tenant called "FIWARE" curl -iX POST '.../ngsi-ld/v1/entities' --header 'Content-Type: application/json' --header 'NGSILD-Tenant: FIWARE' --data-raw '{ "id": "urn:MYY456", "type": "Vehicle", "speed": { "type": "Property", "value": 66 } }' curl -iX GET '.../ngsi-ld/v1/entities?type=Vehicle' --header 'Accept: application/json' --header 'NGSILD-Tenant: FIWARE' [{ "id": "urn:MYY456", "type": "Vehicle", "speed": { "type": "Property", "value": 66 } }]
  • 18. Federations, Actuations and Advanced Deployments Including new Registration features in NGSI-LD 1.6.1 https://www.etsi.org/deliver/etsi_gs/CIM/001_099/009/01.06.01_60/gs_CIM009v010601p.pdf 17
  • 19. Overview: Advanced Deployments ▪ Simple deployments typically: • are controlled by a single operator that can guarantee consistency • handle a few hundred entities • are used by a single application or a small set of applications … and can be handled by a single Broker / single database 18 NGSI-LD has features to support advanced deployments ▪ Advanced deployments may: • handle thousands or even millions of entities (scalability) • are controlled by multiple independent operators • have heterogeneous sources of overlapping information • require that only some of the information is shared • are used by many different applications … and require interaction between many Brokers and/or aggregation of information from multiple data sources
  • 20. Distributed deployments NGSI-LD supports distributed deployments with multiple context sources, which can also be full context brokers Context brokers, but also IoT agents or other context sources (partially) implementing the NGSI-LD API, can register with the context registry what information they can provide The context broker uses the information from the context registry to access and aggregate information to be returned to the requesting As the next level of context brokers can again have context brokers registered, whole hierarchies of context brokers can be created, possibly reflecting company structures or geographical structures 19
  • 21. Federated deployments ▪ Federated deployments are distributed deployments that transparently give applications access to context information from different players running own context brokers • a federated scenario is not technically different from other distributed scenarios, but the assumption is that it goes across administrative boundaries, there is no central control that can be assumed ▪ In federated scenarios, the focus typically is on accessing (and possibly aggregating) context information from multiple context brokers, while the management of the information (create, update, delete) is done locally in each domain. 20
  • 23. Federation and Single Request for different Entities (1) 22 Federation Broker Broker 1 Broker 2 Application Context Registry "urn:SZZ546" "speed" "urn:BVV987" "speed" { "id": "urn:HDXX234", "type": "Vehicle", "speed": { "type": "Property", "value": 100 } } { "id": "urn:SZZ546", "type": "Vehicle", "speed": { "type": "Property", "value": 32, "datasetId":"urn:speedometer" } } { "id": "urn:BVV987", "type": "Vehicle", "speed": { "type": "Property", "value": 75 } } "urn:HDXX234" "speed"
  • 24. Federation and Single Request for different Entities (2) 23 Federation Broker Broker 1 Broker 2 Application Context Registry register register "urn:vehicle1" "urn:vehicle2" "urn:SZZ546" "speed" "urn:HDXX234" "speed" "urn:BVV987" "speed" curl -iX POST '.../ngsi-ld/v1/csourceRegistrations' --header 'Content-Type: application/json' --data-raw '{ "id": "urn:ngsi-ld:ContextSourceRegistration:vehicle1", "type": "ContextSourceRegistration", "information": [{ "entities": [{ "type": "Vehicle" }] } ], "endpoint": "http://broker1:9090" }' curl iX POST '.../ngsi-ld/v1/csourceRegistrations' --header 'Content-Type: application/json' --data-raw '{ "id": "urn:ngsi-ld:ContextSourceRegistration:vehicle2", "type": "ContextSourceRegistration", "information": [{ "entities": [{ "type": "Vehicle" }] } ], "endpoint": "http://broker2:9090" }'
  • 25. Federation and Single Request for different Entities (3) 24 Federation Broker Broker 1 Broker 2 Application Context Registry query query query "urn:SZZ546" "speed" "urn:HDXX234" "speed" "urn:BVV987" "speed" "urn:vehicle1" "urn:vehicle2" [ { "id": "urn:BVV987", "type": "Vehicle", "speed": { "type": "Property", "datasetId": "urn:speedometer", "value": 75 } }, { "id": "urn:SZZ546", "type": "Vehicle", "speed": { "type": "Property", "datasetId": "urn:speedometer", "value": 32 } }, { "id": "urn:HDXX234", "type": "Vehicle", "speed": { "type": "Property", "value": 100 } } ] curl -iX GET '.../ngsi-ld/v1/entities?type=Vehicle' --header 'Accept: application/json'
  • 26. Federation and Single Request for the same Entity (1) 25 Federation Broker Broker 1 Broker 2 Application Context Registry "ncc:1701-D" "class" "ncc:1701-D" "bearing" { "id": "ncc:1701-D", "type": "Vehicle", "speed": { "type": "Property", "value": 9.9, "unit": "WARP" } } { "id": "ncc:1701-D", "type": "Vehicle", "class": { "type": "Property", "value": "Galaxy class" } } { "id": "ncc:1701-D", "type": "Vehicle", "bearing": { "type": "Property", "value": "14 mark 68" } } "ncc:1701-D" "speed" "urn:vehicle1" "urn:vehicle2"
  • 27. Federation and Single Request for the same Entity (2) 26 Federation Broker Broker 1 Broker 2 Application Context Registry query query query "urn:vehicle1" "urn:vehicle2" [ { "id": "ncc:1701-D", "type": "Vehicle", "class": { "type": "Property", "value": "Galaxy class" }, "bearing": { "type": "Property", "value": "14 mark 68" }, "speed": { "type": "Property", "value": 9.9, "unitCode": "WARP" } } ] curl -iX GET '.../ngsi-ld/v1/entities?type=Vehicle' --header 'Accept: application/json' "ncc:1701-D" "speed" "ncc:1701-D" "class" "ncc:1701-D" "bearing"
  • 28. Federation and Single Request for the same Entity (3) 27 Federation Broker Broker 1 Broker 2 Application Context Registry "urn:vehicle1" "urn:vehicle2" "ncc:1701-D" "speed" "ncc:1701-D" "class" "ncc:1701-D" "bearing" curl --location -- request POST 'http://localhost:9090/ngsi- ld/v1/entities/ncc:1701-D/attrs' --header 'Content-Type: application/json' --data-raw '{ "id": "ncc:1701-D", "type": "Vehicle", "speed": [{ "type": "Property", "value": 21.468, "unit": "c", "datasetId": "urn:inspeedoflight" }, { "type": "Property", "value": 6500000000, "unitCode": "KMH", "datasetId": "urn:inkmh" }] }' "ncc:1701-D" "class", "speed" Add more values to speed property in Federation Broker, using datasetId
  • 29. Federation and Single Request for the same Entity (4) 28 Federation Broker Broker 1 Broker 2 Application Context Registry query query query "urn:vehicle1" "urn:vehicle2" [ { "id": "ncc:1701-D", "type": "Vehicle", … "speed": [ { "type": "Property", "value": 9.9, "unitCode": "WARP" }, { "type": "Property", "datasetId": "urn:inspeedoflight", "value": 21.468, "unit": "c" }, { "type": "Property", "datasetId": "urn:inkmh", "value": 6500000000, "unitCode": “KMH" } ] } ] curl --location --request GET 'http://localhost:9090/ngsi- ld/v1/entities?type=Vehicle' --header 'Accept: application/json' "ncc:1701-D" "speed" "ncc:1701-D" "direction" Broker 1 Federation Broker "ncc:1701-D" "class", "speed"
  • 30. Tenants in Distributed/Federated Cases: Tenant Mapping in the Registry ▪ As for other operations, a tenant can be specified in registry operations ▪ Due to isolation between tenants, there are de facto separate registries per tenant (realization is implementation-dependent) ▪ The available tenants in registered Context Sources or Brokers may be different from those in the Broker to which the registry belongs therefore a mapping is required ▪ Thus: optional tenant information can be added to registrations (see next slide) ▪ Brokers then use this tenant information from the registrations when interacting with the registered Context Sources / Brokers (not the tenant information provided in the original request) 29
  • 31. Tenant Information in CsourceRegistrations ADD SECTION NAME Name Data type Restriction Cardinality Description id URI At creation time, If it is not provided, it will be assigned during registration process and returned to client. It cannot be later modified in update operations 0..1 Unique registration identifier. (JSON-LD @id). There may be multiple registrations per Context Source, i.e. the id is unique per registration type string "ContextSource Registration" 1 JSON-LD @type Use reserved type for identifying Context Source Registration name string Non-empty string 0..1 A name given to this Context Source Registration description string Non-empty string 0..1 A description of this Context Source Registration Information RegistrationInfo[] See data type definition in clause 5.2.10. Empty array (0 length) is not allowed 1 Describes the Entities, Properties and Relationships for which the Context Source may be able to provide information tenant string 0..1 Identifies the tenant that has to be specified in all requests to the Context Source that are related to the information registered in this Context Source Registration. If not present, the default tenant is assumed. Should only be present in systems supporting multi-tenancy. […] […] […] […] […]
  • 32. Beyond Federations: New distributed deployment features Focus up to here has been on federated cases of context broker to context broker operations, which is defined as the default case for NGSI-LD However, there are also other common distributed deployment scenarios: ▪ Support for actuation (IoT Agents) ▪ Support for “lazy” attributes (IoT Agents) ▪ Explicit distribution of context information, e.g. one context source for vehicles, another for bicycles ▪ Backup context sources e.g. less frequently updated ▪ Complex Data Sharing scenarios These require a different subset of operations to the standard federation case – a full context broker is frequently not required ▪ Security concerns may be explicitly deny certain operations ▪ In other cases, some entities or attributes may only be obtained from a single specific context source (e.g. device actuation) ▪ Others could be augmented from multiple sources with limited availability 31 NGSI-LD v1.6.1
  • 33. Distributed Operation Modes (1) Additive Registrations A Context Broker is permitted to hold context data about the Entities and Attributes locally itself, and also obtain data from (possibly multiple) external sources ▪ An inclusive Context Source Registration specifies that the Context Broker considers all registered Context Sources as equals and will distribute operations to those Context Sources even if relevant context data is available directly within the Context Broker itself (in which case, all results will be integrated in the final response). This federative and is the default mode of operation. ▪ An auxiliary Context Source Registration never overrides data held directly within a Context Broker. Auxiliary distributed operations are limited to context information consumption operations (see clause 5.7). Context data from auxiliary context sources is only included if it is supplementary to the context data otherwise available to the Context Broker. NGSI-LD v1.6.1 additive proxied inclusive auxiliary exclusive redirect registration options 32
  • 34. Distributed Operation Modes (2) Proxied Registrations A Context Broker is not permitted to hold context data about the Entities and Attributes locally itself. All context data is obtained from the external registered sources. ▪ An exclusive Context Source Registration specifies that all of the registered context data is held in a single location external to the Context Broker. The Context Broker itself holds no data locally about the registered Attributes and no overlapping proxied Context Source Registrations shall be supported for the same combination of registered Attributes on the Entity. An exclusive registration must be fully specified. It always relates to specific Attributes found on a single Entity. It can be used for actuations ▪ A redirect Context Source Registration also specifies that the registered context data is held in a location external to the Context Broker, but potentially multiple distinct redirect registrations can apply at the same time. NGSI-LD v1.6.1 33 additive proxied inclusive auxiliary exclusive redirect registration options
  • 35. Limiting Distributed Operations: local ▪ In order to avoid cascading distributed operations, the query parameter local can be used to limit all operations to be executed on locally available information only. (Clause 6.3.18) ▪ Context Sources can also put localOnly in the management info, provided in the Context Source Registration to indicate that, for all requests forwarded to it, local should be set. Name Data Type Cardinality Remarks local boolean 0..1 If local=true then no Context Source Registrations shall be considered as matching to avoid cascading distributed operations (see clause 4.3.6.4) NGSI-LD v1.6.1 34
  • 37. Supported Distributed Operations in Registration NGSI-LD v1.6.1 Individual Operations Pre-defined Operation Groups default 36 ⬅ Actuators ⬅ "lazy" Attributes ⬅ Federations ⬅ CRUD Proxies
  • 38. Optional Registration Management Info NGSI-LD v1.6.1 37
  • 40. Summary (1) ▪ All NGSI-LD brokers (e.g Scorpio, Stellio, Orion-LD) are working towards a common NGSI-LD specification ▪ The NSGI-LD Specification defines many advanced features, that Context Brokers support are obliged to support to comply. • These features are essential for certain advanced use cases, but in general usage of advance features is not mandatory and usually will not be required when running simpler installations. ▪ Use Multi-Attributes with datasetId for alternative sources, 1-n relationships and sequential command actuations ▪ Use Scopes to logically separate data. scopeQ filters hierarchical queries ▪ Use Tenants and the NGSILD-Tenant header to isolate context data into separate databases. ▪ Use Advanced Registration features to alter the scope of distributed operations 39
  • 41. Summary (2) Remember, specification runs before implementation: ▪ As of September 2022, The latest specification revision was 1.6.1 and can be found at: https://www.etsi.org/deliver/etsi_gs/CIM/001_099/009/01.06.01_60/gs_CIM009v010601p.pdf. ▪ Basic operations (e.g. from 1.3, 1.4) are commonly available across all brokers • Federation has already been achieved between different brokers. ▪ Expect rollout of recently defined advanced distributed operation 1.6.1 features to arrive in brokers in the coming months based on commercial priorities. 40
  • 42. Summary (3) ▪ 4 distributed operation modes have been defined : • inclusive = federation (default) • exclusive = IoT devices • redirect = distributed databases • auxiliary = weak secondary sources ▪ The default list of supported distributed operations is explicitly defined as Federation (i.e. Query + Subscribe operations) • No changes required for existing federated environments ▪ For advanced operations and the use of limited partial brokers such as IoT Agents, switch to using registration mode and the new operations list as soon as available • Limit unnecessary and unsupported forwarded requests whenever possible. ▪ Registration management info (e.g localOnly) can be used to add further restrictions to avoid unnecessary traffic, but remember that support for these options is always defined as best effort only 41