Download
Download
net/publication/3717837
CITATIONS READS
77 170
3 authors, including:
Gerd Kortuem
Delft University of Technology
166 PUBLICATIONS 5,629 CITATIONS
SEE PROFILE
All content following this page was uploaded by Gerd Kortuem on 03 June 2014.
3. NETMAN
3.1. Application Domain
Our primary application domain for wearable
computing is that of network maintenance. Our goal is to
design and develop a wearable system that helps
technicians in their daily task of troubleshooting and
repairing faults in computer network equipment. For
collecting requirements we are working closely with the
University of Oregon Computing Center which is
responsible for maintaining the computer and network
installations throughout campus. Typical tasks of
technicians include: installation of new network Figure 2.
ways: first, the computer can automatically retrieve and
IR Beacon
Database
Server
display information relevant to the user’s current location
or task (context-dependent computing). For example, the
Beacon ID computer can automatically compile information from
Beacon ID relevant information
[IR network] [radio network]
remote data sources pertaining to the equipment the user
is currently working on instead of requiring the user to
Wearable
Computer
actively query for it. Second, specialized software tools
for troubleshooting network equipment can be
automatically loaded onto the wearable computer
Architecture 1: Information Pull whenever the user approaches an IR equipped network
device. The decision when to load (and unload) software
components to (and from) the wearable computer depends
(ID, location) on and requires knowledge about the current state of
IR Beacon Database
[wired network] Server resources like network bandwidth, remaining battery
lifetime, and disk space.
Computer ID relevant information Figure 3 shows three alternative system architectures
[IR network]
[radio network] for our IR beacon system. In the first architecture, the
Wearable wearable computer actively queries a server for relevant
Computer
information after receiving a beacon from an IR
transmitter (information pull). In architecture 2 and 3
Architecture 2: Information Push relevant information (data and/or software) is sent to the
wearable computer (information push). While architecture
2 uses a server to store information in a central place, in
IR Beacon
the third architecture information is stored in a distributed
fashion in the local memories of IR transceivers. This has
[IR network] relevant information
the advantage that IR transmitters can be completely self-
contained devices that do not require a network
Wearable connection.
Computer
Our current implementation of the IR beacon system
follows the second architecture, but we are actively
Architecture 3: Information Push
working on self-contained IR transmitters.
Figure 3. System Architectures for 3.3. System Properties
Environment-Directed Computing
In summary, the wearable systems that we study have
Active Badge System [15] and Poor’s work at MIT [14]). the following properties:
The beacon system gives the wearable computer the 1. We are working with wearable devices that have
ability to limited capacity in one or more of the following
1. identify individual objects in its immediate areas: main memory, secondary memory, processor
surrounding by identifying their unique signals; speed, power.
2. determine its own location in relation to known 2. We are working with wireless communication that
objects and - by means of a geographical database - has limited capacity in one or more of the following
its absolute location; areas: availability, bandwidth, reliability. Further, we
cannot expect symmetric communication in any of
3. exchange arbitrary information with individual IR these areas, e.g., we may have a high bandwidth,
transmitters; information can be just data, but also reliable connection as a downlink and a low
executable or interpretable code. This makes it bandwidth, unreliable (or non-existent) uplink. Of
possible to automatically load code fragments or course, this symmetry can fluctuate over the life of a
entire applications (applets) from the environment task.
onto the wearable computer as side effect of the
user’s physical movements. 3. Users of a wearable device will move through
different information contexts, e.g., to complete task
The IR beacon system can be used in a number of
A, a user must first complete sub-task B. Each bandwidth data connection to wired LANs, data on a
context may require a different information/software wearable system can become out of date. Decisions must
tool set. be made between the use of less than up to date local
information and the use of more accurate remote
4. Users of a wearable device will move through
information.
different physical contexts. This can be tied to
switches in information context (e.g., moving from a Example: NETMAN requires information on the
network closet to an individual machine) as well as current topology of a specific LAN it is troubleshooting.
problems in communication hand-off and loss. There is local topology information that is left over
(cached) from a previous application. This information is
5. The hardware of the wearable device might change as
possibly out of date. Up to date information can be gained
new tasks or information contexts are encountered,
by querying a remote server. However, a wireless
e.g., new probes may be plugged into the wearable as
connection will have to be established with the server. A
a network failure is refined from the LAN level to the
decision is needed.
wire level. Similarly, in some occasions the user
might add a camera and microphone to the wearable Implications: The implication of both requirements 1
computer for remote collaboration with experts. and 2 is that we field a decision support system that can
Because of the additional weight of these components tie the probabilities of a shifting domain (e.g., the
they might be left in the office when not used. probability that the server information is more up to date,
the probability that the information can be downloaded in
6. The wearable environment may be active: other
a timely fashion) to the cost and eventually the value we
physical objects in the world may have the ability to
place on certain tasks being completed, possibly under
send or receive information from the wearable device.
deadline (e.g., what is the most up to date information
These "active devices" may or may not be networked.
worth to us, what is the cost of establishing and sustaining
In the simplest case, a device may simply make its ID
a data connection).
known. In more complex cases, a wearable may carry
on a conversation with an object. Requirement 3: We will need to marshal resources.
We fully expect the individual components of a larger tool
Given these properties, we envision wearable
set needed by a wearable to be distributed among the
computers to have dynamically changing software
wearable itself and one or more remote devices. The
configurations that are updated continuously according to
wearable may or may not know the exact location of each
the user’s current task and situational context. We have
tool, i.e., search is a possibility.
begun to look at the software infrastructure that is
necessary to operate such a wearable system. What we Example: NETMAN is being used to troubleshoot a
describe in this paper are our first attempts to build a non-booting workstation. The current task is to determine
wearable middleware software layer that acts as this connectivity between the workstation and the bootp
infrastructure, and the open research questions that this server. To do so requires a suite of tools (e.g., ping
has raised. service, traceroute, packet analyzer, collaboration tools
which allow the NETMAN user to “talk” with someone
4. Software Infrastructure on the server side). Some of these tools may reside on the
Requirement 1: Given limited processing resources on wearable, some on remote machines.
a wearable system, decisions must be made on out- Implications: We require a means of pulling together
sourcing of processing based on a combination of the tools we need for the task at hand.
available local resources, available remote resources, and
capacity and sustainability of data connections. Requirement 4: We need to manage the resources we
keep on the wearable optimally. Given limited resources
Example: The NETMAN is called upon to analyze a of power, space, processing ability, local resource
collection of packet data for information on why bootp is management is a necessity.
failing. The analysis can be done locally and immediately
with a substantial cost in battery power and a shutdown of Example: A NETMAN troubleshooting session may
other ongoing local tasks. The analysis can be out-sourced stretch over hours or even days. It will typically involve
to an unloaded high-performance computer (HPC) but at moving through a set of sub-tasks as well as a set of
the cost of shipping local data (and/or code) over a physical locations. While each new sub-task may bring the
currently saturated connection. need for a new tool set configuration, it is not uncommon
for configurations to share some set of individual tools.
Requirement 2: Given the lack of constant and high-
The actual middlelayer consists of four submodules.
Wearable Computer
Application Manager
The Configuration Manager keeps track of hardware
and software components installed on the wearable device
such as memory configuration, sensory devices, system
Application
Application
Application software components, and optional hardware devices like
a camera. In addition, it maintains dependency
information in order to track which software requires
which other software or hardware. This information is
used for resource qualification as described below.
The Resource Manager monitors and makes available
Configuration Decision status information about important resources of the
Manager Maker
wearable device. Resources include disk space, available
Manager
network bandwidth, accessibility of vital remote resources
like servers, remaining battery life, etc.
Cache Resource
Manager The Decision Maker uses probabilistic methods to
reason about the operation of vital system functions. For
example, the decision maker is used to determine whether
to store data and/or software components locally or
remotely. Another typical task of the decision maker is to
Network Layer decide whether a task should be run locally or remotely on
a dedicated compute server. The decisions are made based
on a built-in formal model and the current state of
Figure 4. Wearable Computer monitored system variables such as installed components
Software Architecture and resource availabilities.
Implications: As a wearable user moves among sub- The Cache is a persistent data storage that can be used
tasks and physical settings, she will typically require new by applications to store data locally on the wearable
information and new application configurations. Given device. If the amount of cached data exceeds the available
that it is impossible to pre-load every possible software resources, the Decision Maker can decide to remove
configuration on the wearable device, we are left with individual data items.
devising mechanisms that make the download of new All submodules of the middlelayer provide an
software, either through push or pull means, more application programming interface which allows wearable
efficient. applications to use services provided by the middlelayer.
4.1. System Architecture For example, applications can use the Decision Maker to
decide whether to perform operations locally or to spawn
We have devised and partly implemented a software a subtask on another machine.
infrastructure for a wearable adaptable system. The entire
software organization of the wearable device consists of The network layer finally provides a network interface
four layers as shown in Figure 4. that isolates applications and middlelayer from specific
network characteristics. In particular, it hides the fact
The highest layer is formed by the Application whether communication occurs over wireless radio
Manager, a graphical user-interface that allows the user to network or over a infrared network.
control the execution of individual applications. In
addition, it provides feedback about the status of the 4.2. Resource Qualification
wearable device (battery life, network connection etc.) The information maintained by the resource manager
and ongoing operations. and configuration manager is used for resource
The second layer is represented by the software qualification, a process by which we ensure that
applications currently present on the wearable device. applications and other software components to be loaded
Applications can be loaded or unloaded dynamically. We onto the wearable device do not exceed the available
have devised a mechanism which allows us to load entire resources.
application configurations over a network and install them Resource qualification is performed whenever software
onto the wearable computer.
Open issues: Using Strategist in the NETMAN
“Navigator” RAM
environment has raised a set of research issues:
1. How is a decision system kept up to date?
Tcl/Tk network
Interpreter modem card
driver A Strategist model is based on event probabilities. In
the wearable environment, these probabilities are often
preference file
“[Link]”
sound
sound card shifting over time. We are beginning to explore the use of
DLL
agents working on behalf of Strategist to maintain model
probabilities. In particular, we have begun to study the
Figure 5. Partial Resource means Strategist can gather information on-demand. Our
Dependency Graph current approach uses agents to retrieve up to date
information when it is needed. Returning to our example
is loaded onto the wearable device, whether it is pulled
of deciding between using out of date but local
from a server by the wearable device itself or is pushed
information versus downloading potentially more up to
onto the wearable device.
date information off of a remote server, one variable
Configuration and resource information is represented influencing the decision will be the time to download.
as resource dependency graphs. A resource dependency This in turn rests on the probability of sustaining a
graph is a labeled graph where nodes denote resources specific bandwidth for a given period of time. We have
and links dependencies between resources. Figure 5 shows written an agent who can probe a communication channel
an excerpt of a dependency graph as used by the for bandwidth statistics and map this into a probability
configuration manager. It expresses the fact that the distribution for use by the Strategist model. Of course,
application “Navigator'” directly or indirectly depends on given that there is no free lunch on a wearable – launching
seven other resources, some of them software and some of and managing agents costs resources – there is the
them hardware resources. Labels (which are not shown in question of how much effort to expend for any particular
Figure 5) are used to qualify the dependency. For example model. We have found that this has close ties to what the
we can express the fact that an application requires 8MB Uncertainty in AI (UAI) community has called the "value
of memory and 2MB of free disk space. of information" issue: what variables in a model are worth
knowing accurately? It is these variables that we may wish
Using resource qualification we can guarantee that
to provide attached agents.
software components to be loaded onto the wearable
device can actually be executed in the local environment 2. When can decision support be implemented by
and that installed software is compatible with the compiled policies?
hardware and software platform. For example, loading
Given that running Strategist on the wearable costs
software that allows two users to communicate using
resources, when can we use Strategist to analyze runtime
voice (such as an Internet phone application) does not
scenarios at compile time, i.e., before the wearable is put
make sense if the wearable computer is not equipped with
into action in the task domain? This will leave us with a
a microphone or speaker.
runtime decision matrix that often takes a fraction of the
5. Experiments resources of the full Strategist runtime system.
We have begun work on hosting a runtime decision Related to both issues 1 and 2 above, it costs resources
support system (DSS) in our middleware layer. The DSS to run Strategist on the wearable. Can we make resource
tool that we are using is Strategist from Prevision [1]. efficient decisions at runtime on whether to invoke a
Strategist is based on influence diagrams, which in turn Strategist decision process or go with a quick-and-dirty
are based on Bayes Nets. Strategist is well suited to compiled solution (e.g., “always get the most up to date
decision problems that involve probabilistic information information”)? Of course, this is a decision process in
tied into utility or value tables. itself.
The decision maker provides an API that allows 5.2. Resource Qualification
applications to make use of its decision making Our first efforts have focused on pulling necessary
capabilities. For example, an application can use Strategist pieces together on the wearable computer. We devised a
to determine whether to run an analysis onboard or pass it recursive descent algorithm that uses the resource
off to a powerful server. dependency graph to locate and download individual
pieces of a tool set that is needed for a specific task at components from the cache.
hand. This has proven sufficient to allow us to run an
We have developed and evaluated a cache replacement
interesting set of NETMAN examples.
strategy that uses two criteria to determine which
Open issues: Having built a suitable infrastructure for components (data items and/or software components)
dynamic configuration management we are now planning should be cached locally and when they should be
to move towards a more open distributed computing removed.
paradigm based upon an integration of CORBA and
Cost: By cost we mean the cost of reloading a
JAVA. This will allow us to turn our attention to a new set
component once it has been removed from the cache. We
of questions:
define cost in two alternative ways:
1. Ties to Application specific scheduling.
1. In the first approach, cost is defined as the time it
Can we tie the problem of marshaling of wearable takes to reload a component once it has been evicted from
resources into the broader question of application level the cache. The reload-time is determined by the size of the
resource management on the Internet? For instance, component and the current available network bandwidth
Wolski [2] is designing an “Internet Weather Service” at to the server the component is stored on. The larger the
UCSD as part of a meta-computing environment. His size of a component and the lower the available
service uses past, current and predicted communication bandwidth the higher the cost. Under this scheme, two
bottlenecks and packet storms (the weather) to bring components with the same size can have different reload-
resources together for an HPC application. We have costs if they are stored on servers with different network
begun to look at tying our local DSS tool into a larger characteristics.
model of the wearable environment supporting application
The cost measure based on reloading-times is not
specific scheduling.
static, but varies over time depending on the current state
2. Quality of Service (QoS). of the network. It is thus necessary to reevaluate the cost
of each component periodically, for example by probing
The notion of levels of quality brings a much needed
the available network bandwidth to the respective servers.
flexibility in the dynamic environments we work in.
Instead of an all or nothing view of the world, we can 2. In the second approach, we define the cost of a
reason about the quality (in terms of information accuracy, component as the amount of energy that is required to
processing resources, connection) we are willing to live reload it. Energy usage is a critical measure that directly
with given the cost to achieve various levels. For example, determines the lifetime of batteries. Many application
we have found ourselves reasoning about the type of domains require uninterrupted usage of the wearable
collaboration tools we will marshal for certain NETMAN computers over several hours which with current
tasks. In some cases the ideal is full audio and video technology can only be achieved by carrying several sets
between the NETMAN user and an expert at a helpdesk. of batteries. Since batteries are bulky and heavy they
However, this makes sense only if we can maintain a level significantly influence the form factor and possible usage
of connection quality. Once this slips below threshold, we of today’s wearable computers.
need to move to a lower quality tool (e.g., audio or even
The energy required for loading a component is
text chat) to match the connectivity resources we have.
directly related to the amount of data that needs to be
Currently we carry out this dynamic adaptation of tools
transferred, but also depends on how often a network
manually. We would eventually like to make it part of the
connection is torn down and needs to be reestablished.
middleware layer, itself.
Establishing a network connection over a dial-up network
5.3. Cache Management is costly.
The idea to reconfigure and adapt a wearable computer Importance: The second criteria we use in managing
by dynamically loading and unloading software the cache is importance. Importance is defined as how
components requires strategies for making efficient use of critical a component is for the functioning of the various
limited resources such as bandwidth, and battery lifetime. hardware and software components of a wearable
We have looked at caching as a means for reducing the computer. For example, in order to use a camera or any
amount of information that has to be transferred between other external device, certain system software components
the wearable computer and its environment. In particular (device drivers etc.) have to be installed on the wearable
we are interested in caching strategies that make decisions computer. Removing such components can render the
based upon the actual costs of loading or unloading wearable computer non-functional, thus they are more
important than, let’s say, a rarely used diagnostic tool.
More formally, we define importance of a component References
as the number of other components that depend on it. This
information can be extracted from the resource [1] Strategist by Prevision,
[Link]
dependency graph maintained by the configuration
manager; it is equal to the number of incoming [2] F. Berman, R. Wolski, S. Figueira, J. Schopf, and G. Shao,
dependency links in the transitive closure of the "Application-Level Scheduling on Distributed Heterogeneous
dependency graph. The higher the number of incoming Networks," Proceedings of Supercomputing ’96, November,
links, the higher the importance of a component. In 1996.
general, it is preferable to remove the least important [3] F. Bennet, Richardson T. and A. Harter. “Teleporting
components first. Mobile Application”, Proceedings of the Workshop on Mobile
Computing Systems and Applications, December 1994.
The concept of importance is not a mere technical
measure of existing dependencies between hardware or [4] T. Fallmyr. “Adaptable Mobile Systems”, IEEE Workshop
software components. In more than trivial cases the in Future Trends in Distributed Computing, August 1995.
importance of a component can only be evaluated in the [5] D. Goldberg and M. Tso. “How to Program Networked
context of the user’s tasks and goals. More details on this Portable Computers”, Proceedings of the 4th Workshop on
topic can be found in [12]. Workstation Operating Systems (WWOS-IV), October 1993.
Open Issues: We have come to the conclusion that [6] M.F. Kaashoeck, T. Pinckney, and J. A. Tauber. “Dynamic
cache management has to be viewed as one more piece of Documents: Mobile Wireless Access to the WWW”,
Proceedings of the Workshop on Mobile Computing Systems
a dynamically changing and adaptable middleware layer. and Applications, December 1994.
In a dynamic environment it is necessary to reevaluate the
current strategy and adjust it if necessary, instead of using 7] J.J. Kistler and M. Satyanarayanan. “Disconnected Operation
a static policy, fixed at predeployment time. An important in the Coda File System”, Proceedings of the Thirteenth ACM
question for the future is how the various criteria used for Symposium on Operating Systems Principles, Pages 213-225,
1991.
defining a cache replacement strategy (reload time, energy
usage, importance) can be combined effectively into an [8] Sun Microsystems, “Java White Papers”, available at
overall decision model. [Link]
Given this view, how can we adapt our cache strategy [9] B.N. Schilit, N.M. Theimer and B.B. Welch, “Customizing
to meet changing resource availability? For instance, we Mobile Applications”, in Proceedings USENIX Symposium on
Mobile & Location-Independent Computing, Pages 129-138,
may have predictable and sustained “blasts” of bandwidth August 1993.
for short periods of time (e.g., when the NETMAN is able
to plug in to an Ethernet wall socket). Under these [10] T. Watson, “Application Design for Wireless Computing”,
conditions, we may be best off moving to a “standard” in Proceedings of the Workshop on Mobile Computing Systems
cache strategy. Once this connection is lost, other and Applications, December 1994.
strategies will likely be more appropriate. In essence, [11] Steve Fickas, Gerd Kortuem, Zary Segall. Wearable
strategies are needed for managing a cache as a dynamic, Computing Web Site, University of Oregon,
adaptable service. http//[Link]/research/wearables.
[12] Gerd Kortuem, Steve Fickas, Zary Segall, “On-Demand
6. Conclusion Delivery of Software in Mobile Environments”, Nomadic
We have designed, implemented and partially Computing Workshop, 11th International Parallel Processing
evaluated a software infrastructure for wearable computer Symposium, April 1-5, 1997, Geneva, Switzerland. Available at
http//[Link]/wearables/Papers/[Link].
systems. We are emphasizing the dynamic adaptability
requirement for this class of systems. Our results are [13] Steve Fickas, Gerd Kortuem, Zary Segall, “NETMAN:
pointing out the need for a middleware layer capable of Collaborative Network Maintenance with Wearable
presenting a number of run time mechanisms and policies Computers”, submitted to GROUP97, available online at
allowing for dynamic application reconfiguration and out- http//[Link]/wearables/Papers/[Link].
sourcing. Our initial experience and measurements with [14] Poor, R. (1996), “IRX 2.0”, available online at
the NETMAN wearable system shows our approach to be [Link]
sound. Given the novelty of this field we see value in [15] Roy Want, Andy Hopper, Veronica Falcao, Jonathon
pointing out our view on the requirements and the open Gibbons, “The Active Badge Location System”, ACM
research questions related to the optimal structure of the Transactions on Information Systems, Vol. 10, No. 1, January
software organization for wearable information systems. 1992.
View publication stats