About CalDAV
Helge Hess
helge.hess at opengroupware.org
Fri Jan 7 22:40:16 CET 2005
On Jan 5, 2005, at 11:50, Martin Konold wrote:
> Actually I believe that maintaining correct and usable locks semantic
> with
> multi-location (think about unreliable network links) and proper
> offline
> support is not possible with CalDAV.
While what you say is not wrong, the implication is incorrect. Nobody
forces you to use pessimistic locking with CalDAV - you can do that in
online clients, but you don't need to in offline ones. Just use
optimistic locking using etags, very "old" techology used by various
site replication systems.
Please point out what issues you see with etags in offline
synchronisation scenarios.
> WebDAV was never intended for offline usage but for providing a
> hierarchical
> database like client server access over http.
Can you prove that claim?
I would claim that WebDAV, or more exactly HTTP, was developed with a
strong focus on exactly this. So I'm rather surprised about your claim.
As a prove I would point to the etag feature which was in the initial
HTTP/1.1 draft as well as point to the broad support for caching proxy
servers used in practice.
Especially using the latter HTTP scales magnitudes better than IMAP4 -
using standard and established technology. *Though* IMAP4 might scale
well enough for Kolab requirements (this is proven as well).
As an application consider a public calendar webservice like the Yahoo
TV schedule - a single calendar is accessed by millions of people.
Something like this will give you big headache with IMAP4 (but
obviously this isn't in the focus of Kolab either).
Other well known offline HTTP applications include Novell iFolder or
sitecopy.
> WebDAV neither knows about unsolicited server messages nor pipelining.
Unless there is a terminology mismatch HTTP/1.1 supports message
pipelining on a single socket since the initial revision (several years
old).
But HTTP itself does intentionally not provide a "back-channel" for
(web-scale) scalability reasons. If you actually read the CalDAV spec,
you'll notice that this is supposed to get covered using XMPP (Jabber),
another proven and highly interoperable technology also proven to have
huge scalability.
> The later two facts are very important for efficiency and usability.
IMAP4 is slightly more efficient than HTTP/WebDAV for a lot of
operations due to smaller protocol packet sizes. Actually message
retrieval and upload is more network efficient in HTTP since it
supports gzip/deflate transport encoding per default (and this feature
is widely supported).
HTTP itself has a certain usability issue due to the missing back
channel. CalDAV doesn't, since it will specify a way to provide server
notifications.
> Actually the Mozilla/CalDAV effort is older than Kolab but Kolab is a
> working
> solution today with a lot of future potential for further development.
I might be wrong, but Mozilla/CalDAV isn't even started yet, it
certainly isn't older than Kolab. The CalDAV effort was just recently
announced (~6 months ago?)
Maybe you mix that up with transporting a full iCalendar document over
a single HTTP call which is hardly a useful calendaring protocol.
> Q: Why XML?
> A: Well if being forced to create a new format choosing XML is sane as
> many
> parser/validation suites are available. Technically our XML storage
> format is
> semantically similar to a subset of the iCalendar standard.
Yes.
Notably with HTTP you can easily support both (XML and iCal encoded
iCal entities) using content negotiation without the requirement to
change any other part of the infrastructure.
> Q: Why not iCalendar?
> A: Well iCalendar is fine for doing invitations e.g. via email
> transport. This
> is done in Kolab 1 and Kolab 2. iCalendar is unfortunately not well
> defined
> for doing storage of calendars which are supposed to be accessed by
> multiple
> client implementations.
Please elaborate. Whats the issue here?
> This is due to the fact that iCalendar is a
> mult-vendor standard which leaves too many options and I am not aware
> of a
> single application which correctly implements all aspects of
> iCalendar. In
> addition parsing/creating correct iCalendar objects is non trivial
> compared
> to do the same with XML.
I can't follow that. XML is just the syntax. The iCalendar _syntax_ is
implemented completely by all implementations I know, just like the XML
syntax is implemented by all XML parsers (actually in practice only a
few of the XML parsers support full XML/1.0!, most of them only do well
formed XML which is often sufficient in practice).
So actually comparing XML with iCalendar is non-sense because one is
syntax and the other caries syntax AND semantics. The semantics is what
the clients/servers do not implement fully.
You need to compare "Kolab/XML" with "iCalendar" and if you do, there
is no advantage here for Kolab/XML. The former doesn't interoperate at
all because it only works between Kolab clients/server. The latter is
partially better, because it provides some interoperability, but
nevertheless has the issues you mention (there is the Calsify working
group to fix that - maybe rather help with fixing issues than inventing
new stuff?).
I have another Q:
Q: Why not the xCal draft?
best regards,
Helge
--
http://docs.opengroupware.org/Members/helge/
OpenGroupware.org
More information about the users
mailing list