SlideShare a Scribd company logo
March 2012 - Business Confidential - Bitreactive AS
Frank Alexander Kraemer, Ph.D.
Bitreactive AS, Trondheim
@fralkr
Developing Robust IoT Gateway
Applications from Building Blocks
HIPEAC CSW & BR Oslo, May 4-8, 2015
Internet of Things (IoT): Technology and
Applications for a Good Society
March 2012 - Business Confidential - Bitreactive AS
Summary
Gateways are essential components in IoT systems. Apart
from providing network access to the leaf nodes, they can
also run applications. This is important to reduce response
time, network traffic, keep sensitive data within local
boundaries and keep the system up even if the network is
down. Home gateways, industrial field agents, on board
units and roadside stations are examples for gateways. 
Application development for such gateways is hard. Since
gateways tie together hardware and network resources,
developers need a broad set of skills to begin with.
Development is further complicated since applications must
work autonomously, managed remotely and handle the
incoming streams of events. To solve these challenges, we
have developed Reactive Blocks, a tool to create
applications from building blocks. Blocks can encapsulate
protocols, hardware access and application patterns. This
leads to increased reuse, enables automatic code
generation and automated checking of designs.
March 2012 - Business Confidential - Bitreactive AS
Frank Alexander
Frank Alexander Kraemer studied Electrical Engineering
and Information Technology at the University of Stuttgart,
Germany, and received his Ph.D. from the Norwegian
University of Science and Technology (NTNU) in 2008. Frank
has experience with the development of software tools,
initiated by an internship at IBM, Germany, where he helped
integrating tools into the Eclipse platform. During the
research for his Ph.D. thesis, he developed an engineering
method for the design of reactive systems at the
Department for Telematics, NTNU. The results of this
research are usable with the Reactive Blocks tool, which is
currently applied to a number of industrial projects. Frank is
co-founder of Bitreactive AS, which helps other companies
to deliver new applications built with Reactive Blocks.
Title - edit manually in the normal master 4
A selection of
gateways. All of them
can run Linux and a
Java VM.
Title - edit manually in the normal master 5
Examples for use
cases of application
gateways.
INHOLD C
X
X X
X/2
X/2
LOGO SCALE GUIDELINES
The logo must be surrounded with adequate clear space to
ensure
maximum prominence and visual impact.
All scaling of the logo is to be proportional.
In case the logo needs to appear on a limited background,
the minimum size allowed is not less than 15 mm.
LOGO
A smart parking house
that shows you where
the last free spots are.
Gateway
Things
Cloud
BLE ZigBee Thread
6LowPAN
MQTTCoAP
IPv6
MQTT HTTP CoAP AMQP …
A current basis
architecture for IoT
systems, consisting of
cloud, gateways and
the connected things.
IoT Application Gateways
- roadside stations
- onboard units
- residential gateways
- field agents
Gateway
Things
Cloud
Hardware
Operating System
JVM
A 1 A 2 A 3
Applications
Gateways can execute
IoT applications. This
can reduce latency,
reduce bandwidth, and
keep data secure.
Gateway
Things
Cloud
Hardware
Operating System
JVM
A 2 A 3
Applications
A 1
life cycle
services
config changes
messages
network
hardware signalshardware changes
The challenge is that
each application needs
to handle lots of
events. And
concurrent, event-
drivem programming
is difficult.
Title - edit manually in the normal master 11
That’s how a program
looks like when we just
start coding, and
concurrency is not
handled correctly.
Title - edit manually in the normal master
two types of spaghetti
■ Spaghetti code
■ GOTO is not the problem, but unstructured programming is
■ lots of blocking code, because of communnication to network and interaction
with HW, also events and interrupts. —> start with concurrent programming
■ Spaghetti threads
■ in concurrent programming, threads can build spaghetti as well
■ you really give up to understand it
12
You may think “Ahh,
spaghetti code!”. But
it’s even worse.
There’s two types of
spaghetti. You also
deal with spaghetti
threads.
So this is how it usually
turn out with naïve
programming. Easy in
the beginning, hard in
the end.
INHOLD C
X
X X
X/2
X/2
LOGO SCALE GUIDELINES
The logo must be surrounded with adequate clear space to
ensure
maximum prominence and visual impact.
All scaling of the logo is to be proportional.
In case the logo needs to appear on a limited background,
the minimum size allowed is not less than 15 mm.
LOGO
Let’s instead solve this
problem by cleaning up
the mess, and put
everything into boxes,
a.k.a. building blocks.
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
Reactive Blocks
INHOLD C
X
X X
X/2
X/2
LOGO SCALE GUIDELINES
The logo must be surrounded with adequate clear space to
ensure
maximum prominence and visual impact.
All scaling of the logo is to be proportional.
In case the logo needs to appear on a limited background,
the minimum size allowed is not less than 15 mm.
LOGO
public void ledOn() {
logInfo("Switching on LED");
leds[0].setState(true);
}
public void ledOff() {
logInfo("Switching off LED");
leds[0].setState(false);
}
In Reactive Blocks,
Java methods are the
smallest units of
behavior. Here two
simple ones that turn
an LED on and off.
INHOLD C
X
X X
X/2
X/2
LOGO SCALE GUIDELINES
The logo must be surrounded with adequate clear space to
ensure
maximum prominence and visual impact.
All scaling of the logo is to be proportional.
In case the logo needs to appear on a limited background,
the minimum size allowed is not less than 15 mm.
LOGO
To let the LED blink, we just
add a timer in between.
When an operation is called
is determined graphically.
Its contents is still
programmed.
INHOLD C
X
X X
X/2
X/2
LOGO SCALE GUIDELINES
The logo must be surrounded with adequate clear space to
ensure
maximum prominence and visual impact.
All scaling of the logo is to be proportional.
In case the logo needs to appear on a limited background,
the minimum size allowed is not less than 15 mm.
LOGO
We can wrap that blink into a
building block. (This is a very
simple block, there can be
much more complex ones!)
INHOLD C
X
X X
X/2
X/2
LOGO SCALE GUIDELINES
The logo must be surrounded with adequate clear space to
ensure
maximum prominence and visual impact.
All scaling of the logo is to be proportional.
In case the logo needs to appear on a limited background,
the minimum size allowed is not less than 15 mm.
LOGO
INHOLD C
X
X X
X/2
X/2
LOGO SCALE GUIDELINES
The logo must be surrounded with adequate clear space to
ensure
maximum prominence and visual impact.
All scaling of the logo is to be proportional.
In case the logo needs to appear on a limited background,
the minimum size allowed is not less than 15 mm.
LOGO
We can add some logic to let
the LED blink periodically.
INHOLD C
X
X X
X/2
X/2
LOGO SCALE GUIDELINES
The logo must be surrounded with adequate clear space to
ensure
maximum prominence and visual impact.
All scaling of the logo is to be proportional.
In case the logo needs to appear on a limited background,
the minimum size allowed is not less than 15 mm.
LOGO
And also wrap that periodic
timer as a new building
block.
INHOLD C
X
X X
X/2
X/2
LOGO SCALE GUIDELINES
The logo must be surrounded with adequate clear space to
ensure
maximum prominence and visual impact.
All scaling of the logo is to be proportional.
In case the logo needs to appear on a limited background,
the minimum size allowed is not less than 15 mm.
LOGO
And the combination of these
two blocks can in turn be a
building block.
INHOLD C
X
X X
X/2
X/2
LOGO SCALE GUIDELINES
The logo must be surrounded with adequate clear space to
ensure
maximum prominence and visual impact.
All scaling of the logo is to be proportional.
In case the logo needs to appear on a limited background,
the minimum size allowed is not less than 15 mm.
LOGO
OSGi
Applications consist of a nice
hierarchy of blocks, many of
them reused.
There are many libraries
with blocks for typical IoT
functions.
Interfaces
✔ Names
✔ Types
✘ Sequences
✘ Timing Traditional interfaces cover
method names and types,
but do not help us with
timing and sequences of
methods.
INHOLD C
X
X X
X/2
X/2
LOGO SCALE GUIDELINES
The logo must be surrounded with adequate clear space to
ensure
maximum prominence and visual impact.
All scaling of the logo is to be proportional.
In case the logo needs to appear on a limited background,
the minimum size allowed is not less than 15 mm.
LOGO
Therefore, a reactive block
has a contract, that
describes in which sequence
we can use its pins. Here a
very simple example.
Model Checking
Automatic
This enables a mathematical
analysis called “model
checking”. And in Reactive
Blocks, it works
automatically, without any
extra effort.
Here the analysis finds if we
abort a termination
sequence and hence do not
reach the final state. Very
useful.
Reactive Blocks
bitreactive.com

More Related Content

PDF
Connecting the smart factory to the cloud with MQTT and Sparkplug
PDF
IoT based Industrial Gateway (IoT-SDK) built around Sitara™ AM437x processors...
PDF
IoT Meetup HiveMQ and MQTT
PPTX
IoTlondon - mbed based IoT Gateway talk
PPTX
Open Source Software for Industry 4.0
PDF
Eclipse Kura Shoot a-pi
PDF
JVM-Con 2017 – Java and IoT, will it blend?
PPTX
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
Connecting the smart factory to the cloud with MQTT and Sparkplug
IoT based Industrial Gateway (IoT-SDK) built around Sitara™ AM437x processors...
IoT Meetup HiveMQ and MQTT
IoTlondon - mbed based IoT Gateway talk
Open Source Software for Industry 4.0
Eclipse Kura Shoot a-pi
JVM-Con 2017 – Java and IoT, will it blend?
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...

What's hot (20)

PDF
How the OSGi Residential Specifications can help to build an ecosystem for sm...
PPTX
IoT Microservices at the Edge with Eclipse ioFog
PPT
EdgeQ Business Model
PDF
Using Eclipse MQTT & Sparkplug as your IIoT Digital Transformation Toolkit | ...
PPTX
Akraino and Edge Computing
PDF
Open Source 5G/Edge Automation via ONAP
PDF
Examining the emergent open source IoT ecosystem - IoT World Europe 2016
PDF
ONAP and the K8s Ecosystem: A Converged Edge Application & Network Function P...
PDF
Introduction to Fog
PPTX
Cloud Native Driving 5G - COSCUP
PDF
FIWARE Global Summit - Edge Computing - Near Edge for IoT Enablement
PPTX
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
PPTX
NFV +SDN (Network Function Virtualization)
PDF
From the Chip to the Cloud with Apache Software
PPTX
Open Network Edge Services Software for 5G and Edge
PDF
5G Enablers and Use Cases, an European Pespective
PDF
Your Path to Edge Computing - Akraino Edge Stack Update
PPTX
Defining an Open IoT Stack - Presented at IoT World 2015
PDF
Episode iv a new hope
PDF
Edge computing: Cord build 17 telefonica use cases
How the OSGi Residential Specifications can help to build an ecosystem for sm...
IoT Microservices at the Edge with Eclipse ioFog
EdgeQ Business Model
Using Eclipse MQTT & Sparkplug as your IIoT Digital Transformation Toolkit | ...
Akraino and Edge Computing
Open Source 5G/Edge Automation via ONAP
Examining the emergent open source IoT ecosystem - IoT World Europe 2016
ONAP and the K8s Ecosystem: A Converged Edge Application & Network Function P...
Introduction to Fog
Cloud Native Driving 5G - COSCUP
FIWARE Global Summit - Edge Computing - Near Edge for IoT Enablement
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
NFV +SDN (Network Function Virtualization)
From the Chip to the Cloud with Apache Software
Open Network Edge Services Software for 5G and Edge
5G Enablers and Use Cases, an European Pespective
Your Path to Edge Computing - Akraino Edge Stack Update
Defining an Open IoT Stack - Presented at IoT World 2015
Episode iv a new hope
Edge computing: Cord build 17 telefonica use cases
Ad

Viewers also liked (15)

PPTX
An Open Source Project for the IoT
PDF
An IOT gateway Architecture using an MQTT bundle transport & LTP Convergence ...
PDF
OSGi -Simplifying the IoT Gateway - Walt Bowers
PDF
Володимир Шиманський “Роль спільноти і OpenSource в IoT бізнесі” {R0boCamp}
PPTX
3 Software Stacks for IoT Solutions
PDF
Intelligent IoT gateway on openwrt
PPTX
Blueprint for creating a Secure IoT Product
PPTX
Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...
PDF
OSGi IoT Demo & Contest 2015
PPTX
Євген Філяк “Як підняти продажі продукту за домомогою Win/Loss аналізу в 3 ра...
PPTX
Raspberry Pi as IoT gateway
PDF
An Introduction to Eclipse Kura - Eclipse Day Florence 2014
PDF
IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...
PDF
Internet of Things - Advantech IoT Gateway Starter Kit
PDF
Kura M2M IoT Gateway
An Open Source Project for the IoT
An IOT gateway Architecture using an MQTT bundle transport & LTP Convergence ...
OSGi -Simplifying the IoT Gateway - Walt Bowers
Володимир Шиманський “Роль спільноти і OpenSource в IoT бізнесі” {R0boCamp}
3 Software Stacks for IoT Solutions
Intelligent IoT gateway on openwrt
Blueprint for creating a Secure IoT Product
Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...
OSGi IoT Demo & Contest 2015
Євген Філяк “Як підняти продажі продукту за домомогою Win/Loss аналізу в 3 ра...
Raspberry Pi as IoT gateway
An Introduction to Eclipse Kura - Eclipse Day Florence 2014
IoT Open Source Integration Comparison (Kura, Node-RED, Flogo, Apache Nifi, S...
Internet of Things - Advantech IoT Gateway Starter Kit
Kura M2M IoT Gateway
Ad

Similar to Developing Robust IoT Gateway Applications from Building Blocks (20)

PDF
Secure, Reliable and Intelligent Data Collection from Sensors
PDF
Look Inside Your OSGi Bundles and Build them Block by Block - FA Kramer
PPTX
Oop2018 tutorial-stal-mo2-io t-arduino-en
PDF
Building Applications with Eclipse IoT, Block by Block
PDF
Secret Twists to Efficiently Develop Reactive Software Systems
PDF
Getting Started with IoT by Niraj Shah
PDF
Live chat srs
PDF
Best Practices for Design Hardware APIs
PPTX
Design Like a Pro: Planning Enterprise Solutions
PPTX
Design Like a Pro: Planning Enterprise Solutions
PDF
Designing Web Apis Building Apis That Developers Love Jin Brendasahni
PDF
WSO2Con USA 2017: Building Enterprise Grade IoT Architectures for Digital Tra...
PDF
Fundamentals of Using Open Source Code to Build Products
PPTX
Alleantia le web startup competition 2012 ssh
PDF
Embedded Software For The Iot 3rd Edition Klaus Elk
PPTX
DESIGN PRINCIPLES OF IOT iot iot principles
PDF
Reactive Java Robotics and IoT 2016
PDF
Gatehouse software genanvendelse
PDF
Embedded Software for the IoT 3rd Edition Klaus Elk
Secure, Reliable and Intelligent Data Collection from Sensors
Look Inside Your OSGi Bundles and Build them Block by Block - FA Kramer
Oop2018 tutorial-stal-mo2-io t-arduino-en
Building Applications with Eclipse IoT, Block by Block
Secret Twists to Efficiently Develop Reactive Software Systems
Getting Started with IoT by Niraj Shah
Live chat srs
Best Practices for Design Hardware APIs
Design Like a Pro: Planning Enterprise Solutions
Design Like a Pro: Planning Enterprise Solutions
Designing Web Apis Building Apis That Developers Love Jin Brendasahni
WSO2Con USA 2017: Building Enterprise Grade IoT Architectures for Digital Tra...
Fundamentals of Using Open Source Code to Build Products
Alleantia le web startup competition 2012 ssh
Embedded Software For The Iot 3rd Edition Klaus Elk
DESIGN PRINCIPLES OF IOT iot iot principles
Reactive Java Robotics and IoT 2016
Gatehouse software genanvendelse
Embedded Software for the IoT 3rd Edition Klaus Elk

Recently uploaded (20)

PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Machine learning based COVID-19 study performance prediction
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPT
Teaching material agriculture food technology
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
KodekX | Application Modernization Development
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Empathic Computing: Creating Shared Understanding
PDF
Encapsulation theory and applications.pdf
PPTX
Cloud computing and distributed systems.
PPTX
MYSQL Presentation for SQL database connectivity
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Review of recent advances in non-invasive hemoglobin estimation
Per capita expenditure prediction using model stacking based on satellite ima...
Unlocking AI with Model Context Protocol (MCP)
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Encapsulation_ Review paper, used for researhc scholars
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Machine learning based COVID-19 study performance prediction
The Rise and Fall of 3GPP – Time for a Sabbatical?
Teaching material agriculture food technology
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
KodekX | Application Modernization Development
NewMind AI Weekly Chronicles - August'25 Week I
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Network Security Unit 5.pdf for BCA BBA.
Empathic Computing: Creating Shared Understanding
Encapsulation theory and applications.pdf
Cloud computing and distributed systems.
MYSQL Presentation for SQL database connectivity

Developing Robust IoT Gateway Applications from Building Blocks

  • 1. March 2012 - Business Confidential - Bitreactive AS Frank Alexander Kraemer, Ph.D. Bitreactive AS, Trondheim @fralkr Developing Robust IoT Gateway Applications from Building Blocks HIPEAC CSW & BR Oslo, May 4-8, 2015 Internet of Things (IoT): Technology and Applications for a Good Society
  • 2. March 2012 - Business Confidential - Bitreactive AS Summary Gateways are essential components in IoT systems. Apart from providing network access to the leaf nodes, they can also run applications. This is important to reduce response time, network traffic, keep sensitive data within local boundaries and keep the system up even if the network is down. Home gateways, industrial field agents, on board units and roadside stations are examples for gateways.  Application development for such gateways is hard. Since gateways tie together hardware and network resources, developers need a broad set of skills to begin with. Development is further complicated since applications must work autonomously, managed remotely and handle the incoming streams of events. To solve these challenges, we have developed Reactive Blocks, a tool to create applications from building blocks. Blocks can encapsulate protocols, hardware access and application patterns. This leads to increased reuse, enables automatic code generation and automated checking of designs.
  • 3. March 2012 - Business Confidential - Bitreactive AS Frank Alexander Frank Alexander Kraemer studied Electrical Engineering and Information Technology at the University of Stuttgart, Germany, and received his Ph.D. from the Norwegian University of Science and Technology (NTNU) in 2008. Frank has experience with the development of software tools, initiated by an internship at IBM, Germany, where he helped integrating tools into the Eclipse platform. During the research for his Ph.D. thesis, he developed an engineering method for the design of reactive systems at the Department for Telematics, NTNU. The results of this research are usable with the Reactive Blocks tool, which is currently applied to a number of industrial projects. Frank is co-founder of Bitreactive AS, which helps other companies to deliver new applications built with Reactive Blocks.
  • 4. Title - edit manually in the normal master 4 A selection of gateways. All of them can run Linux and a Java VM.
  • 5. Title - edit manually in the normal master 5 Examples for use cases of application gateways.
  • 6. INHOLD C X X X X/2 X/2 LOGO SCALE GUIDELINES The logo must be surrounded with adequate clear space to ensure maximum prominence and visual impact. All scaling of the logo is to be proportional. In case the logo needs to appear on a limited background, the minimum size allowed is not less than 15 mm. LOGO A smart parking house that shows you where the last free spots are.
  • 7. Gateway Things Cloud BLE ZigBee Thread 6LowPAN MQTTCoAP IPv6 MQTT HTTP CoAP AMQP … A current basis architecture for IoT systems, consisting of cloud, gateways and the connected things.
  • 8. IoT Application Gateways - roadside stations - onboard units - residential gateways - field agents
  • 9. Gateway Things Cloud Hardware Operating System JVM A 1 A 2 A 3 Applications Gateways can execute IoT applications. This can reduce latency, reduce bandwidth, and keep data secure.
  • 10. Gateway Things Cloud Hardware Operating System JVM A 2 A 3 Applications A 1 life cycle services config changes messages network hardware signalshardware changes The challenge is that each application needs to handle lots of events. And concurrent, event- drivem programming is difficult.
  • 11. Title - edit manually in the normal master 11 That’s how a program looks like when we just start coding, and concurrency is not handled correctly.
  • 12. Title - edit manually in the normal master two types of spaghetti ■ Spaghetti code ■ GOTO is not the problem, but unstructured programming is ■ lots of blocking code, because of communnication to network and interaction with HW, also events and interrupts. —> start with concurrent programming ■ Spaghetti threads ■ in concurrent programming, threads can build spaghetti as well ■ you really give up to understand it 12 You may think “Ahh, spaghetti code!”. But it’s even worse. There’s two types of spaghetti. You also deal with spaghetti threads.
  • 13. So this is how it usually turn out with naïve programming. Easy in the beginning, hard in the end.
  • 14. INHOLD C X X X X/2 X/2 LOGO SCALE GUIDELINES The logo must be surrounded with adequate clear space to ensure maximum prominence and visual impact. All scaling of the logo is to be proportional. In case the logo needs to appear on a limited background, the minimum size allowed is not less than 15 mm. LOGO Let’s instead solve this problem by cleaning up the mess, and put everything into boxes, a.k.a. building blocks.
  • 15. 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 Reactive Blocks
  • 16. INHOLD C X X X X/2 X/2 LOGO SCALE GUIDELINES The logo must be surrounded with adequate clear space to ensure maximum prominence and visual impact. All scaling of the logo is to be proportional. In case the logo needs to appear on a limited background, the minimum size allowed is not less than 15 mm. LOGO public void ledOn() { logInfo("Switching on LED"); leds[0].setState(true); } public void ledOff() { logInfo("Switching off LED"); leds[0].setState(false); } In Reactive Blocks, Java methods are the smallest units of behavior. Here two simple ones that turn an LED on and off.
  • 17. INHOLD C X X X X/2 X/2 LOGO SCALE GUIDELINES The logo must be surrounded with adequate clear space to ensure maximum prominence and visual impact. All scaling of the logo is to be proportional. In case the logo needs to appear on a limited background, the minimum size allowed is not less than 15 mm. LOGO To let the LED blink, we just add a timer in between. When an operation is called is determined graphically. Its contents is still programmed.
  • 18. INHOLD C X X X X/2 X/2 LOGO SCALE GUIDELINES The logo must be surrounded with adequate clear space to ensure maximum prominence and visual impact. All scaling of the logo is to be proportional. In case the logo needs to appear on a limited background, the minimum size allowed is not less than 15 mm. LOGO We can wrap that blink into a building block. (This is a very simple block, there can be much more complex ones!)
  • 19. INHOLD C X X X X/2 X/2 LOGO SCALE GUIDELINES The logo must be surrounded with adequate clear space to ensure maximum prominence and visual impact. All scaling of the logo is to be proportional. In case the logo needs to appear on a limited background, the minimum size allowed is not less than 15 mm. LOGO
  • 20. INHOLD C X X X X/2 X/2 LOGO SCALE GUIDELINES The logo must be surrounded with adequate clear space to ensure maximum prominence and visual impact. All scaling of the logo is to be proportional. In case the logo needs to appear on a limited background, the minimum size allowed is not less than 15 mm. LOGO We can add some logic to let the LED blink periodically.
  • 21. INHOLD C X X X X/2 X/2 LOGO SCALE GUIDELINES The logo must be surrounded with adequate clear space to ensure maximum prominence and visual impact. All scaling of the logo is to be proportional. In case the logo needs to appear on a limited background, the minimum size allowed is not less than 15 mm. LOGO And also wrap that periodic timer as a new building block.
  • 22. INHOLD C X X X X/2 X/2 LOGO SCALE GUIDELINES The logo must be surrounded with adequate clear space to ensure maximum prominence and visual impact. All scaling of the logo is to be proportional. In case the logo needs to appear on a limited background, the minimum size allowed is not less than 15 mm. LOGO And the combination of these two blocks can in turn be a building block.
  • 23. INHOLD C X X X X/2 X/2 LOGO SCALE GUIDELINES The logo must be surrounded with adequate clear space to ensure maximum prominence and visual impact. All scaling of the logo is to be proportional. In case the logo needs to appear on a limited background, the minimum size allowed is not less than 15 mm. LOGO OSGi Applications consist of a nice hierarchy of blocks, many of them reused. There are many libraries with blocks for typical IoT functions.
  • 24. Interfaces ✔ Names ✔ Types ✘ Sequences ✘ Timing Traditional interfaces cover method names and types, but do not help us with timing and sequences of methods.
  • 25. INHOLD C X X X X/2 X/2 LOGO SCALE GUIDELINES The logo must be surrounded with adequate clear space to ensure maximum prominence and visual impact. All scaling of the logo is to be proportional. In case the logo needs to appear on a limited background, the minimum size allowed is not less than 15 mm. LOGO Therefore, a reactive block has a contract, that describes in which sequence we can use its pins. Here a very simple example.
  • 26. Model Checking Automatic This enables a mathematical analysis called “model checking”. And in Reactive Blocks, it works automatically, without any extra effort.
  • 27. Here the analysis finds if we abort a termination sequence and hence do not reach the final state. Very useful.