Eight Properties of Internet-aware Applications and the FireFox Bookmark Synchronization Model
This post uses the FireFox Bookmark Synchronization extension as a case study to propose eight properties that should be applied to a new breed of Internet-aware applications. Jump right to the eight properties.
My article, Microsoft’s Sacred Cash Cows, highlighted how Microsoft has failed to build compelling Internet services that enhance Windows and Office to make everyday user scenarios easier and in doing so lost out on a multi-billion dollar business opportunity. In my follow up, I raised the issue that the open source community has an opportunity to lead in the development of the services model as it relates to common applications.
Bookmark management across multiple computers makes an excellent case study of Microsoft’s missteps and the potential for a more Internet aware application model.
Microsoft and MSN have failed to deliver an automated solution for the portability of Internet Explorer Favorites (only manual import/export is provided). As a result, the common scenarios of a user regularly moving between desktop and laptop, work and home or remote access from an Internet café are simply not handled well.
While I have seen some downloadable third party applications that provide this service for Internet Explorer (e.g. IESync and FavoriteSync 1.1), I’ve been impressed by FireFox 0.9 and its Bookmark Synchronization extension by Torisugari.
FireFox 0.9 is an extremely fast open source, multi-platform, browser that offers tabs and blocks pop-up windows as well as numerous extensions. The Bookmark Synchronization extension stores my latest bookmarks to an FTP server of my choice and checks for updates whenever I open FireFox on a different computer. As a result, I’m now easily able to synchronize my bookmarks between my Windows XP computer at work as well as my personal Macintosh G5 desktop and PowerBook laptop.
For the first time in years, I’m taking the time to collect and organize my bookmarks for the simple reason that they are completely synchronized and usable from all of the computers I use regularly. As a result, I’ve made FireFox my default browser on all three computers. And, I've begun thinking about the characteristics of the Internet-aware application model.
I’ve taken a look at .Mac’s Bookmark synchronization for Safari, but the fact that it doesn’t work on Windows is a drawback. One nice feature of .Mac’s Bookmark synchronization is that it allows me to view my bookmarks on a web page from anywhere. I believe this is also possible with the FireFox extension if I create an XSL style sheet to go along with the XML bookmark file that it stores on my Web server – but I haven’t yet explored this and it’s not available with the standard extension download.
Sites like White Links appear to offer the option of managing my bookmarks on the Web but I’m not too excited about a solution that doesn’t integrate with my browser on Windows and OS X.
There are also a number of bookmark synchronization projects on SourceForge but none that I saw were as simple and functional as the FireFox extension. SiteBar seemed interesting because it has the potential to allow multiple users to manage a collection of bookmarks via the Web or in the browser. The version I saw seemed incomplete.
Bookmark management solutions hint at a more Internet aware application model and the ease of use of the FireFox extension demonstrates the ability of the open source community to lead and innovate.
Here are a few concepts that we can take from the bookmark model and apply generally to other applications:
- Every application should be built with portability and synchronization in mind. In other words, every application should assume that I will use it from multiple computers and want my preferences and state to be synchronized across them automatically. For example, Thunderbird should provide this capability for all of my accounts, preferences and the junk mail rules it learns from me as I use the product. I shouldn’t have to configure my accounts in Thunderbird on all three of my computers nor should I have junk mail filtering out of sync or trained differently. As one client learns about my junk mail preferences, it should store and share that information with my other computers. The same should be said for Address Book, Calendar schedules, To Do Lists, etc. The lack of these services was one of my primary disappointments with Outlook 2003.
- Any data that is shareable should also be accessible via the Web so that I can access it from anywhere in the world via the Internet. Safari’s .Mac model does this well allowing me to browse my bookmarks by logging into my .Mac account.
- Data structures for application elements e.g. bookmarks should include schema for sharing. I should be able to designate some of my bookmark categories or individual bookmarks to be share-able. Bloglines does a good job of this allowing users to publish a public share of their blog subscriptions e.g. Laughing Meme's public blog roll and allowing users to specify which subscriptions should be hidden from public view. It also includes tell a friend capability to announce your public share page. The iTunes iMix capability performs a similar feature with iTunes song playlists. It lets users publish their favorite playlists to the iTunes music store and announce them to friends.
- Features like this should be part of the standard download package for open source applications. While I’m sure the best extensions ultimately get integrated into the core product installs, I’d like to see Internet-aware services placed on a fast track for integration. While I was able to download the Bookmark Synchronization extension – and it’s fairly easy overall, most consumer users would not be able to figure it out nor is there a one step URL I can point someone too (it’s close, but not quite one step).
- Many consumers don’t have their own FTP accounts and Web servers. Herein lies the value of providing hosted services that serve Internet-aware applications. In my article, I spoke of how Microsoft’s Hailstorm could have done this or been built as a third party data warehouse for this. .Mac does do this in limited ways. I’d like to see an open source campaign to provide consumer-level ease of use to hosted accounts that can work with Internet-aware applications. In other words, when a consumer downloads FireFox, part of the set up process would help them configure an account on a third party server to store their data. I think FTP is too complex to accomplish a broad reach of consumers. Solving the business model for hosted services will be a challenge for the open source community. At Groundspring, my employer, we serve nonprofits but simply must charge them some minimal monthly fees to manage our real support and hosting costs.
- Version conflict resolution for data should be provided with these types of services. The current Bookmark Synchronization extension is fairly asynchronous rather than real time – and as a result, there is a risk of losing data. It has some nice features that minimize the frequency of this e.g. automatic download of the latest data on application open and upload of changes on application exit. And, it even has a merge data option – though I haven’t tried it and have seen one post that says it doesn’t work well. However, I think future versions of Internet aware applications and supporting servers need to use Web services and have the option for real time synchronization.
- Security is also important. Obviously, FTP is an insecure protocol and XML files on a Web server can be downloaded pretty easily. Web service interfaces should allow for a richer permissions model and more secure interfaces. The permissions question opens up an entirely new discussion on global identity (another Microsoft misstep) – one part of my article that was cut for length was a discussion of whether Microsoft could have prevented spam with a richer identity service. The FireFox Bookmark extension does offer http and https but I haven’t tried these yet.
- I’ve mentioned a number of applications above that should have access to this Internet aware application/server model. Third party solutions do exist for some of this e.g. .Mac Bookmarks & Address Book, Plaxo, etc. But they all work differently and don’t offer all of the above capabilities. So, I think it’s a requirement for this application/server model that third parties be able to easily plug into it fluidly – so as to offer the illusion that all the services work together well. In other words, my account on the application server should store all of my preference and state data for all of my applications in one account – even if different developers’ applications are interacting with parts of that data. This probably seems like a no-brainer to most.
Please post comments that you have below. I look forward to hearing your thoughts. Thanks!
-Jeff
Notes:
1. If any of you OS X users need to export your Safari bookmarks to FireFox to try the Bookmark Synchronization extension, you might try this tool: Safari Bookmark Exporter.


It may not be as integrated, but dotMac's *online version* [ http://www.mac.com/1/iTour/tour_bookmarks.html ] of the Safari bookmark sync works on all browsers and platforms, since you can access and save to a pop-up style window. It's like webmail for your bookmarks.
Posted by: ~bc | Jun 17, 2004 at 08:05 AM
I remember old versions of Netscape that could save all user preferences into an appopriately configured web server. Apache had a module for that purpose, though it was less than trivial to set up at the time, so probably beyond the reach of most.
Posted by: Richard Corfield | Jun 17, 2004 at 11:13 PM
How about putting application preferences in a common folder that is mounted as an NFS share?
Or storing them on an LDAP server.
Location of preferences should be configurable, i think.
preferences=ldap://myhost.mydomain.com
preferences=nfs://binky
preferences=file://home/user/preferences
A "registry" service could be started at login time, and apps just ask it for a settings and tell it to store a setting.
Posted by: NFS | Jun 18, 2004 at 05:07 AM
Finally! This is good news to hear about the Firefox extension and other people discussing this seemingly obvious killer app. I had conceived of a synchronized bookmark system basically like this over five years ago. Unfortunately I lacked the talent then to make much of it. To some extent I still do.
One thing that I would like to point out is the need to document a standard for this kind of application so that browser developers code for it in a consistent way. The actual data store must provide a standard interface to both access and synchronize. I don't care if MSIE stores the favorites locally in some wierd format as long as it knows how to synch with whatever "bookmark server" that I choose to use.
The stored preferences app is similar to bookmarks, but not identical. The Mulberry e-mail client makes use of stored configuration information on an IMAP server. It can also be customized for installation to point to a specific server so that the user never has to know anything other than their username and password. In a large enterprise this is an effective idiot proofing way of providing a service.
Posted by: Jody | Jun 18, 2004 at 08:32 AM
One feature that would be very appreciated by me is to synchronize the 'Sent' Folder in the mail client. Does anybody else wish this too?
Posted by: Jaime | Jun 18, 2004 at 04:13 PM
I'm with Jaime on that one... I have to use multiple desktops at work and 2 personal computers at home. I'd love to see an app that could sync the sent box.
Posted by: Brian | Jun 19, 2004 at 03:05 PM
This really sounds like it should be an OS feature. For online access you could NFSv4-mount your home directory; to support offline usage you'd have to add caching and synchronization.
Posted by: Wes Felter | Jun 23, 2004 at 11:42 AM
Mozilla now supports full profile roaming in nightly builds (not the windows installer). http://bugzilla.mozilla.org/show_bug.cgi?id=124029
This includes not only bookmarks, but cookies (and permissions), address book, history (a big win for me) and a bunch of other things. I'm not sure whether it's in the Firefox trunk (it's definitely not in the Aviary 1.0 branch), but I've been installing nightlies everywhere so I can use this feature (and I still prefer Mozilla Seamonkey over Firefox). In theory it should be fairly easy to add Thunderbird/Moz Mail support.
WRT security, it can be behind a passworded FTP server, or use apache with mod_roaming (which I think builds on DAV).
Posted by: James | Jun 29, 2004 at 02:26 AM
The https support in the bookmark sync extension seems to be quite solid, more solid than the FTP support in my experience (plus it's far easier to manage a WebDAV directory on an existing web server than it is to manage a whole FTP server.)
Posted by: Trejkaz Xaoza | Jul 19, 2004 at 09:35 PM
There's bookkit service (www.bookkit.com) it provides a bookmark synchronizer plug-in for IE and it also supports firefox bookmark synchronizer.
Posted by: Kirill | Oct 30, 2005 at 07:55 AM