Initial Idea pitch for creating SCADA applicatons with Open-Source software. This talk was the test-balloon I did at ApacheCon NA 2017 and can be considered the first talk on what should become the Apache PLC4X project.
More than Just Lines on a Map: Best Practices for U.S Bike Routes
Building scada systems with apache software
1. BUILDING SCADA SYSTEMS WITHBUILDING SCADA SYSTEMS WITH
APACHE SOFTWAREAPACHE SOFTWARE
Christofer Dutz, codecentric AG
1
2. DISCLAIMERDISCLAIMER
The opinions expressed in this presentation and on the
following slides are solely those of the presenter and not
necessarily those of the Apache Software foundation or
codecentric AG. The Apache Software Foundation and
codecentric AG do not guarantee the accuracy or
reliability of the information provided herein
2
3. ABOUT MEABOUT ME
Christofer Dutz
Senior IT Consultant
codecentric AG
Apache Member
Apache Flex Committer & PMC
Flexmojos Lead Developer
Open-Source enthusiast
@ChristoferDutz
3
11. WHY?WHY?
Banks and insurance companies love Big Data
Marketing companies love Big Data
IoT demand not very high (yet)
Being in the right place at the right time for a Big Data & IoT
Job seems less probable than winning the lottery
11
12. WHY ONLY THESE?WHY ONLY THESE?
These companies have always been dealing with big amounts
of data
Banks have always had to process huge amounts of data
Insurance companies have always processed huge amounts of
data to calculate risks
Marketing companies have always processed huge amounts of
data to predict which people to target and how to do it
"Big Data" is just another way for them to do what they have
been doing for a long time
This is just my own explanation I have no numbers to
prove it.
12
14. YES THERE IS … A LOT OF ITYES THERE IS … A LOT OF IT
Source:
Marketing is only a part of "information & communication"
91.2%
Banks & insurance Information & communication Others
Deutschland in Zahlen
14
15. WHAT ABOUT THE PRODUCTIONWHAT ABOUT THE PRODUCTION
INDUSTRY?INDUSTRY?
Source:
65.5%
25.7%
Banks & insurance Information & communication Others Production industry
Deutschland in Zahlen
15
16. WHY DON’T WE GET MOST REQUESTSWHY DON’T WE GET MOST REQUESTS
FROM HERE?FROM HERE?
Most simply don’t know what’s possible
Market is dominated by proprietary solutions
Products in this market segment: SCADA Systems
16
17. WHAT ARE SCADA SYSTEMS?WHAT ARE SCADA SYSTEMS?
SCADA = Supervisory Control and Data Acquisition
Collect data from PLCs (Programmable Logic Controllers)
Aggregate state data
Display a systems state
React on system events
17
18. DISTRIBUTION OF SCADA MARKETDISTRIBUTION OF SCADA MARKET
Source:
75.5%
6.4%
13.3%
Siemens Wonderware Ionics Intellution Others
SCADA safety in numbers
18
19. WHY COULD PRODUCTION INDUSTRYWHY COULD PRODUCTION INDUSTRY
BE AN INTERESTING MARKET?BE AN INTERESTING MARKET?
It’s a much bigger market
It provides great room for improvement
Vendor lock-in has slowed down innovation greatly
Naturally, production industry has great interest in
optimization:
Cost reduction
Scalability
Reliability
Safety
19
20. A BIG PART OF THE MARKET ISN’TA BIG PART OF THE MARKET ISN’T
EVEN PROCESSED YETEVEN PROCESSED YET
Price-tag of established systems is very high
Prevents a lot of small companies from even starting to
think about SCADA systems
20
21. BUT IT’S A DIFFERENT MARKETBUT IT’S A DIFFERENT MARKET
Completely different nature of projects
Completely different ecosystem
Hardware (PLCs)
Protocols
Use-cases
Completely different type of Users
21
22. FIRST OF ALL THEY DON’T DO THIS:FIRST OF ALL THEY DON’T DO THIS:
CC byblinking circuit Mace
Ojala
22
32. DIFFERENT PROTOCOLSDIFFERENT PROTOCOLS
Only IP Based ones here …
Source:
30.0%
30.0%
17.0%
9.0%
7.0%
7.0%
Profibus/Profinet Ehternet/IP/OPC Modbus Thernet-Powerlink Ethercat
Others
IMS Research sees PROFINET and PROFIsafe in leading
position
28
33. SO HOW CAN APACHE SOFTWARESO HOW CAN APACHE SOFTWARE
HELP?HELP?
Apache has projects for almost everything we need
Big Data storage
Big- & Fast Data routing
Big- & Fast Data processing
Virtualization & Cloud
Visualization
Automation & Management solutions
Even Operating-Systems
29
34. DATA ACQUISITION / LOCALDATA ACQUISITION / LOCAL
PREPROCESSINGPREPROCESSING
Akka (ok … that’s not directly Apache, but a big friend of the
Family)
Ideal to collect and pre-process information
Runs on really small and limited hardware
Akka Streams push information into Kafka and handle back-
pressure/buffering
Mynewt might be an interesting option
30
35. ROUTING OF DATAROUTING OF DATA
Apache Kafka
Perfect for routing data
Eventually routs data to other pre-processing units
Routs data to storage and or processing
Apache Edgent
Apache ActiveMQ
MQTT-Bridge
31
36. DATA ACQUISITION / LOCALDATA ACQUISITION / LOCAL
PREPROCESSING / ROUTINGPREPROCESSING / ROUTING
32
38. STORING OF DATASTORING OF DATA
Hadoop
Cassandra
Elasticsearch (ok … not Apache but important)
… a lot more
34
39. DISPLAY OF DATA / UIDISPLAY OF DATA / UI
Apache Flex
In my opinion Flex is still the best tool for complex graphic
UIs
FlexJS will make the Flash-Player obsolete
Toolchain is perfect for this use-case:
Runnable on almost every client-platform
BlazeDS pushes data from the Server to the UI
Kibana
35
41. SO WHAT ELSE DO WE NEED?SO WHAT ELSE DO WE NEED?
Libraries that handle the communication with the PLCs
Profinet
Modbus
OPC
Ideally an abstraction layer usable in Akka
37
42. MOST OF THESE ALREADY EXISTMOST OF THESE ALREADY EXIST
http://snap7.sourceforge.net/
https://sourceforge.net/projects/j2mod/
https://github.com/stephane/libmodbus
https://github.com/eclipse/milo
https://code.google.com/p/opcua4j/
38
43. SO WHAT’S STILL MISSING?SO WHAT’S STILL MISSING?
Akka PLC Abstraction Library
Currently open-source libraries only allow polling of data
Good for dashboards
Bad for real-time processing of events
ProfinetIO (Example)
allows PLC to send near real-time alarm to SCADA systems
based on top of IP, but not TCP/UDP → not usable in Java
ecosystem
⇒We need to implement adapters (ideally JNI) for the most
important protocols to allow the full range of communication
39
44. SO WHAT’S THE PLAN?SO WHAT’S THE PLAN?
codecentric is going to give me:
The required funds needed to acquire the hardware
The required funds needed to acquire the software
A Lab
About 6 Months of time
Goal ⇒Create an open-source library that fills the gap (Apache
licensed)
40
45. SO WHAT’S DO YOU THINK?SO WHAT’S DO YOU THINK?
41