Mobile and Wireless Design Essentials is divided into 4 parts and 18 chapters. Part I provides core information, making it essential to read first, to get the most from the rest of the book. After that, feel free to read the rest of the material in any order, as each part is self-contained. The same is true for most of the chapters: each is complete in itself so you can easily reference any one to get what you need on the subject covered. The chapters were written to give you a concise overview of the technology under discussion; you will not be overwhelmed by needless details.
Part I, "Introduction to the Mobile and Wireless Landscape," lays the foundation on which the other parts of the book are based. To that end, it covers mobile devices, wireless networks, mobile application architectures, mobile and wireless security, and messaging technology. These are core topics that should be well understood by anyone involved in a mobile application project. Subsequently, each of these topics is covered in its own chapter to provide a concise introduction to mobile and wireless computing.
Part II, "Building Smart Client Applications," provides an in-depth look at the concepts and technologies pertinent to developing smart client applications. It starts with an overview of the smart client architecture and proceeds to the development process, persistent data technology, and enterprise data synchronization. This part gives you everything you need to know in respect to the design and development of smart client applications.
Part III, "Building Wireless Internet Applications," provides an in-depth look at the concepts and technologies inherent to developing thin client applications. Similar to Part II, this part starts with an overview of the thin client architecture and proceeds to discuss the concepts and technologies involved in thin client development. A complete overview of the thin client markup languages—HDML, WML, cHTML, and XHTML—is provided, along with the techniques that can be used to generate this technology for the wide range of wireless devices being used today. Wireless Internet technology and voice application development using VoiceXML are the final topics discussed in Part III.
Part IV, "Beyond Enterprise Data," takes a look at technologies that are not core to the leading mobile application architectures but that are significant in the adoption and deployment of mobile applications. The first topic is mobile information management, which includes both personal information management (PIM) and mobile device management capabilities. These technologies are becoming increasingly important as mobile devices proliferate and become the responsibility of enterprise IT staffs. The second topic in Part IV is location-based services (LBS). Much of the hype around LBS refers to its use in the consumer market, but many corporate applications can also benefit from location information. Part IV finishes with information on four technologies that gaining momentum in mobile computing: Mobile Web Services, BREW, SALT, and M-Services.
Chapter 1, "Welcome to Mobile and Wireless," is a nontechnical introduction to mobile wireless computing. It starts with an overview of key terms (e.g., mobile, wireless, m-commerce, and m-business) and moves on to a discussion of the benefits and challenges that surround mobile computing. An overview is also provided of the main mobility enablers, including wireless networks, mobile devices, and software infrastructure. This chapter will help organizations understand the risks and rewards in developing mobile solutions.
Chapter 2, "Mobile Devices," overviews the mobile device market, with an emphasis on devices that are most appropriate for corporate solutions. For each device category, we will look at the leading features, such as screen size, data input mechanisms, wireless support, and storage space.
This chapter also covers key criteria for selecting mobile devices, with a focus on data input mechanisms and wireless connectivity options. The chapter concludes with information on mobile device manufacturers and the classes of devices they provide.
Chapter 3, "Wireless Networks," addresses all aspects of wireless network coverage, including wireless personal area networks (WPANs), wireless local area networks (WLANs), wireless wide area networks (WWANs), and satellite networks. For each category, the prevalent technologies are examined, followed by a discussion about what the future holds. From this chapter you will gain an understanding of the wireless network protocols that are being used today and for what types of applications. This knowledge will be valuable as you continue through the book to learn more about the design and development of mobile and wireless applications.
Chapter 4, "Mobile Application Architectures," introduces you to the leading application architectures available for mobile computing: thin client (wireless Internet), smart client, and messaging. The chapter starts with a list of key criteria that should be considered when determining which application architecture is most suitable for a given application. It then proceeds with an overview of each application model, which includes a discussion of the advantages and disadvantages they present.
Chapter 5, "Mobile and Wireless Messaging," takes a look at the key messaging technologies currently available. It begins with an overview of the common messaging systems, such as email and paging, then moves on to SMS, EMS, and MMS, and finishes with push and application-to-application messaging. After explaining the various messaging systems, it covers the messaging value chain, from device manufacturers to messaging middleware providers.
Chapter 6, "Mobile and Wireless Security," starts with a security primer on the key aspects of creating a secure environment; it then provides information on each of the technologies involved in building secure applications. Next the chapter offers insight into issues surrounding WAP security, such as the WAP gap, before addressing issues related to securing smart client applications. The goal of this chapter is to provide developers with enough information to make educated decisions when implementing security in their mobile solutions.
Chapter 7, "Smart Client Overview," highlights the main components of a successful smart client solution. It then takes an in-depth look at the major mobile operating systems that are available for smart client solutions. The combination of the mobile operating system and the device hardware often dictate whether a smart client solution is possible to implement.
Chapter 8, "Smart Client Development," prepares you for some of the technical challenges you will encounter while developing smart client applications. It also gives you some pointers on how to get started with development. The chapter steps through each part of the development process, taking a look at technology that is available to help you build your mobile solutions. It also discusses the pros and cons of developing native versus Java applications. Information regarding device emulators, SDKs, and development tools is also provided, to help you get started with your mobile solutions.
Chapter 9, "Persistent Data on the Client," explores one of the fundamental components of smart client applications: persistent data storage. This is the technology that allows you to maintain data on the device, removing the requirement for wireless network coverage. When it comes to how the data is stored, you have a variety of options from which to choose. You can use the device's file system to store data, build your own data storage mechanism, or purchase a commercial solution. This chapter evaluates all of these options, in addition to taking a closer look at the reasons why databases are an important component of smart client applications.
Chapter 10, "Enterprise Integration through Synchronization," provides information on the primary way in which smart client applications access enterprise data, using synchronization. This chapter covers the fundamental concepts involved in enterprise synchronization, including synchronization architectures and techniques. It also covers some of the synchronization technologies available commercially, and provides an overview of SyncML and where it fits into data synchronization.
Chapter 11, "Thin Client Overview," defines the thin client application architecture by highlighting the main components that comprise a successful solution. The overview is followed by a comparison of J2EE and .NET for server-side development. The chapter concludes with information on the leading wireless Internet protocol, Wireless Application Protocol (WAP), and the steps involved in processing a wireless Internet request.
Chapter 12, "Thin Client Development," explains how to start developing wireless Internet applications. It steps you through the various stages of the development process, starting with needs analysis phase and finishing with deployment options. As you move through this process, helpful hints are provided for avoiding common pitfalls of developing thin client applications. At the end of the chapter is a section on the common thin client application models, which outlines the target audiences, technical challenges, and types of solutions available for each application type.
Chapter 13, "Wireless Languages and Content-Generation Technologies," investigates the range of markup languages being used for wireless Internet applications, including HDML, WML, HTML, cHTML, and XHTML. For each markup language, sample code is given to demonstrate its syntax. The second part of the chapter delves into the various techniques that can be used to generate dynamic wireless content. This includes server-specific technology, such as CGI and ASP, as well as cross-platform technologies such as Java servlets, JSPs, and XML with XSL style sheets.
Chapter 14, "Wireless Internet Technology and Vendors," looks at the technologies commonly used when implementing wireless Internet applications. These technologies have been divided into four categories: microbrowsers, wireless application servers, development tools, and wireless service providers. For each category the key technology features are investigated, and a summary of related vendor solutions is provided. The goal is provide you with enough information to make educated decisions as to which technology and vendors you will want to evaluate further.
Chapter 15, "Voice Applications with VoiceXML" explains how voice applications are built using the Voice eXtensible Markup Language, VoiceXML. Unlike other applications discussed in this book, VoiceXML provides a voice interface into enterprise systems, rather than a visual one. The VoiceXML architecture is very similar to that of Internet applications, but the Web browser is replaced by a voice browser, and the handheld device is replaced by a telephone. Voice interfaces give true universal access to your applications. After the history of VoiceXML is examined, the VoiceXML architecture is discussed, followed by information on building VoiceXML applications.
Chapter 16, "Mobile Information Management," covers two separate but related technologies: personal information management (PIM) and mobile device management. PIM applications include email, calendars, task lists, address books, and memo pads. Access to these applications is often the reason why consumers purchase mobile devices. Mobile device management software can provide substantial benefits for both the deployment and management of software and devices. This chapter divides these topics into separate sections to focus on the capabilities that each solution provides.
Chapter 17, "Location-Based Services," examines location positioning technology, specifically addressing how location information can be used in both consumer and corporate applications and previewing the standardization efforts that are underway for location information. It also covers what, why, and when location-based solutions are relevant to mobile and wireless computing.
Chapter 18, "Other Useful Technologies," focuses on technologies that are just beginning to be adopted by mobile application developers. The four technologies covered include Mobile Web Services, BREW, SALT, and M-Services. All have been developed to improve upon previous technologies in the same market space and to become the standard in their respective fields. Of these technologies, Web services are clearly the leader in market acceptance and standardization. The others, BREW, SALT, and M-Services, are still working to achieve meaningful vendor and developer acceptance. The goal of this chapter is to introduce these technologies and explain how they relate to mobile computing.