Mart Lubbers, P. Koopman, Adrian Ramsingh, Jeremy Singer, P. Trinder
{"title":"Could Tierless Languages Reduce IoT Development Grief?","authors":"Mart Lubbers, P. Koopman, Adrian Ramsingh, Jeremy Singer, P. Trinder","doi":"10.1145/3572901","DOIUrl":null,"url":null,"abstract":"Internet of Things (IoT) software is notoriously complex, conventionally comprising multiple tiers. Traditionally an IoT developer must use multiple programming languages and ensure that the components interoperate correctly. A novel alternative is to use a single tierless language with a compiler that generates the code for each component and ensures their correct interoperation. We report a systematic comparative evaluation of two tierless language technologies for IoT stacks: one for resource-rich sensor nodes (Clean with iTask) and one for resource-constrained sensor nodes (Clean with iTask and mTask). The evaluation is based on four implementations of a typical smart campus application: two tierless and two Python-based tiered. (1) We show that tierless languages have the potential to significantly reduce the development effort for IoT systems, requiring 70% less code than the tiered implementations. Careful analysis attributes this code reduction to reduced interoperation (e.g., two embedded domain-specific languages and one paradigm versus seven languages and two paradigms), automatically generated distributed communication, and powerful IoT programming abstractions. (2) We show that tierless languages have the potential to significantly improve the reliability of IoT systems, describing how Clean iTask/mTask maintains type safety, provides higher-order failure management, and simplifies maintainability. (3) We report the first comparison of a tierless IoT codebase for resource-rich sensor nodes with one for resource-constrained sensor nodes. The comparison shows that they have similar code size (within 7%), and functional structure. (4) We present the first comparison of two tierless IoT languages, one for resource-rich sensor nodes and the other for resource-constrained sensor nodes.","PeriodicalId":29764,"journal":{"name":"ACM Transactions on Internet of Things","volume":null,"pages":null},"PeriodicalIF":3.5000,"publicationDate":"2022-11-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM Transactions on Internet of Things","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3572901","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q2","JCRName":"COMPUTER SCIENCE, INFORMATION SYSTEMS","Score":null,"Total":0}
引用次数: 1
Abstract
Internet of Things (IoT) software is notoriously complex, conventionally comprising multiple tiers. Traditionally an IoT developer must use multiple programming languages and ensure that the components interoperate correctly. A novel alternative is to use a single tierless language with a compiler that generates the code for each component and ensures their correct interoperation. We report a systematic comparative evaluation of two tierless language technologies for IoT stacks: one for resource-rich sensor nodes (Clean with iTask) and one for resource-constrained sensor nodes (Clean with iTask and mTask). The evaluation is based on four implementations of a typical smart campus application: two tierless and two Python-based tiered. (1) We show that tierless languages have the potential to significantly reduce the development effort for IoT systems, requiring 70% less code than the tiered implementations. Careful analysis attributes this code reduction to reduced interoperation (e.g., two embedded domain-specific languages and one paradigm versus seven languages and two paradigms), automatically generated distributed communication, and powerful IoT programming abstractions. (2) We show that tierless languages have the potential to significantly improve the reliability of IoT systems, describing how Clean iTask/mTask maintains type safety, provides higher-order failure management, and simplifies maintainability. (3) We report the first comparison of a tierless IoT codebase for resource-rich sensor nodes with one for resource-constrained sensor nodes. The comparison shows that they have similar code size (within 7%), and functional structure. (4) We present the first comparison of two tierless IoT languages, one for resource-rich sensor nodes and the other for resource-constrained sensor nodes.
众所周知,物联网(IoT)软件非常复杂,通常由多层组成。传统上,物联网开发人员必须使用多种编程语言,并确保组件正确互操作。一种新颖的替代方案是使用单一的无层语言和编译器,该编译器为每个组件生成代码并确保它们的正确互操作。我们报告了物联网堆栈的两种无层语言技术的系统比较评估:一种用于资源丰富的传感器节点(Clean with iTask),另一种用于资源受限的传感器节点(Clean with iTask和mTask)。评估基于典型智能校园应用的四种实现:两种分层和两种基于python的分层。(1)我们表明,分层语言有可能显著减少物联网系统的开发工作量,比分层实现所需的代码少70%。仔细分析将这种代码减少归因于减少的互操作性(例如,两种嵌入式领域特定语言和一种范式,而不是七种语言和两种范式),自动生成的分布式通信以及强大的物联网编程抽象。(2)我们表明,分层语言具有显著提高物联网系统可靠性的潜力,描述了Clean iTask/mTask如何维护类型安全,提供高阶故障管理,并简化可维护性。(3)我们报告了针对资源丰富的传感器节点的无层物联网代码库与针对资源受限的传感器节点的代码库的首次比较。对比表明,它们的代码大小(在7%以内)和功能结构相似。(4)我们首次比较了两种无层次物联网语言,一种用于资源丰富的传感器节点,另一种用于资源受限的传感器节点。