© Fraunhofer
Pankesh Patel
SOFTWARE TOOLS FOR BUILDING INDUSTY 4.0
APPLICATIONS
© Fraunhofer 2
n Motivation
n Industry 4.0 Challenges
n Our approach
n Middleware
n Rapid Application development tools
n Technology and Tools
n Node-RED
n SMEWB
n IoTSuite
n Summary and Q&A
Agenda
© Fraunhofer 3
Industry 4.0 challenges
Fragmentation
Complexity
Lock-in
Slide source: https://bit.ly/2OcsLLH
© Fraunhofer 4
n Sensor Protocols
n CANBus
n OPC-UA
n MODBus
n BLE
Fragmentation
n Hardware
n ABB
n Siemens
n Intel
n Standards
n IIC
n oneM2M
n IEEE
n Protocols to
cloud
n MQTT
n CoAP
n AMQP
n HTTP(s)
Slide source: https://bit.ly/2OcsLLH
© Fraunhofer 5
n Multiple domain
n Domain
n Network
n Functional
Complexity
n Integration
n Heterogeneous
environment
n Security
n Data
n Sensor
n Network
n Maintenance
n Deployment
n Install
n Configuration
n Scale
n Large number
Slide source: https://bit.ly/2OcsLLH
© Fraunhofer 6
n Platform
Lock-in
n Hardware n Protocol(s)
n Format
n Communication
Slide source: https://bit.ly/2OcsLLH
© Fraunhofer 7
Embracing Industry 4.0 complexity
Slide source: https://bit.ly/2OcsLLH
Business
Applications
Sensors,
Actuators,
Displays, …
?
@
How to accelerate the overall Industry 4.0 development process?
© Fraunhofer 8
Addressing Industry 4.0 challenges
Fragmentation
Complexity
Lock-in
OPEN, STANDARD, SOLID ARCHITECTURES
✔
✔
✔
Slide source: https://bit.ly/2OcsLLH
© Fraunhofer 9
Approach
Business
Applications
@
Integration Platform
@
Rapid prototyping tools
Sensors, Actuators,
HMI, SCADA, PLC
Image reference: https://bit.ly/2OcsLLH
© Fraunhofer 10
Brownfield vs Greenfield approach
Image source: https://iot.eclipse.org/white-papers/
© Fraunhofer 11
State of the art – Industry 4.0 application development
Programming
Languages
Rapid prototyping tools
Cloud
- Full control on AL (app logic)
- More development effort
- Reduce development effort
- Platform-specific design (Language, Runtime)
- Reduce development effort, ease of deployment & evolution (due
to centralized system)
- Cloud-dependent design
© Fraunhofer 12
n Open source tools (https://github.com/node-red)
n Flow-based programming
n Browser-based flow editor
n Invented by IBM for wiring hardware devices, APIs and online services
n Light-weight runtime such as Node.js
n Ideal to run on edge devices
n Over 2500+ ready-to-use nodes/flows
n https://flows.nodered.org/
Rapid prototyping tool – Node-RED
Reference: https://nodered.org/
© Fraunhofer 13
Node-Red Editor
Image source: https://bit.ly/2NvRR38
© Fraunhofer 14
Integration – enhancing existing services
Node-RED
Cloud services
Desktop
Mobile App
Enterprise
network
Industrial devices
Reference: https://bit.ly/2xwj0xP Icon source : https://thenounproject.com/
© Fraunhofer 15
Example: Node-RED integration with Freeboard
Image source: https://bit.ly/2NvRR38
Freeboard (https://freeboard.io/)
- Data visualization based service
© Fraunhofer
Brownfield approach
SUBJECT MATTER EXPERT WORKBENCH
© Fraunhofer 17
n Objectives
n To create, reuse, and deploy analytic algorithms in ABB products and solutions
with little or no additional coding.
n Subject Matter Experts (SMEs) – domain expertise but very little programming
experience
n Assignee : ABB Corporate Research
n Reference
n Karen Smiley, Pankesh Patel, Jeff Harding “From Ideas to Implementations: Closing the Gaps between
Technical Experts and Software Solutions”, CSED Workshop, ICSE 2016.
General background
© Fraunhofer 18
n ABB - industrial sensors, industrial robots, process control systems, etc.
n Blending business solutions with industrial analytics that incorporate deep
knowledge of ABB’s technical SMEs on equipment and verticals
Motivation and Context
© Fraunhofer 19
n Accelerate creation, reuse, evolution and delivery of
analytic module plugins
n Minimize SME (Subject Matter Expert) effort to
share, evolve and reuse knowledge
n Accelerate integration of analytics into ABB systems
and solutions
n Minimize business value of knowledge for ABB
customers
Key goals
© Fraunhofer 20
The old lifecycle: solution development
Installation
and
Configuration
of Integrated
Solution
Run Time!
Customer/User
Solution Development
(Application Engineering)
Full Software Development
Lifecycle
Solution
Solution
Development Team
• Typical solution development scenario:
Solution Development Team work across the
full development life cycle
© Fraunhofer 21
The old lifecycle: solution & analytic development
Installation
and
Configuration
of Integrated
Solution
Run Time!
Customer/User
Solution Development
(Application Engineering)
Full Software Development
Lifecycle
Solution
Solution
Development Team
Subject Matter
Experts (SMEs) Analytic Module
Development
Blending business solutions and analytics, SMEs write application logic in a flowchart diagram and hire a
developer. The developer iterate with SMEs to get the logic right.
© Fraunhofer 22
The old lifecycle: integrating analytics into solutions
Installation
and
Configuration
of Integrated
Solution
Run Time!
Customer/User
Solution Development
(Application Engineering)
Full Software Development
Lifecycle
Solution
Solution
Development Team
Subject Matter
Experts (SMEs) Analytic Module
Development
Analytic Module
integration & validation
Validation of integrated
solution
To integrate the analytic module into a solution, the developer iterate with the solution team until they
get it working
© Fraunhofer 23
The old lifecycle: integrating analytics into solutions
Installation
and
Configuration
of Integrated
Solution
Run Time!
Customer/User
Solution Development
(Application Engineering)
Full Software Development
Lifecycle
Solution
Solution
Development Team
Subject Matter
Experts (SMEs) Analytic Module
Development
Analytic Module
integration & validation
Validation of integrated
solution
Months Later
© Fraunhofer 24
The old lifecycle: integrating analytics into solutions
Installation
and
Configuration
of Integrated
Solution
Run Time!
Customer/User
Solution Development
(Application Engineering)
Full Software Development
Lifecycle
Solution
Solution
Development Team
Subject Matter
Experts (SMEs) Analytic Module
Development
Analytic Module
integration & validation
Validation of integrated
solution
Decouple Solutions & Analytics
Empower SMEs as end-user developer
© Fraunhofer 25
n Drag & Drop to develop analytic modules,
n Reuse existing models from a catalog / MATLAB
Creating an analytic model using SME Workbench
© Fraunhofer 26
Deploying an analytic model
Analytic module integration is supported via
solution-specific SME Workbench extensions
© Fraunhofer
Greenfield approach
IOTSUITE: A TOOLKIT FOR PROTOTYPING INTERENT OF
THINGS APPLICATIONS
© Fraunhofer 28
Motivation
Different types of devices,
Platforms, Runtime systems
Heterogeneity
Node-centric programming
- Large number of devices
© Fraunhofer 29
n Separation of Concerns (reusability)
n Integration of existing DSL (reduce
complexity & effort)
n Automation wherever possible (reduce
effort)
n Macroprogramming
Our approach
Code generators
PIM
PSM
Node
PSM
…
C1 C2 Cn
…
Horizontal Separation of
Concerns
Vertical Separation of
Concerns
PIM – Platform Independent Model
PSM – Platform Specific Model
© Fraunhofer 30
IoTSuite: Overview
Domain Spec. Functional
Spec.
Deployment Spec.
Compiler Deployment Module
Generated Programming
Framework (GPL)
Android
Packages
Node.js
Packages
Java
Packages
Developer
Developer
Application
Logic (GPL)
Sensing/Actuating
Framework
© Fraunhofer 31
IoTSuite Code Editor
Syntax Coloring
IoTSuite Project
Outline / Structure View
Code Folding
Auto Completion
Error Checking
© Fraunhofer 32
IoTSuite architecture framework
Generated Architecture
Framework
Framework to write
application logic
Developer implements
interfaces in GPL to write
application logic
© Fraunhofer 33
IoTSuite User interaction generated framework
Generated User
Interaction Framework
Developer implements
interfaces in GPL to write user
interface logic
© Fraunhofer 34
IoTSuite user interaction framework
Developer implements widgets
for User interface
Android Widgets
© Fraunhofer 35
IoTSuite deployment packages
Deployment Packages
for Android Platform
Deployment Packages
for Java Platform
Deployment Packages
for Node.js Platform
PackageName = [Implementation Platform] [DeviceName][“Device”]
Example: [NodeJS][TemperatureMgmt][“Device”]
© Fraunhofer 36
IoTSuite: Platform Independent
Parser
Code generator
IoTSuite
Domain Spec. Architecture Spec. Deployment Spec.
JavaSE Android Node Python Other
System specification
(Platform independent)
Adding a new platform
as a plugin
Code generation of a
framework in a target
platform
ANTLR, a parser
generator from a
grammar
StringTemplate, a
template engine for
generating source
code
© Fraunhofer 37
IoTSuite: Platform independent
Runtime System
Device
Middleware wrapper
Generated code
For Device X
It runs on each individual device & provide
support for executing distributed tasks.
IoTSuite generates code for a device
It plugs “generated code for a device” & runtime
system. It implements interface specified in a
support library, specific to a runtime system.
Support for MQTT & iBICOOP,
© Fraunhofer 38
n Industry 4.0 software development challenges
n Fragmentation, Complexity, Lock-in
n Approach
n Middleware to abstract complexity
n Rapid application development tools to speed up innovation, prototypig
n Industry 4.0 technologies
n Node-RED – rapid prototyping toolset
n SMEWB - Closing the Gaps between Technical Experts and Software Solutions
n IoTSuite – a toolkit for prototyping Industry 4.0 applications
Summary
© Fraunhofer
THANK YOU FOR YOUR ATTENTION
Questions?
© Fraunhofer 40
Contact…
Pankesh Patel, PhD
Senior Research Scientist,
Fraunhofer USA/ Center for Experimental Software Engineering (CESE),
College Park, Maryland, USA.
Mobile: +1 240-302-3609, Fax: 240 487 2960
Email: ppatel@fc-md.umd.edu / ppatel@cese.fraunhofer.org
© Fraunhofer 41
Example: reading data from sensors
var sensorLib = require('node-dht-sensor');
var mqtt=require('mqtt');
var client=mqtt.connect('mqtt://test.mosquitto.org:1883');
var sensor = {
initialize: function () {
// here GPIO4 means pin7 and DHT22 type of sensor
return sensorLib.initialize(22, 4);
},
read: function () {
var readout = sensorLib.read();
var value={"tempValue":readout.temperature.toFixed(2),
, "humidityValue":readout.humidity.toFixed(2)};
client.publish('sensorMeasurement',JSON.stringify(value));
setTimeout(function () {
sensor.read();
}, 5000);
} };
if (sensor.initialize()) {
sensor.read(); } else { console.warn('Failed to initialize sensor');
}
APIs to read temperature values
Publishing sensed value
Connecting to MQTT Protocol
© Fraunhofer 42
High-level view of cloud approach
Web APIs
Cloud Service
Data
Visualization
Storage Data
Analysis Security
Mobile
app
Client
browser
command
receive
periodic data send
command
send
notifications
Web APIs
© Fraunhofer 43
Example: software as a service
n Azure ML
n SMEWB
n Eclipse Kura wires
n Node-RED
n Microsoft Accelerator?
n IoTSuite

Software Tools for Building Industry 4.0 Applications

  • 1.
    © Fraunhofer Pankesh Patel SOFTWARETOOLS FOR BUILDING INDUSTY 4.0 APPLICATIONS
  • 2.
    © Fraunhofer 2 nMotivation n Industry 4.0 Challenges n Our approach n Middleware n Rapid Application development tools n Technology and Tools n Node-RED n SMEWB n IoTSuite n Summary and Q&A Agenda
  • 3.
    © Fraunhofer 3 Industry4.0 challenges Fragmentation Complexity Lock-in Slide source: https://bit.ly/2OcsLLH
  • 4.
    © Fraunhofer 4 nSensor Protocols n CANBus n OPC-UA n MODBus n BLE Fragmentation n Hardware n ABB n Siemens n Intel n Standards n IIC n oneM2M n IEEE n Protocols to cloud n MQTT n CoAP n AMQP n HTTP(s) Slide source: https://bit.ly/2OcsLLH
  • 5.
    © Fraunhofer 5 nMultiple domain n Domain n Network n Functional Complexity n Integration n Heterogeneous environment n Security n Data n Sensor n Network n Maintenance n Deployment n Install n Configuration n Scale n Large number Slide source: https://bit.ly/2OcsLLH
  • 6.
    © Fraunhofer 6 nPlatform Lock-in n Hardware n Protocol(s) n Format n Communication Slide source: https://bit.ly/2OcsLLH
  • 7.
    © Fraunhofer 7 EmbracingIndustry 4.0 complexity Slide source: https://bit.ly/2OcsLLH Business Applications Sensors, Actuators, Displays, … ? @ How to accelerate the overall Industry 4.0 development process?
  • 8.
    © Fraunhofer 8 AddressingIndustry 4.0 challenges Fragmentation Complexity Lock-in OPEN, STANDARD, SOLID ARCHITECTURES ✔ ✔ ✔ Slide source: https://bit.ly/2OcsLLH
  • 9.
    © Fraunhofer 9 Approach Business Applications @ IntegrationPlatform @ Rapid prototyping tools Sensors, Actuators, HMI, SCADA, PLC Image reference: https://bit.ly/2OcsLLH
  • 10.
    © Fraunhofer 10 Brownfieldvs Greenfield approach Image source: https://iot.eclipse.org/white-papers/
  • 11.
    © Fraunhofer 11 Stateof the art – Industry 4.0 application development Programming Languages Rapid prototyping tools Cloud - Full control on AL (app logic) - More development effort - Reduce development effort - Platform-specific design (Language, Runtime) - Reduce development effort, ease of deployment & evolution (due to centralized system) - Cloud-dependent design
  • 12.
    © Fraunhofer 12 nOpen source tools (https://github.com/node-red) n Flow-based programming n Browser-based flow editor n Invented by IBM for wiring hardware devices, APIs and online services n Light-weight runtime such as Node.js n Ideal to run on edge devices n Over 2500+ ready-to-use nodes/flows n https://flows.nodered.org/ Rapid prototyping tool – Node-RED Reference: https://nodered.org/
  • 13.
    © Fraunhofer 13 Node-RedEditor Image source: https://bit.ly/2NvRR38
  • 14.
    © Fraunhofer 14 Integration– enhancing existing services Node-RED Cloud services Desktop Mobile App Enterprise network Industrial devices Reference: https://bit.ly/2xwj0xP Icon source : https://thenounproject.com/
  • 15.
    © Fraunhofer 15 Example:Node-RED integration with Freeboard Image source: https://bit.ly/2NvRR38 Freeboard (https://freeboard.io/) - Data visualization based service
  • 16.
  • 17.
    © Fraunhofer 17 nObjectives n To create, reuse, and deploy analytic algorithms in ABB products and solutions with little or no additional coding. n Subject Matter Experts (SMEs) – domain expertise but very little programming experience n Assignee : ABB Corporate Research n Reference n Karen Smiley, Pankesh Patel, Jeff Harding “From Ideas to Implementations: Closing the Gaps between Technical Experts and Software Solutions”, CSED Workshop, ICSE 2016. General background
  • 18.
    © Fraunhofer 18 nABB - industrial sensors, industrial robots, process control systems, etc. n Blending business solutions with industrial analytics that incorporate deep knowledge of ABB’s technical SMEs on equipment and verticals Motivation and Context
  • 19.
    © Fraunhofer 19 nAccelerate creation, reuse, evolution and delivery of analytic module plugins n Minimize SME (Subject Matter Expert) effort to share, evolve and reuse knowledge n Accelerate integration of analytics into ABB systems and solutions n Minimize business value of knowledge for ABB customers Key goals
  • 20.
    © Fraunhofer 20 Theold lifecycle: solution development Installation and Configuration of Integrated Solution Run Time! Customer/User Solution Development (Application Engineering) Full Software Development Lifecycle Solution Solution Development Team • Typical solution development scenario: Solution Development Team work across the full development life cycle
  • 21.
    © Fraunhofer 21 Theold lifecycle: solution & analytic development Installation and Configuration of Integrated Solution Run Time! Customer/User Solution Development (Application Engineering) Full Software Development Lifecycle Solution Solution Development Team Subject Matter Experts (SMEs) Analytic Module Development Blending business solutions and analytics, SMEs write application logic in a flowchart diagram and hire a developer. The developer iterate with SMEs to get the logic right.
  • 22.
    © Fraunhofer 22 Theold lifecycle: integrating analytics into solutions Installation and Configuration of Integrated Solution Run Time! Customer/User Solution Development (Application Engineering) Full Software Development Lifecycle Solution Solution Development Team Subject Matter Experts (SMEs) Analytic Module Development Analytic Module integration & validation Validation of integrated solution To integrate the analytic module into a solution, the developer iterate with the solution team until they get it working
  • 23.
    © Fraunhofer 23 Theold lifecycle: integrating analytics into solutions Installation and Configuration of Integrated Solution Run Time! Customer/User Solution Development (Application Engineering) Full Software Development Lifecycle Solution Solution Development Team Subject Matter Experts (SMEs) Analytic Module Development Analytic Module integration & validation Validation of integrated solution Months Later
  • 24.
    © Fraunhofer 24 Theold lifecycle: integrating analytics into solutions Installation and Configuration of Integrated Solution Run Time! Customer/User Solution Development (Application Engineering) Full Software Development Lifecycle Solution Solution Development Team Subject Matter Experts (SMEs) Analytic Module Development Analytic Module integration & validation Validation of integrated solution Decouple Solutions & Analytics Empower SMEs as end-user developer
  • 25.
    © Fraunhofer 25 nDrag & Drop to develop analytic modules, n Reuse existing models from a catalog / MATLAB Creating an analytic model using SME Workbench
  • 26.
    © Fraunhofer 26 Deployingan analytic model Analytic module integration is supported via solution-specific SME Workbench extensions
  • 27.
    © Fraunhofer Greenfield approach IOTSUITE:A TOOLKIT FOR PROTOTYPING INTERENT OF THINGS APPLICATIONS
  • 28.
    © Fraunhofer 28 Motivation Differenttypes of devices, Platforms, Runtime systems Heterogeneity Node-centric programming - Large number of devices
  • 29.
    © Fraunhofer 29 nSeparation of Concerns (reusability) n Integration of existing DSL (reduce complexity & effort) n Automation wherever possible (reduce effort) n Macroprogramming Our approach Code generators PIM PSM Node PSM … C1 C2 Cn … Horizontal Separation of Concerns Vertical Separation of Concerns PIM – Platform Independent Model PSM – Platform Specific Model
  • 30.
    © Fraunhofer 30 IoTSuite:Overview Domain Spec. Functional Spec. Deployment Spec. Compiler Deployment Module Generated Programming Framework (GPL) Android Packages Node.js Packages Java Packages Developer Developer Application Logic (GPL) Sensing/Actuating Framework
  • 31.
    © Fraunhofer 31 IoTSuiteCode Editor Syntax Coloring IoTSuite Project Outline / Structure View Code Folding Auto Completion Error Checking
  • 32.
    © Fraunhofer 32 IoTSuitearchitecture framework Generated Architecture Framework Framework to write application logic Developer implements interfaces in GPL to write application logic
  • 33.
    © Fraunhofer 33 IoTSuiteUser interaction generated framework Generated User Interaction Framework Developer implements interfaces in GPL to write user interface logic
  • 34.
    © Fraunhofer 34 IoTSuiteuser interaction framework Developer implements widgets for User interface Android Widgets
  • 35.
    © Fraunhofer 35 IoTSuitedeployment packages Deployment Packages for Android Platform Deployment Packages for Java Platform Deployment Packages for Node.js Platform PackageName = [Implementation Platform] [DeviceName][“Device”] Example: [NodeJS][TemperatureMgmt][“Device”]
  • 36.
    © Fraunhofer 36 IoTSuite:Platform Independent Parser Code generator IoTSuite Domain Spec. Architecture Spec. Deployment Spec. JavaSE Android Node Python Other System specification (Platform independent) Adding a new platform as a plugin Code generation of a framework in a target platform ANTLR, a parser generator from a grammar StringTemplate, a template engine for generating source code
  • 37.
    © Fraunhofer 37 IoTSuite:Platform independent Runtime System Device Middleware wrapper Generated code For Device X It runs on each individual device & provide support for executing distributed tasks. IoTSuite generates code for a device It plugs “generated code for a device” & runtime system. It implements interface specified in a support library, specific to a runtime system. Support for MQTT & iBICOOP,
  • 38.
    © Fraunhofer 38 nIndustry 4.0 software development challenges n Fragmentation, Complexity, Lock-in n Approach n Middleware to abstract complexity n Rapid application development tools to speed up innovation, prototypig n Industry 4.0 technologies n Node-RED – rapid prototyping toolset n SMEWB - Closing the Gaps between Technical Experts and Software Solutions n IoTSuite – a toolkit for prototyping Industry 4.0 applications Summary
  • 39.
    © Fraunhofer THANK YOUFOR YOUR ATTENTION Questions?
  • 40.
    © Fraunhofer 40 Contact… PankeshPatel, PhD Senior Research Scientist, Fraunhofer USA/ Center for Experimental Software Engineering (CESE), College Park, Maryland, USA. Mobile: +1 240-302-3609, Fax: 240 487 2960 Email: ppatel@fc-md.umd.edu / ppatel@cese.fraunhofer.org
  • 41.
    © Fraunhofer 41 Example:reading data from sensors var sensorLib = require('node-dht-sensor'); var mqtt=require('mqtt'); var client=mqtt.connect('mqtt://test.mosquitto.org:1883'); var sensor = { initialize: function () { // here GPIO4 means pin7 and DHT22 type of sensor return sensorLib.initialize(22, 4); }, read: function () { var readout = sensorLib.read(); var value={"tempValue":readout.temperature.toFixed(2), , "humidityValue":readout.humidity.toFixed(2)}; client.publish('sensorMeasurement',JSON.stringify(value)); setTimeout(function () { sensor.read(); }, 5000); } }; if (sensor.initialize()) { sensor.read(); } else { console.warn('Failed to initialize sensor'); } APIs to read temperature values Publishing sensed value Connecting to MQTT Protocol
  • 42.
    © Fraunhofer 42 High-levelview of cloud approach Web APIs Cloud Service Data Visualization Storage Data Analysis Security Mobile app Client browser command receive periodic data send command send notifications Web APIs
  • 43.
    © Fraunhofer 43 Example:software as a service n Azure ML n SMEWB n Eclipse Kura wires n Node-RED n Microsoft Accelerator? n IoTSuite