[sync] There's progress on SyncML

Chuck Hagenbuch chuck at horde.org
Tue Jun 29 10:57:22 PDT 2004


Quoting Karsten <fourmont at gmx.de>:

> development on SyncML for Horde seems to have slowed down.

Yes, unfortunately.

> 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.

Great!

> 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.

Yeah; it was mostly ported by someone from their Java implementation. I'd gone
through and fixed the parse errors at some point, but not all of the rest.

> 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.

Nice!

> 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.

Still, that's great progress.

> 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.

Sounds good to me.

> 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.

I'd love to get a patch as soon as you're comfortable. Of course people
shouldn't be using it with real data yet, at least not without backing 
up first
;), but it's better than what's in CVS now.

So, either now or once you're at a point like 1) or whenever you're 
comfortable,
  I'd really love to see a patch and to get working on this again. And I'd be
happy to help out however I can with Horde-side code, testing, whatever.

Also, if any of the clients from http://www.synthesis.ch/ would be helpful for
testing, they can be bought for developers (within reason) out of the Horde
sponsorship/bounty money pool.

This is exciting. :)

-chuck

--
"Regard my poor demoralized mule!" - Juan Valdez


More information about the sync mailing list