Commit d1cf30fb1fbb8bbf12149924e9b393b60d5a819c

Authored by Geoffrey Challen
0 parents

New.

.gitignore 0 → 100644
  1 +++ a/.gitignore
  1 +ABSTRACT
  2 +/paper.pdf
  3 +/.xxxnote
  4 +/.draft
  5 +/.blue
  6 +*.swp
  7 +*.aux
  8 +*.log
  9 +*.out
  10 +*.bbl
  11 +*.blg
  12 +.deps
  13 +.~lock*
... ...
Makefile 0 → 100644
  1 +++ a/Makefile
  1 +START = xxxnote nodraft noblue
  2 +END = missing
  3 +CLASS = $(PYTEX)/cls/sig-alternate.cls
  4 +
  5 +all: paper ABSTRACT
  6 +
  7 +figures:
  8 + @cd figures ; make
  9 +
  10 +ABSTRACT: $(PYTEX)/bin/clean $(PYTEX)/bin/lib.py abstract.tex
  11 + @$(PYTEX)/bin/clean abstract.tex ABSTRACT
  12 +
  13 +# 16 Nov 2010 : GWA : Add other cleaning rules here.
  14 +
  15 +clean: rulesclean
  16 + @rm -f ABSTRACT
  17 +
  18 +include $(PYTEX)/make/Makerules
... ...
abstract.tex 0 → 100644
  1 +++ a/abstract.tex
  1 +\begin{abstract}
  2 +
  3 +One of the reasons programming mobile systems is so hard is that modern
  4 +languages leave no way for programmers to express structured uncertainty. In
  5 +many cases, only post-deployment testing and user adaptation can determine
  6 +the right algorithm to use or the rate at which a timer should fire, and so
  7 +developers should not be forced to initially make these choices. As
  8 +paradoxical as it sounds, we believe less certain programmers will produce
  9 +better mobile apps.
  10 +
  11 +Instead, we introduce a new approach: structured uncertainty through a new
  12 +language construct, the \texttt{maybe} statement. \texttt{maybe} statements
  13 +allow programmers to defer choices about application behavior that cannot
  14 +made at development time, while providing enough structure to allow a
  15 +complete system to adaptive choose alternatives in the future. Eliminating
  16 +the uncertainty introduced by \texttt{maybe} statements can be done utilizing
  17 +simulation, split testing, or machine learning techniques, depending on the
  18 +type of adaptation appropriate in each situation. Our paper motivates the
  19 +\texttt{maybe} statement, presents its syntax, describes a complete system
  20 +for choosing from the alternatives \texttt{maybe} provides, and discusses a
  21 +prototype implementation.
  22 +
  23 +\end{abstract}
... ...
certainty.tex 0 → 100644
  1 +++ a/certainty.tex
  1 +\section{From Uncertainty to Certainty}
  2 +\label{sec-certainty}
... ...
common.tex 0 → 100644
  1 +++ a/common.tex
  1 +% 16 Nov 2010 : GWA : Any special macros or other stuff for this particular
  2 +% paper go here.
  3 +
  4 +\newcommand{\PhoneLab}{\textsc{PhoneLab}}
  5 +\hyphenation{Phone-Lab}
... ...
conclusion.tex 0 → 100644
  1 +++ a/conclusion.tex
  1 +\section{Conclusions}
  2 +\label{sec-conclusion}
  3 +
  4 +% \section*{Acknowledgments}
... ...
figures/.gitignore 0 → 100644
  1 +++ a/figures/.gitignore
  1 +*.pyc
... ...
figures/logos/blue.jpg 0 → 100644

7 KB

implementation.tex 0 → 100644
  1 +++ a/implementation.tex
  1 +\label{Prototype Implementation}
  2 +\label{sec-implementation}
... ...
include/start.tex 0 → 100644
  1 +++ a/include/start.tex
  1 +\documentclass[letterpaper,twocolumn]{sig-alternate}
  2 +\usepackage{url,graphicx,multirow,hyperref,color,calc,ulem,threeparttable,tabularx,booktabs,enumitem,comment,subcaption}
  3 +\usepackage{minted}
  4 +\usepackage[group-separator={,}]{siunitx}
  5 +
  6 +\hypersetup{
  7 + bookmarks=true,
  8 + unicode=true,
  9 + pdftoolbar=true,
  10 + pdfmenubar=true,
  11 + pdffitwindow=true,
  12 + pdfstartview={FitV},
  13 + pdftitle={},
  14 + pdfauthor={},
  15 + pdfnewwindow=true,
  16 + colorlinks=false,
  17 + pdfdisplaydoctitle=true,
  18 + pdfborder={0 0 0},
  19 +}
  20 +
  21 +\usepackage[absolute]{textpos}
  22 +
  23 +\setlength{\TPHorizModule}{1in}
  24 +\setlength{\TPVertModule}{1in}
  25 +\textblockorigin{0.75in}{0.5in}
  26 +
  27 +\usepackage[all]{hypcap}
  28 +
  29 +\input{.xxxnote}
  30 +\input{.draft}
  31 +\input{.blue}
  32 +\input{common.tex}
... ...
introduction.tex 0 → 100644
  1 +++ a/introduction.tex
  1 +\section{Introduction}
  2 +
  3 +All programmers must deal with uncertainty. The most appropriate algorithm to
  4 +accomplish a given task may depend on inputs that are unknown when the
  5 +function is written, and its performance may depend on features of the
  6 +specific device it is run on that are impossible for the developer to
  7 +anticipate. In other cases, real-world testing may be required to choose
  8 +between several approaches, which has led to the popularity of so-called AB
  9 +or split testing as part of the software development cycle.
  10 +
  11 +Mobile app programmers, however, are forced to deal with even more
  12 +uncertainty caused by mobility itself. Specific device features, such as
  13 +accurate location from GPS, may or may not be available. Networks come and go
  14 +and their properties may change, from fast and free Wifi links to slower or
  15 +metered mobile data connections. Energy may be plentiful or nearly exhausted,
  16 +depending on the device's battery capacity and the user's energy consumption
  17 +and charging patterns. These constantly fluctuating exogeneous conditions
  18 +make writing effective mobile apps particularly challenging.
  19 +
  20 +The most typical approach to addressing this problem is to force the
  21 +programmer to implement the required adaptation themselves.
  22 +Figure~\ref{fig-example-if} shows an example of an Android app attempting to
  23 +adapt to the device's battery level by establishing regular- and low-battery
  24 +code paths, with the latter attempting to save energy---by utilizing a slower
  25 +but more energy-efficient algorithm, computing an approximation instead of an
  26 +exact result, or deferring the computation.
  27 +
  28 +Unfortunately, this approach has several weaknesses. First and foremost, it
  29 +is unclear that the differentiation achieves the desired result. In the code
  30 +shown in Figure~\ref{fig-example-if}, there may be no differences between the
  31 +alternatives---neither conserves energy. Or the alternative designed to
  32 +conserve energy may actually consume more, due to bugs or incorrect
  33 +programmer assumptions. Or the result may depend on some other factor not
  34 +considered by the programmer, such as the type of network the device is
  35 +connected to.
  36 +
  37 +Second, adaptive programming frequently requires arbitrary decision
  38 +thresholds chosen before deployment. Even if the two code paths shown in
  39 +Figure~\ref{fig-example-if} achieves the desired result, it is
  40 +unclear what the threshold for choosing a path should be, or whether a single
  41 +threshold will work across all users, or whether the threshould should itself
  42 +depend on other factors such as how frequently the app is used.
  43 +
  44 +\begin{figure}[t]
  45 +
  46 +\begin{subfigure}[t]{0.5\textwidth}
  47 +% 14 Sep 2014 : GWA : Don't need to show all of the gory details...
  48 +%
  49 +% IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
  50 +% Intent batteryStatus = context.registerReceiver(null, filter);
  51 +% int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
  52 +% boolean plugged = (batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1) != 0) ? true: false;
  53 +\begin{minted}[fontsize=\footnotesize]{java}
  54 +if (plugged == false and batteryLevel < 10) {
  55 + // Option A: Conserve energy
  56 +} else {
  57 + // Option B: Don't conserve energy
  58 +}
  59 +\end{minted}
  60 +\vspace*{-0.2in}
  61 +\caption{}
  62 +\label{fig-example-if}
  63 +\end{subfigure}\\
  64 +\begin{subfigure}[t]{0.5\textwidth}
  65 +\begin{minted}[fontsize=\footnotesize]{java}
  66 +maybe {
  67 + // Option A: Conserve energy
  68 +} maybe {
  69 + // Option B: Don't conserve energy
  70 +}
  71 +\end{minted}
  72 +\vspace*{-0.2in}
  73 +\caption{}
  74 +\label{fig-example-maybe}
  75 +\end{subfigure}
  76 +
  77 +\vspace*{-0.1in}
  78 +\caption{\textbf{Typical adapation to available energy in Android Java
  79 + pseudocode.} Figure~\ref{fig-example-if} shows error-prone
  80 + programmer-driven adaptation using typical imperative language constructs.
  81 + Figure~\ref{fig-example-maybe} shows uncertainty-driven adaptation using
  82 + the novel \texttt{maybe} statement.}
  83 +
  84 +\label{fig-certaintyexample}
  85 +
  86 +\vspace*{-0.1in}
  87 +\end{figure}
  88 +
  89 +Finally, the current approach to adaptation fails to support post-deployment
  90 +testing. While it is possible to enable flexibilty, runtime adaptation, and
  91 +split testing using the languages typically used to program mobile systems,
  92 +these common tasks require writing large amounts of error-prone boilerplate
  93 +code, including APIs to adjust values at runtime and code to retrieve
  94 +settings from remote servers.
  95 +
  96 +The root of the problem is that today's languages force programmers to be
  97 +certain even when they are not, a weakness that becomes extremely serious
  98 +when combined with the uncertainties inherent to mobile systems programming.
  99 +Our solution is simple: provide developers with a structured method for
  100 +expressing uncertainty and allow other tools---including automated local
  101 +testing, split testing, and machine learning---to later determine what option
  102 +to choose.
  103 +
  104 +To do so, we introduce a new language construct: the \texttt{maybe}
  105 +statement. \texttt{maybe} statements allow programmers to express structured
  106 +uncertainty about how a computation should be performed and the values that
  107 +should be used to set variables. Figure~\ref{fig-example-maybe} shows a
  108 +simple case of a \texttt{maybe} case statement applied to our earlier
  109 +example. Instead of being forced to choose, or being forced to implement the
  110 +decision process, the programmer is free to offer two or more alternatives
  111 +that are different but both correct, although one may be preferable. At
  112 +runtime only one will be used during any given execution.
  113 +
  114 +How that choice is made is discussed in the remainder of our paper. We begin
  115 +by providing a more complete description of the \texttt{maybe} statement in
  116 +Section~\ref{sec-maybe}. Section~\ref{sec-certainty} describes the next step
  117 +of the process during which a variety of different approaches are used to
  118 +collapse programmer uncertainty into the require runtime certainty. We
  119 +continue by briefly describing a prototype implementation in
  120 +Section~\ref{sec-implementation} and describing related work in
  121 +Section~\ref{sec-related}. Section~\ref{sec-conclusion} concludes our paper.
... ...
maybe.tex 0 → 100644
  1 +++ a/maybe.tex
  1 +\section{The \texttt{maybe} Statement}
  2 +\label{sec-maybe}
  3 +
  4 +\begin{figure}
  5 +\begin{minted}[fontsize=\footnotesize]{java}
  6 +// Setting variables
  7 +int i = 1 maybe 1-16;
  8 +string s = "you" maybe "me", "them";
  9 +
  10 +// Controlling code flow
  11 +@maybe
  12 +int myFunction(int a, int b) {
  13 + // do something
  14 +}
  15 +
  16 +@maybe
  17 +int myFunction(int a, int b) {
  18 + // do something else
  19 +}
  20 +
  21 +maybe {
  22 + // do something
  23 +} maybe {
  24 + // do something else
  25 +}
  26 +
  27 +// Including hints
  28 +
  29 +maybe (charging == false and batteryLevel < 10) {
  30 + // do something
  31 +} maybe {
  32 + // do something else
  33 +}
  34 +
  35 +// Including evaluation code
  36 +maybe {
  37 + // do something
  38 +} maybe {
  39 + // do something else
  40 +} better {
  41 + // evaluate the choice
  42 +}
  43 +\end{minted}
  44 +
  45 +\caption{\textbf{Example uses of the \texttt{maybe} statement.} For
  46 +convenience and readability \texttt{maybe} statements allows uncertainty
  47 +about code flow to be expressed at the function and block level, and
  48 +uncertainty about variable values to be expressed whenever they initialized
  49 +or set.}
  50 +
  51 +\label{fig-maybeexamples}
  52 +
  53 +\end{figure}
... ...
paper.tex 0 → 100644
  1 +++ a/paper.tex
  1 +\input{./include/start.tex}
  2 +
  3 +\def\theconference{HotMobile'15}
  4 +\def\thetitle{\texttt{maybe} We Should Enable More Flexible Mobile App
  5 +Programming}
  6 +\def\theauthors{Geoffrey Challen and Lukasz Ziarek}
  7 +\def\theemails{\{challen,ziarek\}@buffalo.edu}
  8 +
  9 +\ifdefined\isdraft
  10 + \usepackage{draftwatermark}
  11 + \SetWatermarkText{Under Submission}
  12 + \SetWatermarkScale{0.6}
  13 + \usepackage{fancyhdr}
  14 + \pagestyle{fancy}
  15 + \renewcommand{\headrulewidth}{0pt}
  16 + \lhead{}
  17 + \chead{Under Submission to \theconference. Do not distribute.}
  18 + \rhead{}
  19 +\else
  20 +\fi
  21 +
  22 +\begin{document}
  23 +
  24 +\ifdefined\isblue
  25 +\begin{textblock}{1}(6.4,0)
  26 +\noindent\href{http://blue.cse.buffalo.edu}{\includegraphics[width=0.6in]{./figures/logos/blue.jpg}}
  27 +\end{textblock}
  28 +\fi
  29 +
  30 +\date{}
  31 +
  32 +\title{\thetitle}
  33 +
  34 +\numberofauthors{1}
  35 +
  36 +\author{
  37 +\alignauthor\theauthors\\
  38 +\affaddr{Department of Computer Science and Engineering}\\
  39 +\affaddr{University at Buffalo}\\
  40 +\email{\theemails}
  41 +}
  42 +
  43 +\CopyrightYear{2015}
  44 +\crdata{}
  45 +
  46 +\hypersetup{
  47 + pdfinfo={
  48 + Title={\thetitle},
  49 + Author={\theauthors}
  50 + },
  51 +}
  52 +
  53 +\maketitle
  54 +
  55 +\input{abstract.tex}
  56 +\input{introduction.tex}
  57 +
  58 +\input{maybe.tex}
  59 +\input{certainty.tex}
  60 +\input{implementation.tex}
  61 +
  62 +\input{related.tex}
  63 +\input{conclusion.tex}
  64 +
  65 +{\footnotesize
  66 +\renewcommand{\baselinestretch}{0.9}
  67 +\bibliographystyle{acm}
  68 +\bibliography{references}
  69 +}
  70 +
  71 +\end{document}
... ...
references.bib 0 → 100644
  1 +++ a/references.bib
  1 +@string{proc = "Proc. "}
  2 +@string{sosp = "SOSP"}
  3 +@string{osdi = "OSDI"}
  4 +
  5 +@misc{presence-peoplepower,
  6 + title = {{ People Power Products}},
  7 + howpublished = {\url{http://peoplepowerco.com/products/}}
  8 +}
  9 +
  10 +@inproceedings{gdi,
  11 + Author = {Robert Szewczyk and Alan Mainwaring and Joseph Polastre and David Culler},
  12 + Booktitle = proc # {Second ACM Conference on Embedded Networked Sensor Systems (SenSys)},
  13 + Date-Added = {2008-04-13 11:35:45 -0400},
  14 + Date-Modified = {2008-04-13 11:35:45 -0400},
  15 + Month = {November},
  16 + Title = {An Analysis of a Large Scale Habitat Monitoring Application},
  17 + Year = 2004}
  18 +
  19 +@inproceedings{ggb-monitoring,
  20 + Address = {Stanford, CA},
  21 + Author = {Shamim N. Pakzad and Sukun Kim and Gregory L Fenves and Steven D. Glaser and David E. Culler and James W. Demmel},
  22 + Booktitle = proc # {5th International Workshop on Structural Health Monitoring (IWSHM 2005)},
  23 + Date-Added = {2008-04-13 11:47:28 -0400},
  24 + Date-Modified = {2008-04-13 11:47:28 -0400},
  25 + Month = {September},
  26 + Title = {Multi-Purpose Wireless Accelerometers for Civil Infrastructure Monitoring},
  27 + Year = 2005}
  28 +
  29 +@inproceedings{koala-ipsn08,
  30 + author = {Musaloiu-E., Razvan and Liang, Chieh-Jan Mike and Terzis, Andreas},
  31 + title = {Koala: Ultra-Low Power Data Retrieval in Wireless Sensor Networks},
  32 + booktitle = {Proceedings of the 7th international conference on Information processing in sensor networks},
  33 + series = {IPSN '08},
  34 + year = {2008},
  35 + isbn = {978-0-7695-3157-1},
  36 + pages = {421--432},
  37 + numpages = {12},
  38 + url = {http://dx.doi.org/10.1109/IPSN.2008.10},
  39 + doi = {10.1109/IPSN.2008.10},
  40 + acmid = {1372752},
  41 + publisher = {IEEE Computer Society},
  42 + address = {Washington, DC, USA},
  43 + keywords = {Data gathering, duty-cycling, routing, low-power, network wake-up},
  44 +}
  45 +
  46 +@inproceedings{lance-sensys08,
  47 + Address = {Raleigh, NC, USA},
  48 + Author = {Geoffrey Werner-Allen and Stephen Dawson-Haggerty and Matt Welsh},
  49 + Booktitle = proc # {6th ACM Conference on Embedded Networked Sensor Systems
  50 + (SenSys'08)},
  51 + Month = {November},
  52 + Title = {Lance: Optimizing High-Resolution Signal Collection in Wireless
  53 + Sensor Networks},
  54 + Year = 2008}
  55 +
  56 +
  57 +@misc{phonebloks-url,
  58 + title = {{ PhoneBloks }},
  59 + howpublished = {\url{http://www.phonebloks.com/}}
  60 +}
  61 +@misc{etbc-dumping,
  62 + title = {{ Responsible Recycling vs Global Dumping }},
  63 + author = {Electronics TakeBack Coalition},
  64 + howpublished =
  65 + {\url{http://www.electronicstakeback.com/global-e-waste-dumping/}}
  66 +}
  67 +
  68 +@inproceedings{leaves-ipsn12,
  69 + author = {Yerva, Lohit and Campbell, Brad and Bansal, Apoorva and Schmid, Thomas and Dutta, Prabal},
  70 + title = {Grafting energy-harvesting leaves onto the sensornet tree},
  71 + booktitle = {Proceedings of the 11th international conference on Information Processing in Sensor Networks},
  72 + series = {IPSN '12},
  73 + year = {2012},
  74 + isbn = {978-1-4503-1227-1},
  75 + location = {Beijing, China},
  76 + pages = {197--208},
  77 + numpages = {12},
  78 + url = {http://doi.acm.org/10.1145/2185677.2185733},
  79 + doi = {10.1145/2185677.2185733},
  80 + acmid = {2185733},
  81 + publisher = {ACM},
  82 + address = {New York, NY, USA},
  83 + keywords = {energy-harvesting sensor node, low power wireless networking},
  84 +}
  85 +
  86 +
  87 +@INPROCEEDINGS{hitchhikers-sensys08,
  88 + author = {Guillermo Barrenetxea and François Ingelrest and Gunnar Schaefer and Martin Vetterli},
  89 + title = {The Hitchhiker's Guide to Successful Wireless Sensor Network Deployments},
  90 + booktitle = {in Proceedings of ACM SenSys},
  91 + year = {2008}
  92 +}
  93 +
  94 +@inproceedings{hijack-dev10,
  95 + author = {Kuo, Ye-Sheng and Verma, Sonal and Schmid, Thomas and Dutta, Prabal},
  96 + title = {Hijacking power and bandwidth from the mobile phone's audio interface},
  97 + booktitle = {Proceedings of the First ACM Symposium on Computing for Development},
  98 + series = {ACM DEV '10},
  99 + year = {2010},
  100 + isbn = {978-1-4503-0473-3},
  101 + location = {London, United Kingdom},
  102 + pages = {24:1--24:10},
  103 + articleno = {24},
  104 + numpages = {10},
  105 + url = {http://doi.acm.org/10.1145/1926180.1926210},
  106 + doi = {10.1145/1926180.1926210},
  107 + acmid = {1926210},
  108 + publisher = {ACM},
  109 + address = {New York, NY, USA},
  110 + keywords = {audio communications, energy harvesting, mobile phones, participatory sensing, phone peripherals},
  111 +}
  112 +
  113 +@misc{cnn-goldinphone,
  114 + title = {{Your dead iPhone is a gold mine---literally}},
  115 + author = {David Goldman},
  116 + howpublished =
  117 + {\url{http://money.cnn.com/2011/10/13/technology/iphone_trade_in/}}
  118 +}
  119 +
  120 +@misc{sprint-m2m,
  121 + title = {{Sprint M2M Solutions}},
  122 + author = {Sprint},
  123 + howpublished = {\url{http://m2m.sprint.com/}}
  124 +}
  125 +
  126 +@misc{sprintgreen-url,
  127 + title = {{Newsweek's 2012 Green Rankings}},
  128 + author = {\url{greenbiz.com}},
  129 + howpublished =
  130 + {\url{http://www.greenbiz.com/blog/2012/10/20/newsweeks-2012-green-rankings-time-its-serious}}}
  131 +
  132 +@misc{sprintrecycle-url,
  133 + title = {{Sprint Re:cycle}},
  134 + author = {\url{sprint.com}},
  135 + howpublished =
  136 + {\url{http://www.sprint.com/responsibility/communities_across/index.html}}}
  137 +
  138 +@misc{sprintpolicy-url,
  139 + title = {{Sprint Electronics Stewardship Policy}},
  140 + author = {{Sprint}},
  141 + howpublished =
  142 + {\url{http://www.sprint.com/responsibility/ouroperations/docs/ElectronicsStewardshipPolicy.pdf}}}
  143 +
  144 +@misc{rpipower-url,
  145 + title = {{RasPi power usage measurements}},
  146 + author = {\url{www.raspberrypi.org}},
  147 + howpublished = {\url{http://www.raspberrypi.org/phpBB3/viewtopic.php?f=63\&t=6050\&start=50}}}
  148 +
  149 +@misc{wirelessenergyconsumption-url,
  150 + title = {{ Comparing Low-Power Wireless Technologies }},
  151 + author = {{ Digikey }},
  152 + howpublished =
  153 + {\url{http://www.digikey.com/us/en/techzone/wireless/resources/articles/comparing-low-power-wireless.html}}}
  154 +
  155 +@inproceedings{volcano-osdi06,
  156 + Address = {Seattle, WA},
  157 + Author = {Geoff Werner-Allen and Konrad Lorincz and Jeff Johnson and Jonathan Lees and Matt Welsh},
  158 + Booktitle = proc # {7th USENIX Symposium on Operating Systems Design and
  159 + Implementation (OSDI 2006)},
  160 + Month = {November},
  161 + Title = {Fidelity and Yield in a Volcano Monitoring Sensor Network},
  162 + Year = 2006}
  163 +
  164 +@INPROCEEDINGS{icem-sosp07,
  165 + author = {Kevin Klues and Vlado Handziski and Chenyang Lu and Adam Wolisz and David Culler and David Gay and Philip Levis},
  166 + title = {Integrating concurrency control and energy management in device drivers},
  167 + BOOKTITLE = proc # "the 12st Annual " #sosp,
  168 + year = {2007},
  169 + pages = {251--264},
  170 + publisher = {ACM}
  171 +}
  172 +
  173 +@misc{computerreplacement-url,
  174 + title = {{ Most computers replaced after 4.5 years }},
  175 + author = {{ bit-tech }},
  176 + howpublished =
  177 + {\url{http://www.bit-tech.net/news/hardware/2011/05/12/most-computers-replaced-after-4-5-years/1}}
  178 +}
  179 +
  180 +@misc{smartphonereplacement-url,
  181 + title = {{ Trends in Smartphone Turnover }},
  182 + author = {{ Digital Technology: The Tech Portal }},
  183 + howpublished =
  184 + {\url{http://www.technology-digital.com/gadgets/-by-tim-kridel}}
  185 +}
  186 +
  187 +@INPROCEEDINGS{fawn,
  188 + author = {David G. Andersen and Jason Franklin and Michael Kaminsky and Amar Phanishayee and Lawrence Tan
  189 +and Vijay Vasudevan},
  190 + title = {FAWN: A Fast Array of Wimpy Nodes},
  191 + BOOKTITLE = proc # "the 22nd Annual " #sosp,
  192 + year = {2009},
  193 +pages = {1-14},
  194 + publisher = {ACM}
  195 +}
  196 +
  197 +@inproceedings{li-smartphonereuse,
  198 + author = {Li, Xun and Ortiz, Pablo J. and Browne, Jeffrey and Franklin, Diana and Oliver, John Y. and Geyer, Roland and Zhou, Yuanyuan and Chong, Frederic T.},
  199 + title = {Smartphone Evolution and Reuse: Establishing a More Sustainable Model},
  200 + booktitle = {Proceedings of the 2010 39th International Conference on Parallel Processing Workshops},
  201 + series = {ICPPW '10},
  202 + year = {2010},
  203 + isbn = {978-0-7695-4157-0},
  204 + pages = {476--484},
  205 + numpages = {9},
  206 + url = {http://dx.doi.org/10.1109/ICPPW.2010.70},
  207 + doi = {10.1109/ICPPW.2010.70},
  208 + acmid = {1905162},
  209 + publisher = {IEEE Computer Society},
  210 + address = {Washington, DC, USA},
  211 + keywords = {Sustainable Computing, Education, Smartphone Evolution},
  212 +}
  213 +
  214 +@misc{epa-ewasteweb,
  215 + TITLE = {{Statistics on the Management of Used and End-of-Life
  216 + Electronics}},
  217 + AUTHOR = {{United States Environmental Protection Agency}},
  218 + HOWPUBLISHED =
  219 + {\url{http://www.epa.gov/osw/conserve/materials/ecycling/manage.htm}}
  220 +}
  221 +
  222 +@misc{emulab-web,
  223 + AUTHOR = {{Emulab Total Network Testbed}},
  224 + TITLE = {{Emulab - Network Emulation Testbed Home}},
  225 + HOWPUBLISHED =
  226 + {\url{http://www.emulab.net/}}}
  227 +@misc{planetlab-web,
  228 + AUTHOR = {{PlanetLab Consortium}},
  229 + TITLE = {{PlanetLab: An open platform for developing, deploying, and
  230 + accessing planetary-scale services.}},
  231 + HOWPUBLISHED =
  232 + {\url{http://www.planet-lab.org/}}}
  233 +@inproceedings{bursty-sensys09,
  234 + author = {Alizai, Muhammad Hamad and Landsiedel, Olaf and Link, J\'{o} \'{A}gila Bitsch and G\"{o}tz, Stefan and Wehrle, Klaus},
  235 + title = {Bursty traffic over bursty links},
  236 + booktitle = {SenSys '09: Proceedings of the 7th ACM Conference on Embedded Networked Sensor Systems},
  237 + year = {2009},
  238 + isbn = {978-1-60558-519-2},
  239 + pages = {71--84},
  240 + location = {Berkeley, California},
  241 + doi = {http://doi.acm.org/10.1145/1644038.1644046},
  242 + publisher = {ACM},
  243 + address = {New York, NY, USA},
  244 + }
  245 +
  246 +@inproceedings{ctp-sensys09,
  247 + author = {Gnawali, Omprakash and Fonseca, Rodrigo and Jamieson, Kyle and Moss, David and Levis, Philip},
  248 + title = {Collection tree protocol},
  249 + booktitle = {SenSys '09: Proceedings of the 7th ACM Conference on Embedded Networked Sensor Systems},
  250 + year = {2009},
  251 + isbn = {978-1-60558-519-2},
  252 + pages = {1--14},
  253 + location = {Berkeley, California},
  254 + doi = {http://doi.acm.org/10.1145/1644038.1644040},
  255 + publisher = {ACM},
  256 + address = {New York, NY, USA},
  257 + }
  258 +
  259 +@inproceedings{isolation-sensys09,
  260 + author = {Il Choi, Jung and Kazandjieva, Maria A. and Jain, Mayank and Levis, Philip},
  261 + title = {The case for a network protocol isolation layer},
  262 + booktitle = {SenSys '09: Proceedings of the 7th ACM Conference on Embedded Networked Sensor Systems},
  263 + year = {2009},
  264 + isbn = {978-1-60558-519-2},
  265 + pages = {267--280},
  266 + location = {Berkeley, California},
  267 + doi = {http://doi.acm.org/10.1145/1644038.1644065},
  268 + publisher = {ACM},
  269 + address = {New York, NY, USA},
  270 + }
  271 +
  272 +@INPROCEEDINGS{stork,
  273 + AUTHOR = "T.~Kosar and M.~Livny",
  274 + TITLE = "Stork: Making Data Placement a First Class Citizen in the Grid",
  275 + BOOKTITLE = " Proceedings of ICDCS'04 ",
  276 + PAGES = "342-349",
  277 + MONTH = "March",
  278 + YEAR = {2004} }
  279 +
  280 +@ARTICLE{petashare,
  281 + AUTHOR = "X. Wang and D. Huang and I. Akturk and M. Balman and G. Allen and T. Kosar",
  282 + TITLE = "Semantic Enabled Metadata Management in PetaShare",
  283 + JOURNAL = {Journal of Grid and Utility Computing (IJGUC)},
  284 + YEAR = {2009} }
  285 +
  286 +@inproceedings{cloudclone-hotos,
  287 + author = {Chun, Byung-Gon and Maniatis, Petros},
  288 + title = {Augmented smartphone applications through clone cloud execution},
  289 + booktitle = {HotOS'09: Proceedings of the 12th conference on Hot topics in operating systems},
  290 + year = {2009},
  291 + pages = {8--8},
  292 + location = {Monte Verit\`{a}, Switzerland},
  293 + publisher = {USENIX Association},
  294 + address = {Berkeley, CA, USA},
  295 +}
  296 +
  297 +@misc{cloudclone-web,
  298 + AUTHOR = {{Intel Berkeley CloudClone Project}},
  299 + TITLE = {{CloudClone}},
  300 + HOWPUBLISHED =
  301 + {\url{http://berkeley.intel-research.net/bgchun/clonecloud/}}
  302 +}
  303 +
  304 +@inproceedings{motelab-ipsn,
  305 + Author = {Geoff Werner-Allen and Pat Swieskowski and Matt Welsh},
  306 + Booktitle = proc # {the Fourth International Conference on Information Processing in Sensor Networks (IPSN'05)},
  307 + Date-Added = {2008-04-13 11:47:28 -0400},
  308 + Date-Modified = {2008-04-13 11:47:28 -0400},
  309 + Month = {April},
  310 + Title = {{MoteLab: A Wireless Sensor Network Testbed}},
  311 + Year = 2005}
  312 +
  313 +@misc{motelab-web,
  314 + AUTHOR = {{Harvard MoteLab Testbed}},
  315 + TITLE = {{MoteLab}},
  316 + HOWPUBLISHED =
  317 + {\url{http://motelab.eecs.harvard.edu}}}
  318 +}
  319 +
  320 +@misc{opencirrus-web,
  321 + AUTHOR = {{OpenCirrus (TM) the HP/Intel/Yahoo! Open Cloud Computing
  322 + Research Testbed}},
  323 + TITLE = {{OpenCirrus (TM)}},
  324 + HOWPUBLISHED =
  325 + {\url{http://opencirrus.org}}}
  326 +
  327 +@article{opencirrus-ieee,
  328 + AUTHOR = {Arutyun I. Avetisyan and Roy Campbell and Indranil Gupta and Michael
  329 + T. Heath and Steven Y. Ko and Gregory R. Ganger and Michael A. Kozuch and
  330 + David O'Hallaron and Marcel Kunze and Thomas T. Kwan and Kevin Lai and
  331 + Martha Lyons and Dejan S. Milojicic and Hing Yan Lee and Yeng Chai Soh and
  332 + Ng Kwang Ming and Jing-Yuan Luke and Han Namgoong},
  333 + TITLE = {{Open Cirrus: A Global Cloud Computing Testbed}},
  334 + JOURNAL ={IEEE Computer},
  335 + VOLUME = {43},
  336 + ISSN = {0018-9162},
  337 + YEAR = {2010},
  338 + PAGES = {35-43},
  339 + DOI = {http://doi.ieeecomputersociety.org/10.1109/MC.2010.111},
  340 + PUBLISHER = {IEEE Computer Society},
  341 + ADDRESS = {Los Alamitos, CA, USA}}
  342 +
  343 +
  344 +@inproceedings{opencirrus-hotcloud,
  345 + AUTHOR = {Roy Campbell and Indranil Gupta and Michael Heath and Steven Y. Ko
  346 + and Michael Kozuch and Marcel Kunze and Thomas Kwan and Kevin Lai
  347 + and Hing Yan Lee and Martha Lyons and Dejan Milojicic and David O'Hallaron
  348 + and Yeng Chai Soh},
  349 + TITLE = {{Open Cirrus Cloud Computing Testbed: Federated Data Centers for
  350 + Open Source Systems and Services Research}},
  351 + BOOKTITLE = {HotCloud'09: Proceedings of the 1st Workshop on Hot Topics in
  352 + Cloud Computing},
  353 + YEAR = {2009},
  354 + LOCATION = {Sandiego, CA}},
  355 + PUBLISHER = {USENIX Association},
  356 + ADDRESS = {Berkeley, CA, USA}}
  357 +
  358 +@Article{lites,
  359 + author = {A. Arora and P. Dutta and S. Bapat and V. Kulathumani and H. Zhang and V. Naik and V. Mittal and H. Cao and M. Demirbas and M. Gouda and Y-R. Choi and T. Herman and S. S. Kulkarni and U. Arumugam and M. Nesterenko and A. Vora and M. Miyashita},
  360 + title = {A line in the sand: A wireless sensor network for target detection, classification, and tracking},
  361 + journal = {Computer Networks (Elsevier)},
  362 + year = {2004},
  363 + OPTkey = {},
  364 + volume = {46},
  365 + number = {5},
  366 + pages = {605--634},
  367 + OPTmonth = {},
  368 + OPTnote = {},
  369 + OPTannote = {}
  370 +}
  371 +
  372 +@Article{exscal,
  373 + OPTauthor = {A. Arora and et. al.},
  374 + author = {A. Arora and R. Ramnath and E. Ertin and P. Sinha and S. Bapat and V. Naik and V. Kulathumani and H. Zhang and H. Cao and M. Sridharan and S. Kumar and N. Seddon and C. Anderson and T. Herman and N. Trivedi and C. Zhang and M. Nesterenko and R. Shah and S. Kulkarni and M. Aramugam and L. Wang and M. Gouda and Y. Choi and D. Culler and P. Dutta and C. Sharp and G. Tolle and M. Grimmer and B. Ferriera and K. Parker},
  375 + title = {ExScal: Elements of an Extreme Scale Wireless Sensor Network},
  376 + journal = {Int. Conf. on Embedded and Real-Time Computing Systems and Applications},
  377 + year = {2005},
  378 + OPTkey = {},
  379 + OPTvolume = {},
  380 + OPTnumber = {},
  381 + OPTpages = {},
  382 + OPTmonth = {},
  383 + OPTnote = {},
  384 + OPTannote = {}
  385 +}
  386 +
  387 +@inproceedings{tinyos,
  388 + author = "Jason Hill and Robert Szewczyk and Alec Woo and Seth
  389 + Hollar and David E. Culler and Kristofer S. J. Pister",
  390 + title = "System Architecture Directions for Networked Sensors",
  391 + booktitle = proc # "the 9th International Conference on Architectural
  392 + Support for Programming Languages and Operating Systems",
  393 + month = nov,
  394 + pages = "93-104", year = "2000", address="Boston, MA, USA" }
  395 +
  396 +@inproceedings{contiki,
  397 + Address = {Tampa, FL},
  398 + Author = {Adam Dunkels and Bjorn Gronvall and Thiemo Voigt},
  399 + Booktitle = proc # {First IEEE Workshop on Embedded Networked Sensors (EmNetS)},
  400 + Date-Added = {2008-04-13 11:47:28 -0400},
  401 + Date-Modified = {2008-04-13 11:47:28 -0400},
  402 + Month = {November},
  403 + Title = {{Contiki: A Lightweight and Flexible Operating System for Tiny Networked Sensors}},
  404 + Year = 2004}
  405 +
  406 +@inproceedings{sorber2005turducken,
  407 + title={Turducken: hierarchical power management for mobile devices},
  408 + author={Sorber, Jacob and Banerjee, Nilanjan and Corner, Mark D and Rollins, Sami},
  409 + booktitle={Proceedings of the 3rd international conference on Mobile systems, applications, and services},
  410 + pages={261--274},
  411 + year={2005},
  412 + organization={ACM}
  413 +}
... ...
related.tex 0 → 100644
  1 +++ a/related.tex
  1 +\section{Related Work}
  2 +\label{sec-related}
... ...
submitted/paper.pdf 0 → 100644
No preview for this file type