The term "pervasive computing" describes a revolutionary dimension of personal computing which brings together mobile communications, ubiquitous embedded computer systems, consumer electronics and the power of the internet. Three main factors drive its growth: microelectronic technology, providing smaller devices and displays with lower energy consumption; communication technology, providing higher bandwidth and higher data transfer rates at lower cost; and ongoing international standardization efforts, without which the benefits of the technology can never be realized.
Written by a team of experts, Pervasive Computing: Technology and Architecture of Mobile Internet Applications provides both a theoretical overview and a practical guide to this emerging field. The first part of the book walks through the essential protocols, standards and architectures involved. The second part uses a continuous real-world example to present an end-to-end architecture for implementing pervasive computing applications.
Contents of Pervasive Computing include:
Pervasive Computing: Technology and Architecture of Mobile Internet Applications is the first book to offer an understanding of the scope and the implications of pervasive computing. As such it should be essential reading for IT managers, professionals, architects, consultants, developers, and students concerned with internet and web technologies.
About the Authors.
1. Past, Present, Future.
2. Application Examples.
3. Device Technology.
5. Web Application Concepts.
6. WAP and Beyond.
7. Voice Technology.
8. Personal Digital Assistants.
9. Server-side Programming in Java.
10. Pervasive Web Application Architecture.
12. Access from PCs.
13. Access via WAP.
14. Access from Personal Digital Assistants.
15. Access via voice 379.
The Internet has grown into a global infrastructure causing a major restructuring of the economy. Pervasive computing will add a new dimension to the Web society. People will be able to interact with the Web everywhere and at any time using mobile devices with speech, pen, and other tailored humanmachine interfaces. The World Wide Web will now reach people that have not even considered using a PC before. Existing businesses will be able to offer superior services to their customers, and exciting new businesses for mobile consumers will emerge. Technology will be the major driver for this new mobile society. Understanding the potential of the technology and its impact on society is one of the keys to developing new applications and services.
Part I Technologies
In the first part of this book, we give an introduction to technologies used by pervasive computing. This part is relevant for everybody who wants to get an overview of pervasive computing consultants, students, IT architects, and developers. We begin with a brief discussion of the past, present, and our view of the future of pervasive computing, and give a motivation for pervasive computing by showing several typical areas where pervasive computing is introduced in a series of example applications. We give an extensive technology overview, including current man-machine interfaces, devices, operating systems, and standards.
Chapter 1: Past, present, future
Pervasive computing has three major driving forces. First, the microelectronic technology providing smaller devices and displays with lower energy consumption. Second, the communication technology providing higher bandwidth and higher data transfer rates at lower cost. The third key component is the ongoing standardization of all components in the system by international standardization committees and industry associations. Without standardization the technology cannot be exploited on a large scale. We describe the base technologies and standards, such as Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), Wireless Application Protocol (WAP), infrared (IR), Bluetooth, Internet Protocol (IP), Hyper Text Markup Language (HTML), Extensible Markup Lanugage (XML), VoiceXML, and Application Standards. Then we discuss the key infrastructure elements and the associated service infrastructure. Finally, we evaluate the future trends and directions.
Chapter 2: Application examples
There are already a lot of different pervasive devices available on the market, ranging from personal digital assistants (PDAs) to WAP phones. Now the question is how to use these devices effectively in business applications. In this chapter, we explore how pervasive computing devices enable exciting new ways of conducting business. We present a series of real-life application examples showing how businesses can benefit from pervasive computing. The examples will give you an overview of what is possible and what is required, and should inspire you to think of tomorrow's applications today.
Chapter 3: Device technology
This chapter gives an overview of the rapidly evolving technologies that influence the evolution of mobile devices. The key technologies are presented in three parts. The first part describes the advances in hardware technologies. The second part presents the key software technologies used for the humanmachine interaction. The third part gives an introduction to some of the operating systems and Java platforms available for PDAs today. A brief discussion of each technology is given, followed by an outlook into the future direction.
Chapter 4: Device connectivity
Pervasive computing devices do not develop their full potential unless connected to applications and services through the Internet. In this chapter, protocols for device-to-device and device-to-server interactions that are relevant in the pervasive computing domain will be covered: wireless protocols, mobile phone technologies, Bluetooth, the Mobile Internet Protocol, synchronization protocols like SyncML, as well as transaction protocols and protocols enabling distributed services like Jini. In addition to those protocols, a deeper look at algorithms and protocols that address security issues is presented. Because system and device management will become a big challenge to support millions of devices, the last section will discuss device management in the pervasive space.
Chapter 5: Web application concepts
In this chapter we explain how PCs can be connected to Web applications through the Internet. Although some concepts and technologies described here can be considered classical and are well known, we want to revisit them briefly. This way, they can serve as references to be compared with the newer concepts and technologies presented in subsequent chapters.
We give an overview of the history of the World Wide Web, as well as the relevant concepts, protocols, and standards for communication between Web clients and servers via the Internet. One special topic we cover here is transcoding, the transformation of content to device-specific markup.
We discuss Web application security issues and present possible solutions ranging from use of the standard Hypertext Transfer Protocol over SSL (HTTPS) protocol to client-authentication schemes for the Internet. Apart from the typical client-authentication methods supported by todays browsers, we discuss smart cards for secure user authentication in detail.
Chapter 6: WAP and beyond
WAP has become a synonym for new wireless Internet services. This chapter describes the basics of WAP e-business implementation, device characteristics, protocol stack, security issues, products, and tools currently available on the market.
Chapter 7: Voice technology
In this chapter we will cover the basics of speech recognition and describe two important standards in the area of voice-based user interfaces: VoiceXML, a markup language for speech, and Java Speech, a Java application programming interface (Java API) to provide speech capability to Java applications. Typical speech applications, such as speech recognition on the PC, speech recognition over a telephone line, and text-to-speech translation, will be covered next. Finally, we take a closer look at speech recognition in pervasive computing and at security when using speech as a user interface method.
Chapter 8: Personal digital assistants
Today we are on the edge of an explosion of mobile devices with hitherto unprecedented connectivity and processing power. These devices replace traditional tools like pen and paper, the address book, or the calendar, and integrate all of them in a single, convenient, mobile package. What makes mobile devices so attractive is not so much the fact that they deliver new functions, but that they mimic well-known processes, combine their data and make it available everywhere and at any time. This chapter first takes a brief look at the history of PDAs. A categorization of device types and their connectivity characteristics is given. Finally, the available standards and typical software components for PDAs are explained.
Part II: Architectures
In the second part of this book, we present an end-to-end architecture for pervasive computing applications that support different kinds of devices and communication protocols. We explain how applications adhering to this architecture can be implemented, especially elaborating on the implementation of the application server and integration of WAP phones, classical telephones via voice gateways, PDAs and PCs. As a continuous example, we use the Uncle Enzos Web shop application, which allows for ordering and payment of goods via the Internet, and later extend it to allow logon and viewing of the previous transactions through the different devices. This part is especially interesting for IT architects, consultants, and developers who face the challenge of actually implementing pervasive computing solutions.
Chapter 9: Server-side programming in Java
This chapter gives an overview of the concepts and technologies that we consider the most important in development of Web applications in general and pervasive computing Web applications in particular. We start with an overview of the Java 2 Enterprise Edition architecture, followed by a more detailed description of some key technologies, including Java Servlets, Enterprise Java Beans, and Java Server Pages. Given the importance of XML, we dedicate a major part of this chapter to this technology. We present technologies for building Web services that are based on XML, including the Simple Object Access Protocol (SOAP), and Universal Description, Discovery and Integration (UDDI). We conclude with an overview of the modelviewcontroller pattern and its use in the development of Web applications.
Chapter 10: Pervasive Web application architecture
In this chapter, we propose an architecture for pervasive computing applications that support multiple different devices like PCs, WAP phones, PDAs, and voice-only phones enabled to access Web servers through voice gateways. The architecture addresses the special problems associated with pervasive computing, such as diversity of devices, markup languages, and authentication methods. We especially show how pervasive computing applications based on this architecture can be secured.
Chapter 11: Example application
Here we present an example application that will be used to show how Java applications that adhere to the architecture presented in Chapter 10 can be extended to support different kinds of devices. As an example that is both simple and instructive, we chose a shopping application, including registration, login, a main menu, self-care, purchasing goods, and purchase history. The application is designed for an imaginary Italian restaurant named Uncle Enzos that sells via the Internet. In the subsequent chapters, we will show how this application can be enabled for access from a PC using smart-card authentication, from WAP phones, from PDAs, and from a voice-only phone via a voice gateway.
Chapter 12: Access from PCs
In this chapter, we show how the shop application can be extended to allow for access from PCs, using a smart card for authentication via the Internet, as presented in Chapter 5. We explain how to implement the required components, including an authentication applet and the corresponding authentication servlet, and how to integrate them into the shop application. Finally, we present the controller for PC access and the Java Server Pages (JSPs) that it uses to interact with consumers.
Chapter 13: Access via WAP
This chapter demonstrates how the example application is extended to allow for access using mobile devices with a WAP browser, especially mobile phones. We describe how the functionality supported for WAP fits into the overall architecture and discuss the infrastructure needed to connect mobile devices to Uncle Enzos application server. We provide some source code fragments for parts of the WAP-specific functionality of the example application. At the end of the chapter, we outline some extensions that improve speed or usability of Uncle Enzos shop.
Chapter 14: Access from personal digital assistants
In this chapter, we show how users connecting to the Internet with a PDA can use the example application. We will do that in three steps. The first version of our application will simply synchronize the menu of Uncle Enzos to the PDA. The user can use it as a reference and then order via the phone. In the second version, we will use a local database and native application to handle the menu and compose an order. The user will be connected only when synchronizing the data and submitting the order. In the third version, we will use the WAP to show the actual menu. The user will be connected while browsing the menu and submitting an order. The chapter is concluded with a comparison of all three approaches.
Chapter 15: Access via voice
With the steadily increasing computing power of PCs and advances in voice-recognition research, speech-recognition, and speech-synthesis software has now reached a level acceptable for commercial use. The fundamentals of speech recognition and speech synthesis are described in Chapter 7.
This chapter explains how an e-business application can communicate with users over a normal telephone line, and how a voice gateway is integrated into the sample application. The voice gateway processes and recognizes voice input to generate appropriate requests for application servers, and converts responses containing VoiceXML into voice output for the user. Finally, we show you how to enable the sample application from ordinary telephones via a voice gateway.