skip to main content
10.1145/3677995.3678197acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
research-article

The Benefits of Tierless Elixir/Potato for Engineering IoT Systems

Published: 28 August 2024 Publication History

Abstract

IoT systems are increasingly pervasive, and developing, maintaining and ensuring the reliability of the software is challenging. IoT software is conventionally structured in multiple distributed tiers, where tiers use different programming languages and components that must interoperate. One way to minimise this complexity is to use a single tierless language to specify the entire IoT system. Tierless IoT languages require extremely sophisticated implementations, and are new and rare. A previous study compared two Clean-based tierless implementations of a smart campus IoT system (CRS and CWS) with two conventional tiered Python implementations (PRS and PWS). It showed that tierless languages dramatically reduce development effort. This paper describes a new implementation of the smart campus system in the Elixir/Potato tierless language (ERS), and compares ERS with the other implementations to show the following. (1) We provide further evidence that using a tierless IoT language reduces development effort. (2) We provide the first ever comparative study of two fundamentally different tierless IoT languages, i.e. we compare Elixir/Potato with Clean/iTask(mTask) using the ERS and CRS/CWS case studies. (3) We provide the first ever analysis of the software engineering costs of providing failure management in a tierless IoT language.

References

[1]
D. Anandayuvaraj and J. C. Davis. 2022. Reflecting on Recurring Failures in IoT Development. Proc. IEEE/ACM International Conference on Automated Software Engineering ( 2022 ), 1-5. 10.1145/3551349. 3559545
[2]
T. H. Brus, M. C. J. D. van Eekelen, M. O. van Leer, and M. J. Plasmeijer. 1987. Clean-A language for functional graph rewriting. In Functional Programming Languages and Computer Architecture, Gilles Kahn (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg, 364-384. https://doi. org/10.1007/3-540-18317-5_20
[3]
Ezra Cooper, Sam Lindley, Philip Wadler, and Jeremy Yallop. 2007. Links: Web programming without tiers. Formal Methods for Components and Objects, Springer, Berlin ( 2007 ), 266-296. https://doi.org/10. 1007/978-3-540-74792-5_12
[4]
Christophe de Troyer, Jens Nicolay, and Wolfgang de Meuter. 2018. Building IoT Systems Using Distributed First-Class Reactive Programming. 2018 IEEE International Conference on Cloud Computing Technology and Science (CloudCom) ( 2018 ), 185-192. https://doi.org/10.1109/ CloudCom2018. 2018.00045
[5]
László Domoszlai, Bas Lijnse, and Rinus Plasmeijer. 2014. Parametric Lenses: Change Notification for Bidirectional Lenses. In Proc. Int. Symposium on Implementation and Application of Functional Languages (IFL '14). ACM, New York, NY, USA. https://doi.org/10.1145/2746325. 2746333 event-place: Boston, MA, USA.
[6]
Trevor Elliott et al. 2015. Guilt Free Ivory. In Proc. ACM SIGPLAN Symposium on Haskell (Vancouver, BC, Canada) (Haskell ' 15 ). Association for Computing Machinery, New York, NY, USA, 189-200. https://doi.org/10.1145/2804302.2804318
[7]
Geovane Fedrecheski, Laisa CP Costa, and Marcelo K Zufo. 2016. Elixir programming language evaluation for IoT. In 2016 IEEE International Symposium on Consumer Electronics (ISCE). IEEE, 105-106.
[8]
Kristian Hentschel, Dejice Jacob, Jeremy Singer, and Matthew Chalmers. 2016. Supersensors: Raspberry Pi devices for smart campus infrastructure. In 2016 IEEE 4th International Conference on Future Internet of Things and Cloud (FiCloud). IEEE, 58-62. https: //doi.org/10.1109/FiCloud. 2016.16
[9]
Joey Hess. 2020. arduino-copilot: Arduino programming in Haskell using the Copilot stream DSL. //hackage.haskell.org/package/arduinocopilot
[10]
Igor Kopestenski and Peter Van Roy. 2019. Erlang as an enabling technology for resilient general-purpose applications on edge IoT networks. In Proc. ACM SIGPLAN Int. Workshop on Erlang. 1-12.
[11]
Mart Lubbers, Pieter Koopman, and Rinus Plasmeijer. 2019. Interpreting Task Oriented Programs on Tiny Computers. In Implementation and Application of Functional Languages (IFL '19). ACM, Singapore, 1-12. https://doi.org/10.1145/3412932.3412936
[12]
Mart Lubbers, Pieter Koopman, Adrian Ramsingh, Jeremy Singer, and Phil Trinder. 2023. Could Tierless Languages Reduce IoT Development Grief. ACM Trans. Internet Things 4, 1 ( February 2023 ) ( 2023 ), 6 : 1-6 : 35. https://doi.org/10.1145/3572901
[13]
Mart Lubbers, Pieter W. M. Koopman, Adrian Ramsingh, Jeremy Singer, and Phil Trinder. 2020. Tiered versus tierless IoT stacks: comparing smart campus software architectures. In IoT '20, Malmö, Sweden, October 6-9, 2020. ACM, 21 : 1-21 :9. https://doi.org/10.1145/3410992.3411002
[14]
Rinus Plasmeijer et al. 2012. Task-Oriented Programming in a Pure Functional Language. In Proc. Symposium on Principles and Practice of Declarative Programming (Leuven, Belgium) (PPDP '12). Association for Computing Machinery, New York, NY, USA, 195-206. https://doi. org/10.1145/2370776.2370801
[15]
D. Ratasich, F. Khalid, F. Geissler, R. Grosu, M. Shafique, and E. Bartocci. 2019. A Roadmap Toward the Resilient Internet of Things for CyberPhysical Systems. IEEE Access 7 ( 2019 ), 13260-13283. 10.1109/ACCESS. 2019.2891969
[16]
Arvind Ravulavaru. 2018. Enterprise internet of things handbook : build end-to-end IoT solutions using popular IoT platforms. Packt Publishing, Birmingham, UK.
[17]
J. Rosenberg. 1997. Some misconceptions about lines of code. In International Software Metrics Symposium. 137-142. https://doi.org/10. 1109/METRIC. 1997.637174
[18]
Abhiroop Sarkar and Mary Sheeran. 2020. Hailstorm: A StaticallyTyped, Purely Functional Language for IoT Applications. In Proc. Principles and Practice of Declarative Programming (Bologna, Italy) (PPDP '20). ACM. https://doi.org/10.1145/3414080.3414092
[19]
Manuel Serrano, Erick Gallesio, and Florian Loitsch. 2006. Hop: A language for programming the web 2.0. Proc. Object-Oriented Programming Systems, Languages, and Applications (OOPSLA Companion'06) ACM, Portland, Oregon, USA ( 2006 ), 975-985.
[20]
Alessandro Sivieri, Luca Mottola, and Gianpaolo Cugola. 2012. Drop the phone and talk to the physical world: Programming the internet of things with Erlang. In Workshop on Software Engineering for Sensor Network Applications (SESENA). IEEE, 8-14.
[21]
Christophe De Troyer. 2022. A meta-level architecture for stream-based programming languages and its applications in cyber-physical systems. Ph. D. Dissertation. Vrije Universiteit Brussel, Belgium.
[22]
Christophe De Troyer, Jens Nicolay, and Wolfgang De Meuter. 2017. First-class reactive programs for CPS. Proc. ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems (October 2017 ) ( 2017 ), 21-26.
[23]
Nachiappan Valliappan et al. 2020. Towards Secure IoT Programming in Haskell. In Proc. ACM SIGPLAN International Symposium on Haskell. Association for Computing Machinery, New York, NY, USA, 136-150. https://doi.org/10.1145/3406088.3409027
[24]
Pascal Weisenburger, Johannes Wirth, and Guido Salvaneschi. 2020. A Survey of Multitier Programming. ACM Comput. Surv. 53, 4 ( September 2020 ) ( 2020 ), 81 : 1-81 : 35. https://doi.org/10.1145/3397495

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
Erlang 2024: Proceedings of the 23rd ACM SIGPLAN International Workshop on Erlang
August 2024
107 pages
ISBN:9798400710988
DOI:10.1145/3677995
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 28 August 2024

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Distributed System
  2. Elixir
  3. IoT

Qualifiers

  • Research-article

Conference

Erlang '24
Sponsor:

Acceptance Rates

Overall Acceptance Rate 51 of 68 submissions, 75%

Upcoming Conference

ICFP '25
ACM SIGPLAN International Conference on Functional Programming
October 12 - 18, 2025
Singapore , Singapore

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 73
    Total Downloads
  • Downloads (Last 12 months)73
  • Downloads (Last 6 weeks)9
Reflects downloads up to 13 Jan 2025

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media