SlideShare a Scribd company logo
1 of 44
A Model-Driven,
Component Generation
Approach for the WoT
Thesis
Overview
• Vision
• Historical and Technological Background
• The xWoT
• A component approach for the xWoT
• Meta-Modeling
• The xWoT Compiler
• Methodology
• Outlook
INTRODUCTION
& Vision
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.
BACKGROUND
Historical and Technological
REST vs. ROA
REST
• Client-Server
• Statelessness
• Cache
• Uniform Interface
• Layered System
• Code-on-demand
ROA
• Concepts
• Resources
• Representations
• URIs
• Properties
• Uniform Interface
• Addressability
• Statelessness
• Connectedness
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)
Meta-Model
• Given
• α:S→M
• Then
• ∃ SUS1, SUS2 ∈
S|α(SUS1) =
α(SUS2) ⇏SUS1 =
SUS2
Meta-Model
• Given
• α′ : M → MM
• Then
• ∃ m1,m2 ∈ M |
α′(m1) = α′(m2)
⇏ m1 = m2
The xWoT
An Extension for the WoT
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.
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.
COMPONENTS
Reusable xWoT Components
Example
Expected Output
• One component representing the floor.
• One component for each instantiated door.
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
SmartFloor
http://service2.com/floor/ GET
http://service2.com/floor/{id} GET
http://service2.com/floor/{id}/oc GET / PUT
http://service2.com/floor/{id}/oc/pub/ various
http://service2.com/floor/{id}/lu/ GET / PUT
http://service2.com/floor/{id}/lu/pub/ various
META-MODELING
The xWoT Meta-Model
Partial xWoT Meta-Model
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..*
Smart Door Example (UC)
Smart Door Example (HW)
Smart Door Example (M)
Smart Door Example (M)
Smart Door Example (M)
Smart Door Example (M)
Smart Door Example (M)
COMPILER
A Model Compiler for the xWoT
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.
Smart Door Example (rev)
Smart Door Example (rev)
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.
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.
Smart Door Example (rev)
Reusability
• The Compiler takes care of the reusability of the
generated components.
• For each Composite, the compiler takes care to create a
new RESTful service (if necessary)
• The Compiler takes care of the Application Scenario
Service
Smart Room Example (UC)
Smart Room Example (UC)
METHODOLOGY
Three Steps
• Entity Modeling (blue)
• Data Modeling (green)
• Implementation (yellow)
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
Entity Modeling
• Derive an xWoT
compatible Model from
the Use-Case diagrams.
• Refine the generated
enhanced Model.
• Compile the xWoT
Model to Code
Skeletons.
Data Modeling
• Describe Inputs and Outputs in a
generic way (XML Schemas,
Database Definition)
• Derive implementations from
these schemas.
Implementation
• Create one Application Scenario Service.
• Create one Service for each Component.
• Implement the Hardware.
• Fill in the missing parts in the generated skeletons.
• Link the Hardware to the REST service.
CONCLUSION
& Outlook
Future Work
• Filtering of events for WebHook clients with a DSL.
• What about Discovery?
• What about Semantics?
• Intelligent Discovery
• Late Binding in Mashup Applications

More Related Content

Viewers also liked

Always-On Web of Things Infrastructure Dynamic Software Updating
Always-On Web of Things Infrastructure Dynamic Software UpdatingAlways-On Web of Things Infrastructure Dynamic Software Updating
Always-On Web of Things Infrastructure Dynamic Software UpdatingTECO Research Group
 
Towards an industrial Web of Things
Towards an industrial Web of ThingsTowards an industrial Web of Things
Towards an industrial Web of ThingsOlivier Liechti
 
A component based architecture for the Web of Things
A component based architecture for the Web of ThingsA component based architecture for the Web of Things
A component based architecture for the Web of ThingsAndreas Ruppen
 
Hypermedia-driven Socio-technical Networks for Goal-driven Discovery in the W...
Hypermedia-driven Socio-technical Networks for Goal-driven Discovery in the W...Hypermedia-driven Socio-technical Networks for Goal-driven Discovery in the W...
Hypermedia-driven Socio-technical Networks for Goal-driven Discovery in the W...Andrei Ciortea
 
Maker of Things - the open IoT cloud for makers chapter.
Maker of Things - the open IoT cloud for makers chapter.Maker of Things - the open IoT cloud for makers chapter.
Maker of Things - the open IoT cloud for makers chapter.Jollen Chen
 
WoT 2016 - Seventh International Workshop on the Web of Things
WoT 2016 - Seventh International Workshop on the Web of ThingsWoT 2016 - Seventh International Workshop on the Web of Things
WoT 2016 - Seventh International Workshop on the Web of ThingsSimon Mayer
 
Client Vs. Server Rendering
Client Vs. Server RenderingClient Vs. Server Rendering
Client Vs. Server RenderingDavid Amend
 
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.Jollen Chen
 
Enabling reactive cities with the iFLUX middleware
Enabling reactive cities with the iFLUX middlewareEnabling reactive cities with the iFLUX middleware
Enabling reactive cities with the iFLUX middlewareOlivier Liechti
 

Viewers also liked (9)

Always-On Web of Things Infrastructure Dynamic Software Updating
Always-On Web of Things Infrastructure Dynamic Software UpdatingAlways-On Web of Things Infrastructure Dynamic Software Updating
Always-On Web of Things Infrastructure Dynamic Software Updating
 
Towards an industrial Web of Things
Towards an industrial Web of ThingsTowards an industrial Web of Things
Towards an industrial Web of Things
 
A component based architecture for the Web of Things
A component based architecture for the Web of ThingsA component based architecture for the Web of Things
A component based architecture for the Web of Things
 
Hypermedia-driven Socio-technical Networks for Goal-driven Discovery in the W...
Hypermedia-driven Socio-technical Networks for Goal-driven Discovery in the W...Hypermedia-driven Socio-technical Networks for Goal-driven Discovery in the W...
Hypermedia-driven Socio-technical Networks for Goal-driven Discovery in the W...
 
Maker of Things - the open IoT cloud for makers chapter.
Maker of Things - the open IoT cloud for makers chapter.Maker of Things - the open IoT cloud for makers chapter.
Maker of Things - the open IoT cloud for makers chapter.
 
WoT 2016 - Seventh International Workshop on the Web of Things
WoT 2016 - Seventh International Workshop on the Web of ThingsWoT 2016 - Seventh International Workshop on the Web of Things
WoT 2016 - Seventh International Workshop on the Web of Things
 
Client Vs. Server Rendering
Client Vs. Server RenderingClient Vs. Server Rendering
Client Vs. Server Rendering
 
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
 
Enabling reactive cities with the iFLUX middleware
Enabling reactive cities with the iFLUX middlewareEnabling reactive cities with the iFLUX middleware
Enabling reactive cities with the iFLUX middleware
 

Similar to Thesis Defence: A Model Driven Architecture for the Web of Things

Monolithic to Microservices Architecture
Monolithic to Microservices ArchitectureMonolithic to Microservices Architecture
Monolithic to Microservices ArchitectureVin Dahake
 
Distributed Data Flow for the Web of Things: Distributed Node-RED
Distributed Data Flow for the Web of Things: Distributed Node-REDDistributed Data Flow for the Web of Things: Distributed Node-RED
Distributed Data Flow for the Web of Things: Distributed Node-REDMichael Blackstock
 
Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC  Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC vipin kumar
 
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...Open Mobile Alliance
 
Defining the stack for service delivery models and interoperability in the in...
Defining the stack for service delivery models and interoperability in the in...Defining the stack for service delivery models and interoperability in the in...
Defining the stack for service delivery models and interoperability in the in...ieeepondy
 
JArchitect Benefits
JArchitect BenefitsJArchitect Benefits
JArchitect BenefitsCoderGears
 
Node.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel AvivNode.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel AvivRon Perlmuter
 
Webofthing_WOT_vs_IOT.pptx
Webofthing_WOT_vs_IOT.pptxWebofthing_WOT_vs_IOT.pptx
Webofthing_WOT_vs_IOT.pptxjainam bhavsar
 
Дмитрий Тежельников «Разработка вэб-решений с использованием Asp.NET.Core и ...
Дмитрий Тежельников  «Разработка вэб-решений с использованием Asp.NET.Core и ...Дмитрий Тежельников  «Разработка вэб-решений с использованием Asp.NET.Core и ...
Дмитрий Тежельников «Разработка вэб-решений с использованием Asp.NET.Core и ...MskDotNet Community
 
IBM Blockchain Platform - Architectural Good Practices v1.0
IBM Blockchain Platform - Architectural Good Practices v1.0IBM Blockchain Platform - Architectural Good Practices v1.0
IBM Blockchain Platform - Architectural Good Practices v1.0Matt Lucas
 
Qt Oss to Commercial 2019-09-10
Qt Oss to Commercial 2019-09-10Qt Oss to Commercial 2019-09-10
Qt Oss to Commercial 2019-09-10FedericoGuerinoni
 
An Introduction To Model  View  Controller In XPages
An Introduction To Model  View  Controller In XPagesAn Introduction To Model  View  Controller In XPages
An Introduction To Model  View  Controller In XPagesUlrich Krause
 
Evolutionary evnt-driven-architecture-for-accelerated-digital-transformation
Evolutionary evnt-driven-architecture-for-accelerated-digital-transformationEvolutionary evnt-driven-architecture-for-accelerated-digital-transformation
Evolutionary evnt-driven-architecture-for-accelerated-digital-transformationSlobodan Sipcic
 
MWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVCMWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVCUlrich Krause
 
Composable Software Architecture with Spring
Composable Software Architecture with SpringComposable Software Architecture with Spring
Composable Software Architecture with SpringSam Brannen
 
Asp.NETZERO - A Workshop Presentation by Citytech Software
Asp.NETZERO - A Workshop Presentation by Citytech SoftwareAsp.NETZERO - A Workshop Presentation by Citytech Software
Asp.NETZERO - A Workshop Presentation by Citytech SoftwareRitwik Das
 
Incremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical SystemsIncremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical SystemsÁkos Horváth
 
Containers as Infrastructure for New Gen Apps
Containers as Infrastructure for New Gen AppsContainers as Infrastructure for New Gen Apps
Containers as Infrastructure for New Gen AppsKhalid Ahmed
 

Similar to Thesis Defence: A Model Driven Architecture for the Web of Things (20)

Monolithic to Microservices Architecture
Monolithic to Microservices ArchitectureMonolithic to Microservices Architecture
Monolithic to Microservices Architecture
 
Distributed Data Flow for the Web of Things: Distributed Node-RED
Distributed Data Flow for the Web of Things: Distributed Node-REDDistributed Data Flow for the Web of Things: Distributed Node-RED
Distributed Data Flow for the Web of Things: Distributed Node-RED
 
Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC  Cloud compiler - Minor Project by students of CBPGEC
Cloud compiler - Minor Project by students of CBPGEC
 
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
 
Defining the stack for service delivery models and interoperability in the in...
Defining the stack for service delivery models and interoperability in the in...Defining the stack for service delivery models and interoperability in the in...
Defining the stack for service delivery models and interoperability in the in...
 
JArchitect Benefits
JArchitect BenefitsJArchitect Benefits
JArchitect Benefits
 
Node.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel AvivNode.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel Aviv
 
Webofthing_WOT_vs_IOT.pptx
Webofthing_WOT_vs_IOT.pptxWebofthing_WOT_vs_IOT.pptx
Webofthing_WOT_vs_IOT.pptx
 
Дмитрий Тежельников «Разработка вэб-решений с использованием Asp.NET.Core и ...
Дмитрий Тежельников  «Разработка вэб-решений с использованием Asp.NET.Core и ...Дмитрий Тежельников  «Разработка вэб-решений с использованием Asp.NET.Core и ...
Дмитрий Тежельников «Разработка вэб-решений с использованием Asp.NET.Core и ...
 
IBM Blockchain Platform - Architectural Good Practices v1.0
IBM Blockchain Platform - Architectural Good Practices v1.0IBM Blockchain Platform - Architectural Good Practices v1.0
IBM Blockchain Platform - Architectural Good Practices v1.0
 
Clean architecture
Clean architectureClean architecture
Clean architecture
 
Qt Oss to Commercial 2019-09-10
Qt Oss to Commercial 2019-09-10Qt Oss to Commercial 2019-09-10
Qt Oss to Commercial 2019-09-10
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
 
An Introduction To Model  View  Controller In XPages
An Introduction To Model  View  Controller In XPagesAn Introduction To Model  View  Controller In XPages
An Introduction To Model  View  Controller In XPages
 
Evolutionary evnt-driven-architecture-for-accelerated-digital-transformation
Evolutionary evnt-driven-architecture-for-accelerated-digital-transformationEvolutionary evnt-driven-architecture-for-accelerated-digital-transformation
Evolutionary evnt-driven-architecture-for-accelerated-digital-transformation
 
MWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVCMWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVC
 
Composable Software Architecture with Spring
Composable Software Architecture with SpringComposable Software Architecture with Spring
Composable Software Architecture with Spring
 
Asp.NETZERO - A Workshop Presentation by Citytech Software
Asp.NETZERO - A Workshop Presentation by Citytech SoftwareAsp.NETZERO - A Workshop Presentation by Citytech Software
Asp.NETZERO - A Workshop Presentation by Citytech Software
 
Incremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical SystemsIncremental Queries and Transformations for Engineering Critical Systems
Incremental Queries and Transformations for Engineering Critical Systems
 
Containers as Infrastructure for New Gen Apps
Containers as Infrastructure for New Gen AppsContainers as Infrastructure for New Gen Apps
Containers as Infrastructure for New Gen Apps
 

More from Andreas Ruppen

A proof of concept implementation of a secure e-commerce authentication scheme
A proof of concept implementation of a secure e-commerce authentication schemeA proof of concept implementation of a secure e-commerce authentication scheme
A proof of concept implementation of a secure e-commerce authentication schemeAndreas Ruppen
 
A model-driven, component generation approach for the xWoT
A model-driven, component generation approach for the xWoTA model-driven, component generation approach for the xWoT
A model-driven, component generation approach for the xWoTAndreas Ruppen
 
Debugging with NetBeans IDE
Debugging with NetBeans IDEDebugging with NetBeans IDE
Debugging with NetBeans IDEAndreas Ruppen
 
An Approach for a Mutual Integration of the WoT with Business Processes
An Approach for a Mutual Integration of the WoT with Business ProcessesAn Approach for a Mutual Integration of the WoT with Business Processes
An Approach for a Mutual Integration of the WoT with Business ProcessesAndreas Ruppen
 
A WoT Approach to eHealth
A WoT Approach to eHealthA WoT Approach to eHealth
A WoT Approach to eHealthAndreas Ruppen
 
A RESTful architecture for integrating decomposable delayed services within t...
A RESTful architecture for integrating decomposable delayed services within t...A RESTful architecture for integrating decomposable delayed services within t...
A RESTful architecture for integrating decomposable delayed services within t...Andreas Ruppen
 

More from Andreas Ruppen (7)

A proof of concept implementation of a secure e-commerce authentication scheme
A proof of concept implementation of a secure e-commerce authentication schemeA proof of concept implementation of a secure e-commerce authentication scheme
A proof of concept implementation of a secure e-commerce authentication scheme
 
A model-driven, component generation approach for the xWoT
A model-driven, component generation approach for the xWoTA model-driven, component generation approach for the xWoT
A model-driven, component generation approach for the xWoT
 
REST and eHealth
REST and eHealthREST and eHealth
REST and eHealth
 
Debugging with NetBeans IDE
Debugging with NetBeans IDEDebugging with NetBeans IDE
Debugging with NetBeans IDE
 
An Approach for a Mutual Integration of the WoT with Business Processes
An Approach for a Mutual Integration of the WoT with Business ProcessesAn Approach for a Mutual Integration of the WoT with Business Processes
An Approach for a Mutual Integration of the WoT with Business Processes
 
A WoT Approach to eHealth
A WoT Approach to eHealthA WoT Approach to eHealth
A WoT Approach to eHealth
 
A RESTful architecture for integrating decomposable delayed services within t...
A RESTful architecture for integrating decomposable delayed services within t...A RESTful architecture for integrating decomposable delayed services within t...
A RESTful architecture for integrating decomposable delayed services within t...
 

Recently uploaded

Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 

Recently uploaded (20)

Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 

Thesis Defence: A Model Driven Architecture for the Web of Things

  • 2. Overview • Vision • Historical and Technological Background • The xWoT • A component approach for the xWoT • Meta-Modeling • The xWoT Compiler • Methodology • Outlook
  • 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.
  • 6. REST vs. ROA REST • Client-Server • Statelessness • Cache • Uniform Interface • Layered System • Code-on-demand ROA • Concepts • Resources • Representations • URIs • Properties • Uniform Interface • Addressability • Statelessness • Connectedness
  • 7. 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)
  • 8. Meta-Model • Given • α:S→M • Then • ∃ SUS1, SUS2 ∈ S|α(SUS1) = α(SUS2) ⇏SUS1 = SUS2
  • 9. Meta-Model • Given • α′ : M → MM • Then • ∃ m1,m2 ∈ M | α′(m1) = α′(m2) ⇏ m1 = m2
  • 10. The xWoT An Extension for the WoT
  • 11. 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.
  • 12. 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.
  • 15. Expected Output • One component representing the floor. • One component for each instantiated door.
  • 16. 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 SmartFloor http://service2.com/floor/ GET http://service2.com/floor/{id} GET http://service2.com/floor/{id}/oc GET / PUT http://service2.com/floor/{id}/oc/pub/ various http://service2.com/floor/{id}/lu/ GET / PUT http://service2.com/floor/{id}/lu/pub/ various
  • 19. 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..*
  • 28. 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.
  • 31. 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.
  • 32. 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.
  • 34. Reusability • The Compiler takes care of the reusability of the generated components. • For each Composite, the compiler takes care to create a new RESTful service (if necessary) • The Compiler takes care of the Application Scenario Service
  • 38. Three Steps • Entity Modeling (blue) • Data Modeling (green) • Implementation (yellow)
  • 39. 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
  • 40. Entity Modeling • Derive an xWoT compatible Model from the Use-Case diagrams. • Refine the generated enhanced Model. • Compile the xWoT Model to Code Skeletons.
  • 41. Data Modeling • Describe Inputs and Outputs in a generic way (XML Schemas, Database Definition) • Derive implementations from these schemas.
  • 42. Implementation • Create one Application Scenario Service. • Create one Service for each Component. • Implement the Hardware. • Fill in the missing parts in the generated skeletons. • Link the Hardware to the REST service.
  • 44. Future Work • Filtering of events for WebHook clients with a DSL. • What about Discovery? • What about Semantics? • Intelligent Discovery • Late Binding in Mashup Applications

Editor's Notes

  1. According to the time magazine the most trending topic at CES Las Vegas 2015
  2. The WoT enhances physical objects with a virtual counterpart representing the latter in the virtual world. In contrast with the IoT, the WoT mandates the strict application of RESTful principles to its APIs.
  3. MDA to introduce Naming convention and definitions
  4. Technical evolution
  5. Cultural evolution
  6. New total headers New total status codes (40)
  7. Thus α is a one-to-many mapping
  8. Thus α′ is a one-to-many mapping α and α′ being homomorphisem (f(ab)=f(a)f(b)) then α′’: SUS -> MM is a homomorphism. Thus The meta-model still contains the important properties of the SUS
  9. Already today services like Facebook are heavily used in mashup applicationss => integrate them
  10. Each resource capable of generating events, gets a subresource: pub/ under which a WebSocket endpoint plus a WebHook is available.
  11. Much work has been done on how to combine different RESTful things into what is called mashup applications. Yet mashups are not a new concept. S. Watt calls them situational application.
  12. Discuss Hub vs. Mashup -> key to reusability
  13. The aggregation level of the doors is combined with the floor component.
  14. We want to model several light bulbs. Not efficient for each device to offer the Global State. Furthermore the Ligthswitch and the Presence detector should be two devices.
  15. Yet, the topmost use-case is missing -> application scenario service. However here we can combine the Application Scenario Service with the Algorithms service and use it as entry point.
  16. Talk about Maven and Ruby.
  17. Recursions everywhere, basically it is a mess.
  18. All are valuable but none guides the developer through the process of creating re-usable components.
  19. Show figure of source code. We have formally defined a meta-model tailored for the xWoT.
  20. Introduces a clear vocabulary –> Naming elements but also show their relation. Explain one-to-one mapping. Explain Composite Pattern (why is it different on the virtual side) Composition is key to reusabilty.
  21. istinction to be made between devices with a physical counterpart in the form of a smart device (sensor, actuator and tag) and devices with no attached smart devices but grouping several of them -> Key to reusability