|
Pervasive Computing Education
Mohan Kumar
University of Texas at Arlington
Pervasive computing encompasses many
areas of computer science, including distributed systems, mobile
computing, wireless networks, device technology, and intelligent
systems. You can apply pervasive computing in almost all areas of
human activity, and over the last few years, research in pervasive
computing has progressed rapidly in several leading universities
and industries globally.
Many graduate students are doing research in pervasive computing
and related areas. However, although seminar-based pervasive computing
courses are popular in many universities, no formal structures exist
for a graduate-level course. Here, I present the outlines of a formal
graduate-level course that will expose our students to pervasive
computing challenges.
What is pervasive computing?
Pervasive computing is the future of computing. It encompasses
networks, mobile computing and distributed computing, and more-agent
technologies, middleware, situation-aware computing, and so on.
Pervasive computing envisions giving you the services you want-when,
where, and how you want them. We expect these services to be invisible,
interoperable, proactive, mobile, intelligent, and secure in heterogeneous
and mobile environments. Recent advances in hardware and software
infrastructure enable and support attainment of these goals, but
we need to develop mechanisms that allow existing entities to provide
meaningful and unobtrusive services to applications.
Pervasive computing incorporates research findings from many areas
of computer science to meet the challenges posed by numerous applications.
We should encourage young researchers to think creatively and apply
these technologies to meet pervasive computing's challenges (highlighted
in many outstanding papers in recent years1,2).
Course contents
Pervasive computing and its applications will become pervasive
if and only if we can
- Make computing devices disappear into the background
- Make a smooth transition from a device-, software-, or application-centric
approach to a user- and service-centric approach
- Provide unobtrusive, yet ubiquitous services to users
- Overcome the limitations of the end-to-end Internet
- Allow heterogeneous hardware and software to coexist and work
together
- Discover users, devices, and services
Start the course with an overview of this list. At the end of the
class, ask your students to revisit it and see if they've uncovered
solutions to any of these problems.
Before taking the course, students will need knowledge and skills
in several computer science areas:
- Communication networks and the Internet: UDP (user datagram
protocol), TCP/IP (transmission control protocol/Internet protocol),
network management, network performance metrics, quality of service
basics, and wireless networking technologies (cellular and wireless
local area networks)
- Distributed computing: resource scheduling, load balancing,
and task migration
- Intelligent systems: rule-based techniques, prediction algorithms,
image and pattern recognition, and machine-learning basics
This course aims to motivate students by exposing them to the issues
and challenges facing pervasive computing through lectures, technical
paper reading, case studies, and projects. Students will have the
opportunity to show their creativity and leverage knowledge gained
in other courses. The course will introduce students to available
pervasive computing technologies, starting with devices and networking
followed by further lectures on the remaining course modules outlined
in the following sections. Each of the modules has corresponding
teaching resources (see the related sidebar). Students will also
review ongoing pervasive computing projects.
Device and network technologies
Students need to understand device and network technologies
to be able to create a seemingly uniform computing space in a heterogeneous
environment. Studying innovations in embedded devices and sensors
also helps increase awareness of the devices we can use in our applications.
For example, looking at the design and architecture of Berkeley's
sensor motes and TinyOS (http://webs.cs.berkeley.edu/tos)
is a good starting point. Sensor motes consist of a small, low-power
radio and processor board and one or more sensor boards. TinyOS
is an event-based operating environment designed for use with such
embedded networked sensors. It allows tiny devices (disappear into
the environment) to consume little or no power (perhaps powered
by ambient pressure, light, or temperature), and communicate seamlessly
through a simple, all-purpose communication protocol.
Because the Internet will continue to be the backbone network for
some time, students should examine how to overcome the Internet's
end-to-end architecture while networking devices, services, and
users. (See the related teaching
resource.)
Heterogeneity and interoperability
Pervasive computing requires cooperation and collaboration among
various devices and software entities. Additionally, adaptation
software should introduce minimal and scalable overhead. In today's
environment, homogeneous devices and software seem almost unthinkable,
but you can build software bridges across various entities to ensure
interoperability. So, we need to ask: How many such bridges should
we create? What about the overhead the bridges introduce? The Oxygen
project (http://oxygen.lcs.mit.edu)
envisions using uniform hardware and network devices to enable smooth
interoperability. For example, exploiting the concepts of agents
and services can overcome low resource hardware limitations.
This module should help students explore both the development of
effective, flexible middleware that mask uneven conditions and of
portable, lightweight application software. (See
the related teaching resource.)
Mobile agents
Agents traditionally work on behalf of users, devices, and applications.3
Additionally, agents can effectively provide transparent interfaces
between disparate entities in the environment, thus enhancing invisibility.
Students should see how agent interaction and collaboration contributes
to pervasive computing by overcoming the limitations of numerous
resource-limited devices. (See
the related teaching resource.)
Service discovery
Service discovery is the process of discovering software processes
and agents, hardware devices, and services. Many researchers have
addressed service discovery in mobile environments, but service
discovery in pervasive computing is still in its infancy. In pervasive
computing, service discovery provides environment-awareness to devices
and device-awareness to the environment. Service provisioning, advertisement,
and service discovery are this module's key components. A good introduction
might cover existing service discovery mechanisms. (See
the related teaching resource.)
Proactive and invisible services
The development of computing tools hitherto has been generally reactive
or interactive. However, the number of networked computers will
surpass the number of users within a few years, and users of pervasive
computing applications will want to transparently receive "what
I want" types of information and services. David Tennenhouse, in
his thought-provoking article, envisions that most computing devices
will be proactive.4
Overlay networks can be effectively employed to provide proactive
services to applications. Active networks can enhance network infrastructure
for pervasive computing, ensure just-in-time network management,
and provide privacy and trust.5
Students should consider these challenges:
- How to leverage research in situation-aware computing; device,
user, and application profiling; and software agents to enhance
services that existing computing devices can provide
- How to exploit active network technology to overcome the Internet's
end-to-end limitations to provide just-in-time services
(See the related teaching resource.)
Mobility and location awareness
Mobile computing devices have limited resources, are likely to be
disconnected, and are required to react transparently to frequent
environmental changes. Typically, communication among mobile devices
requires a wireless interface such as a wireless LAN, a cellular
network, a satellite network, or a combination of these. We need
to extend techniques developed for routing, multicasting, caching,
and data access in mobile environments to pervasive environments.
Provisioning uniform services regardless of location is a vital
component of mobile computing. Discussion should focus on how to
provide adaptive location-aware services that fit the location and
situation. (See the related teaching
resource.)
Intelligence and smart environments
Many universities and research laboratories are working on smart
home projects. Smart homes let occupants interact with home equipment
and appliances by exploiting knowledge gained through user behavior.
(Current smart homes are not advanced enough to let users take a
virtual home with them.) For example, in a crisis management situation,
you might want a remote-sensing system to infer the user's intention
and current situation and alert the user to a possible crisis prior
to its occurrence. In this module, students should think about how
to provide these types of proactive, context-aware, or situation-oriented
responses. (See the related
teaching resource.)
Security
We significantly compromise security to support proactive system
performance, so to build user confidence, we must address this issue.
But, security and privacy also depend on the situation. For example,
a patient in an emergency condition requires a swift response, and
this might compromise privacy. We must determine how to strike a
balance between proactive action and privacy; security and efficiency
(cost); and security and privacy and quality. Investigations in
mobile and ad hoc network security have progressed significantly
in recent years.6,7
Furthermore, pervasive environments inevitably comprise software
agents and services. The module should discuss how to ensure secure
mobile code transmission and execution on remote devices. It should
also discuss how to protect devices and software from mobile code
poses challenges. (See the related
teaching resource.)
Case studies
Discussing ongoing pervasive computing projects can offer valuable
insight and information. For example, Carnegie Melon University's
project Aura (www-2.cs.cmu.edu/~aura)
applies two broad concepts: self-tuning and proactive response.8
Self-tuning lets layers adapt by observing the demands made on them
and adjusting their performance and resource usage characteristics
accordingly. Aura can provide each user with an invisible halo of
computing and information services. These services persist regardless
of location and provide proactive services to the user.
MIT's Oxygen project is a large all-encompassing research initiative,
focused on improving the human-computer interface. It concentrates
on eight, environment-enabled technologies: H21, E21, N21, and five
others aimed at improving user experiences such as speech, intelligent
knowledge access, collaboration, automation of everyday tasks, and
adaptation of machines to user needs.9
(See the related teaching resource.)
Projects
Here are some interesting projects for pervasive computing. Two
have actually taken place.
Project 1
We see Palm handheld computers and HP LaserJet printers almost everywhere
today, but can we upload a spreadsheet from the Palm computer to
an HP printer directly, assuming they are both on the same network?
The answer in most cases is No! It's possible if you have the right
kind of drivers installed and you configure the devices. But, what
if you're a busy executive who goes from one office to another and
need to print from your Palm to different printers in each location?
Graduate students at the Department of Computer Science and Engineering,
University of Texas at Arlington (CSE@UTA, www.cse.uta.edu) developed a
project using laptops and Sharp Zaurus handheld computers to do
just that.
Project 2
Assemble four graduate students for this group project and
have each student maintain a brief description of their work on
a different type of computer-handheld, laptop, or desktop. Students'
entries should be visible to all other group members immediately,
and all of them should be able to interact using an electronic white
board.
Project 3
A city's central business area has several restaurants and parking
places distributed geographically. It's very hard to get a parking
space and a table during lunchtime. It's even harder to get a parking
space close to a restaurant with available tables. Create a service
on the pervasive computing environment that dynamically keeps track
of available parking spaces and tables in restaurants. Users can
contact this service through a palm device or cell phone. Users
give the service their location, food preference, and a time limit.
The service processes the request and finds a parking space and
restaurant match, minimizing distances (driving and walking) and
waiting time. You can assume availability of GPS-enabled devices,
PCs, cameras, sensors, and so on.
This project took place as part of an advanced course on
special topics at CSE@UTA. Two separate groups of students successfully
completed this project. One group created services using CORBA (common
object request broker architecture) and the other used DCOM (Distributed
Component Object Model).
Project 4
John Smith, a medical surgeon, takes his lunch at the cafeteria.
While walking to the cafeteria, he makes notes on his handheld device
about a patient he just visited. During lunch, John usually watches
a live basketball game and collects highlights (and scores) of finished
games on his handheld device. When he is at the cafeteria, he also
receives messages and vital information from other doctors, patients,
students, and nurses. He might request the latest patient histories
from the patient records systems. On some days, he consults remotely
with his patients: he listens to sounds, examines images, and processes
data provided by remote consultation machines, patients, and nurses.
On his walk back to the clinic, he uses the handheld computer to
check on his one-year-old daughter playing at the children's playhouse.
Try having a team of students carry out this complex scenario.
It requires that they take care of hand-off and maintain consistency
between handheld devices (doctor and nurse) and a clinic computer.
Proactive prefetching by the server at the cafeteria would help
with the game transmission. They'll also need to prioritize medical
information and messages over the game. They can emulate some
parts of this project. For example, the group could emulate a tabletop
device in the cafeteria by a desktop PC in the laboratory. You can
divide the project into phases and complete one phase at a time.
The establishment of
a graduate-level pervasive computing course will hopefully attract
more graduate students to pervasive computing. In turn, pervasive
computing students will be able to apply their knowledge in such
areas as telemedicine, crisis management, education, manufacturing,
transportation, defense, and entertainment. Moreover, introducing
pervasive computing into our curricula will enrich research efforts
with fresh ideas and broaden application areas with new solutions.
Acknowledgments
This material is based on work supported
by the National Science Foundation under Grant Number 0129682.
I thank Sajal Das of the University of Texas at Arlington and Anand
Tripathi, DS Online's Education editor, for their valuable comments
and feedback.
References
- M. Satyanarayanan, "Pervasive Computing: Vision and Challenges,"
IEEE Personal Comm., vol. 8, no. 4, Aug. 2001, pp. 10-17; http://dl.comsoc.org/cocoon/comsoc/servlets/GetPublication?id=37522.
- G. Banavar et al., "Challenges: An Application Model
for Pervasive Computing," Proc. 6th Ann. Int'l
Conf. Mobile Computing and Networking, ACM Press, 2000, pp. 266-274;
http://portal.acm.org/citation.cfm?id=345957&coll=portal&dl=ACM&CFID=10209828&CFTOKEN=40423702.
- P. Bellavista, A. Corradi, and C. Stefanelli, "Mobile Agent
Middleware for Mobile Computing," Computer, vol. 34, no. 3, Mar.
2001, pp. 73-82; www.computer.org/computer/co2001/r3073abs.htm.
- D. Tennenhouse, "Proactive Computing," Comm. ACM,
vol. 43 no. 5, May 2000, pp. 43-50; http://portal.acm.org/citation.cfm?id=332837&coll=portal&dl=ACM&CFID=10274549&CFTOKEN=21011761.
- R. Grimm et al., "A System Architecture for Pervasive Computing,"
Proc. 9th Workshop on ACM SIGOPS European Workshop,
ACM Press, 2000, pp. 177-182; http://portal.acm.org/citation.cfm?id=566763&coll=portal&dl=ACM&CFID=10274549&CFTOKEN=21011761.
- M. Burnside et al., "Proxy-Based Security Protocols in Networked
Mobile Devices," Proc. 2002 ACM Symp. Applied Computing, ACM Press,
2002, pp. 265-272; http://portal.acm.org/citation.cfm?id=508845&jmp=cit&dl=portal&dl=ACM&CFID=10274549&CFTOKEN=21011761#CIT.
- S.L. Keoh and E. Lupu, "Towards Flexible Credential Verification
in Mobile Ad-Hoc Networks," Proc. 2nd ACM Int'l
Workshop on Principles of Mobile Computing, ACM Press, 2002, pp.
76-83; http://portal.acm.org/citation.cfm?id=584503&coll=portal&dl=ACM&CFID=10274549&CFTOKEN=21011761.
- D. Garlan et al., "Project Aura: Toward Distraction-Free Pervasive
Computing," IEEE Pervasive Computing, vol. 1, no. 2, Apr.-June
2002, pp. 22-31; http://www.computer.org/pervasive/pc2002/b2022abs.htm.
- M.L. Dertouzos, "The Future of Computing," Scientific American,
Aug. 1999, pp. 52-55; www.sciam.com/article.cfm?articleID=000C07AA-99F2-1C72-9EB7809EC588F2D7.
Mohan Kumar is an
associate professor in the Computer Science and Engineering Department
at the University of Texas at Arlington. His research interests
include pervasive computing, mobile and distributed computing, active
networks, and agent technologies. He has a PhD in computer science
from the Indian Institute of Science and is a senior member of the
IEEE. Contact him at kumar@cse.uta.edu.
| Teaching
Resources |
|
Each module outlined in the main text has a corresponding
teaching resource listed here.
Device and network technologies
Upkar Varshney and Ron Vetter1
give a very good overview of existing wireless network technologies.
You can use active networks to enhance network infrastructure
for pervasive computing, ensure network management, provide
privacy and trust, and overcome some of the limitations of
the Internet's end-to-end architecture. David Witherall offers
insight on the potential of active networks.2
Roy Want and his colleagues discuss the evolution of disappearing
hardware.3
Heterogeneity and interoperability
The Java 2, Micro Edition (http://java.sun.com/j2me)
platform attempts to interface embedded devices and create
a flexible user interface. Students would benefit from studying
J2ME and its application on simple prototypes involving heterogeneous
devices. Sumi Helal has given a good discussion on the potential
of Java in pervasive applications.4,5
Mobile agents
Key resources include agent mechanisms, the Foundation for
Intelligent Physical Agents (http://fipa.org),
Mobile Agent System Interoperability Facility (http://sun195.iit.unict.it/MAP/masif.html)
agent standards, case studies, Aglets, and Grasshopper agent
structures. Aglets (www.trl.ibm.com/aglets/index_e.htm)
are agents that employ message passing through HTTP. Grasshopper
(www.cordis.lu/infowin/acts/analysys/products/thematic/agents/ch4/ch4.htm)
is a universal agent platform based on the Object Management
Group MASIF and FIPA standards.
Service discovery
Good examples for study include Jini (www.jini.org),
Salutation (www.salutation.org),
and the Intentional Naming System (INS, http://nms.lcs.mit.edu/projects/ins/).6
You might also discuss description languages such as the Web
Services Description Language (www.w3.org/TR/2002/WD-wsdl12-20020709/)
and the Re-Usable Data Language (http://xml.coverpages.org/rdl.html).
Proactive
and invisible services
For good sources on context-aware computing, see the papers
by Hui Lei and his colleagues and Anind Dey are.7,8
Papers by David Tennenhouse and Robert Grimm and his colleagues
cover proactive computing and active networks well.9,10
Mobility and
location awareness
Charles Perkins' article gives a very good tutorial on mobile
IP and cellular handoff.11
András Valkó covers cellular IP in his paper.12
J. Antonio García-Macías and his colleagues discuss quality
of service issues in the presence of mobility.13 Rajmohan Rajaraman's paper deals
with routing and energy conservation techniques in mobile
and ad hoc networks.14
Intelligence
and smart environments
To create smart spaces, we need an intelligent, situation-aware
system augmented by middleware support. The IEEE Pervasive
Computing special issue on integrated environments is one
of the best sources for an overview of ongoing projects on
smart environments.15 In it, Vince Stanford's column
deals with health care applications and security challenges.
It also shows how with middleware services, you could apply
the localized Sentient Computing environment,16
which has very limited functionality, to pervasive health
care.
Several methods for knowledge representation in intelligent
spaces have been investigated, and several promising smart
environments have been developed.17
Security
The IEEE Pervasive Computing special issue on security and
privacy is one of the best sources for an overview of security
issues and challenges in pervasive computing.18
Case studies
In addition to Aura and Oxygen, IBM's PIMA (Platform-Independent
Model for Applications) project is worth investigation (www.research.ibm.com/PIMA).
References
- U. Varshney and R. Vetter, "Emerging Mobile and Wireless
Networks," Comm. ACM, vol. 43, no. 6, June 2000, pp. 73-81;
http://portal.acm.org/citation.cfm?id=336478&jmp=cit&dl=GUIDE&dl=ACM&CFID=10274549&CFTOKEN=21011761#CIT.
- D. Witherall, "Active Network Vision and Reality: Lessons
from a Capsule-Based System," Proc. 17th ACM
Symp. Operating Systems Principles, vol. 33, no. 5, June
1999, pp. 64-79; http://portal.acm.org/citation.cfm?id=319156&jmp=cit&dl=GUIDE&dl=ACM&CFID=10274549&CFTOKEN=21011761#CIT.
- R. Want et al., "Disappearing Hardware," IEEE Pervasive
Computing, vol. 1, no. 1, Jan.-Mar. 2002, pp. 36-47; http://computer.org/pervasive/pc2002/b1036abs.htm.
- S. Helal, "Pervasive Java," IEEE Pervasive Computing,
vol. 1, no. 1, Jan.-Mar. 2002, pp. 82-85; http://computer.org/pervasive/pc2002/b1toc.htm.
- S. Helal, "Pervasive Java, Part II," IEEE Pervasive Computing,
vol. 1, no. 2, Apr.-June 2002, pp. 85-89; http://computer.org/pervasive/pc2002/b2toc.htm.
- W. Adjie-Winoto et al., "The Design and Implementation
of an Intentional Naming System," ACM SIGOPS Operating Systems
Rev., Proc. 17th ACM Symp. Operating Systems
Principles, vol. 33, no. 5, 1999, pp. 186-201; http://portal.acm.org/citation.cfm?id=319164&coll=portal&dl=ACM&CFID=10445909&CFTOKEN=74872664.
- H. Lei et al., "The Design and Applications of a Context
Service," ACM SIGMOBILE Mobile Computing and Communications
Rev., vol. 6, no. 4, Oct. 2002, pp. 45-55; http://portal.acm.org/citation.cfm?id=643554&coll=portal&dl=ACM&CFID=10445909&CFTOKEN=74872664.
- A.K. Dey, "Understanding and Using Context," Personal
and Ubiquitous Computing, vol. 5 no. 1, Jan. 2001, pp. 4-7;
http://portal.acm.org/citation.cfm?id=593572&coll=portal&dl=ACM&CFID=10445909&CFTOKEN=74872664.
- D. Tennenhouse, "Proactive Computing," Comm. ACM, vol.
43, no. 5, May 2000, pp. 43-50; http://portal.acm.org/citation.cfm?id=332837&jmp=cit&dl=GUIDE&dl=ACM&CFID=10274549&CFTOKEN=21011761#CIT.
- R. Grimm et al., "A System Architecture for Pervasive
Computing," Proc. 9th Workshop ACM SIGOPS European
Workshop, ACM Press, 2000, pp. 177-182; http://portal.acm.org/citation.cfm?id=566763&coll=portal&dl=ACM&CFID=10274549&CFTOKEN=21011761.
- C.E. Perkins, "Mobile Networking through Mobile IP,"
IEEE Internet Computing, vol. 2, no. 1, Jan./Feb. 1998,
pp. 58-69; http://computer.org/internet/ic1998/w1058abs.htm.
- A.G. Valkó, "Cellular IP: A New Approach to Internet
Host Mobility," ACM SIGCOMM Computer Comm. Rev., vol. 29,
no. 1, Jan. 1999, pp. 50-65; http://portal.acm.org/citation.cfm?id=505758&jmp=cit&dl=GUIDE&dl=ACM&CFID=10274549&CFTOKEN=21011761#CIT.
- J.sA. García-Macías et al.,"Quality of Service and Mobility
for the Wireless Internet," Wireless Networks, vol. 9, no.
4, July 2003, pp. 341-352; http://portal.acm.org/citation.cfm?id=778497&jmp=cit&coll=GUIDE&dl=ACM&CFID=10274549&CFTOKEN=21011761#CIT.
- R. Rajaraman, "Topology Control and Routing in Ad Hoc
Networks: A Survey," ACM SIGACT News, vol. 33, no. 2, June
2002, pp. 60-73; http://portal.acm.org/citation.cfm?id=564602&jmp=cit&dl=GUIDE&dl=ACM&CFID=10274549&CFTOKEN=21011761#CIT.
- IEEE Pervasive Computing, special issue on integrated
environments, vol. 1, no. 2, Apr.-June 2002; www.computer.org/pervasive/pc2002/b2toc.htm.
- R. Curwen et al., Sentient Computing, tech. report 1999.13
(video), AT&T Laboratories Cambridge, UK, 1999.
- G. Pingali et al., "Steerable Interfaces for Pervasive
Computing Spaces," 1st IEEE Int'l Conf. Pervasive
Computing and Communications (PerCom 2003), 2003; www.percom.org/percom_2003/slides/pingali_IE1_percom2003.pdf.
- IEEE Pervasive Computing, special issue on security and
privacy, vol. 2, no. 1, Jan.-Mar. 2003; www.computer.org/pervasive/pc2003/b1toc.htm.
|
|