Advanced

ComPOS - a development environment for composing internet-of-things services

Åkesson, Alfred LU (2019) In Licentiate Thesis 2019(2).
Abstract
Internet-of-things (IoT) systems consist of spatially distributed devices with services. Compared to desktop applications, IoT systems are always running and need to deal with unresponsive devices and weak connectivity. In this thesis, we examine the following question: How can we simplify the development of IoT systems? We begin to answer this question by proposing a domain-specific language (DSL), called ComPOS, for composing IoT services. In the DSL, the user specifies the reaction to a message. The reaction can be programmed to request and receive responses in sequence and parallel. ComPOS can abort a running reaction when a new message arrives; this is to support unresponsive devices and weak connectivity. We demonstrate our language... (More)
Internet-of-things (IoT) systems consist of spatially distributed devices with services. Compared to desktop applications, IoT systems are always running and need to deal with unresponsive devices and weak connectivity. In this thesis, we examine the following question: How can we simplify the development of IoT systems? We begin to answer this question by proposing a domain-specific language (DSL), called ComPOS, for composing IoT services. In the DSL, the user specifies the reaction to a message. The reaction can be programmed to request and receive responses in sequence and parallel. ComPOS can abort a running reaction when a new message arrives; this is to support unresponsive devices and weak connectivity. We demonstrate our language by creating a bird-spying system that takes photos of a garden and then stores the ones containing a bird. The ComPOS editor supports live programming for programming a running system. Programming in our DSL is divided into three phases: finding services (explore), composing services (assemble), and abstracting compositions as new services (expose).  When developing a DSL, it takes effort specifying the syntax and semantics, building the editor, and integrating with the middleware. To reduce the effort needed to experiment with our DSL, we have created a tool called Jatte. The tool is a generic projectional editor that can be tuned for different languages using attribute grammars. We have integrated the editor built with the tool into an IoT development environment supporting discovery of devices and services.
(Less)
Please use this url to cite or link to this publication:
author
supervisor
organization
publishing date
type
Thesis
publication status
published
subject
in
Licentiate Thesis
volume
2019
issue
2
pages
88 pages
publisher
Computer Science, Lund University
ISSN
1652-4691
1652-4691
ISBN
978-91-7895-364-6
978-91-7895-365-3
language
English
LU publication?
yes
id
dca62324-7824-4ebe-884d-361a04c29300
date added to LUP
2019-11-14 10:46:33
date last changed
2020-01-10 10:08:10
@misc{dca62324-7824-4ebe-884d-361a04c29300,
  abstract     = {Internet-of-things (IoT) systems consist of spatially distributed devices with services. Compared to desktop applications, IoT systems are always running and need to deal with unresponsive devices and weak connectivity. In this thesis, we examine the following question: How can we simplify the development of IoT systems? We begin to answer this question by proposing a domain-specific language (DSL), called ComPOS, for composing IoT services. In the DSL, the user specifies the reaction to a message. The reaction can be programmed to request and receive responses in sequence and parallel. ComPOS can abort a running reaction when a new message arrives; this is to support unresponsive devices and weak connectivity. We demonstrate our language by creating a bird-spying system that takes photos of a garden and then stores the ones containing a bird. The ComPOS editor supports live programming for programming a running system. Programming in our DSL is divided into three phases: finding services (explore), composing services (assemble), and abstracting compositions as new services (expose).  When developing a DSL, it takes effort specifying the syntax and semantics, building the editor, and integrating with the middleware. To reduce the effort needed to experiment with our DSL, we have created a tool called Jatte. The tool is a generic projectional editor that can be tuned for different languages using attribute grammars. We have integrated the editor built with the tool into an IoT development environment supporting discovery of devices and services.<br/>},
  author       = {Åkesson, Alfred},
  isbn         = {978-91-7895-364-6},
  issn         = {1652-4691},
  language     = {eng},
  note         = {Licentiate Thesis},
  number       = {2},
  publisher    = {Computer Science, Lund University},
  series       = {Licentiate Thesis},
  title        = {ComPOS - a development environment for composing internet-of-things services},
  url          = {https://lup.lub.lu.se/search/ws/files/71844551/licAA.pdf},
  volume       = {2019},
  year         = {2019},
}