| Last Modified On : | August 17, 2009 5:52 PM PDT |
Rate |
|
Detect network-state changes in a mobilized software application, and adapt appropriately. Remaining productive outside the office is a challenge. Recent platform advances meet many of these challenges head-on. Batteries last longer, new form factors are lighter and easier to carry, and integrated wireless network cards allow connection at any of the 20,000+ available U.S hotspots. Being able to connect practically anywhere raises new questions, however:
The necessity of considering whether or not one has a network connection in order to complete a given task negatively impacts productivity, and increasingly complex environments increase that impact. In the future, the number of networks available to mobile notebooks will grow, from two (wired Ethernet and Wi-Fi) to many (wired Ethernet, Wi-Fi, cellular, WiMax, UWB, Bluetooth*, GPS, etc.). Connectivity issues will necessitate additional user support from IT departments, increasing costs and further diminishing productivity.
Moreover, the challenges do not cease once a user acquires a network connection. Without malleable mobilized software applications that are able to monitor and adapt to changing network conditions, productivity loss worsens. Applications may hang as network connections come and go, forcing users to restart them. In such cases, critical data is prone to loss.
Implement mobile policy management. This concept lies at the heart of building flexible mobilized software applications that are able to adapt continually to bandwidth flux. Mobile policy management defines which data is most important. It also defines which data can be cached locally, which data should be transmitted and when, and on which types and speeds of networks it should be transmitted.
This can be as simple as using an algorithm that decides to use a local database when the network connection is less than 100 kbps and a network database when the connection is 100 kbps or greater. Such an algorithm would work well for certain types of applications without extensive data to exchange and no security concerns. Applications with more demanding networking needs, however, require sophisticated policy management algorithms.
In most products, it makes sense to localize the mobile policy management into a single object or component. Doing so makes it easy to differentiate the code that makes the policy decisions from the code that implements network data transfers. This practice also prepares code to increase the sophistication of the mobile policy easily over time.
In an application where a large amount of data needs to be shipped in a small period of time, data prioritization is essential. An application’s own data should not become an artificial barrier to the application’s ability to respond to the user. For example, in a simple e-mail application, the first priority should be to send the subject lines of the new messages to the email application, followed by the full text of the message the user is currently poised to read first. One would not want the application to wait for the full text of one long message before displaying the list of all messages. Failure to prioritize data properly can thus directly impact the perceived performance of the application.
There a re two ways to avoid deficits of this nature. The first is to prioritize the data properly. The priority of the data is a policy decision that the policy manager should make. The second technique to avoid a data blockage is to design the transport layer to be packet-based and to support multiple tasks. This type of architecture allows the policy manager to better respond to the user’s needs.
To make the best use of available network bandwidth, the application must avoid consuming that bandwidth with unnecessary data. There are four important characteristics to focus on when minimizing data transfer:
This item is part of a series that is introduced in the item How to Mobilize Software Applications.
Discovering Mobilized Software
