[sync] sync using Synthesis: progress!

Karsten Fourmont fourmont at gmx.de
Wed Sep 21 14:03:20 PDT 2005


Hi,

did some major poking around in the XML_WBXML package. It took quite a 
bit of time (and nerves) but now it's working!

We no longer need (nor use) the external libwbxml library but instead 
produce our own wbxml. This sould also result in a performance speedup 
as with the external library the produces decoded xml had always had to 
be parsed with an xml parser. Now we directly Decode into the SyncML 
Contenthandler and encode into the WBXML Encoder (which derives from 
Contenthandler).

I started my experiments with the synthesis client by syncing notes. 
After a more changes in the SyncML package, syncing of notes does work now.

During that process I removed various small spec violations in our 
messages. Maybe some other devices (Nokia?) which refused proper 
communication before may work now as well.


Well and my previous comment:
 > 1) The client sends a different SessionID for every message.

That's been a config issue on my side: I had entered a URL into the 
synthesis pref page that ended with a tab. The tab got trimmed during 
the processing and so the response contained a (slightly) different URL 
that the one synthesis sent. but the client thought it's a different 
server and so started a new session... Tab removed, everyhting's fine.

Next steps are:

1) check what needs to be done to make contacts, adresses and tasks 
working as well.
2) The horde syncml code does still not honor the MaxMsgSize info and is 
unable to deal with large data chunks being split into more than one 
message. So the initial sync may not work for people with too big 
address lists...

Cheers,
  Karsten

P.S.
For the records: I removed one piece of functionality from the WBXML 
Encoder: empty tags (<final></final>) no longer get automatically 
combined into one start/stop wbxml tag (wbxml representation of 
<final/>). The produced wbxml get's only slightly bigger (one byte for 
each empty tag), but the state machine becomes way more obvious and the 
code thus easier to read and maintain.



More information about the sync mailing list