Source code accompanying the paper:M. Lubbers, P. Koopman, A. Ramsingh, J. Singer, and P. Trinder, ‘Tiered versus Tierless IoT Stacks: Comparing Smart Campus Software Architectures’, presented at the 10th International Conference on the Internet of Things, Malmö, 2020, doi: 10.1145/3410992.3411002.Abstract:Internet of Things (IoT) software stacks are notoriously complex, conventionally comprising multiple tiers/components and requiring that the developer not only uses multiple programming languages, but also correctly interoperate the components. A novel alternative is to use a single tierless language with a compiler that generates the code for each component, and for their correct interoperation.We report the first ever systematic comparison of tiered and tierless IoT software architectures. The comparison is based on two implementations of a non-trivial smart campus application. PRSS has a conventional tiered Python-based architecture, and Clean Wemos Super Sensors (CWSS) has a novel tierless architecture based on Clean and the iTask and mTask embedded DSLs. An operational comparison of CWSS and PRSS demonstrates that they have equivalent functionality, and that both meet the University of Glasgow (UoG) smart campus requirements.Crucially, the tierless CWSS stack requires 70% less code than the tiered PRSS stack. We analyse the impact of the following three main factors. (1) Tierless developers need to manage less interoperation: CWSS uses two DSLs in a single paradigm where PRSS uses five languages and three paradigms. (2) Tierless developers benefit from automatically generated, and hence correct, communication. (3) Tierless developers can exploit the powerful high-level abstractions such as Task Oriented Programming (TOP) in CWSS.Contents:- README.md: this readme containing information about both applications- cwss.tgz: source code for the mTask based smart campus applications dubbed CWSS.It consists of: A snapshot of the mTask git repository: https://gitlab.science.ru.nl/mlubbers/mTask A Clean programming language compiler. The source code for the CWSS application.- prss.zip: source code for the anyscale sensor based smart campus application dubbed PRSS.It consists of: A snapshot of the anyscale-sensors git repository: https://bitbucket.org/jsinger/anyscale-sensors
Zip file unpacked by DANS.