Re: [core] http observe unification

Adam Roach <adam@nostrum.com> Fri, 29 October 2010 21:55 UTC

Return-Path: <adam@nostrum.com>
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 AF0E63A6A81 for <core@core3.amsl.com>; Fri, 29 Oct 2010 14:55:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.626
X-Spam-Level:
X-Spam-Status: No, score=-102.626 tagged_above=-999 required=5 tests=[AWL=-0.026, BAYES_00=-2.599, SPF_PASS=-0.001, 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 to3Y7s-uOQug for <core@core3.amsl.com>; Fri, 29 Oct 2010 14:55:18 -0700 (PDT)
Received: from nostrum.com (nostrum-pt.tunnel.tserv2.fmt.ipv6.he.net [IPv6:2001:470:1f03:267::2]) by core3.amsl.com (Postfix) with ESMTP id B32F53A6853 for <core@ietf.org>; Fri, 29 Oct 2010 14:55:01 -0700 (PDT)
Received: from dn3-228.estacado.net (vicuna-alt.estacado.net [75.53.54.121]) (authenticated bits=0) by nostrum.com (8.14.3/8.14.3) with ESMTP id o9TLurvg038873 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NO) for <core@ietf.org>; Fri, 29 Oct 2010 16:56:53 -0500 (CDT) (envelope-from adam@nostrum.com)
Message-ID: <4CCB4325.4090708@nostrum.com>
Date: Fri, 29 Oct 2010 16:56:53 -0500
From: Adam Roach <adam@nostrum.com>
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.12) Gecko/20101027 Thunderbird/3.1.6
MIME-Version: 1.0
To: core@ietf.org
References: <AANLkTikcog5b3hB-bzyY2eBSQOiq2MVSVM09uj12tSo=@mail.gmail.com> <1B46E7DD-0D06-46B1-AF6D-D934E2DDB3C6@cisco.com>
In-Reply-To: <1B46E7DD-0D06-46B1-AF6D-D934E2DDB3C6@cisco.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Received-SPF: pass (nostrum.com: 75.53.54.121 is authenticated by a trusted mechanism)
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: Fri, 29 Oct 2010 21:55:21 -0000

On 10/29/10 3:48 PM, Cullen Jennings wrote:
> On Oct 28, 2010, at 6:43 AM, Peter Bigot wrote:
>> 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 helped design the SIP Sub/Notify system and it's design goals were very different from what we are trying to do here. At a high level it is isomorphic to what we want but as you did into the details, it was optimized for something fairly different than the CoAP use cases. I'm certainly not pushing the approach that was used in SIP thought I tend to fall into using the terminology from SIP just because I know it well.

Oh, yeah, wow. You don't want to use SIP for this, unless you change 
what the "Co" stands for in "CoAP." You don't really even want to try to 
mirror its semantics into a CoAP-related protocol. One of the things I'm 
finding refreshing about CoAP at this stage of its life is that no one 
has started adding in giant arrays of nuclear-powered kitchen sinks. At 
least, not yet.

What we've done with SIP events is arbitrarily flexible, which is why 
it's used for everything from presence to dialog state monitoring, user 
agent configuration, and even certificate management. We've even seen 
proposals to use it to monitor automotive data in real-time. Really.

You don't need this.

Now, what's kind of nice about RFC 5989 (draft-roach-sip-http-subscribe 
was published as an RFC last night) is that it's a very simple use of 
SIP events. Just about any explicit observation model you come up with 
for CoAP should be able to interwork with RFC 5989 (at least, as long as 
you're using CoAP servers and HTTP clients -- I wouldn't want to try to 
make it go in the other direction, but I don't think that's on the table).

I really wouldn't focus on the semantics of the SIP events mechanism 
when you're designing CoAP observations, anyway. There are other ways to 
monitor for changes to a resource, such as PubSubHubbub, that are 
designed for certain niches.

In terms of a model that is simple, deployed, and works over UDP 
(well... and proprietary), you might look here for design inspiration: 
http://msdn.microsoft.com/en-us/library/aa143117%28EXCHG.65%29.aspx

/a