by Esther Schindler

The Convergence of Desktop, Web and Mobile Clients

Nov 30, 20071 min

Web development experts have consensus on one thing: Future applications will merge the idea of Web or mobile software. But the implications aren't quite as obvious.

Everyone (probably including you) expects applications to become less identifiable as “Web” applications versus desktop or mobile apps, especially as Internet access becomes ubiquitous. “In one sense,” says David Temkin, CTO of Laszlo Systems, “Web development is dead. Application development and Web development are all the same thing. It’s all the same continuum.”


Beyond Ajax: Software Development, Two Years from Now

>>Convergence of Desktop, Web and Mobile Clients<<

The Immersive, Cinematic Application: Improving the User Experience

Making Development Less Difficult, or Interceding with the Browser Gods

Are Web Browsers Ready for the Next Generation of Internet Applications?

Web Browsers of Tomorrow

Today, developers are conscious of the platform differences, particularly as Ajax apps work to emulate desktop apps. It won’t stay that way. Jochen Krause, CEO of Innoopract (the company behind Eclipse RAP), says, “Two years from now, the difference between ‘rich Internet’ and ‘desktop apps’ will further diminish.”

Users don’t care about the semantic distinction, he asserts. They just want software that’s simple to use.

No surprise so far. But the melding of platforms, say visionaries at these development tool companies, changes long-held realities about client-server computing, IT infrastructure and the encroachment of mobile computing. These will have several nontrivial consequences in how software is developed and used.

Separating Client and Server

Client/server technology has a long history, but new Web and Internet features may create new tension in the protocols and in application design. Traditional client/server development required the client to ask for information. But Alex Russell, project lead for the Dojo Toolkit, expects to see servers tell other system components about new information (“Look, someone did something for you!”); once, he points out, we called this Push. It’s the other half of Ajax, he says, and part of a trend toward collaboration. (For more on the future of collaboration, see “The Immersive, Cinematic Application: Improving the User Experience”.) “We’re seeing that just starting to take off,” adds Russell. “The complexity of doing it is rapidly plummeting; that’s good.”

What’s the right separation between client and server? According to Russell, IT and development departments must offload application load without going offline, and determine how much of the computation work and the data should live on the client side. “These questions are forced,” he says, and existing toolkits aren’t helping. “The worlds have to replicate each other or talk to each other through a common sublanguage,” says Russell.

How the data will flow to and fro is absolutely critical, says Bob Brewin, Sun’s chief technology officer for software. Applications can spend too much time in the request response paradigm, he says.

To prepare for that future, advises Brewin, IT departments should put their attention on their data management information systems and back-end tiers. While he believes the Oracles and IBMs and SAPs of the world have helped, “Make sure the back-end data is in order, that there aren’t too many levels of indirection,” he says. Try to flatten your investment, without multiple layers of aggregation, he suggests; you don’t want to have to deal later with data synchronization, data cleansing and so on.

Another pressing issue: In the near future, a developer’s application could run on any platform, so it will become even more necessary to separate business logic from the user interface. Applications have to control how the data is connected and in what ways it needs to be controlled, says David Intersimone, CodeGear vice president of developer relations; the platform should be the next layer of abstraction. “Whether [the code] generates Ajax or scriptaculous libraries doesn’t really matter,” he says. The runtime should do the right thing, whether that’s render a desktop or send the information to a smartphone. “We’re not there yet,” he says.

Applications may run and deploy the same way no matter the target platform, but “that doesn’t mean the same UI,” Krause cautions. Applications will be accessed through browsers, but sometimes they’ll look like websites, and at other times like desktop apps. Instead of writing software to run on one particular target, such as a Windows PC or a Java-enabled smartphone, developers should be able to write to the business logic and let the server deploy the appropriate platform-specific code. Platform control will be a runtime technology on top of a single development model, not a deployment decision. Windows PC users will see the app as though it’s a desktop application, perhaps with Win32 widgets, and a Linux user might have a Flash-based UI. “The modules are interchangeable. I think that’s a very powerful vision,” Krause says.

For Sun’s Brewin, rich Internet applications are just a step to the next generation, the rich Internet client. His holistic view of a tightly integrated Web, device and desktop includes an enterprise perspective. “Enterprises today have largely been built around Web services; most of them aren’t Web 2.0 or XML over HTTP,” he says, and businesses may have problems integrating those worlds. In the meantime, he says, “building a Web-service infrastructure over those standards is probably the best thing you can do” to avoid later integration challenges.

Mobile Infrastructure

Mobile poses its own dilemmas for developers. Enterprise IT groups are already coping with infrastructure challenges for mobile clients, employees, partners and customers. “How to integrate the alternative [mobile] clients into that ecosystem is a huge challenge,” Brewin says. Inside the business, he notes, a company that uses, say, mobile devices in a warehouse inventory control system with barcode scanning must integrate with inventory, and the supply chain has to figure out how to connect all those pieces. Architecture redesign has application design implications; you can no longer assume an 800-by-600 Web browser, for example. And “there are a lot more [mobile devices] than there are desktops,” Brewin points out.

The number of mobile devices and capabilities of those gadgets will only increase. In Japan, Krause says, a phone is exchanged every 10 months, each time with progress in memory and performance. What can you do with more video, storage and speed on the device?

Network awareness may be well in hand. But what happens when the connectivity cuts out, such as when someone travels on an airplane? Those applications have to work better than they do today, says Brewin, and have better synchronization.

The applications also have to satisfy users, or the whole point is lost. Let’s look at that next, in The Immersive, Cinematic Application: Improving the User Experience.