|
|
1
2
|
\section{Related Work}
\label{sec-related}
|
|
|
3
|
|
|
|
4
5
6
|
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
|
|
|
7
|
by \texttt{maybe}.
|
|
|
8
|
|
|
|
9
|
Aspect oriented programming (AOP)~\cite{aop} aims to increase modularity
|
|
|
10
11
12
13
14
15
|
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.
|
|
|
16
|
|
|
|
17
|
\texttt{maybe} shares similarities with language-based approaches to adapting
|
|
|
18
19
|
energy consumption such as Eon~\cite{sensys07-eon} and
Levels~\cite{sensys07-levels}. However, these approaches still require
|
|
|
20
21
22
23
|
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.
|
|
|
24
|
|
|
|
25
26
27
28
29
30
31
|
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.
|
|
|
32
33
34
35
|
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}
|
|
|
36
37
38
39
40
|
and MAUI~\cite{maui-mobisys10} used a variety of approaches to enabling this
form of adaptation but are narrowly-focused on harnessing opportunities for
remote execution. 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.
|