Everyone
knows Ray Ozzie is my hero right? I spent the first several years of my
professional career as a Lotus Notes developer, and even worked for
Lotus itself for a brief stint in 1996, so you can imagine what an
Ozzie disciple I am. I even was able to pay fealty to him in person
back in 2004. I must say it pains me to see him working for a company
like Microsoft, but that really doesnt lessen my respect for him in
any way. Besides, hes been working with those guys for a long time now
– we all saw the move to Microsoft as an inevitability way back in 2002 when Microsoft invested in Groove.net, right? So Ive had a while to get used to the idea.
Regardless of where Ray is working now, its nice to see in his post today
that his Notes and Groove experience isnt far from his mind, and its
incredibly exciting to me that hes now applying that work to RSS. As
Ive written many times before on this blog Everything New is Notes
Again: In one way or another many of the principles of communication,
synchronization and security that were seeing in Web 2.0 all harken
back to functionality that was available in Lotus Notes over a decade
ago. (Rays explanation today of how RSS tags correspond exactly to
their Notes equivalent concepts showed this perfectly, if you ask me.)
So now Im trying to grok the specifics of how the Simple Sharing Extensions laid on top of RSS are supposed to work. Heres some thoughts about the spec:
I like the idea of the simplest thing that could possibly
work for synchronization, but the beginning stuff in the spec could be
explained a bit better. Maybe exchanging the word endpoint for
something clearer like website might help my mind? Honestly, the
criss-cross subscription and aggregation stuff in section 1.3 is
confusing on first read. I think I understand it, I just dont think
its explained well. I do think its interesting how theyre definining
a time frame for the channel. This has been sort of ad-hoc up until
now, where you get the last say 10 items in a feed, and thats all the
info you get about the updates. Then the aggregator is forced to
compare item by item until it finds something new or changed. If you
were gone a week and more than 10 items have changed, then your
aggregator will have no clue about them. With this system, youll see
therell be a timeframe where you dont have information.
The item level sync stuff is great – with the history,
deletion and conflict flags, and rules on how to resolve problems.
Perfect! But isnt the sync id attribute duplicating the GUID tag of
the item itself? What happens if they dont match up, or rather, what
happens if they matched up at one point, and then later on change? I
guess this would be considered a change, and be recorded as such, but
it seems at that point theres a break-down in what an item is supposed
to represent. Regardless, this system is essentially creating a system
for keeping track of field-level changes, and thats pretty cool (and
powerful).
But of course, RSS Items only have a few fields with real
data: pubdate, link, title and description. Maybe a few more depending
on which feed spec you use. In Rays post, he talked about syncing
things like contact lists and calendaring info. The SSE just manages
the syncing itself – theres no place for the data to sit besides
whats in RSS already. Where does this other stuff fit? In plain text
in the description field? No way. Either hes talking about using this
system with a bunch of different namespaces generated from various
applications, or the next step must be an arbitrary field-data
namespace for this sort of info.
This is whats being done already over in Mountain View
Remember the Google Base RSS Extensions spec
from the other day? Their system allowed a variety of arbitrary fields
to be embedded into an item. Adding in SSE namespace could then in
theory allow *any* data contained in an item can be kept in sync.
Pretty cool, hey? Sort of a universal data communication spec: Anything
that any database can spit out, you can keep track of it, synchronize,
and manage changes. Very, very cool. Now, I dont really like Googles
implementation of the Base extensions. All those specific tag names
like course_name and hoa_number are just ridiculous IMHO, and would
be better off with a simple field tag with a type attribute and the
actual data contained within the value of the tag.
Im sure Ray and Microsoft realizes this as well. Maybe
theyre just planning on using the SSE stuff with the huge variety of
MS apps that generate XML namespaces already, like for playlists or
whatever. But personally, Id like to see them embrace a simple data
formatting spec as well, so that arbitrary data (like dates, strings
and numbers) could be embedded into an RSS Item and syndicated as well.
Cool stuff. [Russell Beattie Notebook]