[sync] There's progress on SyncML -- all "green" edition

Karsten Fourmont fourmont at gmx.de
Sun Oct 29 05:23:20 PST 2006


Hi,

this is a reply to my very first posting to this mailing list. Dating 
June 2004, see below.

The reason for this bit of history look-back:

After the latest checkins I just run the tests of the SyncML conformance 
suite.

And we passed all 37 tests!

See http://wiki.horde.org/SyncMLConformanceTestSuite

So we got a complete implementation of the SyncML protocol now!

Having all tests "green" I decided to give the version number a bit of a 
bump: from 0.0.5 alpha to 0.6.0 beta.

Thanks to everyone for support and encouragement!

The gory details:

1) Running the tests of the conformance suite is not as smooth as one 
could hope for: for some tests the database has to be cleaned before 
running individual tests. Some tests don't close the session so you have 
to manual remove session data. Also once any test fails, the session is 
not closed as well and so all subsequent test fail too: the suite 
wonders why the server doesn't asks for authorization...

2) There's one protocol element that's not yet implemented: data items 
that are bigger than the maximum allowed size of a single message can't 
be sent by the server: the "split one data into multiple messages" is 
not implemented yet. so if you have a vcard entry with a 16k text in it, 
you can't sync it when your phone only allows messages of up to 10k.

3) The biggest issue of all: having the SyncML protocol working does not 
guarantee that the horde applications really accept the data in the 
correct way. Things like recurring events, all day events and such are 
still not working perfectly. For this we very much need debug data 
provided by you so we can fix it. Different phones use different formats...

4) There's also no collision handling yet. Current policy is "client wins".

5) lots of cool extra features come to mind...

Cheers,
  Karsten


Karsten wrote on 29.06.2004 08:39:
> Hi there,
> 
> development on SyncML for Horde seems to have slowed down.
> 
> But I can't wait to see my beloved P900 phone syncing with my even more
> beloved horde installation. So the open source principle: "If it's not
> working, don't complain: just fix it" applies. (Or as Chuck would say:
> "Patch?" :-)) 
> Thus I downloaded the Syncml spec and started jumping into the code.
> 
> Reading the mailing list archive I was under the impression that it just
> needed a bit of fine tuning to get it working with the P900. Well, it turned
> out there's still a lot to be done. The code contained quite a few syntax
> errors (usage of $var instead of $this->var) or outdated horde api usage
> (expecting datatree to return false on nonexistend objects).  And it didn't
> have any reasonable synchronisation logic at the moment.
> 
> So I spent some time figuring out what's going on and fixing the bugs.
> Execution flow is rather obsucre due to the XML event driven architecture.
> You realise the advantages of strict typing (at least of objects) when it
> comes to stuff like this. :-)
> 
> Anyhow, there's progress: by now the phone connects successfully to the
> server, sends some data which get added to kronolith and then receives some
> data from the server and adds these events to the phone's calendar.
> 
> It breaks down in the next step, where the phone sends the primary keys
> (LocURIs)  of the new data back to the server using the MAP command. And
> it's still no real sync so events get duplicated all the time.
> 
> My roadmap from here is:
> 
> 1) Get the syntax right: Implement Map command and other stuff so the full
> synchronisation protocol cycle is supported.
> 2) Get the semantics right: make it a real synchronisation rather than just
> throw around and duplicate data.
> 3) support NAG, Mnemo and (hopefully) Turba.
> 4) Other stuff:
>    a) code cleanup, error checking
>    b) get support for additional syncs (currently I'm only doing Slow
>       and TwoWay).
>    c) Real use of DevInf.
>    d) check with multisync and other sync implmenetion wether it works
>       there as well.
> 
> By now I have modified most of the files. I'll provide a patch as soon as 1)
> or maybe even 1) and 2) is done. If anybody is really eager to work on it
> now, I can of course sent a tarball with my current code. However there are
> still lots of changes going on and at the moment and it's guaranteed to mess
> up your events on both the phone and the server.
> 
> Cheers
>   Karsten
> 



More information about the sync mailing list