The AbU Language: IoT Distributed Programming Made Easy

被引:3
|
作者
Pasqua, Michele [1 ]
Comuzzo, Massimo [2 ]
Miculan, Marino [2 ]
机构
[1] Univ Verona, Dept Comp Sci, I-37134 Verona, Italy
[2] Univ Udine, Dept Math Comp Sci & Phys, I-33100 Udine, Italy
关键词
IoT programming; ECA rules; attribute-based memory updates; distributed systems; edge computing; domain specific language; ECA RULES; VERIFICATION; CALCULUS;
D O I
10.1109/ACCESS.2022.3230287
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Event-driven programming based on Event-Condition-Action (ECA) rules allows users to define complex automation routines in a simple, declarative way; for this reason, in recent years ECA rules have been adopted by the majority of companies in the Internet of Things (IoT) industry as a promising paradigm for implementing ubiquitous and pervasive systems. Unfortunately, programming simplicity comes to a price: most implementations of ECA rules are bound to a strongly centralized communication infrastructure, that poses serious limitations on the application scenarios for the IoT, due to scalability, security and availability issues. To mitigate these issues, recent works introduced abstractions for communication and coordination of ensembles of IoT devices in a decentralized setting, effectively moving the computation towards the edge of the network without sacrificing the programming simplicity prerogative of ECA rules. In particular, Attribute-based memory Updates is a communication model transparently enhancing ECA rules-based systems with an interaction mechanism where communication is similar to broadcast but actual receivers are selected on the spot, by means of predicates (i.e., properties) over devices attributes. In this paper, we introduce AbU-dsl, a Domain Specific Language for the IoT that compiles on top of an implementation of Attribute-based memory Updates. In this way, AbU-dsl provides a practical development interface, based on ECA rules, to effectively program IoT devices in a fully decentralized setting, by exploiting a full-fledged attribute-based interaction model. Thus, programmers can specify interactions between devices in a declarative way, abstracting from details such as devices identity, number, or even their existence, without the need for a central controlling service.
引用
收藏
页码:132763 / 132776
页数:14
相关论文
共 50 条
  • [41] BEYOND DOS - WINDOWS AND OS/2 - WINDOWS PROGRAMMING MADE EASY
    HELLER, M
    BYTE, 1991, 16 (03): : 326 - 329
  • [42] Program Control Language: a programming language for adaptive distributed applications
    Ensink, B
    Stanley, J
    Adve, V
    JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, 2003, 63 (11) : 1082 - 1104
  • [43] Programming language impact on the development of distributed systems
    Ghosh, Debasish
    Sheehy, Justin
    Thorup, Kresten Krab
    Vinoski, Steve
    JOURNAL OF INTERNET SERVICES AND APPLICATIONS, 2012, 3 : 23 - 30
  • [44] ORCA - A LANGUAGE FOR PARALLEL PROGRAMMING OF DISTRIBUTED SYSTEMS
    BAL, HE
    KAASHOEK, MF
    TANENBAUM, AS
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1992, 18 (03) : 190 - 205
  • [45] Formal language for programming with distributed resources and scopes
    Wang, Xu
    Huang, Tao
    Feng, Yu-Lin
    2001, Chinese Academy of Sciences (12):
  • [46] Programming language interoperability in distributed computing environments
    Jacobsen, HA
    DISTRIBUTED APPLICATIONS AND INTEROPERABLE SYSTEMS II, 1999, 15 : 287 - 300
  • [47] Compiler to interpreter: experiences with a distributed programming language
    Gebala, RM
    McNamee, CM
    Olsson, RA
    SOFTWARE-PRACTICE & EXPERIENCE, 2001, 31 (09): : 893 - 909
  • [48] FACILITATING MIXED LANGUAGE PROGRAMMING IN DISTRIBUTED SYSTEMS
    HAYES, R
    SCHLICHTING, RD
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1987, 13 (12) : 1254 - 1264
  • [49] The join calculus: A language for distributed mobile programming
    Fournet, C
    Gonthier, G
    APPLIED SEMANTICS, 2002, 2395 : 268 - 332
  • [50] A distributed and probabilistic concurrent constraint programming language
    Bortolussi, L
    Wiklicky, H
    LOGIC PROGRAMMING, PROCEEDINGS, 2005, 3668 : 143 - 158