IoT/M2M gateways are critical to make robust Iot solutions. They must react locally even if the network is down, must ensure security functions are handled, be responsive and minimize traffic. Programming these gateways can become quite challenging. Reactive Blocks combines simplicity of visual programming with the flexibility of manual coding and advanced error-free code generation to build robust applications
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Secure, Reliable and Intelligent Data Collection from Sensors
1. March 2012 - Business Confidential - Bitreactive AS
Anne Nevin, Ph.D.
Bitreactive AS, Trondheim
@nivenenna
Secure, Reliable and Intelligent
Data Collection from Sensors
Episenteret, FFI Okt. 16, 2015
FFI/Internet of Things (IoT) / M2M
2. 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
Jone S. Rasmussen
General Manager
M: +47 957 26 339
E: jone@bitreactive.com
www.bitreactive.com
Frank Alexander Kraemer
Technology Manager
M: +47 959 28 555
E: frank@bitreactive.com
www.bitreactive.com
Anne Nevin
Sales
M: +47 930 07
E: anne@bitre
www.bitreactive
Kathrin Winkler
System Architect
M: +4747914350
E: kathrin@bitreactive.com
www.bitreactive.com
Ole Budde
System Architect
M: +47 406 32 522
E: ole@bitreactive.com
www.bitreactive.com
Linda Ariani Gunawan
System Architect
M: +47 463 92 572
E: linda@bitreactive.com
www.bitreactive.com
Alina Isaksen
System Architect
M: +47 980 28 536
E: alina@bitreactive.com
www.bitreactive.com
■ Founded June 2011, spinoff from NTNU
■ Delivers the software development tool Reactive Blocks which provides specific solutions
to the programming challenges of the IoT industry.
■ Member of Eclipse Foundation, OSGi Alliance, M2M Alliance, Smartgrid senteret.
Bitreactive
3. 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
Cloud
IoT example architecture
4. 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
Cloud
Embedded/OP
Enterprise/web
5. 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
Cloud
Enterprise/web
• responsive
• reduce bandwidth
• reduce latency
• keep data secure
• local logic
• connectivity
• configuration
Intelligent
device
gateway
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 selection of
gateways we have
tested. All of them can
run Linux and a Java
VM.
7. 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
Hardware
Operating System
JVM
A 1 A 2 A 3A 1
config changes
network
gateway
Gateways can
execute IoT
applications. This can
reduce latency,
reduce bandwidth,
and keep data secure.
8. 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
Hardware
Operating System
JVM
A 1 A 2 A 3A 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.
9. 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
That’s how a program
looks like when we
just start coding, and
concurrency is not
handled correctly.
10. 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.
11. 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
specting engineer to examine multiple classes to understand the workings of
the application. By creating Unified Modeling Language (UML) models for
Figure 1.1: Dataflow in the TakeMeThere Application
some of the most common Android coupling elements, the goal is to enable
Reactive Blocks combines the simplicity of visual programming
with the flexibility of manual coding. Software becomes a
structured hierarchy of blocks
12. 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.
13. 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.
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
15. 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.
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
And make it into a building
block
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
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
And combine these two
blocks into a new building
block…
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
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
playing
Modbus
initOkexecutedReadIn
init
initFailed
readDone
writeDone
readFailed
stopped
writeFailed
deviceId
executedWrite
stop
executeReadHold
registerId
close
stopped
Buffer Eager
out
add
start
stopped
emptynext
overflow
addAll
stop
abort
Some building
block examples
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
Generic Functionality
■ Buffering
■ Counters
■ Flow Logic
■ Session Utilities
■ Iterator
Timers
■ Timers
■ Periodic Timers
■ Watchdogs
Application Prototyping
■ Java Swing
■ Java FX
■ Speech (Free TTS)
■ Properties
Hardware Connections
■ Modbus
■ Serial I/O
■ Raspberry Pi GPIO
■ Berryclip for Raspberry Pi
■ Gertboard for Raspberry Pi
■ USB Camera
Files
■ Files Utilities
■ File I/O
■ Properties
End-User Communication
■ SMS: Twilio, Keyteq, Clickatell
■ Email
■ CMPP Client (Smack)
Communication
■ HTTP/HTTPS
■ MQTT
■ CoAP
■ JSON-RPC
■ AMQP
■ Network Monitoring
■ OPC-UA
Data Collection Services
■ Sierra Wireless AirVantage
■ IBM IoT Foundation
■ Eurotech ESF
■ Xively
■ Solair
Security
■ Cryptography
■ OAuth 2.0
Transformation of Data
■ GSON
■ XML Parsing (DOM4J)
■ XSL Transformation
Eclipse Kura and OSGi
■ Configuration Listener
■ Cloud Client Handler
■ Event Admin
■ Service Tracker
■ Termination
■ Service Register
Location
■ Geofence
■ KML
Data Processing
■ Video Recording
■ Image Processing
Not just a tool but also a growing library of ready-to-use
building blocks
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
App
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
CoAP Resource
ok
getResponse
init
failed
get
post
Config Listener
initConfig
start
updatedConfig
Kura CloudClient
readypublish
start
stop
waiting
stopped
failed
msgArrived
RPi GPIO Digital In
valuestop
init
initError
initOk
isLow
isHigh
stopped
read
initPS
CoAP Resource
ok
getResponse
init
failed
get
post
Config Listener
initConfig
start
updatedConfig
Kura CloudClient
readypublish
start
stop
waiting
stopped
failed
msgArrived
RPi GPIO Digital In
valuestop
init
initError
initOk
isLow
isHigh
stopped
read
initPS
Config Listener
initConfig
start
updatedConfig
Kura CloudClient
readypublish
start
stop
waiting
stopped
failed
msgArrived
RPi GPIO Digital In
valuestop
init
initError
initOk
isLow
isHigh
stopped
read
initPS
Config Listener
initConfig
start
updatedConfig
Kura CloudClient
readypublish
start
stop
waiting
stopped
failed
msgArrived
Config Listener
initConfig
start
updatedConfig
With Reactive Blocks, complexity does not increase as
the application evolves over time.
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
Interfaces
✔ Names
✔ Types
✘ Sequences
✘ Timing
Traditional interfaces cover
method names and types,
but do not help us with
timing and sequences of
methods.
24. 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
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
A more advance building blocks
26. 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
Model Checking
Automatic
This enables a
mathematical analysis
called “model checking”.
And in Reactive Blocks, it
works automatically, without
any extra effort.
27. 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
Here the analysis finds if
we abort a termination
sequence and hence do not
reach the final state. Very
useful.
28. 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
Intruder Detection Demo:
The camera takes pictures
and checks if there is a
change in the image. If a
change is detected, it sends
an SMS to notify there is an
intruder.
29. Picture of the intruder, SMS messages and image of the
Kura console for remote configuration
34. 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
Reactive Blocks
bitreactive.com