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

Andy Wright horde at eltofts.homelinux.com
Sun Oct 29 08:48:21 PST 2006


That's really great news Karsten :)   Many thanks to you and the Horde 
team for all the work that has gone into this !

Andy.

Karsten Fourmont wrote:
> 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