[sync] There's progress on SyncML

Karsten fourmont at gmx.de
Mon Jun 28 23:39:04 PDT 2004


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