A part of Google Wave's protocol is way of sending changes to an XML document, so that changes you make locally are reflected on the "canonical" server copy of the document and can be broadcast out to other viewers. This was something I looked at too -- albeit in a "good enough is good enough" sort of way -- so I was interested to see how the problems we faced differ, and what Google's solution looks like.
Well, Wave has to solve a few extra problems: their documents are edited by many people at once, so the change format has to be transformable, so that different people's changes can be reconciled. (In the Intelligent Book, even though pages are concurrently editable, exercises are usually worked on by students individually, so I could duck this issue.) They also have to deal with federated servers, security, etc. So, they've been looking at a much harder problem than I was with my little change format. And while their solution is still being refined, so far it looks pretty good.
Apart from that -
- Wave's protocol looks like just a diff -- add and delete of content -- whereas SCFX also included larger operations such as move and copy, so that for instance an app that used a tree of complex GUI components to show a tree of XML elements could just move them rather than having to recreate them afresh if the XML element at the top was moved.
- Google Wave relies on a particular character layout of the XML -- for instance there must be no empty tags (
<foo />), and all the clients need to treat whitespace identically. SCFX used XPaths to address content, so this wasn't so fragile. (But an XPath would be difficult to transform).