SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
0
Connecting to Legacy Systems,
IoT and other Systems
Jason Fox
Senior Technical Evangelist
FIWARE Foundation
Implementation Specific @context
"fiware": "https://uri.fiware.org/ns/data-models#",
"schema": "https://schema.org/",
"example": "https://example.com/datamodels.html/",
"Building": "fiware:Building",
"Device": "fiware:Device",
"FillingLevelSensor": "example:FillingLevelSensor",
"CowCollar": "example:CowCollar",
"TemperatureSensor": "example:TemperatureSensor",
"Tractor": "example:Tractor",
… etc
"accuracy": "fiware:accuracy",
"batteryLevel": "fiware:batteryLevel",
"category": "fiware:category",
"controlledAsset": "fiware:controlledAsset",
"controlledProperty": "fiware:controlledProperty",
"deviceState": "fiware:deviceState",
"ipAddress": "fiware:ipAddress",
"macAddress": "fiware:macAddress",
"mcc": "fiware:mcc",
"osVersion": "fiware:osVersion",
1
"actuator": "https://w3id.org/saref#actuator",
"filling": "https://w3id.org/saref#fillingLevel",
"temperature": "https://w3id.org/saref#temperature",
"sensor": "https://w3id.org/saref#sensor",
"status": "https://saref.etsi.org/core/status",
"state": "https://saref.etsi.org/core/hasState",
"heartRate":
"https://purl.bioontology.org/ontology/MESH/D006339",
… etc
"myCustomAttr": "example:mycustomAttr",
"secondCustomAttr": "example:2ndCustomAttr"
● Reuse common data models and ontologies
● Add use-case specific mappings where necessary
● Remember to map all entities types, attributes and
metadata attributes
Undefined terms will fallback to the default context
https://uri.etsi.org/ngsi-ld/default-context
Configuring an IoT Agent as
NGSI-LD
iot-agent:
image: fiware/iotagent-ul:latest
hostname: iot-agent
container_name: fiware-iot-agent
networks:
- default
expose:
- "4041"
- "7896"
ports:
- "4041:4041"
- "7896:7896"
environment:
- IOTA_CB_HOST=orion
- IOTA_CB_PORT=1026
- IOTA_NORTH_PORT=4041
- IOTA_REGISTRY_TYPE=mongodb
- IOTA_TIMESTAMP=true
- IOTA_AUTOCAST=true
- IOTA_MONGO_HOST=mongo-db
- IOTA_MONGO_PORT=27017
- IOTA_MONGO_DB=iotagentul
- IOTA_HTTP_PORT=7896
- IOTA_PROVIDER_URL=http://iot-agent:4041
- IOTA_CB_NGSI_VERSION=ld
- IOTA_FALLBACK_TENANT=openiot
- IOTA_JSON_LD_CONTEXT=
http://../path/to/ngsi-context.jsonld
2
● Configure using ENV or config.js
Essentials
● IOTA_CB_NGSI_VERSION must be LD
● IOTA_JSON_LD_CONTEXT must point to a
hosted file
Useful
● IOTA_FALLBACK_TENANT if actuations
are required
● IOTA_TIMESTAMP
● IOTA_AUTOCAST
NGSI-LD Measures
▪ The IoT Device is using a known payload syntax
• Ultralight, JSON, SigFox, OPC-UA etc.
▪ The IoT Device sends a reading using the agreed
protocol
• HTTP, MQTT, AMPQ, LoRaWAN etc.
▪ The IoT Agent interprets the payload and
transforms the measure into NGSI-LD
▪ The only interface to the Context Broker is a
simple structured upsert of entities
• potentially including linked entities
3
Measure: “Device X in Building Y has registered 25°C”
curl -L -X POST 'http://localhost:1026/ngsi-ld/v1/entityOperations/upsert' 
-H 'Content-Type: application/ld+json' 
-d '[
{
"@context": "http://example.com/context.json-ld",
"id": "urn:ngsi-ld:Device:thermometer1",
"type": "Device"
"temperature": {
"type": "Property",
"value": 25,
“observedAt": "2015-08-05T07:35:01.468Z",
"unitCode": "CEL",
"accuracy":{
"type": "Property", "value": 0.95,
"unitCode": "C62"
}
},
"controlledAsset": {
"type": "Relationship",
"object": "urn:ngsi-ld:Building:building1"
}
}
]'
Provisioning an NGSI-LD Service Group
/iot/services endpoint defines
common elements across groups
of devices
▪ entity_type, attributes and
static_attributes correspond
to a data model found within
the @context file
▪ attributes and static_attributes
may have associated metadata.
▪ types should be defined as:
• Property
• Relationship
• A native JSON type
• A GeoJSON type
5
curl -s -o /dev/null -X POST 
'http://iot-agent:4041/iot/services' 
-H 'Content-Type: application/json' -H 'fiware-service: openiot' 
-d '{
"services": [
{
"apikey": "321701236",
"cbroker": "http://orion:1026",
"entity_type": "Device",
"resource": "/iot/d",
"protocol": "PDI-IoTA-UltraLight",
"transport": "HTTP",
"timezone": "Europe/Berlin",
"attributes": [
{ "object_id": "t", "name":"temperature", "type": "Float",
"metadata": {"unitCode": {"type": "Property","value": "CEL"}}
}
],
"static_attributes": [
{"name": "description",
"type":"Property", "value": "Thermometer"},
{"name": "category", "type":"Property", "value": ["sensor"]},
{"name": "controlledProperty",
"type": "Property", "value": "temperature"},
{"name": "supportedProtocol",
"type": "Property", "value": ["ul20"]}
]
}
]
}'
Provisioning NGSI-LD device
/iot/devices endpoint defines
additional data for an individual device
▪ attributes and static_attributes
can also be defined at the device level
- the standard rules about types apply
▪ Use link on a static_attribute to
update a linked Entity
6
curl -s -o /dev/null -X POST 
'http://iot-agent:4041/iot/devices' 
-H 'Content-Type: application/json' 
-H 'fiware-service: openiot' 
-H 'fiware-servicepath: /' 
-d '{
"devices": [
{
"device_id": "txhme001xxe",
"entity_name": "urn:ngsi-ld:Device:temperature001",
"entity_type": "Device",
"static_attributes": [
{
"name": "controlledAsset",
"type": "Relationship",
"value": "urn:ngsi-ld:Building:001",
"link": {
"attributes": ["temperature"],
"name": "providedBy",
"type": "Building"
}
}
]
}
]
GPS Measure: “GPS X has moved to location x,y”
With location payloads such as:
▪ As Ultralight String
gps|13.3501,52.5143
▪ As Ultralight Multiple attributes
lng|13.3501|lat|52.5143
▪ JSON as string value:
{"gps": "13.3501,52.5143"}
▪ JSON as array value:
{"gps": [13.3501, 52.5143]}
▪ JSON as GeoJSON:
{
"gps": {
"type": "Point",
"coordinates": [13.3501, 52.5143]
}
}
▪ etc...
7
Context Broker receives an NGSI-LD upsert
curl -L -X POST
'http://localhost:1026/ngsi-ld/v1/entityOperations/upsert' 
-H 'Content-Type: application/ld+json' 
-d '[
{
"@context": "http://example.com/context.json-ld",
"id": "urn:ngsi-ld:Device:gps1",
"type": "Device"
"location": {
"type": "GeoProperty",
"value": :{
"type": "Point",
"coordinates": [13.3501, 52.5143]
},
“observedAt": "2015-08-05T07:35:01.468Z"
},
"controlledAsset": {
"type": "Relationship",
"object": "urn:ngsi-ld:Tractor:tractor1"
}
}
]'
Provisioning GPS Devices
GPS Provisioning from a single input
▪ Use location as the name of a geolocation attribute
▪ Set type=GeoProperty or any GeoJSON type
▪ Map an attribute object_id to NGSI-LD attribute name
Aliasing Latitude and Longitude as separate inputs
▪ Use location as the name of a geolocation attribute
▪ Set type=GeoProperty or any GeoJSON type
▪ Use expression aliasing to map multiple inputs to a String
▪ Remember GeoJSON uses Lng/Lan format
▪ Will only fire if both latitude and longitude are present in
the payload
All GeoProperty input values are automatically converted into GeoJSON in the NGSI-LD upsert
8
IoT Agent Device Provisioning
{
"object_id": "gps",
"name":"location",
"type": "geo:point"
}
{
"name": "location",
"type": "geo:json",
"expression": "${@lng}, ${@lat}"
}
NGSI-LD Actuations
▪ NGSI-LD actuation code is currently based on
the existing NGSI-v2 IoT Agent paradigm.
▪ Uses registrations and request forwarding
▪ Alternatively uses subscriptions and
notification payloads
▪ Both mechanisms supported by IoT Agents.
Internally syntax may change based on the
decisions of the ETSI committee, but since
the listening mechanism is internal to the
IoT Agent library it will be updated once the
proposed interface is finalized.
9
Command provisioning - via actuation registration:
“I am responsible for Attribute X”
IoT Agent Device Provisioning
10
Context Broker receives a Registration
curl -L -X POST 'http://localhost:4041/iot/devices' 
-H 'fiware-service: openiot' 
-H 'Content-Type: application/json' 
--data-raw '{
"devices": [
{
"device_id": "water001",
"protocol": "PDI-IoTA-UltraLight",
"transport": "HTTP",
"endpoint": "http://device:3001/iot/water001",
"entity_name": "urn:ngsi-ld:Device:water001",
"entity_type": "Device",
"commands": [
{
"name": "on",
"type": "command"
},
{
"name": "off",
"type": "command"
}
]
}
]
}'
curl -L -X POST 'http://localhost:1026/ngsi-ld/v1/csourceRegistrations' 
-H 'NGSILD-Tenant: openiot' 
-H 'Content-Type: application/ld+json' 
-d '{
"@context": "http://context.json-ld",
"endpoint": "http://iotagent.com",
"information": [
{
"entities": [
{
"id": "urn:ngsi-ld:Device:water001",
"type": "Device"
}
],
"properties": [
"on",
"off"
]
}
],
"type": "ContextSourceRegistration"
}
'
Bidirectional attribute provisioning - actuation via
subscription: “Tell me when Attribute X changes”
11
Context Broker sends a Subscription
curl -L -X POST 'http://localhost:4041/iot/devices' 
-H 'fiware-service: openiot' 
-H 'fiware-servicepath: /' 
-H 'Content-Type: application/json' 
--data-raw '{
"devices": [
{
"device_id": "bell002",
"entity_name": "urn:ngsi-ld:Bell:002",
"entity_type": "Bell",
"protocol": "PDI-IoTA-UltraLight",
"transport": "HTTP",
"endpoint": "http://device:3001/iot/bell002",
"attributes": [
{ "name":"ring", "type":"Text",
"expression": "${@ring}",
"reverse": [
{
"object_id":"r", "type": "Text",
"expression": "${@ring}"
}
]
}
]
}
]
}'
{
"id": "urn:ngsi-ld:Notification:5fd0fa684eb81930c97005f3",
"type": "Notification",
"subscriptionId": "urn:ngsi-ld:Subscription:12345",
"notifiedAt": "2020-12-09T16:25:12.193Z",
"data": [
{
"id": "urn:ngsi-ld:Bell:002",
"type": "Bell",
"filling": {
"type": "Property",
"value": “ “,
}
}
]
}
Extending to legacy Systems via Upsert
12
Multiple options exist to architect this:
▪ Amend legacy processing component to use
NGSI directly as well as legacy protocol
▪ Upload a file as CSV via an Agent?
https://www.youtube.com/watch?v=HuEwI8wJKFU
▪ Create a separate chron-job to query legacy
system and upsert as NGSI?
Also consider using a database as an intermediary.
https://www.youtube.com/watch?v=_uLZDGFPlRA
function upsertToMongoDB(building) {
return new Promise((resolve, reject) => {
mongoDB
.upsert(
building.id, building.name,
building.address, building.verified)
.then(() => {
return resolve();
})
.catch((error) => {
return reject(error);
});
});
}
function duplicateBuildings(req, res) {
async function copyEntityData(building) {
await upsertToMongoDB(building);
}
req.body.data.forEach(copyEntityData);
res.status(204).send();
}
Extending to legacy Systems via Registration
“Tell me about X”, “I want to update X”
13
curl -L -X GET
'http://my-legacy-system/ngsi-ld/v1/entities/urn:ngsi-ld
:Building:store001?attrs=tweets' 
-H 'Link: <https://my-context/context.jsonld>;
rel="http://www.w3.org/ns/json-ld#context";
type="application/ld+json"' 
-H 'Content-Type: application/ld+json'
curl -L -X PATCH
'http://my-legacy-system/ngsi-ld/v1/entities/urn:ngsi-ld
:Building:store001/attrs/tweets' 
-H 'Link: <https://my-context/context.jsonld>;
rel="http://www.w3.org/ns/json-ld#context";
type="application/ld+json"' 
-H 'Content-Type: application/json' 
--data-raw '{
"type": "Property",
"value": [
"This must be Thursday",
"I never could get the hang of Thursdays."
]
} '
router.get('/ngsi-ld/v1/entities/:id',
NGSIProxy.getAsNgsiLD
);
router.patch(
'/ngsi-ld/v1/entities/:id/attrs',
NGSIProxy.updateEntity
);
function getAsNgsiLD(req, res) {
const response = doSomething(req);
if (req.headers.accept === 'application/json') {
res.set('Content-Type', 'application/json');
delete response['@context'];
} else {
res.set('Content-Type', 'application/ld+json');
}
res.send(response);
}
Extending to legacy Systems via Subscription
“Inform me about X so I can do something”
14
{
"id":
"urn:ngsi-ld:Notification:5fd0fa684eb81930c97005f3",
"type": "Notification",
"subscriptionId": "urn:ngsi-ld:Subscription:12345",
"notifiedAt": "2020-12-09T16:25:12.193Z",
"data": [
{
"id": "urn:ngsi-ld:Bell:002",
"type": "Bell",
"filling": {
"type": "Property",
"value": “ “,
}
}
]
}
router.post('/subscription/:type', (req, res) => {
_.forEach(req.body.data, (item) => {
doSomething(req, item);
});
res.status(204).send();
});
Useful links
JSON-LD
▪ Website: https://json-ld.org/
▪ Linked Data Video: https://www.youtube.com/watch?v=vioCbTo3C-4
▪ JSON-LD Video: https://www.youtube.com/watch?v=4x_xzT5eF5Q
NGSI-LD
▪ ETSI Specification:
https://www.etsi.org/deliver/etsi_gs/CIM/001_099/009/01.03.01_60/gs_cim009v010301p.pdf
▪ NGSI-LD Video: https://www.youtube.com/watch?v=rZ13IyLpAtA
▪ Tutorials: https://ngsi-ld-tutorials.readthedocs.io/
Smart Data Models
▪ Website: http://smartdatamodels.org/
▪ Smart Cities Data Models Video: https://www.youtube.com/watch?v=dfMo0HnaIUQ
15
Thank you!
http://fiware.org
Follow @FIWARE on Twitter

Contenu connexe

Tendances

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
 
Session 2 - NGSI-LD primer & Smart Data Models | Train the Trainers Program
Session 2 - NGSI-LD primer & Smart Data Models | Train the Trainers ProgramSession 2 - NGSI-LD primer & Smart Data Models | Train the Trainers Program
Session 2 - NGSI-LD primer & Smart Data Models | Train the Trainers ProgramFIWARE
 
FIWARE Training: NGSI-LD Introduction
FIWARE Training: NGSI-LD IntroductionFIWARE Training: NGSI-LD Introduction
FIWARE Training: NGSI-LD IntroductionFIWARE
 
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 Global Summit - The Scorpio NGSI-LD Broker: Features and Supported Arc...
FIWARE Global Summit - The Scorpio NGSI-LD Broker: Features and Supported Arc...FIWARE Global Summit - The Scorpio NGSI-LD Broker: Features and Supported Arc...
FIWARE Global Summit - The Scorpio NGSI-LD Broker: Features and Supported Arc...FIWARE
 
FIWARE Wednesday Webinars - NGSI-LD and Smart Data Models: Standard Access to...
FIWARE Wednesday Webinars - NGSI-LD and Smart Data Models: Standard Access to...FIWARE Wednesday Webinars - NGSI-LD and Smart Data Models: Standard Access to...
FIWARE Wednesday Webinars - NGSI-LD and Smart Data Models: Standard Access to...FIWARE
 
FIWARE Wednesday Webinars - Performing Big Data Analysis Using Cosmos With Sp...
FIWARE Wednesday Webinars - Performing Big Data Analysis Using Cosmos With Sp...FIWARE Wednesday Webinars - Performing Big Data Analysis Using Cosmos With Sp...
FIWARE Wednesday Webinars - Performing Big Data Analysis Using Cosmos With Sp...FIWARE
 
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
 
Session 8 - Creating Data Processing Services | Train the Trainers Program
Session 8 - Creating Data Processing Services | Train the Trainers ProgramSession 8 - Creating Data Processing Services | Train the Trainers Program
Session 8 - Creating Data Processing Services | Train the Trainers ProgramFIWARE
 
FIWARE Training: JSON-LD and NGSI-LD
FIWARE Training: JSON-LD and NGSI-LDFIWARE Training: JSON-LD and NGSI-LD
FIWARE Training: JSON-LD and NGSI-LDFIWARE
 
Orion Context Broker 20220526
Orion Context Broker 20220526Orion Context Broker 20220526
Orion Context Broker 20220526Fermin Galan
 
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
 
Orion Context Broker 20220301
Orion Context Broker 20220301Orion Context Broker 20220301
Orion Context Broker 20220301Fermin Galan
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.3.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.3.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.3.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.3.0対応)fisuda
 
Fiware IoT_IDAS_intro_ul20_v2
Fiware IoT_IDAS_intro_ul20_v2Fiware IoT_IDAS_intro_ul20_v2
Fiware IoT_IDAS_intro_ul20_v2FIWARE
 
FIWARE Training: Identity Management and Access Control
FIWARE Training: Identity Management and Access ControlFIWARE Training: Identity Management and Access Control
FIWARE Training: Identity Management and Access ControlFIWARE
 
Session 3 - i4Trust components for Identity Management and Access Control i4T...
Session 3 - i4Trust components for Identity Management and Access Control i4T...Session 3 - i4Trust components for Identity Management and Access Control i4T...
Session 3 - i4Trust components for Identity Management and Access Control i4T...FIWARE
 
KeyRock and Wilma - Openstack-based Identity Management in FIWARE
KeyRock and Wilma - Openstack-based Identity Management in FIWAREKeyRock and Wilma - Openstack-based Identity Management in FIWARE
KeyRock and Wilma - Openstack-based Identity Management in FIWAREÁlvaro Alonso González
 
JSON-LD for RESTful services
JSON-LD for RESTful servicesJSON-LD for RESTful services
JSON-LD for RESTful servicesMarkus Lanthaler
 

Tendances (20)

Data Modeling with NGSI, NGSI-LD
Data Modeling with NGSI, NGSI-LDData Modeling with NGSI, NGSI-LD
Data Modeling with NGSI, NGSI-LD
 
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...
 
Session 2 - NGSI-LD primer & Smart Data Models | Train the Trainers Program
Session 2 - NGSI-LD primer & Smart Data Models | Train the Trainers ProgramSession 2 - NGSI-LD primer & Smart Data Models | Train the Trainers Program
Session 2 - NGSI-LD primer & Smart Data Models | Train the Trainers Program
 
FIWARE Training: NGSI-LD Introduction
FIWARE Training: NGSI-LD IntroductionFIWARE Training: NGSI-LD Introduction
FIWARE Training: NGSI-LD Introduction
 
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 Global Summit - The Scorpio NGSI-LD Broker: Features and Supported Arc...
FIWARE Global Summit - The Scorpio NGSI-LD Broker: Features and Supported Arc...FIWARE Global Summit - The Scorpio NGSI-LD Broker: Features and Supported Arc...
FIWARE Global Summit - The Scorpio NGSI-LD Broker: Features and Supported Arc...
 
FIWARE Wednesday Webinars - NGSI-LD and Smart Data Models: Standard Access to...
FIWARE Wednesday Webinars - NGSI-LD and Smart Data Models: Standard Access to...FIWARE Wednesday Webinars - NGSI-LD and Smart Data Models: Standard Access to...
FIWARE Wednesday Webinars - NGSI-LD and Smart Data Models: Standard Access to...
 
FIWARE Wednesday Webinars - Performing Big Data Analysis Using Cosmos With Sp...
FIWARE Wednesday Webinars - Performing Big Data Analysis Using Cosmos With Sp...FIWARE Wednesday Webinars - Performing Big Data Analysis Using Cosmos With Sp...
FIWARE Wednesday Webinars - Performing Big Data Analysis Using Cosmos With Sp...
 
FIWARE 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
 
Session 8 - Creating Data Processing Services | Train the Trainers Program
Session 8 - Creating Data Processing Services | Train the Trainers ProgramSession 8 - Creating Data Processing Services | Train the Trainers Program
Session 8 - Creating Data Processing Services | Train the Trainers Program
 
FIWARE Training: JSON-LD and NGSI-LD
FIWARE Training: JSON-LD and NGSI-LDFIWARE Training: JSON-LD and NGSI-LD
FIWARE Training: JSON-LD and NGSI-LD
 
Orion Context Broker 20220526
Orion Context Broker 20220526Orion Context Broker 20220526
Orion Context Broker 20220526
 
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
 
Orion Context Broker 20220301
Orion Context Broker 20220301Orion Context Broker 20220301
Orion Context Broker 20220301
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.3.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.3.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.3.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.3.0対応)
 
Fiware IoT_IDAS_intro_ul20_v2
Fiware IoT_IDAS_intro_ul20_v2Fiware IoT_IDAS_intro_ul20_v2
Fiware IoT_IDAS_intro_ul20_v2
 
FIWARE Training: Identity Management and Access Control
FIWARE Training: Identity Management and Access ControlFIWARE Training: Identity Management and Access Control
FIWARE Training: Identity Management and Access Control
 
Session 3 - i4Trust components for Identity Management and Access Control i4T...
Session 3 - i4Trust components for Identity Management and Access Control i4T...Session 3 - i4Trust components for Identity Management and Access Control i4T...
Session 3 - i4Trust components for Identity Management and Access Control i4T...
 
KeyRock and Wilma - Openstack-based Identity Management in FIWARE
KeyRock and Wilma - Openstack-based Identity Management in FIWAREKeyRock and Wilma - Openstack-based Identity Management in FIWARE
KeyRock and Wilma - Openstack-based Identity Management in FIWARE
 
JSON-LD for RESTful services
JSON-LD for RESTful servicesJSON-LD for RESTful services
JSON-LD for RESTful services
 

Similaire à FIWARE Training: IoT and Legacy

Session 7 - Connecting to Legacy Systems, IoT and other Systems | Train the T...
Session 7 - Connecting to Legacy Systems, IoT and other Systems | Train the T...Session 7 - Connecting to Legacy Systems, IoT and other Systems | Train the T...
Session 7 - Connecting to Legacy Systems, IoT and other Systems | Train the T...FIWARE
 
FIWARE Training: Connecting to Legacy Systems, IoT and other Systems
FIWARE Training: Connecting to Legacy Systems, IoT and other SystemsFIWARE Training: Connecting to Legacy Systems, IoT and other Systems
FIWARE Training: Connecting to Legacy Systems, IoT and other SystemsFIWARE
 
Fiware io t_ul20_cpbr8
Fiware io t_ul20_cpbr8Fiware io t_ul20_cpbr8
Fiware io t_ul20_cpbr8FIWARE
 
Fiware IoT Proposal & Community
Fiware IoT Proposal & Community Fiware IoT Proposal & Community
Fiware IoT Proposal & Community TIDChile
 
Developing your first application using FIWARE
Developing your first application using FIWAREDeveloping your first application using FIWARE
Developing your first application using FIWAREFIWARE
 
NGSI-LD IoT Agents
NGSI-LD IoT AgentsNGSI-LD IoT Agents
NGSI-LD IoT AgentsFIWARE
 
Towards Interoperability between W3C Web of Things and NGSI-LD
Towards Interoperability between W3C Web of Things and NGSI-LDTowards Interoperability between W3C Web of Things and NGSI-LD
Towards Interoperability between W3C Web of Things and NGSI-LDJosé Manuel Cantera Fonseca
 
Anwendungsfaelle für Elasticsearch
Anwendungsfaelle für ElasticsearchAnwendungsfaelle für Elasticsearch
Anwendungsfaelle für ElasticsearchFlorian Hopf
 
Web of things introduction
Web of things introductionWeb of things introduction
Web of things introduction承翰 蔡
 
Building the IOT Platform as a Service
Building the IOT Platform as a ServiceBuilding the IOT Platform as a Service
Building the IOT Platform as a ServiceJesus Rodriguez
 
(MBL303) Build Mobile Apps for IoT Devices and IoT Apps for Devices
(MBL303) Build Mobile Apps for IoT Devices and IoT Apps for Devices(MBL303) Build Mobile Apps for IoT Devices and IoT Apps for Devices
(MBL303) Build Mobile Apps for IoT Devices and IoT Apps for DevicesAmazon Web Services
 
FIWARE Global Summit - The Way Towards Interoperability between Web Of Things...
FIWARE Global Summit - The Way Towards Interoperability between Web Of Things...FIWARE Global Summit - The Way Towards Interoperability between Web Of Things...
FIWARE Global Summit - The Way Towards Interoperability between Web Of Things...FIWARE
 
Orion Context Broker
Orion Context Broker Orion Context Broker
Orion Context Broker TIDChile
 
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
 
Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22
Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22
Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22Frédéric Harper
 
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12Frédéric Harper
 
FIWARE: Managing Context Information at Large Scale (NGSIv1)
FIWARE: Managing Context Information at Large Scale (NGSIv1)FIWARE: Managing Context Information at Large Scale (NGSIv1)
FIWARE: Managing Context Information at Large Scale (NGSIv1)Fermin Galan
 

Similaire à FIWARE Training: IoT and Legacy (20)

Session 7 - Connecting to Legacy Systems, IoT and other Systems | Train the T...
Session 7 - Connecting to Legacy Systems, IoT and other Systems | Train the T...Session 7 - Connecting to Legacy Systems, IoT and other Systems | Train the T...
Session 7 - Connecting to Legacy Systems, IoT and other Systems | Train the T...
 
FIWARE Training: Connecting to Legacy Systems, IoT and other Systems
FIWARE Training: Connecting to Legacy Systems, IoT and other SystemsFIWARE Training: Connecting to Legacy Systems, IoT and other Systems
FIWARE Training: Connecting to Legacy Systems, IoT and other Systems
 
Fiware io t_ul20_cpbr8
Fiware io t_ul20_cpbr8Fiware io t_ul20_cpbr8
Fiware io t_ul20_cpbr8
 
Fiware IoT Proposal & Community
Fiware IoT Proposal & Community Fiware IoT Proposal & Community
Fiware IoT Proposal & Community
 
Developing your first application using FIWARE
Developing your first application using FIWAREDeveloping your first application using FIWARE
Developing your first application using FIWARE
 
NGSI-LD IoT Agents
NGSI-LD IoT AgentsNGSI-LD IoT Agents
NGSI-LD IoT Agents
 
Towards Interoperability between W3C Web of Things and NGSI-LD
Towards Interoperability between W3C Web of Things and NGSI-LDTowards Interoperability between W3C Web of Things and NGSI-LD
Towards Interoperability between W3C Web of Things and NGSI-LD
 
Anwendungsfaelle für Elasticsearch
Anwendungsfaelle für ElasticsearchAnwendungsfaelle für Elasticsearch
Anwendungsfaelle für Elasticsearch
 
Web of things introduction
Web of things introductionWeb of things introduction
Web of things introduction
 
Introduction to FIWARE IoT
Introduction to FIWARE IoTIntroduction to FIWARE IoT
Introduction to FIWARE IoT
 
Building the IOT Platform as a Service
Building the IOT Platform as a ServiceBuilding the IOT Platform as a Service
Building the IOT Platform as a Service
 
(MBL303) Build Mobile Apps for IoT Devices and IoT Apps for Devices
(MBL303) Build Mobile Apps for IoT Devices and IoT Apps for Devices(MBL303) Build Mobile Apps for IoT Devices and IoT Apps for Devices
(MBL303) Build Mobile Apps for IoT Devices and IoT Apps for Devices
 
FIWARE Global Summit - The Way Towards Interoperability between Web Of Things...
FIWARE Global Summit - The Way Towards Interoperability between Web Of Things...FIWARE Global Summit - The Way Towards Interoperability between Web Of Things...
FIWARE Global Summit - The Way Towards Interoperability between Web Of Things...
 
Orion Context Broker
Orion Context Broker Orion Context Broker
Orion Context Broker
 
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 Internet of Things
FIWARE Internet of ThingsFIWARE Internet of Things
FIWARE Internet of Things
 
FIWARE Internet of Things
FIWARE Internet of ThingsFIWARE Internet of Things
FIWARE Internet of Things
 
Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22
Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22
Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22
 
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
Firefox OS, HTML5 to the next level - Python Montreal - 2014-05-12
 
FIWARE: Managing Context Information at Large Scale (NGSIv1)
FIWARE: Managing Context Information at Large Scale (NGSIv1)FIWARE: Managing Context Information at Large Scale (NGSIv1)
FIWARE: Managing Context Information at Large Scale (NGSIv1)
 

Plus de 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
 

Plus de 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
 

Dernier

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
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
 
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
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
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
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
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
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
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
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 

Dernier (20)

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
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
 
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
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
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
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
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
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 

FIWARE Training: IoT and Legacy

  • 1. 0 Connecting to Legacy Systems, IoT and other Systems Jason Fox Senior Technical Evangelist FIWARE Foundation
  • 2. Implementation Specific @context "fiware": "https://uri.fiware.org/ns/data-models#", "schema": "https://schema.org/", "example": "https://example.com/datamodels.html/", "Building": "fiware:Building", "Device": "fiware:Device", "FillingLevelSensor": "example:FillingLevelSensor", "CowCollar": "example:CowCollar", "TemperatureSensor": "example:TemperatureSensor", "Tractor": "example:Tractor", … etc "accuracy": "fiware:accuracy", "batteryLevel": "fiware:batteryLevel", "category": "fiware:category", "controlledAsset": "fiware:controlledAsset", "controlledProperty": "fiware:controlledProperty", "deviceState": "fiware:deviceState", "ipAddress": "fiware:ipAddress", "macAddress": "fiware:macAddress", "mcc": "fiware:mcc", "osVersion": "fiware:osVersion", 1 "actuator": "https://w3id.org/saref#actuator", "filling": "https://w3id.org/saref#fillingLevel", "temperature": "https://w3id.org/saref#temperature", "sensor": "https://w3id.org/saref#sensor", "status": "https://saref.etsi.org/core/status", "state": "https://saref.etsi.org/core/hasState", "heartRate": "https://purl.bioontology.org/ontology/MESH/D006339", … etc "myCustomAttr": "example:mycustomAttr", "secondCustomAttr": "example:2ndCustomAttr" ● Reuse common data models and ontologies ● Add use-case specific mappings where necessary ● Remember to map all entities types, attributes and metadata attributes Undefined terms will fallback to the default context https://uri.etsi.org/ngsi-ld/default-context
  • 3. Configuring an IoT Agent as NGSI-LD iot-agent: image: fiware/iotagent-ul:latest hostname: iot-agent container_name: fiware-iot-agent networks: - default expose: - "4041" - "7896" ports: - "4041:4041" - "7896:7896" environment: - IOTA_CB_HOST=orion - IOTA_CB_PORT=1026 - IOTA_NORTH_PORT=4041 - IOTA_REGISTRY_TYPE=mongodb - IOTA_TIMESTAMP=true - IOTA_AUTOCAST=true - IOTA_MONGO_HOST=mongo-db - IOTA_MONGO_PORT=27017 - IOTA_MONGO_DB=iotagentul - IOTA_HTTP_PORT=7896 - IOTA_PROVIDER_URL=http://iot-agent:4041 - IOTA_CB_NGSI_VERSION=ld - IOTA_FALLBACK_TENANT=openiot - IOTA_JSON_LD_CONTEXT= http://../path/to/ngsi-context.jsonld 2 ● Configure using ENV or config.js Essentials ● IOTA_CB_NGSI_VERSION must be LD ● IOTA_JSON_LD_CONTEXT must point to a hosted file Useful ● IOTA_FALLBACK_TENANT if actuations are required ● IOTA_TIMESTAMP ● IOTA_AUTOCAST
  • 4. NGSI-LD Measures ▪ The IoT Device is using a known payload syntax • Ultralight, JSON, SigFox, OPC-UA etc. ▪ The IoT Device sends a reading using the agreed protocol • HTTP, MQTT, AMPQ, LoRaWAN etc. ▪ The IoT Agent interprets the payload and transforms the measure into NGSI-LD ▪ The only interface to the Context Broker is a simple structured upsert of entities • potentially including linked entities 3
  • 5. Measure: “Device X in Building Y has registered 25°C” curl -L -X POST 'http://localhost:1026/ngsi-ld/v1/entityOperations/upsert' -H 'Content-Type: application/ld+json' -d '[ { "@context": "http://example.com/context.json-ld", "id": "urn:ngsi-ld:Device:thermometer1", "type": "Device" "temperature": { "type": "Property", "value": 25, “observedAt": "2015-08-05T07:35:01.468Z", "unitCode": "CEL", "accuracy":{ "type": "Property", "value": 0.95, "unitCode": "C62" } }, "controlledAsset": { "type": "Relationship", "object": "urn:ngsi-ld:Building:building1" } } ]'
  • 6. Provisioning an NGSI-LD Service Group /iot/services endpoint defines common elements across groups of devices ▪ entity_type, attributes and static_attributes correspond to a data model found within the @context file ▪ attributes and static_attributes may have associated metadata. ▪ types should be defined as: • Property • Relationship • A native JSON type • A GeoJSON type 5 curl -s -o /dev/null -X POST 'http://iot-agent:4041/iot/services' -H 'Content-Type: application/json' -H 'fiware-service: openiot' -d '{ "services": [ { "apikey": "321701236", "cbroker": "http://orion:1026", "entity_type": "Device", "resource": "/iot/d", "protocol": "PDI-IoTA-UltraLight", "transport": "HTTP", "timezone": "Europe/Berlin", "attributes": [ { "object_id": "t", "name":"temperature", "type": "Float", "metadata": {"unitCode": {"type": "Property","value": "CEL"}} } ], "static_attributes": [ {"name": "description", "type":"Property", "value": "Thermometer"}, {"name": "category", "type":"Property", "value": ["sensor"]}, {"name": "controlledProperty", "type": "Property", "value": "temperature"}, {"name": "supportedProtocol", "type": "Property", "value": ["ul20"]} ] } ] }'
  • 7. Provisioning NGSI-LD device /iot/devices endpoint defines additional data for an individual device ▪ attributes and static_attributes can also be defined at the device level - the standard rules about types apply ▪ Use link on a static_attribute to update a linked Entity 6 curl -s -o /dev/null -X POST 'http://iot-agent:4041/iot/devices' -H 'Content-Type: application/json' -H 'fiware-service: openiot' -H 'fiware-servicepath: /' -d '{ "devices": [ { "device_id": "txhme001xxe", "entity_name": "urn:ngsi-ld:Device:temperature001", "entity_type": "Device", "static_attributes": [ { "name": "controlledAsset", "type": "Relationship", "value": "urn:ngsi-ld:Building:001", "link": { "attributes": ["temperature"], "name": "providedBy", "type": "Building" } } ] } ]
  • 8. GPS Measure: “GPS X has moved to location x,y” With location payloads such as: ▪ As Ultralight String gps|13.3501,52.5143 ▪ As Ultralight Multiple attributes lng|13.3501|lat|52.5143 ▪ JSON as string value: {"gps": "13.3501,52.5143"} ▪ JSON as array value: {"gps": [13.3501, 52.5143]} ▪ JSON as GeoJSON: { "gps": { "type": "Point", "coordinates": [13.3501, 52.5143] } } ▪ etc... 7 Context Broker receives an NGSI-LD upsert curl -L -X POST 'http://localhost:1026/ngsi-ld/v1/entityOperations/upsert' -H 'Content-Type: application/ld+json' -d '[ { "@context": "http://example.com/context.json-ld", "id": "urn:ngsi-ld:Device:gps1", "type": "Device" "location": { "type": "GeoProperty", "value": :{ "type": "Point", "coordinates": [13.3501, 52.5143] }, “observedAt": "2015-08-05T07:35:01.468Z" }, "controlledAsset": { "type": "Relationship", "object": "urn:ngsi-ld:Tractor:tractor1" } } ]'
  • 9. Provisioning GPS Devices GPS Provisioning from a single input ▪ Use location as the name of a geolocation attribute ▪ Set type=GeoProperty or any GeoJSON type ▪ Map an attribute object_id to NGSI-LD attribute name Aliasing Latitude and Longitude as separate inputs ▪ Use location as the name of a geolocation attribute ▪ Set type=GeoProperty or any GeoJSON type ▪ Use expression aliasing to map multiple inputs to a String ▪ Remember GeoJSON uses Lng/Lan format ▪ Will only fire if both latitude and longitude are present in the payload All GeoProperty input values are automatically converted into GeoJSON in the NGSI-LD upsert 8 IoT Agent Device Provisioning { "object_id": "gps", "name":"location", "type": "geo:point" } { "name": "location", "type": "geo:json", "expression": "${@lng}, ${@lat}" }
  • 10. NGSI-LD Actuations ▪ NGSI-LD actuation code is currently based on the existing NGSI-v2 IoT Agent paradigm. ▪ Uses registrations and request forwarding ▪ Alternatively uses subscriptions and notification payloads ▪ Both mechanisms supported by IoT Agents. Internally syntax may change based on the decisions of the ETSI committee, but since the listening mechanism is internal to the IoT Agent library it will be updated once the proposed interface is finalized. 9
  • 11. Command provisioning - via actuation registration: “I am responsible for Attribute X” IoT Agent Device Provisioning 10 Context Broker receives a Registration curl -L -X POST 'http://localhost:4041/iot/devices' -H 'fiware-service: openiot' -H 'Content-Type: application/json' --data-raw '{ "devices": [ { "device_id": "water001", "protocol": "PDI-IoTA-UltraLight", "transport": "HTTP", "endpoint": "http://device:3001/iot/water001", "entity_name": "urn:ngsi-ld:Device:water001", "entity_type": "Device", "commands": [ { "name": "on", "type": "command" }, { "name": "off", "type": "command" } ] } ] }' curl -L -X POST 'http://localhost:1026/ngsi-ld/v1/csourceRegistrations' -H 'NGSILD-Tenant: openiot' -H 'Content-Type: application/ld+json' -d '{ "@context": "http://context.json-ld", "endpoint": "http://iotagent.com", "information": [ { "entities": [ { "id": "urn:ngsi-ld:Device:water001", "type": "Device" } ], "properties": [ "on", "off" ] } ], "type": "ContextSourceRegistration" } '
  • 12. Bidirectional attribute provisioning - actuation via subscription: “Tell me when Attribute X changes” 11 Context Broker sends a Subscription curl -L -X POST 'http://localhost:4041/iot/devices' -H 'fiware-service: openiot' -H 'fiware-servicepath: /' -H 'Content-Type: application/json' --data-raw '{ "devices": [ { "device_id": "bell002", "entity_name": "urn:ngsi-ld:Bell:002", "entity_type": "Bell", "protocol": "PDI-IoTA-UltraLight", "transport": "HTTP", "endpoint": "http://device:3001/iot/bell002", "attributes": [ { "name":"ring", "type":"Text", "expression": "${@ring}", "reverse": [ { "object_id":"r", "type": "Text", "expression": "${@ring}" } ] } ] } ] }' { "id": "urn:ngsi-ld:Notification:5fd0fa684eb81930c97005f3", "type": "Notification", "subscriptionId": "urn:ngsi-ld:Subscription:12345", "notifiedAt": "2020-12-09T16:25:12.193Z", "data": [ { "id": "urn:ngsi-ld:Bell:002", "type": "Bell", "filling": { "type": "Property", "value": “ “, } } ] }
  • 13. Extending to legacy Systems via Upsert 12 Multiple options exist to architect this: ▪ Amend legacy processing component to use NGSI directly as well as legacy protocol ▪ Upload a file as CSV via an Agent? https://www.youtube.com/watch?v=HuEwI8wJKFU ▪ Create a separate chron-job to query legacy system and upsert as NGSI? Also consider using a database as an intermediary. https://www.youtube.com/watch?v=_uLZDGFPlRA function upsertToMongoDB(building) { return new Promise((resolve, reject) => { mongoDB .upsert( building.id, building.name, building.address, building.verified) .then(() => { return resolve(); }) .catch((error) => { return reject(error); }); }); } function duplicateBuildings(req, res) { async function copyEntityData(building) { await upsertToMongoDB(building); } req.body.data.forEach(copyEntityData); res.status(204).send(); }
  • 14. Extending to legacy Systems via Registration “Tell me about X”, “I want to update X” 13 curl -L -X GET 'http://my-legacy-system/ngsi-ld/v1/entities/urn:ngsi-ld :Building:store001?attrs=tweets' -H 'Link: <https://my-context/context.jsonld>; rel="http://www.w3.org/ns/json-ld#context"; type="application/ld+json"' -H 'Content-Type: application/ld+json' curl -L -X PATCH 'http://my-legacy-system/ngsi-ld/v1/entities/urn:ngsi-ld :Building:store001/attrs/tweets' -H 'Link: <https://my-context/context.jsonld>; rel="http://www.w3.org/ns/json-ld#context"; type="application/ld+json"' -H 'Content-Type: application/json' --data-raw '{ "type": "Property", "value": [ "This must be Thursday", "I never could get the hang of Thursdays." ] } ' router.get('/ngsi-ld/v1/entities/:id', NGSIProxy.getAsNgsiLD ); router.patch( '/ngsi-ld/v1/entities/:id/attrs', NGSIProxy.updateEntity ); function getAsNgsiLD(req, res) { const response = doSomething(req); if (req.headers.accept === 'application/json') { res.set('Content-Type', 'application/json'); delete response['@context']; } else { res.set('Content-Type', 'application/ld+json'); } res.send(response); }
  • 15. Extending to legacy Systems via Subscription “Inform me about X so I can do something” 14 { "id": "urn:ngsi-ld:Notification:5fd0fa684eb81930c97005f3", "type": "Notification", "subscriptionId": "urn:ngsi-ld:Subscription:12345", "notifiedAt": "2020-12-09T16:25:12.193Z", "data": [ { "id": "urn:ngsi-ld:Bell:002", "type": "Bell", "filling": { "type": "Property", "value": “ “, } } ] } router.post('/subscription/:type', (req, res) => { _.forEach(req.body.data, (item) => { doSomething(req, item); }); res.status(204).send(); });
  • 16. Useful links JSON-LD ▪ Website: https://json-ld.org/ ▪ Linked Data Video: https://www.youtube.com/watch?v=vioCbTo3C-4 ▪ JSON-LD Video: https://www.youtube.com/watch?v=4x_xzT5eF5Q NGSI-LD ▪ ETSI Specification: https://www.etsi.org/deliver/etsi_gs/CIM/001_099/009/01.03.01_60/gs_cim009v010301p.pdf ▪ NGSI-LD Video: https://www.youtube.com/watch?v=rZ13IyLpAtA ▪ Tutorials: https://ngsi-ld-tutorials.readthedocs.io/ Smart Data Models ▪ Website: http://smartdatamodels.org/ ▪ Smart Cities Data Models Video: https://www.youtube.com/watch?v=dfMo0HnaIUQ 15