[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