diff --git a/discussion.tex b/discussion.tex index df56208..96eac3e 100644 --- a/discussion.tex +++ b/discussion.tex @@ -34,9 +34,19 @@ is reduced. However, the \texttt{maybe} statement represents a fundamentally different approach from previously attempts to enable runtime adaptation that relied on -libraries. First, libraries +libraries. As a code organization stategy, the benefits that libraries provide +in terms of reduced duplication and more powerful interfaces are orthogonal and +complementary to the \texttt{maybe} statement. That said, a large amount of +code including adaptation logic remains app specific and cannot be refactored +into a library. -Finally, note that structured uncertainty is not randomness. The -\texttt{maybe} statement indicates that during any given execution one -alternative may be better than the others---even if the developer or system -are not sure which alternative to use. +More importantly, library development still requires development-time +certainty. Despite the fact that library developers are more likely to be +experts at the type of adaptation the library performs, we still believe that +even the most skilled programmers are not capable of anticipating all +possible sources of uncertainty and will benefit from being able to express +structured uncertainty. \texttt{maybe} allows all developers---including both +app and library writers---to shed the burden of producing a single certain +approach and instead write uncertain code containing the flexibility needed +required to enable powerful data-driven approaches to post-deployment +adaptation. diff --git a/maybe.tex b/maybe.tex index 0cec744..7bebf90 100644 --- a/maybe.tex +++ b/maybe.tex @@ -82,3 +82,9 @@ maintained across multiple code blocks. As we gain more experience with our rewrite-based prototype, described next in Section~\ref{sec-certainty}, we will revisit the question of nesting in future compiler-driven \texttt{maybe} systems. + +As a final remark, note that structured uncertainty is not randomness. +Randomness weights multiple options statically---there is no right or wrong +choice. In contrast, the \texttt{maybe} statement indicates that during any +given execution one alternative may be the right choice---even if the +developer or system cannot yet identify it. diff --git a/references.bib b/references.bib index 1e58f2c..5efb1c9 100644 --- a/references.bib +++ b/references.bib @@ -2,6 +2,44 @@ @string{sosp = "SOSP"} @string{osdi = "OSDI"} +@article{badrinath2000conceptual, + title={A conceptual framework for network and client adaptation}, + author={Badrinath, B and Fox, Armando and Kleinrock, Leonard and Popek, Gerald and Reiher, Peter and Satyanarayanan, Mahadev}, + journal={Mobile Networks and Applications}, + volume={5}, + number={4}, + pages={221--231}, + year={2000}, + publisher={Springer-Verlag New York, Inc.} +} + +@inproceedings{odyssey-sosp97, + Address = {Saint Malo, France}, + Author = {Brian D. Noble and M. Satyanarayanan and Dushyanth Narayanan and James Eric Tilton and Jason Flinn and Kevin R. Walker}, + Booktitle = {SOSP '97: Proceedings of the sixteenth ACM symposium on Operating systems principles}, + Pages = {276--287}, + Title = {Agile application-aware adaptation for mobility}, + Year = {1997}} + +@article{arxiv13-enframe, + title={ENFrame: A Platform for Processing Probabilistic Data}, + author={van Schaik, Sebastiaan J and Olteanu, Dan and Fink, Robert}, + journal={arXiv preprint arXiv:1309.0373}, + year={2013} +} + +@inproceedings{sensys07-eon, + title={{Eon: A Language and Runtime System for Perpetual Systems}}, + author="J Sorber and A Kostadinov and M Brennan and M Garber and M Corner and E D Berger", + booktitle="ACM Conference on Embedded Networked Sensor Systems (SenSys'07)", + month="November", year="2007"} + +@inproceedings{sensys07-levels, + title={{Meeting lifetime goals with energy levels}}, + author="A Lachenmann and P J Marron and D Minder and K Rothermer", + booktitle="ACM Conference on Embedded Networked Sensor Systems (SenSys'07)", + month="November", year="2007"} + @inproceedings{gomez2013reran, title={Reran: Timing-and touch-sensitive record and replay for android}, author={Gomez, Lorenzo and Neamtiu, Iulian and Azim, Tanzirul and Millstein, Todd}, diff --git a/related.tex b/related.tex index 82cd037..875d5cb 100644 --- a/related.tex +++ b/related.tex @@ -1,6 +1,15 @@ \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 the \texttt{maybe} statement. Specifically a variable controlled by a +\texttt{maybe} statement has a single value that is being evaluated at any +given time, while EnFrame allows that same variable to have a distribution of +values reflecting error or other forms of uncertainty about what it's true +value should be. + Aspect oriented programming (AOP)~\cite{aop} was proposed by Kiczales et al. as a programming paradigm geared toward increasing modularity through the separation of cross-cutting concerns in software. The programmer can express @@ -19,3 +28,21 @@ Unfortunately, dynamic weaving and unweaving can be expensive, requiring the use of a JIT. Fundamentally, however, the goals of AOP and the \texttt{maybe} statement differ, with AOP focusing on modularity and \texttt{maybe} focused on increasing runtime flexibility in the face of uncertainty. + +\texttt{maybe} shares similaries with language-based approaches to managing +energy consumption in wireless sensor networks such as +Eon~\cite{sensys07-eon} and Levels~\cite{sensys07-levels}. However, these +approaches still require programmers to express certainty by associating code +with particular energy states, rather than allowing the runtime system to +determine which energy states are appropriate as the \texttt{maybe} system +would be able to do. \texttt{maybe} can also enable adaptation driven by +goals other than energy management. + +Enabling more adaptive mobile systems is a challenge with a long history dating +back to work on 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.