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

Han Spruyt han.spruyt at ijsselgroep.nl
Sun Oct 29 14:43:28 PST 2006


Hi Karsten,

This is the best news I heard in weeks!

Great work and many thanks for it.

Han.


Quoting Karsten Fourmont <fourmont at gmx.de>:

> 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
>>
>
> -- 
> sync mailing list - Join the hunt: http://horde.org/bounties/#sync
> Frequently Asked Questions: http://horde.org/faq/
> To unsubscribe, mail: sync-unsubscribe at lists.horde.org




More information about the sync mailing list