Intel on how to deal with 'occasionally connected' environments
- By John K. Waters
Developers who want their applications to run on handheld wireless devices face two serious obstacles, industry mavens tell us: the fast-paced innovation of the device form factors and the complexity of managing network connections.
Pocket PCs, smart phones, thumb keyboards, pen input -- the challenges of coping with form-factor issues are daunting. You can't just shoehorn a desktop UI into a PDA, and some business process reengineering is inevitable. But perhaps more challenging than the devices themselves is the "occasionally connected" nature of the wireless networks they must utilize. Although coverage is improving, it's unlikely that users will ever be able to count on a wireless connection absolutely. Applications that require a wireline-like connection simply won't work in an increasingly mobilized world.
Jon Bork, Intel's director of cross architecture, has a solution: mobilize all of your applications from the get-go. "We have been telling ISVs that we believe mobilized software should be the only version of their software," Bork told Programmers Report. "We believe that the whole software ecosystem needs to embrace mobility before we can be as successful as we can possibly be."
Why mobilize all of your applications? Because, wired or unwired, connections fail and applications that can keep on running even when the server takes a nap will make users more productive. Bork, who is also Intel's technical software strategist and focused on mobilized software, offers an example. "You're sitting in front of your desktop machine in your office. You've got a hard-wired connection and there's nothing mobile about you. But suddenly, the server or the network goes down, or there's a virus in the network. You shouldn't have to stop just because you can't get access at that very moment to the server. We see lots of people using applications where any hiccup leaves them sitting there wondering what's going on."
One company at work in this vineyard is Dublin, Ireland-based integration software provider Iona. "Companies are going to be under more pressure to adapt enterprise applications to the user than they previously were when computing was restricted to the office environment and the purchasing of devices was a little more controlled," said the firm's CTO Eric Newcomer. "The first reaction that most companies have to that pressure is, 'Let's just take what we have and throw it onto the mobile device and let the users deal with it.' But that approach creates a real barrier to adoption among users. You don't want the user to be involved in any of these connectivity issues."
A successful mobility strategy is all about getting the bits reliably from one device to another, and insulating the user from connectivity and device-management issues, Newcomer maintained.
Iona's own Mobile Orchestrator product, which was introduced last year in conjunction with Intel's Centrino mobile technology launch, is designed to do something along those lines. Mobile Orchestrator is a Java-based, asynchronous, Web services-driven architecture that essentially provides a development framework on which to build client-server applications, where the clients are mobile or must deal with unreliable connections to a server. Mobile Orchestrator client and server transports are implemented as symmetric nodes, or "agents," within a Service-Oriented Architecture. In effect, it replaces the client/server protocols with a store-and-forward model using Web services. It enables clients to work with enterprise applications and data regardless of connection status by automatically saving all of a user's work and interactions with those applications and data; then, when a wired or Wi-Fi network is detected, synchronizing data and documents between the mobile user's device and enterprise apps in a series of rapid steps that are transparent to the user.
Both the client side and the server side of the Mobile Orchestrator transport are built on a layering architecture, Newcomer explained, which makes it possible to combine various services, interfaces and transports into one "occasionally connected computing" transportation stack.
"We decouple the fact that you have a transport on your device from the application that you are using," Newcomer explained, "so the users can go ahead with the application independently of what's going on in the background with network connectivity, low battery situations or contention for the CPU -- or whatever it is. The users have a seamless interaction offline or online with the application."
Intel's Bork suggests that solutions like Mobile Orchestrator will be increasingly important to developers and enterprise IT as computing becomes more and more mobilized.
"We believe that the mobilized software architecture -- this asynchronous, XML-based architecture -- is necessary because we currently have to assume that the network connection will come and go," Bork said. "It may be there most of the time, but even in a wired environment, there will be times when the classic client/server model -- if you can't talk to the server you can't do anything -- will leave you stranded. The challenge therefore becomes how do we get everybody to move to a mobilized software architecture and then deploy that everywhere, whether or not the users are mobile."
John K. Waters is a freelance writer based in Silicon Valley. He can be reached