SlideShare a Scribd company logo
KIT – University of the State of Baden-Wuerttemberg and
National Research Center of the Helmholtz Association
PERVASIVE COMPUTING SYSTEMS, INSTITUTE FOR TELEMATICS, FACULTY OF INFORMATICS
www.kit.edu
Always-On Web of Things Infrastructure
Dynamic Software Updating
2016-11-07, Web of Things Workshop
Martin Alexander Neumann, Christoph Tobias Bach, Andrei Miclaus, Till Riedel, Michael Beigl
2 16-11-08
e.g. production control,
health monitoring
Simplify IoT
interoperability
Common technologies/
web standards
HTTP, REST
JSON, JSON-LD
WebSockets, CoAP, MQTT
Martin Alexander Neumann, KIT
Web of Things
http://forklog.net/the-way-iot-and-blockchain-change-the-world/
3 16-11-08
Updating the Infrastructure
Cloud services and gateways
Highly available, real-time communications
Maintenance windows, or rolling updates
Software updates
Low-disruptive rollout of updates and patches
But, especially: timely rollout of security patches
Martin Alexander Neumann, KIT
5 16-11-08
Ad Hoc
Approach enabling …
Every update to every
installation of a software
has to be planned
Takes time and effort
General
At least – approach fits
an update to
all installations of a SW
Better – approach fits
all updates to
all installations of a SW
Dynamic Software Updating
Martin Alexander Neumann, KIT
Low-Disruptive and Timely Hot/Live Updates
Least preferrable with
common technologies
widely adopted
6 16-11-08
1. Preparation
Vendor tailors
program to DSU system
2. Installation/Rollout
Vendor provides
a dynamic update
(instead of a regular one)
to update any old
program instances
Martin Alexander Neumann, KIT
Goal of Dynamic Software Updating
7 16-11-08
Conventional Update
Martin Alexander Neumann, KIT
𝑣0 update
stop restart
persist
data
offline
𝑣1
reload
data
online
disruption
8 16-11-08
Transform state in memory → efficient
Stop 𝑣0 immediately → timely
Transform anything → flexible
Use with any software → generic
Dynamic Software Updating
Martin Alexander Neumann, KIT
𝑣0 DSU
offline
𝑣1
online
disruption
9 16-11-08
Close classes world and load 𝑣1
Compare 𝑣0 to 𝑣1 for automatic transformation
Load update code 𝑣0 → 𝑣1 that finalizes transform.
𝑢𝑛𝑙𝑜𝑎𝑑 𝑣0
𝑙𝑜𝑎𝑑 𝑣1
𝑐𝑜𝑚𝑝𝑎𝑟𝑒
Lusagent DSU Phases – Preparation & Cleanup
Martin Alexander Neumann, KIT
𝑣0 DSU
offline
𝑣1
online
prepare cleanup
update
10 16-11-08
Stop all threads, transform state, release threads
Properties or onetime instrumentation for safe state
Explore entire heap to find and transform objects
Lusagent DSU Phases – Update
Martin Alexander Neumann, KIT
𝑣1𝑣0
offline online
prepare cleanup
update
𝑢𝑝𝑑𝑎𝑡𝑒 𝑐𝑜𝑑𝑒
𝑎𝑢𝑡𝑜. 𝑡𝑟𝑎𝑛𝑠𝑓𝑜𝑟𝑚.
12 16-11-08
Develop (one-time) program instrumentation
Definition of update points for timely updates
Lusagent DSU Workflow (1)
Martin Alexander Neumann, KIT
Update Points
𝑣0
𝑣1
𝑣0
Update Points
𝑣1
IDE
13 16-11-08
Develop update-specific update code/transformations
Understand automatically covered transformations
Program finalization of transformations
Lusagent DSU Workflow (2)
Martin Alexander Neumann, KIT
𝑣0
𝑣1
Analysis
Stubs for
Update Code
𝑣0 → 𝑣1
Automatic
Transformation
IDE
Update
Code
𝑣0 → 𝑣1
14 16-11-08
Lusagent DSU Workflow (3)
Martin Alexander Neumann, KIT
Run instance of 𝑣0
Install dynamic update to 𝑣1 (on instance of 𝑣0)
DSU System
Update Points
𝑣1
DSU System
Update Points
𝑣0
Update Points
𝑣1
Update Code
𝑣0 → 𝑣1
DSU System
Update Points
𝑣0
1 32
15 16-11-08
Case Study – Message Broker
Martin Alexander Neumann, KIT
Programming effort? Broker performance on update?
16 16-11-08
Features
MQTT 3.1, QoS 0, 1, 2
Persistent sessions
Event-processor, netty.io
IoT Framework
MQTT adapter
Fraunhofer’s SensorThingsServer (OGC SensorThings API), …
Releases
Martin Alexander Neumann, KIT
Moquette – Java MQTT Message Broker
Users
Version Date SLoC Classes
v0.7.0 7/2015 8468 151
v0.8.0 1/2016 9691 166
v0.8.1 2/2016 9670 163
Updates
1 major & 1 minor release
17 16-11-08
Programming Effort – Instrumentation
Martin Alexander Neumann, KIT
Version Date SLoC Classes
v0.7.0 7/2015 8468 151
v0.8.0 1/2016 9691 166
v0.8.1 2/2016 9670 163
Changed
classes
Added
lines
Deleted
lines
3 19 3
2 11 1
same
Add update points (& long-running code interruptable)
4 netty.io event processors 4 update points
Timer (background thread) persisting database
𝑣0.7 uses additional async. ring buffer in reception
18 16-11-08
Update Point Instrumentation
Martin Alexander Neumann, KIT
19 16-11-08
Programming Effort – Update Code
Martin Alexander Neumann, KIT
Version Date SLoC Classes
v0.7.0 7/2015 8468 151
v0.8.0 1/2016 9691 166
v0.8.1 2/2016 9670 163
Transformed
classes
SLOC
16 230
3 28
𝑣0.7 → 𝑣0.8 took about 1 day
20 16-11-08
Update Code – Moquette v0.7 to v0.8
Martin Alexander Neumann, KIT
Field moved
Fields renamed
21 16-11-08
Update Code – Moquette v0.8 to v0.8.1
Martin Alexander Neumann, KIT
Packages changed, last class renamed
Transform
how persisted
messages
are stored
22 16-11-08
Throughput Latency
Martin Alexander Neumann, KIT
Updating Performance
Update while no connections or messages are lost
23 16-11-08
Summary
Web of Things
Common technologies
Updating the infrastructure
Dynamic Software Updating
In-memory updates, generic
Development workflow
Case Study: Moquette MQTT message broker
Programming efforts
Performance properties
Martin Alexander Neumann, KIT

More Related Content

PDF
Towards constrained semantic web
PDF
Monitor your application and sleep
PDF
Overview and Opentracing in theory by Gianluca Arbezzano
PDF
Portable data analysis infrastracture for LHC at INFN -vCHEP2021
PDF
Monitoring Pull vs Push, InfluxDB and Prometheus
PDF
Presentation of CLIF open source project at OW2con'19, June 12-13, Paris.
 
PDF
OpenNebulaConf2017EU: Providing cloud and Managed Hosting Environment by Mich...
PDF
InfluxCloudi craft container orchestrator
Towards constrained semantic web
Monitor your application and sleep
Overview and Opentracing in theory by Gianluca Arbezzano
Portable data analysis infrastracture for LHC at INFN -vCHEP2021
Monitoring Pull vs Push, InfluxDB and Prometheus
Presentation of CLIF open source project at OW2con'19, June 12-13, Paris.
 
OpenNebulaConf2017EU: Providing cloud and Managed Hosting Environment by Mich...
InfluxCloudi craft container orchestrator

What's hot (20)

PDF
QoA4ML – A Framework for Supporting Contracts in Machine Learning Services
PDF
FIWARE Global Summit - DRACO: Managing the Stream of Context Information Hist...
PDF
Michael Hall [InfluxData] | InfluxDB Community Update | InfluxDays EMEA 2021
PDF
node.js is made for IoT - node.hh 07/16, Hamburg by Michael Kuehne
PDF
Knot.x - reactive web integration platform
PDF
OpenNebula Conf 2014 | OpenNebula at Cenatic - Jose Angel Diaz Diaz
PDF
Sharing Blockchain Performance Knowledge for Edge Service Development
PDF
DevSecCon London 2018: A Journey to Continuous Cloud Compliance
PPTX
Lasso context-elicitation-framework- demo
PDF
Machine Learning at E*Trade
PDF
Dominik Obermaier and Anja Helmbrecht-Schaar [HiveMQ] | IIoT Monitoring with ...
PPTX
SAVI-IoT: A Self-managing Containerized IoT Platform
PDF
FIWARE Global Summit - Using ML/AI Techniques with FIWARE and Connected IoT D...
PDF
Open source industrial IoT
PDF
Privacy Preserving Cloud Storage - A Rollback Protection Service for Untruste...
PDF
Introducing the Open Edge Module
PDF
PDF
Trace your micro-services oriented application with Zipkin and OpenTracing
PDF
Realtime traffic monitoring
PPTX
The truth about IoT field gateways (Luis Delgado - webinar)
QoA4ML – A Framework for Supporting Contracts in Machine Learning Services
FIWARE Global Summit - DRACO: Managing the Stream of Context Information Hist...
Michael Hall [InfluxData] | InfluxDB Community Update | InfluxDays EMEA 2021
node.js is made for IoT - node.hh 07/16, Hamburg by Michael Kuehne
Knot.x - reactive web integration platform
OpenNebula Conf 2014 | OpenNebula at Cenatic - Jose Angel Diaz Diaz
Sharing Blockchain Performance Knowledge for Edge Service Development
DevSecCon London 2018: A Journey to Continuous Cloud Compliance
Lasso context-elicitation-framework- demo
Machine Learning at E*Trade
Dominik Obermaier and Anja Helmbrecht-Schaar [HiveMQ] | IIoT Monitoring with ...
SAVI-IoT: A Self-managing Containerized IoT Platform
FIWARE Global Summit - Using ML/AI Techniques with FIWARE and Connected IoT D...
Open source industrial IoT
Privacy Preserving Cloud Storage - A Rollback Protection Service for Untruste...
Introducing the Open Edge Module
Trace your micro-services oriented application with Zipkin and OpenTracing
Realtime traffic monitoring
The truth about IoT field gateways (Luis Delgado - webinar)
Ad

Viewers also liked (18)

PDF
Towards an industrial Web of Things
PDF
A component based architecture for the Web of Things
PDF
Hypermedia-driven Socio-technical Networks for Goal-driven Discovery in the W...
PPTX
WoT 2016 - Seventh International Workshop on the Web of Things
PDF
Enabling reactive cities with the iFLUX middleware
PPTX
Enabling High Level Application Development In The Internet Of Things
PDF
Presentation evrythng
PPTX
IndianaJS - Building spatially aware web sites for the Web of Things
PDF
Web of Things presentation - Document Generation
 
PPTX
Thesis Defence: A Model Driven Architecture for the Web of Things
PPTX
From Load Forecasting to Demand Response - A Web of Things Use Case
PDF
Service Integration in the Web of Things
PDF
IoT and Maker Crossover (IMCO) Conference 2015
PPTX
A Model-Driven, Component Generation Approach for the Web of Things
PDF
Maker of Things - the open IoT cloud for makers chapter.
PDF
Distributed Data Flow for the Web of Things: Distributed Node-RED
PDF
5 Years of Web of Things Workshops
PDF
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
Towards an industrial Web of Things
A component based architecture for the Web of Things
Hypermedia-driven Socio-technical Networks for Goal-driven Discovery in the W...
WoT 2016 - Seventh International Workshop on the Web of Things
Enabling reactive cities with the iFLUX middleware
Enabling High Level Application Development In The Internet Of Things
Presentation evrythng
IndianaJS - Building spatially aware web sites for the Web of Things
Web of Things presentation - Document Generation
 
Thesis Defence: A Model Driven Architecture for the Web of Things
From Load Forecasting to Demand Response - A Web of Things Use Case
Service Integration in the Web of Things
IoT and Maker Crossover (IMCO) Conference 2015
A Model-Driven, Component Generation Approach for the Web of Things
Maker of Things - the open IoT cloud for makers chapter.
Distributed Data Flow for the Web of Things: Distributed Node-RED
5 Years of Web of Things Workshops
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
Ad

Similar to Always-On Web of Things Infrastructure Dynamic Software Updating (20)

PDF
Tools for the Open Source Internet of Things
PDF
Tools for the Open Source Internet Of Things
PDF
Searching in a Web-based Infrastructure for Smart Things
PDF
Iottoolkit osiot
PDF
Dynamic IoT data, protocol, and middleware interoperability with resource sli...
PDF
Introduction to IoT & Project IoT Field
PDF
Embedded systems: Future perspectives
PPTX
The evolution of pervasive computing towards a Web of Things
PDF
The Complex IoT Equation (and FLOSS solutions)
PDF
The complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, Paris
 
PDF
webthing-floss-iot-20180607rzr
PDF
Designing Internet of things
PDF
Design patternsforiot
PDF
Building the Internet of Things with Eclipse IoT - IoTBE meetup
PDF
Web-based Smart Things Ecosystems
PDF
Web of things
PDF
Standards and Open Source for Big Data, Cloud, and IoT
PPTX
IoT development (APIcon 2014 presentation)
PPTX
@stefferber at Think Monk 2016: What is different in Internet of Things
PPTX
CQRS and Event Sourcing for IoT applications
Tools for the Open Source Internet of Things
Tools for the Open Source Internet Of Things
Searching in a Web-based Infrastructure for Smart Things
Iottoolkit osiot
Dynamic IoT data, protocol, and middleware interoperability with resource sli...
Introduction to IoT & Project IoT Field
Embedded systems: Future perspectives
The evolution of pervasive computing towards a Web of Things
The Complex IoT Equation (and FLOSS solutions)
The complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, Paris
 
webthing-floss-iot-20180607rzr
Designing Internet of things
Design patternsforiot
Building the Internet of Things with Eclipse IoT - IoTBE meetup
Web-based Smart Things Ecosystems
Web of things
Standards and Open Source for Big Data, Cloud, and IoT
IoT development (APIcon 2014 presentation)
@stefferber at Think Monk 2016: What is different in Internet of Things
CQRS and Event Sourcing for IoT applications

Recently uploaded (20)

PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Digital Strategies for Manufacturing Companies
PPTX
assetexplorer- product-overview - presentation
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Nekopoi APK 2025 free lastest update
PPTX
Introduction to Artificial Intelligence
PDF
medical staffing services at VALiNTRY
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
PDF
Designing Intelligence for the Shop Floor.pdf
Upgrade and Innovation Strategies for SAP ERP Customers
Softaken Excel to vCard Converter Software.pdf
Odoo POS Development Services by CandidRoot Solutions
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Wondershare Filmora 15 Crack With Activation Key [2025
Which alternative to Crystal Reports is best for small or large businesses.pdf
wealthsignaloriginal-com-DS-text-... (1).pdf
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Digital Strategies for Manufacturing Companies
assetexplorer- product-overview - presentation
CHAPTER 2 - PM Management and IT Context
Nekopoi APK 2025 free lastest update
Introduction to Artificial Intelligence
medical staffing services at VALiNTRY
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
Designing Intelligence for the Shop Floor.pdf

Always-On Web of Things Infrastructure Dynamic Software Updating

  • 1. KIT – University of the State of Baden-Wuerttemberg and National Research Center of the Helmholtz Association PERVASIVE COMPUTING SYSTEMS, INSTITUTE FOR TELEMATICS, FACULTY OF INFORMATICS www.kit.edu Always-On Web of Things Infrastructure Dynamic Software Updating 2016-11-07, Web of Things Workshop Martin Alexander Neumann, Christoph Tobias Bach, Andrei Miclaus, Till Riedel, Michael Beigl
  • 2. 2 16-11-08 e.g. production control, health monitoring Simplify IoT interoperability Common technologies/ web standards HTTP, REST JSON, JSON-LD WebSockets, CoAP, MQTT Martin Alexander Neumann, KIT Web of Things http://forklog.net/the-way-iot-and-blockchain-change-the-world/
  • 3. 3 16-11-08 Updating the Infrastructure Cloud services and gateways Highly available, real-time communications Maintenance windows, or rolling updates Software updates Low-disruptive rollout of updates and patches But, especially: timely rollout of security patches Martin Alexander Neumann, KIT
  • 4. 5 16-11-08 Ad Hoc Approach enabling … Every update to every installation of a software has to be planned Takes time and effort General At least – approach fits an update to all installations of a SW Better – approach fits all updates to all installations of a SW Dynamic Software Updating Martin Alexander Neumann, KIT Low-Disruptive and Timely Hot/Live Updates Least preferrable with common technologies widely adopted
  • 5. 6 16-11-08 1. Preparation Vendor tailors program to DSU system 2. Installation/Rollout Vendor provides a dynamic update (instead of a regular one) to update any old program instances Martin Alexander Neumann, KIT Goal of Dynamic Software Updating
  • 6. 7 16-11-08 Conventional Update Martin Alexander Neumann, KIT 𝑣0 update stop restart persist data offline 𝑣1 reload data online disruption
  • 7. 8 16-11-08 Transform state in memory → efficient Stop 𝑣0 immediately → timely Transform anything → flexible Use with any software → generic Dynamic Software Updating Martin Alexander Neumann, KIT 𝑣0 DSU offline 𝑣1 online disruption
  • 8. 9 16-11-08 Close classes world and load 𝑣1 Compare 𝑣0 to 𝑣1 for automatic transformation Load update code 𝑣0 → 𝑣1 that finalizes transform. 𝑢𝑛𝑙𝑜𝑎𝑑 𝑣0 𝑙𝑜𝑎𝑑 𝑣1 𝑐𝑜𝑚𝑝𝑎𝑟𝑒 Lusagent DSU Phases – Preparation & Cleanup Martin Alexander Neumann, KIT 𝑣0 DSU offline 𝑣1 online prepare cleanup update
  • 9. 10 16-11-08 Stop all threads, transform state, release threads Properties or onetime instrumentation for safe state Explore entire heap to find and transform objects Lusagent DSU Phases – Update Martin Alexander Neumann, KIT 𝑣1𝑣0 offline online prepare cleanup update 𝑢𝑝𝑑𝑎𝑡𝑒 𝑐𝑜𝑑𝑒 𝑎𝑢𝑡𝑜. 𝑡𝑟𝑎𝑛𝑠𝑓𝑜𝑟𝑚.
  • 10. 12 16-11-08 Develop (one-time) program instrumentation Definition of update points for timely updates Lusagent DSU Workflow (1) Martin Alexander Neumann, KIT Update Points 𝑣0 𝑣1 𝑣0 Update Points 𝑣1 IDE
  • 11. 13 16-11-08 Develop update-specific update code/transformations Understand automatically covered transformations Program finalization of transformations Lusagent DSU Workflow (2) Martin Alexander Neumann, KIT 𝑣0 𝑣1 Analysis Stubs for Update Code 𝑣0 → 𝑣1 Automatic Transformation IDE Update Code 𝑣0 → 𝑣1
  • 12. 14 16-11-08 Lusagent DSU Workflow (3) Martin Alexander Neumann, KIT Run instance of 𝑣0 Install dynamic update to 𝑣1 (on instance of 𝑣0) DSU System Update Points 𝑣1 DSU System Update Points 𝑣0 Update Points 𝑣1 Update Code 𝑣0 → 𝑣1 DSU System Update Points 𝑣0 1 32
  • 13. 15 16-11-08 Case Study – Message Broker Martin Alexander Neumann, KIT Programming effort? Broker performance on update?
  • 14. 16 16-11-08 Features MQTT 3.1, QoS 0, 1, 2 Persistent sessions Event-processor, netty.io IoT Framework MQTT adapter Fraunhofer’s SensorThingsServer (OGC SensorThings API), … Releases Martin Alexander Neumann, KIT Moquette – Java MQTT Message Broker Users Version Date SLoC Classes v0.7.0 7/2015 8468 151 v0.8.0 1/2016 9691 166 v0.8.1 2/2016 9670 163 Updates 1 major & 1 minor release
  • 15. 17 16-11-08 Programming Effort – Instrumentation Martin Alexander Neumann, KIT Version Date SLoC Classes v0.7.0 7/2015 8468 151 v0.8.0 1/2016 9691 166 v0.8.1 2/2016 9670 163 Changed classes Added lines Deleted lines 3 19 3 2 11 1 same Add update points (& long-running code interruptable) 4 netty.io event processors 4 update points Timer (background thread) persisting database 𝑣0.7 uses additional async. ring buffer in reception
  • 16. 18 16-11-08 Update Point Instrumentation Martin Alexander Neumann, KIT
  • 17. 19 16-11-08 Programming Effort – Update Code Martin Alexander Neumann, KIT Version Date SLoC Classes v0.7.0 7/2015 8468 151 v0.8.0 1/2016 9691 166 v0.8.1 2/2016 9670 163 Transformed classes SLOC 16 230 3 28 𝑣0.7 → 𝑣0.8 took about 1 day
  • 18. 20 16-11-08 Update Code – Moquette v0.7 to v0.8 Martin Alexander Neumann, KIT Field moved Fields renamed
  • 19. 21 16-11-08 Update Code – Moquette v0.8 to v0.8.1 Martin Alexander Neumann, KIT Packages changed, last class renamed Transform how persisted messages are stored
  • 20. 22 16-11-08 Throughput Latency Martin Alexander Neumann, KIT Updating Performance Update while no connections or messages are lost
  • 21. 23 16-11-08 Summary Web of Things Common technologies Updating the infrastructure Dynamic Software Updating In-memory updates, generic Development workflow Case Study: Moquette MQTT message broker Programming efforts Performance properties Martin Alexander Neumann, KIT