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.
Upcoming SlideShare
Smart Device, Smart Life
Next
Download to read offline and view in fullscreen.

Share

The Smart Device Specification for Remote Labs

Download to read offline

My slides of my presentation at IEEE REV 2015 in Bangkok on February 27, 2015.

The Smart Device Specification for Remote Labs

  1. 1. THE SMART DEVICE SPECIFICATION 
 FOR REMOTE LABS Christophe Salzmann, Sten Govaerts, 
 Wissam Halimi, & Denis Gillet Anjo Anjewierden, Lars Bollen,Augustín Caminero, Manuel Castro, German Carro, Gabriel Díaz, Danilo Garbi Zutin, Miguel Latorre, Irene Lequerica Zorrozua, Pablo Orduna,Antonio Robles, Elio San Crístobal, and Simon Schwantzer
  2. 2. AGENDA • What are Smart Devices? • What do we want to achieve? • The specification • An example • Implementation • Conclusion
  3. 3. SMART DEVICES? Internet ofThings
  4. 4. SMART DEVICES? Internet ofThings
  5. 5. SMART DEVICES? Internet ofThings
  6. 6. SMART DEVICES? Internet ofThings
  7. 7. SMART DEVICES? 1. communication 2. sensing & actuating 3. reasoning & learning 4. identity & kind 5. memory & status tracking Smart Devices are connected to the internet with some or all of these capabilities: Thompson, C.W., "Smart devices and soft controllers," 
 Internet Computing, IEEE , 2005.
  8. 8. …we extended this idea for remote labs.
  9. 9. client server CLASSIC CLIENT-SERVER
  10. 10. client server CLASSIC CLIENT-SERVER client often tightly linked to server
  11. 11. client server CLASSIC CLIENT-SERVER client often tightly linked to server clients cannot 
 be reused
  12. 12. client server CLASSIC CLIENT-SERVER client often tightly linked to server server updates often 
 require client updates clients cannot 
 be reused
  13. 13. client server CLASSIC CLIENT-SERVER client often tightly linked to server server updates often 
 require client updates clients cannot 
 be reused
  14. 14. client server CLASSIC CLIENT-SERVER client often tightly linked to server server updates often 
 require client updates clients cannot 
 be reused
  15. 15. client server SMART DEVICE
  16. 16. client server SMART DEVICE
  17. 17. client server smart device speci- fication SMART DEVICE
  18. 18. client server smart device speci- fication SMART DEVICE
  19. 19. client server smart device speci- fication data viewer app SMART DEVICE
  20. 20. client server smart device speci- fication data viewer app learning analytics client SMART DEVICE
  21. 21. client server smart device speci- fication data viewer app learning analytics client metadata repository SMART DEVICE
  22. 22. client server smart device speci- fication data viewer app learning analytics client metadata repository SMART DEVICE implementation
 agnostic
  23. 23. SMART DEVICES IN
  24. 24. THE SPECIFICATION • services, e.g. to control actuators & sensors • service description and metadata …consists of: and: • internal functionality best practices & guidelines • easily extensible with new services
  25. 25. TECHNOLOGY WebSocket Swagger http://swagger.io/ https://github.com/go-lab/smart-device-metadata
  26. 26. TECHNOLOGY WebSocket Swagger http://swagger.io/ https://github.com/go-lab/smart-device-metadata 🔧
  27. 27. TECHNOLOGY WebSocket Swagger the specification is programming language agnostic http://swagger.io/ https://github.com/go-lab/smart-device-metadata 🔧
  28. 28. METADATA CHARACTERISTICS • lab info & lab owner • concurrency & authorization • provided services & API info • sensor & actuator metadata is a service The metadata describes: …and:
  29. 29. SERVICES & FUNCTIONALITY SERVICES
  30. 30. SERVICES & FUNCTIONALITY getSensorMetadata getSensorData getActuatorMetadata sendActuatorData getLoggingInfo getClients getModels SERVICES
  31. 31. SERVICES & FUNCTIONALITY getSensorMetadata getSensorData getActuatorMetadata sendActuatorData getLoggingInfo getClients getModels SERVICES FUNCTIONALITY
  32. 32. SERVICES & FUNCTIONALITY getSensorMetadata getSensorData getActuatorMetadata sendActuatorData getLoggingInfo getClients getModels SERVICES FUNCTIONALITY authentication self and known state* security and local control* logging and alarms local simulation
  33. 33. AN EXAMPLE client smart device … …
  34. 34. AN EXAMPLE client smart device Hey! What can you do? http://serverIP/metadata … …
  35. 35. AN EXAMPLE client smart device Hey! What can you do? http://serverIP/metadata { name…,“services”: […], …} Here is what I do! … …
  36. 36. AN EXAMPLE client smart device Hey! What can you do? http://serverIP/metadata { name…,“services”: […], …} Here is what I do! services=[…] … …
  37. 37. AN EXAMPLE client smart device Hey! What can you do? http://serverIP/metadata { name…,“services”: […], …} Here is what I do! Which sensors do you have? {“method”:“getSensorMetadata”} services=[…] … …
  38. 38. AN EXAMPLE client smart device Hey! What can you do? http://serverIP/metadata { name…,“services”: […], …} Here is what I do! Which sensors do you have? {“method”:“getSensorMetadata”} services=[…] {“method”:“getSensorMetadata”,“sensors": [ { "sensorId":“disc pos”, "values": [ {…"rangeMinimum": 0, "rangeMaximum": 10,…} ],…} These are my sensors: … …
  39. 39. AN EXAMPLE client smart device Hey! What can you do? http://serverIP/metadata { name…,“services”: […], …} Here is what I do! Which sensors do you have? {“method”:“getSensorMetadata”} services=[…] {“method”:“getSensorMetadata”,“sensors": [ { "sensorId":“disc pos”, "values": [ {…"rangeMinimum": 0, "rangeMaximum": 10,…} ],…} These are my sensors: sensors=[{
 id:“disc pos”,
 min:0,
 max:10}]; … …
  40. 40. AN EXAMPLE CONTINUED client … … smart device
  41. 41. AN EXAMPLE CONTINUED client Which actuators do you have? {“method”:“getActuatorMetadata”} … … smart device
  42. 42. AN EXAMPLE CONTINUED client Which actuators do you have? {“method”:“getActuatorMetadata”} {“method”:“getActuatorMetadata”,“actuators": [ { ”actuatorId":“motor”, …"values": [ 
 {…"rangeMinimum": -5, "rangeMaximum": 5,…} ]} These are my actuators: … … smart device
  43. 43. AN EXAMPLE CONTINUED client Which actuators do you have? {“method”:“getActuatorMetadata”} {“method”:“getActuatorMetadata”,“actuators": [ { ”actuatorId":“motor”, …"values": [ 
 {…"rangeMinimum": -5, "rangeMaximum": 5,…} ]} These are my actuators: actuators=[{
 id:“motor”,
 min:-5,
 max:5}]; … … smart device
  44. 44. AN EXAMPLE CONTINUED client Which actuators do you have? {“method”:“getActuatorMetadata”} {“method”:“getActuatorMetadata”,“actuators": [ { ”actuatorId":“motor”, …"values": [ 
 {…"rangeMinimum": -5, "rangeMaximum": 5,…} ]} These are my actuators: actuators=[{
 id:“motor”,
 min:-5,
 max:5}]; Yay! I can make a UI! … … smart device
  45. 45. AN EXAMPLE CONTINUED client Which actuators do you have? {“method”:“getActuatorMetadata”} {“method”:“getActuatorMetadata”,“actuators": [ { ”actuatorId":“motor”, …"values": [ 
 {…"rangeMinimum": -5, "rangeMaximum": 5,…} ]} These are my actuators: actuators=[{
 id:“motor”,
 min:-5,
 max:5}]; Yay! I can make a UI! motor: disc pos: … … smart device
  46. 46. AN EXAMPLE CONTINUED client Which actuators do you have? {“method”:“getActuatorMetadata”} {“method”:“getActuatorMetadata”,“actuators": [ { ”actuatorId":“motor”, …"values": [ 
 {…"rangeMinimum": -5, "rangeMaximum": 5,…} ]} These are my actuators: actuators=[{
 id:“motor”,
 min:-5,
 max:5}]; Yay! I can make a UI! motor: disc pos: … … Give me the current disc pos… {“method”:“getSensorData”,“sensorId”:“disc pos”} smart device
  47. 47. AN EXAMPLE CONTINUED client … … smart device
  48. 48. AN EXAMPLE CONTINUED client … … Here is the current position: {“method”:“getSensorData”,“sensorId”:“disc pos”, 
 “data”:[6.2],“lastMeasured”:[“18:28”]…} smart device
  49. 49. AN EXAMPLE CONTINUED client … … Here is the current position: {“method”:“getSensorData”,“sensorId”:“disc pos”, 
 “data”:[6.2],“lastMeasured”:[“18:28”]…} motor: disc pos: 6.2 smart device
  50. 50. AN EXAMPLE CONTINUED client … … Here is the current position: {“method”:“getSensorData”,“sensorId”:“disc pos”, 
 “data”:[6.2],“lastMeasured”:[“18:28”]…} Here is the current position: {“method”:“getSensorData”,“sensorId”:“disc pos”, 
 “data”:[7.1],“lastMeasured”:[“18:30”]…} motor: disc pos: 6.2 smart device
  51. 51. AN EXAMPLE CONTINUED client … … Here is the current position: {“method”:“getSensorData”,“sensorId”:“disc pos”, 
 “data”:[6.2],“lastMeasured”:[“18:28”]…} Here is the current position: {“method”:“getSensorData”,“sensorId”:“disc pos”, 
 “data”:[7.1],“lastMeasured”:[“18:30”]…} motor: disc pos: 6.2 motor: disc pos: 7.1 smart device
  52. 52. AN EXAMPLE CONTINUED client … … Here is the current position: {“method”:“getSensorData”,“sensorId”:“disc pos”, 
 “data”:[6.2],“lastMeasured”:[“18:28”]…} Here is the current position: {“method”:“getSensorData”,“sensorId”:“disc pos”, 
 “data”:[7.1],“lastMeasured”:[“18:30”]…} motor: disc pos: 6.2 motor: disc pos: 7.1 … smart device
  53. 53. AN EXAMPLE CONTINUED client … … Set the motor to 3 {“authToken”:”42FE36”, method”:“sendActuatorData”, 
 “actuatorId”:“motor”,…“data”:[3], …} Here is the current position: {“method”:“getSensorData”,“sensorId”:“disc pos”, 
 “data”:[6.2],“lastMeasured”:[“18:28”]…} Here is the current position: {“method”:“getSensorData”,“sensorId”:“disc pos”, 
 “data”:[7.1],“lastMeasured”:[“18:30”]…} motor: disc pos: 6.2 motor: disc pos: 7.1 … smart device
  54. 54. AN EXAMPLE CONTINUED client … … Set the motor to 3 {“authToken”:”42FE36”, method”:“sendActuatorData”, 
 “actuatorId”:“motor”,…“data”:[3], …} Here is the current position: {“method”:“getSensorData”,“sensorId”:“disc pos”, 
 “data”:[6.2],“lastMeasured”:[“18:28”]…} Here is the current position: {“method”:“getSensorData”,“sensorId”:“disc pos”, 
 “data”:[7.1],“lastMeasured”:[“18:30”]…} motor: disc pos: 6.2 motor: disc pos: 7.1 … smart device
  55. 55. AN EXAMPLE CONTINUED client … … Set the motor to 3 {“authToken”:”42FE36”, method”:“sendActuatorData”, 
 “actuatorId”:“motor”,…“data”:[3], …} Here is the current position: {“method”:“getSensorData”,“sensorId”:“disc pos”, 
 “data”:[6.2],“lastMeasured”:[“18:28”]…} Here is the current position: {“method”:“getSensorData”,“sensorId”:“disc pos”, 
 “data”:[7.1],“lastMeasured”:[“18:30”]…} motor: disc pos: 6.2 motor: disc pos: 7.1 … authenticate(42FE36) smart device
  56. 56. AN EXAMPLE CONTINUED client … … Set the motor to 3 {“authToken”:”42FE36”, method”:“sendActuatorData”, 
 “actuatorId”:“motor”,…“data”:[3], …} Here is the current position: {“method”:“getSensorData”,“sensorId”:“disc pos”, 
 “data”:[6.2],“lastMeasured”:[“18:28”]…} Here is the current position: {“method”:“getSensorData”,“sensorId”:“disc pos”, 
 “data”:[7.1],“lastMeasured”:[“18:30”]…} motor: disc pos: 6.2 motor: disc pos: 7.1 … authenticate(42FE36) YES! smart device
  57. 57. AN EXAMPLE CONTINUED client … … Set the motor to 3 {“authToken”:”42FE36”, method”:“sendActuatorData”, 
 “actuatorId”:“motor”,…“data”:[3], …} Here is the current position: {“method”:“getSensorData”,“sensorId”:“disc pos”, 
 “data”:[6.2],“lastMeasured”:[“18:28”]…} Here is the current position: {“method”:“getSensorData”,“sensorId”:“disc pos”, 
 “data”:[7.1],“lastMeasured”:[“18:30”]…} motor: disc pos: 6.2 motor: disc pos: 7.1 … authenticate(42FE36) set motor to 3 YES! smart device
  58. 58. BUT…IS IT A SMART DEVICE? 1. communication 2. sensing & actuating 3. reasoning & learning 4. identity & kind 5. memory & status tracking Smart Devices are connected to the internet with some or all of these capabilities:
  59. 59. BUT…IS IT A SMART DEVICE? 1. communication 2. sensing & actuating 3. reasoning & learning 4. identity & kind 5. memory & status tracking Smart Devices are connected to the internet with some or all of these capabilities: ✔
  60. 60. BUT…IS IT A SMART DEVICE? 1. communication 2. sensing & actuating 3. reasoning & learning 4. identity & kind 5. memory & status tracking Smart Devices are connected to the internet with some or all of these capabilities: ✔ ✔
  61. 61. BUT…IS IT A SMART DEVICE? 1. communication 2. sensing & actuating 3. reasoning & learning 4. identity & kind 5. memory & status tracking Smart Devices are connected to the internet with some or all of these capabilities: ✔ ✘ ✔
  62. 62. BUT…IS IT A SMART DEVICE? 1. communication 2. sensing & actuating 3. reasoning & learning 4. identity & kind 5. memory & status tracking Smart Devices are connected to the internet with some or all of these capabilities: ✔ ✘ ✔ ✔
  63. 63. BUT…IS IT A SMART DEVICE? 1. communication 2. sensing & actuating 3. reasoning & learning 4. identity & kind 5. memory & status tracking Smart Devices are connected to the internet with some or all of these capabilities: ✔ ✘ ✔ ✔ ✔✘
  64. 64. IMPLEMENTATION https://github.com/go-lab/smart-device
  65. 65. IMPLEMENTATION https://github.com/go-lab/smart-device
  66. 66. IMPLEMENTATION https://github.com/go-lab/smart-device
  67. 67. http://golabz.eu
  68. 68. http://golabz.eu
  69. 69. http://golabz.eu
  70. 70. http://golabz.eu
  71. 71. http://golabz.eu
  72. 72. …WHAT IFYOU DO NOT WANT TO REIMPLEMENTYOUR LAB? client legacy lab server
  73. 73. …WHAT IFYOU DO NOT WANT TO REIMPLEMENTYOUR LAB? then go with Gateway4Labs! https://github.com/gateway4labs client legacy lab server
  74. 74. …WHAT IFYOU DO NOT WANT TO REIMPLEMENTYOUR LAB? then go with Gateway4Labs! https://github.com/gateway4labs client legacy lab server smart gateway
  75. 75. …WHAT IFYOU DO NOT WANT TO REIMPLEMENTYOUR LAB? then go with Gateway4Labs! https://github.com/gateway4labs client legacy lab server smart gateway
  76. 76. …WHAT IFYOU DO NOT WANT TO REIMPLEMENTYOUR LAB? then go with Gateway4Labs! https://github.com/gateway4labs client legacy lab server smart gateway acts as a smart device!
  77. 77. CONCLUSION • the Smart Device specification decouples client- server through well-defined services & metadata, creating: • interoperability between clients and other Smart Devices • a machine readable specification that allows 
 the generation of simple client UIs • platform agnostic & implementations
 are available
  78. 78. STANDARDISATION • the specification is taken up by the IEEE working group P1876 as a candidate for the final spec. http://ieee-sa.centraldesktop.com/1876public/
  79. 79. 2 slides will appear on http://www.slideshare.net/stengovaerts slides will appear on http://www.slideshare.net/stengovaerts 22 contact: sten.govaerts@gmail.com
  • phish108

    Mar. 1, 2015

My slides of my presentation at IEEE REV 2015 in Bangkok on February 27, 2015.

Views

Total views

1,074

On Slideshare

0

From embeds

0

Number of embeds

3

Actions

Downloads

16

Shares

0

Comments

0

Likes

1

×