ComPOS - a Domain-Specific Language for Composing Internet-of-Things Systems
(2021)- Abstract
- Internet-of-Things (IoT) systems consist of spatially distributed interacting devices. In contrast to desktop applications, IoT systems are always running and need to deal with unresponsive devices and weak connectivity. In this thesis, we propose techniques for simplifying the development of such systems. The work addresses IoT systems organised as reusable services connected by compositions. We propose to program such compositions using stateful reactions that mediate messages. To this end, we have designed a domain-specific language (DSL), called ComPOS. To help systems operate partly in cases of weak connectivity, we propose that ComPOS aborts older reactions when newer messages arrive. We evaluate our DSL in home-automation and... (More)
- Internet-of-Things (IoT) systems consist of spatially distributed interacting devices. In contrast to desktop applications, IoT systems are always running and need to deal with unresponsive devices and weak connectivity. In this thesis, we propose techniques for simplifying the development of such systems. The work addresses IoT systems organised as reusable services connected by compositions. We propose to program such compositions using stateful reactions that mediate messages. To this end, we have designed a domain-specific language (DSL), called ComPOS. To help systems operate partly in cases of weak connectivity, we propose that ComPOS aborts older reactions when newer messages arrive. We evaluate our DSL in home-automation and e-health scenarios.
Understanding IoT systems can be hard, and different analyses can help explain how they work. To support analysis, we propose a conceptual runtime model based on relational reference attribute grammars. We demonstrate the approach by formulating and implementing a Device Dependency Analysis (DDA). The DDA finds sets of devices needed for given parts of the system to work.
The ComPOS editor supports live programming to allow development while the system is running. We propose a methodology for live ComPOS programming which divides the development into three, iteratively applied, phases: finding services (explore), composing services (assemble), and abstracting compositions as new services (expose).
When developing a DSL, it takes substantial effort to specify the syntax and semantics, to build tools like editors, and to integrate with the environment (in this case the underlying middleware). To reduce the effort needed to experiment with ComPOS, we have created a tool called Jatte. Jatte is a generic projectional editor that developers can tune using attribute grammars. We used Jatte to implement the ComPOS editor. (Less)
Please use this url to cite or link to this publication:
https://lup.lub.lu.se/record/5e2cdd29-5753-4297-bd01-87e78a8fd892
- author
- Åkesson, Alfred
LU
- supervisor
-
- Görel Hedin LU
- Boris Magnusson LU
- Niklas Fors LU
- opponent
-
- Prof. Mikkonen, Tommi J., University of Helsinki, Finland.
- organization
- publishing date
- 2021-05-25
- type
- Thesis
- publication status
- published
- subject
- keywords
- internet of things, domain-specific languages, composition languages
- pages
- 132 pages
- publisher
- Computer Science, Lund University
- defense location
- Lecture hall E:1406, building E, Ole Römers väg 3, Faculty of Engineering LTH, Lund University, Lund. Link by registration: https://cs.lth.se/?97303&nid=102656
- defense date
- 2021-06-18 13:15:00
- ISBN
- 978-91-7895-905-1
- 978-91-7895-906-8
- project
- Adaptive software architectures for autonomous system
- Säkra mjukvaruuppdateringar för den smarta staden
- WASP: Wallenberg AI, Autonomous Systems and Software Program at Lund University
- language
- English
- LU publication?
- yes
- id
- 5e2cdd29-5753-4297-bd01-87e78a8fd892
- date added to LUP
- 2021-05-19 15:24:21
- date last changed
- 2021-05-27 07:33:12
@phdthesis{5e2cdd29-5753-4297-bd01-87e78a8fd892, abstract = {{Internet-of-Things (IoT) systems consist of spatially distributed interacting devices. In contrast to desktop applications, IoT systems are always running and need to deal with unresponsive devices and weak connectivity. In this thesis, we propose techniques for simplifying the development of such systems. The work addresses IoT systems organised as reusable services connected by compositions. We propose to program such compositions using stateful reactions that mediate messages. To this end, we have designed a domain-specific language (DSL), called ComPOS. To help systems operate partly in cases of weak connectivity, we propose that ComPOS aborts older reactions when newer messages arrive. We evaluate our DSL in home-automation and e-health scenarios.<br/> <br/>Understanding IoT systems can be hard, and different analyses can help explain how they work. To support analysis, we propose a conceptual runtime model based on relational reference attribute grammars. We demonstrate the approach by formulating and implementing a Device Dependency Analysis (DDA). The DDA finds sets of devices needed for given parts of the system to work.<br/> <br/>The ComPOS editor supports live programming to allow development while the system is running. We propose a methodology for live ComPOS programming which divides the development into three, iteratively applied, phases: finding services (explore), composing services (assemble), and abstracting compositions as new services (expose).<br/> <br/>When developing a DSL, it takes substantial effort to specify the syntax and semantics, to build tools like editors, and to integrate with the environment (in this case the underlying middleware). To reduce the effort needed to experiment with ComPOS, we have created a tool called Jatte. Jatte is a generic projectional editor that developers can tune using attribute grammars. We used Jatte to implement the ComPOS editor.}}, author = {{Åkesson, Alfred}}, isbn = {{978-91-7895-905-1}}, keywords = {{internet of things; domain-specific languages; composition languages}}, language = {{eng}}, month = {{05}}, publisher = {{Computer Science, Lund University}}, school = {{Lund University}}, title = {{ComPOS - a Domain-Specific Language for Composing Internet-of-Things Systems}}, url = {{https://lup.lub.lu.se/search/files/97973659/thesis_210516.pdf}}, year = {{2021}}, }