Re: [core] http observe unification

Carsten Bormann <cabo@tzi.org> Thu, 28 October 2010 13:54 UTC

Return-Path: <cabo@tzi.org>
X-Original-To: core@core3.amsl.com
Delivered-To: core@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 136FA3A68A0 for <core@core3.amsl.com>; Thu, 28 Oct 2010 06:54:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -106.26
X-Spam-Level:
X-Spam-Status: No, score=-106.26 tagged_above=-999 required=5 tests=[AWL=-0.011, BAYES_00=-2.599, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
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 TeVDU44-3wc4 for <core@core3.amsl.com>; Thu, 28 Oct 2010 06:54:43 -0700 (PDT)
Received: from informatik.uni-bremen.de (mailhost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9:209:3dff:fe00:7136]) by core3.amsl.com (Postfix) with ESMTP id C7EDC3A6866 for <core@ietf.org>; Thu, 28 Oct 2010 06:54:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at informatik.uni-bremen.de
Received: from smtp-fb3.informatik.uni-bremen.de (smtp-fb3.informatik.uni-bremen.de [134.102.224.120]) by informatik.uni-bremen.de (8.14.3/8.14.3) with ESMTP id o9SDu1lD003447; Thu, 28 Oct 2010 15:56:01 +0200 (CEST)
Received: from [10.0.1.2] (reingewinn.informatik.uni-bremen.de [134.102.218.123]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by smtp-fb3.informatik.uni-bremen.de (Postfix) with ESMTPSA id 7521FEB2; Thu, 28 Oct 2010 15:56:01 +0200 (CEST)
Mime-Version: 1.0 (Apple Message framework v1081)
Content-Type: text/plain; charset="us-ascii"
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <AANLkTikcog5b3hB-bzyY2eBSQOiq2MVSVM09uj12tSo=@mail.gmail.com>
Date: Thu, 28 Oct 2010 15:56:00 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <71B894AE-7AD9-4DBC-AE21-00353894D8F0@tzi.org>
References: <AANLkTikcog5b3hB-bzyY2eBSQOiq2MVSVM09uj12tSo=@mail.gmail.com>
To: Peter Bigot <pab@peoplepowerco.com>
X-Mailer: Apple Mail (2.1081)
Cc: core <core@ietf.org>
Subject: Re: [core] http observe unification
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 28 Oct 2010 13:54:47 -0000

Hi Peter,

I can't speak for Cullen (who is fast asleep right now, I hope), but you pressed what I think is a similar button with me, so I'll give you my interpretation.

> In the telecon yesterday, you objected to my proposal that the solution to the observation problem be left to designers of specific systems.  It sounded like you felt a reference document describing alternative approaches that applications might take would not be adequate.  Could you elaborate a little more here on what you believe CoAP must provide, and in what timeframe?

Most of us are used to take existing protocols and kludge together a solution for a problem using these protocols.  (One could argue that much of the Internet works that way.)  However, all these kludges have limitations and complexities caused by their kludginess.  When designing something new, it is important to separate in one's mind the desire to reuse a neat kludge that once worked for us, from a *good* way to solve the problem.  (As usual, this is balanced by the need to avoid NIH -- component reuse is a good idea, and a fit rarely has to be perfect.)

So, back to the specific problem, I think what would be interesting to see is a spec on resource observation that is developed well enough that these issues can be evaluated.  HTTP has shown us that there is no end of kludges that can be invented to solve related problems -- we have to find out which approaches are good for CoAP (where goodness includes, but is *not* limited to, ease of building boxes that map to HTTP).

In the end we want to have *the* way to handle asynchronous communication in CoAP, or -- if we need to have multiple ways -- one each for a well-defined area of application.  "Let the market decide" often just means people play games whose kludge goes into which widely used product first -- in the end we all lose.

(To avoid misunderstandings -- I'm not saying that, say, every solution that treats a subscription as a REST resource in their own right is a kludge, I'm just feeling that way when the main motivation appears to be that one would need to do this in HTTP.  CoAP is not HTTP.  On the other hand there may be a need to do both the lightweight and the heavyweight solution if each of them does not solve all the problems the other does and the unsolved problems are important enough to warrant a second solution.)

> I understood you to say that some IETF working group was nearly complete with a proposed standard way to implement observation in HTTP.  Is that the Httpbis group?  To which of their documents were you referring?  draft-loreto-http-bidirectional is somewhat relevant (wrt streaming responses).

I think that comment was with respect to websockets.  Websockets is interesting as it is not an application protocol in the strict sense, but a way to securely (for some definition of security) derive a (minimally structured) transport to a browser from a URI.  The other half, how notifications should look like and how they interact with resource state, is outside the scope of websockets.  CoAP does not need websockets, because we already know how to send packets in our constrained networks, and there is no browser security to take care of.

Of course, there is half a dozen other hybi proposals that are more semantically rich.
http://trac.tools.ietf.org/bof/trac/wiki/HyBi#Proposals lists about half of them.

> The clearly relevant one is draft-roach-sip-http-subscribe, but that's based on SIP event notification.  Were we to take that approach, it might be best to define a CoAP-like protocol "csip", rather than integrate that functionality directly into CoAP.  On first glance, it appears this would be at least as much work as defining CoAP has been.  It would, though, give us a solution to observation, notification, and group communication that is compatible with the HTTP family of protocols, so is certainly worth considering.

I think this draft is a good source of ideas on how to combine HTTP resources with other protocols.  I don't see a need to draw in yet another protocol, though.

Gruesse, Carsten