by Devu Pandit and Justin Huntsman. Intel Corp.
The Mobilized Software Initiative (MSI) is a network-based application architecture that allows an end-user to continue working regardless of the state of his or her connection. An occasionally connected application should be able to detect when a connection is lost or becomes unreliable. In these situations, the application should transparently switch into an offline mode that allows the users as much functionality as is reasonably possible. Users should be able to keep working without interruption as they move in and out of network range, and as the quality of their connection improves and degrades.
Architectural decisions
Although the goal for all occasionally connected applications is the same—to provide an experience that lets users continue working even when a connection fails—the methodologies to accomplish this goal can vary significantly. This paper presents some of these methodologies, using an Intel reference application called Mobile Reference Application as an example.
Designed around the scenario of a real-estate agency, Mobile Reference Application allows real estate agents to upload and download property information between servers and mobile client devices. Mobile Reference Application requires the following software on a developer machine:
- Internet Information Server
- Microsoft Visual Studio .NET 2003
- Microsoft SQL Server
- Web Service Enhancements for Microsoft .NET 1.0 (SP1)
- Windows Media Player 9 Series
- DirectX 9.0a Software Development Kit
Before an MSI application can be effectively designed, several important questions need to be answered:
- How will the application determine whether it is online or offline?
- When a connection is lost, what features of the client application can still be usable? What features cannot work without a connection to the server?
- When a connection is resumed, does the client application need to be synchronized with the server? How should this synchronization be performed?
- If the connection is lost and the mobile PC is running out of power, how can the user's data be saved?
- When a connection becomes unreliable or suffers from reduced bandwidth, is it possible to decrease data transfer by using a compression method or by limiting the use of graphics and multimedia files?
Detecting a connection
One of the key elements of developing an occasionally connected application is the ability to switch seamlessly back and forth between online and offline modes. To facilitate this goal, one may find it useful to create a function that detects whether a connection is currently available. For example, Mobile Reference Application uses a Ping Web service, which the client calls periodically. This call is performed in the background so as not to interrupt the user.
The server exposes a function called Ping. Clients will call this function to determine if a connection can be established to the Web server. If the call is successful, the client application knows that it is online. If, however, the call fails, the application knows that the connection is down. The application can then switch to an offline mode. A Ping method was used because it verifies a number of things. First, it ensures that the client has a network connection. Second, and more importantly, it ensures that the destination Web service can be reached when the client application needs to send and retrieve data. If the Ping method can be called, then it is highly likely that the synchronization methods can also be called.
![]()
![]() | Creating a particle system with streaming SIMD extensions by William Damon, technical marketing engineer, Software Solutions... |
![]() | Design of portable and reusable GUI controls By Egor Kazachkov, software engineer, Data Visualization Controls team... |
If you're interested in this topic, these articles may be helpful:
![]() | Simulation without a simulator by Sergey N. Zheltov, project manager, and Stanislav V. Bratanov, soft... |
![]() | .NET client application "no touch" deployment: harness the full processing power of the desktop by Christopher Goldfarb, senior software architect, Intel Software Sol... |
![]() | Creating a composite application using IBM Lotus Component Designer Learn how IBM Lotus Component Designer and IBM WebSphere Portal are th... |
![]() | Building the Mobile Tomorrow Introduction Intel Senior Fellow Kevin Kahn can't remember how to use... |
![]() | Retail Case Study: Creating the Future at METRO Group Case Summary Challenge Large retailers operate in an extremely chall... |
![]()
Related Jobs:


