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
Deļ¬ne Entity
Model Entity
Physical
2
Virtual
REST
Skeleton
Model
Physical Entity
Model
Virtual Entity
Reļ¬ne
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

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 Thingsļæ¼ļæ¼ļæ¼ļæ¼A 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

Š”Š¼ŠøтрŠøŠ¹ Š¢ŠµŠ¶ŠµŠ»ŃŒŠ½ŠøŠŗŠ¾Š² Ā«Š Š°Š·Ń€Š°Š±Š¾Ń‚ŠŗŠ° Š²ŃŠ±-рŠµŃˆŠµŠ½ŠøŠ¹ с ŠøсŠæŠ¾Š»ŃŒŠ·Š¾Š²Š°Š½ŠøŠµŠ¼ Asp.NET.Core Šø ...
Š”Š¼ŠøтрŠøŠ¹ Š¢ŠµŠ¶ŠµŠ»ŃŒŠ½ŠøŠŗŠ¾Š²  Ā«Š Š°Š·Ń€Š°Š±Š¾Ń‚ŠŗŠ° Š²ŃŠ±-рŠµŃˆŠµŠ½ŠøŠ¹ с ŠøсŠæŠ¾Š»ŃŒŠ·Š¾Š²Š°Š½ŠøŠµŠ¼ Asp.NET.Core Šø ...Š”Š¼ŠøтрŠøŠ¹ Š¢ŠµŠ¶ŠµŠ»ŃŒŠ½ŠøŠŗŠ¾Š²  Ā«Š Š°Š·Ń€Š°Š±Š¾Ń‚ŠŗŠ° Š²ŃŠ±-рŠµŃˆŠµŠ½ŠøŠ¹ с ŠøсŠæŠ¾Š»ŃŒŠ·Š¾Š²Š°Š½ŠøŠµŠ¼ Asp.NET.Core Šø ...
Š”Š¼ŠøтрŠøŠ¹ Š¢ŠµŠ¶ŠµŠ»ŃŒŠ½ŠøŠŗŠ¾Š² Ā«Š Š°Š·Ń€Š°Š±Š¾Ń‚ŠŗŠ° Š²ŃŠ±-рŠµŃˆŠµŠ½ŠøŠ¹ с ŠøсŠæŠ¾Š»ŃŒŠ·Š¾Š²Š°Š½ŠøŠµŠ¼ Asp.NET.Core Šø ...
MskDotNet Community
Ā 

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 (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

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
Ā 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
Ā 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
Ā 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
Ā 

Recently uploaded (20)

Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Ā 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Ā 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
Ā 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
Ā 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
Ā 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
Ā 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
Ā 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
Ā 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
Ā 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
Ā 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Ā 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
Ā 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
Ā 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
Ā 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
Ā 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
Ā 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
Ā 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
Ā 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Ā 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
Ā 

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 Deļ¬ne Entity Model Entity Physical 2 Virtual REST Skeleton Model Physical Entity Model Virtual Entity Reļ¬ne 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