Source code of the PRSS and CWSS applications

DOI

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.

Identifier
DOI https://doi.org/10.17026/dans-zvf-4p9m
Metadata Access https://phys-techsciences.datastations.nl/oai?verb=GetRecord&metadataPrefix=oai_datacite&identifier=doi:10.17026/dans-zvf-4p9m
Provenance
Creator M. Lubbers; P. Koopman; A. Ramsingh; J. Singer; P. Trinder
Publisher DANS Data Station Phys-Tech Sciences
Contributor RU Radboud University
Publication Year 2021
Rights CC BY 4.0; info:eu-repo/semantics/openAccess; http://creativecommons.org/licenses/by/4.0
OpenAccess true
Contact RU Radboud University
Representation
Resource Type Dataset
Format text/html; application/octet-stream; application/x-sql; application/javascript; text/x-python; text/plain; application/x-sh; text/plain; charset=US-ASCII; application/gzip; text/xml; application/zip; application/json; text/markdown; text/css; application/pdf
Size 386; 159; 4289; 2329; 478; 1328; 47; 75; 1668; 1046; 150; 286; 14186; 1435; 9649; 240; 896; 1786; 271; 3740; 383; 13460824; 151642; 6226; 3717; 782; 0; 73; 373; 473; 107413; 667; 4655; 2795; 6076; 82; 12; 194; 32; 23; 24; 134; 9883; 860; 5315; 227; 545; 4034; 445; 1286; 2015; 4265; 572; 31; 40; 8425; 806; 2561; 228; 19769; 353; 608; 2373; 251; 4936; 85578; 86341; 7222; 1356; 14704; 1624; 2748; 264; 41; 112; 5272; 510; 6793; 242; 1254; 177; 2535; 217; 466; 388; 677; 68; 1502; 3305; 812; 394; 120688; 7328894; 664; 7354; 155; 189; 424; 1643; 416; 1492; 1374; 4898; 544; 402; 2783; 111; 267; 2874; 157; 3031; 535; 294; 671; 225; 1608; 2463; 2868; 644; 2350; 15924; 20; 1093; 113; 638; 260; 1199; 842; 583; 866; 72; 60; 79; 64; 69; 74; 84; 254; 67; 1731; 261; 87; 239; 106; 246; 102; 248; 256; 4587; 258; 390; 315; 3063; 4185; 135; 393; 101; 1290; 3098; 2655; 82006; 1534; 100; 7989; 3650; 126; 2083; 221; 1306; 46; 3789; 2980; 229; 2071
Version 2.0
Discipline Other