About CalDAV

Helge Hess helge.hess at opengroupware.org
Fri Jan 7 23:12:03 CET 2005


On Jan 5, 2005, at 11:30, Bernhard Reiter wrote:
> First I would say it is an access protocol, not a storage format.

Hu? You "could" say that, but this wouldn't make it more true. CalDAV 
is like IMAP4 a protocol to "access" a storage, yes. But CalDAV also 
defines the storage format to be iCalendar, just like Kolab1.

> The storage format of a CalDAV server might be a database scheme.

How is that important? The storage can also be an IMAP4 server. CalDAV 
is a protocol, not an implementation. Some will implement it using a 
RDBMS, some will using some BDB and some simplistic ones will use plain 
files. Same like with IMAP4 servers.

>> Interoperability is something as (more ?) important as efficiency :)
> The question is: Where do you need interoperability?

If you don't need interoperability nor want to reuse existing 
technology, you don't need standards, thats right.

Personally I need interoperability so that one must not write a special 
connector for each and every server for each and every client. Thats 
completely stupid waste of time, especially because _all_ OpenSource 
clients already are based upon iCalendar internally.

> Some places from
> http://greenbytes.de/tech/webdav/draft-dusseault-caldav-01.html
> where design differences can be seen:
>
> | The HTTP/WebDAV feature model encourages a wide range of clients,
> | from extremely simple to very rich.
> | This is because servers must support a wide range of features,
> | but clients can pick and choose which features to support.
>
> Kolab shall scale well and be secure which conflicts
> with complex server operations.

Where does it say that server operations are complex? It says that 
clients can be rich in functionality, the paragraph doesn't say 
anything about the complexity of server operations.
Notably Kolab clients also required a wide range of "extra" features in 
the IMAP4 server - so many that they are hardly interoperable with 
arbitary IMAP4 servers and only work against Cyrus imapd.

> We have fat clients always in Kolab and  a stable storage technology
> which is proven to work for installations with more than 100 000 users.

No one questions that. But this doesn't make CalDAV any worse. Notably 
there is no prove that it works for _calendaring_ in 100.000 user 
setups, do not even dear to ask for shared calendaring. This has a 
whole bunch of new issues which mail doesn't have, including the 
requirement to deal with conflicts and PDA synchronisation required to 
preserve identity.

Anyway, no one is talking about storage technology, CalDAV is storage 
agnostic, just like IMAP4. Its a protocol, not an implementation.

> | Locks are indispensible when multiple authors
> | may modify or create the same resources.
> Kolab does not believe in locks as they require a consistant database 
> state.

Pessimistic locks do not scale which is why HTTP provides etags to 
ensure atomicity for such setups.

> We developed a workflow which is suitable for the task at hand
> and uses a more appropriate self healing conflict resolution.

Agreed. Suitable for the task at hand.

> | Many WebDAV working group members are discussing more work
> | to improve the performance of synchronization betweeen WebDAV clients
> | and WebDAV repositories.
> This sounds like they are working on inventing a network filesystem 
> again
> with special properties. The Kolab server was build on disconnected 
> imap
> which already has server implementations providing a very good speed,
> thus is a step further down the line where WebDAV needs to go for 
> offline usage.

I would like to learn about features offline IMAP4 provides which are 
not in HTTP/1.1.

The work being done in WebDAV "to improve performance" is work on 
transmitting only diffs of a single entity. AFAIK IMAP4 provides 
nothing like this.
(personally I don't think that this is relevant for CalDAV though, its 
more an issue for synchronization of repositories containing large 
files)

> The good part about the two contracts sparking Kolab was that
> there should be a usable solution that is ready for production usage.
> It keeps us on the ground so we create a solution that works first.

Yes, that is certainly a good approach and I agree that CalDAV somewhat 
lacks that and might be doomed to fail due to this just like CAP. Time 
will show, OSAF seems to be very focused here.

> Standardisation works better if you have a few good solutions to look 
> at
> and not having a comittee thinking about how they should work.

Thats where your argumentation fails. Because the current approach of 
Kolab2 provides _no interoperability at all_ and is just a _single_ 
solution which focuses on "the task at hand", not on interoperability. 
Actually the choice of technologies is so limited, that it doesn't even 
work with arbitary IMAP4 servers.

They correct way is somewhere in between, IMHO. Yes, you need a 
practical setup which is supposed to work, but you also need more than 
one server and client to accomplish interoperability. And think about 
that up front.

> There are not that many Free Software groupware solutions

Freshmeat only lists 280 projects in the groupware category. There are 
LOADS of free groupware solutions.
One of the issue which IMHO hurts most is that few of them provide free 
groupware client connectivity (like Kontact or Evolution). And this is 
IMHO due to a lack of a reasonable easy standard for doing calendaring.

> and none of them has taken a huge international market share for 
> larger installations.
> Kolab has the potential to grab a larger share,
> not in spite of but because of our XML storage format!

Good look! At least you have a very good reference client ;-)

See you tomorrow,
   Helge
-- 
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org




More information about the users mailing list