Advertisement

Provisioning the IoT

Feb. 3, 2015
Advertisement

More Related Content

Slideshows for you(20)

Advertisement
Advertisement

Provisioning the IoT

  1. Paul Bakker Sander Mak Luminis Technologies - @pbakker - @sander_mak Provisioning the IoT
  2. 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals
  3. Provisioning spectrum
  4. Provisioning spectrum servers Cloud/SaaS: ‣ full control ‣ reliable network ‣ VM/Containers
  5. Provisioning spectrum servers Cloud/SaaS: ‣ full control ‣ reliable network ‣ VM/Containers mobile App stores: ‣ walled garden ‣ semi-reliable network ‣ full binaries
  6. Provisioning spectrum IoT ?
  7. Provisioning? 'Just download latest binaries over FTP at system startup'
  8. Provisioning wishlist Modularity Efficiency Automation Security Feature composition Remotely toggle features Bandwidth efficient Avoid unnecessary updates Manage many devices Insight: what runs where? Not just any device
  9. IoT != IoT We are not talking about millions of devices:
  10. IoT != IoT We are not talking about millions of devices: This talk is not about device management
  11. IoT Provisioning standards Mostly about device management Device OS Firmware Application Vendors Operators OMA-DM (cellular) LWM2M (ip-based) ?
  12. Demo time!
  13. Provisioning demo Target:
 Car 1 ACE Car Entertainment Target:
 Car 2 NUC 1 NUC 2 Laptop ACE Provisioning Server Budget Edition Deluxe Edition All modules & configuration Us
  14. Modular systems Feature Y Monolithic deployment: installation Feature X Deployment package Target
  15. Modular systems Feature Y Monolithic deployment: update Feature X Deployment package Target Limited connectivity Bandwidth inefficient Feature W
  16. Modular systems Feature Y Modular deployment: installation Feature X Deployment package Target
  17. Modular systems Feature Y Modular deployment: update Feature X Deployment package Target Feature W
  18. Modular systems Feature Y Differentiate with ease Feature X Target 2 Feature W Target 1 Feature Y Feature X
  19. Modular systems How? De facto standard for Java modularity Small footprint Dynamic service model
  20. phone v1.0.0 OSGi runtime (it's just Java!) JVM music v1.0.0 dashboard v1.0.0
  21. phone v2.0.0 OSGi runtime (it's just Java!) JVM music v1.0.0 dashboard v1.0.0 Hot-swap bundles
  22. Dependencies explicit in bundle metadata phone v2.0.0 OSGi runtime (it's just Java!) JVM music v1.0.0 dashboard v1.0.0
  23. Service registry App? PhoneApp phone v2.0.0 OSGi runtime (it's just Java!) JVM music v1.0.0 dashboard v1.0.0
  24. Modular systems Demo code Code @ bit.ly/carprov
  25. Ace client Ace Server Artifact Repository Device 1 Device 2 Device n Build server Architecture
  26. Model Bundle A Bundle B Bundle C Feature A Feature B Distribution A
  27. Targets Device/target JVM/OSGi framework Operating System Management agent bundle Polls ACE server for updates ‣ Any JVM capable device ‣ Target has unique id ‣ Configure server location Deployment packages sent back
  28. ‣ Explicit target registration ‣ HTTP auth or SSL Client Certificates Security: Process: ‣ Manual update approval ‣ Custom properties ‣ Audit logs ACE Server Target 1 Target 2 logs
  29. Scripting REST Java API scriptable OSGi shell, calls (low- level) Java API Gogo script GET /work/{id}/feature workspaceMgr.cw().lf()
  30. Deployment packages Structure GET /deployment/car1/versions/3.0.0 Manifest-Version: 1.0 DeploymentPackage-SymbolicName: car1 DeploymentPackage-Version: 3.0.0 Name: carprov.dashboard.impl-1.0.0.jar Bundle-SymbolicName: carprov.dashboard.impl Bundle-Version: 1.0.0 Name: org.apache.felix.dependencymanager-3.1.0.jar Bundle-SymbolicName: org.apache.felix.dependencymanager Bundle-Version: 3.1.0 … META-INF/MANIFEST.MF
  31. Deployment packages Installation on target ‣ Transactional: retries and rollback ‣ Installation status in audit log ‣ Unreliable networks: ‣ Download instead of stream ‣ Resumable downloads ‣ Custom update strategies
  32. ACE Extensibility ‣ Built on modular OSGi architecture ‣ Different repository implementations ‣ Custom update strategies on targets ‣ Multiple topologies (e.g. relay server) ‣ ResourceProcessors for new artifact types
  33. ACE Extensibility ResourceProcessor ‣ Recognizes your artifact type ‣ Handles installation on target ‣ Upload ResourceProcessor to ACE
  34. ACE Extensibility Configuration ResourceProcessor ‣ Handles XML (MetaType) configs ‣ Placeholders replaced with target tags ... <Value>${context.mySpecificProperty}</Value> ... On server: ... <Value>mySpecificValue</Value> ... On target:
  35. In summary Modular applications rock! Modular deployment is worth your while Apache ACE simplifies IoT deployments
  36. Thank you! Paul Bakker Sander Mak - @pbakker - @sander_mak Code @ bit.ly/carprov
Advertisement