II. MOBILE COMPUTING CONSTRAINTS Mobile computing environment has three main components which affect their performance.
These are: A. Mobile devices constraints Due to their limited size, mobile devices will continue to have limited resources such as processor speed, memory size, display size and resolution. Hence, designers of mobile applications are faced with a real challenge on how to meet these constraints while satisfying users demand of fast responsive mobile computing environment. Some mobile devices may have different input device such as microphone or a pen point screen to interact with users. These limited input devices must be addressed carefully when designing a mobile user interface. Power limitations of mobile devices are also to be addressed in terms of what an application should do when it recognizes a very limited power to use. B. Networks Constraints Wireless networks will continue to have limited bandwidth, high latency and frequent disconnection due to power limitations, available spectrum and mobility. The most critical aspect of these is the bandwidth. As bandwidth increases, power consumption also increases which shorten the battery life of mobile devices. Hence, energy restrictions of mobile devices will limit the effectiveness of data throughput to and from the device even if wireless networks connections deliver stable high bandwidth. Therefore, data access technique must be designed for users to overcome these limitations of bandwidth, latency, disconnected operation and still satisfy users expectations [5]. C. Mobility Constraints Mobility is about moving around. This movement can be in one of the following spaces with respect to users. 1) Physical space movement: in this space is when a user changes his/her physical location. This can affect network connection (disconnection, Poor connectivity) while the user is working. Network connection has to adapt to this behaviour
of user movement by re-connecting user with respect to new location. Data and file operations have also to adapt by supporting disconnection file operations as in the Coda file system [6]. 2) Information space: consists of a large number of applications and data files scatter in the Internet. Movement here corresponds to selecting an application or a data file. Application and their data have to adapt to users operating environment to perform their task efficiently. One way to accomplish this is by caching of data on the local machine as being done in the HTTP/1.1 protocol to reduce redundant www information traffic and hence improve network utilization. 3) Connection space: is the huge network of links that connect between various computer platforms. Movement in this space corresponds to selecting route between links and selecting a specific type platform. Adaptation in this space can be achieved by avoiding congested links and selecting shortest path between two points when delivering information.
III. CHALLENGES OF MOBILE COMPUTING The need for mobile computing leads to design challenges in several areas. A. Disconnection Todays computer systems often depend heavily on a network and may cease to function during network failures. For example, distributed file systems may lock up waiting for other servers, and applications process may fail altogether if the network stays down too long. Network failure is a greater concern in mobile computing than in traditional computing because wireless communication is so susceptible to disconnection. Designers must decide whether to spend available resources on the network, trying to prevent disconnections, or to spend them trying to enable systems to cope with disconnections more gracefully and work around them where possible. The more autonomous a mobile computer, the better it can tolerate network disconnection. For example, certain applications can reduce communication by running entirely
locally on the mobile unit rather than by splitting the application and the user interface across the network. In environments with frequent disconnections, it is better for a mobile device to operate as a stand-alone computer than as a portable terminal. In some cases, both round-trip latency and short disconnections can be hidden by asynchronous operation. The X11 Window system uses this technique to achieve good performance. With the synchronous remote procedure call paradigm, the client waits for a reply after each request; in asynchronous operation, a client sends multiple requests before asking for acknowledgement. Similarly, prefetching and delayed write-back also decouple the act of communication from the actual time a program consumes or produces data, allowing it to proceed during network disconnections. These techniques, therefore, have the potential to mask some network failures. The coda file system provides a good example of how to handle network disconnections, although it is designed for todays notebook computers in which disconnections may be less frequent, more predictable, and longer lasting than in mobile computing. Information from the users profile helps in keeping the best selection of files in an on-board cache. It is important to cache whole files rather than blocks of files so that entire files can be read during a disconnection. When the network reconnects, Coda attempts to reconcile the cache with the replicated master repository. With Coda, files can be modified even during disconnections. More conservative file systems disallow this to prevent multiple users from making inconsistent changes. Of course, not all network disconnections can be masked. In these cases, good user interfaces can help by providing feedback about which operations are unavailable because of network disconnections. B. Low Bandwidth Network bandwidth is divided among the users sharing a cell. The deliverable bandwidth per user, therefore, is an important measure of network capacity in addition to the raw transmission bandwidth. Improving network capacity means installing more wireless cells to service a user population. There are two ways to do this: overlap cells on different wavelengths, or reduce transmission ranges so that more cells fit in a given area [7]. The scalability of the first technique is limited because the electromagnetic spectrum available for public consumption is scarce. This technique is more flexible, however, because it allows software to allocate bandwidth among users. The second technique is generally preferred. It is arguably simpler,
reduces power requirements, and may decrease signal corruption because there are fewer objects in the environment to interact with. Also, it involves a hardware tradeoff between bandwidth and coverage area: Transceivers covering less area can achieve higher bandwidths. Certain software techniques can also help cope with the low bandwidth of wireless links. Modems typically use compression to increase their effective bandwidth, sometimes almost doubling throughput. Because bulk operations are usually more efficient than many short transfers, buffering can improve bandwidth usage by making large requests out of many short ones. Buffering in conjunction with compression can further improve throughput because larger blocks compress better. When available bandwidth does not satisfy the demand, processes the user is waiting for should be given priority. Backups should be performed only with leftover bandwidth. Mail can be trickle fed onto the mobile computer slowly before the user is notified. Although these techniques do not increase effective bandwidth, they improve user satisfaction just the same. C. High bandwidth variability Mobile computing designs also contend with much greater variation in network bandwidth than do traditional designs. Bandwidth can shift one to four orders of magnitude, depending on whether the system is plugged in or using wireless access. An application can approach this variability in one of three ways: it can assume high-bandwidth connections and operate only while plugged in, it can assume low bandwidth connections and not take advantage of higher bandwidth when it is available, or it can adapt to currently available resources, providing the user with a variable level of detail or quality. For example, a video-conferencing application could display only the current speaker or all the participants, depending on the available bandwidth. Different choices make senses for different applications. D. Heterogeneous network In contrast to most stationary computers, which stay connected to a single network, mobile computers encounter more heterogeneous network connections in several ways. First, as they leave the range of one network transceiver and switch to another, they may also need to change transmission speeds and protocols. Second, in some situations a mobile computer
may have access to several network connections at once, for example, where adjacent cells overlap or where it can be plugged in for concurrent wired access. Also, mobile computers may need to switch interfaces, for example, when going between indoors and outdoors. Infrared interfaces cannot be used outside because sunlight drowns out the signal. Even with radio frequency transmission, the interface may still need to change access protocols for different networks, for example, when switching from cellular coverage in the country. This heterogeneity makes mobile networking more complex than traditional networking [8]. E. Security risks Precisely because connection to a wireless link is so easy, the security of wireless communication can be compromised much more easily than that of wired communication, especially if transmission extends over a large area. This increases pressure on mobile computing software designers to include security measures. Security is further complicated if users are allowed to cross security domains. For example, a hospital may allow patients with mobile computers to use nearby printers but prohibit access to distant printers and resources designated for hospital personnel only [9]. Secure communication over insecure channels is accomplished by encryption, which can be done in software. Security depends on a secret encryption key known only to the authorized parties. Managing these keys securely is difficult, but it can be automated by software.
CONCLUSION Mobile computing is a technology that enables access to digital resources at any time, from any location. From a narrow viewpoint, mobile computing represents a convenient addition to wire-based local area distributed systems. Taken more broadly, mobile computing represents the elimination of time-and-place restrictions imposed by desktop computers and wired networks. In forecasting the impact of mobile technology, we would do well to observe recent trends in the use of the wired infrastructure, in particular, the Internet. In the past year, the advent of convenient mechanisms for browsing
Internet resources has engendered an explosive growth in the use of those resources. The ability to access them at all times through mobile computing will allow their use to be integrated into all aspects of life and will accelerate the demand for network services. The challenge for computing designers is to adapt the system structures that have worked well for traditional computing so that mobile computing can be integrated as well.