On 14/04/14 08:36, Patrick Ohly wrote:
On Mon, 2014-04-14 at 00:20 +0200, Ove Kåven wrote:
> But what if the server you want to talk to isn't a SyncML server, but a
> WebDAV or ActiveSync server? How is that possible, if SyncEvolution must
> talk to something that understands SyncML? But wait, SyncEvolution
> itself understands SyncML, and can act as server! We can just have
> SyncEvolution talk to itself! A big hack, but it solves the problem.
Indeed. It came to be out of lack for alternatives (defining and
implementing an entirely new sync protocol is no piece of cake), but it
does the job pretty well (IMHO). I had to extend the sync engine
occasionally (see PBAP and the new caching sync modes) and may have to
do it again, but that was still less work than starting from scratch.
Thank you for your contribution, Ove. Interestingly, I actually find
this way of thinking about local sync (that it is a hack to sort of
extend SyncML to other protocols) unhelpful. As both you and Patrick
have mentioned that, I realise that this is how it came about, but I
tend to think it causes additional confusion as it makes non-SyncML
protocol access look like more of a special case (with its own rules to
be learnt) than is really the case with the (brilliant) way Patrick has
implemented it. Of course, I may be unique in this and others may find
it very helpful -- just a data point.
I prefer to think of local sync as purely an optimisation on a sync
which happens between SyncML entities which happen to be on the same
system (and which can be completely replaced with a normal SyncML sync
if they are on different systems).
In the context of SyncEvolution I think of WebDAV and ActiveSync not as
sync protocols but primarily as database access protocols, and all the
database backends in SyncEvolution as being equal. Of course, I come
from an OpenSync/MultiSync background so I tend to think of all the SE
backends as equivalent to OpenSync plugins (I even considered writing a
GPE backend for SE and would have if I had not decided I would be moving
to Jolla, and I also considered using activesyncd as the basis for
writing an OpenSync ActiveSync plugin instead of my OWA TCL script --
but OpenSync is dead).
Just one person's view, of course.
Graham