[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