SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
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!

Contenu connexe

Similaire à Dataflow-based heterogeneous code generator for IoT applications

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
 

Similaire à 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
 

Plus de 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
 

Plus de 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
 

Dernier

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
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...Drew Madelung
 
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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
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 WorkerThousandEyes
 
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)wesley chun
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 

Dernier (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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...
 
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...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
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
 
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)
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 

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!