A FOSSCamp session led by Red Hat developers presented the GNOME Online Desktop project, the nexus of GNOME's efforts to integrate support for modern web services into the open source desktop environment. As social networking web sites and other Web 2.0 technologies become more pervasive, some believe that desktop computers will increasingly be seen primarily as vehicles for accessing content that resides in the cloud. This shift away from conventional desktop applications will give open source software a bit of an advantage, since web applications are largely platform-neutral. Providing improved web services integration in the desktop environment could theoretically make GNOME a more appealing choice for a growing number of users who depend primarily on web applications.
Although the far-reaching vision of the online desktop initiative still hasn't fully coalesced and is a bit lacking in cohesion, many of the individual technologies that are encompassed by the plan have obvious real-world value. Red Hat developers are actively working on creating a generic online GNOME system that seems largely based on the Mugshot social networking service. In addition to the Mugshot client application, Red Hat has also developed Big Board, a desktop sidebar interface that interacts with the GNOME online site and displays relevant information.
Communication between Red Hat's online desktop client applications and the online desktop server is performed using the XMPP protocol. An online desktop communication service uses XMPP to interact with the server, and individual desktop applications use a D-Bus API to interact with the service and use it as an intermediary. The online desktop servers are currently maintained entirely by Red Hat, but the company plans to make the service vendor-neutral and have it maintained by GNOME.
"More and more of how people interact with their computer has moved online," said Red Hat developer Colin Walters during the session. Several GNOME online desktop technologies are "moving into the prototyping stage to make things more robust and integrated into the default desktop."
The session included a demonstration of the Big Board prototype, which currently displays Mugshot integration data, recently used files, contacts, an experimental Google Gadget component, and a list of commonly used applications that is drawn from remotely-stored data. The current incarnation of Big Board seems a little bit gimmicky, but the application has a lot of potential that isn't immediately visible at first glance.
When you consider the similarities between Big Board and the Gimmie launcher utility, the value of Big Board becomes a bit more clear. Big Board has the potential to do much of what Gimmie does today, but in a very different way that offers its own unique advantages. I'm definitely a fan of Big Board's vertical orientation, for instance. A Red Hat developer tells me that the Gimmie and Big Board developers are even collaborating to create useful Internet service integration backend components that can be used by both tools.
Much of the user interface for Mugshot and Big Board is rendered with the Hippo canvas, which gives developers more control over drawing and layout. The Mugshot and Big Board interfaces look more like web content than desktop applications—with links instead of buttons, for instance.
During the session, I asked Walters about the advantages of using Hippo rather than conventional GTK widgets. According to Walters, Hippo is used for Big Board and Mugshot because it provides more control over layout and makes it possible to create interfaces that are more visually interesting and consistent with web applications. It seems like the developers want to differentiate Big Board from the rest of the desktop to make it more distinctive.
Although I can understand the motivation for using custom rendering, I'm very skeptical about the value of such significant deviations from conventional GTK interfaces in desktop components for which GTK would be sufficient. Custom rendering creates some intractable desktop integration problems that should be avoided if possible. Walters also admitted that the display and underlying logic for some of the Big Board components are tightly coupled, which means that the potential for code reuse is a bit limited.
Although I'm not entirely convinced that Hippo interfaces are a good idea, I've decided to reserve judgment until I've had an opportunity to develop with Hippo myself. The reasons for using Hippo rather than GTK could possibly become more apparent as Big Board continues to evolve and incorporates additional features that provide stronger justification for the unique rendering. In many ways, it seems like Big Board is a testing ground for new approaches to desktop Linux software development, so in that context the visual deviation is forgivable.
The GNOME online desktop project also encompasses some practical connectivity features that could potentially improve the GNOME user experience. For instance, Red Hat developers are currently working on creating a system for GConf that will make it easy to store GNOME configuration data remotely for easy access on multiple systems. The extremely useful GConf synchronization feature could arrive as early as GNOME 2.22, the next major release.
The developers are also working on a "web login driver" component that will intercept web site login information saved in Firefox so it can be used securely by desktop applications that connect to the same services. Another intriguing Firefox feature is the journal add-on which is designed to provide a more useful start page that integrates with online desktop, displays browser history, and offers convenient access to search and other commonly used web services. The add-on is designed specifically for Firefox 3.
Ultimately, the goals of the online desktop project are to create a generalized API for storing data online and making it easy for developers to integrate popular web services into the desktop. The online desktop project doesn't aim replace local applications; it will attempt to bridge the gap between web services and the desktop in a manner that is natural and transparent. The goals are ambitious and it's still too early to guess whether or not the online desktop project will succeed. Regardless of the final outcome, Red Hat's current development efforts in this area are a valuable experiment that could encourage additional innovation in the open source software community.
Online desktop page at GNOME LiveGNOME Online Desktop service web siteGNOME Online Desktop wiki