Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

The Smart Device Specification for Remote Labs

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

  • Inicia sesión para ver los comentarios

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

×