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 apps

SDN, OpenFlow, NFV, and Virtual Network
SDN, OpenFlow, NFV, and Virtual NetworkSDN, OpenFlow, NFV, and Virtual Network
SDN, OpenFlow, NFV, and Virtual NetworkTim4PreStartup
 
Eric Theis resume61.1
Eric Theis resume61.1Eric Theis resume61.1
Eric Theis resume61.1Eric Theis
 
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 sonujoseSonu Jose
 
Internet of things (IoT) with Azure
Internet of things (IoT) with AzureInternet of things (IoT) with Azure
Internet of things (IoT) with AzureVinoth Rajagopalan
 
Pearce Barry Resume
Pearce Barry ResumePearce Barry Resume
Pearce Barry ResumePearce Barry
 
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...mCloud
 
Resume_Appaji
Resume_AppajiResume_Appaji
Resume_AppajiAppaji K
 
Akshay Sanjay Kale Resume LinkedIn
Akshay Sanjay Kale Resume LinkedInAkshay Sanjay Kale Resume LinkedIn
Akshay Sanjay Kale Resume LinkedInAkshay Kale
 
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 AzureVinoth Rajagopalan
 
AGILE software, devices and wider ecosystem
AGILE software, devices and wider ecosystemAGILE software, devices and wider ecosystem
AGILE software, devices and wider ecosystemAGILE IoT
 
Kamil Kolodziejski_Structura-AWS.pptx
Kamil Kolodziejski_Structura-AWS.pptxKamil Kolodziejski_Structura-AWS.pptx
Kamil Kolodziejski_Structura-AWS.pptxAWS Chicago
 
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 woodardEurotech
 
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: SDNJeremy Schulman
 
Survey of open source cloud architectures
Survey of open source cloud architecturesSurvey of open source cloud architectures
Survey of open source cloud architecturesabhinav vedanbhatla
 
ElixirでFPGAを設計する
ElixirでFPGAを設計するElixirでFPGAを設計する
ElixirでFPGAを設計するHideki Takase
 
Onos overview meetup sdn paris - redux
Onos overview  meetup sdn paris - reduxOnos overview  meetup sdn paris - redux
Onos overview meetup sdn paris - reduxSDN_Paris
 

Ähnlich wie Dataflow-based heterogeneous code generator for IoT apps (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

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 systemGabor Paller
 
Sigfox szenzorfejlesztéssel kapcsolatos tapasztalatok
Sigfox szenzorfejlesztéssel kapcsolatos tapasztalatokSigfox szenzorfejlesztéssel kapcsolatos tapasztalatok
Sigfox szenzorfejlesztéssel kapcsolatos tapasztalatokGabor Paller
 
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 sensorsGabor Paller
 
AgroDat poster at Sensornets 2015 conference
AgroDat poster at Sensornets 2015 conferenceAgroDat poster at Sensornets 2015 conference
AgroDat poster at Sensornets 2015 conferenceGabor Paller
 
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 EnergyGabor Paller
 
Sensor fusion between car and smartphone
Sensor fusion between car and smartphoneSensor fusion between car and smartphone
Sensor fusion between car and smartphoneGabor Paller
 
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 processingGabor Paller
 
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 fusionGabor Paller
 
Motion recognition with Android devices
Motion recognition with Android devicesMotion recognition with Android devices
Motion recognition with Android devicesGabor Paller
 
LiveFolders as feeds
LiveFolders as feedsLiveFolders as feeds
LiveFolders as feedsGabor Paller
 
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 toolGabor Paller
 
The dedexer disassembler
The dedexer disassemblerThe dedexer disassembler
The dedexer disassemblerGabor 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

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
The Evolution of Money: Digital Transformation and CBDCs in Central Banking
The Evolution of Money: Digital Transformation and CBDCs in Central BankingThe Evolution of Money: Digital Transformation and CBDCs in Central Banking
The Evolution of Money: Digital Transformation and CBDCs in Central BankingSelcen Ozturkcan
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 

Kürzlich hochgeladen (20)

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The Evolution of Money: Digital Transformation and CBDCs in Central Banking
The Evolution of Money: Digital Transformation and CBDCs in Central BankingThe Evolution of Money: Digital Transformation and CBDCs in Central Banking
The Evolution of Money: Digital Transformation and CBDCs in Central Banking
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 

Dataflow-based heterogeneous code generator for IoT apps

  • 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!