Conventional desktop software applications are usually designed, built, and tested on a platform similar to the one on which they will be deployed and run. Wireless mobile application development, on the other hand, is more challenging because applications are developed on one platform (like UNIX or Windows) and deployed on a totally different platform like a cellular phone. While wireless applications can be much smaller than conventional desktop applications, developers should think in the small in terms of the devices on which the applications will run and the environment in which they will operate instead of the amount of code to be written. This paper presents a systematic approach to engineering wireless application and offers practical guidelines for testing them. What is unique about this approach is that it takes into account the special features of the new medium (mobile devices and wireless networks), the operational environment, and the multiplicity of user backgrounds; all of which pose new challenges to wireless application development.
The general mobile computing model in a wireless environment consists of two distinct sets of entities (Figure 1): Mobile Clients (MCs) and fixed hosts. Some of the fixed hosts, called Mobile Support Stations (MSSs), are enhanced with wireless interfaces. A MSS can communicate with the MCs within its radio coverage area called wireless cell. A MC can communicate with a fixed host/server via a MSS over a wireless channel. The wireless channel is logically separated into two sub-channels: an uplink channel and a downlink channel. The uplink channel is used by MCs to submit queries to the server via an MSS, whereas the downlink channel is used by MSSs to disseminate information or to forward the responses from the server to a target client. Each cell has an identifier (CID) for identification purposes. A CID is periodically broadcasted to all the MCs residing in a corresponding cell.
A wireless mobile application is defined as a software application, a wireless service or a mobile service that can be either pushed to users’ handheld wireless devices or downloaded and installed, over the air, on these devices. Such applications must work within the daunting constraints of the devices themselves:
Memory: Wireless devices such as cellular phones and two-way pagers have limited amounts of memory, obliging developers to consider memory management most carefully when designing application objects.
Processing power: Wireless devices also have limited processing power (16-bit processors are typical).
Input: Input capabilities are limited. Most cell phones provide only a one-hand keypad with twelve buttons: the ten numerals, an asterisk (*), and a pound sign (#).
Screen: The display might be as small as 96 pixels wide by 54 pixels high and 1 bit deep (black and white). The amount of information that can be squeezed into such a tight screen is severely limited.
In addition, the wireless environment imposes further constraints: (i) wireless networks are unreliable and expensive, and bandwidth is low; (ii) they tend to experience more network errors than wired networks; and (iii) the very mobility of wireless devices increases the risk that a connection will be lost or degraded. In order to design and build reliable wireless applications, designers need to keep these constraints in mind and ask themselves what impact do wireless devices with limited resources have on application design?
The motivation for this paper is provided in part by the above characteristics that form some of the foundations for pervasive computing environments. Such characteristics pose several challenges in designing wireless mobile applications for mobile computing. This paper provides a detailed treatment of the impact of these characteristics on engineering wireless mobile applications and presents a systematic approach for designing them. In addition, it offers practical design techniques for wireless application design and development.Top
Wireless applications can be classified into two streams (Beaulieu, 2002; Burkhardt et al., 2002):
Browser-based: Applications developed using a markup language: This is similar to the current desktop browser model where the device is equipped with a browser. The Wireless Application Protocol or WAP (http://www.wapforum.org) follows this approach (Open Mobile Alliance, 2005).
Native applications: Compiled applications where the device has a runtime environment to execute applications. Highly interactive wireless applications are only possible with the latter model. Interactive applications, such as mobile computer games, are a good example. Such applications can be developed using the fast growing Java 2 Micro Edition (J2ME) platform (http://java.sun.com), and they are known as MIDlets.