Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning...
Transcript of Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning...
![Page 1: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/1.jpg)
Paul Bakker Sander Mak
Luminis Technologies
- @pbakker - @sander_mak
Provisioning the IoT
![Page 2: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/2.jpg)
1. Put IoT provisioning into context
2. Demo: modular provisioning
3. Apache ACE
Today's goals
![Page 3: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/3.jpg)
Provisioning spectrum
![Page 4: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/4.jpg)
Provisioning spectrum
servers
Cloud/SaaS:
‣ full control ‣ reliable network ‣ VM/Containers
![Page 5: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/5.jpg)
Provisioning spectrum
servers
Cloud/SaaS:
‣ full control ‣ reliable network ‣ VM/Containers
mobile
App stores:
‣ walled garden ‣ semi-reliable
network ‣ full binaries
![Page 6: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/6.jpg)
Provisioning spectrum
IoT
?
![Page 7: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/7.jpg)
Provisioning?
'Just download latest binaries over FTP at system startup'
![Page 8: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/8.jpg)
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
![Page 9: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/9.jpg)
IoT != IoT
We are not talking about millions of devices:
![Page 10: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/10.jpg)
IoT != IoT
We are not talking about millions of devices:
This talk is not about device management
![Page 11: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/11.jpg)
IoT Provisioning standards
Mostly about device management
Device
OS
Firmware
ApplicationVendors
OperatorsOMA-DM (cellular) LWM2M (ip-based)
?
![Page 12: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/12.jpg)
![Page 13: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/13.jpg)
Demo time!
![Page 14: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/14.jpg)
Provisioning demo
Target: Car 1
ACE Car Entertainment
Target: Car 2
NUC 1
NUC 2
LaptopACE
Provisioning Server
Budget Edition
Deluxe Edition
All modules & configuration
Us
![Page 15: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/15.jpg)
Modular systems
Feature Y
Monolithic deployment: installation
Feature X
Deployment package
Target
![Page 16: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/16.jpg)
Modular systems
Feature Y
Monolithic deployment: update
Feature X
Deployment package
Target
Limited connectivity Bandwidth inefficient
Feature W
![Page 17: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/17.jpg)
Modular systems
Feature Y
Modular deployment: installation
Feature X
Deployment package
Target
![Page 18: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/18.jpg)
Modular systems
Feature Y
Modular deployment: update
Feature X
Deployment package
Target
Feature W
![Page 19: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/19.jpg)
Modular systems
Feature Y
Differentiate with ease
Feature X
Target 2
Feature W
Target 1
Feature Y
Feature X
![Page 20: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/20.jpg)
Modular systemsHow?
De facto standard for Java modularity
Small footprint
Dynamic service model
![Page 21: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/21.jpg)
phonev1.0.0
OSGi runtime (it's just Java!)
JVM
music v1.0.0
dashboard v1.0.0
![Page 22: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/22.jpg)
phonev2.0.0
OSGi runtime (it's just Java!)
JVM
music v1.0.0
dashboard v1.0.0
Hot-swap bundles
![Page 23: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/23.jpg)
Dependencies explicit in bundle metadata
phonev2.0.0
OSGi runtime (it's just Java!)
JVM
music v1.0.0
dashboard v1.0.0
![Page 24: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/24.jpg)
Service registryApp? PhoneApp
phonev2.0.0
OSGi runtime (it's just Java!)
JVM
music v1.0.0
dashboard v1.0.0
![Page 25: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/25.jpg)
Modular systemsDemo code
Code @ bit.ly/carprov
![Page 26: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/26.jpg)
![Page 27: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/27.jpg)
Ace client
Ace Server
Artifact Repository
Device 1
Device 2
Device n
Build server
Architecture
![Page 28: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/28.jpg)
Model
Bundle A
Bundle B
Bundle C
Feature A
Feature B
Distribution A
![Page 29: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/29.jpg)
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
![Page 30: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/30.jpg)
‣ 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
![Page 31: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/31.jpg)
ScriptingREST
Java API
scriptable OSGi shell, calls (low-level) Java API
Gogo script
GET /work/{id}/feature
workspaceMgr.cw().lf()
![Page 32: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/32.jpg)
Deployment packagesStructure
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
![Page 33: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/33.jpg)
Deployment packagesInstallation on target
‣ Transactional: retries and rollback
‣ Installation status in audit log
‣ Unreliable networks: ‣ Download instead of stream ‣ Resumable downloads ‣ Custom update strategies
![Page 34: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/34.jpg)
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
![Page 35: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/35.jpg)
ACE ExtensibilityResourceProcessor
‣ Recognizes your artifact type
‣ Handles installation on target
‣ Upload ResourceProcessor to ACE
![Page 36: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/36.jpg)
ACE ExtensibilityConfiguration ResourceProcessor
‣ Handles XML (MetaType) configs
‣ Placeholders replaced with target tags
... <Value>${context.mySpecificProperty}</Value> ...
On server:
... <Value>mySpecificValue</Value> ...
On target:
![Page 37: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/37.jpg)
In summary
Modular applications rock!
Modular deployment is worth your while
Apache ACE simplifies IoT deployments
![Page 38: Provisioning the IoT - Jfokus · 1. Put IoT provisioning into context 2. Demo: modular provisioning 3. Apache ACE Today's goals](https://reader033.fdocuments.in/reader033/viewer/2022052805/6055cb495bde1a2c3e6c7f04/html5/thumbnails/38.jpg)
Thank you!
Paul Bakker Sander Mak
- @pbakker - @sander_mak
Code @ bit.ly/carprov