@inproceedings {INPROC-2019-43,
   author = {Lukas Reinfurt and Michael Falkenthal and Frank Leymann},
   title = {{A Pattern-Based Method for Designing IoT Systems}},
   booktitle = {Proceedings of the 13th Symposium and Summer School On Service-Oriented Computing (SummerSoc19)},
   publisher = {IBM Research Division},
   institution = {Universit{\"a}t Stuttgart, Fakult{\"a}t Informatik, Elektrotechnik und Informationstechnik, Germany},
   pages = {1--27},
   type = {Konferenz-Beitrag},
   month = {September},
   year = {2019},
   keywords = {Pattern Languages; Design Patterns; Pattern-Based Method; Internet of Things; System Design},
   language = {Englisch},
   cr-category = {C.2.4 Distributed Systems,     D.2.11 Software Engineering Software Architectures},
   department = {Universit{\"a}t Stuttgart, Institut f{\"u}r Architektur von Anwendungssystemen},
   abstract = {The Internet of Things pattern language can be a valuable tool for practitioners that want to design an IoT system. It offers them abstract proven solutions based on existing real world uses and, thus, makes working with the large amount of different devices, platforms, technologies, and standards in the field of IoT more manageable. Practitioners can use the pattern language to design an IoT system by starting with any pattern they deem suitable and then by continuing to follow the links to related patterns defined by the pattern language. However, when designing an IoT system, applying patterns in a certain order can be beneficial. It allows practitioners to think through important aspects of the system in the right order to minimize context switching and to avoid having to change previous decisions. Thus, we introduce a pattern-based method for designing IoT systems. It guides practitioners through the steps of designing an IoT system in a sensible order. Based on answers to specific questions asked in each step, it points practitioners to suitable patterns and other helpful tools. The result is a pattern-annotated architecture diagram that can be used as basis for further architecture refinement, as a guide for finding existing solutions, and as input for communication with other involved stakeholders.},
   url = {http://www2.informatik.uni-stuttgart.de/cgi-bin/NCSTRL/NCSTRL_view.pl?id=INPROC-2019-43&engl=0}
}
@inproceedings {INPROC-2017-75,
   author = {Lukas Reinfurt and Uwe Breitenb{\"u}cher and Michael Falkenthal and Paul Fremantle and Frank Leymann},
   title = {{Internet of Things Security Patterns}},
   booktitle = {Proceedings of the 24th Conference on Pattern Languages of Programs (PLoP '17)},
   editor = {The Hillside Group},
   address = {Vancouver},
   publisher = {ACM},
   institution = {Universit{\"a}t Stuttgart, Fakult{\"a}t Informatik, Elektrotechnik und Informationstechnik, Germany},
   pages = {1--28},
   type = {Konferenz-Beitrag},
   month = {Oktober},
   year = {2017},
   isbn = {978-1-941652-06-0},
   keywords = {Internet of Things; Design Patterns; Cyber-Physical Systems; Security; Privacy},
   language = {Englisch},
   cr-category = {C.2.4 Distributed Systems,     D.2.11 Software Engineering Software Architectures,     D.4.6 Operating Systems Security and Protection},
   department = {Universit{\"a}t Stuttgart, Institut f{\"u}r Architektur von Anwendungssystemen},
   abstract = {The Internet of Things (IoT) is growing, with new technologies, standards, devices, platforms, and applications being constantly developed. This has lead to a confusing solution landscape, which makes understanding the various options and choosing a path between them difficult. In order to help with this problem, we have collected IoT Patterns, which are textual descriptions of common problems and their abstract solutions based on repeatedly found real life examples. With this work, we add some security related IoT Patterns to complement the already existing catalog of security patterns that can be applied to IoT systems. The Trusted Communication Partner and Outbound-Only Connection patterns decrease the attack surface of devices. The Permission Control and Personal Zone Hub patterns give device owners control over what happens with their devices and data. The Whitelist and Blacklist patterns control access to and prevent abuse of resources.},
   url = {http://www2.informatik.uni-stuttgart.de/cgi-bin/NCSTRL/NCSTRL_view.pl?id=INPROC-2017-75&engl=0}
}
@inproceedings {INPROC-2017-64,
   author = {Lukas Reinfurt and Michael Falkenthal and Uwe Breitenb{\"u}cher and Frank Leymann},
   title = {{Applying IoT Patterns to Smart Factory Systems}},
   booktitle = {Proceedings of the 11th Advanced Summer School on Service Oriented Computing},
   publisher = {IBM Research Division},
   institution = {Universit{\"a}t Stuttgart, Fakult{\"a}t Informatik, Elektrotechnik und Informationstechnik, Germany},
   pages = {1--10},
   type = {Konferenz-Beitrag},
   month = {November},
   year = {2017},
   keywords = {Internet of Things; Architecture; Patterns; Industry 4.0; Smart Factory; Industrial Internet},
   language = {Englisch},
   cr-category = {D.2.13 Software Engineering Reusable Software,     K.6 Management of Computing and Information Systems},
   department = {Universit{\"a}t Stuttgart, Institut f{\"u}r Architektur von Anwendungssystemen},
   abstract = {Creating Internet of Things systems is a complex challenge as it involves both software and hardware, and because it touches on constrained devices and networks, storage, analytics, automation, and many other topics. This is further complicated by the large number of available technologies and the variety of different protocols and standards. To help with the ensuing confusion, we presented Internet of Things Patterns in several categories, such as device communication and management, energy supply types, and operation modes. These patterns describe abstract solutions to common problems and can be used to understand and design Internet of Things systems. In this paper, we show that these patterns can be applied to Smart Factory systems, which is one of the many domains where the Internet of Things is applicable.},
   url = {http://www2.informatik.uni-stuttgart.de/cgi-bin/NCSTRL/NCSTRL_view.pl?id=INPROC-2017-64&engl=0}
}
@inproceedings {INPROC-2017-59,
   author = {Lukas Reinfurt and Uwe Breitenb{\"u}cher and Michael Falkenthal and Frank Leymann and Andreas Riegg},
   title = {{Internet of Things Patterns for Device Bootstrapping and Registration}},
   booktitle = {Proceedings of the 22nd European Conference on Pattern Languages of Programs (EuroPLoP)},
   editor = {ACM},
   publisher = {ACM},
   institution = {Universit{\"a}t Stuttgart, Fakult{\"a}t Informatik, Elektrotechnik und Informationstechnik, Germany},
   pages = {1--27},
   type = {Konferenz-Beitrag},
   month = {November},
   year = {2017},
   keywords = {Internet of Things; Device; Bootstrapping; Registration},
   language = {Englisch},
   cr-category = {D.2.11 Software Engineering Software Architectures,     C.2.4 Distributed Systems},
   department = {Universit{\"a}t Stuttgart, Institut f{\"u}r Architektur von Anwendungssystemen},
   abstract = {All kinds of large and small organizations are trying to find their place in the Internet of Things (IoT) space and keep expanding the portfolio of connected devices, platforms, applications, and services. But for these components to be able to communicate with each other they first have to be made aware of other components, their capabilities, and possible communication paths. Depending on the number and distribution of the devices this can become a complicated task. Several solutions are available, but the large number of existing and developing standards and technologies make selecting the right one confusing at times. We collected proven solution descriptions to reoccurring problems in the form of patterns to help Internet of Things architects and developers understand, design, and build systems in this space. We present ten new patterns which deal with initializing communication. Five of these patterns are described in detail in this paper. The patterns FACTORY BOOTSTRAP, MEDIUM-BASED BOOTSTRAP, and REMOTE BOOTSTRAP are used to bring information for setting up communication onto the device. Devices can be registered using the AUTOMATIC CLIENT-DRIVEN REGISTRATION, AUTOMATIC SERVER-DRIVEN REGISTRATION, or MANUAL USER-DRIVEN REGISTRATION patterns. During this process, a SERVER-DRIVEN MODEL, PRE-DEFINED DEVICE-DRIVEN MODEL, or DEVICE-DRIVEN MODEL is stored in a DEVICE REGISTRY to digitally represent the device.},
   url = {http://www2.informatik.uni-stuttgart.de/cgi-bin/NCSTRL/NCSTRL_view.pl?id=INPROC-2017-59&engl=0}
}
@inproceedings {INPROC-2017-15,
   author = {Lukas Reinfurt and Uwe Breitenb{\"u}cher and Michael Falkenthal and Frank Leymann and Andreas Riegg},
   title = {{Internet of Things Patterns for Devices}},
   booktitle = {Proceedings of the Ninth international Conferences on Pervasive Patterns and Applications (PATTERNS)},
   publisher = {Xpert Publishing Services},
   institution = {Universit{\"a}t Stuttgart, Fakult{\"a}t Informatik, Elektrotechnik und Informationstechnik, Germany},
   pages = {117--126},
   type = {Konferenz-Beitrag},
   month = {Februar},
   year = {2017},
   keywords = {Internet of Things; Design Patterns; Devices; Constraints},
   language = {Englisch},
   cr-category = {D.2.11 Software Engineering Software Architectures,     C.2.4 Distributed Systems},
   department = {Universit{\"a}t Stuttgart, Institut f{\"u}r Architektur von Anwendungssystemen},
   abstract = {Devices are an important part of the Internet of Things. They collect data from their environment with sensors and, based on this data, also act on their environment by using actuators. Many use cases require them to support characteristics such as being cheap, light, small, mobile, energy efficient, or autonomously powered. This creates constraints for available energy sources and leads to different kinds of operating modes. Based on existing terminology and additional examples, we describe these energy constraints and the operation modes in the form of Patterns. These Patterns are interconnected with other Patterns to form an Internet of Things Pattern Language that enables practitioners to find and navigate through proven solutions for their problems at hand.},
   url = {http://www2.informatik.uni-stuttgart.de/cgi-bin/NCSTRL/NCSTRL_view.pl?id=INPROC-2017-15&engl=0}
}
@inproceedings {INPROC-2016-48,
   author = {Jasmin Guth and Uwe Breitenb{\"u}cher and Michael Falkenthal and Frank Leymann and Lukas Reinfurt},
   title = {{Comparison of IoT Platform Architectures: A Field Study based on a Reference Architecture}},
   booktitle = {Cloudification of the Internet of Things (CIoT)},
   publisher = {IEEE},
   institution = {Universit{\"a}t Stuttgart, Fakult{\"a}t Informatik, Elektrotechnik und Informationstechnik, Germany},
   pages = {1--6},
   type = {Konferenz-Beitrag},
   month = {November},
   year = {2016},
   doi = {10.1109/CIOT.2016.7872918},
   keywords = {IoT; CPS; Reference Architecture; OpenMTC; FIWARE; SiteWhere; AWS IoT},
   language = {Englisch},
   cr-category = {C.3 Special-Purpose and Application-Based Systems,     D.2.11 Software Engineering Software Architectures},
   department = {Universit{\"a}t Stuttgart, Institut f{\"u}r Architektur von Anwendungssystemen},
   abstract = {The Internet of Things (IoT) is gaining increasing attention. The overall aim is to interconnect the physical with the digital world. Therefore, the physical world needs to be measured and translated into processible data. Further, data has to be translated into commands to be executed by actuators. Due to the growing awareness of IoT, the amount of offered IoT platforms rises as well. The heterogeneity of IoT platforms is the consequence of multiple different standards and approaches. This leads to problems of comprehension, which can occur during the design up to the selection of an appropriate solution. We tackle these issues by introducing an IoT reference architecture based on several state-of-the-art IoT platforms. Furthermore, the reference architecture is compared to three open-source and one proprietary IoT platform. The comparison shows that the reference architecture provides a uniform basis to understand, compare, and evaluate different IoT solutions. The considered state-of-the-art IoT platforms are OpenMTC, FIWARE, Site-Where, and Amazon Web Services IoT.},
   url = {http://www2.informatik.uni-stuttgart.de/cgi-bin/NCSTRL/NCSTRL_view.pl?id=INPROC-2016-48&engl=0}
}
@inproceedings {INPROC-2016-46,
   author = {Lukas Reinfurt and Uwe Breitenb{\"u}cher and Michael Falkenthal and Frank Leymann and Andreas Riegg},
   title = {{Internet of Things Patterns}},
   booktitle = {Proceedings of the 21st European Conference on Pattern Languages of Programs (EuroPLoP)},
   publisher = {ACM},
   institution = {Universit{\"a}t Stuttgart, Fakult{\"a}t Informatik, Elektrotechnik und Informationstechnik, Germany},
   pages = {1--21},
   type = {Konferenz-Beitrag},
   month = {Juli},
   year = {2016},
   keywords = {Internet of Things; Design Patterns; Cyber-Physical Systems},
   language = {Englisch},
   cr-category = {D.2.11 Software Engineering Software Architectures,     C.2.4 Distributed Systems},
   department = {Universit{\"a}t Stuttgart, Institut f{\"u}r Architektur von Anwendungssystemen},
   abstract = {The development of the Internet of Things is gaining more and more momentum. Due to its widespread applicability, many different solutions have been created in all kinds of areas and contexts. These include solutions for building automation, industrial manufacturing, logistics and mobility, healthcare, or public utilities, for private consumers, businesses, or government. These solutions often have to deal with similar problems, for example, constrained devices, intermittent connectivity, technological heterogeneity, or privacy and security concerns. But the diversity makes it hard to grasp the underlying principles, to compare different solutions, and to design an appropriate custom implementation in the Internet of Things space. We investigated a large number of production-ready Internet of Things offerings to extract recurring proven solution principles into Patterns, of which five are presented in this paper. These Patterns address several problems. DEVICE GATEWAY shows how to connect devices to a network that do not support the network's technology. DEVICE SHADOW explains how to interact with currently offline devices. With a RULES ENGINE, you can create simple processing rules without programming. DEVICE WAKEUP TRIGGER allows you to get a disconnected device to reconnect to a network when needed. REMOTE LOCK AND WIPE can secure devices and their data in case of loss.},
   url = {http://www2.informatik.uni-stuttgart.de/cgi-bin/NCSTRL/NCSTRL_view.pl?id=INPROC-2016-46&engl=0}
}
@inproceedings {INPROC-2015-23,
   author = {Karolina Vukojevic-Haupt and Florian Haupt and Frank Leymann and Lukas Reinfurt},
   title = {{Bootstrapping Complex Workflow Middleware Systems into the Cloud}},
   booktitle = {Proceedings of the 11th IEEE International Conference on e-Science},
   publisher = {IEEE},
   institution = {Universit{\"a}t Stuttgart, Fakult{\"a}t Informatik, Elektrotechnik und Informationstechnik, Germany},
   pages = {126--135},
   type = {Konferenz-Beitrag},
   month = {September},
   year = {2015},
   doi = {10.1109/eScience.2015.69},
   keywords = {Bootware; Cloud; Bootstrapping; On-demand Provisioning; Dynamic Provisioning; eScience; SOC; Automatic Provisioning; Automatic Deployment; Optimization; Integration},
   language = {Englisch},
   cr-category = {C.2.4 Distributed Systems,     D.2.11 Software Engineering Software Architectures},
   department = {Universit{\"a}t Stuttgart, Institut f{\"u}r Architektur von Anwendungssystemen},
   abstract = {The use of Cloud infrastructures together with provisioning technologies can be successfully applied in scenarios where resources are only needed rarely and irregularly, for example simulation workflows in the eScience domain. There has already been proposed a solution for the on-demand provisioning of services required by workflows, but how to automatically provision the needed workflow middleware itself is still an open issue. Although many provisioning technologies are available, it is currently not possible to use them in an integrated, flexible and automated way. The main idea presented in this paper is a multistep bootstrapping process, starting with a minimal local software component and ending up with a complex workflow middleware running in the Cloud. This minimal software component is called bootware. We define the key requirements for the bootware, present its architecture and discuss the main design decisions and how they fulfil the requirements. The bootware enables to provision complex workflow middleware systems on-demand and automatically in the Cloud and therefore reduces resource consumption and costs.},
   url = {http://www2.informatik.uni-stuttgart.de/cgi-bin/NCSTRL/NCSTRL_view.pl?id=INPROC-2015-23&engl=0}
}
@article {ART-2019-23,
   author = {Lukas Reinfurt and Michael Falkenthal and Frank Leymann},
   title = {{Where to Begin - On Pattern Language Entry Points}},
   journal = {SICS Software-Intensive Cyber-Physical Systems},
   publisher = {Springer},
   pages = {1--12},
   type = {Artikel in Zeitschrift},
   month = {August},
   year = {2019},
   doi = {https://doi.org/10.1007/s00450-019-00417-6},
   keywords = {Internet of Things; Pattern Languages; Entry Points},
   language = {Englisch},
   cr-category = {C.2.4 Distributed Systems,     D.2.11 Software Engineering Software Architectures,     F.2.2 Nonnumerical Algorithms and Problems,     G.2.2 Discrete Mathematics Graph Theory},
   department = {Universit{\"a}t Stuttgart, Institut f{\"u}r Architektur von Anwendungssystemen},
   abstract = {Pattern languages as tools for solving problems based on interconnected, abstract, and proven solutions can offer valuable help to practitioners. But there is always the question of where to begin when a pattern language should be applied. Their authors often provide entry points, but these are usually only useful if one starts completely from scratch or from a very specific situation. When confronted with problems at hand, practitioners are often left to find a suitable entry point themselves by reading through the whole pattern language to find applicable patterns. To help with this problem, we present a general approach and its formalization that provides entry points for any kind of situation. Our general three step approach guides practitioners through Situation Assessment, Treatment Selection, and Treatment Application in order to find and apply a suitable pattern language for their specific problems. We formalize all the parts involved and show that the facts collected during Situation Assessment can be used to find a suitable entry point for a specific situation. We also present an algorithm for finding these entry points.},
   url = {http://www2.informatik.uni-stuttgart.de/cgi-bin/NCSTRL/NCSTRL_view.pl?id=ART-2019-23&engl=0}
}
@article {ART-2019-08,
   author = {Lukas Reinfurt and Uwe Breitenb{\"u}cher and Michael Falkenthal and Frank Leymann and Andreas Riegg},
   title = {{Internet of Things Patterns for Communication and Management}},
   journal = {Transactions on Pattern Languages of Programming IV},
   publisher = {Springer-Verlag},
   pages = {139--182},
   type = {Artikel in Zeitschrift},
   month = {Februar},
   year = {2019},
   doi = {10.1007/978-3-030-14291-9_5},
   keywords = {Internet of Things; Patterns; Embedded and cyber-physical systems; Device management},
   language = {Englisch},
   cr-category = {C.2.4 Distributed Systems,     D.2.11 Software Engineering Software Architectures},
   department = {Universit{\"a}t Stuttgart, Institut f{\"u}r Architektur von Anwendungssystemen},
   abstract = {The Internet of Things is gaining a foothold in many different areas and industries. Though offerings vary in their scope and implementation, they often have to deal with similar problems: Constrained devices and networks, a vast amount of different vendors and technologies, security and privacy issues, etc. Over time, similar solutions for these problems appear, but the amount of available information makes it hard to identify the underlying principles. We investigated a large number of Internet of Things solutions and extracted the core principles into patterns. The eight patterns presented in this paper are: DEVICE GATEWAY enables devices that do not support a networks technology to connect to this network. DEVICE SHADOW allows other components to interact with offline devices. RULES ENGINE enables non-programmers to create rules that trigger actions. DEVICE WAKEUP TRIGGER informs sleeping devices that they should wake up. REMOTE LOCK AND WIPE allows lost or stolen devices to be secured. DELTA UPDATE only sends data that has changed since the last communication. REMOTE DEVICE MANAGEMENT enables remote device management with a client-server architecture. VISIBLE LIGHT COMMUNICATION uses existing lights to send messages to other devices.},
   url = {http://www2.informatik.uni-stuttgart.de/cgi-bin/NCSTRL/NCSTRL_view.pl?id=ART-2019-08&engl=0}
}
@article {ART-2017-16,
   author = {Lukas Reinfurt and Uwe Breitenb{\"u}cher and Michael Falkenthal and Frank Leymann and Andreas Riegg},
   title = {{Internet of Things Patterns for Devices: Powering, Operating, and Sensing}},
   journal = {International Journal on Advances in Internet Technology},
   publisher = {IARIA},
   volume = {10},
   number = {3\&4},
   pages = {106--123},
   type = {Artikel in Zeitschrift},
   month = {Dezember},
   year = {2017},
   keywords = {Internet of Things; Patterns; Devices; Constraints; Energy Supply; Operation Mode; Sensing},
   language = {Englisch},
   cr-category = {D.2.11 Software Engineering Software Architectures,     C.2.4 Distributed Systems},
   department = {Universit{\"a}t Stuttgart, Institut f{\"u}r Architektur von Anwendungssystemen},
   abstract = {A central part of the Internet of Things are devices. By collecting data about themselves and their environment using sensors, they provide the raw resources for later analytics stages. Based on the results of these analytics they can also act back on their environment through actuators. Depending on their use case, these devices come in all shapes and sizes, are placed in various environments, and often have to operate under constraints such as limited access to energy or requirements for mobility. All these factors have an impact on how they are supplied with energy, how they operate, and how they sense. In this paper, we describe the resulting types of energy supplies, operating modes, and sensing techniques as Internet of Things Patterns based on existing terminology and known implementations. We show that these patterns are interconnected with others and that they form the beginning of an Internet of Things Pattern Language, which allows readers to find and navigate through abstract solutions for often reoccurring problems.},
   url = {http://www2.informatik.uni-stuttgart.de/cgi-bin/NCSTRL/NCSTRL_view.pl?id=ART-2017-16&engl=0}
}
@inbook {INBOOK-2018-01,
   author = {Jasmin Guth and Uwe Breitenb{\"u}cher and Michael Falkenthal and Paul Fremantle and Oliver Kopp and Frank Leymann and Lukas Reinfurt},
   title = {{A Detailed Analysis of IoT Platform Architectures: Concepts, Similarities, and Differences}},
   series = {Internet of Everything: Algorithms, Methodologies, Technologies and Perspectives},
   publisher = {Springer},
   pages = {81--101},
   type = {Beitrag in Buch},
   month = {Januar},
   year = {2018},
   isbn = {10.1007/978-981-10-5861-5_4},
   keywords = {Internet of Things; IoT; Platform; Reference Architecture; FIWARE; OpenMTC; SiteWhere; Webinos; AWS IoT; IBM Watson IoT Platform; Microsoft Azure IoT Hub},
   language = {Englisch},
   cr-category = {D.2.11 Software Engineering Software Architectures,     D.4.7 Operating Systems Organization and Design,     H.3.4 Information Storage and Retrieval Systems and Software},
   department = {Universit{\"a}t Stuttgart, Institut f{\"u}r Parallele und Verteilte Systeme, Anwendersoftware;     Universit{\"a}t Stuttgart, Institut f{\"u}r Architektur von Anwendungssystemen},
   abstract = {The IoT is gaining increasing attention. The overall aim is to interconnect the physical with the digital world. Therefore, the physical world is measured by sensors and translated into processible data, and data has to be translated into commands to be executed by actuators. Due to the growing interest in IoT, the number of platforms designed to support IoT has risen considerably. As a result of different approaches, standards, and use cases, there is a wide variety and heterogeneity of IoT platforms. This leads to difficulties in comprehending, selecting, and using appropriate platforms. In this work, we tackle these issues by conducting a detailed analysis of several state-of-the-art IoT platforms in order to foster the understanding of the (i) underlying concepts, (ii) similarities, and (iii) differences between them. We show that the various components of the different platforms can be mapped to an abstract reference architecture, and analyze the effectiveness of this mapping.},
   url = {http://www2.informatik.uni-stuttgart.de/cgi-bin/NCSTRL/NCSTRL_view.pl?id=INBOOK-2018-01&engl=0}
}