A Model-Driven Component Generation approach for the Web of Things and the perspectives it opens regarding a semantic discovery and pushing meaningful information about events back to clients.
2. Overview
• Vision
• Short Technological Background
• The xWoT
• A component approach for the xWoT
• Meta-Modeling
• The xWoT Compiler
• S2Mashup Editor
• Semantic Discovery for the xWoT
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
3. INTRODUCTION
& Vision
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
4. Vision
• Instead of finding better approaches on how to combine smart
devices we have to re-think how to build smart devices.
• The current WoT needs to be extended to take into consideration
algorithms and handle events gracefully.
• Re-usable and easy to deploy components, taking care of aspects like
events (and discovery in the future) are the way out of the “things-
crisis”.
• Adopt Model Driven Architecture.
• Allow Models to be enhanced semantically.
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
6. Software Components
• According to Cox the solution to the software crisis in the
early 80’s.
• A software component is a unit of composition with
contractually specified interfaces and explicit context
dependencies only. A software component can be
deployed independently and is subject to composition by
third parties. (Szyperski)
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
7. Meta-Model
• Given
• α:S→M
• Then
• ∃ SUS1, SUS2 ∈ S|
α(SUS1) = α(SUS2)
⇏SUS1 = SUS2
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
8. Meta-Model
• Given
• α′ : M → MM
• Then
• ∃ m1,m2 ∈ M | α′
(m1) = α′(m2) ⇏
m1 = m2
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
9. The xWoT
An Extension for the WoT
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
10. WoT Problems
• Data Integration: Treat Algorithms and other RESTful
services as first class citizens.
• Event Architecture: Define a common event architecture
suitable for a wide range of applications.
• Building Blocks: Introduce components as the building
blocks of the xWoT.
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
11. Data Integration
• Mashups already rely on services like Facebook or
Twitter.
• How to turn a Book into a Smart-Book?
• Leveraging the power of established computational
resources to the WoT, e.g. Business Processes.
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
12. Events
• Today: use of IoTaaS platforms like Xively.
• Problem: Smart-Devices are no longer WoT Compliant.
Instead the IoTaaS Platform is.
• Events must propagate in an (energy) efficient manner.
• WebHooks: spare events, alerting
• WebSockets: many events, live monitoring
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
13. Components
• Hide the inner guts from clients.
• Define a clear interface for users (RESTful).
• Build reusable components.
• Use Meaningful URIs.
• Use Predictable URIs (plus HATEOAS)
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
14. Formal Definition
• The extended WoT is a web made of sensors, actuators and tags forming
the classical WoT plus services respecting RESTful principles.
• The aim of the xWoT is to introduce a standard approach on how to design
the building blocks for novel applications and mashups exploiting the
capabilities offered by smart things and other virtual goods. To achieve this
goal, the xWoT introduces a component- based methodology which is
underlined by a meta-model guiding the developers during crucial
architectural decisions. Finally, since the architecture respects the xWoT’s
meta-model, component skeletons are generated out of the specifications.
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
16. Corridor - ExampleUniversité de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
17. Expected Output
• One component representing the corridor.
• One component for each instantiated corridor.
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
18. SmartDoor Component
http://service1.com/door/ GET
http://service1.com/door/oc/ GET / PUT
http://service1.com/door/oc/pub/ various
http://service1.com/door/lu/ GET / PUT
http://service1.com/door/lu/pub/ various
SmartCorridor
http://service2.com/corridor/ GET
http://service2.com/corridor/{id} GET
http://service2.com/corridor/{id}/oc GET / PUT
http://service2.com/corridor/{id}/oc/pub/ various
http://service2.com/corridor/{id}/lu/ GET / PUT
20. Partial xWoT Meta-Model
Virtual Entity
Resource
Actuator
Resource
Sensor
Resource
Service
Resource
1..*
Publisher
Resource
Context
Resource
Physical Entity
Entity
0..1 1
DeviceTag SensorActuator
1..*
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
21. Full xWoT Meta-Model
Virtual Entity
Resource
Actuator
Resource
Sensor
Resource
Service
Resource
1..*
Publisher
Resource
Context
Resource
Physical Entity
Entity
0..1 1
DeviceTag SensorActuator
1..*
name: EString
method: MethodOperation
output: MethodOutput
input: MethodInput
Method
style: MethodStyle
MethodParam
style: MethodStyle
VEntityParam
name: EString
type: EString
Param
TEMPLATE
QUERY
MethodStyle
XMLJSON
MULTIPARTRELATED
FORM
NONE
MethodInput
XMLJSON
MULTIPARTRELATED
FORM
NONE
MethodOutput
GET
PUT
POST
DELETE
MethodOperation
0..* 0..*
0..*
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
22. Smart Door Example (UC)
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
23. Smart Door Example (HW)
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
24. Smart Door Example (M)
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
25. Smart Door Example (M)
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
26. Smart Door Example (M)
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
27. Smart Door Example (M)
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
28. Smart Door Example (M)
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
29. COMPILER
A Model Compiler for the xWoT
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
30. Model Enhancer
• Since there is a one-to-one mapping from the Physical Entity to the
Virtual Entity, for each physical model, its virtual side can be
generated.
• The generated virtual side can be further refined manually.
• Takes as input an xWoT Model and generates a new, enhanced
xWoT Model.
• Where additional information is needed, the compiler asks for user
input.
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
31. Smart Door Example (rev)
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
32. Smart Door Example (rev)
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
33. Model Compiler
• Once the model finished, it can be compiled into code skeletons.
• The compiler takes care of:
• Resources hierarchy.
• Allowed Methods.
• It can generate:
• Python Code (Autobahn)
• Node.js
• Etc.
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
34. Model Compiler
• Takes as input an xWoT model and automatically
generates a REST service for each component.
• Each components contains code skeletons to be filled in
by the developer.
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
35. Smart Door Example (rev)
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
36. Reusability
• The Compiler takes care of:
• The reusability of the generated components.
• To create a new RESTful service for each Composite
(according to the composed flag).
• Of the Application Scenario Service
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
37. Smart Room Example (UC)
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
38. Smart Room Example (UC)
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
39. METHODOLOGY
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
40. Three Steps
• Entity Modeling (blue)
• Data Modeling (green)
• Implementation (yellow)
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
41. Methodology
Implement HTTP
Responses
Define Entity
Model Entity
Physical
2
Virtual
REST
Skeleton
Model
Physical Entity
Model
Virtual Entity
Refine
Virtual Entity
Create Sever
Skeleton
Link Code to
Hardware
Build
Hardware
Model Representations
Create
XSD
Create Code
Artifacts
Model Database
Create
ERM
Forward
Engineer
DB
Create
Code
Artifacts
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
47. Requirements
• Implement a discovery mechanism respecting RESTful
principles (as far as applicable).
• Inject semantics into the discovery based on the meta-
model.
• Extend semantics depending on a situation’s needs.
• Adopt current standards (JSON-LD, Tuples)
08/07/2015
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
48. Limitations
• Implementation based on multicast/unicast between
devices.
• Limited to the multicast network boundaries.
• Startup a little wiggly.
08/07/2015
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
50. CONCLUSION
& Outlook
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
51. Benefits
• Allow fast prototyping.
• Support developers.
• Give end users the possibility to build re-usable mashup
applications.
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT
08/07/2015
52. Future Work
• Bring the different projects together
• S2Mashup
• Semantics
• Discovery
• Meta-Model
• Propose a fully integrated tool for developers as well as
for end users to either create new smart Things or exploit
deployed ones.
08/07/2015
Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen |
A Model-Driven, Component Generation Approach for the WoT