  Internet-enabled things and devices operating in the physical world are
increasingly integrated in modern distributed systems, supporting
functionalities that require assurances that certain critical requirements are
satisfied by the overall system. We focus here on spatially-distributed
Internet-of-Things systems such as smart environments, where the dynamics of
spatial distribution of entities in the system is crucial to requirements
satisfaction. Analysis techniques need to be in place while systems operate to
ensure that requirements are fulfilled. This may be achieved by keeping a model
of the system at runtime, monitoring events that lead to changes in the spatial
environment, and performing analysis. This computationally-intensive runtime
assurance method cannot be supported by resource-constrained devices that
populate the space and must be offloaded to the cloud. However, challenges
arise regarding resource allocation and cost, especially when the workload is
unknown at the system's design time. As such, it may be difficult or even
impossible to guarantee application service level agreements, e.g., on response
times. To this end, we instantiate spatial verification processes, integrating
them to the service layer of an IoT-cloud architecture based on microservices.
We propose several cloud deployments for such an architecture for assurance of
spatial requirements -- based on virtual machines, containers, and the recent
Functions-as-a-Service paradigm. Then, we assess deployments' tradeoffs in
terms of elasticity, performance and cost by using a workload scenario from a
known dataset of taxis roaming in Beijing. We argue that the approach can be
replicated in the design process of similar kinds of spatially distributed
Internet-of-Things systems.
