Supporting Mobile Distributed Services
Abdel Moamen, Ahmed
MetadataShow full item record
With sensors becoming increasingly ubiquitous, there is a tremendous potential for services which can take advantage of the data collected by these sensors, from the important -- such as detecting medical emergencies and imminent natural disasters -- to the mundane -- such as waiting times experienced by diners at restaurants. This information can then be used to offer useful services. For example, a busy professional could find a restaurant to go to for a quick lunch based on information available from smartphones of people already there having lunch, waiting to be seated, or even heading there; a government could conduct a census in real-time, or “sense” public opinion. I refer to such services as mobile distributed services. The barriers to offering mobile distributed services continue to be prohibitive for most: not only must these services be implemented, but they would also inevitably compete for resources on people's devices. This is in part because such services are poorly understood, and consequently, there is limited language support for programming them. In this thesis, I address practical challenges related to three important problems in mobile distributed services. In addition, I present my efforts towards a formal model for representing mobile distributed services. First, I address the challenge of enhancing the programmability of mobile distributed services. This thesis presents a set of core mechanisms underlying mobile distributed services. I interpret and implement these mechanisms for the domain of crowd-sourced services. A distributed runtime middleware, CSSWare, has been developed to simplify the burden of initiating and managing crowd-sourced services. CSSWare provides a set of domain-specific programming constructs for launching a new service. Service designers may launch novel services over CSSWare by simply plugging in small pieces of service specific code. Particularly, new services can be prototyped in fewer than 100 lines of code. This ease of programming promises to democratize the building of such services. Second, I address the challenge of efficiently supporting the sensing needs of mobile distributed services, and more generally sensor-based applications. I developed ShareSens, an approach to opportunistically merge sensing requirements of independent applications. When multiple applications make sensing requests, instead of serving each request independently, ShareSens opportunistically merges the requests, achieving significant power and energy savings. Custom filters are then used to extract the data required by each application. Third, I address the problem of programming the sensing requirements of mobile distributed services. In particular, ModeSens is presented to allow multi-modal sensing requirements of a service to be programmed separately from its function. Programmers can specify the modes in which a service can be, the sensing needs of each mode, and the sensed events which trigger mode transition. ModeSens then monitors for mode transition events, and dynamically adjusts the sensing frequencies to match the current mode's requirements. Separating the mode change logic from an application's functional logic leads to more modular code. In addition, I present MobDisS (Mobile Distributed Services), an early model for representing mobile distributed services, allowing them to be carefully studied. Services can be built by composing simpler services. I present the syntax and operational semantics of MobDisS. Although this work can be evaluated along multiple dimensions, my primary goal is to enhance programmability of mobile distributed services. This is illustrated by providing the actual code required for creating two realistic services using CSSWare. Each service demonstrates different facets of the middleware, ranging from the use of different sensors to the use of different facilities provided by CSSWare. Furthermore, experimental results are presented to demonstrate scalability, performance and data-contributor side energy efficiency of CSSWare and ShareSens. Finally, a set of experimental evaluation is carried out to measure the performance and energy costs of using ModeSens.
DegreeDoctor of Philosophy (Ph.D.)
SupervisorJamali , Nadeem
CommitteeVarela, Carlos A.; Eager , Derek; Mehr, Aryan S
Copyright DateAugust 2017