related.tex
2.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
\section{Related Work}
\label{sec-related}
New systems such as EnFrame~\cite{arxiv13-enframe} reflect growing interest
in managing uncertainty at the language level. EnFrame focuses on enabling
programming with uncertain data, rather than the runtime adaptation enabled
by \texttt{maybe}.
Aspect oriented programming (AOP)~\cite{aop} aims to increase modularity
through the separation of cross-cutting concerns. The programmer expresses
cross-cutting concerns in stand alone modules, or aspects, which specify a
computation to be performed as well as points in the program at which that
computation should be performed. Fundamentally, the goals of AOP and the
\texttt{maybe} statement differ, with AOP focusing on modularity and
\texttt{maybe} focused on enabling adaptation by expressing uncertainty.
\texttt{maybe} shares similaries with language-based approaches to adapting
energy consumption such as Eon~\cite{sensys07-eon} and
Levels~\cite{sensys07-levels}. However, these approaches still require
programmers to express certainty by associating code with energy states,
rather than allowing the \texttt{maybe} system to determine which energy
states are appropriate. \texttt{maybe} can also enable adaptation driven by
goals other than energy management.
Attempts to enable more adaptive mobile systems date back to systems such as
Odyssey~\cite{odyssey-sosp97}. However, a taxonomy of approaches to enabling
adaptation on early mobile systems~\cite{badrinath2000conceptual} reflects
the focus of early efforts on incorporating adaptation into libraries that
could be used by multiple apps. As we have pointed out previously, while
adaptation libraries are useful, \texttt{maybe} statements can make them more
powerful by allowing programmers to express uncertainty.
Recent approaches that allow mobile devices to effectively offload
computation by automating client-cloud partitioning are also related to the
\texttt{maybe} statement. Systems such as Tactics~\cite{tactics-mobisys03}
and MAUI~\cite{FIXME} used a variety of approaches to enabling this form of
adaptation but are narrowly-focused on harnessing opportunities for remote
execution. While \texttt{maybe} statements can enable simple decisions about
whether to offload portions of an app, the \texttt{maybe} approach is not yet
rich enough to consider how much of the execution should be performed
remotely or deal with server failures. At present \texttt{maybe} focuses on
single-device adaptation, but we are interested in exploring the ability to
use uncertainty to distribute computation between multiple devices as future
work.