SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
Toward Constrained
Semantic Web
Remy Rojas Lionel Médini Amélie Cordier
LIRIS lab., Université de Lyon, France
remy.rojas@protonmail.com
1
Overview
● Introduction
● Global architecture
● Constrained device
● Semantic aspects
● Translation proxy
● Evaluation
● Conclusion
2
Context: WoT assumptions
● Servient
○ Part of the Web of Things Architecture
○ Represents a Thing on the Web
○ Component-based architecture that addresses different concerns
● Avatar
○ Defined in the French ASAWoO project
○ One possible implementation of a servient
○ Defines a vocabulary that distinguishes
■ Capabilities
■ Functionalities
● Embedded WoT server
○ Standard compliant
○ Partly implement servient / avatar architecture
○ Expose RESTful capabilities 3
Requirements
● Be based on Web standards
○ Protocols: HTTP, CoAP
○ Communication scheme: REST
● Ensure application-level Interoperability and Discoverability
○ Provide Semantic resource descriptions
○ RDF, RDF-S, OWL
● Fit in constrained devices
○ Ease of Deployment and Scalability
○ Constraints:
1. Computing power: CPU, Memory, Storage
2. Network
3. Energy Efficiency 4
Motivation
Embedding minimum technologies for constrained devices to integrate the
Semantic Web of Things, without undermining their original functionalities.
5
Overview
● Introduction
● Global architecture
● Constrained device
● Semantic aspects
● Translation proxy
● Evaluation
● Conclusion
6
Architecture overview
7
Constrained Thing
Thing
Configuration
Semantic
Server
Repository
HTTP/CoAP
Proxy
HTTP
Shared
Vocabularies
RAM
Service
TemplateService
TemplateService
Model
CoAP
HTTPreferences
describe
Sensors
Actuators
I/O
Processing
buffers
CoAP
Overview
● Introduction
● Global architecture
● Constrained device
● Semantic aspects
● Translation proxy
● Evaluation
● Conclusion
8
Constrained Device software components
● Thing Configuration: A non-volatile memory space where the state of the
device’s services is stored.
● Semantic Server Repository: A space where the device can store and
read its Semantic descriptions.
● Service Model: In memory representation of the services currently
provided by the sensors and actuators.
● Processing buffers: Handle requests and generate responses
○ CoAP headers
○ JSON payloads
9
Constrained Thing
Thing
Configuration
Semantic
Server
Repository
RAM
e
Service
Model
Processing
buffers
Application Protocol
CoAP(Constrained Application Protocol)
- Analogous to HTTP request semantics (GET/POST/PUT…)
- Binary Headers
➔ Support for REST implementations
- On top of UDP (but also 6LoWPAN)
- Blockwise transfer: fixed size packet exchange
➔ Suitable for constrained devices
10
Constrained Device processing workflow
Mode 1: Startup
Mode 2: Requesting
Boot
Device
Configuration
Reader
Thing Config.
List of
Enabled
Services
Service
Parser
Sem. Server Repo.
Service
TemplateService
TemplateService
Model
CoAP
Request Buffer AnalyserService URI
. . .
Completeness
Detection
Sensor/Act.
Sensor/Act.
CoAP
Response
Results
Buffer
Serializing CoAP
Buffer
Blockwise
Transfer
11
Overview
● Introduction
● Global architecture
● Constrained device
● Semantic aspects
● Translation proxy
● Evaluation
● Conclusion
12
A Thing exposes a list of Capabilities.
● Capability Properties
○ Enabled Status
○ Command
○ Value
Each device describes its API through a complete Hydra API documentation
➔ Resource Expensive
➔ Use Linked Data to reference common parts of the API → ASAWoO
ontology
Hosted @ http://liris.cnrs.fr/asawoo/ontology/asawoo-hydra.jsonld
Semantic API documentation
13
Hydra-based documentation example
{
"@id":"vocab:temperatureSensor",
"@type" : ["hydra:Resource","asawoo:Capability"],
"description": "Retrieves a temperature.",
"hydra:supportedOperation" : [
{
"@id": "_:senseTemp",
"@type": "asawoo:capability_retrieve",
"returns": "vocab:Temperature"
},[...]
]
},[...]
{
"@id": "vocab:Temperature",
"@type": ["http://ontology.tno.nl/saref/#Temperature","asawoo:Value"],
"description": "The value returned for a Temperature reading, as specified in SAREF."
},[...]
14
Hosted @ https://github.com/ucbl/arduinoRdfServer/blob/master/example/arduino.jsonld
Overview
● Introduction
● Global architecture
● Constrained device
● Semantic aspects
● Translation proxy
● Evaluation
● Conclusion
15
Translation Proxy
● Goals
○ Realistic client use-cases
○ Ease of deployment (Python Script)
○ Protection from malformed CoAP
● Functions
○ Transforms TCP payloads into “blockwise-compatible” UDP packets
○ Translates HTTP headers into CoAP and vice-versa
● Tools
○ Twisted Framework powered with TxThings extension
16
Overview
● Introduction
● Global architecture
● Constrained device
● Semantic aspects
● Translation proxy
● Evaluation
● Conclusion
17
Implementation: Arduino UNO
● Component repartition
○ Device Configuration → EEPROM
○ Semantic Server Repository → ProgMem
○ Service Configuration, Processing Buffers → RAM
● CoAP Blockwise Transfer → 64B payload set
● Tools
○ CoAP (partial) support: Ethernet libraries provided by Arduino
○ JSON parsing : ArduinoJSON
RAM ProgMem EEPROM Processor
2KB r/w 32KB ro 1KB r/w
ATmega328P
@ 16MHz
18
Results
Feasibility is achieved on a Constrained Device using the CoAP standard with a
REST architecture:
● Several services can be instantiated at once.
● Embedded RDF graphs are used by both client and server to describe an
API
● Configuration persists through power cuts 19
RAM Footprint Cumulative Available RAM
Algorithm & Class Instantiation 968B 1080B (52%)
Service Template (x3) 279B 725B (35.4%)
Static JSON Buffers 200B 525B (25.63%)
Package-processing variables 24B 501B (24.46%)
Overview
● Introduction
● Global architecture
● Constrained device
● Semantic aspects
● Translation proxy
● Evaluation
● Conclusion
20
Conclusion
● POC about semantic interoperability in the WoT on constrained devices
● Next step: intelligent clients that can discover and use such WoT servers
● A step toward decentralized semantic WoT?
○ Aggregating such servers can result in complex applications by pushing hypermedia
possibilities further
21
Thank you!
...Questions?
22
This work is supported by the French Agence Nationale pour la Recherche (ANR) under the grant
<ANR-13-INFR-012>

Contenu connexe

Tendances

Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...
Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...
Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...Tonny Adhi Sabastian
 
Apache Flink Training Workshop @ HadoopCon2016 - #1 System Overview
Apache Flink Training Workshop @ HadoopCon2016 - #1 System OverviewApache Flink Training Workshop @ HadoopCon2016 - #1 System Overview
Apache Flink Training Workshop @ HadoopCon2016 - #1 System OverviewApache Flink Taiwan User Group
 
BDE SC4 Hangout - Hajira Jabeen, general architecture
BDE SC4 Hangout - Hajira Jabeen, general architectureBDE SC4 Hangout - Hajira Jabeen, general architecture
BDE SC4 Hangout - Hajira Jabeen, general architectureBigData_Europe
 
OSMC 2018 | Stream connector: Easily sending events and/or metrics from the C...
OSMC 2018 | Stream connector: Easily sending events and/or metrics from the C...OSMC 2018 | Stream connector: Easily sending events and/or metrics from the C...
OSMC 2018 | Stream connector: Easily sending events and/or metrics from the C...NETWAYS
 
SC4 Hangout - Luigi Selmi, Transport pilot architecture
SC4 Hangout - Luigi Selmi, Transport pilot architectureSC4 Hangout - Luigi Selmi, Transport pilot architecture
SC4 Hangout - Luigi Selmi, Transport pilot architectureBigData_Europe
 
New web service oriented ARC
New web service oriented ARCNew web service oriented ARC
New web service oriented ARCFerenc Szalai
 
IoT Data Connector Fluent Bit
IoT Data Connector Fluent BitIoT Data Connector Fluent Bit
IoT Data Connector Fluent BitToru Takahashi
 
OSMC 2018 | Visualization of your distributed infrastructure by Nicolai Buchwitz
OSMC 2018 | Visualization of your distributed infrastructure by Nicolai BuchwitzOSMC 2018 | Visualization of your distributed infrastructure by Nicolai Buchwitz
OSMC 2018 | Visualization of your distributed infrastructure by Nicolai BuchwitzNETWAYS
 
Cloud Native Logging / Fluentd Summit Tokyo
Cloud Native Logging / Fluentd Summit TokyoCloud Native Logging / Fluentd Summit Tokyo
Cloud Native Logging / Fluentd Summit TokyoEduardo Silva Pereira
 
OpenNebulaConf2017EU: Enabling Dev and Infra teams by Lodewijk De Schuyter,De...
OpenNebulaConf2017EU: Enabling Dev and Infra teams by Lodewijk De Schuyter,De...OpenNebulaConf2017EU: Enabling Dev and Infra teams by Lodewijk De Schuyter,De...
OpenNebulaConf2017EU: Enabling Dev and Infra teams by Lodewijk De Schuyter,De...OpenNebula Project
 
Tracing 2000+ polyglot microservices at Uber with Jaeger and OpenTracing
Tracing 2000+ polyglot microservices at Uber with Jaeger and OpenTracingTracing 2000+ polyglot microservices at Uber with Jaeger and OpenTracing
Tracing 2000+ polyglot microservices at Uber with Jaeger and OpenTracingYuri Shkuro
 
Introducing MagnetoDB, a key-value storage sevice for OpenStack
Introducing MagnetoDB, a key-value storage sevice for OpenStackIntroducing MagnetoDB, a key-value storage sevice for OpenStack
Introducing MagnetoDB, a key-value storage sevice for OpenStackMirantis
 
Netty Notes Part 3 - Channel Pipeline and EventLoops
Netty Notes Part 3 - Channel Pipeline and EventLoopsNetty Notes Part 3 - Channel Pipeline and EventLoops
Netty Notes Part 3 - Channel Pipeline and EventLoopsRick Hightower
 
Jaeger and OpenTracing Cloud Native Computing (CNCF) meetup Zurich
Jaeger and OpenTracing Cloud Native Computing (CNCF) meetup ZurichJaeger and OpenTracing Cloud Native Computing (CNCF) meetup Zurich
Jaeger and OpenTracing Cloud Native Computing (CNCF) meetup Zurich⛑ Pavol Loffay
 
Presentation of CLIF open source project at OW2con'19, June 12-13, Paris.
Presentation of CLIF open source project at OW2con'19, June 12-13, Paris. Presentation of CLIF open source project at OW2con'19, June 12-13, Paris.
Presentation of CLIF open source project at OW2con'19, June 12-13, Paris. OW2
 

Tendances (20)

Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...
Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...
Adopting Open Telemetry as Distributed Tracer on your Microservices at Kubern...
 
Netflix Data Benchmark @ HPTS 2017
Netflix Data Benchmark @ HPTS 2017Netflix Data Benchmark @ HPTS 2017
Netflix Data Benchmark @ HPTS 2017
 
Apache Flink Training Workshop @ HadoopCon2016 - #1 System Overview
Apache Flink Training Workshop @ HadoopCon2016 - #1 System OverviewApache Flink Training Workshop @ HadoopCon2016 - #1 System Overview
Apache Flink Training Workshop @ HadoopCon2016 - #1 System Overview
 
BDE SC4 Hangout - Hajira Jabeen, general architecture
BDE SC4 Hangout - Hajira Jabeen, general architectureBDE SC4 Hangout - Hajira Jabeen, general architecture
BDE SC4 Hangout - Hajira Jabeen, general architecture
 
OpenPOWER Latest Updates
OpenPOWER Latest UpdatesOpenPOWER Latest Updates
OpenPOWER Latest Updates
 
OSMC 2018 | Stream connector: Easily sending events and/or metrics from the C...
OSMC 2018 | Stream connector: Easily sending events and/or metrics from the C...OSMC 2018 | Stream connector: Easily sending events and/or metrics from the C...
OSMC 2018 | Stream connector: Easily sending events and/or metrics from the C...
 
SC4 Hangout - Luigi Selmi, Transport pilot architecture
SC4 Hangout - Luigi Selmi, Transport pilot architectureSC4 Hangout - Luigi Selmi, Transport pilot architecture
SC4 Hangout - Luigi Selmi, Transport pilot architecture
 
New web service oriented ARC
New web service oriented ARCNew web service oriented ARC
New web service oriented ARC
 
IoT Data Connector Fluent Bit
IoT Data Connector Fluent BitIoT Data Connector Fluent Bit
IoT Data Connector Fluent Bit
 
OSMC 2018 | Visualization of your distributed infrastructure by Nicolai Buchwitz
OSMC 2018 | Visualization of your distributed infrastructure by Nicolai BuchwitzOSMC 2018 | Visualization of your distributed infrastructure by Nicolai Buchwitz
OSMC 2018 | Visualization of your distributed infrastructure by Nicolai Buchwitz
 
Cloud Native Logging / Fluentd Summit Tokyo
Cloud Native Logging / Fluentd Summit TokyoCloud Native Logging / Fluentd Summit Tokyo
Cloud Native Logging / Fluentd Summit Tokyo
 
OpenNebulaConf2017EU: Enabling Dev and Infra teams by Lodewijk De Schuyter,De...
OpenNebulaConf2017EU: Enabling Dev and Infra teams by Lodewijk De Schuyter,De...OpenNebulaConf2017EU: Enabling Dev and Infra teams by Lodewijk De Schuyter,De...
OpenNebulaConf2017EU: Enabling Dev and Infra teams by Lodewijk De Schuyter,De...
 
Sprint 13
Sprint 13Sprint 13
Sprint 13
 
Tracing 2000+ polyglot microservices at Uber with Jaeger and OpenTracing
Tracing 2000+ polyglot microservices at Uber with Jaeger and OpenTracingTracing 2000+ polyglot microservices at Uber with Jaeger and OpenTracing
Tracing 2000+ polyglot microservices at Uber with Jaeger and OpenTracing
 
Introducing MagnetoDB, a key-value storage sevice for OpenStack
Introducing MagnetoDB, a key-value storage sevice for OpenStackIntroducing MagnetoDB, a key-value storage sevice for OpenStack
Introducing MagnetoDB, a key-value storage sevice for OpenStack
 
Netty Notes Part 3 - Channel Pipeline and EventLoops
Netty Notes Part 3 - Channel Pipeline and EventLoopsNetty Notes Part 3 - Channel Pipeline and EventLoops
Netty Notes Part 3 - Channel Pipeline and EventLoops
 
Log forwarding at Scale
Log forwarding at ScaleLog forwarding at Scale
Log forwarding at Scale
 
Jaeger and OpenTracing Cloud Native Computing (CNCF) meetup Zurich
Jaeger and OpenTracing Cloud Native Computing (CNCF) meetup ZurichJaeger and OpenTracing Cloud Native Computing (CNCF) meetup Zurich
Jaeger and OpenTracing Cloud Native Computing (CNCF) meetup Zurich
 
Opentracing 101
Opentracing 101Opentracing 101
Opentracing 101
 
Presentation of CLIF open source project at OW2con'19, June 12-13, Paris.
Presentation of CLIF open source project at OW2con'19, June 12-13, Paris. Presentation of CLIF open source project at OW2con'19, June 12-13, Paris.
Presentation of CLIF open source project at OW2con'19, June 12-13, Paris.
 

Similaire à Towards constrained semantic web

Building RESTtful services in MEAN
Building RESTtful services in MEANBuilding RESTtful services in MEAN
Building RESTtful services in MEANMadhukara Phatak
 
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)Kevin Lynch
 
BKK16-106 ODP Project Update
BKK16-106 ODP Project UpdateBKK16-106 ODP Project Update
BKK16-106 ODP Project UpdateLinaro
 
Kubernetes @ Squarespace: Kubernetes in the Datacenter
Kubernetes @ Squarespace: Kubernetes in the DatacenterKubernetes @ Squarespace: Kubernetes in the Datacenter
Kubernetes @ Squarespace: Kubernetes in the DatacenterKevin Lynch
 
introduction to micro services
introduction to micro servicesintroduction to micro services
introduction to micro servicesSpyros Lambrinidis
 
gRPC Design and Implementation
gRPC Design and ImplementationgRPC Design and Implementation
gRPC Design and ImplementationVarun Talwar
 
HPC Controls Future
HPC Controls FutureHPC Controls Future
HPC Controls Futurercastain
 
Blackray @ SAPO CodeBits 2009
Blackray @ SAPO CodeBits 2009Blackray @ SAPO CodeBits 2009
Blackray @ SAPO CodeBits 2009fschupp
 
Building high performance microservices in finance with Apache Thrift
Building high performance microservices in finance with Apache ThriftBuilding high performance microservices in finance with Apache Thrift
Building high performance microservices in finance with Apache ThriftRX-M Enterprises LLC
 
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceAdding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceSamsung Open Source Group
 
Big data Argentina meetup 2020-09: Intro to presto on docker
Big data Argentina meetup 2020-09: Intro to presto on dockerBig data Argentina meetup 2020-09: Intro to presto on docker
Big data Argentina meetup 2020-09: Intro to presto on dockerFederico Palladoro
 
Kubernetes from scratch at veepee sysadmins days 2019
Kubernetes from scratch at veepee   sysadmins days 2019Kubernetes from scratch at veepee   sysadmins days 2019
Kubernetes from scratch at veepee sysadmins days 2019🔧 Loïc BLOT
 
20141111_SOS3_Gallo
20141111_SOS3_Gallo20141111_SOS3_Gallo
20141111_SOS3_GalloAndrea Gallo
 
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a MonthUSENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a MonthNicolas Brousse
 
Mobicents Summit 2012 - Alexandre Mendonca - Mobicents jDiameter
Mobicents Summit 2012 - Alexandre Mendonca - Mobicents jDiameterMobicents Summit 2012 - Alexandre Mendonca - Mobicents jDiameter
Mobicents Summit 2012 - Alexandre Mendonca - Mobicents jDiametertelestax
 
Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2aspyker
 

Similaire à Towards constrained semantic web (20)

Cloud Native API Design and Management
Cloud Native API Design and ManagementCloud Native API Design and Management
Cloud Native API Design and Management
 
Building RESTtful services in MEAN
Building RESTtful services in MEANBuilding RESTtful services in MEAN
Building RESTtful services in MEAN
 
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
 
GRPC.pptx
GRPC.pptxGRPC.pptx
GRPC.pptx
 
Node.js scaling in highload
Node.js scaling in highloadNode.js scaling in highload
Node.js scaling in highload
 
BKK16-106 ODP Project Update
BKK16-106 ODP Project UpdateBKK16-106 ODP Project Update
BKK16-106 ODP Project Update
 
Kubernetes @ Squarespace: Kubernetes in the Datacenter
Kubernetes @ Squarespace: Kubernetes in the DatacenterKubernetes @ Squarespace: Kubernetes in the Datacenter
Kubernetes @ Squarespace: Kubernetes in the Datacenter
 
introduction to micro services
introduction to micro servicesintroduction to micro services
introduction to micro services
 
Java one2013
Java one2013Java one2013
Java one2013
 
gRPC Design and Implementation
gRPC Design and ImplementationgRPC Design and Implementation
gRPC Design and Implementation
 
HPC Controls Future
HPC Controls FutureHPC Controls Future
HPC Controls Future
 
Blackray @ SAPO CodeBits 2009
Blackray @ SAPO CodeBits 2009Blackray @ SAPO CodeBits 2009
Blackray @ SAPO CodeBits 2009
 
Building high performance microservices in finance with Apache Thrift
Building high performance microservices in finance with Apache ThriftBuilding high performance microservices in finance with Apache Thrift
Building high performance microservices in finance with Apache Thrift
 
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceAdding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
 
Big data Argentina meetup 2020-09: Intro to presto on docker
Big data Argentina meetup 2020-09: Intro to presto on dockerBig data Argentina meetup 2020-09: Intro to presto on docker
Big data Argentina meetup 2020-09: Intro to presto on docker
 
Kubernetes from scratch at veepee sysadmins days 2019
Kubernetes from scratch at veepee   sysadmins days 2019Kubernetes from scratch at veepee   sysadmins days 2019
Kubernetes from scratch at veepee sysadmins days 2019
 
20141111_SOS3_Gallo
20141111_SOS3_Gallo20141111_SOS3_Gallo
20141111_SOS3_Gallo
 
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a MonthUSENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
 
Mobicents Summit 2012 - Alexandre Mendonca - Mobicents jDiameter
Mobicents Summit 2012 - Alexandre Mendonca - Mobicents jDiameterMobicents Summit 2012 - Alexandre Mendonca - Mobicents jDiameter
Mobicents Summit 2012 - Alexandre Mendonca - Mobicents jDiameter
 
Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2
 

Towards constrained semantic web

  • 1. Toward Constrained Semantic Web Remy Rojas Lionel Médini Amélie Cordier LIRIS lab., Université de Lyon, France remy.rojas@protonmail.com 1
  • 2. Overview ● Introduction ● Global architecture ● Constrained device ● Semantic aspects ● Translation proxy ● Evaluation ● Conclusion 2
  • 3. Context: WoT assumptions ● Servient ○ Part of the Web of Things Architecture ○ Represents a Thing on the Web ○ Component-based architecture that addresses different concerns ● Avatar ○ Defined in the French ASAWoO project ○ One possible implementation of a servient ○ Defines a vocabulary that distinguishes ■ Capabilities ■ Functionalities ● Embedded WoT server ○ Standard compliant ○ Partly implement servient / avatar architecture ○ Expose RESTful capabilities 3
  • 4. Requirements ● Be based on Web standards ○ Protocols: HTTP, CoAP ○ Communication scheme: REST ● Ensure application-level Interoperability and Discoverability ○ Provide Semantic resource descriptions ○ RDF, RDF-S, OWL ● Fit in constrained devices ○ Ease of Deployment and Scalability ○ Constraints: 1. Computing power: CPU, Memory, Storage 2. Network 3. Energy Efficiency 4
  • 5. Motivation Embedding minimum technologies for constrained devices to integrate the Semantic Web of Things, without undermining their original functionalities. 5
  • 6. Overview ● Introduction ● Global architecture ● Constrained device ● Semantic aspects ● Translation proxy ● Evaluation ● Conclusion 6
  • 8. Overview ● Introduction ● Global architecture ● Constrained device ● Semantic aspects ● Translation proxy ● Evaluation ● Conclusion 8
  • 9. Constrained Device software components ● Thing Configuration: A non-volatile memory space where the state of the device’s services is stored. ● Semantic Server Repository: A space where the device can store and read its Semantic descriptions. ● Service Model: In memory representation of the services currently provided by the sensors and actuators. ● Processing buffers: Handle requests and generate responses ○ CoAP headers ○ JSON payloads 9 Constrained Thing Thing Configuration Semantic Server Repository RAM e Service Model Processing buffers
  • 10. Application Protocol CoAP(Constrained Application Protocol) - Analogous to HTTP request semantics (GET/POST/PUT…) - Binary Headers ➔ Support for REST implementations - On top of UDP (but also 6LoWPAN) - Blockwise transfer: fixed size packet exchange ➔ Suitable for constrained devices 10
  • 11. Constrained Device processing workflow Mode 1: Startup Mode 2: Requesting Boot Device Configuration Reader Thing Config. List of Enabled Services Service Parser Sem. Server Repo. Service TemplateService TemplateService Model CoAP Request Buffer AnalyserService URI . . . Completeness Detection Sensor/Act. Sensor/Act. CoAP Response Results Buffer Serializing CoAP Buffer Blockwise Transfer 11
  • 12. Overview ● Introduction ● Global architecture ● Constrained device ● Semantic aspects ● Translation proxy ● Evaluation ● Conclusion 12
  • 13. A Thing exposes a list of Capabilities. ● Capability Properties ○ Enabled Status ○ Command ○ Value Each device describes its API through a complete Hydra API documentation ➔ Resource Expensive ➔ Use Linked Data to reference common parts of the API → ASAWoO ontology Hosted @ http://liris.cnrs.fr/asawoo/ontology/asawoo-hydra.jsonld Semantic API documentation 13
  • 14. Hydra-based documentation example { "@id":"vocab:temperatureSensor", "@type" : ["hydra:Resource","asawoo:Capability"], "description": "Retrieves a temperature.", "hydra:supportedOperation" : [ { "@id": "_:senseTemp", "@type": "asawoo:capability_retrieve", "returns": "vocab:Temperature" },[...] ] },[...] { "@id": "vocab:Temperature", "@type": ["http://ontology.tno.nl/saref/#Temperature","asawoo:Value"], "description": "The value returned for a Temperature reading, as specified in SAREF." },[...] 14 Hosted @ https://github.com/ucbl/arduinoRdfServer/blob/master/example/arduino.jsonld
  • 15. Overview ● Introduction ● Global architecture ● Constrained device ● Semantic aspects ● Translation proxy ● Evaluation ● Conclusion 15
  • 16. Translation Proxy ● Goals ○ Realistic client use-cases ○ Ease of deployment (Python Script) ○ Protection from malformed CoAP ● Functions ○ Transforms TCP payloads into “blockwise-compatible” UDP packets ○ Translates HTTP headers into CoAP and vice-versa ● Tools ○ Twisted Framework powered with TxThings extension 16
  • 17. Overview ● Introduction ● Global architecture ● Constrained device ● Semantic aspects ● Translation proxy ● Evaluation ● Conclusion 17
  • 18. Implementation: Arduino UNO ● Component repartition ○ Device Configuration → EEPROM ○ Semantic Server Repository → ProgMem ○ Service Configuration, Processing Buffers → RAM ● CoAP Blockwise Transfer → 64B payload set ● Tools ○ CoAP (partial) support: Ethernet libraries provided by Arduino ○ JSON parsing : ArduinoJSON RAM ProgMem EEPROM Processor 2KB r/w 32KB ro 1KB r/w ATmega328P @ 16MHz 18
  • 19. Results Feasibility is achieved on a Constrained Device using the CoAP standard with a REST architecture: ● Several services can be instantiated at once. ● Embedded RDF graphs are used by both client and server to describe an API ● Configuration persists through power cuts 19 RAM Footprint Cumulative Available RAM Algorithm & Class Instantiation 968B 1080B (52%) Service Template (x3) 279B 725B (35.4%) Static JSON Buffers 200B 525B (25.63%) Package-processing variables 24B 501B (24.46%)
  • 20. Overview ● Introduction ● Global architecture ● Constrained device ● Semantic aspects ● Translation proxy ● Evaluation ● Conclusion 20
  • 21. Conclusion ● POC about semantic interoperability in the WoT on constrained devices ● Next step: intelligent clients that can discover and use such WoT servers ● A step toward decentralized semantic WoT? ○ Aggregating such servers can result in complex applications by pushing hypermedia possibilities further 21
  • 22. Thank you! ...Questions? 22 This work is supported by the French Agence Nationale pour la Recherche (ANR) under the grant <ANR-13-INFR-012>