Sign up & Download
Sign in

Kernel-middleware interaction to support adaptation in pervasive computing environments

by F A Samimi, P K McKinley, S M Sadjadi, P Ge
Proceedings of the 2nd workshop on Middleware for pervasive and adhoc computing (2004)

Cite this document (BETA)

Available from portal.acm.org
Page 1
hidden

Kernel-middleware interaction to support adaptation in pervasive computing environments

Kernel›Middleware Interaction to Support Adaptation
in Pervasive Computing Environments
F. A. Samimi
P. K. McKinley
Department of Computer Science
Michigan State University
East Lansing, Michigan
{farshad, mckinley}@cse.msu.edu
S. M. Sadjadi ∗
School of Computer Science
Florida International University
Miami, Florida
sadjadi@cs.fiu.edu
P. Ge
Department of Computer Science
Michigan State University
East Lansing, Michigan
gepeng@cse.msu.edu
In Proceedings of the 2nd International Workshop on Middleware for Pervasive and Ad-Hoc Computing (MPAC 04),
pages 140-145, Toronto, Ontario, Canada, October 2004.
ABSTRACT
In pervasive computing environments, conditions are highly vari-
able and resources are limited. In order to meet the needs of ap-
plications, systems must adapt dynamically to changing situations.
Since adaptation at one system layer may be insufcient, cross-
layer, or vertical approaches to adaptation may be needed. More-
over, adaptation in distributed systems often requires horizontal co-
operation among hosts. This cooperation is not restricted to the
source and destination(s) of a data stream, but might also include
intermediate hosts in an overlay network or mobile ad hoc net-
work. We refer to this combined capability as universal adaptation.
We contend that the model dening interaction between adaptive
middleware and the operating system is critical to realizing uni-
versal adaptation. We explore this hypothesis by evaluating the
Kernel-Middleware eXchange (KMX), a specic model for cross-
layer, cross-system adaptation. We present the KMX architecture
and discuss its potential role in supporting universal adaptation in
pervasive computing environments. We then describe a prototype
implementation of KMX and show results of an experimental case
study in which KMX is used to improve the quality of video stream-
ing to mobile nodes in a hybrid wired-wireless network.
Keywords: Adaptive middleware, pervasive computing, cross-layer
adaptation, universal adaptation, multimedia communication, qual-
ity of service, video streaming, wireless network.
1. INTRODUCTION
Pervasive computing removes the traditional boundaries for how,
when, and where humans and computers interact [29]. Software in
such systems must adapt to changes in the surrounding physical
environment as well as in the virtual environment. In particular,
conditions at the “wireless edge” of the Internet are often highly
dynamic, requiring software in mobile devices to balance several
∗This research was performed while this author was a graduate stu-
dent at Michigan State University.
Permission to make digital or hard copies of all or part of this work for
personal or classroom use is granted without fee provided that copies are
not made or distributed for profit or commercial advantage and that copies
bear this notice and the full citation on the first page. To copy otherwise, to
republish, to post on servers or to redistribute to lists, requires prior specific
permission and/or a fee.
2nd Workshop on Middleware for Pervasive and Ad-Hoc Computing
Toronto, Canada
Copyright 2004 ACM 1-58113-951-9 ...$5.00.
conicting and possibly cross-cutting concerns, including quality-
of-service on wireless connections, changing security policies, and
energy consumption [15].
One approach to this problem is adaptive middleware [5, 11, 13,
28, 31, 24]. Since the traditional role of middleware is to hide
resource distribution and platform heterogeneity from the business
logic of applications, it is a logical place to put adaptive behavior
related to concerns such as QoS, security, and energy management.
Specically, middleware can exploit application-level knowledge
needed for adaptation, but can adapt the system transparently with
respect to to the application code itself.
However, middleware alone cannot handle all types of adapta-
tion. The operating system manages essential system resources
that are typically not controllable from upper layers. Only the op-
erating system can directly control adaptive behavior of hardware
components, such as placing the network interface card in power
save mode or adjusting the frequency of the CPU. Moreover, since
the operating system is usually more responsive than application-
level programs, implementing certain adaptive functionality there
can produce more agile system behavior [19].
To address these issues, several cross-layer adaptation frame-
works have been proposed recently [16, 8, 9, 3, 18]. In these
systems, adaptive entities at different layers cooperate to realize
system-wide adaptive behavior. For example, middleware can make
better decisions by working with the operating system, which has a
system-wide view of resource usage. Middleware might also ask
the operating system to carry out certain tasks, such as custom
CPU scheduling, to improve performance. Conversely, the operat-
ing system can incorporate application-specic semantics into tasks
such as packet ltering and implementation of security policies.
This vertical cooperation among system layers is particularly
important in pervasive computing contexts, where adaptation is
needed frequently, but resources may be severely limited. How-
ever, adaptation in distributed environments also requires coopera-
tion among multiple platforms. A common example of this hori-
zontal cooperation is when a data stream is adapted at a source node
via a particular action (such as enhanced error control or encryp-
tion) that requires a corresponding action at the receiving node(s).
In addition, if the data stream traverses multiple hosts, as in an over-
lay network or mobile ad hoc network, then some or all of those
nodes might also participate in the adaptation process, possibly us-
ing local cross-layer mechanisms. We refer to this combination as
universal adaptation.
We contend that the model for kernel-middleware cooperation is
a critical element in realizing universal adaptation. To explore this
Page 2
hidden
issue, we propose and evaluate the Kernel-Middleware eXchange
(KMX), a model for interaction between middleware and the op-
erating system across a collection of cooperating nodes, such as a
mobile ad hoc network or an overlay network. KMX is intended
to be a general framework into which specic software adaptation
technologies can be inserted. We have constructed a prototype that
incorporates tools and techniques from the RAPIDware adaptive
middleware project [1]. We present an experimental case study that
illustrates the use of KMX to enhance video multicast streaming to
mobile nodes in a hybrid wired-wireless network.
The remainder of this paper is organized as follows. Section 2
discusses related work. In Section 3, we introduce the KMX model
and its role in universal adaptation. Section 4 describes the con-
stituent components of our KMX prototype and how they interop-
erate. In Section 5, we present and discuss the case study in video
streaming. Finally, in Section 6, we summarize the paper and dis-
cuss possible future research directions.
2. RELATED WORK
The KMX model and the case study are related to several re-
search areas, but most closely to cross-layer adaptation and overlay
networking. We briey review projects that represent current re-
search in the these areas.
Several recent projects address cross-layer cooperation for system-
wide adaptation. Odyssey [16] is an early application-aware adap-
tation framework that extends the operating system and uses kernel-
level interception and communication to monitor resource expecta-
tions and availability. The GRACE project [3] uses cross-layer ap-
proach to support optimized adaptation in multimedia applications
within the constraints of energy, time, and bandwidth. The main
idea is to coordinate local adaptations at the hardware, operating
system, and application layers to achieve optimal global adapta-
tion. DEOS [19] also addresses adaptation to enhance QoS in dis-
tributed multimedia applications. DEOS uses ELinux [21], which
facilitates cross-layer adaptation by extending user/kernel commu-
nication and several subsystems of the Linux kernel. More recently,
the developers of DEOS have investigated automatic generation of
adaptive software [20]. The Milly Watt project [8] introduces mod-
els to make mobile computing more power efcient. It addresses
the partnership between applications, operating system, and hard-
ware to attain energy efciency, for example, power-aware memory
management [12].
Generally, the above projects focus on coordination between mul-
tiple layers on a single platform, as well as the exchange of events
between the end nodes of a data stream. The KMX model also
addresses these concerns, but in addition focuses on distributed co-
ordination of adaptive actions among a collection of hosts cooper-
ating to achieve a specic communication goal. In this sense, KMX
is related to coordination mechanisms for overlay networks [4, 30]
and mobile ad hoc networks [7, 6]. For example, Conductor [30] is
an overlay network framework for distributed adaptation of data
streams. The main idea is to adapt a data ow at intermediary
nodes, on its way from the source to the destination, transparently
to the applications running on the end nodes. On the other hand,
Roofnet [7] is an experimental multi-hop wireless ad hoc network
in which system-level mechanisms (specically, MAC-level retrans-
missions) are used to enhance upper layer components (specically,
the routing protocol executed on each node).
Conductor and Roofnet use systems-oriented approaches to dis-
tributed coordination. While KMX has similar goals, it uses adap-
tive middleware as the key enabling technology for distributed adap-
tation. Moreover, rather than addressing a particular type of adap-
tation, KMX is intended to serve as a more general framework for
building and extending distributed adaptive frameworks over com-
modity systems.
3. KMX MODEL
KMX has its origins in the RAPIDware project [1], which fo-
cuses on the design of high assurance adaptive middleware. RAPID-
ware uses a combination of computational reection [14] and aspect-
oriented programming [10] to support software recomposition at
run time. Together, these technologies enable dynamic congura-
tion by insertion of software sensors to detect environmental changes
and insertion of actuators to realize corresponding responses. One
example is MetaSockets [26], which extend regular Java sockets
to provide adaptable communication services. MetaSockets enable
middleware or an application to monitor the communication sta-
tus and to insert, remove, and congure adaptation lters at run
time, for example, using forward error correction (FEC) to make
the data communication resilient to packet loss. Further, we have
developed a generator framework, called TRAP [25], that enables
a developer to augment a software component with a middleware
infrastructure that supports adaptation transparently from applica-
tions. For example, TRAP can be used to extend an application to
use MetaSockets, transparently to the original application code.
The KMX model extends these concepts (sensors, actuators, and
adaptation transparency) to include not only middleware, but also
the operating system kernel. Figure 1 shows the main components
of the KMX architecture including coordination and decision-making
unit, sensors, actuators, and transient proxies. The coordination
and decision-making unit is a middleware component that man-
ages adaptation globally and triggers required adaptation at mul-
tiple layers according to the specied policies. For example, if the
network bandwidth becomes overloaded, it can decide which appli-
cation must decrease its network bandwidth usage and accordingly
triggers the required adaptation.
Application
Middleware
OS
HardwareC
ro
ss
-L
ay
er
Co
or
din
ati
on
Incoming Control/Data
Networking
Subsystem
Coordination and
Decision Making
Kernel- and
hardware-level
status
information
Resources
Network
CPU
Memory
Interception
Outgoing Control/Data
Actuator
Sensor Incoming/Outgoing
Flow
Control Line
Transient
Proxy
Legend
Figure 1: KMX architecture.
Sensors reside in the middleware and operating system layers
and monitor the status of various subsystems to gather information
for the coordination and decision-making unit. A specic sensor
might monitor the number of packets dropped at the kernel due to
buffer overow and inform the coordination and decision-making

Sign up today - FREE

Mendeley saves you time finding and organizing research. Learn more

  • All your research in one place
  • Add and import papers easily
  • Access it anywhere, anytime

Start using Mendeley in seconds!

Already have an account? Sign in

Readership Statistics

11 Readers on Mendeley
by Discipline
 
 
 
by Academic Status
 
27% Student (Master)
 
27% Ph.D. Student
 
27% Researcher (at a non-Academic Institution)
by Country
 
27% China
 
18% Brazil
 
9% Hong Kong