Back to Distributed Systems Online homepage

Story location: http://dsonline.computer.org/0307/d/d7edu_print.htm

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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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

  1. 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.

  2. 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.

  3. 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.

  4. S. Helal, "Pervasive Java," IEEE Pervasive Computing, vol. 1, no. 1, Jan.-Mar. 2002, pp. 82-85; http://computer.org/pervasive/pc2002/b1toc.htm.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. 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.

  11. 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.

  12. 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.

  13. 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.

  14. 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.

  15. IEEE Pervasive Computing, special issue on integrated environments, vol. 1, no. 2, Apr.-June 2002; www.computer.org/pervasive/pc2002/b2toc.htm.

  16. R. Curwen et al., Sentient Computing, tech. report 1999.13 (video), AT&T Laboratories Cambridge, UK, 1999.

  17. 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.

  18. IEEE Pervasive Computing, special issue on security and privacy, vol. 2, no. 1, Jan.-Mar. 2003; www.computer.org/pervasive/pc2003/b1toc.htm.

 

Back to Distributed Systems Online
Back to Distributed Systems Online
IEEE homepage Click here to visit the Computer Society's homepageClick here to visit the Communications Society's homepage DS Online ISSN: 1541-4922 • Feedback? Send comments to .
This site and all contents (unless otherwise noted) are Copyright ©2004 IEEE Inc. All rights reserved.