Smart gateways are critical to Industry 4.0. They can react locally if the network is down, add security functions, reduce latency and minimize traffic. Applications running on intelligent gateways are hard to program, since they need to interact concurrently with many other devices and interfaces, be monitored remotely, and work reliably all the time, while working autonomously
3. 3
Industry 4.0
Cloud
Embedded
Programming challenges in
the embedded domain are
very different from those you
find when developing web or
mobile applications.
Programmers with required
experience is a scarcity
4. 4
Smart Gateway
Cloud
• responsive
• reduce bandwidth
• reduce latency
• keep data secure
• local logic
Gateway
The robustness and
intelligence of your IoT
applications depends on how
you develop the software
controlling the things
5. 5
Air Ventilation Monitoring
Example: Air Ventilation Monitoring
This gateway application
communicates with a PLC via
Modbus and a backend
system. At first glance it looks
rather simple but concurrency
issues soon become a
challenge.
6. 6
Air Ventilation Monitoring
Air Ventilation Monitoring
Autonomous Operation
• Network goes down?
• Power failure
• Some operations take a long
time some short
• Correct ordering of events
7. 7
Air Ventilation Monitoring
Air Ventilation Monitoring
life cycle
services
config changes messages
network
hardware signals
hardware changes
Applications with a high
degree of concurrency is
difficult to program right even
for very experience
programmers
8. Reactive Blocks
8
CoAP Resource
ok
getResponse
init
failed
get
post
Config Listener
initConfig
start
updatedConfig
Kura CloudClient
readypublish
start
stop
waiting
stopped
failed
msgArrived
MQTT Core
initOksubscribe
init
initFailed
publishOk
message
error
stopped
disconnected
unsubscribe
publish
stop
RPi GPIO Digital In
valuestop
init
initError
initOk
isLow
isHigh
stopped
read
initPS
Config Listener
initConfig
start
updatedConfig
playing
Modbus
initOkexecutedReadIn
init
initFailed
readDone
writeDone
readFailed
stopped
writeFailed
deviceId
executedWrite
stop
executeReadHold
registerId
1 2 3Config Listener
initConfig
start
updatedConfig
Program IoT applications simpler faster and safer