Ioannis Varsamidakis
Final Presentation
??.01.2018
1
Chair of Software and Systems Engineering 2
Chair of Software and Systems Engineering 3
Chair of Software and Systems Engineering 4
Chair of Software and Systems Engineering 5
Chair of Software and Systems Engineering 6
Chair of Software and Systems Engineering 7
Chair of Software and Systems Engineering 8
12
Chair of Software and Systems Engineering 13
Chair of Software and Systems Engineering 14
source: http://www.ncta.com
Chair of Software and Systems Engineering 12
Chair of Software and Systems Engineering 13
Chair of Software and Systems Engineering 14
Chair of Software and Systems Engineering 15
Chair of Software and Systems Engineering
source: http://www.vitria.com
16
Chair of Software and Systems Engineering 17
Chair of Software and Systems Engineering
IoT Mashup tool
18
Chair of Software and Systems Engineering 19
Chair of Software and Systems Engineering 20
Chair of Software and Systems Engineering 21
Chair of Software and Systems Engineering 25
Chair of Software and Systems Engineering 23
Chair of Software and Systems Engineering
akka streams
24
Chair of Software and Systems Engineering
akka streams
25
Chair of Software and Systems Engineering 26
Chair of Software and Systems Engineering 27
Chair of Software and Systems Engineering 28
Chair of Software and Systems Engineering 29
Chair of Software and Systems Engineering
Akka
component
Akka Streams
componentAkka
component
Akka Streams
component
30
Chair of Software and Systems Engineering 31
Chair of Software and Systems Engineering 32
Chair of Software and Systems Engineering 33
Chair of Software and Systems Engineering 34
Chair of Software and Systems Engineering 35
Chair of Software and Systems Engineering 36
Chair of Software and Systems Engineering 37
Chair of Software and Systems Engineering 38
Chair of Software and Systems Engineering 39
Chair of Software and Systems Engineering 37
Chair of Software and Systems Engineering 41
Chair of Software and Systems Engineering 42
Chair of Software and Systems Engineering 43
Chair of Software and Systems Engineering 44
Chair of Software and Systems Engineering 45
Chair of Software and Systems Engineering
46
Chair of Software and Systems Engineering 47
Chair of Software and Systems Engineering 48
Chair of Software and Systems Engineering 49
Chair of Software and Systems Engineering 50
Chair of Software and Systems Engineering 51
Chair of Software and Systems Engineering 52
Chair of Software and Systems Engineering 53
Chair of Software and Systems Engineering 54
Method Responsiveness Settling time Scalability
No window Very slow Long Low
Tumbling window 50 Very fast Very long Very low
Tumbling window 300 Slow Very short High
Tumbling window 500 Slow None Very high
Sliding window 500 Slow None Very high
Chair of Software and Systems Engineering 55
Chair of Software and Systems Engineering 43
Chair of Software and Systems Engineering 46
Chair of Software and Systems Engineering 47
Chair of Software and Systems Engineering
https://mapr.com/ebooks/streaming-architecture/chapter-01-why-event-
streaming.html#ch01[2] Linear Mixed Models, May 2002 – John Fox
https://balamaci.ro/reactive-log-processing/
https://hackhands.com/overview-of-reactive-programming/
https://blog.redelastic.com/a-journey-into-reactive-streams-5ee2a9cd7e29
https://nodered.org/docs/creating-nodes/context
https://gist.github.com/staltz/868e7e9bc2a7b8c1f754
Icons: http://www.flaticon.com/
48
Chair of Software and Systems Engineering
akka streams project reactor
60
Chair of Software and Systems Engineering 61
Chair of Software and Systems Engineering 62
Chair of Software and Systems Engineering
Appendix - Reactive programming
Iterator Pattern (GoF)
(Java) Iterable data type (consistent way to consume all data in a collection).
Consumer -> Producer
(Consumer wants to get the data out of producer)
Producer can:
• Tell no more data
• Throw error
3 semantics:
• Pull data
• Tell no data
• Throw an error
Pull data (out of iterator)
Observable Pattern (GoF)
Producer -> Consumer (Producer gives data to
Consumer)
Producer is in control, decides when to give data to
consumer.
3 semantics:
• Push data
• Complete (no more stream data)
• Throw an error
Push data
63
Chair of Software and Systems Engineering
Appendix - Reactive programming
64
Chair of Software and Systems Engineering
Appendix - Reactive programming
Reactive Programming = Observable pattern + Iteratable pattern
65
Chair of Software and Systems Engineering
The 3 Vs of Big Data
Source: https://www.infoq.com/articles/stream-processing-hadoop
Hadoop:
Volume + Variety
Stream Analytics:
Velocity + Variety
66
Chair of Software and Systems Engineering 52
Chair of Software and Systems Engineering 52
Source:
https://www.lightbend.com/blog/understanding-
akka-streams-back-pressure-and-asynchronous-
architectures
Chair of Software and Systems Engineering 52
Source:
https://www.lightbend.com/blog/understanding-
akka-streams-back-pressure-and-asynchronous-
architectures
Chair of Software and Systems Engineering
IoT will generate a staggering 400 zettabytes (ZB) of data a year by
2018 - Cisco
source: http://www.vitria.com
70
Chair of Software and Systems Engineering
Top open source Stream Analytics platforms
71
Chair of Software and Systems Engineering
• Need to be set up
• Need to program them (mostly in Scala or Java)
72