In this last wrap-up post for Speeds and Feeds, I address what may be the most important issue in the future of personal computing architecture: consistent data access across multiple platforms.
Perhaps it's my multi-platform background, but I've never demanded or expected consistency in form factors, user interfaces or even capabilities. Variety in these areas is great; it's what makes the personal computing market so big. Variety is also why I keep so many PCs and consumer electronic devices around (see photo); I like knowing I have the right tools for many different jobs.
On the other hand, I really don't like the fact that all of these machines are, in effect, independent little islands of data storage. Sure, most of these things have sync functions to help move the relevant data among them, and syncing is fine if you only have one PC and one gizmo, but at some point it becomes a pain in the neck.
In 2000, as a columnist for Electronic Business magazine, I wrote a piece titled "Where do your data live?" In it, I lamented the proliferation of isolated data stores on the growing number of personal electronic devices.
I pointed out that the computer industry had already found a better way to manage this problem: caching. Caching technology allows data to be shared among many storage subsystems. Each datum is "owned" by exactly one storage device, and all of the stores negotiate among themselves to change ownership as needed according to how the data are used.
I proposed that we adopt a caching model instead of thinking of every gizmo as a separate storage device. Each file could carry tags that identify where the master copy of the data should reside and what other devices should have copies of each item. (This tagging can even be extended to individual records in databases such as address books.)
This approach would eliminate the need to move data around manually. Any two connected devices could figure out for themselves if any data need to be synchronized between them--and the Internet can keep all of our devices connected almost all the time. Cloud storage makes a pretty effective location for those master copies, too.
I still think this is a good idea. There are some proprietary solutions along these lines, such as the sync features of Apple's MobileMe and Microsoft's Windows Mobile Device Center, but these solutions leave much to be desired, including interoperability. I'd love to see an open standard for data sharing, including file system extensions to support the necessary tags.
A few things have changed since 2000. USB and Wi-Fi have become ubiquitous, making it much easier to connect devices together (though there's still plenty of room for improvement in that area). The storage capacity of personal electronic devices has soared; the Newton I used in 2000 has been replaced by an iPhone with over 680 times as much flash memory.
Perhaps even more importantly, it's become practical for almost any personal electronic device to access and process the vast majority of data objects we own. There aren't very many files on my laptop hard disk that can't be at least viewed on my iPhone. Most of the exceptions, things like Photoshop images and HD video files, can at least be converted to compatible formats.
These changes have made a caching strategy even more valuable. Of course, automated data movement makes effective data security even more important (see "Wrapping up Speeds and Feeds, part 4: Security").
Ideally, our devices should stop acting like separate systems at all, but rather as multiple views into one consistent set of documents. Each device can still have its own look and feel, but not its own independent storage.
I think these last five posts have suggested enough projects to keep everyone busy for a while. When that's all done, I'll explain what we need to do next!