Re: Proposal for work on an efficient, browser-friendly, HTTP-based communication protocol for fine-grained information exchange
Wenbo Zhu <wenboz@google.com> Sat, 14 August 2010 09:02 UTC
Return-Path: <w3c-dist-auth-request@listhub.w3.org>
X-Original-To: ietfarch-webdav-archive@core3.amsl.com
Delivered-To: ietfarch-webdav-archive@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 09ED33A67A7 for <ietfarch-webdav-archive@core3.amsl.com>; Sat, 14 Aug 2010 02:02:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.976
X-Spam-Level:
X-Spam-Status: No, score=-5.976 tagged_above=-999 required=5 tests=[AWL=4.000, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id svai0T7pH6Dd for <ietfarch-webdav-archive@core3.amsl.com>; Sat, 14 Aug 2010 02:02:47 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by core3.amsl.com (Postfix) with ESMTP id 32BE33A68F6 for <webdav-archive@lists.ietf.org>; Sat, 14 Aug 2010 02:02:45 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.69) (envelope-from <w3c-dist-auth-request@listhub.w3.org>) id 1OkCcb-0008Uf-6E for w3c-dist-auth-dist@listhub.w3.org; Sat, 14 Aug 2010 09:01:45 +0000
Received: from wiggum.w3.org ([128.30.52.43]) by frink.w3.org with esmtp (Exim 4.69) (envelope-from <wenboz@google.com>) id 1OkCcZ-0008SB-G3 for w3c-dist-auth@listhub.w3.org; Sat, 14 Aug 2010 09:01:43 +0000
Received: from nobody by wiggum.w3.org with local (Exim 4.63) (envelope-from <wenboz@google.com>) id 1OkCcZ-0006Fi-G3 for w3c-dist-auth@listhub.w3.org; Sat, 14 Aug 2010 09:01:43 +0000
Received: from bart.w3.org ([128.30.52.63]) by frink.w3.org with esmtp (Exim 4.69) (envelope-from <wenboz@google.com>) id 1Ok20u-0003M6-8u for w3c-dist-auth@listhub.w3.org; Fri, 13 Aug 2010 21:42:08 +0000
Received: from smtp-out.google.com ([74.125.121.35]) by bart.w3.org with esmtp (Exim 4.69) (envelope-from <wenboz@google.com>) id 1Ok20r-0000Xt-JM for w3c-dist-auth@w3.org; Fri, 13 Aug 2010 21:42:08 +0000
Received: from kpbe17.cbf.corp.google.com (kpbe17.cbf.corp.google.com [172.25.105.81]) by smtp-out.google.com with ESMTP id o7DLfcSN031192 for <w3c-dist-auth@w3.org>; Fri, 13 Aug 2010 14:41:38 -0700
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1281735699; bh=RQgmBKfAyXDZRE1JQ/eOoar9aRg=; h=MIME-Version:In-Reply-To:References:Date:Message-ID:Subject:From: To:Content-Type; b=u9wI1W0GHHamp0cKxdghA7U7nNjTtS+w4FNJjh/zDgX4UY2GYdjD3TX4gz8Z8FcX3 8Y5oMs59TQxDFYWhcXZAA==
DomainKey-Signature: a=rsa-sha1; s=beta; d=google.com; c=nofws; q=dns; h=mime-version:in-reply-to:references:date:message-id:subject:from:to: content-type:x-system-of-record; b=STLIUaHftdYFPdnzoBAgh/3mxDaSB2fq168gObkGmBZuLTKbIbAUAAokLEyo+mxjm Twkld9696J31W/k+EofzQ==
Received: from ywj3 (ywj3.prod.google.com [10.192.10.3]) by kpbe17.cbf.corp.google.com with ESMTP id o7DLfapc031758 for <w3c-dist-auth@w3.org>; Fri, 13 Aug 2010 14:41:37 -0700
Received: by ywj3 with SMTP id 3so1670515ywj.10 for <w3c-dist-auth@w3.org>; Fri, 13 Aug 2010 14:41:36 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.90.88.7 with SMTP id l7mr1629181agb.150.1281735690678; Fri, 13 Aug 2010 14:41:30 -0700 (PDT)
Received: by 10.91.220.17 with HTTP; Fri, 13 Aug 2010 14:41:30 -0700 (PDT)
In-Reply-To: <AANLkTi=QQigdgqhG=qBkRsPQP_pK+M00RpxU6APAVToH@mail.gmail.com>
References: <4C63C650.1090301@gmx.de> <AANLkTi=QQigdgqhG=qBkRsPQP_pK+M00RpxU6APAVToH@mail.gmail.com>
Date: Fri, 13 Aug 2010 14:41:30 -0700
Message-ID: <AANLkTin72JLSLS0f9wmeoejvqinHg58pydp=QKz+LT1F@mail.gmail.com>
From: Wenbo Zhu <wenboz@google.com>
To: w3c-dist-auth <w3c-dist-auth@w3.org>
Content-Type: multipart/alternative; boundary="0016361e89be89f1b5048dbb589d"
X-System-Of-Record: true
Received-SPF: pass
X-SPF-Guess: pass
X-W3C-Hub-Spam-Status: No, score=-6.6
X-W3C-Hub-Spam-Report: BAYES_00=-2.599, DKIM_SIGNED=0.001, DKIM_VERIFIED=-0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001
X-W3C-Scan-Sig: bart.w3.org 1Ok20r-0000Xt-JM fce48a0dcd28db6aef92acbdfc7c46e5
X-caa-id: 9075dc85957adc04a1ab
X-Original-To: w3c-dist-auth@w3.org
Subject: Re: Proposal for work on an efficient, browser-friendly, HTTP-based communication protocol for fine-grained information exchange
Archived-At: <http://www.w3.org/mid/AANLkTin72JLSLS0f9wmeoejvqinHg58pydp=QKz+LT1F@mail.gmail.com>
Resent-From: w3c-dist-auth@w3.org
X-Mailing-List: <w3c-dist-auth@w3.org> archive/latest/13299
X-Loop: w3c-dist-auth@w3.org
Sender: w3c-dist-auth-request@w3.org
Resent-Sender: w3c-dist-auth-request@w3.org
Precedence: list
List-Id: <w3c-dist-auth.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Unsubscribe: <mailto:w3c-dist-auth-request@w3.org?subject=unsubscribe>
Resent-Message-Id: <E1OkCcb-0008Uf-6E@frink.w3.org>
Resent-Date: Sat, 14 Aug 2010 09:01:45 +0000
[re-repost] Very plausible .. and comments inline. - Wenbo > -------- Original Message -------- > > Subject: Proposal for work on an efficient, browser-friendly, HTTP-based > communication protocol for fine-grained information exchange > Date: Thu, 12 Aug 2010 10:36:59 +0200 > From: Julian Reschke <julian.reschke@gmx.de> > To: WebDAV <w3c-dist-auth@w3.org> > > Proposal for work on an efficient, browser-friendly, HTTP-based > communication protocol for fine-grained information exchange > > HTTP/1.1 (RFC 2616) already contains a set of tools for modifying > resources , namely the methods PUT, POST, and DELETE. > > Many systems have been built on top of this, most of them in an ad-hoc > manner (which is ok when client and server are controlled by the same > developers). > > We would like to cover some of the following use cases extending the > resource oriented model. > > (1) An simple javascript based browser application should be able to > read fine-grained information (comparable to WebDAV properties) in a > simple manner using a defined JSON format to be consumed in an intuitive > fashion. > > (2) A simple HTML Form should be able to write information in a patch > oriented manner containing both binary (file) data and fine-grained, > typed information using a multipart POST. > > (3) A simple javascript application should be able to write information > in a patch oriented fashion using a defined JSON-diff PATCH content-type > to update fine-grained information. > > There are also several extensions/applications of HTTP in this space, > such as: > > - WebDAV (RFC 4918), which defines (a) a collection model and methods to > manipulate collections/namespaces, (b) a metadata (=property) model, and > (c) locking. Other RFCs add extensions on top of this, such as > Versioning (RFC 3253) and ACLs (RFC 3744). > > - The Atom feed format (RFC 4287) and AtomPub (RFC 5023) use a simpler, > not necessarily hierarchic collection model (which, depending on the use > case, may be a plus), but does not provide many features WebDAV + > friends define. Notably, namespace operations are absent. > > WebDAV and AtomPub have been very successful so far. WebDAV gets used > both as a plain remote filesystem protocol (as observed by clients being > shipped with all operating systems, and both Apache httpd and IIS > supporting it), and for specific applications, such as Versioning > (subversion), Calendaring (CalDAV), etc. The same is true for AtomPub, > which actually may not be used a lot in practice for the original use > case (feed authoring), but for many other things instead. > > Both of those protocol specifications are not easily consumed by > websites and applications running current browsers and require a lot of > client-sided scripting to cover simple read and write use cases. > > There's a proposal for a protocol called "JSOP", which addresses these > use cases, which we may want to consider as input for this work: > <http://www.slideshare.net/uncled/jsop> > > So what's wrong with WebDAV? > > Since the time WebDAV was designed, we have learned a lot how to use the > Web and HTTP. Such as: > > - if you want to expose data for read operations, make it available to > GET, and assign URIs, > > - consider cacheability, atomicity, and performance of sync operations > (for instance, syncing large collections), > > - be careful with new HTTP methods -- avoid them for things that are not > of generic use (good: MKCOL, bad: MKCALENDAR) and keep in mind that > certain platforms (HTML forms, Flash...) can't use them, > > - when defining formats, also define internet media types. > > Also, in the last few months, new (and not so new) techniques have > finally been published as RFCs, such as: > > - HTTP PATCH method (RFC 5789) > > - HTTP Link Header and Link Relations Registry > (http://tools.ietf.org/html/draft-nottingham-http-link-header-10, in the > RFC Editor queue) > > - Service Discovery through well-known URIs (RFC 5785) > > Another potential building block are URI templates (work in progress: > http://tools.ietf.org/html/draft-gregorio-uritemplate-04) > > Considering all of these pieces, it's quite obvious that there's a > number of specs that would be useful on their own, but could also, > combined together, form the basis of an interesting authoring protocol: > > > # Data Model > > 1) Define a collection model (hierarchy, naming), and a representation > format. > > I have seen many debates around representation formats when the underlying meta-model is often ignored ... and the meta-model should cover, in addition to hierarchy, relations. And naming should allow for different representations too, e.g. with the URI template[] being one of them. > Can we re-use the WebDAV collection model here? Web application authors > > probably would prefer a JSON representation, so can we simply define > this as an alternate representation of a DAV:multistatus description of > a collection? > > 2) Define namespace operations in terms of manipulating collection > representations (also consider a mapping to COPY/MOVE). > > 3) Define a media type to use with PATCH for modifying these > representations. > > 4) Define a property model (something like the intersection between > WebDAV properties and Java Content Repository (JSR-283) properties?) > > > # Authoring through HTML forms and POST > > Define how POST with multipart/form-data (RFC 2388) can be used for > authoring both content and properties. > > > # URIs for collection browsing > > Assign either hardwired or discoverable URIs for inspecting collections > (URI templates?). Or maybe link relations for collection navigation > (similar work for versioning: RFC 5829). > > > # Improvements to WebDAV > > 1) Clarify how MOVE and COPY can operate on non-WebDAV resources (this > question comes up quite frequently). > > 2) Define how to use POST on WebDAV collections to add members (done: > see http://greenbytes.de/tech/webdav/#draft-reschke-webdav-post, in RFC > Editor queue). > > 3) Define media types (multiple?) for DAV:multistatus. > > 4) Define a discovery mechanism for GETtable representations of > PROPFIND/REPORT results (old proposal: > > http://greenbytes.de/tech/webdav/draft-reschke-http-get-location-latest.html > ). > > 5) Define a mapping between link-typed WebDAV properties and generic > Link relations (see proposal: > http://lists.w3.org/Archives/Public/w3c-dist-auth/2008OctDec/0026.html). > > Although some of this will only be partially related to WebDAV, we think > that this mailing list might be a good venue for discussion. > > > Expected deliverables from this activity would be: > > 1) Definition of a very simply data model and a representation format > for it (required JSON, optionally XML). > > 2) A format suitable for manipulating the data format above using PATCH > (potentially tunneled through POST). > > 3) A binding from multipart/form-data/POST to this model. > > 4) A separate (?) document explaining how these ingredients would be > combined in practice. > > Extensions to WebDAV and mappings from/to WebDAV could be useful, but > would not be a core part of this activity. (That is, we can do without > if no volunteers speak up). > Resource-based concurrency-control and sync (revision logs) specs may be developed on top of these deliverables as well. > > Note that not all of these specs necessarily need to be on the > standards track; for instance, there might be candidates for > Informational RFCs as well (see > <http://tools.ietf.org/html/rfc2026#section-4> for details). > > > Feedback appreciated. > > Julian Reschke > David Nüscheler > > > > PS: people not familiar with the IETF may want to have a look at > <http://www.ietf.org/tao.html> > > >
- Proposal for work on an efficient, browser-friend… Julian Reschke
- Webdav related extensions, was: Proposal for work… Julian Reschke
- Re: Fwd: Proposal for work on an efficient, brows… Leigh L. Klotz, Jr
- Re: Proposal for work on an efficient, browser-fr… Wenbo Zhu
- Re: Proposal for work on an efficient, browser-fr… Geoffrey M Clemm
- Re: Proposal for work on an efficient, browser-fr… Jukka Zitting
- Re: Proposal for work on an efficient, browser-fr… Wenbo Zhu
- payload formats and methods, was: Proposal for wo… Julian Reschke
- Re: Proposal for work on an efficient, browser-fr… Julian Reschke
- Re: Proposal for work on an efficient, browser-fr… Julian Reschke
- Re: Fwd: Proposal for work on an efficient, brows… Julian Reschke
- Re: Proposal for work on an efficient, browser-fr… Yves Lafon
- Re: Proposal for work on an efficient, browser-fr… Wenbo Zhu
- Re: Proposal for work on an efficient, browser-fr… Julian Reschke
- Re: Proposal for work on an efficient, browser-fr… David Nuescheler
- Re: Proposal for work on an efficient, browser-fr… Michael Wechner
- Data Model Julian Reschke
- Re: Proposal for work on an efficient, browser-fr… David Nuescheler
- Re: Data Model David Nuescheler
- Re: Data Model Julian Reschke
- Re: Data Model David Nuescheler
- Re: Data Model Julian Reschke
- Re: Data Model David Nuescheler
- Re: Data Model Julian Reschke
- Data Model, as seen from WebDAV Julian Reschke
- Re: Data Model Justin Edelson
- Re: Data Model, as seen from WebDAV Julian Reschke
- Re: Data Model, as seen from WebDAV Mike Douglass
- Re: Data Model, as seen from WebDAV Julian Reschke
- Re: Data Model, as seen from WebDAV David Nuescheler