Mobile and wireless application development has come a long way in the past few years. It has progressed beyond the hype of wireless Web applications for consumers to the reality of high-value mobile applications for corporate users. Opportunities abound for creating new mobile and wireless applications that provide vital benefits to any business. A sampling of these benefits includes increased worker productivity, reduced processing costs, heightened accuracy, and competitive advantage. In contrast is the concern that developing mobile and wireless applications will involve many new technologies and concepts that many corporate developers are still learning to use.

One of the challenges in the mobile application space is the variety of application architectures available. Though many by now are now familiar with Wireless Application Protocol (WAP) applications, they are not familiar with smart client and messaging application architectures. (Note: WAP is a specific protocol, but is commonly used to describe any type of thin client wireless application. For a detailed discussion of thin client applications, see Chapter 11, "Thin Client Overview," and Chapter 12, "Thin Client Development.") Thin client refers to server-based applications that make it possible to browse the Internet on a wireless device. All of the business logic and data access logic is located on the server. The only software required on the client is a microbrowser, which is often preinstalled on wireless devices. Thin client applications are attractive because they can build upon existing Internet applications and do not require deployment to the client device. They can be viewed by anyone with a wireless Web-enabled device and can be updated at any time simply by changing the software on the enterprise server.

Thin client applications have one fundamental shortcoming, however: They require a wireless network connection to be effective. Without a connection, information cannot be retrieved from the server, essentially making the application useless. Even when a connection is available, unreliable wireless network coverage, slow data transfer rates, and cost also impact the success of thin client applications.

Consequently, a movement is growing toward smart client applications. These applications allow corporations to deploy an application to the mobile device so the user can continue to interact with the application even when a wireless data connection is unavailable. (For more detailed information on smart client applications and technology, see Chapter 7, "Smart Client Overview," and Chapter 8, "Smart Client Development.") These applications commonly include a form of persistent data storage that communicates with enterprise systems using data synchronization. This combination enables applications to have sophisticated user interfaces and high-performance data access, making them suitable for offline computing.

The third mobile application architecture of interest is messaging. (For more detailed information on messaging technology, see Chapter 5, "Mobile and Wireless Messaging.") Messaging technology can be used either on its own or to enhance existing applications. Adding notification capabilities to an application can increase its effectiveness dramatically. Mobile users can have important data "pushed" to them, as opposed to constantly requesting it from an enterprise server. Information notifications can be applied to both thin client and smart client applications. Messaging applications can also be developed on their own using messaging as the data delivery mechanism. In these applications, message queues are present on both the client and the server, allowing for information to be stored when a user is not connected to the network. Once the user connects, the stored messages are automatically forwarded to him or her. This type of messaging is commonly referred to as store-and-forward.

The technologies available to companies that want to extend their enterprise systems to their mobile workforce are covered in depth in the chapters that follow. All three mobile applications architectures are covered in some depth, as is related information on mobile devices, wireless networks, mobile and wireless security, mobile information management, and location-based services. This book provides all of the information you require to build highly successful mobile and wireless applications. Though the content is mainly focused on the creation of enterprise applications, you will find information relevant to developing consumer applications as well.

Overview of the Book and Technology

Developing successful mobile applications requires the integration of many technologies. Handset manufacturers and wireless network operators lay the basic ground-work for many applications, but they are only one component of the solution. Mobile middleware software, in conjunction with client-side technology, rounds out the solution. Developers are responsible for putting the pieces together to form effective mobile and wireless applications.

In order to be successful with this task, a broad knowledge of the mobile and wireless industry as a whole is required. Obtaining this knowledge can be a difficult quest. Although many books have been written on mobile and wireless computing, they typically focus on a very specific topic, meaning that developers would have to read several of these books to learn what is required for a single project. Obviously, this is too time-consuming. Moreover, due to the specific nature of the content being covered, many of these books simply rehash industry specifications or product manuals and do not cover the important issues for designing and developing enterprise mobile solutions. To fill in these gaps, readers then have to spend still more time doing their own research on the Internet before they can be productive.

The lack of comprehensive books on mobile and wireless computing was the motivating factor behind this book. Mobile and Wireless Design Essentials was written to make things easier for developers. It is a single resource whose objective is to bring you up to speed on the full spectrum of technologies and issues related to mobile and wireless computing. Every chapter provides insightful information on its respective topic, beginning with an overview of the subject matter and followed by in-depth analysis of how it is useful to application developers. Each chapter also contains helpful Web links where you can go for more information on any of the topics covered. These Web links alone will save you countless hours of searching for information.

To meet this goal — to be an all-in-one resource—a great number of topics are covered in Mobile and Wireless Design Essentials. The book starts with an overview of the mobile and wireless landscape, to ensure that all readers are "on the same page," before tackling the topics of developing smart client and thin client applications. Each of these application architectures has several chapters dedicated to related design and development issues. The final parts of the book focus on related technologies that are being used today—such as mobile email, mobile device management, and location-based services—and technologies that you will come across in the near future, including mobile Web services, M-Services and BREW.