SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
Dataflow-based heterogeneous code
generator for IoT applications
Gábor Paller1
Endri Bezati2
Nebojša Taušan1
Gábor Farkas1
Gábor Élő1
(1) Széchenyi István University, ISREG (Hungary)
(2) streamgenomics Sarl (Switzerland)
“The Internet of things (IoT) is the network of
devices such as vehicles, and home appliances
that contain electronics, software, sensors,
actuators, and connectivity which allows these
things to connect, interact and exchange data.”
(Wikipedia)
Heterogeneity
● Heterogeneity of devices
– Vertical: amount of resources (memory, CPU power,
etc.) that the device has
– Horizontal: differences of the services provided by
the device (e.g. WiFi)
● Heterogeneity of the platforms
– No dominant IoT platform as of beginning of 2019
– Each IoT platform requires different coding style
Research question
● Can we do it model-based?
– Model suitable for how IoT domain experts think
● IoT domain experts: factory engineers, civil engineers, automation
designers …
● Software/hardware engineers also come into the picture when the
actual IoT system is designed/implemented
● Can we generate code?
– Instead of just creating the 1000th IoT platform
– Possibility of supporting any IoT platform/device
– And any mixture of those (like parallel code generation for a
number of devices/platforms)
Reality check
Design environment: Tridium Niagara, source: CC North Ltd. © 2015
Search for a base system
● Systems studied: Node-RED, Internet of Things Work-bench (IBM),
Spacebrew, TASTE, Caméléon, Vorto, ANKHOR FlowSheet, Orcc
● Models studied: data-flow, component-based
● Orcc (http://orcc.sourceforge.net/) was selected:
– It is completely open-source under the BSD license.
– Its compiler backends are able to generate code for a wide variety of targets
from FPGAs to relatively high-end runtimes like Java.
– Orcc does not enforce any mandatory runtime unlike systems like Node-RED
enforces web runtime. 2 .
– It is based on the Eclipse platform that makes it highly extensible.
– Its data formats have been standardised (ISO/IEC, 2012). This standard
describes the dataflow network’s representation in XML format that Orcc
implements.
Orcc Environment
Typical CAL working environment
Package Explorer: Orcc Projects
XDF : Network Editor
CAL source code editor
Orcc Environment
1. consumption & production of tokens 2. state
3. multiple actions
4. guards
5. priorities
Motivation & Introduction: CAL Dataflow – crash course
actor Add () A, B ==> X:
   
   action A:[a], B:[b] ==> X:[a+b] end
end
actor Merge() A, B ==> X:
   action A:[a] ==> X:[a] end
   action B:[b] ==> X:[b] end
end
actor Split() A ==> P, N:
   action A:[a] ==> P:[a] 
   guard a >= 0 end
   action A:[a] ==> N:[­a]
   guard a < 0 end
end
actor Sum() A ==> X:
   s := 0;
   
   action A:[a] ==> X:[s] 
   do
      s:= s + a;
   end
   
end
actor BiasedMerge() A, B ==> X:
   CopyA:  action A:[a] ==> X:[a] end
   CopyB:  action B:[b] ==> X:[b] end
   priority CopyA > CopyB; end
end
actor FSM() A, B ==> X:
   Pos:  action A:[a] ==> X:[a] end
   Neg:  action B:[a] ==> X:[­a] end
   schedule fsm s0:
s0 (Pos) ­­> s1;
s1 (Neg) ­­> s0;
   end
end
5. Finite State Machine
Motivation & Introduction
Orcc-IoT
● Gaps:
– Orcc backend is homogeneous (all the code is generated
by one code generator) – this does not satisfy the
heterogeneity requirement
– Code generators more suitable for IoT:
● Server-side Java (Spring flavour was selected)
● Plain Java (once supported by Orcc but removed since)
● Embedded C (supported by Orcc but does not generate
communication code with the server)
– Actor library (might be possible to realize with Eclipse
features)
Describing the heterogeneity
Describing the heterogeneity (2)
Subgraph creation - before
Subgraph creation - after
Current state of implementation
● Heterogeneous compiler implemented
– Consumes the hardware description
– Cuts the data-flow graph into pieces
– Inserts ports
– Invokes backends
● Spring-Java backend implemented
– Generates server-side Java code (Spring flavour)
– Integrates with Azure cloud (event queues, container generation, deploy
scripts …)
● Plain Java backend reinserted
– Generates code that talks to the server code generated by Spring-Java
backend
Architecture of the generated code
Azure cloud
Docker
container
image
Docker container
Websocket
adapter
Azure
EventQueue #1
Azure
EventQueue #2
Azure
EventQueue #3
Code
generated from
the CAL network
JVM
Code
generated
from the
CAL
subnetwork
Websocket
connection
Generated by plain Java backend Generated by Spring-Java backend
ToDo
● Project ends at 30th of June, 2019
● Till then:
– C backend (part of Orcc) needs to be brought into
the architecture
– Actor library
– Complete pilot project
● An entire real-world IoT project implemented with Orcc-
IoT
The day after
● The entire project will be open-source
– Currently hosted on gitlab.com but as a private
repository
● Ready to pass the baton to interested parties
Demo at 22nd
of February, morning session!

Weitere ähnliche Inhalte

Ähnlich wie Dataflow-based heterogeneous code generator for IoT applications

Resume_Appaji
Resume_AppajiResume_Appaji
Resume_Appaji
Appaji K
 
Akshay Sanjay Kale Resume LinkedIn
Akshay Sanjay Kale Resume LinkedInAkshay Sanjay Kale Resume LinkedIn
Akshay Sanjay Kale Resume LinkedIn
Akshay Kale
 
Survey of open source cloud architectures
Survey of open source cloud architecturesSurvey of open source cloud architectures
Survey of open source cloud architectures
abhinav vedanbhatla
 

Ähnlich wie Dataflow-based heterogeneous code generator for IoT applications (20)

SDN, OpenFlow, NFV, and Virtual Network
SDN, OpenFlow, NFV, and Virtual NetworkSDN, OpenFlow, NFV, and Virtual Network
SDN, OpenFlow, NFV, and Virtual Network
 
Eric Theis resume61.1
Eric Theis resume61.1Eric Theis resume61.1
Eric Theis resume61.1
 
Internet of things at the Edge with Azure IoT Edge by sonujose
Internet of things at the Edge with Azure IoT Edge by sonujoseInternet of things at the Edge with Azure IoT Edge by sonujose
Internet of things at the Edge with Azure IoT Edge by sonujose
 
Internet of things (IoT) with Azure
Internet of things (IoT) with AzureInternet of things (IoT) with Azure
Internet of things (IoT) with Azure
 
Pearce Barry Resume
Pearce Barry ResumePearce Barry Resume
Pearce Barry Resume
 
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
 
C# on a CHIPs
C# on a CHIPsC# on a CHIPs
C# on a CHIPs
 
Resume_Appaji
Resume_AppajiResume_Appaji
Resume_Appaji
 
Omnet++
Omnet++Omnet++
Omnet++
 
Akshay Sanjay Kale Resume LinkedIn
Akshay Sanjay Kale Resume LinkedInAkshay Sanjay Kale Resume LinkedIn
Akshay Sanjay Kale Resume LinkedIn
 
Global Azure boot camp 2015 - Microsoft IoT Solutions with Azure
Global Azure boot camp 2015 - Microsoft IoT Solutions with AzureGlobal Azure boot camp 2015 - Microsoft IoT Solutions with Azure
Global Azure boot camp 2015 - Microsoft IoT Solutions with Azure
 
AGILE software, devices and wider ecosystem
AGILE software, devices and wider ecosystemAGILE software, devices and wider ecosystem
AGILE software, devices and wider ecosystem
 
Kamil Kolodziejski_Structura-AWS.pptx
Kamil Kolodziejski_Structura-AWS.pptxKamil Kolodziejski_Structura-AWS.pptx
Kamil Kolodziejski_Structura-AWS.pptx
 
Unit 1(sem-iv)
Unit 1(sem-iv)Unit 1(sem-iv)
Unit 1(sem-iv)
 
Eclipse kura in industry 4.0 david woodard
Eclipse kura in industry 4.0   david woodardEclipse kura in industry 4.0   david woodard
Eclipse kura in industry 4.0 david woodard
 
Technologies Need to Know
Technologies Need to KnowTechnologies Need to Know
Technologies Need to Know
 
A Networking View for the DevOps Crew: SDN
A Networking View for the DevOps Crew: SDNA Networking View for the DevOps Crew: SDN
A Networking View for the DevOps Crew: SDN
 
Survey of open source cloud architectures
Survey of open source cloud architecturesSurvey of open source cloud architectures
Survey of open source cloud architectures
 
ElixirでFPGAを設計する
ElixirでFPGAを設計するElixirでFPGAを設計する
ElixirでFPGAを設計する
 
Onos overview meetup sdn paris - redux
Onos overview  meetup sdn paris - reduxOnos overview  meetup sdn paris - redux
Onos overview meetup sdn paris - redux
 

Mehr von Gabor Paller

Mehr von Gabor Paller (12)

Towards a floating plastic waste early warning system
Towards a floating plastic waste early warning systemTowards a floating plastic waste early warning system
Towards a floating plastic waste early warning system
 
Sigfox szenzorfejlesztéssel kapcsolatos tapasztalatok
Sigfox szenzorfejlesztéssel kapcsolatos tapasztalatokSigfox szenzorfejlesztéssel kapcsolatos tapasztalatok
Sigfox szenzorfejlesztéssel kapcsolatos tapasztalatok
 
Energy-efficient operation of GSM-connected infrared rodent sensors
Energy-efficient operation of GSM-connected infrared rodent sensorsEnergy-efficient operation of GSM-connected infrared rodent sensors
Energy-efficient operation of GSM-connected infrared rodent sensors
 
AgroDat poster at Sensornets 2015 conference
AgroDat poster at Sensornets 2015 conferenceAgroDat poster at Sensornets 2015 conference
AgroDat poster at Sensornets 2015 conference
 
Connect your Android to the real world with Bluetooth Low Energy
Connect your Android to the real world with Bluetooth Low EnergyConnect your Android to the real world with Bluetooth Low Energy
Connect your Android to the real world with Bluetooth Low Energy
 
Sensor fusion between car and smartphone
Sensor fusion between car and smartphoneSensor fusion between car and smartphone
Sensor fusion between car and smartphone
 
Advantages and limitations of PhoneGap for sensor processing
Advantages and limitations of PhoneGap for sensor processingAdvantages and limitations of PhoneGap for sensor processing
Advantages and limitations of PhoneGap for sensor processing
 
Better motion control using accelerometer/gyroscope sensor fusion
Better motion control using accelerometer/gyroscope sensor fusionBetter motion control using accelerometer/gyroscope sensor fusion
Better motion control using accelerometer/gyroscope sensor fusion
 
Motion recognition with Android devices
Motion recognition with Android devicesMotion recognition with Android devices
Motion recognition with Android devices
 
LiveFolders as feeds
LiveFolders as feedsLiveFolders as feeds
LiveFolders as feeds
 
Understanding the Dalvik bytecode with the Dedexer tool
Understanding the Dalvik bytecode with the Dedexer toolUnderstanding the Dalvik bytecode with the Dedexer tool
Understanding the Dalvik bytecode with the Dedexer tool
 
The dedexer disassembler
The dedexer disassemblerThe dedexer disassembler
The dedexer disassembler
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 

Dataflow-based heterogeneous code generator for IoT applications

  • 1. Dataflow-based heterogeneous code generator for IoT applications Gábor Paller1 Endri Bezati2 Nebojša Taušan1 Gábor Farkas1 Gábor Élő1 (1) Széchenyi István University, ISREG (Hungary) (2) streamgenomics Sarl (Switzerland)
  • 2. “The Internet of things (IoT) is the network of devices such as vehicles, and home appliances that contain electronics, software, sensors, actuators, and connectivity which allows these things to connect, interact and exchange data.” (Wikipedia)
  • 3. Heterogeneity ● Heterogeneity of devices – Vertical: amount of resources (memory, CPU power, etc.) that the device has – Horizontal: differences of the services provided by the device (e.g. WiFi) ● Heterogeneity of the platforms – No dominant IoT platform as of beginning of 2019 – Each IoT platform requires different coding style
  • 4. Research question ● Can we do it model-based? – Model suitable for how IoT domain experts think ● IoT domain experts: factory engineers, civil engineers, automation designers … ● Software/hardware engineers also come into the picture when the actual IoT system is designed/implemented ● Can we generate code? – Instead of just creating the 1000th IoT platform – Possibility of supporting any IoT platform/device – And any mixture of those (like parallel code generation for a number of devices/platforms)
  • 5. Reality check Design environment: Tridium Niagara, source: CC North Ltd. © 2015
  • 6. Search for a base system ● Systems studied: Node-RED, Internet of Things Work-bench (IBM), Spacebrew, TASTE, Caméléon, Vorto, ANKHOR FlowSheet, Orcc ● Models studied: data-flow, component-based ● Orcc (http://orcc.sourceforge.net/) was selected: – It is completely open-source under the BSD license. – Its compiler backends are able to generate code for a wide variety of targets from FPGAs to relatively high-end runtimes like Java. – Orcc does not enforce any mandatory runtime unlike systems like Node-RED enforces web runtime. 2 . – It is based on the Eclipse platform that makes it highly extensible. – Its data formats have been standardised (ISO/IEC, 2012). This standard describes the dataflow network’s representation in XML format that Orcc implements.
  • 7. Orcc Environment Typical CAL working environment Package Explorer: Orcc Projects XDF : Network Editor CAL source code editor Orcc Environment
  • 8. 1. consumption & production of tokens 2. state 3. multiple actions 4. guards 5. priorities Motivation & Introduction: CAL Dataflow – crash course actor Add () A, B ==> X:        action A:[a], B:[b] ==> X:[a+b] end end actor Merge() A, B ==> X:    action A:[a] ==> X:[a] end    action B:[b] ==> X:[b] end end actor Split() A ==> P, N:    action A:[a] ==> P:[a]     guard a >= 0 end    action A:[a] ==> N:[­a]    guard a < 0 end end actor Sum() A ==> X:    s := 0;        action A:[a] ==> X:[s]     do       s:= s + a;    end     end actor BiasedMerge() A, B ==> X:    CopyA:  action A:[a] ==> X:[a] end    CopyB:  action B:[b] ==> X:[b] end    priority CopyA > CopyB; end end actor FSM() A, B ==> X:    Pos:  action A:[a] ==> X:[a] end    Neg:  action B:[a] ==> X:[­a] end    schedule fsm s0: s0 (Pos) ­­> s1; s1 (Neg) ­­> s0;    end end 5. Finite State Machine Motivation & Introduction
  • 9. Orcc-IoT ● Gaps: – Orcc backend is homogeneous (all the code is generated by one code generator) – this does not satisfy the heterogeneity requirement – Code generators more suitable for IoT: ● Server-side Java (Spring flavour was selected) ● Plain Java (once supported by Orcc but removed since) ● Embedded C (supported by Orcc but does not generate communication code with the server) – Actor library (might be possible to realize with Eclipse features)
  • 14. Current state of implementation ● Heterogeneous compiler implemented – Consumes the hardware description – Cuts the data-flow graph into pieces – Inserts ports – Invokes backends ● Spring-Java backend implemented – Generates server-side Java code (Spring flavour) – Integrates with Azure cloud (event queues, container generation, deploy scripts …) ● Plain Java backend reinserted – Generates code that talks to the server code generated by Spring-Java backend
  • 15. Architecture of the generated code Azure cloud Docker container image Docker container Websocket adapter Azure EventQueue #1 Azure EventQueue #2 Azure EventQueue #3 Code generated from the CAL network JVM Code generated from the CAL subnetwork Websocket connection Generated by plain Java backend Generated by Spring-Java backend
  • 16. ToDo ● Project ends at 30th of June, 2019 ● Till then: – C backend (part of Orcc) needs to be brought into the architecture – Actor library – Complete pilot project ● An entire real-world IoT project implemented with Orcc- IoT
  • 17. The day after ● The entire project will be open-source – Currently hosted on gitlab.com but as a private repository ● Ready to pass the baton to interested parties
  • 18. Demo at 22nd of February, morning session!