Re: [core] Fwd: New Version Notification for draft-hartke-coap-observe-00

Zach Shelby <zach@sensinode.com> Wed, 23 June 2010 16:37 UTC

Return-Path: <zach@sensinode.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 033F73A6887 for <core@core3.amsl.com>; Wed, 23 Jun 2010 09:37:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.252
X-Spam-Level:
X-Spam-Status: No, score=-1.252 tagged_above=-999 required=5 tests=[AWL=-0.853, BAYES_50=0.001, J_CHICKENPOX_55=0.6, RCVD_IN_DNSWL_LOW=-1]
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 f-x454dbgEdd for <core@core3.amsl.com>; Wed, 23 Jun 2010 09:37:36 -0700 (PDT)
Received: from auth-smtp.nebula.fi (auth-smtp.nebula.fi [217.30.180.105]) by core3.amsl.com (Postfix) with ESMTP id C04E928C13D for <core@ietf.org>; Wed, 23 Jun 2010 09:37:35 -0700 (PDT)
Received: from [192.168.1.3] (line-8354.dyn.kponet.fi [85.29.79.2]) (authenticated bits=0) by auth-smtp.nebula.fi (8.13.4/8.13.4) with ESMTP id o5NGb0JE026097 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Wed, 23 Jun 2010 19:37:38 +0300
Mime-Version: 1.0 (Apple Message framework v1081)
Content-Type: text/plain; charset="us-ascii"
From: Zach Shelby <zach@sensinode.com>
In-Reply-To: <A9654C45-840C-4682-AA1A-9EAF44D81138@tzi.org>
Date: Wed, 23 Jun 2010 18:24:11 +0300
Content-Transfer-Encoding: quoted-printable
Message-Id: <3A0432F2-457D-47B4-A826-9678E8F5DB57@sensinode.com>
References: <20100622203528.0519A28C0D0@core3.amsl.com> <A9654C45-840C-4682-AA1A-9EAF44D81138@tzi.org>
To: Carsten Bormann <cabo@tzi.org>
X-Mailer: Apple Mail (2.1081)
Cc: core <core@ietf.org>
Subject: Re: [core] Fwd: New Version Notification for draft-hartke-coap-observe-00
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: Wed, 23 Jun 2010 16:37:39 -0000

Klaus, Carsten,

Wow guys, you really put a huge amount of work into analyzing this. Thanks! 

At the abstract level, I think you have captured the requirements and general concept of what we want to achieve very well. I think it is an important point in your draft that CoAP is a RESTful transfer protocol, not an application protocol. Therefore, support of resource observation is at the transfer protocol level, and is transparent to the application. 

Here are some initial comments:

- The requirements are good, however we should not require an end-point to support observation for its resources. It is up to the server if a resources is "observable" or not, and thus very simple end-points may leave that feature out to minimize code size.

- Are we sure we need all the requirements here, or are some nice-to-have? For example: "A subscribing client must be able to influence the representation format in which the server supplies the resource state" I would hope this doesn't end up resulting in a bunch of Accept: style headers? Couldn't that be left to the application to offer URLs with different representation formats? I am not convinced this should be a transfer protocol requirement for CoAP.

- At first glance this looks overly complicated, but I think it is because you are modeling this as a format design pattern and are exploring this is detail. I am hoping that realizing this would be a whole lot simpler? 

- SUBSCRIBE, UNSUBSCRIBE, YIELD, BREAK, THROW are abstract concepts at this point, I would think these could be combined quite a bit in realization? What kind of realization do you guys have in mind (just for a sneak preview to see if this is nuts or not).

- The notification messages seem to be sometimes representations and sometimes error codes. Is this suggesting that an (abstract) notification message would need to carry both a representation and a CoAP code. BREAK and THROW are also shows as being piggybacked on replies, so they basically are CoAP codes. So YEILD = representation, and BREAK+THROW = CoAP codes?

- I am not sure about the implications of allowing a delayed GET and PUT response on implementations. Currently in coap-00 if an end-point doesn't make use of subscribe/notify it doesn't have to implement code to wait for asynchronous notifications. For example it might simply make a request, open a temporary UDP socket waiting for the response, and then close that and go to sleep. Well, I guess if it gets an intermediate response code it would know to stay awake waiting for the response. Is this an efficient way of using energy in a constrained network though? What if a client doesn't want a delayed response?

- Regarding Section 6, I prefer "way 1", seems much cleaner to me, has less state and is useful in a proxy.   

Zach

On Jun 22, 2010, at 11:49 PM, Carsten Bormann wrote:

> Klaus Hartke and I have just submitted a draft on issue #1/#2.
> 
> http://datatracker.ietf.org/doc/draft-hartke-coap-observe/
> 
> We believe it is not meaningful to discuss requirements without an
> idea to what kind of design they might lead, so we provided a design
> as well.  In effect, we tried to liberate ourselves from the
> publish/subscribe/notify terminology and went back to the actual base
> requirement behind charter objective 2: being able to observe a resource.
> 
> We tried to stick to the REST model as much as possible, but we extend
> the existing HTTP methods by a method for explicitly *observing* a
> resource.  This does not necessarily require the resource to implement
> new methods, only the server offering its representations has to.
> There is some new state, but it is not much different from the
> conversation state that we already have in HTTP.
> 
> Enjoy!
> 
> Gruesse, Klaus and Carsten
> 
> 
> Begin forwarded message:
> 
>> From: IETF I-D Submission Tool <idsubmission@ietf.org>
>> Date: June 22, 2010 22:35:27 +0200
>> To: cabo@tzi.org
>> Cc: hartke@tzi.org
>> Subject: New Version Notification for draft-hartke-coap-observe-00 
>> 
>> 
>> A new version of I-D, draft-hartke-coap-observe-00.txt has been successfully submitted by Carsten Bormann and posted to the IETF repository.
>> 
>> Filename:	 draft-hartke-coap-observe
>> Revision:	 00
>> Title:		 Observing Resources in CoAP
>> Creation_date:	 2010-06-21
>> WG ID:		 Independent Submission
>> Number_of_pages: 23
>> 
>> Abstract:
>> The state of a resource can change over time.  We want to give
>> clients of the CoRE WG CoAP protocol the ability to observe this
>> change.  This short I-D provides an example design for such an
>> addition to CoAP, in order to be able to discuss the design
>> alternatives in specific terms.
>> 
>> 
>> 
>> The IETF Secretariat.
>> 
> 
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core

-- 
Zach Shelby, Chief Nerd, Sensinode Ltd.
http://zachshelby.org  - My blog "On the Internet of Things"
http://6lowpan.net - My book "6LoWPAN: The Wireless Embedded Internet"
Mobile: +358 40 7796297