Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Presentation evrythng

528 views

Published on

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.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Presentation evrythng

  1. 1. A Model-Driven, Component Generation Approach for the WoT University of Fribourg
  2. 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. 3. INTRODUCTION & Vision Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen | A Model-Driven, Component Generation Approach for the WoT 08/07/2015
  4. 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
  5. 5. BACKGROUND Historical and Technological Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen | A Model-Driven, Component Generation Approach for the WoT 08/07/2015
  6. 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. 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. 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. 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. 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. 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. 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. 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. 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
  15. 15. COMPONENTS Reusable xWoT Components Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen | A Model-Driven, Component Generation Approach for the WoT 08/07/2015
  16. 16. Corridor - ExampleUniversité de fribourg | FACULTÉ des sciences | Andreas / Ruppen | A Model-Driven, Component Generation Approach for the WoT 08/07/2015
  17. 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. 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
  19. 19. META-MODELING The xWoT Meta-Model Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen | A Model-Driven, Component Generation Approach for the WoT 08/07/2015
  20. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 39. METHODOLOGY Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen | A Model-Driven, Component Generation Approach for the WoT 08/07/2015
  40. 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. 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
  42. 42. S2Mashup Smart, Semantic Mashup Editor
  43. 43. Ingredients • Consumer friendly Mashup Editor (drag and drop). • Include Semantics: • Discovery. • Late-Binding. • (Semi)-Automatic-Binding. • Write once, deploy everywhere. 08/07/2015 Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen | A Model-Driven, Component Generation Approach for the WoT
  44. 44. 08/07/2015 Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen | A Model-Driven, Component Generation Approach for the WoT
  45. 45. 08/07/2015 Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen | A Model-Driven, Component Generation Approach for the WoT
  46. 46. DISCOVERY A quick Outlook 08/07/2015 Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen | A Model-Driven, Component Generation Approach for the WoT
  47. 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. 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
  49. 49. Demo 08/07/2015 Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen | A Model-Driven, Component Generation Approach for the WoT
  50. 50. CONCLUSION & Outlook Université de fribourg | FACULTÉ des sciences | Andreas / Ruppen | A Model-Driven, Component Generation Approach for the WoT 08/07/2015
  51. 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. 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

×