Programming and Managing the Swarm -- An Operating System for an Emerging System of Mobile Devices
Daniel Graff, Jan Richling, Matthias Werner · 2013
Todays situation is characterized by an increasing pervasiveness of a plethora of mobile devices featuring different capabilities and exhibiting different system interfaces making the handling of these devices and especially the cooperation between different devices a complex task. In this paper, we consider the sum of all these devices as one emerging system (the swarm) and present an approach of a swarm operating system that on a systemic level manages these devices (local devices give up their autonomy) while providing a common interface to user applications. We provide a programming model for distributed mobile applications that abstracts from error-prone aspects such as distribution and concurrency by giving the programmer a systemic view to system resources. The model allows the programmer to define actions that can be restricted in space and time. Together with a high level goal, an entire application emerges implicitly based on those defined actions. In order to execute such applications, we present an architecture for a runtime system that uses virtualization techniques in order to execute multiple independently developed applications in parallel. The system follows a service-oriented architecture: one of the core services is the space-time scheduler that plans applications (a set of actions) in time and space.