
From Mohana.Jeyatharan@sg.panasonic.com  Sun May  9 18:32:52 2010
Return-Path: <Mohana.Jeyatharan@sg.panasonic.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 D5D1928C108 for <core@core3.amsl.com>; Sun,  9 May 2010 18:32:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.731
X-Spam-Level: **
X-Spam-Status: No, score=2.731 tagged_above=-999 required=5 tests=[AWL=0.221,  BAYES_50=0.001, HELO_EQ_JP=1.244, HOST_EQ_JP=1.265]
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 0woIar8nGyzA for <core@core3.amsl.com>; Sun,  9 May 2010 18:32:52 -0700 (PDT)
Received: from smtp.mei.co.jp (smtp.mei.co.jp [133.183.100.20]) by core3.amsl.com (Postfix) with ESMTP id E29DD28C107 for <core@ietf.org>; Sun,  9 May 2010 18:32:51 -0700 (PDT)
Received: from mail-gw.jp.panasonic.com ([157.8.1.145]) by smtp.mei.co.jp (8.12.11.20060614/3.7W/kc-maile12) with ESMTP id o4A1Wdo2017207 for <core@ietf.org>; Mon, 10 May 2010 10:32:39 +0900 (JST)
Received: from pslexc01.psl.local (localhost [127.0.0.1]) by mail.jp.panasonic.com (8.11.6p2/3.7W/kc-maili04) with ESMTP id o4A1Wb819008 for <core@ietf.org>; Mon, 10 May 2010 10:32:38 +0900 (JST)
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: quoted-printable
Date: Mon, 10 May 2010 09:33:19 +0800
Message-ID: <5F09D220B62F79418461A978CA0921BD0414DEC2@pslexc01.psl.local>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: Query on draft-struek-6lowapp-smartenergy-00
Thread-Index: Acrv4MU1cZ0dL7crS3qYpuROfEAhJw==
From: "Mohana Jeyatharan" <Mohana.Jeyatharan@sg.panasonic.com>
To: <core@ietf.org>
Subject: [core] Query on draft-struek-6lowapp-smartenergy-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: Mon, 10 May 2010 01:32:52 -0000

Hi,=20

The requirements draft (draft-struek-6lowapp-smartenergy-00) pertaining
to smart energy related requirements in HAN is a useful piece of
information.

It is stated in section 2.2, application protocol requirements for SE
device to SE device communication.  However, in the draft there is no
use case explained as to why such smart energy related communication
takes place between devices in the HAN.  What is this SE device? My
understanding is that they are home appliances. My assumption is that SE
devices are the nodes in 6LowPAN and not the routers (forwarders) nor
the edge router which defines the border of the 6LowPAN.  Is the smart
meter also considered as the SE device?

Section 1(introduction) outlines general benefits of the smart energy
communication and the communication end points looks like utilities and
consumers/equipment(appliances).  However, although SE to SE
communication requirements are mentioned in section 2 there is no
explanation given
as to the validity of the use case pertaining to smart energy
management.

Also it is mentioned SE device to server communication.
What is this server? Is it the edge router whuch acts as a sink or the
server in utlility?

If someone could shed more light on this it is useful.

BR,
Mohana

From d.sturek@att.net  Sun May  9 20:12:31 2010
Return-Path: <d.sturek@att.net>
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 50A563A6ACE for <core@core3.amsl.com>; Sun,  9 May 2010 20:12:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.648
X-Spam-Level: 
X-Spam-Status: No, score=0.648 tagged_above=-999 required=5 tests=[AWL=-1.137,  BAYES_50=0.001, IP_NOT_FRIENDLY=0.334, MSGID_MULTIPLE_AT=1.449,  UNPARSEABLE_RELAY=0.001]
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 3LMzUmBkSAPP for <core@core3.amsl.com>; Sun,  9 May 2010 20:12:30 -0700 (PDT)
Received: from smtp125.sbc.mail.sp1.yahoo.com (smtp125.sbc.mail.sp1.yahoo.com [69.147.65.184]) by core3.amsl.com (Postfix) with SMTP id 9FB983A6AD0 for <core@ietf.org>; Sun,  9 May 2010 20:12:30 -0700 (PDT)
Received: (qmail 56593 invoked from network); 10 May 2010 03:12:17 -0000
Received: from adsl-69-233-151-131.dsl.sndg02.pacbell.net (d.sturek@69.233.151.131 with login) by smtp125.sbc.mail.sp1.yahoo.com with SMTP; 09 May 2010 20:12:17 -0700 PDT
X-Yahoo-SMTP: fvjol_aswBAraSJvMLe2r1XTzhBhbFxY8q8c3jo-
X-YMail-OSG: kGo.dSAVM1nXeLmhPRo4WRffUVQgS1fkgzFiYAKTIXNaV1zx_1bUc1Ips93PVQ1ZnzvCIjU2483LEnXrHzg1E2qPj0x5cFpxV27AT84y_EtfrBHF8XtrRxfSGEYpFbZeB9sbZ_rfET3Epcmd4TtAplJfIqQO7e7tzwUrdBRJ1sGnGYPPUvd9J1wqjeVF5Gj3JpOaZfbO3rN1Xo1luT388Fqsm5ZfSOPGzDRbPpFWXv2GJ1R4wy7ooMhFc3OqJRNIvoTWzZz4q5kz4eoOYGpc9CsQ654nV.DaVddffnITOf1MP.cWV2g-
X-Yahoo-Newman-Property: ymail-3
From: "Don Sturek" <d.sturek@att.net>
To: "'Mohana Jeyatharan'" <Mohana.Jeyatharan@sg.panasonic.com>, <core@ietf.org>
References: <5F09D220B62F79418461A978CA0921BD0414DEC2@pslexc01.psl.local>
In-Reply-To: <5F09D220B62F79418461A978CA0921BD0414DEC2@pslexc01.psl.local>
Date: Sun, 9 May 2010 20:12:14 -0700
Message-ID: <001901caefee$977eb980$c67c2c80$@sturek@att.net>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Office Outlook 12.0
Thread-index: Acrv4MU1cZ0dL7crS3qYpuROfEAhJwADZAbA
Content-Language: en-us
Subject: Re: [core] Query on draft-struek-6lowapp-smartenergy-00
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: d.sturek@att.net
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: Mon, 10 May 2010 03:12:31 -0000

Hi Mohana,

You should read the use cases for Smart Grid HAN deployments.  Specifically,
the ZigBee/HomePlug Market Requirements Document Use Cases will explain what
the communication exchange scenarios are.

Don


-----Original Message-----
From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of
Mohana Jeyatharan
Sent: Sunday, May 09, 2010 6:33 PM
To: core@ietf.org
Subject: [core] Query on draft-struek-6lowapp-smartenergy-00

Hi, 

The requirements draft (draft-struek-6lowapp-smartenergy-00) pertaining
to smart energy related requirements in HAN is a useful piece of
information.

It is stated in section 2.2, application protocol requirements for SE
device to SE device communication.  However, in the draft there is no
use case explained as to why such smart energy related communication
takes place between devices in the HAN.  What is this SE device? My
understanding is that they are home appliances. My assumption is that SE
devices are the nodes in 6LowPAN and not the routers (forwarders) nor
the edge router which defines the border of the 6LowPAN.  Is the smart
meter also considered as the SE device?

Section 1(introduction) outlines general benefits of the smart energy
communication and the communication end points looks like utilities and
consumers/equipment(appliances).  However, although SE to SE
communication requirements are mentioned in section 2 there is no
explanation given
as to the validity of the use case pertaining to smart energy
management.

Also it is mentioned SE device to server communication.
What is this server? Is it the edge router whuch acts as a sink or the
server in utlility?

If someone could shed more light on this it is useful.

BR,
Mohana
_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core


From Mohana.Jeyatharan@sg.panasonic.com  Sun May  9 20:45:06 2010
Return-Path: <Mohana.Jeyatharan@sg.panasonic.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 9424428B56A for <core@core3.amsl.com>; Sun,  9 May 2010 20:45:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.751
X-Spam-Level: **
X-Spam-Status: No, score=2.751 tagged_above=-999 required=5 tests=[AWL=0.241,  BAYES_50=0.001, HELO_EQ_JP=1.244, HOST_EQ_JP=1.265]
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 pLBlJhTFTkaL for <core@core3.amsl.com>; Sun,  9 May 2010 20:45:05 -0700 (PDT)
Received: from smtp.mei.co.jp (smtp.mei.co.jp [133.183.100.20]) by core3.amsl.com (Postfix) with ESMTP id 7A6423A657C for <core@ietf.org>; Sun,  9 May 2010 20:45:05 -0700 (PDT)
Received: from mail-gw.jp.panasonic.com ([157.8.1.145]) by smtp.mei.co.jp (8.12.11.20060614/3.7W/kc-maile13) with ESMTP id o4A3ip66008305; Mon, 10 May 2010 12:44:51 +0900 (JST)
Received: from pslexc01.psl.local (localhost [127.0.0.1]) by mail.jp.panasonic.com (8.11.6p2/3.7W/kc-maili02) with ESMTP id o4A3ieV24091; Mon, 10 May 2010 12:44:41 +0900 (JST)
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: quoted-printable
Date: Mon, 10 May 2010 11:45:26 +0800
Message-ID: <5F09D220B62F79418461A978CA0921BD0414DF69@pslexc01.psl.local>
In-Reply-To: <001901caefee$977eb980$c67c2c80$@sturek@att.net>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [core] Query on draft-struek-6lowapp-smartenergy-00
Thread-Index: Acrv4MU1cZ0dL7crS3qYpuROfEAhJwADZAbAAAEooqA=
References: <5F09D220B62F79418461A978CA0921BD0414DEC2@pslexc01.psl.local> <001901caefee$977eb980$c67c2c80$@sturek@att.net>
From: "Mohana Jeyatharan" <Mohana.Jeyatharan@sg.panasonic.com>
To: <d.sturek@att.net>, <core@ietf.org>
Subject: Re: [core] Query on draft-struek-6lowapp-smartenergy-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: Mon, 10 May 2010 03:45:06 -0000

Hi Don,

Thank you for your response.  Will check the market requirement document
for the communication scenarios.

BR,
Mohana

> -----Original Message-----
> From: Don Sturek [mailto:d.sturek@att.net]
> Sent: Monday, May 10, 2010 11:12 AM
> To: Mohana Jeyatharan; core@ietf.org
> Subject: RE: [core] Query on draft-struek-6lowapp-smartenergy-00
>=20
> Hi Mohana,
>=20
> You should read the use cases for Smart Grid HAN deployments.
> Specifically,
> the ZigBee/HomePlug Market Requirements Document Use Cases will
explain
> what
> the communication exchange scenarios are.
>=20
> Don
>=20
>=20
> -----Original Message-----
> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf
Of
> Mohana Jeyatharan
> Sent: Sunday, May 09, 2010 6:33 PM
> To: core@ietf.org
> Subject: [core] Query on draft-struek-6lowapp-smartenergy-00
>=20
> Hi,
>=20
> The requirements draft (draft-struek-6lowapp-smartenergy-00)
pertaining
> to smart energy related requirements in HAN is a useful piece of
> information.
>=20
> It is stated in section 2.2, application protocol requirements for SE
> device to SE device communication.  However, in the draft there is no
> use case explained as to why such smart energy related communication
> takes place between devices in the HAN.  What is this SE device? My
> understanding is that they are home appliances. My assumption is that
SE
> devices are the nodes in 6LowPAN and not the routers (forwarders) nor
> the edge router which defines the border of the 6LowPAN.  Is the smart
> meter also considered as the SE device?
>=20
> Section 1(introduction) outlines general benefits of the smart energy
> communication and the communication end points looks like utilities
and
> consumers/equipment(appliances).  However, although SE to SE
> communication requirements are mentioned in section 2 there is no
> explanation given
> as to the validity of the use case pertaining to smart energy
> management.
>=20
> Also it is mentioned SE device to server communication.
> What is this server? Is it the edge router whuch acts as a sink or the
> server in utlility?
>=20
> If someone could shed more light on this it is useful.
>=20
> BR,
> Mohana
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core


From zach@sensinode.com  Mon May 10 00:25:17 2010
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 15D8E28C128 for <core@core3.amsl.com>; Mon, 10 May 2010 00:25:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.699
X-Spam-Level: 
X-Spam-Status: No, score=-1.699 tagged_above=-999 required=5 tests=[AWL=-0.700, BAYES_50=0.001, 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 MSVoGau5zPJ3 for <core@core3.amsl.com>; Mon, 10 May 2010 00:25:15 -0700 (PDT)
Received: from auth-smtp.nebula.fi (auth-smtp.nebula.fi [217.30.180.105]) by core3.amsl.com (Postfix) with ESMTP id 9C2F128C14F for <core@ietf.org>; Mon, 10 May 2010 00:19:44 -0700 (PDT)
Received: from [62.145.172.51] ([62.145.172.51]) (authenticated bits=0) by auth-smtp.nebula.fi (8.13.4/8.13.4) with ESMTP id o4A7JT7F007121 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO) for <core@ietf.org>; Mon, 10 May 2010 10:19:29 +0300
From: Zach Shelby <zach@sensinode.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Date: Mon, 10 May 2010 10:19:30 +0300
References: <20100510070525.4102628C0CE@core3.amsl.com>
To: core <core@ietf.org>
Message-Id: <E1A734AD-E7D4-477C-BAC7-96B7C6F806E6@sensinode.com>
Mime-Version: 1.0 (Apple Message framework v1077)
X-Mailer: Apple Mail (2.1077)
Subject: [core] Fwd: New Version Notification for draft-shelby-core-coap-01
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: Mon, 10 May 2010 07:25:17 -0000

Hi,

Version -01 of draft-shelby-core-coap is now available:

http://www.ietf.org/id/draft-shelby-core-coap-01.txt

This has gone through a lot of little revisions after Anaheim based on =
the list discussions, comments on -00, discussions with the chairs and =
quite a bit of implementation validation. We hope -01 fixes most of the =
issues and provides the main improvements requested so far. My goal is =
to keep this stable for a longer time to give people a chance to get =
some implementation experience (have heard of 5 implementations so far). =
Next update planned before the Maastricht cutoff.

Here is a summary of the major changes in -01:

- Method names now GET, PUT, POST, DELETE
- Unified the message header and added a notify message type.
- Completed the SUBMIT method and option
- Improved the option TLV header, added Etag, Date and =
Subscription-lifetime Options
- Added a Magic byte header for TCP and packed UDP
- Wrote initial subscription, discovery and proxy sections
- Plenty of simplification, optimization and bug fixes=20

And of course still plenty of TODOs, the main ones are:

- HTTP Mapping
- Proxying
- Complete Examples section=20
- Define the TLS and DTLS bindings (help!)=20

Zach, Brian and Don

Begin forwarded message:

> From: IETF I-D Submission Tool <idsubmission@ietf.org>
> Date: May 10, 2010 10:05:25 GMT+03:00
> To: zach@sensinode.com
> Cc: brian@skyfoundry.com,d.sturek@att.net
> Subject: New Version Notification for draft-shelby-core-coap-01=20
>=20
>=20
> A new version of I-D, draft-shelby-core-coap-01.txt has been =
successfully submitted by Zach Shelby and posted to the IETF repository.
>=20
> Filename:	 draft-shelby-core-coap
> Revision:	 01
> Title:		 Constrained Application Protocol (CoAP)
> Creation_date:	 2010-05-10
> WG ID:		 Independent Submission
> Number_of_pages: 33
>=20
> Abstract:
> This document specifies the Constrained Application Protocol (CoAP),
> a specialized transfer protocol for use with constrained networks and
> nodes for machine-to-machine applications such as smart energy and
> building automation.  These constrained nodes often have 8-bit
> microcontrollers with small amounts of ROM and RAM, while networks
> such as 6LoWPAN often have high packet error rates and typical
> throughput of 10s of kbps.  CoAP provides request/reply and
> subscribe/notify interaction models between appliciation end-points,
> supports built-in resource discovery, and includes key web concepts
> such as URIs and RESTful methods.  CoAP easily translates to HTTP for
> integration with the web while meeting specialized requirements such
> as multicast support, very low overhead and simplicity for
> constrained environments.
>=20
>=20
>=20
> The IETF Secretariat.
>=20
>=20

--=20
Zach Shelby, Head of Research, 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


From cabo@tzi.org  Mon May 10 09:51:30 2010
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 503643A6A5A for <core@core3.amsl.com>; Mon, 10 May 2010 09:51:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.415
X-Spam-Level: 
X-Spam-Status: No, score=-4.415 tagged_above=-999 required=5 tests=[AWL=-0.766, BAYES_50=0.001, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-4]
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 Y3RuEcwoyAHq for <core@core3.amsl.com>; Mon, 10 May 2010 09:51:29 -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 DB0783A6A56 for <core@ietf.org>; Mon, 10 May 2010 09:51:28 -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 o4AGp8Ka012280 for <core@ietf.org>; Mon, 10 May 2010 18:51:08 +0200 (CEST)
Received: from [192.168.217.101] (p5489AF27.dip.t-dialin.net [84.137.175.39]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by smtp-fb3.informatik.uni-bremen.de (Postfix) with ESMTP id C6F2DD7BA;  Mon, 10 May 2010 18:51:07 +0200 (CEST)
From: Carsten Bormann <cabo@tzi.org>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Date: Mon, 10 May 2010 18:51:06 +0200
To: core <core@ietf.org>
Message-Id: <3BB5F67A-9E57-4F81-B7C5-ABB1E136DAAC@tzi.org>
Mime-Version: 1.0 (Apple Message framework v1078)
X-Mailer: Apple Mail (2.1078)
Subject: [core] Selecting a WG document for CoAP
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: Mon, 10 May 2010 16:51:30 -0000

The CORE WG has a milestone to select a WG document for CoAP in April:

http://datatracker.ietf.org/wg/core/charter/
...
Apr 2010	Select WG document for basis of the CoAP protocol

Of the various documents that have been contributed, =
draft-shelby-core-coap has significant discussion, as well as the =
largest number of updates (including a previous version that was still =
called -6lowapp-coap).

Today, another updated version of that draft was announced.  See
http://www.ietf.org/mail-archive/web/core/current/msg00138.html
for the announcement and
http://tools.ietf.org/html/draft-shelby-core-coap-01
for the draft itself.

However, as the authors say, there are still significant TODOs.

Are we in a state yet where we can say whether this is the right =
direction for the WG to take?
If yes, is it the right direction?  Should we adopt it as a WG document?
If you don't think we can say yet, is there a set of technical decisions =
you would like the authors to take with priority?

Note that once a document has become a WG document, the authors act as =
editors for the working group, making (and usually fleshing out the =
details of) any change that the WG decides it needs.
If you think we can still improve the draft, this is not an obstacle to =
making it a WG document.
But of course we shouldn't do that if we intend to reverse its =
fundamental technical direction.

In order to stay roughly in sync with our milestones, we should reach at =
a decision on how to go forward this week.

Gruesse, Carsten


From matthieu.vial@fr.non.schneider-electric.com  Tue May 11 01:12:32 2010
Return-Path: <matthieu.vial@fr.non.schneider-electric.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 5B5103A6B18; Tue, 11 May 2010 01:12:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.965
X-Spam-Level: 
X-Spam-Status: No, score=0.965 tagged_above=-999 required=5 tests=[BAYES_50=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1, SARE_GIF_ATTACH=1.42, TVD_FW_GRAPHIC_NAME_MID=0.543]
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 iMOwT-BFA-xH; Tue, 11 May 2010 01:12:28 -0700 (PDT)
Received: from mailX02.eud.schneider-electric.com (mailx02.eud.schneider-electric.com [205.167.7.38]) by core3.amsl.com (Postfix) with ESMTP id 3ADC83A6B2E; Tue, 11 May 2010 01:12:21 -0700 (PDT)
Received: from ATEUI01.schneider-electric.com ([10.198.14.9]) by mailX02.eud.schneider-electric.com with ESMTP id 2010051110053097-152305 ; Tue, 11 May 2010 10:05:30 +0200 
In-Reply-To: <E1A734AD-E7D4-477C-BAC7-96B7C6F806E6@sensinode.com>
To: Zach Shelby <zach@sensinode.com>
X-Mailer: Lotus Notes Release 6.5.6 March 06, 2007
Message-ID: <OFC9D1221A.0B7CA727-ONC125771F.00596DA9-C1257720.002D09E5@schneider-electric.com>
From: matthieu.vial@fr.non.schneider-electric.com
Date: Tue, 11 May 2010 10:11:56 +0200
MIME-Version: 1.0
X-MIMETrack: Serialize by Router on ATEUI01.Schneider-Electric.com/T/SVR/Schneider at 11/05/2010 10:12:03, Itemize by SMTP Server on AXEU2OUT.schneider-electric.com/X/SVR/SEIxtra at 11/05/2010 10:05:31, Serialize by Router on AXEU2OUT.schneider-electric.com/X/SVR/SEIxtra at 11/05/2010 10:05:38
Content-type: multipart/related;  Boundary="0__=4EBBFD8CDFCAEB398f9e8a93df938690918c4EBBFD8CDFCAEB39"
Cc: core-bounces@ietf.org, core <core@ietf.org>
Subject: [core] RE Fwd: New Version Notification for draft-shelby-core-coap-01
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: Tue, 11 May 2010 08:12:33 -0000

--0__=4EBBFD8CDFCAEB398f9e8a93df938690918c4EBBFD8CDFCAEB39
Content-type: multipart/alternative; 
	Boundary="1__=4EBBFD8CDFCAEB398f9e8a93df938690918c4EBBFD8CDFCAEB39"

--1__=4EBBFD8CDFCAEB398f9e8a93df938690918c4EBBFD8CDFCAEB39
Content-transfer-encoding: quoted-printable
Content-type: text/plain; charset=ISO-8859-1




Hi,

First of all congratulations for your work.

I have few comments about the subscribe/notify mechanism and the resour=
ce
directory.

As far as I understand the specification, a client will receive its
notifications on the same port as the subscribe request. As an implemen=
ter
I would like to handle all asynchronous notifications on a dedicated po=
rt
and perform synchronous GET, POST, PUT, DELETE on a different port. The=

current specification allows to do this for the UDP binding as it is
connectionless but for the TCP binding I must keep the connection I use=
d
for the subscribe request alive. Just tell me if it is not the good
approach because  I know TCP is not a major concern for COAP.

How can I define a fine grained notification? Is it completlty left to =
the
application so I must define a message format to describe precise
notification rules and include this message into the subscribe payload =
or
will you provide a framework later? Typical notification options would =
be:
minimal delay between 2 notifications to prevent from overwhelming the
network, an increment as the minimal change for noisy inputs, a maximum=

delay between notifications for periodic notifications and keep alive
signals ...

How do you manage the lifetime of resources in the resource directory?
The /.well-known/resources will probably not change very often so a sim=
ple
subscription/notification would be useless. Moreover a periodic POST fr=
om
devices seems not very efficient because the link format is quite verbo=
se
to be repeated without a real need. We could reuse the cacheability of =
COAP
to avoid large data transfer but only the get method is cacheable. That=

means the directory agent should have a list of all devices. This imply=

some kind of registration mechanism to the directory.

Best regards,
Matthieu VIAL






                                                                       =
    
             Zach Shelby                                               =
    
             <zach@sensinode.c                                         =
    
             om>                                                       =
  A 
             Envoy=E9 par :              core <core@ietf.org>          =
      
             core-bounces@ietf                                         =
 cc 
             .org                                                      =
    
                                                                     Ob=
jet 
                                       [core] Fwd: New Version         =
    
             10/05/2010 09:19          Notification for                =
    
                                       draft-shelby-core-coap-01       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    




Hi,

Version -01 of draft-shelby-core-coap is now available:

http://www.ietf.org/id/draft-shelby-core-coap-01.txt

This has gone through a lot of little revisions after Anaheim based on =
the
list discussions, comments on -00, discussions with the chairs and quit=
e a
bit of implementation validation. We hope -01 fixes most of the issues =
and
provides the main improvements requested so far. My goal is to keep thi=
s
stable for a longer time to give people a chance to get some implementa=
tion
experience (have heard of 5 implementations so far). Next update planne=
d
before the Maastricht cutoff.

Here is a summary of the major changes in -01:

- Method names now GET, PUT, POST, DELETE
- Unified the message header and added a notify message type.
- Completed the SUBMIT method and option
- Improved the option TLV header, added Etag, Date and
Subscription-lifetime Options
- Added a Magic byte header for TCP and packed UDP
- Wrote initial subscription, discovery and proxy sections
- Plenty of simplification, optimization and bug fixes

And of course still plenty of TODOs, the main ones are:

- HTTP Mapping
- Proxying
- Complete Examples section
- Define the TLS and DTLS bindings (help!)

Zach, Brian and Don

Begin forwarded message:

> From: IETF I-D Submission Tool <idsubmission@ietf.org>
> Date: May 10, 2010 10:05:25 GMT+03:00
> To: zach@sensinode.com
> Cc: brian@skyfoundry.com,d.sturek@att.net
> Subject: New Version Notification for draft-shelby-core-coap-01
>
>
> A new version of I-D, draft-shelby-core-coap-01.txt has been successf=
ully
submitted by Zach Shelby and posted to the IETF repository.
>
> Filename:         draft-shelby-core-coap
> Revision:         01
> Title:                        Constrained Application Protocol (CoAP)=

> Creation_date:          2010-05-10
> WG ID:                        Independent Submission
> Number_of_pages: 33
>
> Abstract:
> This document specifies the Constrained Application Protocol (CoAP),
> a specialized transfer protocol for use with constrained networks and=

> nodes for machine-to-machine applications such as smart energy and
> building automation.  These constrained nodes often have 8-bit
> microcontrollers with small amounts of ROM and RAM, while networks
> such as 6LoWPAN often have high packet error rates and typical
> throughput of 10s of kbps.  CoAP provides request/reply and
> subscribe/notify interaction models between appliciation end-points,
> supports built-in resource discovery, and includes key web concepts
> such as URIs and RESTful methods.  CoAP easily translates to HTTP for=

> integration with the web while meeting specialized requirements such
> as multicast support, very low overhead and simplicity for
> constrained environments.
>
>
>
> The IETF Secretariat.
>
>

--
Zach Shelby, Head of Research, 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

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
______________________________________________________________________
=

--1__=4EBBFD8CDFCAEB398f9e8a93df938690918c4EBBFD8CDFCAEB39
Content-transfer-encoding: quoted-printable
Content-type: text/html; charset=ISO-8859-1
Content-Disposition: inline

<html><body>
<p>Hi,<br>
<br>
First of all congratulations for your work.<br>
<br>
I have few comments about the subscribe/notify mechanism and the resour=
ce directory.<br>
<br>
As far as I understand the specification, a client will receive its not=
ifications on the same port as the subscribe request. As an implementer=
 I would like to handle all asynchronous notifications on a dedicated p=
ort and perform synchronous GET, POST, PUT, DELETE on a different port.=
 The current specification allows to do this for the UDP binding as it =
is connectionless but for the TCP binding I must keep the connection I =
used for the subscribe request alive. Just tell me if it is not the goo=
d approach because  I know TCP is not a major concern for COAP.<br>
<br>
How can I define a fine grained notification? Is it completlty left to =
the application so I must define a message format to describe precise n=
otification rules and include this message into the subscribe payload o=
r will you provide a framework later? Typical notification options woul=
d be: minimal delay between 2 notifications to prevent from overwhelmin=
g the network, an increment as the minimal change for noisy inputs, a m=
aximum delay between notifications for periodic notifications and keep =
alive signals ...<br>
<br>
How do you manage the lifetime of resources in the resource directory? =
The /.well-known/resources will probably not change very often so a sim=
ple subscription/notification would be useless. Moreover a periodic POS=
T from devices seems not very efficient because the link format is quit=
e verbose to be repeated without a real need. We could reuse the cachea=
bility of COAP to avoid large data transfer but only the get method is =
cacheable. That means the directory agent should have a list of all dev=
ices. This imply some kind of registration mechanism to the directory.<=
br>
<br>
Best regards,<br>
Matthieu VIAL<br>
<br>
<br>
<img width=3D"16" height=3D"16" src=3D"cid:1__=3D4EBBFD8CDFCAEB398@schn=
eider-electric.com" border=3D"0" alt=3D"Inactive hide details for Zach =
Shelby &lt;zach@sensinode.com&gt;">Zach Shelby &lt;zach@sensinode.com&g=
t;<br>
<br>
<br>
<br>
<br>

<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">=

<tr valign=3D"top"><td style=3D"background-image:url(cid:2__=3D4EBBFD8C=
DFCAEB398@schneider-electric.com); background-repeat: no-repeat; " widt=
h=3D"40%">
<ul>
<ul>
<ul>
<ul><b><font size=3D"2">Zach Shelby &lt;zach@sensinode.com&gt;</font></=
b><font size=3D"2"> </font><br>
<font size=3D"2">Envoy=E9 par : core-bounces@ietf.org</font>
<p><font size=3D"2">10/05/2010 09:19</font></ul>
</ul>
</ul>
</ul>
</td><td width=3D"60%">
<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">=

<tr valign=3D"top"><td width=3D"1%"><img width=3D"58" height=3D"1" src=3D=
"cid:3__=3D4EBBFD8CDFCAEB398@schneider-electric.com" border=3D"0" alt=3D=
""><br>
<div align=3D"right"><font size=3D"2">A</font></div></td><td width=3D"1=
00%"><img width=3D"1" height=3D"1" src=3D"cid:3__=3D4EBBFD8CDFCAEB398@s=
chneider-electric.com" border=3D"0" alt=3D""><br>
<font size=3D"2">core &lt;core@ietf.org&gt;</font></td></tr>

<tr valign=3D"top"><td width=3D"1%"><img width=3D"58" height=3D"1" src=3D=
"cid:3__=3D4EBBFD8CDFCAEB398@schneider-electric.com" border=3D"0" alt=3D=
""><br>
<div align=3D"right"><font size=3D"2">cc</font></div></td><td width=3D"=
100%"><img width=3D"1" height=3D"1" src=3D"cid:3__=3D4EBBFD8CDFCAEB398@=
schneider-electric.com" border=3D"0" alt=3D""><br>
</td></tr>

<tr valign=3D"top"><td width=3D"1%"><img width=3D"58" height=3D"1" src=3D=
"cid:3__=3D4EBBFD8CDFCAEB398@schneider-electric.com" border=3D"0" alt=3D=
""><br>
<div align=3D"right"><font size=3D"2">Objet</font></div></td><td width=3D=
"100%"><img width=3D"1" height=3D"1" src=3D"cid:3__=3D4EBBFD8CDFCAEB398=
@schneider-electric.com" border=3D"0" alt=3D""><br>
<font size=3D"2">[core] Fwd: New Version Notification for draft-shelby-=
core-coap-01</font></td></tr>
</table>

<table border=3D"0" cellspacing=3D"0" cellpadding=3D"0">
<tr valign=3D"top"><td width=3D"58"><img width=3D"1" height=3D"1" src=3D=
"cid:3__=3D4EBBFD8CDFCAEB398@schneider-electric.com" border=3D"0" alt=3D=
""></td><td width=3D"336"><img width=3D"1" height=3D"1" src=3D"cid:3__=3D=
4EBBFD8CDFCAEB398@schneider-electric.com" border=3D"0" alt=3D""></td></=
tr>
</table>
</td></tr>
</table>
<br>
<tt>Hi,<br>
<br>
Version -01 of draft-shelby-core-coap is now available:<br>
<br>
</tt><tt><a href=3D"http://www.ietf.org/id/draft-shelby-core-coap-01.tx=
t">http://www.ietf.org/id/draft-shelby-core-coap-01.txt</a></tt><tt><br=
>
<br>
This has gone through a lot of little revisions after Anaheim based on =
the list discussions, comments on -00, discussions with the chairs and =
quite a bit of implementation validation. We hope -01 fixes most of the=
 issues and provides the main improvements requested so far. My goal is=
 to keep this stable for a longer time to give people a chance to get s=
ome implementation experience (have heard of 5 implementations so far).=
 Next update planned before the Maastricht cutoff.<br>
<br>
Here is a summary of the major changes in -01:<br>
<br>
- Method names now GET, PUT, POST, DELETE<br>
- Unified the message header and added a notify message type.<br>
- Completed the SUBMIT method and option<br>
- Improved the option TLV header, added Etag, Date and Subscription-lif=
etime Options<br>
- Added a Magic byte header for TCP and packed UDP<br>
- Wrote initial subscription, discovery and proxy sections<br>
- Plenty of simplification, optimization and bug fixes <br>
<br>
And of course still plenty of TODOs, the main ones are:<br>
<br>
- HTTP Mapping<br>
- Proxying<br>
- Complete Examples section <br>
- Define the TLS and DTLS bindings (help!) <br>
<br>
Zach, Brian and Don<br>
<br>
Begin forwarded message:<br>
<br>
&gt; From: IETF I-D Submission Tool &lt;idsubmission@ietf.org&gt;<br>
&gt; Date: May 10, 2010 10:05:25 GMT+03:00<br>
&gt; To: zach@sensinode.com<br>
&gt; Cc: brian@skyfoundry.com,d.sturek@att.net<br>
&gt; Subject: New Version Notification for draft-shelby-core-coap-01 <b=
r>
&gt; <br>
&gt; <br>
&gt; A new version of I-D, draft-shelby-core-coap-01.txt has been succe=
ssfully submitted by Zach Shelby and posted to the IETF repository.<br>=

&gt; <br>
&gt; Filename:		 &nbsp;draft-shelby-core-coap<br>
&gt; Revision:		 &nbsp;01<br>
&gt; Title:		 		 &nbsp;Constrained Application Protocol (CoAP)<br>
&gt; Creation_date:		 &nbsp;2010-05-10<br>
&gt; WG ID:		 		 &nbsp;Independent Submission<br>
&gt; Number_of_pages: 33<br>
&gt; <br>
&gt; Abstract:<br>
&gt; This document specifies the Constrained Application Protocol (CoAP=
),<br>
&gt; a specialized transfer protocol for use with constrained networks =
and<br>
&gt; nodes for machine-to-machine applications such as smart energy and=
<br>
&gt; building automation. &nbsp;These constrained nodes often have 8-bi=
t<br>
&gt; microcontrollers with small amounts of ROM and RAM, while networks=
<br>
&gt; such as 6LoWPAN often have high packet error rates and typical<br>=

&gt; throughput of 10s of kbps. &nbsp;CoAP provides request/reply and<b=
r>
&gt; subscribe/notify interaction models between appliciation end-point=
s,<br>
&gt; supports built-in resource discovery, and includes key web concept=
s<br>
&gt; such as URIs and RESTful methods. &nbsp;CoAP easily translates to =
HTTP for<br>
&gt; integration with the web while meeting specialized requirements su=
ch<br>
&gt; as multicast support, very low overhead and simplicity for<br>
&gt; constrained environments.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; The IETF Secretariat.<br>
&gt; <br>
&gt; <br>
<br>
-- <br>
Zach Shelby, Head of Research, Sensinode Ltd.<br>
</tt><tt><a href=3D"http://zachshelby.org">http://zachshelby.org</a></t=
t><tt>&nbsp; - My blog &quot;On the Internet of Things&quot;<br>
</tt><tt><a href=3D"http://6lowpan.net">http://6lowpan.net</a></tt><tt>=
&nbsp;- My book &quot;6LoWPAN: The Wireless Embedded Internet&quot;<br>=

Mobile: +358 40 7796297<br>
<br>
_______________________________________________<br>
core mailing list<br>
core@ietf.org<br>
</tt><tt><a href=3D"https://www.ietf.org/mailman/listinfo/core">https:/=
/www.ietf.org/mailman/listinfo/core</a></tt><tt><br>
<br>
______________________________________________________________________<=
br>
This email has been scanned by the MessageLabs Email Security System.<b=
r>
______________________________________________________________________<=
br>
</tt><br>
</body></html>=


--1__=4EBBFD8CDFCAEB398f9e8a93df938690918c4EBBFD8CDFCAEB39--


--0__=4EBBFD8CDFCAEB398f9e8a93df938690918c4EBBFD8CDFCAEB39
Content-type: image/gif; 
	name="graycol.gif"
Content-Disposition: inline; filename="graycol.gif"
Content-ID: <1__=4EBBFD8CDFCAEB398@schneider-electric.com>
Content-Transfer-Encoding: base64

R0lGODlhEAAQAKECAMzMzAAAAP///wAAACH5BAEAAAIALAAAAAAQABAAAAIXlI+py+0PopwxUbpu
ZRfKZ2zgSJbmSRYAIf4fT3B0aW1pemVkIGJ5IFVsZWFkIFNtYXJ0U2F2ZXIhAAA7


--0__=4EBBFD8CDFCAEB398f9e8a93df938690918c4EBBFD8CDFCAEB39
Content-type: image/gif; 
	name="pic31998.gif"
Content-Disposition: inline; filename="pic31998.gif"
Content-ID: <2__=4EBBFD8CDFCAEB398@schneider-electric.com>
Content-Transfer-Encoding: base64

R0lGODlhWABDALP/AAAAAK04Qf79/o+Gm7WuwlNObwoJFCsoSMDAwGFsmIuezf///wAAAAAAAAAA
AAAAACH5BAEAAAgALAAAAABYAEMAQAT/EMlJq704682770RiFMRinqggEUNSHIchG0BCfHhOjAuh
EDeUqTASLCbBhQrhG7xis2j0lssNDopE4jfIJhDaggI8YB1sZeZgLVA9YVCpnGagVjV171aRVrYR
RghXcAGFhoUETwYxcXNyADJ3GlcSKGAwLwllVC1vjIUHBWsFilKQdI8GA5IcpApeJQt8L09lmgkH
LZikoU5wjqcyAMMFrJIDPAKvCFletKSev1HBw8KrxtjZ2tvc3d5VyKtCKW3jfz4uMKmq3xu4N0nK
BVoJQmx2LGVOmrqNjjJf2hHAQo/eDwJGTKhQMcgQEEAnEjFS98+RnW3smGkZU6ncCWav/4wYOnAI
TihRL/4FEwbp28BXMMcoscQCVxlepL4IGDSCyJyVQOu0o7CjmLN50OZlqWmyFy5/6yBBuji0AxFR
M00oQAqNIstqI6qKHUsWRAEAvagsmfUEAImyxgbmUpJk3IklNUtJOUAVLoUr1+wqDGTE4zk+T6FG
uQb3SizBCwatiiUgCBN8vrz+zFjVyQ8FWkOlg4NQiZMB5QS8QO3mpOaKnL0Z2EKvNMSILEThKhCg
zMKPVxYJh23qm9KNW7pArPynMqZDiErsTMqI+LRi3QAgkFUbXpuFKhSYZALd0O5RKa2z9EYKBbpb
qxIKsjUPRgD7I2XYV6wyrOw92ykExP8NW4URhknC5dKGE4v4NENQj2jXjmfNgOZDaXb5glRmXQ33
YEWQYNcZFnrYcIQLNzyTFDQNkXIff0ExVlY4srziQk43inZgL4rwxxINMvpFFAz1KOODHiu+4aEw
NEjFl5B3JIKWKF3k6I9bfUGp5ZZcdunll5IA4cuHvQQJ5gcsoCWOOUwgltIwAKRxJgbIkJAQZEq0
2YliZnpZZ4BH3CnYOXldOUOfQoYDqF1LFHbXCrO8xmRsfoXDXJ6ChjCAH3QlhJcT6VWE6FCkfCco
CgrMFsROrIEX3o2whVjWDjoJccN3LdggSGXLCdLEgHr1lyU3O3QxhgohNKXJCWv8JQr/PDdaqd6w
2rj1inLiGeiCJoDspAoQlYE6QWLSECehcWIYxIQES6zhbn1iImTHEQyqJ4eIxJJoUBc+3CbBuwZE
V5cJPPkIjFDdeEabQbd6WgICTxiiz0f5dBKquXF6k4senwEhYGnKEFJeGrxUZy8dB8gmAXI/sPvH
ESfCwVt5hTgYiqQqtdRNHQIU1PJ33ZqmzgE90OwLaoJcnMop1WiMmgkPHQRIrwgFuNV90A3doNKT
mrKIN07AnGcI9BQjhCBN4RfA1qIZnMqorJCogKfGQnxSCDilTVIA0yl5ciTovgLuBDKFUDE9aQcw
9SA+rjSNf9/M1gxrj6VwDTS0IUSElMzBfsj0NFXR2kwsV1A5IF1grLgLL/r1R40BZEnuBWgmQEyb
jqRwSAt6bqMCOFkvKFN2GPPkUzIm/SCF8z8pVzpbjVnMsy0vOr1hw3SaSRUhpY09v0z0J1FnwzPl
fmh+xl4WtR0zGu24I4KbMQm3lnVu2oNWxI9W/lcyzA+mCKF4DBikxb/+UWtOGRiFP8qEwAayIgIA
Ow==


--0__=4EBBFD8CDFCAEB398f9e8a93df938690918c4EBBFD8CDFCAEB39
Content-type: image/gif; 
	name="ecblank.gif"
Content-Disposition: inline; filename="ecblank.gif"
Content-ID: <3__=4EBBFD8CDFCAEB398@schneider-electric.com>
Content-Transfer-Encoding: base64

R0lGODlhEAABAIAAAAAAAP///yH5BAEAAAEALAAAAAAQAAEAAAIEjI8ZBQA7


--0__=4EBBFD8CDFCAEB398f9e8a93df938690918c4EBBFD8CDFCAEB39--


From therbst@silverspringnet.com  Tue May 11 08:49:45 2010
Return-Path: <therbst@silverspringnet.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 44B733A69E8 for <core@core3.amsl.com>; Tue, 11 May 2010 08:49:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.335
X-Spam-Level: 
X-Spam-Status: No, score=0.335 tagged_above=-999 required=5 tests=[BAYES_50=0.001, IP_NOT_FRIENDLY=0.334]
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 N+koKM71fvwC for <core@core3.amsl.com>; Tue, 11 May 2010 08:49:44 -0700 (PDT)
Received: from bachelor.silverspringnet.com (bachelor.silverspringnet.com [69.36.245.73]) by core3.amsl.com (Postfix) with ESMTP id 9039D3A6958 for <core@ietf.org>; Tue, 11 May 2010 08:49:44 -0700 (PDT)
Received: from IT-EXCA-01.silverspringnet.com ([10.200.1.60]) by bachelor.silverspringnet.com (8.14.1/8.13.8) with ESMTP id o4BFnEgM000434 for <core@ietf.org>; Tue, 11 May 2010 08:49:24 -0700 (PDT)
Received: from IT-EXMB-01.silverspringnet.com ([fe80::b81e:2d5b:d263:6c44]) by IT-EXCA-01.silverspringnet.com ([::1]) with mapi; Tue, 11 May 2010 08:49:14 -0700
From: Thomas Herbst <therbst@silverspringnet.com>
To: "core@ietf.org" <core@ietf.org>
Date: Tue, 11 May 2010 08:49:10 -0700
Thread-Topic: Core UDP vs TCP : Redux
Thread-Index: AcrxIX9QnEVhlnKvTMi9kQtypEJB8w==
Message-ID: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-cr-puzzleid: {82BA785E-6160-4AC2-AFF7-7CA8E27F0777}
x-cr-hashedpuzzle: CUTQ CmRq DLO1 Dfu1 EdYQ Fgt4 F+vd GFZ7 G5VM HYne Hrgc IFGK JAbJ J+IJ K0Zw LJtG; 1; YwBvAHIAZQBAAGkAZQB0AGYALgBvAHIAZwA=; Sosha1_v1; 7; {82BA785E-6160-4AC2-AFF7-7CA8E27F0777}; dABoAGUAcgBiAHMAdABAAHMAaQBsAHYAZQByAHMAcAByAGkAbgBnAG4AZQB0AC4AYwBvAG0A; Tue, 11 May 2010 15:49:10 GMT;QwBvAHIAZQAgAFUARABQACAAdgBzACAAVABDAFAAIAA6ACAAUgBlAGQAdQB4AA==
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: [core] Core UDP vs TCP : Redux
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: Tue, 11 May 2010 15:49:45 -0000

After the discussion in Anaheim, I'm surprised that we need yet another rev=
isit to UDP and TCP for CORE.

The Right Solution(tm) might well be to fix TCP such that it doesn't lose i=
ts brains every time you drop a packet, and we could end up with an end-to-=
end system where constrained devices might reasonably provide services to n=
ormal hosts in the regular Internet,  However, transport work is out of sco=
pe for this WG.

The second most right solution would be to implement CORE with a reliable U=
DP protocol, as is done in much of the draft.  The "optional" TCP portions =
of the draft are mostly increased complexity for no added benefit. If a dev=
ice is capable of running TCP and the network it works on is capable of sup=
porting TCP, you should just open a connection to Port 80 and use HTTP (or =
the TCP port/protocol of your choice).  There are many protocols a host MAY=
 implement and it is not appropriate for the draft to enumerate them. =20

Let's remove all of the sections related to TCP in the draft.

tom
=20


From dotis@mail-abuse.org  Tue May 11 12:58:58 2010
Return-Path: <dotis@mail-abuse.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 00A093A6BEA for <core@core3.amsl.com>; Tue, 11 May 2010 12:58:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.818
X-Spam-Level: 
X-Spam-Status: No, score=-3.818 tagged_above=-999 required=5 tests=[AWL=0.181,  BAYES_50=0.001, RCVD_IN_DNSWL_MED=-4]
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 0IrYX1rCcXlX for <core@core3.amsl.com>; Tue, 11 May 2010 12:58:57 -0700 (PDT)
Received: from harry.mail-abuse.org (harry.mail-abuse.org [168.61.5.27]) by core3.amsl.com (Postfix) with ESMTP id 2F2363A69ED for <core@ietf.org>; Tue, 11 May 2010 12:58:57 -0700 (PDT)
Received: from sjc-office-nat-223.mail-abuse.org (gateway1.sjc.mail-abuse.org [168.61.5.81]) by harry.mail-abuse.org (Postfix) with ESMTP id 288C9A944C7 for <core@ietf.org>; Tue, 11 May 2010 18:09:01 +0000 (UTC)
Message-ID: <4BE99D3C.9050902@mail-abuse.org>
Date: Tue, 11 May 2010 11:09:00 -0700
From: Douglas Otis <dotis@mail-abuse.org>
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4
MIME-Version: 1.0
To: core@ietf.org
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>
In-Reply-To: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Subject: Re: [core] Core UDP vs TCP : Redux
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: Tue, 11 May 2010 19:58:58 -0000

On 5/11/10 8:49 AM, Thomas Herbst wrote:
> After the discussion in Anaheim, I'm surprised that we need yet another revisit to UDP and TCP for CORE.
>
> The Right Solution(tm) might well be to fix TCP such that it doesn't lose its brains every time you drop a packet, and we could end up with an end-to-end system where constrained devices might reasonably provide services to normal hosts in the regular Internet,  However, transport work is out of scope for this WG.
>
> The second most right solution would be to implement CORE with a reliable UDP protocol, as is done in much of the draft.  The "optional" TCP portions of the draft are mostly increased complexity for no added benefit. If a device is capable of running TCP and the network it works on is capable of supporting TCP, you should just open a connection to Port 80 and use HTTP (or the TCP port/protocol of your choice).  There are many protocols a host MAY implement and it is not appropriate for the draft to enumerate them.
>
> Let's remove all of the sections related to TCP in the draft.
>    
Agreed.

-Doug

From Michael.Stuber@itron.com  Tue May 11 13:29:18 2010
Return-Path: <Michael.Stuber@itron.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 214653A6C40 for <core@core3.amsl.com>; Tue, 11 May 2010 13:29:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
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 m5Kxd42o2Q36 for <core@core3.amsl.com>; Tue, 11 May 2010 13:29:17 -0700 (PDT)
Received: from mailer-1.itron.com (mailer-1.itron.com [198.182.8.123]) by core3.amsl.com (Postfix) with ESMTP id 0D1AB28C1C3 for <core@ietf.org>; Tue, 11 May 2010 13:26:56 -0700 (PDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
x-cr-hashedpuzzle: A0kI B2oS B9hu CZKy C2z9 DJ+7 D7ba EN4P EkNN Ekq5 E9Os HSwv JBbj JVRw J82X KIBe; 1; YwBvAHIAZQBAAGkAZQB0AGYALgBvAHIAZwA=; Sosha1_v1; 7; {7A44E07F-D806-40AE-B449-59C18F1CA129}; bQBpAGMAaABhAGUAbAAuAHMAdAB1AGIAZQByAEAAaQB0AHIAbwBuAC4AYwBvAG0A; Tue, 11 May 2010 20:26:43 GMT; UgBFADoAIABbAGMAbwByAGUAXQAgAEMAbwByAGUAIABVAEQAUAAgAHYAcwAgAFQAQwBQACAAOgAgAFIAZQBkAHUAeAA=
x-cr-puzzleid: {7A44E07F-D806-40AE-B449-59C18F1CA129}
Content-class: urn:content-classes:message
Date: Tue, 11 May 2010 13:26:43 -0700
Message-ID: <05C6A38D732F1144A8C4016BA4416BFE02D034DB@SPO-EXVS-02.itron.com>
In-Reply-To: <4BE99D3C.9050902@mail-abuse.org>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [core] Core UDP vs TCP : Redux
Thread-Index: AcrxRGfu3eaAdi6dTz6D9rRHHf5KGAAA88+A
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com> <4BE99D3C.9050902@mail-abuse.org>
From: "Stuber, Michael" <Michael.Stuber@itron.com>
To: <core@ietf.org>
Subject: Re: [core] Core UDP vs TCP : Redux
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: Tue, 11 May 2010 20:29:18 -0000

>
> Let's remove all of the sections related to TCP in the draft.
>   =20
+1

From zach@sensinode.com  Tue May 11 14:07:17 2010
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 116463A684C for <core@core3.amsl.com>; Tue, 11 May 2010 14:07:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.598
X-Spam-Level: 
X-Spam-Status: No, score=-1.598 tagged_above=-999 required=5 tests=[AWL=-0.599, BAYES_50=0.001, 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 rBTGt3mdVosM for <core@core3.amsl.com>; Tue, 11 May 2010 14:07:15 -0700 (PDT)
Received: from auth-smtp.nebula.fi (auth-smtp.nebula.fi [217.30.180.105]) by core3.amsl.com (Postfix) with ESMTP id 0555F3A6A0F for <core@ietf.org>; Tue, 11 May 2010 14:07:10 -0700 (PDT)
Received: from [192.168.1.3] (line-5505.dyn.kponet.fi [85.29.67.213]) (authenticated bits=0) by auth-smtp.nebula.fi (8.13.4/8.13.4) with ESMTP id o4BL6rcO028603 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Wed, 12 May 2010 00:06:54 +0300
Mime-Version: 1.0 (Apple Message framework v1077)
Content-Type: text/plain; charset=us-ascii
From: Zach Shelby <zach@sensinode.com>
In-Reply-To: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>
Date: Wed, 12 May 2010 00:06:57 +0300
Content-Transfer-Encoding: quoted-printable
Message-Id: <17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>
To: Thomas Herbst <therbst@silverspringnet.com>
X-Mailer: Apple Mail (2.1077)
Cc: "core@ietf.org" <core@ietf.org>
Subject: Re: [core] Core UDP vs TCP : Redux
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: Tue, 11 May 2010 21:07:17 -0000

+1

Through writing a few revisions of these specs, I have also already =
found TCP to be really awkward. And the TCP negotiation discussions at =
the mike in Anaheim made me even more skeptical. Tom is right, if you =
need TCP then just use HTTP ;-)=20

Zach=20

On May 11, 2010, at 18:49 , Thomas Herbst wrote:

> After the discussion in Anaheim, I'm surprised that we need yet =
another revisit to UDP and TCP for CORE.
>=20
> The Right Solution(tm) might well be to fix TCP such that it doesn't =
lose its brains every time you drop a packet, and we could end up with =
an end-to-end system where constrained devices might reasonably provide =
services to normal hosts in the regular Internet,  However, transport =
work is out of scope for this WG.
>=20
> The second most right solution would be to implement CORE with a =
reliable UDP protocol, as is done in much of the draft.  The "optional" =
TCP portions of the draft are mostly increased complexity for no added =
benefit. If a device is capable of running TCP and the network it works =
on is capable of supporting TCP, you should just open a connection to =
Port 80 and use HTTP (or the TCP port/protocol of your choice).  There =
are many protocols a host MAY implement and it is not appropriate for =
the draft to enumerate them. =20
>=20
> Let's remove all of the sections related to TCP in the draft.
>=20
> tom
>=20
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core

--=20
Zach Shelby, Head of Research, 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


From zach@sensinode.com  Tue May 11 14:19:08 2010
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 1426D3A6942 for <core@core3.amsl.com>; Tue, 11 May 2010 14:19:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.498
X-Spam-Level: 
X-Spam-Status: No, score=-1.498 tagged_above=-999 required=5 tests=[AWL=-0.499, BAYES_50=0.001, 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 2PD5LgGoRRhe for <core@core3.amsl.com>; Tue, 11 May 2010 14:19:06 -0700 (PDT)
Received: from auth-smtp.nebula.fi (auth-smtp.nebula.fi [217.30.180.105]) by core3.amsl.com (Postfix) with ESMTP id 639163A6A88 for <core@ietf.org>; Tue, 11 May 2010 14:16:56 -0700 (PDT)
Received: from [192.168.1.3] (line-5505.dyn.kponet.fi [85.29.67.213]) (authenticated bits=0) by auth-smtp.nebula.fi (8.13.4/8.13.4) with ESMTP id o4BLGeEY028796 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Wed, 12 May 2010 00:16:40 +0300
Mime-Version: 1.0 (Apple Message framework v1077)
Content-Type: text/plain; charset=iso-8859-1
From: Zach Shelby <zach@sensinode.com>
In-Reply-To: <OFC9D1221A.0B7CA727-ONC125771F.00596DA9-C1257720.002D09E5@schneider-electric.com>
Date: Wed, 12 May 2010 00:16:43 +0300
Content-Transfer-Encoding: quoted-printable
Message-Id: <595F6A4B-511C-439C-A0C2-43C10998B1FA@sensinode.com>
References: <OFC9D1221A.0B7CA727-ONC125771F.00596DA9-C1257720.002D09E5@schneider-electric.com>
To: matthieu.vial@fr.non.schneider-electric.com
X-Mailer: Apple Mail (2.1077)
Cc: core <core@ietf.org>
Subject: Re: [core] RE Fwd: New Version Notification for draft-shelby-core-coap-01
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: Tue, 11 May 2010 21:19:08 -0000

Hi,

On May 11, 2010, at 11:11 , matthieu.vial@fr.non.schneider-electric.com =
wrote:

> Hi,
>=20
> First of all congratulations for your work.
>=20
> I have few comments about the subscribe/notify mechanism and the =
resource directory.
>=20
> As far as I understand the specification, a client will receive its =
notifications on the same port as the subscribe request. As an =
implementer I would like to handle all asynchronous notifications on a =
dedicated port and perform synchronous GET, POST, PUT, DELETE on a =
different port. The current specification allows to do this for the UDP =
binding as it is connectionless but for the TCP binding I must keep the =
connection I used for the subscribe request alive. Just tell me if it is =
not the good approach because I know TCP is not a major concern for =
COAP.

Argh, yet again some problems with TCP. Surely a way to make that work =
of course, but it would need more text...=20

>=20
> How can I define a fine grained notification? Is it completlty left to =
the application so I must define a message format to describe precise =
notification rules and include this message into the subscribe payload =
or will you provide a framework later? Typical notification options =
would be: minimal delay between 2 notifications to prevent from =
overwhelming the network, an increment as the minimal change for noisy =
inputs, a maximum delay between notifications for periodic notifications =
and keep alive signals ...

For sure MIN_NOTIFY_INTERVAL and MAX_NOTIFY_INTERVAL variables should be =
added, maybe with a recommended default. With regards to having more =
knobs to turn here, I could envision having e.g. a Subscription-interval =
Option in addition to Subscription-lifetime. Now that said, anything =
more complicated is probably out of scope for CoRE. At least the =
transfer protocol shouldn't involve itself with data thresholds etc. =20

>=20
> How do you manage the lifetime of resources in the resource directory? =
The /.well-known/resources will probably not change very often so a =
simple subscription/notification would be useless. Moreover a periodic =
POST from devices seems not very efficient because the link format is =
quite verbose to be repeated without a real need. We could reuse the =
cacheability of COAP to avoid large data transfer but only the get =
method is cacheable. That means the directory agent should have a list =
of all devices. This imply some kind of registration mechanism to the =
directory.

This is a good discussion to have. At least the Etag can help here to =
prevent all data from being sent each time, and even a subscription =
could be useful in some cases. What I also had in mind was that a =
directory can act as a RESTful repository which can store the =
descriptions of others. In the end here we have to make an analysis of =
real resource discovery scenarios, how they work with these mechanisms, =
and then see if we're really missing something. Someone should write a =
draft like that by the way...=20

Zach

>=20
> Best regards,
> Matthieu VIAL
>=20
>=20
> <graycol.gif>Zach Shelby <zach@sensinode.com>
>=20
>=20
>=20
>=20
> Zach Shelby <zach@sensinode.com>=20
> Envoy=E9 par : core-bounces@ietf.org
> 10/05/2010 09:19
>=20
> <ecblank.gif>
> A
> <ecblank.gif>
> core <core@ietf.org>
> <ecblank.gif>
> cc
> <ecblank.gif>
> <ecblank.gif>
> Objet
> <ecblank.gif>
> [core] Fwd: New Version Notification for draft-shelby-core-coap-01
> <ecblank.gif>	<ecblank.gif>
>=20
> Hi,
>=20
> Version -01 of draft-shelby-core-coap is now available:
>=20
> http://www.ietf.org/id/draft-shelby-core-coap-01.txt
>=20
> This has gone through a lot of little revisions after Anaheim based on =
the list discussions, comments on -00, discussions with the chairs and =
quite a bit of implementation validation. We hope -01 fixes most of the =
issues and provides the main improvements requested so far. My goal is =
to keep this stable for a longer time to give people a chance to get =
some implementation experience (have heard of 5 implementations so far). =
Next update planned before the Maastricht cutoff.
>=20
> Here is a summary of the major changes in -01:
>=20
> - Method names now GET, PUT, POST, DELETE
> - Unified the message header and added a notify message type.
> - Completed the SUBMIT method and option
> - Improved the option TLV header, added Etag, Date and =
Subscription-lifetime Options
> - Added a Magic byte header for TCP and packed UDP
> - Wrote initial subscription, discovery and proxy sections
> - Plenty of simplification, optimization and bug fixes=20
>=20
> And of course still plenty of TODOs, the main ones are:
>=20
> - HTTP Mapping
> - Proxying
> - Complete Examples section=20
> - Define the TLS and DTLS bindings (help!)=20
>=20
> Zach, Brian and Don
>=20
> Begin forwarded message:
>=20
> > From: IETF I-D Submission Tool <idsubmission@ietf.org>
> > Date: May 10, 2010 10:05:25 GMT+03:00
> > To: zach@sensinode.com
> > Cc: brian@skyfoundry.com,d.sturek@att.net
> > Subject: New Version Notification for draft-shelby-core-coap-01=20
> >=20
> >=20
> > A new version of I-D, draft-shelby-core-coap-01.txt has been =
successfully submitted by Zach Shelby and posted to the IETF repository.
> >=20
> > Filename:	  draft-shelby-core-coap
> > Revision:	  01
> > Title:	  Constrained Application Protocol (CoAP)
> > Creation_date:	  2010-05-10
> > WG ID:	  Independent Submission
> > Number_of_pages: 33
> >=20
> > Abstract:
> > This document specifies the Constrained Application Protocol (CoAP),
> > a specialized transfer protocol for use with constrained networks =
and
> > nodes for machine-to-machine applications such as smart energy and
> > building automation.  These constrained nodes often have 8-bit
> > microcontrollers with small amounts of ROM and RAM, while networks
> > such as 6LoWPAN often have high packet error rates and typical
> > throughput of 10s of kbps.  CoAP provides request/reply and
> > subscribe/notify interaction models between appliciation end-points,
> > supports built-in resource discovery, and includes key web concepts
> > such as URIs and RESTful methods.  CoAP easily translates to HTTP =
for
> > integration with the web while meeting specialized requirements such
> > as multicast support, very low overhead and simplicity for
> > constrained environments.
> >=20
> >=20
> >=20
> > The IETF Secretariat.
> >=20
> >=20
>=20
> --=20
> Zach Shelby, Head of Research, 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
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>=20
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> ______________________________________________________________________
>=20

--=20
Zach Shelby, Head of Research, 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


From cabo@tzi.org  Tue May 11 14:38:18 2010
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 3F9803A68F3 for <core@core3.amsl.com>; Tue, 11 May 2010 14:38:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.472
X-Spam-Level: 
X-Spam-Status: No, score=-4.472 tagged_above=-999 required=5 tests=[AWL=-0.637, BAYES_40=-0.185, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-4]
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 xtu+fNxOCTsr for <core@core3.amsl.com>; Tue, 11 May 2010 14:38:17 -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 0320A3A6A56 for <core@ietf.org>; Tue, 11 May 2010 14:38:10 -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 o4BLbtVV018099; Tue, 11 May 2010 23:37:56 +0200 (CEST)
Received: from [192.168.217.101] (p5489F409.dip.t-dialin.net [84.137.244.9]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by smtp-fb3.informatik.uni-bremen.de (Postfix) with ESMTP id 7A249DF75;  Tue, 11 May 2010 23:37:55 +0200 (CEST)
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: text/plain; charset=us-ascii
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com>
Date: Tue, 11 May 2010 23:37:54 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <F2FB4072-42D1-49F7-98F1-173AE1CD0856@tzi.org>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com> <17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com>
To: Zach Shelby <zach@sensinode.com>
X-Mailer: Apple Mail (2.1078)
Cc: "core@ietf.org" <core@ietf.org>
Subject: Re: [core] Core UDP vs TCP : Redux
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: Tue, 11 May 2010 21:38:18 -0000

On May 11, 2010, at 23:06, Zach Shelby wrote:

> I have also already found TCP to be really awkward

(No WG chair hat)

The reason why I thought it would be a good idea to have TCP as an =
option in there was to fend off tendencies to reinvent TCP on top of =
UDP.  If we can agree not to do that, I'm certainly fine with throwing =
out TCP.  But once people do start to argue for reinventing TCP, we'll =
need to put the original back in.

(Rationale:
1) DTSTTCPW (Do the simplest thing that could possibly work.)
2) We can always put TCP back in later in a v2 of the protocol, once we =
know more about the applications and their real requirements from actual =
deployments and whether having TCP is a good thing.)

Gruesse, Carsten


From robby.simpson@ge.com  Tue May 11 14:42:04 2010
Return-Path: <robby.simpson@ge.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 31BF83A6A83 for <core@core3.amsl.com>; Tue, 11 May 2010 14:42:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.999
X-Spam-Level: 
X-Spam-Status: No, score=-3.999 tagged_above=-999 required=5 tests=[BAYES_50=0.001, RCVD_IN_DNSWL_MED=-4]
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 wohtP8bYTxYq for <core@core3.amsl.com>; Tue, 11 May 2010 14:42:03 -0700 (PDT)
Received: from exprod5og108.obsmtp.com (exprod5og108.obsmtp.com [64.18.0.186]) by core3.amsl.com (Postfix) with ESMTP id 9E97F3A6A59 for <core@ietf.org>; Tue, 11 May 2010 14:42:01 -0700 (PDT)
Received: from source ([12.43.191.1]) (using TLSv1) by exprod5ob108.postini.com ([64.18.4.12]) with SMTP ID DSNKS+nPHthKHSNXhxaTErJCo/WvwOs11q+Z@postini.com; Tue, 11 May 2010 14:41:51 PDT
Received: from unknown (HELO alpmlef08.e2k.ad.ge.com) ([3.159.18.17]) by Alpmlip06.e2k.ad.ge.com with ESMTP; 11 May 2010 17:41:49 -0400
Received: from ALPMLVEM04.e2k.ad.ge.com ([3.159.17.51]) by alpmlef08.e2k.ad.ge.com with Microsoft SMTPSVC(6.0.3790.4675);  Tue, 11 May 2010 17:41:49 -0400
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: quoted-printable
Date: Tue, 11 May 2010 17:41:09 -0400
Message-ID: <A61BB3A241E6E64D86C58237F6DC1A18025D5019@ALPMLVEM04.e2k.ad.ge.com>
In-Reply-To: <F2FB4072-42D1-49F7-98F1-173AE1CD0856@tzi.org>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [core] Core UDP vs TCP : Redux
Thread-Index: AcrxUkHvG1/UxBUnR1uNWaNBmUljbAAACa5Q
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com><17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com> <F2FB4072-42D1-49F7-98F1-173AE1CD0856@tzi.org>
From: "Simpson, Robby (GE Energy Services)" <robby.simpson@ge.com>
To: "Carsten Bormann" <cabo@tzi.org>, "Zach Shelby" <zach@sensinode.com>
X-OriginalArrivalTime: 11 May 2010 21:41:49.0425 (UTC) FILETIME=[C2F9E610:01CAF152]
Cc: core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux
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: Tue, 11 May 2010 21:42:04 -0000

Carsten,

For clarification, what are your metrics for "reinventing TCP"?

Multiple packets?  Flow control?  Congestion control?

Thanks,
Robby
=20

-----Original Message-----
From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of
Carsten Bormann
Sent: Tuesday, May 11, 2010 5:38 PM
To: Zach Shelby
Cc: core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux

On May 11, 2010, at 23:06, Zach Shelby wrote:

> I have also already found TCP to be really awkward

(No WG chair hat)

The reason why I thought it would be a good idea to have TCP as an
option in there was to fend off tendencies to reinvent TCP on top of
UDP.  If we can agree not to do that, I'm certainly fine with throwing
out TCP.  But once people do start to argue for reinventing TCP, we'll
need to put the original back in.

(Rationale:
1) DTSTTCPW (Do the simplest thing that could possibly work.)
2) We can always put TCP back in later in a v2 of the protocol, once we
know more about the applications and their real requirements from actual
deployments and whether having TCP is a good thing.)

Gruesse, Carsten

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

From cabo@tzi.org  Tue May 11 14:53:27 2010
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 5A8F43A6802 for <core@core3.amsl.com>; Tue, 11 May 2010 14:53:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.72
X-Spam-Level: 
X-Spam-Status: No, score=-4.72 tagged_above=-999 required=5 tests=[AWL=-0.330,  BAYES_20=-0.74, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-4]
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 6ovSWLiHegeJ for <core@core3.amsl.com>; Tue, 11 May 2010 14:53:26 -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 882963A682E for <core@ietf.org>; Tue, 11 May 2010 14:53:25 -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 o4BLr1qJ021792; Tue, 11 May 2010 23:53:02 +0200 (CEST)
Received: from [192.168.217.101] (p5489F409.dip.t-dialin.net [84.137.244.9]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by smtp-fb3.informatik.uni-bremen.de (Postfix) with ESMTP id 8E664DF8D;  Tue, 11 May 2010 23:53:01 +0200 (CEST)
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: text/plain; charset=us-ascii
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <A61BB3A241E6E64D86C58237F6DC1A18025D5019@ALPMLVEM04.e2k.ad.ge.com>
Date: Tue, 11 May 2010 23:52:56 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <EA280259-B8FE-4927-8561-A07E8870CC2C@tzi.org>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com><17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com> <F2FB4072-42D1-49F7-98F1-173AE1CD0856@tzi.org> <A61BB3A241E6E64D86C58237F6DC1A18025D5019@ALPMLVEM04.e2k.ad.ge.com>
To: "Simpson, Robby (GE Energy Services)" <robby.simpson@ge.com>
X-Mailer: Apple Mail (2.1078)
Cc: core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux
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: Tue, 11 May 2010 21:53:27 -0000

On May 11, 2010, at 23:41, Simpson, Robby (GE Energy Services) wrote:

> Carsten,
>=20
> For clarification, what are your metrics for "reinventing TCP"?
>=20
> Multiple packets?  Flow control?  Congestion control?

Yes :-)

I don't have a problem with a multi-packet exchange to effect a =
transfer.
But we should be very careful with what kind of state we expect the two =
sides to build/maintain/keep for this.
Running a congestion control algorithm instead of a simple lock-step =
mechanism sounds wrong.
Having any kind of flow control beyond the lock-step (e.g., windows) =
sounds wrong. =20
Having to establish a "session", "connection", "association" to effect =
the transfer sounds wrong.

But I don't think of these as metrics, so if a good way to have these =
multi-packet exchanges is proposed, let's look at the impact on nodes =
and network instead of trying to decide whether it is too much like TCP.

What do you think?

Gruesse, Carsten


From hgs@cs.columbia.edu  Tue May 11 15:02:15 2010
Return-Path: <hgs@cs.columbia.edu>
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 4C95E3A6BEB for <core@core3.amsl.com>; Tue, 11 May 2010 15:02:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.175
X-Spam-Level: 
X-Spam-Status: No, score=-5.175 tagged_above=-999 required=5 tests=[AWL=-1.176, BAYES_50=0.001, RCVD_IN_DNSWL_MED=-4]
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 1ONzTfbFQZn9 for <core@core3.amsl.com>; Tue, 11 May 2010 15:02:14 -0700 (PDT)
Received: from serrano.cc.columbia.edu (serrano.cc.columbia.edu [128.59.29.6]) by core3.amsl.com (Postfix) with ESMTP id CF7863A6AA5 for <core@ietf.org>; Tue, 11 May 2010 15:02:13 -0700 (PDT)
Received: from ice.cs.columbia.edu (ice.cs.columbia.edu [128.59.18.177]) (user=hgs10 mech=PLAIN bits=0) by serrano.cc.columbia.edu (8.14.3/8.14.3) with ESMTP id o4BM21N4017206 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Tue, 11 May 2010 18:02:02 -0400 (EDT)
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: text/plain; charset=us-ascii
From: Henning Schulzrinne <hgs@cs.columbia.edu>
In-Reply-To: <17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com>
Date: Tue, 11 May 2010 18:02:03 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <9BB682AE-86C2-4054-8758-8E7C6AD10807@cs.columbia.edu>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com> <17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com>
To: Zach Shelby <zach@sensinode.com>
X-Mailer: Apple Mail (2.1078)
X-No-Spam-Score: Local
X-Scanned-By: MIMEDefang 2.68 on 128.59.29.6
Cc: "core@ietf.org" <core@ietf.org>
Subject: Re: [core] Core UDP vs TCP : Redux
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: Tue, 11 May 2010 22:02:15 -0000

This works as long as you can guarantee that the response is < MTU. =
Doing your own fragmentation is a pain (you are then well on your way to =
re-inventing TCP) and relying on IP fragmentation is unlikely to work in =
"challenged" networks. Thus, these applicability limitations need to be =
spelled out very clearly. This also has security implications - =
obviously, TLS is out without TCP, but anything involving certificates =
is also likely to be difficult to carry.

Henning

On May 11, 2010, at 5:06 PM, Zach Shelby wrote:

> +1
>=20
> Through writing a few revisions of these specs, I have also already =
found TCP to be really awkward. And the TCP negotiation discussions at =
the mike in Anaheim made me even more skeptical. Tom is right, if you =
need TCP then just use HTTP ;-)=20
>=20
> Zach=20
>=20
> On May 11, 2010, at 18:49 , Thomas Herbst wrote:
>=20
>> After the discussion in Anaheim, I'm surprised that we need yet =
another revisit to UDP and TCP for CORE.
>>=20
>> The Right Solution(tm) might well be to fix TCP such that it doesn't =
lose its brains every time you drop a packet, and we could end up with =
an end-to-end system where constrained devices might reasonably provide =
services to normal hosts in the regular Internet,  However, transport =
work is out of scope for this WG.
>>=20
>> The second most right solution would be to implement CORE with a =
reliable UDP protocol, as is done in much of the draft.  The "optional" =
TCP portions of the draft are mostly increased complexity for no added =
benefit. If a device is capable of running TCP and the network it works =
on is capable of supporting TCP, you should just open a connection to =
Port 80 and use HTTP (or the TCP port/protocol of your choice).  There =
are many protocols a host MAY implement and it is not appropriate for =
the draft to enumerate them. =20
>>=20
>> Let's remove all of the sections related to TCP in the draft.
>>=20
>> tom
>>=20
>>=20
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>=20
> --=20
> Zach Shelby, Head of Research, 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
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>=20


From therbst@silverspringnet.com  Tue May 11 18:11:58 2010
Return-Path: <therbst@silverspringnet.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 475103A6852 for <core@core3.amsl.com>; Tue, 11 May 2010 18:11:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.335
X-Spam-Level: 
X-Spam-Status: No, score=0.335 tagged_above=-999 required=5 tests=[BAYES_50=0.001, IP_NOT_FRIENDLY=0.334]
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 ey9AWq1qtc1L for <core@core3.amsl.com>; Tue, 11 May 2010 18:11:56 -0700 (PDT)
Received: from bachelor.silverspringnet.com (bachelor.silverspringnet.com [69.36.245.73]) by core3.amsl.com (Postfix) with ESMTP id 91F203A679C for <core@ietf.org>; Tue, 11 May 2010 18:11:56 -0700 (PDT)
Received: from IT-EXCA-01.silverspringnet.com ([10.200.1.60]) by bachelor.silverspringnet.com (8.14.1/8.13.8) with ESMTP id o4C1BQoX027522; Tue, 11 May 2010 18:11:26 -0700 (PDT)
Received: from IT-EXMB-01.silverspringnet.com ([fe80::b81e:2d5b:d263:6c44]) by IT-EXCA-01.silverspringnet.com ([::1]) with mapi; Tue, 11 May 2010 18:11:26 -0700
From: Thomas Herbst <therbst@silverspringnet.com>
To: Henning Schulzrinne <hgs@cs.columbia.edu>, Zach Shelby <zach@sensinode.com>
Date: Tue, 11 May 2010 18:11:25 -0700
Thread-Topic: [core] Core UDP vs TCP : Redux
Thread-Index: AcrxVZiE2m9Oel2WT0WLurwy4pc6GwAGHQcg
Message-ID: <485AF6ECE8D1954D996771CC49E996FDC0FE2568@IT-EXMB-01.silverspringnet.com>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com> <17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com> <9BB682AE-86C2-4054-8758-8E7C6AD10807@cs.columbia.edu>
In-Reply-To: <9BB682AE-86C2-4054-8758-8E7C6AD10807@cs.columbia.edu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: "core@ietf.org" <core@ietf.org>
Subject: Re: [core] Core UDP vs TCP : Redux
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, 12 May 2010 01:11:58 -0000

On TCP vs UDP - we need to pick one.  Deciding to use both UDP and TCP is j=
ust not making a decision. =20

You expect people who didn't include enough memory in their devices to impl=
ement TCP to do both UDP and TCP?=20

On security, is there a problem w/ DTLS?

tom

-----Original Message-----
From: Henning Schulzrinne [mailto:hgs@cs.columbia.edu]=20
Sent: Tuesday, May 11, 2010 3:02 PM
To: Zach Shelby
Cc: Thomas Herbst; core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux

This works as long as you can guarantee that the response is < MTU. Doing y=
our own fragmentation is a pain (you are then well on your way to re-invent=
ing TCP) and relying on IP fragmentation is unlikely to work in "challenged=
" networks. Thus, these applicability limitations need to be spelled out ve=
ry clearly. This also has security implications - obviously, TLS is out wit=
hout TCP, but anything involving certificates is also likely to be difficul=
t to carry.

Henning

On May 11, 2010, at 5:06 PM, Zach Shelby wrote:

> +1
>=20
> Through writing a few revisions of these specs, I have also already found=
 TCP to be really awkward. And the TCP negotiation discussions at the mike =
in Anaheim made me even more skeptical. Tom is right, if you need TCP then =
just use HTTP ;-)=20
>=20
> Zach=20
>=20
> On May 11, 2010, at 18:49 , Thomas Herbst wrote:
>=20
>> After the discussion in Anaheim, I'm surprised that we need yet another =
revisit to UDP and TCP for CORE.
>>=20
>> The Right Solution(tm) might well be to fix TCP such that it doesn't los=
e its brains every time you drop a packet, and we could end up with an end-=
to-end system where constrained devices might reasonably provide services t=
o normal hosts in the regular Internet,  However, transport work is out of =
scope for this WG.
>>=20
>> The second most right solution would be to implement CORE with a reliabl=
e UDP protocol, as is done in much of the draft.  The "optional" TCP portio=
ns of the draft are mostly increased complexity for no added benefit. If a =
device is capable of running TCP and the network it works on is capable of =
supporting TCP, you should just open a connection to Port 80 and use HTTP (=
or the TCP port/protocol of your choice).  There are many protocols a host =
MAY implement and it is not appropriate for the draft to enumerate them. =20
>>=20
>> Let's remove all of the sections related to TCP in the draft.
>>=20
>> tom
>>=20
>>=20
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>=20
> --=20
> Zach Shelby, Head of Research, 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
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>=20


From Colin.OFlynn@atmel.com  Tue May 11 18:18:11 2010
Return-Path: <Colin.OFlynn@atmel.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 10C953A695B for <core@core3.amsl.com>; Tue, 11 May 2010 18:18:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.002
X-Spam-Level: 
X-Spam-Status: No, score=0.002 tagged_above=-999 required=5 tests=[BAYES_50=0.001, HTML_MESSAGE=0.001]
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 bXeP6OvrLufE for <core@core3.amsl.com>; Tue, 11 May 2010 18:18:07 -0700 (PDT)
Received: from sjogate2.atmel.com (newsmtp5.atmel.com [204.2.163.5]) by core3.amsl.com (Postfix) with ESMTP id B6CF23A67B3 for <core@ietf.org>; Tue, 11 May 2010 18:18:07 -0700 (PDT)
Received: from csomb01.corp.atmel.com ([10.95.30.150]) by sjogate2.atmel.com (8.13.6/8.13.6) with ESMTP id o4C1Fb0U013681; Tue, 11 May 2010 18:15:39 -0700 (PDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01CAF170.E4DE9240"
Date: Tue, 11 May 2010 19:13:32 -0600
Message-ID: <C6471264338047459F18230B4F871DA0098F0523@csomb01.corp.atmel.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [core] Core UDP vs TCP : Redux
Thread-Index: AcrxVZiE2m9Oel2WT0WLurwy4pc6GwAGHQcgAACSguw=
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com><17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><9BB682AE-86C2-4054-8758-8E7C6AD10807@cs.columbia.edu> <485AF6ECE8D1954D996771CC49E996FDC0FE2568@IT-EXMB-01.silverspringnet.com>
From: "Oflynn, Colin" <Colin.OFlynn@atmel.com>
To: "Thomas Herbst" <therbst@silverspringnet.com>, "Henning Schulzrinne" <hgs@cs.columbia.edu>, "Zach Shelby" <zach@sensinode.com>
Cc: core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux
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, 12 May 2010 01:18:11 -0000

This is a multi-part message in MIME format.

------_=_NextPart_001_01CAF170.E4DE9240
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hello,

>This works as long as you can guarantee that the response is < MTU.

Which the current draft does. If we go the UDP route, I think we need to =
add support for larger packets through some simple fragmentation.

You won't need such large packets often! So it doesn't have to be very =
efficient, just every so often you need to transmit a large frame for a =
file load, encryption, etc.=20

Regards,

  -Colin


-----Original Message-----
From: core-bounces@ietf.org on behalf of Thomas Herbst
Sent: Wed 12/05/2010 02:11
To: Henning Schulzrinne; Zach Shelby
Cc: core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux
=20
On TCP vs UDP - we need to pick one.  Deciding to use both UDP and TCP =
is just not making a decision. =20

You expect people who didn't include enough memory in their devices to =
implement TCP to do both UDP and TCP?=20

On security, is there a problem w/ DTLS?

tom

-----Original Message-----
From: Henning Schulzrinne [mailto:hgs@cs.columbia.edu]=20
Sent: Tuesday, May 11, 2010 3:02 PM
To: Zach Shelby
Cc: Thomas Herbst; core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux

This works as long as you can guarantee that the response is < MTU. =
Doing your own fragmentation is a pain (you are then well on your way to =
re-inventing TCP) and relying on IP fragmentation is unlikely to work in =
"challenged" networks. Thus, these applicability limitations need to be =
spelled out very clearly. This also has security implications - =
obviously, TLS is out without TCP, but anything involving certificates =
is also likely to be difficult to carry.

Henning

On May 11, 2010, at 5:06 PM, Zach Shelby wrote:

> +1
>=20
> Through writing a few revisions of these specs, I have also already =
found TCP to be really awkward. And the TCP negotiation discussions at =
the mike in Anaheim made me even more skeptical. Tom is right, if you =
need TCP then just use HTTP ;-)=20
>=20
> Zach=20
>=20
> On May 11, 2010, at 18:49 , Thomas Herbst wrote:
>=20
>> After the discussion in Anaheim, I'm surprised that we need yet =
another revisit to UDP and TCP for CORE.
>>=20
>> The Right Solution(tm) might well be to fix TCP such that it doesn't =
lose its brains every time you drop a packet, and we could end up with =
an end-to-end system where constrained devices might reasonably provide =
services to normal hosts in the regular Internet,  However, transport =
work is out of scope for this WG.
>>=20
>> The second most right solution would be to implement CORE with a =
reliable UDP protocol, as is done in much of the draft.  The "optional" =
TCP portions of the draft are mostly increased complexity for no added =
benefit. If a device is capable of running TCP and the network it works =
on is capable of supporting TCP, you should just open a connection to =
Port 80 and use HTTP (or the TCP port/protocol of your choice).  There =
are many protocols a host MAY implement and it is not appropriate for =
the draft to enumerate them. =20
>>=20
>> Let's remove all of the sections related to TCP in the draft.
>>=20
>> tom
>>=20
>>=20
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>=20
> --=20
> Zach Shelby, Head of Research, 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
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>=20

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core


------_=_NextPart_001_01CAF170.E4DE9240
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
6.5.7654.12">
<TITLE>RE: [core] Core UDP vs TCP : Redux</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=3D2>Hello,<BR>
<BR>
&gt;This works as long as you can guarantee that the response is &lt; =
MTU.<BR>
<BR>
Which the current draft does. If we go the UDP route, I think we need to =
add support for larger packets through some simple fragmentation.<BR>
<BR>
You won't need such large packets often! So it doesn't have to be very =
efficient, just every so often you need to transmit a large frame for a =
file load, encryption, etc.<BR>
<BR>
Regards,<BR>
<BR>
&nbsp; -Colin<BR>
<BR>
<BR>
-----Original Message-----<BR>
From: core-bounces@ietf.org on behalf of Thomas Herbst<BR>
Sent: Wed 12/05/2010 02:11<BR>
To: Henning Schulzrinne; Zach Shelby<BR>
Cc: core@ietf.org<BR>
Subject: Re: [core] Core UDP vs TCP : Redux<BR>
<BR>
On TCP vs UDP - we need to pick one.&nbsp; Deciding to use both UDP and =
TCP is just not making a decision.&nbsp;<BR>
<BR>
You expect people who didn't include enough memory in their devices to =
implement TCP to do both UDP and TCP?<BR>
<BR>
On security, is there a problem w/ DTLS?<BR>
<BR>
tom<BR>
<BR>
-----Original Message-----<BR>
From: Henning Schulzrinne [<A =
HREF=3D"mailto:hgs@cs.columbia.edu">mailto:hgs@cs.columbia.edu</A>]<BR>
Sent: Tuesday, May 11, 2010 3:02 PM<BR>
To: Zach Shelby<BR>
Cc: Thomas Herbst; core@ietf.org<BR>
Subject: Re: [core] Core UDP vs TCP : Redux<BR>
<BR>
This works as long as you can guarantee that the response is &lt; MTU. =
Doing your own fragmentation is a pain (you are then well on your way to =
re-inventing TCP) and relying on IP fragmentation is unlikely to work in =
&quot;challenged&quot; networks. Thus, these applicability limitations =
need to be spelled out very clearly. This also has security implications =
- obviously, TLS is out without TCP, but anything involving certificates =
is also likely to be difficult to carry.<BR>
<BR>
Henning<BR>
<BR>
On May 11, 2010, at 5:06 PM, Zach Shelby wrote:<BR>
<BR>
&gt; +1<BR>
&gt;<BR>
&gt; Through writing a few revisions of these specs, I have also already =
found TCP to be really awkward. And the TCP negotiation discussions at =
the mike in Anaheim made me even more skeptical. Tom is right, if you =
need TCP then just use HTTP ;-)<BR>
&gt;<BR>
&gt; Zach<BR>
&gt;<BR>
&gt; On May 11, 2010, at 18:49 , Thomas Herbst wrote:<BR>
&gt;<BR>
&gt;&gt; After the discussion in Anaheim, I'm surprised that we need yet =
another revisit to UDP and TCP for CORE.<BR>
&gt;&gt;<BR>
&gt;&gt; The Right Solution(tm) might well be to fix TCP such that it =
doesn't lose its brains every time you drop a packet, and we could end =
up with an end-to-end system where constrained devices might reasonably =
provide services to normal hosts in the regular Internet,&nbsp; However, =
transport work is out of scope for this WG.<BR>
&gt;&gt;<BR>
&gt;&gt; The second most right solution would be to implement CORE with =
a reliable UDP protocol, as is done in much of the draft.&nbsp; The =
&quot;optional&quot; TCP portions of the draft are mostly increased =
complexity for no added benefit. If a device is capable of running TCP =
and the network it works on is capable of supporting TCP, you should =
just open a connection to Port 80 and use HTTP (or the TCP port/protocol =
of your choice).&nbsp; There are many protocols a host MAY implement and =
it is not appropriate for the draft to enumerate them.&nbsp;<BR>
&gt;&gt;<BR>
&gt;&gt; Let's remove all of the sections related to TCP in the =
draft.<BR>
&gt;&gt;<BR>
&gt;&gt; tom<BR>
&gt;&gt;<BR>
&gt;&gt;<BR>
&gt;&gt; _______________________________________________<BR>
&gt;&gt; core mailing list<BR>
&gt;&gt; core@ietf.org<BR>
&gt;&gt; <A =
HREF=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</A><BR>
&gt;<BR>
&gt; --<BR>
&gt; Zach Shelby, Head of Research, Sensinode Ltd.<BR>
&gt; <A HREF=3D"http://zachshelby.org">http://zachshelby.org</A>&nbsp; - =
My blog &quot;On the Internet of Things&quot;<BR>
&gt; <A HREF=3D"http://6lowpan.net">http://6lowpan.net</A> - My book =
&quot;6LoWPAN: The Wireless Embedded Internet&quot;<BR>
&gt; Mobile: +358 40 7796297<BR>
&gt;<BR>
&gt; _______________________________________________<BR>
&gt; core mailing list<BR>
&gt; core@ietf.org<BR>
&gt; <A =
HREF=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</A><BR>
&gt;<BR>
<BR>
_______________________________________________<BR>
core mailing list<BR>
core@ietf.org<BR>
<A =
HREF=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</A><BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>
------_=_NextPart_001_01CAF170.E4DE9240--

From Colin.OFlynn@atmel.com  Tue May 11 18:31:53 2010
Return-Path: <Colin.OFlynn@atmel.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 52C173A6AB5 for <core@core3.amsl.com>; Tue, 11 May 2010 18:31:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.298
X-Spam-Level: 
X-Spam-Status: No, score=-1.298 tagged_above=-999 required=5 tests=[AWL=1.300,  BAYES_00=-2.599, HTML_MESSAGE=0.001]
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 m6hE-nNuhC74 for <core@core3.amsl.com>; Tue, 11 May 2010 18:31:51 -0700 (PDT)
Received: from sjogate2.atmel.com (newsmtp5.atmel.com [204.2.163.5]) by core3.amsl.com (Postfix) with ESMTP id 5E98D3A67AF for <core@ietf.org>; Tue, 11 May 2010 18:31:46 -0700 (PDT)
Received: from csomb01.corp.atmel.com ([10.95.30.150]) by sjogate2.atmel.com (8.13.6/8.13.6) with ESMTP id o4C1TIql014569; Tue, 11 May 2010 18:29:18 -0700 (PDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01CAF172.CE33AE2C"
Date: Tue, 11 May 2010 19:31:12 -0600
Message-ID: <C6471264338047459F18230B4F871DA0098F0524@csomb01.corp.atmel.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [core] RE Fwd: New Version Notification fordraft-shelby-core-coap-01
Thread-Index: AcrxT5Zih37J+B37SPCqojfHJ9fKyAAIXqk8
References: <OFC9D1221A.0B7CA727-ONC125771F.00596DA9-C1257720.002D09E5@schneider-electric.com> <595F6A4B-511C-439C-A0C2-43C10998B1FA@sensinode.com>
From: "Oflynn, Colin" <Colin.OFlynn@atmel.com>
To: "Zach Shelby" <zach@sensinode.com>, <matthieu.vial@fr.non.schneider-electric.com>
Cc: core <core@ietf.org>
Subject: Re: [core] RE Fwd: New Version Notification fordraft-shelby-core-coap-01
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, 12 May 2010 01:31:53 -0000

This is a multi-part message in MIME format.

------_=_NextPart_001_01CAF172.CE33AE2C
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hello,

>I could envision having e.g. a Subscription-interval Option in addition =
to Subscription-lifetime.

More buttons, people love buttons ;-)

In all seriousness though: I think this can also be solved with REST =
itself in a way. Perhaps elements that you can subscribe to have some =
information you can get. They might have like a "subscribe options" that =
lists various information & options. When you do the subscribe you use =
those options as part of the subscribe message.

So for instance you get the "subscription options" for a node, which =
indicates it's "notify timebase" is in increments of 15 seconds. The =
default is to notify at minimum every 4 timebases (ie: 60 seconds). Then =
when you subscribe, you ask to subscribe with your minimum of 10 =
timebases (150 seconds).=20

I would suggest keeping it as a general as possible. In this case you =
have 'subscription options' a subscriber reads, then uses that to pass =
some specific data/elements. We could define at as a start the "notify =
timebase", "minimum notify time", and "maximum notify time". But you can =
extend that later or move it to another draft... What do you think?

Regards,

  -Colin

-----Original Message-----
From: core-bounces@ietf.org on behalf of Zach Shelby
Sent: Tue 11/05/2010 22:16
To: matthieu.vial@fr.non.schneider-electric.com
Cc: core
Subject: Re: [core] RE Fwd: New Version Notification =
fordraft-shelby-core-coap-01
=20
Hi,

On May 11, 2010, at 11:11 , matthieu.vial@fr.non.schneider-electric.com =
wrote:

> Hi,
>=20
> First of all congratulations for your work.
>=20
> I have few comments about the subscribe/notify mechanism and the =
resource directory.
>=20
> As far as I understand the specification, a client will receive its =
notifications on the same port as the subscribe request. As an =
implementer I would like to handle all asynchronous notifications on a =
dedicated port and perform synchronous GET, POST, PUT, DELETE on a =
different port. The current specification allows to do this for the UDP =
binding as it is connectionless but for the TCP binding I must keep the =
connection I used for the subscribe request alive. Just tell me if it is =
not the good approach because I know TCP is not a major concern for =
COAP.

Argh, yet again some problems with TCP. Surely a way to make that work =
of course, but it would need more text...=20

>=20
> How can I define a fine grained notification? Is it completlty left to =
the application so I must define a message format to describe precise =
notification rules and include this message into the subscribe payload =
or will you provide a framework later? Typical notification options =
would be: minimal delay between 2 notifications to prevent from =
overwhelming the network, an increment as the minimal change for noisy =
inputs, a maximum delay between notifications for periodic notifications =
and keep alive signals ...

For sure MIN_NOTIFY_INTERVAL and MAX_NOTIFY_INTERVAL variables should be =
added, maybe with a recommended default. With regards to having more =
knobs to turn here, I could envision having e.g. a Subscription-interval =
Option in addition to Subscription-lifetime. Now that said, anything =
more complicated is probably out of scope for CoRE. At least the =
transfer protocol shouldn't involve itself with data thresholds etc. =20

>=20
> How do you manage the lifetime of resources in the resource directory? =
The /.well-known/resources will probably not change very often so a =
simple subscription/notification would be useless. Moreover a periodic =
POST from devices seems not very efficient because the link format is =
quite verbose to be repeated without a real need. We could reuse the =
cacheability of COAP to avoid large data transfer but only the get =
method is cacheable. That means the directory agent should have a list =
of all devices. This imply some kind of registration mechanism to the =
directory.

This is a good discussion to have. At least the Etag can help here to =
prevent all data from being sent each time, and even a subscription =
could be useful in some cases. What I also had in mind was that a =
directory can act as a RESTful repository which can store the =
descriptions of others. In the end here we have to make an analysis of =
real resource discovery scenarios, how they work with these mechanisms, =
and then see if we're really missing something. Someone should write a =
draft like that by the way...=20

Zach

>=20
> Best regards,
> Matthieu VIAL
>=20
>=20
> <graycol.gif>Zach Shelby <zach@sensinode.com>
>=20
>=20
>=20
>=20
> Zach Shelby <zach@sensinode.com>=20
> Envoy=E9 par : core-bounces@ietf.org
> 10/05/2010 09:19
>=20
> <ecblank.gif>
> A
> <ecblank.gif>
> core <core@ietf.org>
> <ecblank.gif>
> cc
> <ecblank.gif>
> <ecblank.gif>
> Objet
> <ecblank.gif>
> [core] Fwd: New Version Notification for draft-shelby-core-coap-01
> <ecblank.gif>	<ecblank.gif>
>=20
> Hi,
>=20
> Version -01 of draft-shelby-core-coap is now available:
>=20
> http://www.ietf.org/id/draft-shelby-core-coap-01.txt
>=20
> This has gone through a lot of little revisions after Anaheim based on =
the list discussions, comments on -00, discussions with the chairs and =
quite a bit of implementation validation. We hope -01 fixes most of the =
issues and provides the main improvements requested so far. My goal is =
to keep this stable for a longer time to give people a chance to get =
some implementation experience (have heard of 5 implementations so far). =
Next update planned before the Maastricht cutoff.
>=20
> Here is a summary of the major changes in -01:
>=20
> - Method names now GET, PUT, POST, DELETE
> - Unified the message header and added a notify message type.
> - Completed the SUBMIT method and option
> - Improved the option TLV header, added Etag, Date and =
Subscription-lifetime Options
> - Added a Magic byte header for TCP and packed UDP
> - Wrote initial subscription, discovery and proxy sections
> - Plenty of simplification, optimization and bug fixes=20
>=20
> And of course still plenty of TODOs, the main ones are:
>=20
> - HTTP Mapping
> - Proxying
> - Complete Examples section=20
> - Define the TLS and DTLS bindings (help!)=20
>=20
> Zach, Brian and Don
>=20
> Begin forwarded message:
>=20
> > From: IETF I-D Submission Tool <idsubmission@ietf.org>
> > Date: May 10, 2010 10:05:25 GMT+03:00
> > To: zach@sensinode.com
> > Cc: brian@skyfoundry.com,d.sturek@att.net
> > Subject: New Version Notification for draft-shelby-core-coap-01=20
> >=20
> >=20
> > A new version of I-D, draft-shelby-core-coap-01.txt has been =
successfully submitted by Zach Shelby and posted to the IETF repository.
> >=20
> > Filename:	  draft-shelby-core-coap
> > Revision:	  01
> > Title:	  Constrained Application Protocol (CoAP)
> > Creation_date:	  2010-05-10
> > WG ID:	  Independent Submission
> > Number_of_pages: 33
> >=20
> > Abstract:
> > This document specifies the Constrained Application Protocol (CoAP),
> > a specialized transfer protocol for use with constrained networks =
and
> > nodes for machine-to-machine applications such as smart energy and
> > building automation.  These constrained nodes often have 8-bit
> > microcontrollers with small amounts of ROM and RAM, while networks
> > such as 6LoWPAN often have high packet error rates and typical
> > throughput of 10s of kbps.  CoAP provides request/reply and
> > subscribe/notify interaction models between appliciation end-points,
> > supports built-in resource discovery, and includes key web concepts
> > such as URIs and RESTful methods.  CoAP easily translates to HTTP =
for
> > integration with the web while meeting specialized requirements such
> > as multicast support, very low overhead and simplicity for
> > constrained environments.
> >=20
> >=20
> >=20
> > The IETF Secretariat.
> >=20
> >=20
>=20
> --=20
> Zach Shelby, Head of Research, 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
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>=20
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> ______________________________________________________________________
>=20

--=20
Zach Shelby, Head of Research, 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

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core


------_=_NextPart_001_01CAF172.CE33AE2C
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
6.5.7654.12">
<TITLE>RE: [core] RE Fwd: New Version Notification =
fordraft-shelby-core-coap-01</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=3D2>Hello,<BR>
<BR>
&gt;I could envision having e.g. a Subscription-interval Option in =
addition to Subscription-lifetime.<BR>
<BR>
More buttons, people love buttons ;-)<BR>
<BR>
In all seriousness though: I think this can also be solved with REST =
itself in a way. Perhaps elements that you can subscribe to have some =
information you can get. They might have like a &quot;subscribe =
options&quot; that lists various information &amp; options. When you do =
the subscribe you use those options as part of the subscribe =
message.<BR>
<BR>
So for instance you get the &quot;subscription options&quot; for a node, =
which indicates it's &quot;notify timebase&quot; is in increments of 15 =
seconds. The default is to notify at minimum every 4 timebases (ie: 60 =
seconds). Then when you subscribe, you ask to subscribe with your =
minimum of 10 timebases (150 seconds).<BR>
<BR>
I would suggest keeping it as a general as possible. In this case you =
have 'subscription options' a subscriber reads, then uses that to pass =
some specific data/elements. We could define at as a start the =
&quot;notify timebase&quot;, &quot;minimum notify time&quot;, and =
&quot;maximum notify time&quot;. But you can extend that later or move =
it to another draft... What do you think?<BR>
<BR>
Regards,<BR>
<BR>
&nbsp; -Colin<BR>
<BR>
-----Original Message-----<BR>
From: core-bounces@ietf.org on behalf of Zach Shelby<BR>
Sent: Tue 11/05/2010 22:16<BR>
To: matthieu.vial@fr.non.schneider-electric.com<BR>
Cc: core<BR>
Subject: Re: [core] RE Fwd: New Version Notification =
fordraft-shelby-core-coap-01<BR>
<BR>
Hi,<BR>
<BR>
On May 11, 2010, at 11:11 , matthieu.vial@fr.non.schneider-electric.com =
wrote:<BR>
<BR>
&gt; Hi,<BR>
&gt;<BR>
&gt; First of all congratulations for your work.<BR>
&gt;<BR>
&gt; I have few comments about the subscribe/notify mechanism and the =
resource directory.<BR>
&gt;<BR>
&gt; As far as I understand the specification, a client will receive its =
notifications on the same port as the subscribe request. As an =
implementer I would like to handle all asynchronous notifications on a =
dedicated port and perform synchronous GET, POST, PUT, DELETE on a =
different port. The current specification allows to do this for the UDP =
binding as it is connectionless but for the TCP binding I must keep the =
connection I used for the subscribe request alive. Just tell me if it is =
not the good approach because I know TCP is not a major concern for =
COAP.<BR>
<BR>
Argh, yet again some problems with TCP. Surely a way to make that work =
of course, but it would need more text...<BR>
<BR>
&gt;<BR>
&gt; How can I define a fine grained notification? Is it completlty left =
to the application so I must define a message format to describe precise =
notification rules and include this message into the subscribe payload =
or will you provide a framework later? Typical notification options =
would be: minimal delay between 2 notifications to prevent from =
overwhelming the network, an increment as the minimal change for noisy =
inputs, a maximum delay between notifications for periodic notifications =
and keep alive signals ...<BR>
<BR>
For sure MIN_NOTIFY_INTERVAL and MAX_NOTIFY_INTERVAL variables should be =
added, maybe with a recommended default. With regards to having more =
knobs to turn here, I could envision having e.g. a Subscription-interval =
Option in addition to Subscription-lifetime. Now that said, anything =
more complicated is probably out of scope for CoRE. At least the =
transfer protocol shouldn't involve itself with data thresholds =
etc.&nbsp;<BR>
<BR>
&gt;<BR>
&gt; How do you manage the lifetime of resources in the resource =
directory? The /.well-known/resources will probably not change very =
often so a simple subscription/notification would be useless. Moreover a =
periodic POST from devices seems not very efficient because the link =
format is quite verbose to be repeated without a real need. We could =
reuse the cacheability of COAP to avoid large data transfer but only the =
get method is cacheable. That means the directory agent should have a =
list of all devices. This imply some kind of registration mechanism to =
the directory.<BR>
<BR>
This is a good discussion to have. At least the Etag can help here to =
prevent all data from being sent each time, and even a subscription =
could be useful in some cases. What I also had in mind was that a =
directory can act as a RESTful repository which can store the =
descriptions of others. In the end here we have to make an analysis of =
real resource discovery scenarios, how they work with these mechanisms, =
and then see if we're really missing something. Someone should write a =
draft like that by the way...<BR>
<BR>
Zach<BR>
<BR>
&gt;<BR>
&gt; Best regards,<BR>
&gt; Matthieu VIAL<BR>
&gt;<BR>
&gt;<BR>
&gt; &lt;graycol.gif&gt;Zach Shelby &lt;zach@sensinode.com&gt;<BR>
&gt;<BR>
&gt;<BR>
&gt;<BR>
&gt;<BR>
&gt; Zach Shelby &lt;zach@sensinode.com&gt;<BR>
&gt; Envoy=E9 par : core-bounces@ietf.org<BR>
&gt; 10/05/2010 09:19<BR>
&gt;<BR>
&gt; &lt;ecblank.gif&gt;<BR>
&gt; A<BR>
&gt; &lt;ecblank.gif&gt;<BR>
&gt; core &lt;core@ietf.org&gt;<BR>
&gt; &lt;ecblank.gif&gt;<BR>
&gt; cc<BR>
&gt; &lt;ecblank.gif&gt;<BR>
&gt; &lt;ecblank.gif&gt;<BR>
&gt; Objet<BR>
&gt; &lt;ecblank.gif&gt;<BR>
&gt; [core] Fwd: New Version Notification for =
draft-shelby-core-coap-01<BR>
&gt; &lt;ecblank.gif&gt; &lt;ecblank.gif&gt;<BR>
&gt;<BR>
&gt; Hi,<BR>
&gt;<BR>
&gt; Version -01 of draft-shelby-core-coap is now available:<BR>
&gt;<BR>
&gt; <A =
HREF=3D"http://www.ietf.org/id/draft-shelby-core-coap-01.txt">http://www.=
ietf.org/id/draft-shelby-core-coap-01.txt</A><BR>
&gt;<BR>
&gt; This has gone through a lot of little revisions after Anaheim based =
on the list discussions, comments on -00, discussions with the chairs =
and quite a bit of implementation validation. We hope -01 fixes most of =
the issues and provides the main improvements requested so far. My goal =
is to keep this stable for a longer time to give people a chance to get =
some implementation experience (have heard of 5 implementations so far). =
Next update planned before the Maastricht cutoff.<BR>
&gt;<BR>
&gt; Here is a summary of the major changes in -01:<BR>
&gt;<BR>
&gt; - Method names now GET, PUT, POST, DELETE<BR>
&gt; - Unified the message header and added a notify message type.<BR>
&gt; - Completed the SUBMIT method and option<BR>
&gt; - Improved the option TLV header, added Etag, Date and =
Subscription-lifetime Options<BR>
&gt; - Added a Magic byte header for TCP and packed UDP<BR>
&gt; - Wrote initial subscription, discovery and proxy sections<BR>
&gt; - Plenty of simplification, optimization and bug fixes<BR>
&gt;<BR>
&gt; And of course still plenty of TODOs, the main ones are:<BR>
&gt;<BR>
&gt; - HTTP Mapping<BR>
&gt; - Proxying<BR>
&gt; - Complete Examples section<BR>
&gt; - Define the TLS and DTLS bindings (help!)<BR>
&gt;<BR>
&gt; Zach, Brian and Don<BR>
&gt;<BR>
&gt; Begin forwarded message:<BR>
&gt;<BR>
&gt; &gt; From: IETF I-D Submission Tool =
&lt;idsubmission@ietf.org&gt;<BR>
&gt; &gt; Date: May 10, 2010 10:05:25 GMT+03:00<BR>
&gt; &gt; To: zach@sensinode.com<BR>
&gt; &gt; Cc: brian@skyfoundry.com,d.sturek@att.net<BR>
&gt; &gt; Subject: New Version Notification for =
draft-shelby-core-coap-01<BR>
&gt; &gt;<BR>
&gt; &gt;<BR>
&gt; &gt; A new version of I-D, draft-shelby-core-coap-01.txt has been =
successfully submitted by Zach Shelby and posted to the IETF =
repository.<BR>
&gt; &gt;<BR>
&gt; &gt; Filename:&nbsp;&nbsp; &nbsp; draft-shelby-core-coap<BR>
&gt; &gt; Revision:&nbsp;&nbsp; &nbsp; 01<BR>
&gt; &gt; Title:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Constrained =
Application Protocol (CoAP)<BR>
&gt; &gt; Creation_date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; =
2010-05-10<BR>
&gt; &gt; WG ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; Independent =
Submission<BR>
&gt; &gt; Number_of_pages: 33<BR>
&gt; &gt;<BR>
&gt; &gt; Abstract:<BR>
&gt; &gt; This document specifies the Constrained Application Protocol =
(CoAP),<BR>
&gt; &gt; a specialized transfer protocol for use with constrained =
networks and<BR>
&gt; &gt; nodes for machine-to-machine applications such as smart energy =
and<BR>
&gt; &gt; building automation.&nbsp; These constrained nodes often have =
8-bit<BR>
&gt; &gt; microcontrollers with small amounts of ROM and RAM, while =
networks<BR>
&gt; &gt; such as 6LoWPAN often have high packet error rates and =
typical<BR>
&gt; &gt; throughput of 10s of kbps.&nbsp; CoAP provides request/reply =
and<BR>
&gt; &gt; subscribe/notify interaction models between appliciation =
end-points,<BR>
&gt; &gt; supports built-in resource discovery, and includes key web =
concepts<BR>
&gt; &gt; such as URIs and RESTful methods.&nbsp; CoAP easily translates =
to HTTP for<BR>
&gt; &gt; integration with the web while meeting specialized =
requirements such<BR>
&gt; &gt; as multicast support, very low overhead and simplicity for<BR>
&gt; &gt; constrained environments.<BR>
&gt; &gt;<BR>
&gt; &gt;<BR>
&gt; &gt;<BR>
&gt; &gt; The IETF Secretariat.<BR>
&gt; &gt;<BR>
&gt; &gt;<BR>
&gt;<BR>
&gt; --<BR>
&gt; Zach Shelby, Head of Research, Sensinode Ltd.<BR>
&gt; <A HREF=3D"http://zachshelby.org">http://zachshelby.org</A>&nbsp; - =
My blog &quot;On the Internet of Things&quot;<BR>
&gt; <A HREF=3D"http://6lowpan.net">http://6lowpan.net</A> - My book =
&quot;6LoWPAN: The Wireless Embedded Internet&quot;<BR>
&gt; Mobile: +358 40 7796297<BR>
&gt;<BR>
&gt; _______________________________________________<BR>
&gt; core mailing list<BR>
&gt; core@ietf.org<BR>
&gt; <A =
HREF=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</A><BR>
&gt;<BR>
&gt; =
______________________________________________________________________<BR=
>
&gt; This email has been scanned by the MessageLabs Email Security =
System.<BR>
&gt; =
______________________________________________________________________<BR=
>
&gt;<BR>
<BR>
--<BR>
Zach Shelby, Head of Research, Sensinode Ltd.<BR>
<A HREF=3D"http://zachshelby.org">http://zachshelby.org</A>&nbsp; - My =
blog &quot;On the Internet of Things&quot;<BR>
<A HREF=3D"http://6lowpan.net">http://6lowpan.net</A> - My book =
&quot;6LoWPAN: The Wireless Embedded Internet&quot;<BR>
Mobile: +358 40 7796297<BR>
<BR>
_______________________________________________<BR>
core mailing list<BR>
core@ietf.org<BR>
<A =
HREF=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</A><BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>
------_=_NextPart_001_01CAF172.CE33AE2C--

From hgs@cs.columbia.edu  Tue May 11 18:41:24 2010
Return-Path: <hgs@cs.columbia.edu>
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 8902A3A6C18 for <core@core3.amsl.com>; Tue, 11 May 2010 18:41:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.999
X-Spam-Level: 
X-Spam-Status: No, score=-3.999 tagged_above=-999 required=5 tests=[BAYES_50=0.001, RCVD_IN_DNSWL_MED=-4]
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 X20WoD6NqcHH for <core@core3.amsl.com>; Tue, 11 May 2010 18:41:23 -0700 (PDT)
Received: from serrano.cc.columbia.edu (serrano.cc.columbia.edu [128.59.29.6]) by core3.amsl.com (Postfix) with ESMTP id 7B9A03A6AC3 for <core@ietf.org>; Tue, 11 May 2010 18:41:23 -0700 (PDT)
Received: from new-host-3.home (pool-173-54-225-147.nwrknj.fios.verizon.net [173.54.225.147]) (user=hgs10 mech=PLAIN bits=0) by serrano.cc.columbia.edu (8.14.3/8.14.3) with ESMTP id o4C1f9tE020025 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Tue, 11 May 2010 21:41:10 -0400 (EDT)
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: text/plain; charset=us-ascii
From: Henning Schulzrinne <hgs@cs.columbia.edu>
In-Reply-To: <C6471264338047459F18230B4F871DA0098F0523@csomb01.corp.atmel.com>
Date: Tue, 11 May 2010 21:41:09 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <49C9CCBE-B92F-43F0-9FB8-11DA83B4B075@cs.columbia.edu>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com><17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><9BB682AE-86C2-4054-8758-8E7C6AD10807@cs.columbia.edu> <485AF6ECE8D1954D996771CC49E996FDC0FE2568@IT-EXMB-01.silverspringnet.com> <C6471264338047459F18230B4F871DA0098F0523@csomb01.corp.atmel.com>
To: "Oflynn, Colin" <Colin.OFlynn@atmel.com>
X-Mailer: Apple Mail (2.1078)
X-No-Spam-Score: Local
X-Scanned-By: MIMEDefang 2.68 on 128.59.29.6
Cc: core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux
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, 12 May 2010 01:41:24 -0000

All I can say is that a lot of people thought that when we designed SIP =
- and I think it's clear that the assumption turned out to be wrong =
enough to cause grief. Doesn't mean that it will here, but I'd suggest =
some realization that our collective crystal ball is a bit fuzzy. =
Protocols, particularly successful ones, tend to get pushed to their =
limits and beyond. (If you want, DNS, tftp and RSVP are other examples =
where one could argue that this has caused significant pain.)

Just to spin this direction forward: If you want fragmentation and =
reliability, you have to be able to ack request individual fragments, as =
you'll otherwise end up retransmitting the whole frame if one fragment =
is lost, plus a total length field (so that the sender knows whether to =
expect more fragments). Not overwhelming complexity, but probably =
doubles the header size.

Henning

On May 11, 2010, at 9:13 PM, Oflynn, Colin wrote:

> Hello,
>=20
> >This works as long as you can guarantee that the response is < MTU.
>=20
> Which the current draft does. If we go the UDP route, I think we need =
to add support for larger packets through some simple fragmentation.
>=20
> You won't need such large packets often! So it doesn't have to be very =
efficient, just every so often you need to transmit a large frame for a =
file load, encryption, etc.


From dotis@mail-abuse.org  Tue May 11 19:13:47 2010
Return-Path: <dotis@mail-abuse.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 C513428C0EF for <core@core3.amsl.com>; Tue, 11 May 2010 19:13:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.823
X-Spam-Level: 
X-Spam-Status: No, score=-3.823 tagged_above=-999 required=5 tests=[AWL=0.176,  BAYES_50=0.001, RCVD_IN_DNSWL_MED=-4]
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 TEjmEJP+ZSUT for <core@core3.amsl.com>; Tue, 11 May 2010 19:13:46 -0700 (PDT)
Received: from harry.mail-abuse.org (harry.mail-abuse.org [168.61.5.27]) by core3.amsl.com (Postfix) with ESMTP id 9230028C0EA for <core@ietf.org>; Tue, 11 May 2010 19:13:33 -0700 (PDT)
Received: from sjc-office-nat-223.mail-abuse.org (gateway1.sjc.mail-abuse.org [168.61.5.81]) by harry.mail-abuse.org (Postfix) with ESMTP id 5B704A944FC for <core@ietf.org>; Wed, 12 May 2010 02:13:17 +0000 (UTC)
Message-ID: <4BEA0EBD.8020502@mail-abuse.org>
Date: Tue, 11 May 2010 19:13:17 -0700
From: Douglas Otis <dotis@mail-abuse.org>
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4
MIME-Version: 1.0
To: core@ietf.org
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com><17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com>	<F2FB4072-42D1-49F7-98F1-173AE1CD0856@tzi.org>	<A61BB3A241E6E64D86C58237F6DC1A18025D5019@ALPMLVEM04.e2k.ad.ge.com> <EA280259-B8FE-4927-8561-A07E8870CC2C@tzi.org>
In-Reply-To: <EA280259-B8FE-4927-8561-A07E8870CC2C@tzi.org>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Subject: Re: [core] Core UDP vs TCP : Redux
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, 12 May 2010 02:13:48 -0000

On 5/11/10 2:52 PM, Carsten Bormann wrote:
> On May 11, 2010, at 23:41, Simpson, Robby (GE Energy Services) wrote:
>    
>> Carsten,
>>
>> For clarification, what are your metrics for "reinventing TCP"?
>>
>> Multiple packets?  Flow control?  Congestion control?
>>      
> Yes :-)
>
> I don't have a problem with a multi-packet exchange to effect a transfer.
> But we should be very careful with what kind of state we expect the two sides to build/maintain/keep for this.
> Running a congestion control algorithm instead of a simple lock-step mechanism sounds wrong.
>    
A byte stream is not a good approach in resource limited environments.  
However, framed data objects should not be exchanged in lock-step 
fashion either.  By not requiring ordered delivery, offset with an 
ability for direct placement, buffering can be minimal.  TLV framed 
exchanges can be regulated by chunks containing acks, credits with noted 
gaps and dups, for example.  Whether this information is used to 
establish reliable delivery should be left to the application.  The 
underlying transport can be kept simple, with perhaps negotiated 
dependence on whether the sender is to retry non-critical data.  The 
protocol should be able to avoid congestion without being limited to 
lock-step exchanges as well.
> Having any kind of flow control beyond the lock-step (e.g., windows) sounds wrong.
>    
Disagree.  These networks might be slow and may make use of 
multi-casting.  Information exchange is not best done in lock-step, nor 
as a byte steam.
> Having to establish a "session", "connection", "association" to effect the transfer sounds wrong.
>    
Both security, performance, and reliability benefit by having more than 
just TFTP style exchanges.
> But I don't think of these as metrics, so if a good way to have these multi-packet exchanges is proposed, let's look at the impact on nodes and network instead of trying to decide whether it is too much like TCP.
>
> What do you think?
>    
Framed data objects with selective acks can make the best use of limited 
resources and slow networks, where TCP does not fit this mode of 
operation.  It should also be noted that TLS remains possible without TCP.

-Doug

From L.Wood@surrey.ac.uk  Tue May 11 23:26:19 2010
Return-Path: <L.Wood@surrey.ac.uk>
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 D76163A6C8F for <core@core3.amsl.com>; Tue, 11 May 2010 23:26:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.788
X-Spam-Level: 
X-Spam-Status: No, score=-4.788 tagged_above=-999 required=5 tests=[AWL=-0.789, BAYES_50=0.001, RCVD_IN_DNSWL_MED=-4]
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 ZklfwU40Ztkt for <core@core3.amsl.com>; Tue, 11 May 2010 23:26:18 -0700 (PDT)
Received: from mail72.messagelabs.com (mail72.messagelabs.com [193.109.255.147]) by core3.amsl.com (Postfix) with ESMTP id 06E373A6C84 for <core@ietf.org>; Tue, 11 May 2010 23:25:47 -0700 (PDT)
X-VirusChecked: Checked
X-Env-Sender: L.Wood@surrey.ac.uk
X-Msg-Ref: server-4.tower-72.messagelabs.com!1273645536!11479969!1
X-StarScan-Version: 6.2.4; banners=-,-,-
X-Originating-IP: [131.227.200.35]
Received: (qmail 13545 invoked from network); 12 May 2010 06:25:36 -0000
Received: from unknown (HELO EXHT021P.surrey.ac.uk) (131.227.200.35) by server-4.tower-72.messagelabs.com with AES128-SHA encrypted SMTP; 12 May 2010 06:25:36 -0000
Received: from EXMB01CMS.surrey.ac.uk ([169.254.1.69]) by EXHT021P.surrey.ac.uk ([131.227.200.35]) with mapi; Wed, 12 May 2010 07:25:36 +0100
From: <L.Wood@surrey.ac.uk>
To: <cabo@tzi.org>
Date: Wed, 12 May 2010 07:25:33 +0100
Thread-Topic: [core] Core UDP vs TCP : Redux
Thread-Index: Acrxm+5H63xOB4WWRQe6XFBsj5HrwQ==
Message-ID: <0BCE0692-693C-4971-B10A-A94F5FD138CD@surrey.ac.uk>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com><17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com> <F2FB4072-42D1-49F7-98F1-173AE1CD0856@tzi.org> <A61BB3A241E6E64D86C58237F6DC1A18025D5019@ALPMLVEM04.e2k.ad.ge.com> <EA280259-B8FE-4927-8561-A07E8870CC2C@tzi.org>
In-Reply-To: <EA280259-B8FE-4927-8561-A07E8870CC2C@tzi.org>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: core@ietf.org, L.Wood@surrey.ac.uk
Subject: Re: [core] Core UDP vs TCP : Redux
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, 12 May 2010 06:26:20 -0000

On 11 May 2010, at 22:52, Carsten Bormann wrote:

> I don't have a problem with a multi-packet exchange to effect a transfer.
> But we should be very careful with what kind of state we expect the two s=
ides to build/maintain/keep for this.
> Running a congestion control algorithm instead of a simple lock-step mech=
anism sounds wrong.
> Having any kind of flow control beyond the lock-step (e.g., windows) soun=
ds wrong. =20
> Having to establish a "session", "connection", "association" to effect th=
e transfer sounds wrong.
>=20
> But I don't think of these as metrics, so if a good way to have these mul=
ti-packet exchanges is proposed, let's look at the impact on nodes and netw=
ork instead of trying to decide whether it is too much like TCP.

Some sort of connection is needed to deal with multi-packet exchanges.

Sounds like the basic principles that went into designing Saratoga for UDO:
http://tools.ietf.org/html/draft-wood-tsvwg-saratoga-05
http://info.ee.surrey.ac.uk/Personal/L.Wood/dtn/saratoga

L.

Lloyd Wood
L.Wood@surrey.ac.uk
http://sat-net.com/L.Wood




From Colin.OFlynn@atmel.com  Wed May 12 05:03:50 2010
Return-Path: <Colin.OFlynn@atmel.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 935943A68B9 for <core@core3.amsl.com>; Wed, 12 May 2010 05:03:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.948
X-Spam-Level: 
X-Spam-Status: No, score=-1.948 tagged_above=-999 required=5 tests=[AWL=0.650,  BAYES_00=-2.599, HTML_MESSAGE=0.001]
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 P86kjqDsfeZY for <core@core3.amsl.com>; Wed, 12 May 2010 05:03:49 -0700 (PDT)
Received: from sjogate2.atmel.com (newsmtp5.atmel.com [204.2.163.5]) by core3.amsl.com (Postfix) with ESMTP id 4FE813A685B for <core@ietf.org>; Wed, 12 May 2010 05:03:43 -0700 (PDT)
Received: from csomb01.corp.atmel.com ([10.95.30.150]) by sjogate2.atmel.com (8.13.6/8.13.6) with ESMTP id o4CC1GgV005265; Wed, 12 May 2010 05:01:18 -0700 (PDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01CAF1CB.178444A0"
Date: Wed, 12 May 2010 06:03:10 -0600
Message-ID: <C6471264338047459F18230B4F871DA0098F0525@csomb01.corp.atmel.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [core] Core UDP vs TCP : Redux
Thread-Index: Acrxm+5H63xOB4WWRQe6XFBsj5HrwQALYLeO
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com><17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><F2FB4072-42D1-49F7-98F1-173AE1CD0856@tzi.org><A61BB3A241E6E64D86C58237F6DC1A18025D5019@ALPMLVEM04.e2k.ad.ge.com><EA280259-B8FE-4927-8561-A07E8870CC2C@tzi.org> <0BCE0692-693C-4971-B10A-A94F5FD138CD@surrey.ac.uk>
From: "Oflynn, Colin" <Colin.OFlynn@atmel.com>
To: <L.Wood@surrey.ac.uk>, <cabo@tzi.org>
Cc: core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux
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, 12 May 2010 12:03:50 -0000

This is a multi-part message in MIME format.

------_=_NextPart_001_01CAF1CB.178444A0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hello,

Do the limitations of a lock-step transfer matter in our limited =
networks?=20

I see it like this: lock-step will have tiny code size. It is very very =
simple to implement and understand. I don't see every transmission being =
multi-packet, very very few transmissions would exceed the 1280 byte =
limit using UDP. Most people doing consistently large packets would =
probably be using real TCP or something else. What we want to define is =
something that lets CoAP work with large packets, but is NOT supposed to =
be used to stream video.

When using CoAP that gives you reliability anyway, as you get the =
HTTP/CoAP/OK in response. If you send a single packet, and you get OK, =
then it all worked. It's only when you have a multi-packet message you =
get into trouble, since you'd have to resend the entire message if you =
don't get OK.

As a code-size comparison: 6lowpan-hc takes around 6K flash on an AVR =
device, but it gives you considerable compression that you use on =
*every* packet. So this makes it very very useful, and worth 6K.=20

Regards,

   -Colin

PS: The HSS Saratoga looks like much warmer diving then we've got in the =
UK ;-)




-----Original Message-----
From: core-bounces@ietf.org on behalf of L.Wood@surrey.ac.uk
Sent: Wed 12/05/2010 07:25
To: cabo@tzi.org
Cc: core@ietf.org; L.Wood@surrey.ac.uk
Subject: Re: [core] Core UDP vs TCP : Redux
=20

On 11 May 2010, at 22:52, Carsten Bormann wrote:

> I don't have a problem with a multi-packet exchange to effect a =
transfer.
> But we should be very careful with what kind of state we expect the =
two sides to build/maintain/keep for this.
> Running a congestion control algorithm instead of a simple lock-step =
mechanism sounds wrong.
> Having any kind of flow control beyond the lock-step (e.g., windows) =
sounds wrong. =20
> Having to establish a "session", "connection", "association" to effect =
the transfer sounds wrong.
>=20
> But I don't think of these as metrics, so if a good way to have these =
multi-packet exchanges is proposed, let's look at the impact on nodes =
and network instead of trying to decide whether it is too much like TCP.

Some sort of connection is needed to deal with multi-packet exchanges.

Sounds like the basic principles that went into designing Saratoga for =
UDO:
http://tools.ietf.org/html/draft-wood-tsvwg-saratoga-05
http://info.ee.surrey.ac.uk/Personal/L.Wood/dtn/saratoga

L.

Lloyd Wood
L.Wood@surrey.ac.uk
http://sat-net.com/L.Wood



_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core


------_=_NextPart_001_01CAF1CB.178444A0
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
6.5.7654.12">
<TITLE>RE: [core] Core UDP vs TCP : Redux</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=3D2>Hello,<BR>
<BR>
Do the limitations of a lock-step transfer matter in our limited =
networks?<BR>
<BR>
I see it like this: lock-step will have tiny code size. It is very very =
simple to implement and understand. I don't see every transmission being =
multi-packet, very very few transmissions would exceed the 1280 byte =
limit using UDP. Most people doing consistently large packets would =
probably be using real TCP or something else. What we want to define is =
something that lets CoAP work with large packets, but is NOT supposed to =
be used to stream video.<BR>
<BR>
When using CoAP that gives you reliability anyway, as you get the =
HTTP/CoAP/OK in response. If you send a single packet, and you get OK, =
then it all worked. It's only when you have a multi-packet message you =
get into trouble, since you'd have to resend the entire message if you =
don't get OK.<BR>
<BR>
As a code-size comparison: 6lowpan-hc takes around 6K flash on an AVR =
device, but it gives you considerable compression that you use on =
*every* packet. So this makes it very very useful, and worth 6K.<BR>
<BR>
Regards,<BR>
<BR>
&nbsp;&nbsp; -Colin<BR>
<BR>
PS: The HSS Saratoga looks like much warmer diving then we've got in the =
UK ;-)<BR>
<BR>
<BR>
<BR>
<BR>
-----Original Message-----<BR>
From: core-bounces@ietf.org on behalf of L.Wood@surrey.ac.uk<BR>
Sent: Wed 12/05/2010 07:25<BR>
To: cabo@tzi.org<BR>
Cc: core@ietf.org; L.Wood@surrey.ac.uk<BR>
Subject: Re: [core] Core UDP vs TCP : Redux<BR>
<BR>
<BR>
On 11 May 2010, at 22:52, Carsten Bormann wrote:<BR>
<BR>
&gt; I don't have a problem with a multi-packet exchange to effect a =
transfer.<BR>
&gt; But we should be very careful with what kind of state we expect the =
two sides to build/maintain/keep for this.<BR>
&gt; Running a congestion control algorithm instead of a simple =
lock-step mechanism sounds wrong.<BR>
&gt; Having any kind of flow control beyond the lock-step (e.g., =
windows) sounds wrong.&nbsp;<BR>
&gt; Having to establish a &quot;session&quot;, &quot;connection&quot;, =
&quot;association&quot; to effect the transfer sounds wrong.<BR>
&gt;<BR>
&gt; But I don't think of these as metrics, so if a good way to have =
these multi-packet exchanges is proposed, let's look at the impact on =
nodes and network instead of trying to decide whether it is too much =
like TCP.<BR>
<BR>
Some sort of connection is needed to deal with multi-packet =
exchanges.<BR>
<BR>
Sounds like the basic principles that went into designing Saratoga for =
UDO:<BR>
<A =
HREF=3D"http://tools.ietf.org/html/draft-wood-tsvwg-saratoga-05">http://t=
ools.ietf.org/html/draft-wood-tsvwg-saratoga-05</A><BR>
<A =
HREF=3D"http://info.ee.surrey.ac.uk/Personal/L.Wood/dtn/saratoga">http://=
info.ee.surrey.ac.uk/Personal/L.Wood/dtn/saratoga</A><BR>
<BR>
L.<BR>
<BR>
Lloyd Wood<BR>
L.Wood@surrey.ac.uk<BR>
<A HREF=3D"http://sat-net.com/L.Wood">http://sat-net.com/L.Wood</A><BR>
<BR>
<BR>
<BR>
_______________________________________________<BR>
core mailing list<BR>
core@ietf.org<BR>
<A =
HREF=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</A><BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>
------_=_NextPart_001_01CAF1CB.178444A0--

From guido.moritz@uni-rostock.de  Wed May 12 07:03:32 2010
Return-Path: <guido.moritz@uni-rostock.de>
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 83E913A68FD for <core@core3.amsl.com>; Wed, 12 May 2010 07:03:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.2
X-Spam-Level: 
X-Spam-Status: No, score=-2.2 tagged_above=-999 required=5 tests=[BAYES_50=0.001, HELO_EQ_DE=0.35, MSGID_MULTIPLE_AT=1.449, RCVD_IN_DNSWL_MED=-4]
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 RMDSsoqSh6BQ for <core@core3.amsl.com>; Wed, 12 May 2010 07:03:31 -0700 (PDT)
Received: from ida.uni-rostock.de (ida.uni-rostock.de [139.30.8.34]) by core3.amsl.com (Postfix) with ESMTP id 584A23A6CB0 for <core@ietf.org>; Wed, 12 May 2010 06:53:43 -0700 (PDT)
Received: from email2.uni-rostock.de (139.30.8.209) by ida.uni-rostock.de (139.30.8.162) with Microsoft SMTP Server (TLS) id 8.2.254.0; Wed, 12 May 2010 15:53:29 +0200
Received: from Schlappi (139.30.201.226) by email2.uni-rostock.de (139.30.8.210) with Microsoft SMTP Server (TLS) id 8.2.254.0; Wed, 12 May 2010 15:53:29 +0200
From: Guido Moritz <guido.moritz@uni-rostock.de>
To: <core@ietf.org>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com> <17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com>
In-Reply-To: <17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com>
Date: Wed, 12 May 2010 15:53:32 +0200
Message-ID: <004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Office Outlook 12.0
Thread-Index: AcrxTf4ak2qgmnhIQIqfo77oXw6hCAAiuZtg
Content-Language: de
Subject: Re: [core] Core UDP vs TCP : Redux
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, 12 May 2010 14:03:32 -0000

Sorry, but I would not agree to say 'when you are able to use TCP, you =
are
also able to use HTTP'. We made several measurements with UDP vs. TCP =
and of
course, connection setup takes longer for TCP. But a typical HTTP header =
has
a size >100 Byte (without any payload). Thus the connection setup =
overhead
is compensated due to large payload/headers itself. There might be
application scenarios where the designer wants to have reliable
communication, but still have small payload.

I did not have read through the current core I-D extensively, but is it
necessary to go so much into detail why to use UDP or TCP and how it =
should
be used? It might be reasonable to define a reliability (and maybe also
fragmentation) extension to UDP and define UDP as the defualt, but why
should TCP be forbidden at all?

One may argue about SOAP Web services in several points, but their =
binding
concept is quite nice. SOAP can be bound to which transport mechanism =
ever.
This makes it applicable it different scenarios and the transport
mechanisms/protocol can be changed without an effect on application =
itself.

Just my two cents,
Guido

> -----Urspr=FCngliche Nachricht-----
> Von: core-bounces@ietf.org [mailto:core-bounces@ietf.org] Im Auftrag =
von
Zach
> Shelby
> Gesendet: Dienstag, 11. Mai 2010 23:07
> An: Thomas Herbst
> Cc: core@ietf.org
> Betreff: Re: [core] Core UDP vs TCP : Redux
>=20
> +1
>=20
> Through writing a few revisions of these specs, I have also already =
found
TCP
> to be really awkward. And the TCP negotiation discussions at the mike =
in
> Anaheim made me even more skeptical. Tom is right, if you need TCP =
then
just
> use HTTP ;-)
>=20
> Zach
>=20
> On May 11, 2010, at 18:49 , Thomas Herbst wrote:
>=20
> > After the discussion in Anaheim, I'm surprised that we need yet =
another
> revisit to UDP and TCP for CORE.
> >
> > The Right Solution(tm) might well be to fix TCP such that it doesn't
lose
> its brains every time you drop a packet, and we could end up with an
end-to-
> end system where constrained devices might reasonably provide services =
to
> normal hosts in the regular Internet,  However, transport work is out =
of
scope
> for this WG.
> >
> > The second most right solution would be to implement CORE with a
reliable
> UDP protocol, as is done in much of the draft.  The "optional" TCP
portions of
> the draft are mostly increased complexity for no added benefit. If a
device is
> capable of running TCP and the network it works on is capable of
supporting
> TCP, you should just open a connection to Port 80 and use HTTP (or the =
TCP
> port/protocol of your choice).  There are many protocols a host MAY
implement
> and it is not appropriate for the draft to enumerate them.
> >
> > Let's remove all of the sections related to TCP in the draft.
> >
> > tom
> >
> >
> > _______________________________________________
> > core mailing list
> > core@ietf.org
> > https://www.ietf.org/mailman/listinfo/core
>=20
> --
> Zach Shelby, Head of Research, 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
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core


From L.Wood@surrey.ac.uk  Wed May 12 07:44:21 2010
Return-Path: <L.Wood@surrey.ac.uk>
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 810293A6BF0 for <core@core3.amsl.com>; Wed, 12 May 2010 07:44:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.744
X-Spam-Level: 
X-Spam-Status: No, score=-4.744 tagged_above=-999 required=5 tests=[AWL=-0.745, BAYES_50=0.001, RCVD_IN_DNSWL_MED=-4]
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 B7cLMQ1Vj9IL for <core@core3.amsl.com>; Wed, 12 May 2010 07:44:19 -0700 (PDT)
Received: from mail82.messagelabs.com (mail82.messagelabs.com [195.245.231.67]) by core3.amsl.com (Postfix) with ESMTP id BA5313A6CCF for <core@ietf.org>; Wed, 12 May 2010 07:28:24 -0700 (PDT)
X-VirusChecked: Checked
X-Env-Sender: L.Wood@surrey.ac.uk
X-Msg-Ref: server-7.tower-82.messagelabs.com!1273674492!231314!1
X-StarScan-Version: 6.2.4; banners=-,-,-
X-Originating-IP: [131.227.200.31]
Received: (qmail 25908 invoked from network); 12 May 2010 14:28:13 -0000
Received: from unknown (HELO EXHT011P.surrey.ac.uk) (131.227.200.31) by server-7.tower-82.messagelabs.com with AES128-SHA encrypted SMTP; 12 May 2010 14:28:13 -0000
Received: from EXMB01CMS.surrey.ac.uk ([169.254.1.69]) by EXHT011P.surrey.ac.uk ([131.227.200.31]) with mapi; Wed, 12 May 2010 15:28:12 +0100
From: <L.Wood@surrey.ac.uk>
To: <guido.moritz@uni-rostock.de>, <core@ietf.org>
Date: Wed, 12 May 2010 15:28:10 +0100
Thread-Topic: [core] Core UDP vs TCP : Redux
Thread-Index: AcrxTf4ak2qgmnhIQIqfo77oXw6hCAAiuZtgAAERdbA=
Message-ID: <FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com> <17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com> <004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de>
In-Reply-To: <004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: Re: [core] Core UDP vs TCP : Redux
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, 12 May 2010 14:44:21 -0000

HTTP doesn't _have_ to run over TCP:
http://tools.ietf.org/html/draft-wood-dtnrg-http-dtn-delivery-05
and decoupling HTTP from TCP would be a very good idea, as implementation w=
ork to do so (e.g. HTTP over SCTP) is ongoing:
http://personal.ee.surrey.ac.uk/Personal/L.Wood/publications/talks.html#htt=
p-standalone

The only SOAP binding I can find is that to HTTP:
http://www.w3.org/TR/soap12-part2/#soapinhttp
http://www.w3.org/TR/2007/REC-soap12-part1-20070427/#transpbindframew

which does place SOAP binding firmly at 'concept' stage - one example to cl=
aim that an entire range of possibilities exist and are implementable.

Another example of this 'concept' is BEEP's transport profiles, for which o=
nly a mapping to TCP is actually defined. Because nobody uses BEEP.

L.

-----Original Message-----
From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of Gui=
do Moritz
Sent: 12 May 2010 14:54
To: core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux

Sorry, but I would not agree to say 'when you are able to use TCP, you are =
also able to use HTTP'. We made several measurements with UDP vs. TCP and o=
f course, connection setup takes longer for TCP. But a typical HTTP header =
has a size >100 Byte (without any payload). Thus the connection setup overh=
ead is compensated due to large payload/headers itself. There might be appl=
ication scenarios where the designer wants to have reliable communication, =
but still have small payload.

I did not have read through the current core I-D extensively, but is it nec=
essary to go so much into detail why to use UDP or TCP and how it should be=
 used? It might be reasonable to define a reliability (and maybe also
fragmentation) extension to UDP and define UDP as the defualt, but why shou=
ld TCP be forbidden at all?

One may argue about SOAP Web services in several points, but their binding =
concept is quite nice. SOAP can be bound to which transport mechanism ever.
This makes it applicable it different scenarios and the transport mechanism=
s/protocol can be changed without an effect on application itself.

Just my two cents,
Guido

> -----Urspr=FCngliche Nachricht-----
> Von: core-bounces@ietf.org [mailto:core-bounces@ietf.org] Im Auftrag=20
> von
Zach
> Shelby
> Gesendet: Dienstag, 11. Mai 2010 23:07
> An: Thomas Herbst
> Cc: core@ietf.org
> Betreff: Re: [core] Core UDP vs TCP : Redux
>=20
> +1
>=20
> Through writing a few revisions of these specs, I have also already=20
> found
TCP
> to be really awkward. And the TCP negotiation discussions at the mike=20
> in Anaheim made me even more skeptical. Tom is right, if you need TCP=20
> then
just
> use HTTP ;-)
>=20
> Zach
>=20
> On May 11, 2010, at 18:49 , Thomas Herbst wrote:
>=20
> > After the discussion in Anaheim, I'm surprised that we need yet=20
> > another
> revisit to UDP and TCP for CORE.
> >
> > The Right Solution(tm) might well be to fix TCP such that it doesn't
lose
> its brains every time you drop a packet, and we could end up with an
end-to-
> end system where constrained devices might reasonably provide services=20
> to normal hosts in the regular Internet,  However, transport work is=20
> out of
scope
> for this WG.
> >
> > The second most right solution would be to implement CORE with a
reliable
> UDP protocol, as is done in much of the draft.  The "optional" TCP
portions of
> the draft are mostly increased complexity for no added benefit. If a
device is
> capable of running TCP and the network it works on is capable of
supporting
> TCP, you should just open a connection to Port 80 and use HTTP (or the=20
> TCP port/protocol of your choice).  There are many protocols a host=20
> MAY
implement
> and it is not appropriate for the draft to enumerate them.
> >
> > Let's remove all of the sections related to TCP in the draft.
> >
> > tom
> >
>=20
> --
> Zach Shelby, Head of Research, 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


From fluffy@cisco.com  Wed May 12 07:46:55 2010
Return-Path: <fluffy@cisco.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 5C3D528C17E for <core@core3.amsl.com>; Wed, 12 May 2010 07:46:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -109.947
X-Spam-Level: 
X-Spam-Status: No, score=-109.947 tagged_above=-999 required=5 tests=[AWL=0.652, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8, 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 KWM--us5vyE6 for <core@core3.amsl.com>; Wed, 12 May 2010 07:46:54 -0700 (PDT)
Received: from sj-iport-2.cisco.com (sj-iport-2.cisco.com [171.71.176.71]) by core3.amsl.com (Postfix) with ESMTP id 6E13328C223 for <core@ietf.org>; Wed, 12 May 2010 07:31:15 -0700 (PDT)
Authentication-Results: sj-iport-2.cisco.com; dkim=neutral (message not signed) header.i=none
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AvsEAPtY6kurR7H+/2dsb2JhbACeLHGgcplugmGCMQSDQA
X-IronPort-AV: E=Sophos;i="4.53,215,1272844800"; d="scan'208";a="255413906"
Received: from sj-core-2.cisco.com ([171.71.177.254]) by sj-iport-2.cisco.com with ESMTP; 12 May 2010 14:31:05 +0000
Received: from [192.168.4.177] (rcdn-fluffy-8711.cisco.com [10.99.9.18]) by sj-core-2.cisco.com (8.13.8/8.14.3) with ESMTP id o4CEV4Ug026449; Wed, 12 May 2010 14:31:04 GMT
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: text/plain; charset=us-ascii
Impp: xmpp:cullenfluffyjennings@jabber.org
From: Cullen Jennings <fluffy@cisco.com>
In-Reply-To: <A61BB3A241E6E64D86C58237F6DC1A18025D5019@ALPMLVEM04.e2k.ad.ge.com>
Date: Wed, 12 May 2010 08:31:04 -0600
Content-Transfer-Encoding: quoted-printable
Message-Id: <97F2FD13-0024-422C-836E-DE2ED69BED84@cisco.com>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com><17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com> <F2FB4072-42D1-49F7-98F1-173AE1CD0856@tzi.org> <A61BB3A241E6E64D86C58237F6DC1A18025D5019@ALPMLVEM04.e2k.ad.ge.com>
To: "Simpson, Robby (GE Energy Services)" <robby.simpson@ge.com>
X-Mailer: Apple Mail (2.1078)
Cc: core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux
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, 12 May 2010 14:46:55 -0000

On May 11, 2010, at 3:41 PM, Simpson, Robby (GE Energy Services) wrote:

>=20
> For clarification, what are your metrics for "reinventing TCP"?


Excellent question.=20

The IETF has a pretty involved process for defining any new algorithms =
for transports. One of the reasons it is so involved is that people want =
to make sure that the new algorithm does not adversely impact existing =
transports.  Clearly this WG would be the wrong place to do any new =
algorithms.=20

That still allows us to use algorithms that have been done for other =
things here. (For example, the tftp algorithm got mentioned in an =
earlier thread.) We will want to coordinate closely with the transport =
ADs on whatever we do but I don't see problems with simple reliability, =
or some simple fragmentation based around existing technique - several =
other WGs have done that.  We pretty much have to use one of the =
existing approaches to congestion control.=20

I suspect that if we started talking about features to improve the =
transfer rate of data beyond the what simple algorithms give you, folks =
would start really wondering if it would be better to use TCP. I know =
that I would want to have a chat with the transport ADs before going =
down any path like that.

Cullen=20







Cullen Jennings
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html




From Colin.OFlynn@atmel.com  Wed May 12 08:34:35 2010
Return-Path: <Colin.OFlynn@atmel.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 9F61728C13C for <core@core3.amsl.com>; Wed, 12 May 2010 08:34:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.958
X-Spam-Level: 
X-Spam-Status: No, score=-0.958 tagged_above=-999 required=5 tests=[AWL=-0.774, BAYES_40=-0.185, HTML_MESSAGE=0.001]
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 EQZ7J3C3Z851 for <core@core3.amsl.com>; Wed, 12 May 2010 08:34:34 -0700 (PDT)
Received: from sjogate2.atmel.com (newsmtp5.atmel.com [204.2.163.5]) by core3.amsl.com (Postfix) with ESMTP id E98D228C238 for <core@ietf.org>; Wed, 12 May 2010 08:22:46 -0700 (PDT)
Received: from csomb01.corp.atmel.com ([10.95.30.150]) by sjogate2.atmel.com (8.13.6/8.13.6) with ESMTP id o4CFKJ6Q000122; Wed, 12 May 2010 08:20:20 -0700 (PDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01CAF1E6.E5B26894"
Date: Wed, 12 May 2010 09:22:13 -0600
Message-ID: <C6471264338047459F18230B4F871DA0098F0526@csomb01.corp.atmel.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [core] Core UDP vs TCP : Redux
Thread-Index: Acrx4fZLHeA+RHsQQ9ypGy3ZfVJqDwAA5qU2
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com><17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><F2FB4072-42D1-49F7-98F1-173AE1CD0856@tzi.org><A61BB3A241E6E64D86C58237F6DC1A18025D5019@ALPMLVEM04.e2k.ad.ge.com> <97F2FD13-0024-422C-836E-DE2ED69BED84@cisco.com>
From: "Oflynn, Colin" <Colin.OFlynn@atmel.com>
To: "Cullen Jennings" <fluffy@cisco.com>, "Simpson, Robby (GE Energy Services)" <robby.simpson@ge.com>
Cc: core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux
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, 12 May 2010 15:34:35 -0000

This is a multi-part message in MIME format.

------_=_NextPart_001_01CAF1E6.E5B26894
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hello,

For the record on TFTP (which I think such a style would be good for =
simple fragmentation):

In our testing, with a real 802.15.4 network in test code (read: not =
carefully optimized) we could get 5-7 Kbytes/sec with TFTP transferring =
large files. This is using standard 512-byte TFTP fragmentation size.

Regards,

  -Colin

-----Original Message-----
From: core-bounces@ietf.org on behalf of Cullen Jennings
Sent: Wed 12/05/2010 15:31
To: Simpson, Robby (GE Energy Services)
Cc: core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux
=20

On May 11, 2010, at 3:41 PM, Simpson, Robby (GE Energy Services) wrote:

>=20
> For clarification, what are your metrics for "reinventing TCP"?


Excellent question.=20

The IETF has a pretty involved process for defining any new algorithms =
for transports. One of the reasons it is so involved is that people want =
to make sure that the new algorithm does not adversely impact existing =
transports.  Clearly this WG would be the wrong place to do any new =
algorithms.=20

That still allows us to use algorithms that have been done for other =
things here. (For example, the tftp algorithm got mentioned in an =
earlier thread.) We will want to coordinate closely with the transport =
ADs on whatever we do but I don't see problems with simple reliability, =
or some simple fragmentation based around existing technique - several =
other WGs have done that.  We pretty much have to use one of the =
existing approaches to congestion control.=20

I suspect that if we started talking about features to improve the =
transfer rate of data beyond the what simple algorithms give you, folks =
would start really wondering if it would be better to use TCP. I know =
that I would want to have a chat with the transport ADs before going =
down any path like that.

Cullen=20







Cullen Jennings
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html



_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core


------_=_NextPart_001_01CAF1E6.E5B26894
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
6.5.7654.12">
<TITLE>RE: [core] Core UDP vs TCP : Redux</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=3D2>Hello,<BR>
<BR>
For the record on TFTP (which I think such a style would be good for =
simple fragmentation):<BR>
<BR>
In our testing, with a real 802.15.4 network in test code (read: not =
carefully optimized) we could get 5-7 Kbytes/sec with TFTP transferring =
large files. This is using standard 512-byte TFTP fragmentation =
size.<BR>
<BR>
Regards,<BR>
<BR>
&nbsp; -Colin<BR>
<BR>
-----Original Message-----<BR>
From: core-bounces@ietf.org on behalf of Cullen Jennings<BR>
Sent: Wed 12/05/2010 15:31<BR>
To: Simpson, Robby (GE Energy Services)<BR>
Cc: core@ietf.org<BR>
Subject: Re: [core] Core UDP vs TCP : Redux<BR>
<BR>
<BR>
On May 11, 2010, at 3:41 PM, Simpson, Robby (GE Energy Services) =
wrote:<BR>
<BR>
&gt;<BR>
&gt; For clarification, what are your metrics for &quot;reinventing =
TCP&quot;?<BR>
<BR>
<BR>
Excellent question.<BR>
<BR>
The IETF has a pretty involved process for defining any new algorithms =
for transports. One of the reasons it is so involved is that people want =
to make sure that the new algorithm does not adversely impact existing =
transports.&nbsp; Clearly this WG would be the wrong place to do any new =
algorithms.<BR>
<BR>
That still allows us to use algorithms that have been done for other =
things here. (For example, the tftp algorithm got mentioned in an =
earlier thread.) We will want to coordinate closely with the transport =
ADs on whatever we do but I don't see problems with simple reliability, =
or some simple fragmentation based around existing technique - several =
other WGs have done that.&nbsp; We pretty much have to use one of the =
existing approaches to congestion control.<BR>
<BR>
I suspect that if we started talking about features to improve the =
transfer rate of data beyond the what simple algorithms give you, folks =
would start really wondering if it would be better to use TCP. I know =
that I would want to have a chat with the transport ADs before going =
down any path like that.<BR>
<BR>
Cullen<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
Cullen Jennings<BR>
For corporate legal information go to:<BR>
<A =
HREF=3D"http://www.cisco.com/web/about/doing_business/legal/cri/index.htm=
l">http://www.cisco.com/web/about/doing_business/legal/cri/index.html</A>=
<BR>
<BR>
<BR>
<BR>
_______________________________________________<BR>
core mailing list<BR>
core@ietf.org<BR>
<A =
HREF=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</A><BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>
------_=_NextPart_001_01CAF1E6.E5B26894--

From robert.cragie@gridmerge.com  Wed May 12 14:46:28 2010
Return-Path: <robert.cragie@gridmerge.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 C95953A6956 for <core@core3.amsl.com>; Wed, 12 May 2010 14:46:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.998
X-Spam-Level: 
X-Spam-Status: No, score=-0.998 tagged_above=-999 required=5 tests=[BAYES_50=0.001, HTML_MESSAGE=0.001, 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 zK96YXzNLZb4 for <core@core3.amsl.com>; Wed, 12 May 2010 14:46:24 -0700 (PDT)
Received: from mail78.extendcp.co.uk (mail78.extendcp.co.uk [79.170.40.78]) by core3.amsl.com (Postfix) with ESMTP id E8C173A696D for <core@ietf.org>; Wed, 12 May 2010 14:46:20 -0700 (PDT)
Received: from [74.10.175.226] (helo=[192.168.108.191]) by mail78.extendcp.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.71) id 1OCJkm-0000b2-Nm for core@ietf.org; Wed, 12 May 2010 22:46:09 +0100
Message-ID: <4BEB219C.9010508@gridmerge.com>
Date: Wed, 12 May 2010 22:46:04 +0100
From: Robert Cragie <robert.cragie@gridmerge.com>
Organization: Gridmerge Ltd.
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.9) Gecko/20100317 Lightning/1.0b1 Thunderbird/3.0.4
MIME-Version: 1.0
To: core@ietf.org
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com><17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><9BB682AE-86C2-4054-8758-8E7C6AD10807@cs.columbia.edu>	<485AF6ECE8D1954D996771CC49E996FDC0FE2568@IT-EXMB-01.silverspringnet.com> <C6471264338047459F18230B4F871DA0098F0523@csomb01.corp.atmel.com>
In-Reply-To: <C6471264338047459F18230B4F871DA0098F0523@csomb01.corp.atmel.com>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="------------ms030403030000060803020301"
Subject: Re: [core] Core UDP vs TCP : Redux
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: robert.cragie@gridmerge.com
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, 12 May 2010 21:46:28 -0000

This is a cryptographically signed message in MIME format.

--------------ms030403030000060803020301
Content-Type: multipart/alternative;
 boundary="------------000706060007040406070508"

This is a multi-part message in MIME format.
--------------000706060007040406070508
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable

If we specify UDP only as transport, for delivery we need to consider=20
the following:

   1. UDP is adequate for the transport's client applications delivery as=
 is
   2. The transport's client applications provides delivery mechanisms
      appropriately according to their requirements
   3. Creating a shim layer above UDP for improving delivery and
      providing a homogeneous interface to client applications
   4. Creating a framework (SASL-like), separating the protocols and the
      mechanisms to promote reuse across applications.

(1) may be the case in very simple delivery where it doesn't really=20
matter if the odd packet gets lost, e.g. non-critical temperature=20
readings. This could allow for very simple transmit-only devices. (2)=20
would make sense but could mean implementing multiple similar but subtly =

different mechanisms multiple times in a device which serves different=20
applications. These may be pretty simple, including lock-step=20
transactions using 'short' packets, i.e. fitting into one UDP datagram.=20
(3) seems to be frowned upon and seems that it may be out of scope for=20
the WG, although would probably be more efficient on the basis that=20
there is a common set of requirements for reliable delivery. (4) could=20
work, providing a half-way between (2) and (3)

Back to (2), for example, DTLS implements its own reliability mechanism=20
- could this be reused by other applications?

I think the framework idea might be worth exploring further although I=20
am not entirely sure whether reliability mechanisms can be classified=20
appropriately with common interfaces in this way.

Robert

Robert Cragie (Pacific Gas & Electric)

Gridmerge Ltd.
89 Greenfield Crescent,
Wakefield, WF4 4WA, UK
+44 (0) 1924 910888
http://www.gridmerge.com <http://www.gridmerge.com/>


On 12/05/2010 2:13 AM, Oflynn, Colin wrote:
>
> Hello,
>
> >This works as long as you can guarantee that the response is < MTU.
>
> Which the current draft does. If we go the UDP route, I think we need=20
> to add support for larger packets through some simple fragmentation.
>
> You won't need such large packets often! So it doesn't have to be very =

> efficient, just every so often you need to transmit a large frame for=20
> a file load, encryption, etc.
>
> Regards,
>
>   -Colin
>
>
> -----Original Message-----
> From: core-bounces@ietf.org on behalf of Thomas Herbst
> Sent: Wed 12/05/2010 02:11
> To: Henning Schulzrinne; Zach Shelby
> Cc: core@ietf.org
> Subject: Re: [core] Core UDP vs TCP : Redux
>
> On TCP vs UDP - we need to pick one.  Deciding to use both UDP and TCP =

> is just not making a decision.
>
> You expect people who didn't include enough memory in their devices to =

> implement TCP to do both UDP and TCP?
>
> On security, is there a problem w/ DTLS?
>
> tom
>
> -----Original Message-----
> From: Henning Schulzrinne [mailto:hgs@cs.columbia.edu]
> Sent: Tuesday, May 11, 2010 3:02 PM
> To: Zach Shelby
> Cc: Thomas Herbst; core@ietf.org
> Subject: Re: [core] Core UDP vs TCP : Redux
>
> This works as long as you can guarantee that the response is < MTU.=20
> Doing your own fragmentation is a pain (you are then well on your way=20
> to re-inventing TCP) and relying on IP fragmentation is unlikely to=20
> work in "challenged" networks. Thus, these applicability limitations=20
> need to be spelled out very clearly. This also has security=20
> implications - obviously, TLS is out without TCP, but anything=20
> involving certificates is also likely to be difficult to carry.
>
> Henning
>
> On May 11, 2010, at 5:06 PM, Zach Shelby wrote:
>
> > +1
> >
> > Through writing a few revisions of these specs, I have also already=20
> found TCP to be really awkward. And the TCP negotiation discussions at =

> the mike in Anaheim made me even more skeptical. Tom is right, if you=20
> need TCP then just use HTTP ;-)
> >
> > Zach
> >
> > On May 11, 2010, at 18:49 , Thomas Herbst wrote:
> >
> >> After the discussion in Anaheim, I'm surprised that we need yet=20
> another revisit to UDP and TCP for CORE.
> >>
> >> The Right Solution(tm) might well be to fix TCP such that it=20
> doesn't lose its brains every time you drop a packet, and we could end =

> up with an end-to-end system where constrained devices might=20
> reasonably provide services to normal hosts in the regular Internet, =20
> However, transport work is out of scope for this WG.
> >>
> >> The second most right solution would be to implement CORE with a=20
> reliable UDP protocol, as is done in much of the draft.  The=20
> "optional" TCP portions of the draft are mostly increased complexity=20
> for no added benefit. If a device is capable of running TCP and the=20
> network it works on is capable of supporting TCP, you should just open =

> a connection to Port 80 and use HTTP (or the TCP port/protocol of your =

> choice).  There are many protocols a host MAY implement and it is not=20
> appropriate for the draft to enumerate them.
> >>
> >> Let's remove all of the sections related to TCP in the draft.
> >>
> >> tom
> >>
> >>
> >> _______________________________________________
> >> core mailing list
> >> core@ietf.org
> >> https://www.ietf.org/mailman/listinfo/core
> >
> > --
> > Zach Shelby, Head of Research, 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
> >
> > _______________________________________________
> > core mailing list
> > core@ietf.org
> > https://www.ietf.org/mailman/listinfo/core
> >
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>   =20

--------------000706060007040406070508
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content=3D"text/html; charset=3DISO-8859-1"
 http-equiv=3D"Content-Type">
</head>
<body bgcolor=3D"#ffffff" text=3D"#000000">
If we specify UDP only as transport, for delivery we need to consider
the following:<br>
<ol>
  <li>UDP is adequate for the transport's client applications delivery
as is</li>
  <li>The transport's client applications provides delivery mechanisms
appropriately according to their requirements<br>
  </li>
  <li>Creating a shim layer above UDP for improving delivery and
providing a homogeneous interface to client applications</li>
  <li>Creating a framework (SASL-like), separating the protocols and
the mechanisms to promote reuse across applications.<br>
  </li>
</ol>
(1) may be the case in very simple delivery where it doesn't really
matter if the odd packet gets lost, e.g. non-critical temperature
readings. This could allow for very simple transmit-only devices. (2)
would make sense but could mean implementing multiple similar but
subtly different mechanisms multiple times in a device which serves
different applications. These may be pretty simple, including lock-step
transactions using 'short' packets, i.e. fitting into one UDP datagram.
(3) seems to be frowned upon and seems that it
may be out of scope for the WG, although would probably be more
efficient on the basis that there is a common set of requirements for
reliable delivery. (4) could work, providing a half-way between (2) and
(3)<br>
<br>
Back to (2), for example, DTLS implements its own reliability mechanism
- could this be reused by other applications?<br>
<br>
I think the framework idea might be worth exploring further although I
am not entirely sure whether reliability mechanisms can be classified
appropriately with common interfaces in this way.<br>
<br>
Robert<br>
<div class=3D"moz-signature">
<style type=3D"text/css">
p
{
font-family:Verdana,Arial,sans-serif;
font-size:8pt;
}
=2Ename
{
font-size:12pt;
}
</style>
<p class=3D"name">Robert Cragie (Pacific Gas &amp; Electric)</p>
<p>Gridmerge Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 (0) 1924 910888<br>
<a href=3D"http://www.gridmerge.com/">http://www.gridmerge.com</a></p>
</div>
<br>
On 12/05/2010 2:13 AM, Oflynn, Colin wrote:
<blockquote
 cite=3D"mid:C6471264338047459F18230B4F871DA0098F0523@csomb01.corp.atmel.=
com"
 type=3D"cite">
  <meta http-equiv=3D"Content-Type"
 content=3D"text/html; charset=3DISO-8859-1">
  <meta name=3D"Generator"
 content=3D"MS Exchange Server version 6.5.7654.12">
  <title>RE: [core] Core UDP vs TCP : Redux</title>
<!-- Converted from text/plain format -->
  <p><font size=3D"2">Hello,<br>
  <br>
&gt;This works as long as you can guarantee that the response is &lt;
MTU.<br>
  <br>
Which the current draft does. If we go the UDP route, I think we need
to add support for larger packets through some simple fragmentation.<br>
  <br>
You won't need such large packets often! So it doesn't have to be very
efficient, just every so often you need to transmit a large frame for a
file load, encryption, etc.<br>
  <br>
Regards,<br>
  <br>
&nbsp; -Colin<br>
  <br>
  <br>
-----Original Message-----<br>
From: <a class=3D"moz-txt-link-abbreviated"
 href=3D"mailto:core-bounces@ietf.org">core-bounces@ietf.org</a> on
behalf of Thomas Herbst<br>
Sent: Wed 12/05/2010 02:11<br>
To: Henning Schulzrinne; Zach Shelby<br>
Cc: <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">c=
ore@ietf.org</a><br>
Subject: Re: [core] Core UDP vs TCP : Redux<br>
  <br>
On TCP vs UDP - we need to pick one.&nbsp; Deciding to use both UDP and T=
CP
is just not making a decision.&nbsp;<br>
  <br>
You expect people who didn't include enough memory in their devices to
implement TCP to do both UDP and TCP?<br>
  <br>
On security, is there a problem w/ DTLS?<br>
  <br>
tom<br>
  <br>
-----Original Message-----<br>
From: Henning Schulzrinne [<a moz-do-not-send=3D"true"
 href=3D"mailto:hgs@cs.columbia.edu">mailto:hgs@cs.columbia.edu</a>]<br>
Sent: Tuesday, May 11, 2010 3:02 PM<br>
To: Zach Shelby<br>
Cc: Thomas Herbst; <a class=3D"moz-txt-link-abbreviated"
 href=3D"mailto:core@ietf.org">core@ietf.org</a><br>
Subject: Re: [core] Core UDP vs TCP : Redux<br>
  <br>
This works as long as you can guarantee that the response is &lt; MTU.
Doing your own fragmentation is a pain (you are then well on your way
to re-inventing TCP) and relying on IP fragmentation is unlikely to
work in "challenged" networks. Thus, these applicability limitations
need to be spelled out very clearly. This also has security
implications - obviously, TLS is out without TCP, but anything
involving certificates is also likely to be difficult to carry.<br>
  <br>
Henning<br>
  <br>
On May 11, 2010, at 5:06 PM, Zach Shelby wrote:<br>
  <br>
&gt; +1<br>
&gt;<br>
&gt; Through writing a few revisions of these specs, I have also
already found TCP to be really awkward. And the TCP negotiation
discussions at the mike in Anaheim made me even more skeptical. Tom is
right, if you need TCP then just use HTTP ;-)<br>
&gt;<br>
&gt; Zach<br>
&gt;<br>
&gt; On May 11, 2010, at 18:49 , Thomas Herbst wrote:<br>
&gt;<br>
&gt;&gt; After the discussion in Anaheim, I'm surprised that we need
yet another revisit to UDP and TCP for CORE.<br>
&gt;&gt;<br>
&gt;&gt; The Right Solution(tm) might well be to fix TCP such that it
doesn't lose its brains every time you drop a packet, and we could end
up with an end-to-end system where constrained devices might reasonably
provide services to normal hosts in the regular Internet,&nbsp; However,
transport work is out of scope for this WG.<br>
&gt;&gt;<br>
&gt;&gt; The second most right solution would be to implement CORE with
a reliable UDP protocol, as is done in much of the draft.&nbsp; The
"optional" TCP portions of the draft are mostly increased complexity
for no added benefit. If a device is capable of running TCP and the
network it works on is capable of supporting TCP, you should just open
a connection to Port 80 and use HTTP (or the TCP port/protocol of your
choice).&nbsp; There are many protocols a host MAY implement and it is no=
t
appropriate for the draft to enumerate them.&nbsp;<br>
&gt;&gt;<br>
&gt;&gt; Let's remove all of the sections related to TCP in the draft.<br=
>
&gt;&gt;<br>
&gt;&gt; tom<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; core mailing list<br>
&gt;&gt; <a class=3D"moz-txt-link-abbreviated"
 href=3D"mailto:core@ietf.org">core@ietf.org</a><br>
&gt;&gt; <a moz-do-not-send=3D"true"
 href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org=
/mailman/listinfo/core</a><br>
&gt;<br>
&gt; --<br>
&gt; Zach Shelby, Head of Research, Sensinode Ltd.<br>
&gt; <a moz-do-not-send=3D"true" href=3D"http://zachshelby.org">http://za=
chshelby.org</a>&nbsp;
-
My blog "On the Internet of Things"<br>
&gt; <a moz-do-not-send=3D"true" href=3D"http://6lowpan.net">http://6lowp=
an.net</a>
- My book "6LoWPAN: The Wireless Embedded Internet"<br>
&gt; Mobile: +358 40 7796297<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; core mailing list<br>
&gt; <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">=
core@ietf.org</a><br>
&gt; <a moz-do-not-send=3D"true"
 href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org=
/mailman/listinfo/core</a><br>
&gt;<br>
  <br>
_______________________________________________<br>
core mailing list<br>
  <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">cor=
e@ietf.org</a><br>
  <a moz-do-not-send=3D"true"
 href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org=
/mailman/listinfo/core</a><br>
  <br>
  </font> </p>
  <pre wrap=3D""><fieldset class=3D"mimeAttachmentHeader"></fieldset>
_______________________________________________
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext"
 href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org=
/mailman/listinfo/core</a>
  </pre>
</blockquote>
</body>
</html>

--------------000706060007040406070508--

--------------ms030403030000060803020301
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIJKzCC
AvAwggJZoAMCAQICEHQVhhxGmCATv+IPne+OkB8wDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UE
BhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMT
I1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA5MDgyOTE2NTcwM1oX
DTEwMDgyOTE2NTcwM1owTTEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEqMCgG
CSqGSIb3DQEJARYbcm9iZXJ0LmNyYWdpZUBncmlkbWVyZ2UuY29tMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAtuQTYz8HUA37wa1PMyVnREeRwT3jtzGO6epyiCCaVeJkP76G
KdnNapg0jyuzDfRqSMW0n570toMF9FTpD34hDvtHcnMDboU7MSKFV2VyOOlTB3eHJfRn2Jtl
o9mSeW1qIIOwRReV6v50OxmijmeGFAn82Y1QrtyKDQxhl0HhEmY4jonziMyQ5gKlO5TM+CxY
hV0zXCLHfp9QjLG7bwZx6F0ChSHvRaf5ZlLKQSI2BGAx/GtP5l4ME7+kq4icmbV0g6m1AH9Y
LYYKV9rOx9SilPpTJdwn7GY/Qop4VSmdsaDBlXieBbjKqPN/CEqFmlxjjPFihorkeyC1T2R5
CqB41QIDAQABozgwNjAmBgNVHREEHzAdgRtyb2JlcnQuY3JhZ2llQGdyaWRtZXJnZS5jb20w
DAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQUFAAOBgQCTQ5bjbW8th9Yy/xbAgmc070Y/DLPR
RwOu51zamGFNffSpiPDJsLg4Bu9QZqhDylPm3AriHGp9MVL8Ei4h5krygmgHLE0mNYFsJt35
90wdK7z3dXtV/nOD0+rFR6Y9oUGf916rO0madex0KbosqrUuZ1NGVh/Q5/7H0mAEg+1EWzCC
AvAwggJZoAMCAQICEHQVhhxGmCATv+IPne+OkB8wDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UE
BhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMT
I1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA5MDgyOTE2NTcwM1oX
DTEwMDgyOTE2NTcwM1owTTEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEqMCgG
CSqGSIb3DQEJARYbcm9iZXJ0LmNyYWdpZUBncmlkbWVyZ2UuY29tMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAtuQTYz8HUA37wa1PMyVnREeRwT3jtzGO6epyiCCaVeJkP76G
KdnNapg0jyuzDfRqSMW0n570toMF9FTpD34hDvtHcnMDboU7MSKFV2VyOOlTB3eHJfRn2Jtl
o9mSeW1qIIOwRReV6v50OxmijmeGFAn82Y1QrtyKDQxhl0HhEmY4jonziMyQ5gKlO5TM+CxY
hV0zXCLHfp9QjLG7bwZx6F0ChSHvRaf5ZlLKQSI2BGAx/GtP5l4ME7+kq4icmbV0g6m1AH9Y
LYYKV9rOx9SilPpTJdwn7GY/Qop4VSmdsaDBlXieBbjKqPN/CEqFmlxjjPFihorkeyC1T2R5
CqB41QIDAQABozgwNjAmBgNVHREEHzAdgRtyb2JlcnQuY3JhZ2llQGdyaWRtZXJnZS5jb20w
DAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQUFAAOBgQCTQ5bjbW8th9Yy/xbAgmc070Y/DLPR
RwOu51zamGFNffSpiPDJsLg4Bu9QZqhDylPm3AriHGp9MVL8Ei4h5krygmgHLE0mNYFsJt35
90wdK7z3dXtV/nOD0+rFR6Y9oUGf916rO0madex0KbosqrUuZ1NGVh/Q5/7H0mAEg+1EWzCC
Az8wggKooAMCAQICAQ0wDQYJKoZIhvcNAQEFBQAwgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQI
EwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENv
bnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xJDAi
BgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVy
c29uYWwtZnJlZW1haWxAdGhhd3RlLmNvbTAeFw0wMzA3MTcwMDAwMDBaFw0xMzA3MTYyMzU5
NTlaMGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBM
dGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQTCBnzAN
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxKY8VXNV+065yplaHmjAdQRwnd/p/6Me7L3N9Vvy
Gna9fww6YfK/Uc4B1OVQCjDXAmNaLIkVcI7dyfArhVqqP3FWy688Cwfn8R+RNiQqE88r1fOC
dz0Dviv+uxg+B79AgAJk16emu59l0cUqVIUPSAR/p7bRPGEEQB5kGXJgt/sCAwEAAaOBlDCB
kTASBgNVHRMBAf8ECDAGAQH/AgEAMEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwudGhh
d3RlLmNvbS9UaGF3dGVQZXJzb25hbEZyZWVtYWlsQ0EuY3JsMAsGA1UdDwQEAwIBBjApBgNV
HREEIjAgpB4wHDEaMBgGA1UEAxMRUHJpdmF0ZUxhYmVsMi0xMzgwDQYJKoZIhvcNAQEFBQAD
gYEASIzRUIPqCy7MDaNmrGcPf6+svsIXoUOWlJ1/TCG4+DYfqi2fNi/A9BxQIJNwPP2t4WFi
w9k6GX6EsZkbAMUaC4J0niVQlGLH2ydxVyWN3amcOY6MIE9lX5Xa9/eH1sYITq726jTlEBpb
NU1341YheILcIRk13iSx0x1G/11fZU8xggNxMIIDbQIBATB2MGIxCzAJBgNVBAYTAlpBMSUw
IwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUg
UGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQQIQdBWGHEaYIBO/4g+d746QHzAJBgUrDgMC
GgUAoIIB0DAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xMDA1
MTIyMTQ2MDRaMCMGCSqGSIb3DQEJBDEWBBQVdiUh74szWKZUBsIfMSBpZ03o6DBfBgkqhkiG
9w0BCQ8xUjBQMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAOBggqhkiG9w0DAgICAIAwDQYI
KoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgwgYUGCSsGAQQBgjcQBDF4MHYw
YjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4x
LDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBAhB0FYYcRpgg
E7/iD53vjpAfMIGHBgsqhkiG9w0BCRACCzF4oHYwYjELMAkGA1UEBhMCWkExJTAjBgNVBAoT
HFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25h
bCBGcmVlbWFpbCBJc3N1aW5nIENBAhB0FYYcRpggE7/iD53vjpAfMA0GCSqGSIb3DQEBAQUA
BIIBALIsrqryLhpbEr0UVBHT96sxFxfMN7VUoknXoNkJuLE/iHmgoEmfH3vmuM/WqsxezoZo
C/CxQEie9Kv+fbxax64DgEXBvIVWIzgmBK77vL4aZCqby3Q0b85wfFfasI2WKZ3weG1Ieasp
fc1S6s38C/0MWAePGnijvfaBVleSh69LZ82NxOjKdM9donVPxg/HZmTK3ZvmG7d2U7icQFIg
W/hq7tnSvMMbCWSawvLi+/hGYJvkcRiPP+BD4UE+3Sf8yRMlgAmgkcKifB88agyk70Nn2WKK
tftGz+bzF8aaEi1yQq6PmlyqGxfg6DFw9YybMIJgHdfIUkPOcgETlR2ybokAAAAAAAA=
--------------ms030403030000060803020301--

From angelo.castellani@gmail.com  Thu May 13 04:29:42 2010
Return-Path: <angelo.castellani@gmail.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 39BC83A6CAB for <core@core3.amsl.com>; Thu, 13 May 2010 04:29:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.577
X-Spam-Level: 
X-Spam-Status: No, score=-0.577 tagged_above=-999 required=5 tests=[AWL=-1.200, BAYES_50=0.001, FM_FORGED_GMAIL=0.622]
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 sovXHRLfJKcz for <core@core3.amsl.com>; Thu, 13 May 2010 04:29:41 -0700 (PDT)
Received: from mail-gx0-f216.google.com (mail-gx0-f216.google.com [209.85.217.216]) by core3.amsl.com (Postfix) with ESMTP id 3FEB73A6CC2 for <core@ietf.org>; Thu, 13 May 2010 04:24:25 -0700 (PDT)
Received: by gxk8 with SMTP id 8so431050gxk.9 for <core@ietf.org>; Thu, 13 May 2010 04:24:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=5UCHvFshwMyXXjKZDTHbW8BJcLFyK9JhJdsDgR0bonE=; b=ok0sxmGATLqAT44vC77iJzCuLXAF5iadQAKu54s8Hgc8UvITGHZVMD8ZZuYG3YBkNA Vl1wNEdHeh3Yq2ESFN+WrEga3v0a7FEZMM9G4qA8flFObKRd1cjBYWXhdVMeDIaOyKuj 8R9g1DUwkMXDjo+UXGeArOMfajGA4b0FoIBN4=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=RC1f7qro9hwwofEDbR9QIvF55V/vO5Wf0pX5w15SgmFMEFp0Luh2eR2LAoc3iUnANL eHMy9P/1fkKdmhInHSfj54gUkFDtmeb7onANZsAQR5mculY65sBVPOjTovpmeYDDgzhb PVAvUiY5gSGyrcX9H2jT1DCS7ml07cTbSwMyI=
MIME-Version: 1.0
Received: by 10.90.213.7 with SMTP id l7mr242026agg.154.1273749852375; Thu, 13  May 2010 04:24:12 -0700 (PDT)
Sender: angelo.castellani@gmail.com
Received: by 10.90.26.2 with HTTP; Thu, 13 May 2010 04:24:12 -0700 (PDT)
In-Reply-To: <3BB5F67A-9E57-4F81-B7C5-ABB1E136DAAC@tzi.org>
References: <3BB5F67A-9E57-4F81-B7C5-ABB1E136DAAC@tzi.org>
Date: Thu, 13 May 2010 13:24:12 +0200
X-Google-Sender-Auth: ydGminNSozRepI2unCynNSAIZDo
Message-ID: <AANLkTimYZLQyvG3Xn9BXqjiiIxuqe-43c0fveOF-bNSm@mail.gmail.com>
From: "Angelo P. Castellani" <angelo@castellani.net>
To: Carsten Bormann <cabo@tzi.org>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: core <core@ietf.org>
Subject: Re: [core] Selecting a WG document for CoAP
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, 13 May 2010 11:29:42 -0000

Dear C. Bormann, all,

before deciding for the final direction, I've the following
observations about draft-shelby-core-coap-01

While I mostly share Zach's view of the protocol approach, and
appreciate many aspects of the proposal, there are in my opinion still
some open issues that need to be at least discussed before the current
document can be selected.

In particular, I would like to highlight the following:

a) As it is now, it is not possible to have a straightforward
translation of HTTP -> CoAP and viceversa: see
http://www.ietf.org/mail-archive/web/core/current/msg00133.html (this
impacts the scalability of the web service model too)

b) Moreover, CoAP's implementation is not as simple as it should be.
I've investigated the implementation and some design choices (as
Options) are leading to very high program complexity (ROM) on a
MSP430-based device.

c) Finally when comparing HTTP message size with CoAP message size,
the resulting compression isn't as good as you may expect.

Example:
HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
CoAP: 24 B with options parsing procedure requiring an added
implementation complexity

Addressing all these points potentially leads to major technical
modifications (especially point a) on the current draft, hence it is
appropriate in my opinion to discuss these points before making the
final decision.

Best regards,

Angelo P. Castellani


On Mon, May 10, 2010 at 18:51, Carsten Bormann <cabo@tzi.org> wrote:
> The CORE WG has a milestone to select a WG document for CoAP in April:
>
> http://datatracker.ietf.org/wg/core/charter/
> ...
> Apr 2010 =A0 =A0 =A0 =A0Select WG document for basis of the CoAP protocol
>
> Of the various documents that have been contributed, draft-shelby-core-co=
ap has significant discussion, as well as the largest number of updates (in=
cluding a previous version that was still called -6lowapp-coap).
>
> Today, another updated version of that draft was announced. =A0See
> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
> for the announcement and
> http://tools.ietf.org/html/draft-shelby-core-coap-01
> for the draft itself.
>
> However, as the authors say, there are still significant TODOs.
>
> Are we in a state yet where we can say whether this is the right directio=
n for the WG to take?
> If yes, is it the right direction? =A0Should we adopt it as a WG document=
?
> If you don't think we can say yet, is there a set of technical decisions =
you would like the authors to take with priority?
>
> Note that once a document has become a WG document, the authors act as ed=
itors for the working group, making (and usually fleshing out the details o=
f) any change that the WG decides it needs.
> If you think we can still improve the draft, this is not an obstacle to m=
aking it a WG document.
> But of course we shouldn't do that if we intend to reverse its fundamenta=
l technical direction.
>
> In order to stay roughly in sync with our milestones, we should reach at =
a decision on how to go forward this week.
>
> Gruesse, Carsten
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>

From pab@peoplepowerco.com  Thu May 13 07:35:42 2010
Return-Path: <pab@peoplepowerco.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 4255D3A6B39 for <core@core3.amsl.com>; Thu, 13 May 2010 07:35:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 4.123
X-Spam-Level: ****
X-Spam-Status: No, score=4.123 tagged_above=-999 required=5 tests=[BAYES_99=3.5, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001]
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 NoNe94RtsNcL for <core@core3.amsl.com>; Thu, 13 May 2010 07:35:41 -0700 (PDT)
Received: from mail-ew0-f216.google.com (mail-ew0-f216.google.com [209.85.219.216]) by core3.amsl.com (Postfix) with ESMTP id 5BB923A6B5B for <core@ietf.org>; Thu, 13 May 2010 07:35:39 -0700 (PDT)
Received: by ewy8 with SMTP id 8so550514ewy.28 for <core@ietf.org>; Thu, 13 May 2010 07:35:25 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.103.4.4 with SMTP id g4mr36840mui.80.1273761325120; Thu, 13  May 2010 07:35:25 -0700 (PDT)
Received: by 10.103.212.5 with HTTP; Thu, 13 May 2010 07:35:25 -0700 (PDT)
Date: Thu, 13 May 2010 09:35:25 -0500
Message-ID: <AANLkTinkPwS1mr-0PXi_gNcnDbSDBPWqdwpR0Fg8taO2@mail.gmail.com>
From: Peter Bigot <pab@peoplepowerco.com>
To: core@ietf.org
Content-Type: multipart/alternative; boundary=00163642651b4ffde804867aab4a
Subject: [core] Date option in draft-shelby-core-coap-01
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, 13 May 2010 14:35:42 -0000

--00163642651b4ffde804867aab4a
Content-Type: text/plain; charset=ISO-8859-1

Section 3.3.6 introduces a Date option that can be used to timestamp a
measurement.  The description specifies that leap seconds are excluded.
It's not crystal clear to me what "excluded" means in this situation.  I
don't see any discussion in the list archive.

Pretending leap seconds don't exist (one sense of exclude) makes sense as it
trivializes the translation between POSIX- time representations (seconds
since 1970-01-01T00:00:00Z) and UTC-aligned wall clock times that people
normally deal with: this becomes simple division and modulus operations with
a little hassle imposed by leap years.  On the other hand, the
representation can express times that do not exist (23:59:59 when a negative
leap second takes effect), and can be ambiguous (23:59:60 or a repeated
23:59:59 when a positive leap second takes effect).  More importantly,
simple subtraction of two event times does not necessarily result in the
duration of the event.

For an in-development system to which CoAP could apply, my recommendation
was to use times expressed as atomic seconds since the POSIX epoch (thereby
excluding leap second adjustments from the value).  This does mean that
translation to civil time requires knowledge of the number of leap seconds
in effect at that time (currently UTC is 24 seconds behind TAI relative to
the POSIX epoch).  In return, devices that maintain an internal clock used
to timestamp events do not need to be updated to take into account leap
second adjustments, which can take a fair amount of code and support
infrastructure to handle a very rare event.  It also trivializes calculation
of event durations, even when the duration spans application of a leap
second.

My feeling is that any software component that needs to translate between
between device time and civil time can be expected to account for leap
seconds, while those that are operating in a constrained environment would
best be isolated from their effects.  Note that GPS time is similarly
measured in atomic seconds since an epoch (1980-01-06T00:00:00Z).

So, do Date values in the proposed COAP match what you get from running
"date +%s" on a Linux system synchronized to UTC, or are they that value
plus 24?  I read the draft as specifying the latter, which is my preference,
but anticipate great confusion from people who haven't had to deal with leap
seconds before.

Recommend changing "number of seconds, excluding leap seconds, after" to
"number of (atomic) seconds since".

Peter

--00163642651b4ffde804867aab4a
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Section 3.3.6 introduces a Date option that can be used to timestamp a meas=
urement.=A0 The description specifies that leap seconds are excluded.=A0 It=
&#39;s not crystal clear to me what &quot;excluded&quot; means in this situ=
ation.=A0 I don&#39;t see any discussion in the list archive.<br>
<br>Pretending leap seconds don&#39;t exist (one sense of exclude) makes se=
nse as it trivializes the translation between POSIX- time representations (=
seconds since 1970-01-01T00:00:00Z) and UTC-aligned wall clock times that p=
eople normally deal with: this becomes simple division and modulus operatio=
ns with a little hassle imposed by leap years.=A0 On the other hand, the re=
presentation can express times that do not exist (23:59:59 when a negative =
leap second takes effect), and can be ambiguous (23:59:60 or a repeated 23:=
59:59 when a positive leap second takes effect).=A0 More importantly, simpl=
e subtraction of two event times does not necessarily result in the duratio=
n of the event.<br>
<br>For an in-development system to which CoAP could apply, my recommendati=
on was to use times expressed as atomic seconds since the POSIX epoch (ther=
eby excluding leap second adjustments from the value).=A0 This does mean th=
at translation to civil time requires knowledge of the number of leap secon=
ds in effect at that time (currently UTC is 24 seconds behind TAI relative =
to the POSIX epoch).=A0 In return, devices that maintain an internal clock =
used to timestamp events do not need to be updated to take into account lea=
p second adjustments, which can take a fair amount of code and support infr=
astructure to handle a very rare event.=A0 It also trivializes calculation =
of event durations, even when the duration spans application of a leap seco=
nd.<br>
<br>My feeling is that any software component that needs to translate betwe=
en between device time and civil time can be expected to account for leap s=
econds, while those that are operating in a constrained environment would b=
est be isolated from their effects.=A0 Note that GPS time is similarly meas=
ured in atomic seconds since an epoch (1980-01-06T00:00:00Z).<br>
<br>So, do Date values in the proposed COAP match what you get from running=
 &quot;date +%s&quot; on a Linux system synchronized to UTC, or are they th=
at value plus 24?=A0 I read the draft as specifying the latter, which is my=
 preference, but anticipate great confusion from people who haven&#39;t had=
 to deal with leap seconds before.<br>
<br>Recommend changing &quot;number of seconds, excluding leap seconds, aft=
er&quot; to &quot;number of (atomic) seconds since&quot;.<br><br>Peter<br><=
div style=3D"visibility: hidden; display: inline;" id=3D"avg_ls_inline_popu=
p">
</div><style type=3D"text/css">#avg_ls_inline_popup {  position:absolute;  =
z-index:9999;  padding: 0px 0px;  margin-left: 0px;  margin-top: 0px;  widt=
h: 240px;  overflow: hidden;  word-wrap: break-word;  color: black;  font-s=
ize: 10px;  text-align: left;  line-height: 13px;}</style>

--00163642651b4ffde804867aab4a--

From fluffy@cisco.com  Thu May 13 07:57:29 2010
Return-Path: <fluffy@cisco.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 09B0B3A6B39 for <core@core3.amsl.com>; Thu, 13 May 2010 07:57:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -108.709
X-Spam-Level: 
X-Spam-Status: No, score=-108.709 tagged_above=-999 required=5 tests=[AWL=-0.710, BAYES_50=0.001, RCVD_IN_DNSWL_HI=-8, 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 A2I0uBGXcWN1 for <core@core3.amsl.com>; Thu, 13 May 2010 07:57:27 -0700 (PDT)
Received: from sj-iport-4.cisco.com (sj-iport-4.cisco.com [171.68.10.86]) by core3.amsl.com (Postfix) with ESMTP id F16223A6B6C for <core@ietf.org>; Thu, 13 May 2010 07:57:21 -0700 (PDT)
Authentication-Results: sj-iport-4.cisco.com; dkim=neutral (message not signed) header.i=none
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AvsEABuw60urR7Hu/2dsb2JhbACeIXGjA5k1hRIEg0A
X-IronPort-AV: E=Sophos;i="4.53,223,1272844800"; d="scan'208";a="129262091"
Received: from sj-core-5.cisco.com ([171.71.177.238]) by sj-iport-4.cisco.com with ESMTP; 13 May 2010 14:57:12 +0000
Received: from [192.168.4.177] (rcdn-fluffy-8711.cisco.com [10.99.9.18]) by sj-core-5.cisco.com (8.13.8/8.14.3) with ESMTP id o4DEvBH3019265; Thu, 13 May 2010 14:57:11 GMT
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: text/plain; charset=us-ascii
Impp: xmpp:cullenfluffyjennings@jabber.org
From: Cullen Jennings <fluffy@cisco.com>
In-Reply-To: <AANLkTimYZLQyvG3Xn9BXqjiiIxuqe-43c0fveOF-bNSm@mail.gmail.com>
Date: Thu, 13 May 2010 08:57:09 -0600
Content-Transfer-Encoding: quoted-printable
Message-Id: <568AEFD6-974D-4790-A2F8-84305B990BA9@cisco.com>
References: <3BB5F67A-9E57-4F81-B7C5-ABB1E136DAAC@tzi.org> <AANLkTimYZLQyvG3Xn9BXqjiiIxuqe-43c0fveOF-bNSm@mail.gmail.com>
To: "Angelo P. Castellani" <angelo@castellani.net>
X-Mailer: Apple Mail (2.1078)
Cc: core <core@ietf.org>
Subject: Re: [core] Selecting a WG document for CoAP
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, 13 May 2010 14:57:29 -0000

Angelo,=20

I may be reading too much in between the lines here, but I think you are =
raising the overall design question of should we use some form of =
compressed HTTP, where we preserver the semantics of HTTP but encode it =
differently, or should we develop a protocol with a subset of the =
semantics of HTTP. Perhaps I have this all wrong and you are not raising =
that. Could you outline some proposed solutions to your a,b,c problems =
below and perhaps say a bit more about what the problem is. Once I =
understood a bit more about how you would propose to design the protocol =
to mitigate these problems, I think that would help everyone make =
informed choices.=20

Thanks, Cullen

Few more questions inline ....

On May 13, 2010, at 5:24 AM, Angelo P. Castellani wrote:

> Dear C. Bormann, all,
>=20
> before deciding for the final direction, I've the following
> observations about draft-shelby-core-coap-01
>=20
> While I mostly share Zach's view of the protocol approach, and
> appreciate many aspects of the proposal, there are in my opinion still
> some open issues that need to be at least discussed before the current
> document can be selected.
>=20
> In particular, I would like to highlight the following:
>=20
> a) As it is now, it is not possible to have a straightforward
> translation of HTTP -> CoAP and viceversa: see
> http://www.ietf.org/mail-archive/web/core/current/msg00133.html (this
> impacts the scalability of the web service model too)

On the topic of how to encode the URI. I think that needs discussion but =
could easily happen (and would happen) even if the COAP document was =
adopted as a WG item now.=20

>=20
> b) Moreover, CoAP's implementation is not as simple as it should be.
> I've investigated the implementation and some design choices (as
> Options) are leading to very high program complexity (ROM) on a
> MSP430-based device.

Can you say more - particularly about proposals to fix it?

>=20
> c) Finally when comparing HTTP message size with CoAP message size,
> the resulting compression isn't as good as you may expect.
>=20
> Example:
> HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
> CoAP: 24 B with options parsing procedure requiring an added
> implementation complexity
>=20
> Addressing all these points potentially leads to major technical
> modifications (especially point a) on the current draft, hence it is
> appropriate in my opinion to discuss these points before making the
> final decision.
>=20
> Best regards,
>=20
> Angelo P. Castellani
>=20
>=20
> On Mon, May 10, 2010 at 18:51, Carsten Bormann <cabo@tzi.org> wrote:
>> The CORE WG has a milestone to select a WG document for CoAP in =
April:
>>=20
>> http://datatracker.ietf.org/wg/core/charter/
>> ...
>> Apr 2010        Select WG document for basis of the CoAP protocol
>>=20
>> Of the various documents that have been contributed, =
draft-shelby-core-coap has significant discussion, as well as the =
largest number of updates (including a previous version that was still =
called -6lowapp-coap).
>>=20
>> Today, another updated version of that draft was announced.  See
>> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
>> for the announcement and
>> http://tools.ietf.org/html/draft-shelby-core-coap-01
>> for the draft itself.
>>=20
>> However, as the authors say, there are still significant TODOs.
>>=20
>> Are we in a state yet where we can say whether this is the right =
direction for the WG to take?
>> If yes, is it the right direction?  Should we adopt it as a WG =
document?
>> If you don't think we can say yet, is there a set of technical =
decisions you would like the authors to take with priority?
>>=20
>> Note that once a document has become a WG document, the authors act =
as editors for the working group, making (and usually fleshing out the =
details of) any change that the WG decides it needs.
>> If you think we can still improve the draft, this is not an obstacle =
to making it a WG document.
>> But of course we shouldn't do that if we intend to reverse its =
fundamental technical direction.
>>=20
>> In order to stay roughly in sync with our milestones, we should reach =
at a decision on how to go forward this week.
>>=20
>> Gruesse, Carsten
>>=20
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core


Cullen Jennings
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html




From Colin.OFlynn@atmel.com  Thu May 13 08:17:25 2010
Return-Path: <Colin.OFlynn@atmel.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 5D23F3A68B0 for <core@core3.amsl.com>; Thu, 13 May 2010 08:17:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.671
X-Spam-Level: 
X-Spam-Status: No, score=-0.671 tagged_above=-999 required=5 tests=[AWL=-0.673, BAYES_50=0.001, HTML_MESSAGE=0.001]
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 W96L-c8bAzCl for <core@core3.amsl.com>; Thu, 13 May 2010 08:17:23 -0700 (PDT)
Received: from sjogate2.atmel.com (newsmtp5.atmel.com [204.2.163.5]) by core3.amsl.com (Postfix) with ESMTP id D47003A693C for <core@ietf.org>; Thu, 13 May 2010 08:17:22 -0700 (PDT)
Received: from csomb01.corp.atmel.com ([10.95.30.150]) by sjogate2.atmel.com (8.13.6/8.13.6) with ESMTP id o4DFEuig007793 for <core@ietf.org>; Thu, 13 May 2010 08:15:03 -0700 (PDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01CAF2AF.50364A7C"
Date: Thu, 13 May 2010 09:16:51 -0600
Message-ID: <C6471264338047459F18230B4F871DA0098F0527@csomb01.corp.atmel.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [core] Core UDP vs TCP : Redux
Thread-Index: AcryHJYGoEUBgmo0Q6mhVkcXbPhtiwAkeOP9
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com><17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><9BB682AE-86C2-4054-8758-8E7C6AD10807@cs.columbia.edu>	<485AF6ECE8D1954D996771CC49E996FDC0FE2568@IT-EXMB-01.silverspringnet.com> <C6471264338047459F18230B4F871DA0098F0523@csomb01.corp.atmel.com> <4BEB219C.9010508@gridmerge.com>
From: "Oflynn, Colin" <Colin.OFlynn@atmel.com>
To: <robert.cragie@gridmerge.com>, <core@ietf.org>
Subject: Re: [core] Core UDP vs TCP : Redux
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, 13 May 2010 15:17:25 -0000

This is a multi-part message in MIME format.

------_=_NextPart_001_01CAF2AF.50364A7C
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hi Robert,

I think it makes sense to look at integrating such requirements into =
CoAP itself (or whatever higher level protocol is used). How TFTP for =
instance adds reliability & fragmentation onto UDP.

core-coap-01 does have an "acknowledgement" flag, which when sent with a =
request means it MUST generate a response. A simple fragmentation flag =
could be added perhaps to support larger messages.=20

Which would be a combination of 3 & 4 maybe? Although I've not thought =
about it very hard, so if I'm missing something obvious about why this =
won't work be sure to call me out on that ;-)

Regards,

   -Colin

-----Original Message-----
From: core-bounces@ietf.org on behalf of Robert Cragie
Sent: Wed 12/05/2010 22:46
To: core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux
=20
If we specify UDP only as transport, for delivery we need to consider=20
the following:

   1. UDP is adequate for the transport's client applications delivery =
as is
   2. The transport's client applications provides delivery mechanisms
      appropriately according to their requirements
   3. Creating a shim layer above UDP for improving delivery and
      providing a homogeneous interface to client applications
   4. Creating a framework (SASL-like), separating the protocols and the
      mechanisms to promote reuse across applications.

(1) may be the case in very simple delivery where it doesn't really=20
matter if the odd packet gets lost, e.g. non-critical temperature=20
readings. This could allow for very simple transmit-only devices. (2)=20
would make sense but could mean implementing multiple similar but subtly =

different mechanisms multiple times in a device which serves different=20
applications. These may be pretty simple, including lock-step=20
transactions using 'short' packets, i.e. fitting into one UDP datagram.=20
(3) seems to be frowned upon and seems that it may be out of scope for=20
the WG, although would probably be more efficient on the basis that=20
there is a common set of requirements for reliable delivery. (4) could=20
work, providing a half-way between (2) and (3)

Back to (2), for example, DTLS implements its own reliability mechanism=20
- could this be reused by other applications?

I think the framework idea might be worth exploring further although I=20
am not entirely sure whether reliability mechanisms can be classified=20
appropriately with common interfaces in this way.

Robert

Robert Cragie (Pacific Gas & Electric)

Gridmerge Ltd.
89 Greenfield Crescent,
Wakefield, WF4 4WA, UK
+44 (0) 1924 910888
http://www.gridmerge.com <http://www.gridmerge.com/>


On 12/05/2010 2:13 AM, Oflynn, Colin wrote:
>
> Hello,
>
> >This works as long as you can guarantee that the response is < MTU.
>
> Which the current draft does. If we go the UDP route, I think we need=20
> to add support for larger packets through some simple fragmentation.
>
> You won't need such large packets often! So it doesn't have to be very =

> efficient, just every so often you need to transmit a large frame for=20
> a file load, encryption, etc.
>
> Regards,
>
>   -Colin
>
>
> -----Original Message-----
> From: core-bounces@ietf.org on behalf of Thomas Herbst
> Sent: Wed 12/05/2010 02:11
> To: Henning Schulzrinne; Zach Shelby
> Cc: core@ietf.org
> Subject: Re: [core] Core UDP vs TCP : Redux
>
> On TCP vs UDP - we need to pick one.  Deciding to use both UDP and TCP =

> is just not making a decision.
>
> You expect people who didn't include enough memory in their devices to =

> implement TCP to do both UDP and TCP?
>
> On security, is there a problem w/ DTLS?
>
> tom
>
> -----Original Message-----
> From: Henning Schulzrinne [mailto:hgs@cs.columbia.edu]
> Sent: Tuesday, May 11, 2010 3:02 PM
> To: Zach Shelby
> Cc: Thomas Herbst; core@ietf.org
> Subject: Re: [core] Core UDP vs TCP : Redux
>
> This works as long as you can guarantee that the response is < MTU.=20
> Doing your own fragmentation is a pain (you are then well on your way=20
> to re-inventing TCP) and relying on IP fragmentation is unlikely to=20
> work in "challenged" networks. Thus, these applicability limitations=20
> need to be spelled out very clearly. This also has security=20
> implications - obviously, TLS is out without TCP, but anything=20
> involving certificates is also likely to be difficult to carry.
>
> Henning
>
> On May 11, 2010, at 5:06 PM, Zach Shelby wrote:
>
> > +1
> >
> > Through writing a few revisions of these specs, I have also already=20
> found TCP to be really awkward. And the TCP negotiation discussions at =

> the mike in Anaheim made me even more skeptical. Tom is right, if you=20
> need TCP then just use HTTP ;-)
> >
> > Zach
> >
> > On May 11, 2010, at 18:49 , Thomas Herbst wrote:
> >
> >> After the discussion in Anaheim, I'm surprised that we need yet=20
> another revisit to UDP and TCP for CORE.
> >>
> >> The Right Solution(tm) might well be to fix TCP such that it=20
> doesn't lose its brains every time you drop a packet, and we could end =

> up with an end-to-end system where constrained devices might=20
> reasonably provide services to normal hosts in the regular Internet, =20
> However, transport work is out of scope for this WG.
> >>
> >> The second most right solution would be to implement CORE with a=20
> reliable UDP protocol, as is done in much of the draft.  The=20
> "optional" TCP portions of the draft are mostly increased complexity=20
> for no added benefit. If a device is capable of running TCP and the=20
> network it works on is capable of supporting TCP, you should just open =

> a connection to Port 80 and use HTTP (or the TCP port/protocol of your =

> choice).  There are many protocols a host MAY implement and it is not=20
> appropriate for the draft to enumerate them.
> >>
> >> Let's remove all of the sections related to TCP in the draft.
> >>
> >> tom
> >>
> >>
> >> _______________________________________________
> >> core mailing list
> >> core@ietf.org
> >> https://www.ietf.org/mailman/listinfo/core
> >
> > --
> > Zach Shelby, Head of Research, 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
> >
> > _______________________________________________
> > core mailing list
> > core@ietf.org
> > https://www.ietf.org/mailman/listinfo/core
> >
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>   =20


------_=_NextPart_001_01CAF2AF.50364A7C
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
6.5.7654.12">
<TITLE>RE: [core] Core UDP vs TCP : Redux</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=3D2>Hi Robert,<BR>
<BR>
I think it makes sense to look at integrating such requirements into =
CoAP itself (or whatever higher level protocol is used). How TFTP for =
instance adds reliability &amp; fragmentation onto UDP.<BR>
<BR>
core-coap-01 does have an &quot;acknowledgement&quot; flag, which when =
sent with a request means it MUST generate a response. A simple =
fragmentation flag could be added perhaps to support larger =
messages.<BR>
<BR>
Which would be a combination of 3 &amp; 4 maybe? Although I've not =
thought about it very hard, so if I'm missing something obvious about =
why this won't work be sure to call me out on that ;-)<BR>
<BR>
Regards,<BR>
<BR>
&nbsp;&nbsp; -Colin<BR>
<BR>
-----Original Message-----<BR>
From: core-bounces@ietf.org on behalf of Robert Cragie<BR>
Sent: Wed 12/05/2010 22:46<BR>
To: core@ietf.org<BR>
Subject: Re: [core] Core UDP vs TCP : Redux<BR>
<BR>
If we specify UDP only as transport, for delivery we need to =
consider<BR>
the following:<BR>
<BR>
&nbsp;&nbsp; 1. UDP is adequate for the transport's client applications =
delivery as is<BR>
&nbsp;&nbsp; 2. The transport's client applications provides delivery =
mechanisms<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; appropriately according to their =
requirements<BR>
&nbsp;&nbsp; 3. Creating a shim layer above UDP for improving delivery =
and<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; providing a homogeneous interface to =
client applications<BR>
&nbsp;&nbsp; 4. Creating a framework (SASL-like), separating the =
protocols and the<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mechanisms to promote reuse across =
applications.<BR>
<BR>
(1) may be the case in very simple delivery where it doesn't really<BR>
matter if the odd packet gets lost, e.g. non-critical temperature<BR>
readings. This could allow for very simple transmit-only devices. =
(2)<BR>
would make sense but could mean implementing multiple similar but =
subtly<BR>
different mechanisms multiple times in a device which serves =
different<BR>
applications. These may be pretty simple, including lock-step<BR>
transactions using 'short' packets, i.e. fitting into one UDP =
datagram.<BR>
(3) seems to be frowned upon and seems that it may be out of scope =
for<BR>
the WG, although would probably be more efficient on the basis that<BR>
there is a common set of requirements for reliable delivery. (4) =
could<BR>
work, providing a half-way between (2) and (3)<BR>
<BR>
Back to (2), for example, DTLS implements its own reliability =
mechanism<BR>
- could this be reused by other applications?<BR>
<BR>
I think the framework idea might be worth exploring further although =
I<BR>
am not entirely sure whether reliability mechanisms can be =
classified<BR>
appropriately with common interfaces in this way.<BR>
<BR>
Robert<BR>
<BR>
Robert Cragie (Pacific Gas &amp; Electric)<BR>
<BR>
Gridmerge Ltd.<BR>
89 Greenfield Crescent,<BR>
Wakefield, WF4 4WA, UK<BR>
+44 (0) 1924 910888<BR>
<A HREF=3D"http://www.gridmerge.com">http://www.gridmerge.com</A> &lt;<A =
HREF=3D"http://www.gridmerge.com/">http://www.gridmerge.com/</A>&gt;<BR>
<BR>
<BR>
On 12/05/2010 2:13 AM, Oflynn, Colin wrote:<BR>
&gt;<BR>
&gt; Hello,<BR>
&gt;<BR>
&gt; &gt;This works as long as you can guarantee that the response is =
&lt; MTU.<BR>
&gt;<BR>
&gt; Which the current draft does. If we go the UDP route, I think we =
need<BR>
&gt; to add support for larger packets through some simple =
fragmentation.<BR>
&gt;<BR>
&gt; You won't need such large packets often! So it doesn't have to be =
very<BR>
&gt; efficient, just every so often you need to transmit a large frame =
for<BR>
&gt; a file load, encryption, etc.<BR>
&gt;<BR>
&gt; Regards,<BR>
&gt;<BR>
&gt;&nbsp;&nbsp; -Colin<BR>
&gt;<BR>
&gt;<BR>
&gt; -----Original Message-----<BR>
&gt; From: core-bounces@ietf.org on behalf of Thomas Herbst<BR>
&gt; Sent: Wed 12/05/2010 02:11<BR>
&gt; To: Henning Schulzrinne; Zach Shelby<BR>
&gt; Cc: core@ietf.org<BR>
&gt; Subject: Re: [core] Core UDP vs TCP : Redux<BR>
&gt;<BR>
&gt; On TCP vs UDP - we need to pick one.&nbsp; Deciding to use both UDP =
and TCP<BR>
&gt; is just not making a decision.<BR>
&gt;<BR>
&gt; You expect people who didn't include enough memory in their devices =
to<BR>
&gt; implement TCP to do both UDP and TCP?<BR>
&gt;<BR>
&gt; On security, is there a problem w/ DTLS?<BR>
&gt;<BR>
&gt; tom<BR>
&gt;<BR>
&gt; -----Original Message-----<BR>
&gt; From: Henning Schulzrinne [<A =
HREF=3D"mailto:hgs@cs.columbia.edu">mailto:hgs@cs.columbia.edu</A>]<BR>
&gt; Sent: Tuesday, May 11, 2010 3:02 PM<BR>
&gt; To: Zach Shelby<BR>
&gt; Cc: Thomas Herbst; core@ietf.org<BR>
&gt; Subject: Re: [core] Core UDP vs TCP : Redux<BR>
&gt;<BR>
&gt; This works as long as you can guarantee that the response is &lt; =
MTU.<BR>
&gt; Doing your own fragmentation is a pain (you are then well on your =
way<BR>
&gt; to re-inventing TCP) and relying on IP fragmentation is unlikely =
to<BR>
&gt; work in &quot;challenged&quot; networks. Thus, these applicability =
limitations<BR>
&gt; need to be spelled out very clearly. This also has security<BR>
&gt; implications - obviously, TLS is out without TCP, but anything<BR>
&gt; involving certificates is also likely to be difficult to carry.<BR>
&gt;<BR>
&gt; Henning<BR>
&gt;<BR>
&gt; On May 11, 2010, at 5:06 PM, Zach Shelby wrote:<BR>
&gt;<BR>
&gt; &gt; +1<BR>
&gt; &gt;<BR>
&gt; &gt; Through writing a few revisions of these specs, I have also =
already<BR>
&gt; found TCP to be really awkward. And the TCP negotiation discussions =
at<BR>
&gt; the mike in Anaheim made me even more skeptical. Tom is right, if =
you<BR>
&gt; need TCP then just use HTTP ;-)<BR>
&gt; &gt;<BR>
&gt; &gt; Zach<BR>
&gt; &gt;<BR>
&gt; &gt; On May 11, 2010, at 18:49 , Thomas Herbst wrote:<BR>
&gt; &gt;<BR>
&gt; &gt;&gt; After the discussion in Anaheim, I'm surprised that we =
need yet<BR>
&gt; another revisit to UDP and TCP for CORE.<BR>
&gt; &gt;&gt;<BR>
&gt; &gt;&gt; The Right Solution(tm) might well be to fix TCP such that =
it<BR>
&gt; doesn't lose its brains every time you drop a packet, and we could =
end<BR>
&gt; up with an end-to-end system where constrained devices might<BR>
&gt; reasonably provide services to normal hosts in the regular =
Internet,&nbsp;<BR>
&gt; However, transport work is out of scope for this WG.<BR>
&gt; &gt;&gt;<BR>
&gt; &gt;&gt; The second most right solution would be to implement CORE =
with a<BR>
&gt; reliable UDP protocol, as is done in much of the draft.&nbsp; =
The<BR>
&gt; &quot;optional&quot; TCP portions of the draft are mostly increased =
complexity<BR>
&gt; for no added benefit. If a device is capable of running TCP and =
the<BR>
&gt; network it works on is capable of supporting TCP, you should just =
open<BR>
&gt; a connection to Port 80 and use HTTP (or the TCP port/protocol of =
your<BR>
&gt; choice).&nbsp; There are many protocols a host MAY implement and it =
is not<BR>
&gt; appropriate for the draft to enumerate them.<BR>
&gt; &gt;&gt;<BR>
&gt; &gt;&gt; Let's remove all of the sections related to TCP in the =
draft.<BR>
&gt; &gt;&gt;<BR>
&gt; &gt;&gt; tom<BR>
&gt; &gt;&gt;<BR>
&gt; &gt;&gt;<BR>
&gt; &gt;&gt; _______________________________________________<BR>
&gt; &gt;&gt; core mailing list<BR>
&gt; &gt;&gt; core@ietf.org<BR>
&gt; &gt;&gt; <A =
HREF=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</A><BR>
&gt; &gt;<BR>
&gt; &gt; --<BR>
&gt; &gt; Zach Shelby, Head of Research, Sensinode Ltd.<BR>
&gt; &gt; <A =
HREF=3D"http://zachshelby.org">http://zachshelby.org</A>&nbsp; - My blog =
&quot;On the Internet of Things&quot;<BR>
&gt; &gt; <A HREF=3D"http://6lowpan.net">http://6lowpan.net</A> - My =
book &quot;6LoWPAN: The Wireless Embedded Internet&quot;<BR>
&gt; &gt; Mobile: +358 40 7796297<BR>
&gt; &gt;<BR>
&gt; &gt; _______________________________________________<BR>
&gt; &gt; core mailing list<BR>
&gt; &gt; core@ietf.org<BR>
&gt; &gt; <A =
HREF=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</A><BR>
&gt; &gt;<BR>
&gt;<BR>
&gt; _______________________________________________<BR>
&gt; core mailing list<BR>
&gt; core@ietf.org<BR>
&gt; <A =
HREF=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</A><BR>
&gt;<BR>
&gt;<BR>
&gt; _______________________________________________<BR>
&gt; core mailing list<BR>
&gt; core@ietf.org<BR>
&gt; <A =
HREF=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</A><BR>
&gt;&nbsp;&nbsp;&nbsp;<BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>
------_=_NextPart_001_01CAF2AF.50364A7C--

From angelo.castellani@gmail.com  Fri May 14 01:50:37 2010
Return-Path: <angelo.castellani@gmail.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 059FC28C0EA for <core@core3.amsl.com>; Fri, 14 May 2010 01:50:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.277
X-Spam-Level: 
X-Spam-Status: No, score=-0.277 tagged_above=-999 required=5 tests=[AWL=-0.900, BAYES_50=0.001, FM_FORGED_GMAIL=0.622]
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 iuB2oeR4rHOf for <core@core3.amsl.com>; Fri, 14 May 2010 01:50:35 -0700 (PDT)
Received: from mail-yw0-f173.google.com (mail-yw0-f173.google.com [209.85.211.173]) by core3.amsl.com (Postfix) with ESMTP id 2BE9F3A6A8B for <core@ietf.org>; Fri, 14 May 2010 01:50:35 -0700 (PDT)
Received: by ywh3 with SMTP id 3so1244135ywh.31 for <core@ietf.org>; Fri, 14 May 2010 01:50:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=LDGU3YYfuaD15VbqcUl6+aFDHuHi9O2ZKyDCmiwYhHU=; b=UwGswV6WtS0B7PmSFELsysqQZWP0hbY2ifkHbfCuBPYfuBQZALufaanxAOrmRpDbEB syRy7XTus9Vcsimd7Mg/8FEHPF5bfcjLEEFd1WbOh77JmWRkZ5hWG1QiebDweNTt7Zuq xix0EimlT+03fv1ELhjEvfCPQOWwdcbTTPcnE=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=JUSaI1fvyX6lLapJmRKLsJ4oFsEzTz2kW3QoT6Pv+K4B1oe2Wx1uCn4WBR76oIbV0/ NJdR3smLzP1Y7YN92EDRqI0G+H8LziP0bW2/dlPZW8TbiHgLsxH34GNMSzEdJOu/KqeI XWRuZTWj8EmX7tAGxkIubxHaWltExc+3oG5AU=
MIME-Version: 1.0
Received: by 10.91.7.2 with SMTP id k2mr728325agi.108.1273827022170; Fri, 14  May 2010 01:50:22 -0700 (PDT)
Sender: angelo.castellani@gmail.com
Received: by 10.90.26.2 with HTTP; Fri, 14 May 2010 01:50:22 -0700 (PDT)
In-Reply-To: <568AEFD6-974D-4790-A2F8-84305B990BA9@cisco.com>
References: <3BB5F67A-9E57-4F81-B7C5-ABB1E136DAAC@tzi.org> <AANLkTimYZLQyvG3Xn9BXqjiiIxuqe-43c0fveOF-bNSm@mail.gmail.com> <568AEFD6-974D-4790-A2F8-84305B990BA9@cisco.com>
Date: Fri, 14 May 2010 10:50:22 +0200
X-Google-Sender-Auth: d_oJi9KNU3oo4_estnOE-3sO27s
Message-ID: <AANLkTimzwXnCZZFBGNkL4I9UqzUMC-cW6XwewRR8Fl1Y@mail.gmail.com>
From: "Angelo P. Castellani" <angelo@castellani.net>
To: Cullen Jennings <fluffy@cisco.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: core <core@ietf.org>
Subject: Re: [core] Selecting a WG document for CoAP
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, 14 May 2010 08:50:37 -0000

Cullen,

thanks for the excellent understanding of my doubts.

Point (a) is exactly about the very initial design approach to define
a new realization of REST (e.g.: CRUD methods were defined instead of
standard HTTP methods) instead of a feature-limited adaptation of HTTP
itself to constrained host/network environments.

There was even discussion on defining mapping of various protocols to
CoAP without clear focus on HTTP translation.

Doubts were raised that CoAP may be following the "reinvent HTTP"
road, killing itself just as WAP did. Discussion on URI-Code/BinaryURI
(as detailed in the Transparent proxying CoAP mail) is just the tip of
the iceberg.

Draft -01 has made some valid enhancements on this topic (see HTTP
methods), however the whole document subtly imply this design
objective throughout.

In my humble opinion the direction that can be followed is: If
HTTP/TCP is not viable on CoRE, we should find a way to adapt it to
this environment.

These days I was reading the R. Fielding PhD dissertation to fully
understand why HTTP was designed in that way and what are the
important principles to be preserved in a feature-limited compressed
adaptation.

Design philosophy: CoAP should be a *stateless* HTTP-translation and
we should start by understanding how we can compress HTTP preserving
its core principles to be *stateless*, providing an *uniform*
interface to access *diverse* content organized in a *hierarchical*
fashion, it should be easily *cacheable* and *translatable*.

Being pratical:
-* uniformity leads to only request and response (no notify, no other
message types, REST should be only REQ/RES)

-* hierarchy leads to URI and BinaryURI as in the transparent proxying
discussion (no flat codes like URI-Code)

-* stateless, translation, cacheability lead to URI->BinaryURI as a
stateless mapping (avoid stateful tables)

-* stateless and diversity suggest that content should be always fully
described Content-Lenght (req), Content-Type (req) and
Content-Enconding should be supported

-* cacheable flag should be included always (not an option)

-* stateless server and stateful resources? cookies are required (lets
use binary cookies)


Other considerations, important in my opinion, on the realization of
the protocol (more technical here):

-* translation and compression should focus on the URI

=A0 a) It should be always present and not an option

=A0 b) Using a flag we should understand whether we are using URI or the
lossy BinaryURI encoding

=A0 c) URI is ASCII-7 and is usually formed by chars, numbers and a few
others? I propose to investigate compressed loss-less encodings. Now I
can think at least two different encodings:
=A0 =A0 =A0 i) Represent the / (supposed to be most frequent char in URI)
using the left-most unused bit in the octet
=A0 =A0 =A0 ii) Represent most frequent chars (regex format: [0-9a-zA-Z/])
using 6 bit encoding, use a NULL (\x00) octet to signal that an
uncompressed char is following. Every 3 compressed chars we have 6
unused bits that can map another char (0.75 ratio in the best case,
other cases to be evaluated).
        Maybe some predefined vocabularies can be agreed, and the used
vocabulary chosen in a preceding field (vocabulary 2 example:
[a-zA-Z%+._/\|=3D&?-])


-* option translation issues (addressing complex implementation),
general rule avoid variable length options (harder to handle):

=A0a) Messages with Payload should always carry Content-Length and
Content-Type before the payload

=A0b) Define which are the well-known request and response options we
want to support, without merging them (it seems not a good choice
because many are response specific only, and many other request
specific only).
=A0 =A0 =A0Well-known options present in the message should be represented
in a binary bitmask (like in 6LoWPAN HC) and carried in-line
(fixed-length is an important requirement, however variable length can
be handled if cannot be avoided)
     When similar options are available may be beneficial to prefer
the simplest and easiest to compress (fixed-length).
     Example: Last-Modified should be preferred to Etag, (1) it can be
represented as an unsigned integer, (2) with a binary flag
representing "Now" its insertion can be delegated to the HTTP
translating entity, (3) supports conditional GET.

=A0c) Other options compressed with the URI style encoding (better
vocabulary here is [a-zA-Z%+._/\|=3D&?-])


I'm quite confident that the final compression ratio is good and, if
properly investigated, it should retain the ability to do CoAP->HTTP
translation too (Host option required).

Moreover using CoAP realized like this leads to an easier
straightforward C implementation, mainly thanks to many specific
details especially bitmasks, fixed-length options, bitwise operations.

I hope I was able to give an idea of my thinking on these issues. A
more exhaustive and detailed list of the issues is not easy to provide
by e-mail, but I will be happy to draft a document with more details
if this is considered as an useful contribution to this discussion.

Best,
Angelo

On Thu, May 13, 2010 at 16:57, Cullen Jennings <fluffy@cisco.com> wrote:
>
> Angelo,
>
> I may be reading too much in between the lines here, but I think you are =
raising the overall design question of should we use some form of compresse=
d HTTP, where we preserver the semantics of HTTP but encode it differently,=
 or should we develop a protocol with a subset of the semantics of HTTP. Pe=
rhaps I have this all wrong and you are not raising that. Could you outline=
 some proposed solutions to your a,b,c problems below and perhaps say a bit=
 more about what the problem is. Once I understood a bit more about how you=
 would propose to design the protocol to mitigate these problems, I think t=
hat would help everyone make informed choices.
>
> Thanks, Cullen
>
> Few more questions inline ....
>
> On May 13, 2010, at 5:24 AM, Angelo P. Castellani wrote:
>
>> Dear C. Bormann, all,
>>
>> before deciding for the final direction, I've the following
>> observations about draft-shelby-core-coap-01
>>
>> While I mostly share Zach's view of the protocol approach, and
>> appreciate many aspects of the proposal, there are in my opinion still
>> some open issues that need to be at least discussed before the current
>> document can be selected.
>>
>> In particular, I would like to highlight the following:
>>
>> a) As it is now, it is not possible to have a straightforward
>> translation of HTTP -> CoAP and viceversa: see
>> http://www.ietf.org/mail-archive/web/core/current/msg00133.html (this
>> impacts the scalability of the web service model too)
>
> On the topic of how to encode the URI. I think that needs discussion but =
could easily happen (and would happen) even if the COAP document was adopte=
d as a WG item now.
>
>>
>> b) Moreover, CoAP's implementation is not as simple as it should be.
>> I've investigated the implementation and some design choices (as
>> Options) are leading to very high program complexity (ROM) on a
>> MSP430-based device.
>
> Can you say more - particularly about proposals to fix it?
>
>>
>> c) Finally when comparing HTTP message size with CoAP message size,
>> the resulting compression isn't as good as you may expect.
>>
>> Example:
>> HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
>> CoAP: 24 B with options parsing procedure requiring an added
>> implementation complexity
>>
>> Addressing all these points potentially leads to major technical
>> modifications (especially point a) on the current draft, hence it is
>> appropriate in my opinion to discuss these points before making the
>> final decision.
>>
>> Best regards,
>>
>> Angelo P. Castellani
>>
>>
>> On Mon, May 10, 2010 at 18:51, Carsten Bormann <cabo@tzi.org> wrote:
>>> The CORE WG has a milestone to select a WG document for CoAP in April:
>>>
>>> http://datatracker.ietf.org/wg/core/charter/
>>> ...
>>> Apr 2010 =A0 =A0 =A0 =A0Select WG document for basis of the CoAP protoc=
ol
>>>
>>> Of the various documents that have been contributed, draft-shelby-core-=
coap has significant discussion, as well as the largest number of updates (=
including a previous version that was still called -6lowapp-coap).
>>>
>>> Today, another updated version of that draft was announced. =A0See
>>> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
>>> for the announcement and
>>> http://tools.ietf.org/html/draft-shelby-core-coap-01
>>> for the draft itself.
>>>
>>> However, as the authors say, there are still significant TODOs.
>>>
>>> Are we in a state yet where we can say whether this is the right direct=
ion for the WG to take?
>>> If yes, is it the right direction? =A0Should we adopt it as a WG docume=
nt?
>>> If you don't think we can say yet, is there a set of technical decision=
s you would like the authors to take with priority?
>>>
>>> Note that once a document has become a WG document, the authors act as =
editors for the working group, making (and usually fleshing out the details=
 of) any change that the WG decides it needs.
>>> If you think we can still improve the draft, this is not an obstacle to=
 making it a WG document.
>>> But of course we shouldn't do that if we intend to reverse its fundamen=
tal technical direction.
>>>
>>> In order to stay roughly in sync with our milestones, we should reach a=
t a decision on how to go forward this week.
>>>
>>> Gruesse, Carsten
>>>
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>
>
> Cullen Jennings
> For corporate legal information go to:
> http://www.cisco.com/web/about/doing_business/legal/cri/index.html
>
>
>
>

From zach@sensinode.com  Fri May 14 04:06:24 2010
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 E93D128C0DC for <core@core3.amsl.com>; Fri, 14 May 2010 04:06:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.277
X-Spam-Level: 
X-Spam-Status: No, score=-0.277 tagged_above=-999 required=5 tests=[AWL=-1.578, BAYES_50=0.001, MANGLED_TOOL=2.3, 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 hX5oXGVz3iWz for <core@core3.amsl.com>; Fri, 14 May 2010 04:06:22 -0700 (PDT)
Received: from auth-smtp.nebula.fi (auth-smtp.nebula.fi [217.30.180.105]) by core3.amsl.com (Postfix) with ESMTP id 7BCF33A6AEB for <core@ietf.org>; Fri, 14 May 2010 04:06:13 -0700 (PDT)
Received: from [192.168.1.2] (line-4979.dyn.kponet.fi [85.29.65.197]) (authenticated bits=0) by auth-smtp.nebula.fi (8.13.4/8.13.4) with ESMTP id o4EB5w18015402 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Fri, 14 May 2010 14:05:59 +0300
Mime-Version: 1.0 (Apple Message framework v1077)
Content-Type: text/plain; charset=us-ascii
From: Zach Shelby <zach@sensinode.com>
In-Reply-To: <AANLkTimYZLQyvG3Xn9BXqjiiIxuqe-43c0fveOF-bNSm@mail.gmail.com>
Date: Fri, 14 May 2010 14:06:11 +0300
Content-Transfer-Encoding: quoted-printable
Message-Id: <1EFE7D38-0894-4557-84F9-5553E5EF6A04@sensinode.com>
References: <3BB5F67A-9E57-4F81-B7C5-ABB1E136DAAC@tzi.org> <AANLkTimYZLQyvG3Xn9BXqjiiIxuqe-43c0fveOF-bNSm@mail.gmail.com>
To: "Angelo P. Castellani" <angelo@castellani.net>
X-Mailer: Apple Mail (2.1077)
Cc: core <core@ietf.org>
Subject: Re: [core] Selecting a WG document for CoAP
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, 14 May 2010 11:06:24 -0000

Hi Angelo,

On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:

> Dear C. Bormann, all,
>=20
> before deciding for the final direction, I've the following
> observations about draft-shelby-core-coap-01
>=20
> While I mostly share Zach's view of the protocol approach, and
> appreciate many aspects of the proposal, there are in my opinion still
> some open issues that need to be at least discussed before the current
> document can be selected.

Of course there are plenty of open issues. Remember that working group =
documents still undertake as much change and improvement as the WG =
wants, so by no means is coap-01 set in stone. I would expect at least =
5-10 more revisions still along the way.  Already several of your ideas =
have been integrated into coap-01, and several more are under =
consideration, so it is coming along. Patience ;-)=20

>=20
> In particular, I would like to highlight the following:
>=20
> a) As it is now, it is not possible to have a straightforward
> translation of HTTP -> CoAP and viceversa: see
> http://www.ietf.org/mail-archive/web/core/current/msg00133.html (this
> impacts the scalability of the web service model too)

In coap-01 the Method names are now identical to HTTP methods. The =
Req/Res interaction is a direct translation. The URI hierarchy is =
compatible, and the URI binary code format we are still working on =
obviously. The only thing that takes some state to translate is =
Subscribe/Notify. But note, Subscribe/Notify takes some state no matter =
how you do it, even with HTTP-HTTP there is no clean and easy way to =
handle subscriptions. =20

>=20
> b) Moreover, CoAP's implementation is not as simple as it should be.
> I've investigated the implementation and some design choices (as
> Options) are leading to very high program complexity (ROM) on a
> MSP430-based device.

This we can definitely improve, and already made several optimizations =
from -00 to -01. Here I need some very concrete proposals though. Also =
remember that many things are optional, for example subscribe/notify is =
not required if you don't need it.=20

> c) Finally when comparing HTTP message size with CoAP message size,
> the resulting compression isn't as good as you may expect.
>=20
> Example:
> HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
> CoAP: 24 B with options parsing procedure requiring an added
> implementation complexity

Right, that is not how it will work in practice. Working with a real =
HTTP server that HTTP header will be more complex, and on the CoAP side =
you would chose shorter URLs. The biggest improvement possible here is =
from using binary coded URLs of course. We need to look at a wider range =
of interactions and real HTTP headers as well to check that we are =
efficient enough. =20

> Addressing all these points potentially leads to major technical
> modifications (especially point a) on the current draft, hence it is
> appropriate in my opinion to discuss these points before making the
> final decision.

I am not sure what else you have in mind for a). If we just forget about =
Subscribe/Notify then you are good to go. But then you are also not =
fulfilling the charter or the industry needs in that respect.=20

Thanks,
Zach

>=20
> Best regards,
>=20
> Angelo P. Castellani
>=20
>=20
> On Mon, May 10, 2010 at 18:51, Carsten Bormann <cabo@tzi.org> wrote:
>> The CORE WG has a milestone to select a WG document for CoAP in =
April:
>>=20
>> http://datatracker.ietf.org/wg/core/charter/
>> ...
>> Apr 2010        Select WG document for basis of the CoAP protocol
>>=20
>> Of the various documents that have been contributed, =
draft-shelby-core-coap has significant discussion, as well as the =
largest number of updates (including a previous version that was still =
called -6lowapp-coap).
>>=20
>> Today, another updated version of that draft was announced.  See
>> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
>> for the announcement and
>> http://tools.ietf.org/html/draft-shelby-core-coap-01
>> for the draft itself.
>>=20
>> However, as the authors say, there are still significant TODOs.
>>=20
>> Are we in a state yet where we can say whether this is the right =
direction for the WG to take?
>> If yes, is it the right direction?  Should we adopt it as a WG =
document?
>> If you don't think we can say yet, is there a set of technical =
decisions you would like the authors to take with priority?
>>=20
>> Note that once a document has become a WG document, the authors act =
as editors for the working group, making (and usually fleshing out the =
details of) any change that the WG decides it needs.
>> If you think we can still improve the draft, this is not an obstacle =
to making it a WG document.
>> But of course we shouldn't do that if we intend to reverse its =
fundamental technical direction.
>>=20
>> In order to stay roughly in sync with our milestones, we should reach =
at a decision on how to go forward this week.
>>=20
>> Gruesse, Carsten
>>=20
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core

--=20
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


From angelo.castellani@gmail.com  Fri May 14 05:15:34 2010
Return-Path: <angelo.castellani@gmail.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 29C3C3A6AC4 for <core@core3.amsl.com>; Fri, 14 May 2010 05:15:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.053
X-Spam-Level: *
X-Spam-Status: No, score=1.053 tagged_above=-999 required=5 tests=[AWL=-1.870,  BAYES_50=0.001, FM_FORGED_GMAIL=0.622, MANGLED_TOOL=2.3]
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 S4nUG6PIzMJ9 for <core@core3.amsl.com>; Fri, 14 May 2010 05:15:32 -0700 (PDT)
Received: from mail-yx0-f182.google.com (mail-yx0-f182.google.com [209.85.210.182]) by core3.amsl.com (Postfix) with ESMTP id B87693A6ACE for <core@ietf.org>; Fri, 14 May 2010 05:14:41 -0700 (PDT)
Received: by yxe12 with SMTP id 12so1086287yxe.32 for <core@ietf.org>; Fri, 14 May 2010 05:14:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:sender:received :in-reply-to:references:from:date:x-google-sender-auth:message-id :subject:to:cc:content-type:content-transfer-encoding; bh=Xu4eySzAsmZnjgG0tLwCQTvf+ezVuUgedifUDv/mne0=; b=KIKdP5eEhutVG551j0WvDgwode/kSdYr5BQkxEFOy2hojKFB7mQdHnW83fIFBCYX/Y Dide1d6LHoD2TfXPUPNZdo+HTVEzG3kQbhjUmTgAappQmtE3fgzQeKz3uoMDRcNyUnwu NP4PadzsYXaOXwb/eaCe1zkt38+QcdAPueKhM=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type :content-transfer-encoding; b=I8UuQpv0ebUPzLYRs2mRYGY7bMmTU0agroHIKtxdHYuGFSN7luHhrds3X1DbJWSz/6 9sg9zs1UoejD0r8gheCuQxPHfXjFq2THIA5MmZBE5iMC9z5+vJEtTBQ6h6TTtsUeePCK GHHJDcKmngZDxJUqlCsJdUhe8rVM5twlLmSNA=
Received: by 10.91.109.2 with SMTP id l2mr916900agm.53.1273839267308; Fri, 14  May 2010 05:14:27 -0700 (PDT)
MIME-Version: 1.0
Sender: angelo.castellani@gmail.com
Received: by 10.90.26.2 with HTTP; Fri, 14 May 2010 05:14:07 -0700 (PDT)
In-Reply-To: <1EFE7D38-0894-4557-84F9-5553E5EF6A04@sensinode.com>
References: <3BB5F67A-9E57-4F81-B7C5-ABB1E136DAAC@tzi.org>  <AANLkTimYZLQyvG3Xn9BXqjiiIxuqe-43c0fveOF-bNSm@mail.gmail.com>  <1EFE7D38-0894-4557-84F9-5553E5EF6A04@sensinode.com>
From: "Angelo P. Castellani" <angelo@castellani.net>
Date: Fri, 14 May 2010 14:14:07 +0200
X-Google-Sender-Auth: qGc-QeMJR3lNqjHPlmRIteFn5B0
Message-ID: <AANLkTimyBXerdaekBb5w1RI8U5lHMF6gjX6onn65ihML@mail.gmail.com>
To: Zach Shelby <zach@sensinode.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: core <core@ietf.org>
Subject: Re: [core] Selecting a WG document for CoAP
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, 14 May 2010 12:15:34 -0000

Zach,

thanks for the comments, but please refer to my most recent e-mail for
a more specific list of technical issues I'm pointing to.

I want to do only a little integration to what I've written there.

In my very personal opinion, to maximize adherence with the REST model
and minimize implementation effort SUBSCRIBE and NOTIFY should be
mapped to methods (as discussed many times together...).

Uniform interface principle (Fielding PhD dissertation Section 5.1.5,
"The central feature that distinguishes the REST architectural style
[...]") states that to simplify the software architecture, resource
interfaces/interfaces should be as general as possible.

I agree with this principle in this specific case, mainly because
handling a special message type for notify leads node software design
to a more complex architecture.

The reason is that this new message type requires special handling and
introduces a complexity in the software modularization.

Best,
Angelo

On Fri, May 14, 2010 at 13:06, Zach Shelby <zach@sensinode.com> wrote:
> Hi Angelo,
>
> On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:
>
>> Dear C. Bormann, all,
>>
>> before deciding for the final direction, I've the following
>> observations about draft-shelby-core-coap-01
>>
>> While I mostly share Zach's view of the protocol approach, and
>> appreciate many aspects of the proposal, there are in my opinion still
>> some open issues that need to be at least discussed before the current
>> document can be selected.
>
> Of course there are plenty of open issues. Remember that working group do=
cuments still undertake as much change and improvement as the WG wants, so =
by no means is coap-01 set in stone. I would expect at least 5-10 more revi=
sions still along the way.  Already several of your ideas have been integra=
ted into coap-01, and several more are under consideration, so it is coming=
 along. Patience ;-)
>
>>
>> In particular, I would like to highlight the following:
>>
>> a) As it is now, it is not possible to have a straightforward
>> translation of HTTP -> CoAP and viceversa: see
>> http://www.ietf.org/mail-archive/web/core/current/msg00133.html (this
>> impacts the scalability of the web service model too)
>
> In coap-01 the Method names are now identical to HTTP methods. The Req/Re=
s interaction is a direct translation. The URI hierarchy is compatible, and=
 the URI binary code format we are still working on obviously. The only thi=
ng that takes some state to translate is Subscribe/Notify. But note, Subscr=
ibe/Notify takes some state no matter how you do it, even with HTTP-HTTP th=
ere is no clean and easy way to handle subscriptions.
>
>>
>> b) Moreover, CoAP's implementation is not as simple as it should be.
>> I've investigated the implementation and some design choices (as
>> Options) are leading to very high program complexity (ROM) on a
>> MSP430-based device.
>
> This we can definitely improve, and already made several optimizations fr=
om -00 to -01. Here I need some very concrete proposals though. Also rememb=
er that many things are optional, for example subscribe/notify is not requi=
red if you don't need it.
>
>> c) Finally when comparing HTTP message size with CoAP message size,
>> the resulting compression isn't as good as you may expect.
>>
>> Example:
>> HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
>> CoAP: 24 B with options parsing procedure requiring an added
>> implementation complexity
>
> Right, that is not how it will work in practice. Working with a real HTTP=
 server that HTTP header will be more complex, and on the CoAP side you wou=
ld chose shorter URLs. The biggest improvement possible here is from using =
binary coded URLs of course. We need to look at a wider range of interactio=
ns and real HTTP headers as well to check that we are efficient enough.
>
>> Addressing all these points potentially leads to major technical
>> modifications (especially point a) on the current draft, hence it is
>> appropriate in my opinion to discuss these points before making the
>> final decision.
>
> I am not sure what else you have in mind for a). If we just forget about =
Subscribe/Notify then you are good to go. But then you are also not fulfill=
ing the charter or the industry needs in that respect.
>
> Thanks,
> Zach
>
>>
>> Best regards,
>>
>> Angelo P. Castellani
>>
>>
>> On Mon, May 10, 2010 at 18:51, Carsten Bormann <cabo@tzi.org> wrote:
>>> The CORE WG has a milestone to select a WG document for CoAP in April:
>>>
>>> http://datatracker.ietf.org/wg/core/charter/
>>> ...
>>> Apr 2010        Select WG document for basis of the CoAP protocol
>>>
>>> Of the various documents that have been contributed, draft-shelby-core-=
coap has significant discussion, as well as the largest number of updates (=
including a previous version that was still called -6lowapp-coap).
>>>
>>> Today, another updated version of that draft was announced.  See
>>> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
>>> for the announcement and
>>> http://tools.ietf.org/html/draft-shelby-core-coap-01
>>> for the draft itself.
>>>
>>> However, as the authors say, there are still significant TODOs.
>>>
>>> Are we in a state yet where we can say whether this is the right direct=
ion for the WG to take?
>>> If yes, is it the right direction?  Should we adopt it as a WG document=
?
>>> If you don't think we can say yet, is there a set of technical decision=
s you would like the authors to take with priority?
>>>
>>> Note that once a document has become a WG document, the authors act as =
editors for the working group, making (and usually fleshing out the details=
 of) any change that the WG decides it needs.
>>> If you think we can still improve the draft, this is not an obstacle to=
 making it a WG document.
>>> But of course we shouldn't do that if we intend to reverse its fundamen=
tal technical direction.
>>>
>>> In order to stay roughly in sync with our milestones, we should reach a=
t a decision on how to go forward this week.
>>>
>>> Gruesse, Carsten
>>>
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>
>> _______________________________________________
>> 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
>
>

From darco@deepdarc.com  Fri May 14 13:23:43 2010
Return-Path: <darco@deepdarc.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 D7FFB3A688A for <core@core3.amsl.com>; Fri, 14 May 2010 13:23:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.998
X-Spam-Level: 
X-Spam-Status: No, score=-3.998 tagged_above=-999 required=5 tests=[BAYES_50=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4]
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 xEyx1IVHOxbD for <core@core3.amsl.com>; Fri, 14 May 2010 13:23:37 -0700 (PDT)
Received: from mail-out4.apple.com (mail-out4.apple.com [17.254.13.23]) by core3.amsl.com (Postfix) with ESMTP id D5A813A67E5 for <core@ietf.org>; Fri, 14 May 2010 13:23:36 -0700 (PDT)
Received: from relay13.apple.com (relay13.apple.com [17.128.113.29]) by mail-out4.apple.com (Postfix) with ESMTP id E2E7799C64C6; Fri, 14 May 2010 13:23:27 -0700 (PDT)
X-AuditID: 1180711d-b7c17ae00000693e-d7-4bedb13f6119
Received: from bellatrix.apple.com (bellatrix.apple.com [17.202.32.104]) (using TLS with cipher AES128-SHA (AES128-SHA/128 bits)) (Client did not present a certificate) by relay13.apple.com (Apple SCV relay) with SMTP id 9D.5B.26942.F31BDEB4; Fri, 14 May 2010 13:23:27 -0700 (PDT)
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: multipart/alternative; boundary=Apple-Mail-8--791336185
From: Robert Quattlebaum <darco@deepdarc.com>
In-Reply-To: <AANLkTimzwXnCZZFBGNkL4I9UqzUMC-cW6XwewRR8Fl1Y@mail.gmail.com>
Date: Fri, 14 May 2010 13:23:27 -0700
Message-Id: <180ECE5C-7013-4A75-BE1F-DD479C128C38@deepdarc.com>
References: <3BB5F67A-9E57-4F81-B7C5-ABB1E136DAAC@tzi.org> <AANLkTimYZLQyvG3Xn9BXqjiiIxuqe-43c0fveOF-bNSm@mail.gmail.com> <568AEFD6-974D-4790-A2F8-84305B990BA9@cisco.com> <AANLkTimzwXnCZZFBGNkL4I9UqzUMC-cW6XwewRR8Fl1Y@mail.gmail.com>
To: Angelo P. Castellani <angelo@castellani.net>
X-Mailer: Apple Mail (2.1078)
X-Brightmail-Tracker: AAAAAQAAAZE=
Cc: core <core@ietf.org>
Subject: Re: [core] Selecting a WG document for CoAP
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, 14 May 2010 20:23:43 -0000

--Apple-Mail-8--791336185
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252

Pardon if my reasoning seems a bit scattered, I have a lot of thoughts =
on the subject but not a lot of time to write this email.

It was my hope that CoAP might be the protocol to which, if devices =
conformed, I (as a consumer) would be able to know that they would be =
able to interoperate=97perhaps not without configuration, but at least =
after such manual configuration they would be able to communicate with =
each other without a third device translating things. Things like light =
switches, motion sensors, moisture detectors, appliances, thermostats, =
etc. I was imagining something akin to a modernized, push version of =
SNMP; at least in spirit. (See =
<http://www.ietf.org/mail-archive/web/core/current/msg00119.html> for a =
better example)

My concern is that HTTP is a clearly client-server based protocol, with =
a very clear delineation between the clients and the servers. With CoAP, =
the cases where there is such a clear server/client delineation is =
likely going to be much less common than cases where everyone is a peer. =
Thus it seems reasonable to deviate (where appropriate) from the HTTP =
model=97even in cases where there is no direct HTTP analogue. As such, I =
think having a SUBSCRIBE or PAIR method makes sense.

All of these devices are stateful to some degree, but there are two =
types of state: volatile (runtime) state, and non-volatile =
(configuration) state. I think that the subscriptions/pairings should be =
a non-volatile state. e.g.: no expirations. But I digress...

Taking a step back, what is the compelling use case for a strict mapping =
between HTTP and CoAP? I think HTTP might be useful as a model, but I =
haven't really understood why we should make mapping between the two a =
design consideration.

(As a related side observation, I think what would help is if we =
developed some specific use cases for how CoAP is envisioned to be used)

On May 14, 2010, at 1:50 AM, Angelo P. Castellani wrote:

> Point (a) is exactly about the very initial design approach to define
> a new realization of REST (e.g.: CRUD methods were defined instead of
> standard HTTP methods) instead of a feature-limited adaptation of HTTP
> itself to constrained host/network environments.
>=20
> There was even discussion on defining mapping of various protocols to
> CoAP without clear focus on HTTP translation.
>=20
> Doubts were raised that CoAP may be following the "reinvent HTTP"
> road, killing itself just as WAP did. Discussion on URI-Code/BinaryURI
> (as detailed in the Transparent proxying CoAP mail) is just the tip of
> the iceberg.
>=20
> Draft -01 has made some valid enhancements on this topic (see HTTP
> methods), however the whole document subtly imply this design
> objective throughout.
>=20
> In my humble opinion the direction that can be followed is: If
> HTTP/TCP is not viable on CoRE, we should find a way to adapt it to
> this environment.
>=20
> These days I was reading the R. Fielding PhD dissertation to fully
> understand why HTTP was designed in that way and what are the
> important principles to be preserved in a feature-limited compressed
> adaptation.
>=20
> Design philosophy: CoAP should be a *stateless* HTTP-translation and
> we should start by understanding how we can compress HTTP preserving
> its core principles to be *stateless*, providing an *uniform*
> interface to access *diverse* content organized in a *hierarchical*
> fashion, it should be easily *cacheable* and *translatable*.
>=20
> Being pratical:
> -* uniformity leads to only request and response (no notify, no other
> message types, REST should be only REQ/RES)
>=20
> -* hierarchy leads to URI and BinaryURI as in the transparent proxying
> discussion (no flat codes like URI-Code)
>=20
> -* stateless, translation, cacheability lead to URI->BinaryURI as a
> stateless mapping (avoid stateful tables)
>=20
> -* stateless and diversity suggest that content should be always fully
> described Content-Lenght (req), Content-Type (req) and
> Content-Enconding should be supported
>=20
> -* cacheable flag should be included always (not an option)
>=20
> -* stateless server and stateful resources? cookies are required (lets
> use binary cookies)
>=20
>=20
> Other considerations, important in my opinion, on the realization of
> the protocol (more technical here):
>=20
> -* translation and compression should focus on the URI
>=20
>   a) It should be always present and not an option
>=20
>   b) Using a flag we should understand whether we are using URI or the
> lossy BinaryURI encoding
>=20
>   c) URI is ASCII-7 and is usually formed by chars, numbers and a few
> others? I propose to investigate compressed loss-less encodings. Now I
> can think at least two different encodings:
>       i) Represent the / (supposed to be most frequent char in URI)
> using the left-most unused bit in the octet
>       ii) Represent most frequent chars (regex format: [0-9a-zA-Z/])
> using 6 bit encoding, use a NULL (\x00) octet to signal that an
> uncompressed char is following. Every 3 compressed chars we have 6
> unused bits that can map another char (0.75 ratio in the best case,
> other cases to be evaluated).
>        Maybe some predefined vocabularies can be agreed, and the used
> vocabulary chosen in a preceding field (vocabulary 2 example:
> [a-zA-Z%+._/\|=3D&?-])
>=20
>=20
> -* option translation issues (addressing complex implementation),
> general rule avoid variable length options (harder to handle):
>=20
>  a) Messages with Payload should always carry Content-Length and
> Content-Type before the payload
>=20
>  b) Define which are the well-known request and response options we
> want to support, without merging them (it seems not a good choice
> because many are response specific only, and many other request
> specific only).
>      Well-known options present in the message should be represented
> in a binary bitmask (like in 6LoWPAN HC) and carried in-line
> (fixed-length is an important requirement, however variable length can
> be handled if cannot be avoided)
>     When similar options are available may be beneficial to prefer
> the simplest and easiest to compress (fixed-length).
>     Example: Last-Modified should be preferred to Etag, (1) it can be
> represented as an unsigned integer, (2) with a binary flag
> representing "Now" its insertion can be delegated to the HTTP
> translating entity, (3) supports conditional GET.
>=20
>  c) Other options compressed with the URI style encoding (better
> vocabulary here is [a-zA-Z%+._/\|=3D&?-])
>=20
>=20
> I'm quite confident that the final compression ratio is good and, if
> properly investigated, it should retain the ability to do CoAP->HTTP
> translation too (Host option required).
>=20
> Moreover using CoAP realized like this leads to an easier
> straightforward C implementation, mainly thanks to many specific
> details especially bitmasks, fixed-length options, bitwise operations.
>=20
> I hope I was able to give an idea of my thinking on these issues. A
> more exhaustive and detailed list of the issues is not easy to provide
> by e-mail, but I will be happy to draft a document with more details
> if this is considered as an useful contribution to this discussion.
>=20
> Best,
> Angelo
>=20
> On Thu, May 13, 2010 at 16:57, Cullen Jennings <fluffy@cisco.com> =
wrote:
>>=20
>> Angelo,
>>=20
>> I may be reading too much in between the lines here, but I think you =
are raising the overall design question of should we use some form of =
compressed HTTP, where we preserver the semantics of HTTP but encode it =
differently, or should we develop a protocol with a subset of the =
semantics of HTTP. Perhaps I have this all wrong and you are not raising =
that. Could you outline some proposed solutions to your a,b,c problems =
below and perhaps say a bit more about what the problem is. Once I =
understood a bit more about how you would propose to design the protocol =
to mitigate these problems, I think that would help everyone make =
informed choices.
>>=20
>> Thanks, Cullen
>>=20
>> Few more questions inline ....
>>=20
>> On May 13, 2010, at 5:24 AM, Angelo P. Castellani wrote:
>>=20
>>> Dear C. Bormann, all,
>>>=20
>>> before deciding for the final direction, I've the following
>>> observations about draft-shelby-core-coap-01
>>>=20
>>> While I mostly share Zach's view of the protocol approach, and
>>> appreciate many aspects of the proposal, there are in my opinion =
still
>>> some open issues that need to be at least discussed before the =
current
>>> document can be selected.
>>>=20
>>> In particular, I would like to highlight the following:
>>>=20
>>> a) As it is now, it is not possible to have a straightforward
>>> translation of HTTP -> CoAP and viceversa: see
>>> http://www.ietf.org/mail-archive/web/core/current/msg00133.html =
(this
>>> impacts the scalability of the web service model too)
>>=20
>> On the topic of how to encode the URI. I think that needs discussion =
but could easily happen (and would happen) even if the COAP document was =
adopted as a WG item now.
>>=20
>>>=20
>>> b) Moreover, CoAP's implementation is not as simple as it should be.
>>> I've investigated the implementation and some design choices (as
>>> Options) are leading to very high program complexity (ROM) on a
>>> MSP430-based device.
>>=20
>> Can you say more - particularly about proposals to fix it?
>>=20
>>>=20
>>> c) Finally when comparing HTTP message size with CoAP message size,
>>> the resulting compression isn't as good as you may expect.
>>>=20
>>> Example:
>>> HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
>>> CoAP: 24 B with options parsing procedure requiring an added
>>> implementation complexity
>>>=20
>>> Addressing all these points potentially leads to major technical
>>> modifications (especially point a) on the current draft, hence it is
>>> appropriate in my opinion to discuss these points before making the
>>> final decision.
>>>=20
>>> Best regards,
>>>=20
>>> Angelo P. Castellani
>>>=20
>>>=20
>>> On Mon, May 10, 2010 at 18:51, Carsten Bormann <cabo@tzi.org> wrote:
>>>> The CORE WG has a milestone to select a WG document for CoAP in =
April:
>>>>=20
>>>> http://datatracker.ietf.org/wg/core/charter/
>>>> ...
>>>> Apr 2010        Select WG document for basis of the CoAP protocol
>>>>=20
>>>> Of the various documents that have been contributed, =
draft-shelby-core-coap has significant discussion, as well as the =
largest number of updates (including a previous version that was still =
called -6lowapp-coap).
>>>>=20
>>>> Today, another updated version of that draft was announced.  See
>>>> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
>>>> for the announcement and
>>>> http://tools.ietf.org/html/draft-shelby-core-coap-01
>>>> for the draft itself.
>>>>=20
>>>> However, as the authors say, there are still significant TODOs.
>>>>=20
>>>> Are we in a state yet where we can say whether this is the right =
direction for the WG to take?
>>>> If yes, is it the right direction?  Should we adopt it as a WG =
document?
>>>> If you don't think we can say yet, is there a set of technical =
decisions you would like the authors to take with priority?
>>>>=20
>>>> Note that once a document has become a WG document, the authors act =
as editors for the working group, making (and usually fleshing out the =
details of) any change that the WG decides it needs.
>>>> If you think we can still improve the draft, this is not an =
obstacle to making it a WG document.
>>>> But of course we shouldn't do that if we intend to reverse its =
fundamental technical direction.
>>>>=20
>>>> In order to stay roughly in sync with our milestones, we should =
reach at a decision on how to go forward this week.
>>>>=20
>>>> Gruesse, Carsten
>>>>=20
>>>> _______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>>>=20
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>=20
>>=20
>> Cullen Jennings
>> For corporate legal information go to:
>> http://www.cisco.com/web/about/doing_business/legal/cri/index.html
>>=20
>>=20
>>=20
>>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>=20

__________________
Robert Quattlebaum
Jabber: darco@deepdarc.com
eMail:  darco@deepdarc.com
www:    http://www.deepdarc.com/




--Apple-Mail-8--791336185
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=windows-1252

<html><head></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; =
"><div><div><div>Pardon if my reasoning seems a bit scattered, I have a =
lot of thoughts on the subject but not a lot of time to write this =
email.</div><div><br></div><div>It was my hope that CoAP might be the =
protocol to which, if devices conformed, I (as a consumer) would be able =
to know that they would be able to interoperate=97perhaps not without =
configuration, but at least after such manual configuration they would =
be able to communicate with each other without a third device =
translating things. Things like light switches, motion sensors, moisture =
detectors, appliances, thermostats, etc. I was imagining something akin =
to a modernized, push version of SNMP; at least in spirit. (See &lt;<a =
href=3D"http://www.ietf.org/mail-archive/web/core/current/msg00119.html">h=
ttp://www.ietf.org/mail-archive/web/core/current/msg00119.html</a>&gt; =
for a better example)</div><div><br></div><div>My concern is that HTTP =
is a clearly client-server based protocol, with a very clear delineation =
between the clients and the servers. With CoAP, the cases where there is =
such a clear server/client delineation is likely going to be much less =
common than cases where everyone is a peer. Thus it seems reasonable to =
deviate (where appropriate) from the HTTP model=97even in cases where =
there is no direct HTTP analogue. As such, I think having a SUBSCRIBE or =
PAIR method makes sense.</div><div><br></div><div>All of these devices =
are stateful to some degree, but there are two types of state: volatile =
(runtime) state, and&nbsp;non-volatile (configuration) state. I think =
that the subscriptions/pairings should be a non-volatile state. e.g.: no =
expirations. But I digress...</div><div><br></div><div>Taking a step =
back, what is the compelling use case for a strict mapping between HTTP =
and CoAP? I think HTTP might be useful as a model, but I haven't really =
understood why we should make mapping between the two a design =
consideration.</div><div><br></div><div>(As a related side observation, =
I think what would help is if we developed some specific use cases for =
how CoAP is envisioned to be used)</div><div><br></div><div>On May 14, =
2010, at 1:50 AM, Angelo P. Castellani wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><div>Point =
(a) is exactly about the very initial design approach to define<br>a new =
realization of REST (e.g.: CRUD methods were defined instead =
of<br>standard HTTP methods) instead of a feature-limited adaptation of =
HTTP<br>itself to constrained host/network environments.<br><br>There =
was even discussion on defining mapping of various protocols to<br>CoAP =
without clear focus on HTTP translation.<br><br>Doubts were raised that =
CoAP may be following the "reinvent HTTP"<br>road, killing itself just =
as WAP did. Discussion on URI-Code/BinaryURI<br>(as detailed in the =
Transparent proxying CoAP mail) is just the tip of<br>the =
iceberg.<br><br>Draft -01 has made some valid enhancements on this topic =
(see HTTP<br>methods), however the whole document subtly imply this =
design<br>objective throughout.<br><br>In my humble opinion the =
direction that can be followed is: If<br>HTTP/TCP is not viable on CoRE, =
we should find a way to adapt it to<br>this environment.<br><br>These =
days I was reading the R. Fielding PhD dissertation to =
fully<br>understand why HTTP was designed in that way and what are =
the<br>important principles to be preserved in a feature-limited =
compressed<br>adaptation.<br><br>Design philosophy: CoAP should be a =
*stateless* HTTP-translation and<br>we should start by understanding how =
we can compress HTTP preserving<br>its core principles to be =
*stateless*, providing an *uniform*<br>interface to access *diverse* =
content organized in a *hierarchical*<br>fashion, it should be easily =
*cacheable* and *translatable*.<br><br>Being pratical:<br>-* uniformity =
leads to only request and response (no notify, no other<br>message =
types, REST should be only REQ/RES)<br><br>-* hierarchy leads to URI and =
BinaryURI as in the transparent proxying<br>discussion (no flat codes =
like URI-Code)<br><br>-* stateless, translation, cacheability lead to =
URI-&gt;BinaryURI as a<br>stateless mapping (avoid stateful =
tables)<br><br>-* stateless and diversity suggest that content should be =
always fully<br>described Content-Lenght (req), Content-Type (req) =
and<br>Content-Enconding should be supported<br><br>-* cacheable flag =
should be included always (not an option)<br><br>-* stateless server and =
stateful resources? cookies are required (lets<br>use binary =
cookies)<br><br><br>Other considerations, important in my opinion, on =
the realization of<br>the protocol (more technical here):<br><br>-* =
translation and compression should focus on the URI<br><br>&nbsp; a) It =
should be always present and not an option<br><br>&nbsp; b) Using a flag =
we should understand whether we are using URI or the<br>lossy BinaryURI =
encoding<br><br>&nbsp; c) URI is ASCII-7 and is usually formed by chars, =
numbers and a few<br>others? I propose to investigate compressed =
loss-less encodings. Now I<br>can think at least two different =
encodings:<br>&nbsp; &nbsp; &nbsp; i) Represent the / (supposed to be =
most frequent char in URI)<br>using the left-most unused bit in the =
octet<br>&nbsp; &nbsp; &nbsp; ii) Represent most frequent chars (regex =
format: [0-9a-zA-Z/])<br>using 6 bit encoding, use a NULL (\x00) octet =
to signal that an<br>uncompressed char is following. Every 3 compressed =
chars we have 6<br>unused bits that can map another char (0.75 ratio in =
the best case,<br>other cases to be evaluated).<br> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maybe some predefined =
vocabularies can be agreed, and the used<br>vocabulary chosen in a =
preceding field (vocabulary 2 =
example:<br>[a-zA-Z%+._/\|=3D&amp;?-])<br><br><br>-* option translation =
issues (addressing complex implementation),<br>general rule avoid =
variable length options (harder to handle):<br><br>&nbsp;a) Messages =
with Payload should always carry Content-Length and<br>Content-Type =
before the payload<br><br>&nbsp;b) Define which are the well-known =
request and response options we<br>want to support, without merging them =
(it seems not a good choice<br>because many are response specific only, =
and many other request<br>specific only).<br>&nbsp; &nbsp; =
&nbsp;Well-known options present in the message should be =
represented<br>in a binary bitmask (like in 6LoWPAN HC) and carried =
in-line<br>(fixed-length is an important requirement, however variable =
length can<br>be handled if cannot be avoided)<br> =
&nbsp;&nbsp;&nbsp;&nbsp;When similar options are available may be =
beneficial to prefer<br>the simplest and easiest to compress =
(fixed-length).<br> &nbsp;&nbsp;&nbsp;&nbsp;Example: Last-Modified =
should be preferred to Etag, (1) it can be<br>represented as an unsigned =
integer, (2) with a binary flag<br>representing "Now" its insertion can =
be delegated to the HTTP<br>translating entity, (3) supports conditional =
GET.<br><br>&nbsp;c) Other options compressed with the URI style =
encoding (better<br>vocabulary here is =
[a-zA-Z%+._/\|=3D&amp;?-])<br><br><br>I'm quite confident that the final =
compression ratio is good and, if<br>properly investigated, it should =
retain the ability to do CoAP-&gt;HTTP<br>translation too (Host option =
required).<br><br>Moreover using CoAP realized like this leads to an =
easier<br>straightforward C implementation, mainly thanks to many =
specific<br>details especially bitmasks, fixed-length options, bitwise =
operations.<br><br>I hope I was able to give an idea of my thinking on =
these issues. A<br>more exhaustive and detailed list of the issues is =
not easy to provide<br>by e-mail, but I will be happy to draft a =
document with more details<br>if this is considered as an useful =
contribution to this discussion.<br><br>Best,<br>Angelo<br><br>On Thu, =
May 13, 2010 at 16:57, Cullen Jennings &lt;<a =
href=3D"mailto:fluffy@cisco.com">fluffy@cisco.com</a>&gt; =
wrote:<br><blockquote type=3D"cite"><br></blockquote><blockquote =
type=3D"cite">Angelo,<br></blockquote><blockquote =
type=3D"cite"><br></blockquote><blockquote type=3D"cite">I may be =
reading too much in between the lines here, but I think you are raising =
the overall design question of should we use some form of compressed =
HTTP, where we preserver the semantics of HTTP but encode it =
differently, or should we develop a protocol with a subset of the =
semantics of HTTP. Perhaps I have this all wrong and you are not raising =
that. Could you outline some proposed solutions to your a,b,c problems =
below and perhaps say a bit more about what the problem is. Once I =
understood a bit more about how you would propose to design the protocol =
to mitigate these problems, I think that would help everyone make =
informed choices.<br></blockquote><blockquote =
type=3D"cite"><br></blockquote><blockquote type=3D"cite">Thanks, =
Cullen<br></blockquote><blockquote =
type=3D"cite"><br></blockquote><blockquote type=3D"cite">Few more =
questions inline ....<br></blockquote><blockquote =
type=3D"cite"><br></blockquote><blockquote type=3D"cite">On May 13, =
2010, at 5:24 AM, Angelo P. Castellani =
wrote:<br></blockquote><blockquote =
type=3D"cite"><br></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite">Dear C. Bormann, =
all,<br></blockquote></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">before deciding for the final =
direction, I've the following<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">observations about =
draft-shelby-core-coap-01<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">While I mostly share Zach's view =
of the protocol approach, and<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">appreciate many aspects of the =
proposal, there are in my opinion =
still<br></blockquote></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite">some open issues that need to be at least discussed before =
the current<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">document can be =
selected.<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">In particular, I would like to =
highlight the following:<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">a) As it is now, it is not =
possible to have a =
straightforward<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">translation of HTTP -&gt; CoAP =
and viceversa: see<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><a =
href=3D"http://www.ietf.org/mail-archive/web/core/current/msg00133.html">h=
ttp://www.ietf.org/mail-archive/web/core/current/msg00133.html</a> =
(this<br></blockquote></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite">impacts the scalability of the web service model =
too)<br></blockquote></blockquote><blockquote =
type=3D"cite"><br></blockquote><blockquote type=3D"cite">On the topic of =
how to encode the URI. I think that needs discussion but could easily =
happen (and would happen) even if the COAP document was adopted as a WG =
item now.<br></blockquote><blockquote =
type=3D"cite"><br></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">b) Moreover, CoAP's =
implementation is not as simple as it should =
be.<br></blockquote></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite">I've investigated the implementation and some design =
choices (as<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">Options) are leading to very =
high program complexity (ROM) on =
a<br></blockquote></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite">MSP430-based =
device.<br></blockquote></blockquote><blockquote =
type=3D"cite"><br></blockquote><blockquote type=3D"cite">Can you say =
more - particularly about proposals to fix =
it?<br></blockquote><blockquote type=3D"cite"><br></blockquote><blockquote=
 type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">c) Finally when comparing HTTP =
message size with CoAP message =
size,<br></blockquote></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite">the resulting compression isn't as good as you may =
expect.<br></blockquote></blockquote><blockquote type=3D"cite"><blockquote=
 type=3D"cite"><br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote =
type=3D"cite">Example:<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">HTTP: GET /sensor/temp.xml =
HTTP/1.0 =3D 32 B<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">CoAP: 24 B with options parsing =
procedure requiring an added<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">implementation =
complexity<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">Addressing all these points =
potentially leads to major =
technical<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">modifications (especially point =
a) on the current draft, hence it =
is<br></blockquote></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite">appropriate in my opinion to discuss these points before =
making the<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">final =
decision.<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">Best =
regards,<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">Angelo P. =
Castellani<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">On Mon, May 10, 2010 at 18:51, =
Carsten Bormann &lt;<a href=3D"mailto:cabo@tzi.org">cabo@tzi.org</a>&gt; =
wrote:<br></blockquote></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite"><blockquote type=3D"cite">The CORE WG has a milestone to =
select a WG document for CoAP in =
April:<br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote type=3D"cite"><a =
href=3D"http://datatracker.ietf.org/wg/core/charter/">http://datatracker.i=
etf.org/wg/core/charter/</a><br></blockquote></blockquote></blockquote><bl=
ockquote type=3D"cite"><blockquote type=3D"cite"><blockquote =
type=3D"cite">...<br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote type=3D"cite">Apr =
2010 &nbsp; &nbsp; &nbsp; &nbsp;Select WG document for basis of the CoAP =
protocol<br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote type=3D"cite">Of the =
various documents that have been contributed, draft-shelby-core-coap has =
significant discussion, as well as the largest number of updates =
(including a previous version that was still called =
-6lowapp-coap).<br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote type=3D"cite">Today, =
another updated version of that draft was announced. =
&nbsp;See<br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote type=3D"cite"><a =
href=3D"http://www.ietf.org/mail-archive/web/core/current/msg00138.html">h=
ttp://www.ietf.org/mail-archive/web/core/current/msg00138.html</a><br></bl=
ockquote></blockquote></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite"><blockquote type=3D"cite">for the announcement =
and<br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote type=3D"cite"><a =
href=3D"http://tools.ietf.org/html/draft-shelby-core-coap-01">http://tools=
.ietf.org/html/draft-shelby-core-coap-01</a><br></blockquote></blockquote>=
</blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite"><blockquote type=3D"cite">for the draft =
itself.<br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote type=3D"cite">However,=
 as the authors say, there are still significant =
TODOs.<br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote type=3D"cite">Are we =
in a state yet where we can say whether this is the right direction for =
the WG to take?<br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote type=3D"cite">If =
yes, is it the right direction? &nbsp;Should we adopt it as a WG =
document?<br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote type=3D"cite">If you =
don't think we can say yet, is there a set of technical decisions you =
would like the authors to take with =
priority?<br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote type=3D"cite">Note =
that once a document has become a WG document, the authors act as =
editors for the working group, making (and usually fleshing out the =
details of) any change that the WG decides it =
needs.<br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote type=3D"cite">If you =
think we can still improve the draft, this is not an obstacle to making =
it a WG document.<br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote type=3D"cite">But of =
course we shouldn't do that if we intend to reverse its fundamental =
technical =
direction.<br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote type=3D"cite">In =
order to stay roughly in sync with our milestones, we should reach at a =
decision on how to go forward this =
week.<br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote type=3D"cite">Gruesse,=
 Carsten<br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote =
type=3D"cite">_______________________________________________<br></blockqu=
ote></blockquote></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite"><blockquote type=3D"cite">core mailing =
list<br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><blockquote type=3D"cite"><a =
href=3D"mailto:core@ietf.org">core@ietf.org</a><br></blockquote></blockquo=
te></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite"><blockquote type=3D"cite"><a =
href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/m=
ailman/listinfo/core</a><br></blockquote></blockquote></blockquote><blockq=
uote type=3D"cite"><blockquote type=3D"cite"><blockquote =
type=3D"cite"><br></blockquote></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote =
type=3D"cite">_______________________________________________<br></blockqu=
ote></blockquote><blockquote type=3D"cite"><blockquote type=3D"cite">core =
mailing list<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite"><a =
href=3D"mailto:core@ietf.org">core@ietf.org</a><br></blockquote></blockquo=
te><blockquote type=3D"cite"><blockquote type=3D"cite"><a =
href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/m=
ailman/listinfo/core</a><br></blockquote></blockquote><blockquote =
type=3D"cite"><br></blockquote><blockquote =
type=3D"cite"><br></blockquote><blockquote type=3D"cite">Cullen =
Jennings<br></blockquote><blockquote type=3D"cite">For corporate legal =
information go to:<br></blockquote><blockquote type=3D"cite"><a =
href=3D"http://www.cisco.com/web/about/doing_business/legal/cri/index.html=
">http://www.cisco.com/web/about/doing_business/legal/cri/index.html</a><b=
r></blockquote><blockquote type=3D"cite"><br></blockquote><blockquote =
type=3D"cite"><br></blockquote><blockquote =
type=3D"cite"><br></blockquote><blockquote =
type=3D"cite"><br></blockquote>___________________________________________=
____<br>core mailing list<br><a =
href=3D"mailto:core@ietf.org">core@ietf.org</a><br>https://www.ietf.org/ma=
ilman/listinfo/core<br><br></div></blockquote></div><br><div>
<span class=3D"Apple-style-span" style=3D"border-collapse: separate; =
color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: 2; text-align: =
auto; text-indent: 0px; text-transform: none; white-space: normal; =
widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; =
-webkit-border-vertical-spacing: 0px; =
-webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: =
auto; -webkit-text-stroke-width: 0; "><div><span =
class=3D"Apple-style-span" style=3D"font-family: 'Lucida Grande'; "><div =
style=3D"font-size: 8px; font-family: Helvetica; =
">__________________</div><div style=3D"font-size: 24px; color: rgb(51, =
51, 51); font-family: Cochin; "><strong style=3D"color: rgb(51, 51, 51); =
font-family: Cochin; font-size: 24px; font-weight: bold; ">Robert =
Quattlebaum</strong></div><div style=3D"font-size: 12px; color: rgb(51, =
51, 51); font-family: Monaco; ">Jabber:&nbsp;<span style=3D"font-size: =
14px; color: rgb(51, 51, 51); font-family: Georgia; "><a =
href=3D"xmpp:darco@deepdarc.com"><span class=3D"Apple-style-span" =
style=3D"color: rgb(0, 0, 238); =
">darco@deepdarc.com</span></a></span></div><div style=3D"font-size: =
12px; color: rgb(51, 51, 51); font-family: Monaco; ">eMail: &nbsp;<span =
style=3D"font-size: 14px; color: rgb(51, 51, 51); font-family: Georgia; =
"><a href=3D"mailto:darco@deepdarc.com"><span class=3D"Apple-style-span" =
style=3D"color: rgb(0, 0, 238); =
">darco@deepdarc.com</span></a></span></div><div style=3D"font-size: =
12px; color: rgb(51, 51, 51); font-family: Monaco; ">www: =
&nbsp;&nbsp;&nbsp;<span style=3D"font-size: 14px; color: rgb(51, 51, =
51); font-family: Georgia; "><span class=3D"Apple-style-span" =
style=3D"color: rgb(0, 0, 238); "><a =
href=3D"http://www.deepdarc.com/">http://www.deepdarc.com/</a></span></spa=
n></div><div><font class=3D"Apple-style-span" color=3D"#0000EE" =
face=3D"Georgia" size=3D"4"><span class=3D"Apple-style-span" =
style=3D"font-size: 14px; "><br =
class=3D"webkit-block-placeholder"></span></font></div></span></div></span=
><br class=3D"Apple-interchange-newline">
</div>
<br></div></body></html>=

--Apple-Mail-8--791336185--

From d.sturek@att.net  Fri May 14 13:33:52 2010
Return-Path: <d.sturek@att.net>
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 778803A68BE for <core@core3.amsl.com>; Fri, 14 May 2010 13:33:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.773
X-Spam-Level: 
X-Spam-Status: No, score=0.773 tagged_above=-999 required=5 tests=[AWL=-0.827,  BAYES_40=-0.185, HTML_MESSAGE=0.001, IP_NOT_FRIENDLY=0.334, MSGID_MULTIPLE_AT=1.449, UNPARSEABLE_RELAY=0.001]
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 qReGlvRMH3jS for <core@core3.amsl.com>; Fri, 14 May 2010 13:33:36 -0700 (PDT)
Received: from smtp125.sbc.mail.sp1.yahoo.com (smtp125.sbc.mail.sp1.yahoo.com [69.147.65.184]) by core3.amsl.com (Postfix) with SMTP id EAF513A6403 for <core@ietf.org>; Fri, 14 May 2010 13:33:32 -0700 (PDT)
Received: (qmail 1271 invoked from network); 14 May 2010 20:33:21 -0000
Received: from wsip-174-78-56-227.sd.sd.cox.net (d.sturek@174.78.56.227 with login) by smtp125.sbc.mail.sp1.yahoo.com with SMTP; 14 May 2010 13:33:21 -0700 PDT
X-Yahoo-SMTP: fvjol_aswBAraSJvMLe2r1XTzhBhbFxY8q8c3jo-
X-YMail-OSG: R5LOX9oVM1k3EZfMjke8umjSC_M1s62_lWUy91Sqn.kAGr2wsq0qgsU7kVSJyEY1OmBXWSR5RpbQ_9FLFymgJiH71SnqOQGyv7Tk.R5wkg0Ww80eO4jE9paJH78cLMLQbodiDLMpFSSlH0zw9vKwf9NTn8hDK4b7eeotUgs0zeMbh3kxuHDyWg6b0fpRJhdnI4p_70BNPd.le6JHPv01LCLO_c6dGKkHsSnxm72lkJ4PLRMwzhJpF6EgPoXPmMuzOQy3SAV3lVpV1iQxOV.LyXneRmn2KvFaEhrDERRDTV0etgWZa9c-
X-Yahoo-Newman-Property: ymail-3
From: "Don Sturek" <d.sturek@att.net>
To: "'Robert Quattlebaum'" <darco@deepdarc.com>, "'Angelo P. Castellani'" <angelo@castellani.net>
References: <3BB5F67A-9E57-4F81-B7C5-ABB1E136DAAC@tzi.org>	<AANLkTimYZLQyvG3Xn9BXqjiiIxuqe-43c0fveOF-bNSm@mail.gmail.com>	<568AEFD6-974D-4790-A2F8-84305B990BA9@cisco.com>	<AANLkTimzwXnCZZFBGNkL4I9UqzUMC-cW6XwewRR8Fl1Y@mail.gmail.com> <180ECE5C-7013-4A75-BE1F-DD479C128C38@deepdarc.com>
In-Reply-To: <180ECE5C-7013-4A75-BE1F-DD479C128C38@deepdarc.com>
Date: Fri, 14 May 2010 13:33:20 -0700
Message-ID: <008301caf3a4$b1771d00$14655700$@sturek@att.net>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_0084_01CAF36A.05184500"
X-Mailer: Microsoft Office Outlook 12.0
Thread-Index: Acrzo1oUyIz+2jPcTni1Ne6bi0D5aQAAM8xQ
Content-Language: en-us
Cc: 'core' <core@ietf.org>
Subject: Re: [core] Selecting a WG document for CoAP
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: d.sturek@att.net
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, 14 May 2010 20:33:52 -0000

This is a multi-part message in MIME format.

------=_NextPart_000_0084_01CAF36A.05184500
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit

Hi Robert,

 

Here are, I think, the assumptions with CoRE:

1)       For constrained devices, we would like to re-use the web services
application design paradigm from the wider internet.  This would use HTTP

2)       However, we would like to avoid burdening the constrained devices
with many of the services that drive larger code size and complexity.

3)       We would like to deploy CoRE using UDP to avoid overhead and
complexity with TCP along with the issues around congestion control with TCP
in mesh wireless networks.

4)      We would like to re-use any security and other services applicable
to web services.

 

The better we can envision a mapping between CoRE and HTTP, the easier it
will be to enable development on the wider internet to include devices with
far less capabilities than are currently supported today.


Don

 

 

From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of
Robert Quattlebaum
Sent: Friday, May 14, 2010 1:23 PM
To: Angelo P. Castellani
Cc: core
Subject: Re: [core] Selecting a WG document for CoAP

 

Pardon if my reasoning seems a bit scattered, I have a lot of thoughts on
the subject but not a lot of time to write this email.

 

It was my hope that CoAP might be the protocol to which, if devices
conformed, I (as a consumer) would be able to know that they would be able
to interoperate-perhaps not without configuration, but at least after such
manual configuration they would be able to communicate with each other
without a third device translating things. Things like light switches,
motion sensors, moisture detectors, appliances, thermostats, etc. I was
imagining something akin to a modernized, push version of SNMP; at least in
spirit. (See
<http://www.ietf.org/mail-archive/web/core/current/msg00119.html> for a
better example)

 

My concern is that HTTP is a clearly client-server based protocol, with a
very clear delineation between the clients and the servers. With CoAP, the
cases where there is such a clear server/client delineation is likely going
to be much less common than cases where everyone is a peer. Thus it seems
reasonable to deviate (where appropriate) from the HTTP model-even in cases
where there is no direct HTTP analogue. As such, I think having a SUBSCRIBE
or PAIR method makes sense.

 

All of these devices are stateful to some degree, but there are two types of
state: volatile (runtime) state, and non-volatile (configuration) state. I
think that the subscriptions/pairings should be a non-volatile state. e.g.:
no expirations. But I digress...

 

Taking a step back, what is the compelling use case for a strict mapping
between HTTP and CoAP? I think HTTP might be useful as a model, but I
haven't really understood why we should make mapping between the two a
design consideration.

 

(As a related side observation, I think what would help is if we developed
some specific use cases for how CoAP is envisioned to be used)

 

On May 14, 2010, at 1:50 AM, Angelo P. Castellani wrote:





Point (a) is exactly about the very initial design approach to define
a new realization of REST (e.g.: CRUD methods were defined instead of
standard HTTP methods) instead of a feature-limited adaptation of HTTP
itself to constrained host/network environments.

There was even discussion on defining mapping of various protocols to
CoAP without clear focus on HTTP translation.

Doubts were raised that CoAP may be following the "reinvent HTTP"
road, killing itself just as WAP did. Discussion on URI-Code/BinaryURI
(as detailed in the Transparent proxying CoAP mail) is just the tip of
the iceberg.

Draft -01 has made some valid enhancements on this topic (see HTTP
methods), however the whole document subtly imply this design
objective throughout.

In my humble opinion the direction that can be followed is: If
HTTP/TCP is not viable on CoRE, we should find a way to adapt it to
this environment.

These days I was reading the R. Fielding PhD dissertation to fully
understand why HTTP was designed in that way and what are the
important principles to be preserved in a feature-limited compressed
adaptation.

Design philosophy: CoAP should be a *stateless* HTTP-translation and
we should start by understanding how we can compress HTTP preserving
its core principles to be *stateless*, providing an *uniform*
interface to access *diverse* content organized in a *hierarchical*
fashion, it should be easily *cacheable* and *translatable*.

Being pratical:
-* uniformity leads to only request and response (no notify, no other
message types, REST should be only REQ/RES)

-* hierarchy leads to URI and BinaryURI as in the transparent proxying
discussion (no flat codes like URI-Code)

-* stateless, translation, cacheability lead to URI->BinaryURI as a
stateless mapping (avoid stateful tables)

-* stateless and diversity suggest that content should be always fully
described Content-Lenght (req), Content-Type (req) and
Content-Enconding should be supported

-* cacheable flag should be included always (not an option)

-* stateless server and stateful resources? cookies are required (lets
use binary cookies)


Other considerations, important in my opinion, on the realization of
the protocol (more technical here):

-* translation and compression should focus on the URI

  a) It should be always present and not an option

  b) Using a flag we should understand whether we are using URI or the
lossy BinaryURI encoding

  c) URI is ASCII-7 and is usually formed by chars, numbers and a few
others? I propose to investigate compressed loss-less encodings. Now I
can think at least two different encodings:
      i) Represent the / (supposed to be most frequent char in URI)
using the left-most unused bit in the octet
      ii) Represent most frequent chars (regex format: [0-9a-zA-Z/])
using 6 bit encoding, use a NULL (\x00) octet to signal that an
uncompressed char is following. Every 3 compressed chars we have 6
unused bits that can map another char (0.75 ratio in the best case,
other cases to be evaluated).
       Maybe some predefined vocabularies can be agreed, and the used
vocabulary chosen in a preceding field (vocabulary 2 example:
[a-zA-Z%+._/\|=&?-])


-* option translation issues (addressing complex implementation),
general rule avoid variable length options (harder to handle):

 a) Messages with Payload should always carry Content-Length and
Content-Type before the payload

 b) Define which are the well-known request and response options we
want to support, without merging them (it seems not a good choice
because many are response specific only, and many other request
specific only).
     Well-known options present in the message should be represented
in a binary bitmask (like in 6LoWPAN HC) and carried in-line
(fixed-length is an important requirement, however variable length can
be handled if cannot be avoided)
    When similar options are available may be beneficial to prefer
the simplest and easiest to compress (fixed-length).
    Example: Last-Modified should be preferred to Etag, (1) it can be
represented as an unsigned integer, (2) with a binary flag
representing "Now" its insertion can be delegated to the HTTP
translating entity, (3) supports conditional GET.

 c) Other options compressed with the URI style encoding (better
vocabulary here is [a-zA-Z%+._/\|=&?-])


I'm quite confident that the final compression ratio is good and, if
properly investigated, it should retain the ability to do CoAP->HTTP
translation too (Host option required).

Moreover using CoAP realized like this leads to an easier
straightforward C implementation, mainly thanks to many specific
details especially bitmasks, fixed-length options, bitwise operations.

I hope I was able to give an idea of my thinking on these issues. A
more exhaustive and detailed list of the issues is not easy to provide
by e-mail, but I will be happy to draft a document with more details
if this is considered as an useful contribution to this discussion.

Best,
Angelo

On Thu, May 13, 2010 at 16:57, Cullen Jennings <fluffy@cisco.com> wrote:



 

Angelo,

 

I may be reading too much in between the lines here, but I think you are
raising the overall design question of should we use some form of compressed
HTTP, where we preserver the semantics of HTTP but encode it differently, or
should we develop a protocol with a subset of the semantics of HTTP. Perhaps
I have this all wrong and you are not raising that. Could you outline some
proposed solutions to your a,b,c problems below and perhaps say a bit more
about what the problem is. Once I understood a bit more about how you would
propose to design the protocol to mitigate these problems, I think that
would help everyone make informed choices.

 

Thanks, Cullen

 

Few more questions inline ....

 

On May 13, 2010, at 5:24 AM, Angelo P. Castellani wrote:

 

Dear C. Bormann, all,

 

before deciding for the final direction, I've the following

observations about draft-shelby-core-coap-01

 

While I mostly share Zach's view of the protocol approach, and

appreciate many aspects of the proposal, there are in my opinion still

some open issues that need to be at least discussed before the current

document can be selected.

 

In particular, I would like to highlight the following:

 

a) As it is now, it is not possible to have a straightforward

translation of HTTP -> CoAP and viceversa: see

http://www.ietf.org/mail-archive/web/core/current/msg00133.html (this

impacts the scalability of the web service model too)

 

On the topic of how to encode the URI. I think that needs discussion but
could easily happen (and would happen) even if the COAP document was adopted
as a WG item now.

 

 

b) Moreover, CoAP's implementation is not as simple as it should be.

I've investigated the implementation and some design choices (as

Options) are leading to very high program complexity (ROM) on a

MSP430-based device.

 

Can you say more - particularly about proposals to fix it?

 

 

c) Finally when comparing HTTP message size with CoAP message size,

the resulting compression isn't as good as you may expect.

 

Example:

HTTP: GET /sensor/temp.xml HTTP/1.0 = 32 B

CoAP: 24 B with options parsing procedure requiring an added

implementation complexity

 

Addressing all these points potentially leads to major technical

modifications (especially point a) on the current draft, hence it is

appropriate in my opinion to discuss these points before making the

final decision.

 

Best regards,

 

Angelo P. Castellani

 

 

On Mon, May 10, 2010 at 18:51, Carsten Bormann <cabo@tzi.org> wrote:

The CORE WG has a milestone to select a WG document for CoAP in April:

 

http://datatracker.ietf.org/wg/core/charter/

...

Apr 2010        Select WG document for basis of the CoAP protocol

 

Of the various documents that have been contributed, draft-shelby-core-coap
has significant discussion, as well as the largest number of updates
(including a previous version that was still called -6lowapp-coap).

 

Today, another updated version of that draft was announced.  See

http://www.ietf.org/mail-archive/web/core/current/msg00138.html

for the announcement and

http://tools.ietf.org/html/draft-shelby-core-coap-01

for the draft itself.

 

However, as the authors say, there are still significant TODOs.

 

Are we in a state yet where we can say whether this is the right direction
for the WG to take?

If yes, is it the right direction?  Should we adopt it as a WG document?

If you don't think we can say yet, is there a set of technical decisions you
would like the authors to take with priority?

 

Note that once a document has become a WG document, the authors act as
editors for the working group, making (and usually fleshing out the details
of) any change that the WG decides it needs.

If you think we can still improve the draft, this is not an obstacle to
making it a WG document.

But of course we shouldn't do that if we intend to reverse its fundamental
technical direction.

 

In order to stay roughly in sync with our milestones, we should reach at a
decision on how to go forward this week.

 

Gruesse, Carsten

 

_______________________________________________

core mailing list

core@ietf.org

https://www.ietf.org/mailman/listinfo/core

 

_______________________________________________

core mailing list

core@ietf.org

https://www.ietf.org/mailman/listinfo/core

 

 

Cullen Jennings

For corporate legal information go to:

http://www.cisco.com/web/about/doing_business/legal/cri/index.html

 

 

 

 

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

 

__________________

Robert Quattlebaum

Jabber:  <xmpp:darco@deepdarc.com> darco@deepdarc.com

eMail:   <mailto:darco@deepdarc.com> darco@deepdarc.com

www:    http://www.deepdarc.com/

 

 

 


------=_NextPart_000_0084_01CAF36A.05184500
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:x=3D"urn:schemas-microsoft-com:office:excel" =
xmlns:p=3D"urn:schemas-microsoft-com:office:powerpoint" =
xmlns:a=3D"urn:schemas-microsoft-com:office:access" =
xmlns:dt=3D"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" =
xmlns:s=3D"uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" =
xmlns:rs=3D"urn:schemas-microsoft-com:rowset" xmlns:z=3D"#RowsetSchema" =
xmlns:b=3D"urn:schemas-microsoft-com:office:publisher" =
xmlns:ss=3D"urn:schemas-microsoft-com:office:spreadsheet" =
xmlns:c=3D"urn:schemas-microsoft-com:office:component:spreadsheet" =
xmlns:odc=3D"urn:schemas-microsoft-com:office:odc" =
xmlns:oa=3D"urn:schemas-microsoft-com:office:activation" =
xmlns:html=3D"http://www.w3.org/TR/REC-html40" =
xmlns:q=3D"http://schemas.xmlsoap.org/soap/envelope/" =
xmlns:rtc=3D"http://microsoft.com/officenet/conferencing" =
xmlns:D=3D"DAV:" xmlns:Repl=3D"http://schemas.microsoft.com/repl/" =
xmlns:mt=3D"http://schemas.microsoft.com/sharepoint/soap/meetings/" =
xmlns:x2=3D"http://schemas.microsoft.com/office/excel/2003/xml" =
xmlns:ppda=3D"http://www.passport.com/NameSpace.xsd" =
xmlns:ois=3D"http://schemas.microsoft.com/sharepoint/soap/ois/" =
xmlns:dir=3D"http://schemas.microsoft.com/sharepoint/soap/directory/" =
xmlns:ds=3D"http://www.w3.org/2000/09/xmldsig#" =
xmlns:dsp=3D"http://schemas.microsoft.com/sharepoint/dsp" =
xmlns:udc=3D"http://schemas.microsoft.com/data/udc" =
xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema" =
xmlns:sub=3D"http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/"=
 xmlns:ec=3D"http://www.w3.org/2001/04/xmlenc#" =
xmlns:sp=3D"http://schemas.microsoft.com/sharepoint/" =
xmlns:sps=3D"http://schemas.microsoft.com/sharepoint/soap/" =
xmlns:xsi=3D"http://www.w3.org/2001/XMLSchema-instance" =
xmlns:udcs=3D"http://schemas.microsoft.com/data/udc/soap" =
xmlns:udcxf=3D"http://schemas.microsoft.com/data/udc/xmlfile" =
xmlns:udcp2p=3D"http://schemas.microsoft.com/data/udc/parttopart" =
xmlns:wf=3D"http://schemas.microsoft.com/sharepoint/soap/workflow/" =
xmlns:dsss=3D"http://schemas.microsoft.com/office/2006/digsig-setup" =
xmlns:dssi=3D"http://schemas.microsoft.com/office/2006/digsig" =
xmlns:mdssi=3D"http://schemas.openxmlformats.org/package/2006/digital-sig=
nature" =
xmlns:mver=3D"http://schemas.openxmlformats.org/markup-compatibility/2006=
" xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns:mrels=3D"http://schemas.openxmlformats.org/package/2006/relationshi=
ps" xmlns:spwp=3D"http://microsoft.com/sharepoint/webpartpages" =
xmlns:ex12t=3D"http://schemas.microsoft.com/exchange/services/2006/types"=
 =
xmlns:ex12m=3D"http://schemas.microsoft.com/exchange/services/2006/messag=
es" =
xmlns:pptsl=3D"http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/=
" =
xmlns:spsl=3D"http://microsoft.com/webservices/SharePointPortalServer/Pub=
lishedLinksService" xmlns:Z=3D"urn:schemas-microsoft-com:" =
xmlns:st=3D"&#1;" xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Helvetica;
	panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:"Lucida Grande";
	panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Cochin;
	panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Monaco;
	panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Georgia;
	panose-1:2 4 5 2 5 4 5 2 3 3;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";}
span.apple-style-span
	{mso-style-name:apple-style-span;}
span.EmailStyle19
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
	{page:Section1;}
 /* List Definitions */
 @list l0
	{mso-list-id:1396510807;
	mso-list-type:hybrid;
	mso-list-template-ids:1632673368 67698705 67698713 67698715 67698703 =
67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
	{mso-level-text:"%1\)";
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple style=3D'word-wrap: =
break-word;
-webkit-nbsp-mode: space;-webkit-line-break: after-white-space'>

<div class=3DSection1>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Hi Robert,<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Here are, I think, the assumptions with =
CoRE:<o:p></o:p></span></p>

<p class=3DMsoListParagraph style=3D'text-indent:-.25in;mso-list:l0 =
level1 lfo1'><![if !supportLists]><span
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'><span
style=3D'mso-list:Ignore'>1)<span style=3D'font:7.0pt "Times New =
Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>&nbsp;For constrained devices, we would like to re-use =
the web
services application design paradigm from the wider internet.&nbsp; This =
would
use HTTP<o:p></o:p></span></p>

<p class=3DMsoListParagraph style=3D'text-indent:-.25in;mso-list:l0 =
level1 lfo1'><![if !supportLists]><span
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'><span
style=3D'mso-list:Ignore'>2)<span style=3D'font:7.0pt "Times New =
Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>&nbsp;However, we would like to avoid burdening the =
constrained
devices with many of the services that drive larger code size and =
complexity.<o:p></o:p></span></p>

<p class=3DMsoListParagraph style=3D'text-indent:-.25in;mso-list:l0 =
level1 lfo1'><![if !supportLists]><span
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'><span
style=3D'mso-list:Ignore'>3)<span style=3D'font:7.0pt "Times New =
Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>&nbsp;We would like to deploy CoRE using UDP to avoid =
overhead
and complexity with TCP along with the issues around congestion control =
with
TCP in mesh wireless networks.<o:p></o:p></span></p>

<p class=3DMsoListParagraph style=3D'text-indent:-.25in;mso-list:l0 =
level1 lfo1'><![if !supportLists]><span
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497=
D'><span
style=3D'mso-list:Ignore'>4)<span style=3D'font:7.0pt "Times New =
Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>We would like to re-use any security and other services =
applicable
to web services.<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>The better we can envision a mapping between CoRE and =
HTTP, the
easier it will be to enable development on the wider internet to include
devices with far less capabilities than are currently supported =
today.<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><br>
Don<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div>

<div style=3D'border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt =
0in 0in 0in'>

<p class=3DMsoNormal><b><span =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span>=
</b><span
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
core-bounces@ietf.org [mailto:core-bounces@ietf.org] <b>On Behalf Of =
</b>Robert
Quattlebaum<br>
<b>Sent:</b> Friday, May 14, 2010 1:23 PM<br>
<b>To:</b> Angelo P. Castellani<br>
<b>Cc:</b> core<br>
<b>Subject:</b> Re: [core] Selecting a WG document for =
CoAP<o:p></o:p></span></p>

</div>

</div>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<div>

<div>

<div>

<p class=3DMsoNormal>Pardon if my reasoning seems a bit scattered, I =
have a lot
of thoughts on the subject but not a lot of time to write this =
email.<o:p></o:p></p>

</div>

<div>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=3DMsoNormal>It was my hope that CoAP might be the protocol to =
which, if
devices conformed, I (as a consumer) would be able to know that they =
would be
able to interoperate&#8212;perhaps not without configuration, but at =
least
after such manual configuration they would be able to communicate with =
each
other without a third device translating things. Things like light =
switches,
motion sensors, moisture detectors, appliances, thermostats, etc. I was
imagining something akin to a modernized, push version of SNMP; at least =
in
spirit. (See &lt;<a
href=3D"http://www.ietf.org/mail-archive/web/core/current/msg00119.html">=
http://www.ietf.org/mail-archive/web/core/current/msg00119.html</a>&gt;
for a better example)<o:p></o:p></p>

</div>

<div>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=3DMsoNormal>My concern is that HTTP is a clearly client-server =
based
protocol, with a very clear delineation between the clients and the =
servers.
With CoAP, the cases where there is such a clear server/client =
delineation is
likely going to be much less common than cases where everyone is a peer. =
Thus
it seems reasonable to deviate (where appropriate) from the HTTP
model&#8212;even in cases where there is no direct HTTP analogue. As =
such, I
think having a SUBSCRIBE or PAIR method makes sense.<o:p></o:p></p>

</div>

<div>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=3DMsoNormal>All of these devices are stateful to some degree, =
but there
are two types of state: volatile (runtime) state, and&nbsp;non-volatile
(configuration) state. I think that the subscriptions/pairings should be =
a
non-volatile state. e.g.: no expirations. But I =
digress...<o:p></o:p></p>

</div>

<div>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=3DMsoNormal>Taking a step back, what is the compelling use case =
for a
strict mapping between HTTP and CoAP? I think HTTP might be useful as a =
model,
but I haven't really understood why we should make mapping between the =
two a
design consideration.<o:p></o:p></p>

</div>

<div>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=3DMsoNormal>(As a related side observation, I think what would =
help is
if we developed some specific use cases for how CoAP is envisioned to be =
used)<o:p></o:p></p>

</div>

<div>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=3DMsoNormal>On May 14, 2010, at 1:50 AM, Angelo P. Castellani =
wrote:<o:p></o:p></p>

</div>

<p class=3DMsoNormal><br>
<br>
<o:p></o:p></p>

<div>

<p class=3DMsoNormal>Point (a) is exactly about the very initial design =
approach
to define<br>
a new realization of REST (e.g.: CRUD methods were defined instead =
of<br>
standard HTTP methods) instead of a feature-limited adaptation of =
HTTP<br>
itself to constrained host/network environments.<br>
<br>
There was even discussion on defining mapping of various protocols =
to<br>
CoAP without clear focus on HTTP translation.<br>
<br>
Doubts were raised that CoAP may be following the &quot;reinvent =
HTTP&quot;<br>
road, killing itself just as WAP did. Discussion on =
URI-Code/BinaryURI<br>
(as detailed in the Transparent proxying CoAP mail) is just the tip =
of<br>
the iceberg.<br>
<br>
Draft -01 has made some valid enhancements on this topic (see HTTP<br>
methods), however the whole document subtly imply this design<br>
objective throughout.<br>
<br>
In my humble opinion the direction that can be followed is: If<br>
HTTP/TCP is not viable on CoRE, we should find a way to adapt it to<br>
this environment.<br>
<br>
These days I was reading the R. Fielding PhD dissertation to fully<br>
understand why HTTP was designed in that way and what are the<br>
important principles to be preserved in a feature-limited compressed<br>
adaptation.<br>
<br>
Design philosophy: CoAP should be a *stateless* HTTP-translation and<br>
we should start by understanding how we can compress HTTP preserving<br>
its core principles to be *stateless*, providing an *uniform*<br>
interface to access *diverse* content organized in a *hierarchical*<br>
fashion, it should be easily *cacheable* and *translatable*.<br>
<br>
Being pratical:<br>
-* uniformity leads to only request and response (no notify, no =
other<br>
message types, REST should be only REQ/RES)<br>
<br>
-* hierarchy leads to URI and BinaryURI as in the transparent =
proxying<br>
discussion (no flat codes like URI-Code)<br>
<br>
-* stateless, translation, cacheability lead to URI-&gt;BinaryURI as =
a<br>
stateless mapping (avoid stateful tables)<br>
<br>
-* stateless and diversity suggest that content should be always =
fully<br>
described Content-Lenght (req), Content-Type (req) and<br>
Content-Enconding should be supported<br>
<br>
-* cacheable flag should be included always (not an option)<br>
<br>
-* stateless server and stateful resources? cookies are required =
(lets<br>
use binary cookies)<br>
<br>
<br>
Other considerations, important in my opinion, on the realization of<br>
the protocol (more technical here):<br>
<br>
-* translation and compression should focus on the URI<br>
<br>
&nbsp; a) It should be always present and not an option<br>
<br>
&nbsp; b) Using a flag we should understand whether we are using URI or =
the<br>
lossy BinaryURI encoding<br>
<br>
&nbsp; c) URI is ASCII-7 and is usually formed by chars, numbers and a =
few<br>
others? I propose to investigate compressed loss-less encodings. Now =
I<br>
can think at least two different encodings:<br>
&nbsp; &nbsp; &nbsp; i) Represent the / (supposed to be most frequent =
char in
URI)<br>
using the left-most unused bit in the octet<br>
&nbsp; &nbsp; &nbsp; ii) Represent most frequent chars (regex format:
[0-9a-zA-Z/])<br>
using 6 bit encoding, use a NULL (\x00) octet to signal that an<br>
uncompressed char is following. Every 3 compressed chars we have 6<br>
unused bits that can map another char (0.75 ratio in the best case,<br>
other cases to be evaluated).<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maybe some predefined =
vocabularies
can be agreed, and the used<br>
vocabulary chosen in a preceding field (vocabulary 2 example:<br>
[a-zA-Z%+._/\|=3D&amp;?-])<br>
<br>
<br>
-* option translation issues (addressing complex implementation),<br>
general rule avoid variable length options (harder to handle):<br>
<br>
&nbsp;a) Messages with Payload should always carry Content-Length =
and<br>
Content-Type before the payload<br>
<br>
&nbsp;b) Define which are the well-known request and response options =
we<br>
want to support, without merging them (it seems not a good choice<br>
because many are response specific only, and many other request<br>
specific only).<br>
&nbsp; &nbsp; &nbsp;Well-known options present in the message should be
represented<br>
in a binary bitmask (like in 6LoWPAN HC) and carried in-line<br>
(fixed-length is an important requirement, however variable length =
can<br>
be handled if cannot be avoided)<br>
&nbsp;&nbsp;&nbsp;&nbsp;When similar options are available may be =
beneficial to
prefer<br>
the simplest and easiest to compress (fixed-length).<br>
&nbsp;&nbsp;&nbsp;&nbsp;Example: Last-Modified should be preferred to =
Etag, (1)
it can be<br>
represented as an unsigned integer, (2) with a binary flag<br>
representing &quot;Now&quot; its insertion can be delegated to the =
HTTP<br>
translating entity, (3) supports conditional GET.<br>
<br>
&nbsp;c) Other options compressed with the URI style encoding =
(better<br>
vocabulary here is [a-zA-Z%+._/\|=3D&amp;?-])<br>
<br>
<br>
I'm quite confident that the final compression ratio is good and, if<br>
properly investigated, it should retain the ability to do =
CoAP-&gt;HTTP<br>
translation too (Host option required).<br>
<br>
Moreover using CoAP realized like this leads to an easier<br>
straightforward C implementation, mainly thanks to many specific<br>
details especially bitmasks, fixed-length options, bitwise =
operations.<br>
<br>
I hope I was able to give an idea of my thinking on these issues. A<br>
more exhaustive and detailed list of the issues is not easy to =
provide<br>
by e-mail, but I will be happy to draft a document with more details<br>
if this is considered as an useful contribution to this discussion.<br>
<br>
Best,<br>
Angelo<br>
<br>
On Thu, May 13, 2010 at 16:57, Cullen Jennings &lt;<a
href=3D"mailto:fluffy@cisco.com">fluffy@cisco.com</a>&gt; wrote:<br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>Angelo,<o:p></o:p></p>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>I may be reading too much in between the lines =
here, but I
think you are raising the overall design question of should we use some =
form of
compressed HTTP, where we preserver the semantics of HTTP but encode it
differently, or should we develop a protocol with a subset of the =
semantics of
HTTP. Perhaps I have this all wrong and you are not raising that. Could =
you
outline some proposed solutions to your a,b,c problems below and perhaps =
say a
bit more about what the problem is. Once I understood a bit more about =
how you
would propose to design the protocol to mitigate these problems, I think =
that
would help everyone make informed choices.<o:p></o:p></p>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>Thanks, Cullen<o:p></o:p></p>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>Few more questions inline ....<o:p></o:p></p>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>On May 13, 2010, at 5:24 AM, Angelo P. Castellani =
wrote:<o:p></o:p></p>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>Dear C. Bormann, all,<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>before deciding for the final direction, I've the =
following<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>observations about =
draft-shelby-core-coap-01<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>While I mostly share Zach's view of the protocol =
approach,
and<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>appreciate many aspects of the proposal, there are =
in my opinion
still<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>some open issues that need to be at least discussed =
before
the current<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>document can be selected.<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>In particular, I would like to highlight the =
following:<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>a) As it is now, it is not possible to have a
straightforward<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>translation of HTTP -&gt; CoAP and viceversa: =
see<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><a
href=3D"http://www.ietf.org/mail-archive/web/core/current/msg00133.html">=
http://www.ietf.org/mail-archive/web/core/current/msg00133.html</a>
(this<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>impacts the scalability of the web service model =
too)<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>On the topic of how to encode the URI. I think that =
needs
discussion but could easily happen (and would happen) even if the COAP =
document
was adopted as a WG item now.<o:p></o:p></p>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>b) Moreover, CoAP's implementation is not as simple =
as it
should be.<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>I've investigated the implementation and some =
design choices
(as<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>Options) are leading to very high program =
complexity (ROM)
on a<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>MSP430-based device.<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>Can you say more - particularly about proposals to =
fix it?<o:p></o:p></p>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>c) Finally when comparing HTTP message size with =
CoAP
message size,<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>the resulting compression isn't as good as you may =
expect.<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>Example:<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 =
B<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>CoAP: 24 B with options parsing procedure requiring =
an added<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>implementation complexity<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>Addressing all these points potentially leads to =
major
technical<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>modifications (especially point a) on the current =
draft,
hence it is<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>appropriate in my opinion to discuss these points =
before
making the<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>final decision.<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>Best regards,<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>Angelo P. Castellani<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>On Mon, May 10, 2010 at 18:51, Carsten Bormann =
&lt;<a
href=3D"mailto:cabo@tzi.org">cabo@tzi.org</a>&gt; wrote:<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>The CORE WG has a milestone to select a WG document =
for CoAP
in April:<o:p></o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><a =
href=3D"http://datatracker.ietf.org/wg/core/charter/">http://datatracker.=
ietf.org/wg/core/charter/</a><o:p></o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>...<o:p></o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>Apr 2010 &nbsp; &nbsp; &nbsp; &nbsp;Select WG =
document for
basis of the CoAP protocol<o:p></o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>Of the various documents that have been =
contributed,
draft-shelby-core-coap has significant discussion, as well as the =
largest
number of updates (including a previous version that was still called
-6lowapp-coap).<o:p></o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>Today, another updated version of that draft was =
announced.
&nbsp;See<o:p></o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><a
href=3D"http://www.ietf.org/mail-archive/web/core/current/msg00138.html">=
http://www.ietf.org/mail-archive/web/core/current/msg00138.html</a><o:p><=
/o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>for the announcement and<o:p></o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><a
href=3D"http://tools.ietf.org/html/draft-shelby-core-coap-01">http://tool=
s.ietf.org/html/draft-shelby-core-coap-01</a><o:p></o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>for the draft itself.<o:p></o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>However, as the authors say, there are still =
significant
TODOs.<o:p></o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>Are we in a state yet where we can say whether this =
is the
right direction for the WG to take?<o:p></o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>If yes, is it the right direction? &nbsp;Should we =
adopt it
as a WG document?<o:p></o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>If you don't think we can say yet, is there a set =
of
technical decisions you would like the authors to take with =
priority?<o:p></o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>Note that once a document has become a WG document, =
the authors
act as editors for the working group, making (and usually fleshing out =
the
details of) any change that the WG decides it needs.<o:p></o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>If you think we can still improve the draft, this =
is not an
obstacle to making it a WG document.<o:p></o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>But of course we shouldn't do that if we intend to =
reverse
its fundamental technical direction.<o:p></o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>In order to stay roughly in sync with our =
milestones, we
should reach at a decision on how to go forward this =
week.<o:p></o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>Gruesse, Carsten<o:p></o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p =
class=3DMsoNormal>_______________________________________________<o:p></o=
:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>core mailing list<o:p></o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><a =
href=3D"mailto:core@ietf.org">core@ietf.org</a><o:p></o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><a =
href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</a><o:p></o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p =
class=3DMsoNormal>_______________________________________________<o:p></o=
:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>core mailing list<o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><a =
href=3D"mailto:core@ietf.org">core@ietf.org</a><o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><a =
href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</a><o:p></o:p></p>

</blockquote>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>Cullen Jennings<o:p></o:p></p>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal>For corporate legal information go =
to:<o:p></o:p></p>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><a
href=3D"http://www.cisco.com/web/about/doing_business/legal/cri/index.htm=
l">http://www.cisco.com/web/about/doing_business/legal/cri/index.html</a>=
<o:p></o:p></p>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</blockquote>

<p class=3DMsoNormal =
style=3D'margin-bottom:12.0pt'>__________________________________________=
_____<br>
core mailing list<br>
<a href=3D"mailto:core@ietf.org">core@ietf.org</a><br>
https://www.ietf.org/mailman/listinfo/core<o:p></o:p></p>

</div>

</div>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<div>

<div>

<div>

<p class=3DMsoNormal><span =
style=3D'font-size:6.0pt;font-family:"Helvetica","sans-serif";
color:black'>__________________<o:p></o:p></span></p>

</div>

<div>

<p class=3DMsoNormal><strong><span =
style=3D'font-size:18.0pt;font-family:"Cochin","serif";
color:#333333'>Robert Quattlebaum</span></strong><span =
style=3D'font-size:18.0pt;
font-family:"Cochin","serif";color:#333333'><o:p></o:p></span></p>

</div>

<div>

<p class=3DMsoNormal><span =
style=3D'font-size:9.0pt;font-family:"Monaco","serif";
color:#333333'>Jabber:&nbsp;</span><span =
style=3D'font-size:10.5pt;font-family:
"Georgia","serif";color:#333333'><a =
href=3D"xmpp:darco@deepdarc.com"><span
class=3Dapple-style-span><span =
style=3D'color:#0000EE'>darco@deepdarc.com</span></span></a></span><span
style=3D'font-size:9.0pt;font-family:"Monaco","serif";color:#333333'><o:p=
></o:p></span></p>

</div>

<div>

<p class=3DMsoNormal><span =
style=3D'font-size:9.0pt;font-family:"Monaco","serif";
color:#333333'>eMail: &nbsp;</span><span =
style=3D'font-size:10.5pt;font-family:
"Georgia","serif";color:#333333'><a =
href=3D"mailto:darco@deepdarc.com"><span
class=3Dapple-style-span><span =
style=3D'color:#0000EE'>darco@deepdarc.com</span></span></a></span><span
style=3D'font-size:9.0pt;font-family:"Monaco","serif";color:#333333'><o:p=
></o:p></span></p>

</div>

<div>

<p class=3DMsoNormal><span =
style=3D'font-size:9.0pt;font-family:"Monaco","serif";
color:#333333'>www: &nbsp;&nbsp;&nbsp;</span><span =
class=3Dapple-style-span><span
style=3D'font-size:10.5pt;font-family:"Georgia","serif";color:#0000EE'><a=

href=3D"http://www.deepdarc.com/">http://www.deepdarc.com/</a></span></sp=
an><span
style=3D'font-size:9.0pt;font-family:"Monaco","serif";color:#333333'><o:p=
></o:p></span></p>

</div>

<div>

<p class=3DMsoNormal><span style=3D'font-size:9.0pt;font-family:"Lucida =
Grande","serif";
color:black'><o:p>&nbsp;</o:p></span></p>

</div>

</div>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</div>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</div>

</div>

</body>

</html>

------=_NextPart_000_0084_01CAF36A.05184500--


From darco@deepdarc.com  Fri May 14 14:04:54 2010
Return-Path: <darco@deepdarc.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 C91AB3A6888 for <core@core3.amsl.com>; Fri, 14 May 2010 14:04:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.369
X-Spam-Level: 
X-Spam-Status: No, score=-4.369 tagged_above=-999 required=5 tests=[AWL=0.370,  BAYES_20=-0.74, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4]
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 DWoCn1bA5PcS for <core@core3.amsl.com>; Fri, 14 May 2010 14:04:53 -0700 (PDT)
Received: from mail-out4.apple.com (mail-out4.apple.com [17.254.13.23]) by core3.amsl.com (Postfix) with ESMTP id 4CD583A6811 for <core@ietf.org>; Fri, 14 May 2010 14:04:53 -0700 (PDT)
Received: from relay13.apple.com (relay13.apple.com [17.128.113.29]) by mail-out4.apple.com (Postfix) with ESMTP id 3D41799C8012; Fri, 14 May 2010 14:04:44 -0700 (PDT)
X-AuditID: 1180711d-b7c17ae00000693e-f0-4bedbaecd65e
Received: from bellatrix.apple.com (bellatrix.apple.com [17.202.32.104]) (using TLS with cipher AES128-SHA (AES128-SHA/128 bits)) (Client did not present a certificate) by relay13.apple.com (Apple SCV relay) with SMTP id 4B.A5.26942.CEABDEB4; Fri, 14 May 2010 14:04:44 -0700 (PDT)
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: multipart/alternative; boundary=Apple-Mail-10--788859373
From: Robert Quattlebaum <darco@deepdarc.com>
In-Reply-To: <008301caf3a4$b1771d00$14655700$@sturek@att.net>
Date: Fri, 14 May 2010 14:04:43 -0700
Message-Id: <6202F1D7-8652-4C38-922B-5B47A965423D@deepdarc.com>
References: <3BB5F67A-9E57-4F81-B7C5-ABB1E136DAAC@tzi.org>	<AANLkTimYZLQyvG3Xn9BXqjiiIxuqe-43c0fveOF-bNSm@mail.gmail.com>	<568AEFD6-974D-4790-A2F8-84305B990BA9@cisco.com>	<AANLkTimzwXnCZZFBGNkL4I9UqzUMC-cW6XwewRR8Fl1Y@mail.gmail.com> <180ECE5C-7013-4A75-BE1F-DD479C128C38@deepdarc.com> <008301caf3a4$b1771d00$14655700$@sturek@att.net>
To: d.sturek@att.net
X-Mailer: Apple Mail (2.1078)
X-Brightmail-Tracker: AAAAAQAAAZE=
Cc: 'core' <core@ietf.org>
Subject: Re: [core] Selecting a WG document for CoAP
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, 14 May 2010 21:04:54 -0000

--Apple-Mail-10--788859373
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Hello Don!

On May 14, 2010, at 1:33 PM, Don Sturek wrote:

> Here are, I think, the assumptions with CoRE:
> 1)       For constrained devices, we would like to re-use the web =
services application design paradigm from the wider internet.  This =
would use HTTP
> 2)       However, we would like to avoid burdening the constrained =
devices with many of the services that drive larger code size and =
complexity.
> 3)       We would like to deploy CoRE using UDP to avoid overhead and =
complexity with TCP along with the issues around congestion control with =
TCP in mesh wireless networks.
> 4)      We would like to re-use any security and other services =
applicable to web services.
> =20
> The better we can envision a mapping between CoRE and HTTP, the easier =
it will be to enable development on the wider internet to include =
devices with far less capabilities than are currently supported today.


I'm not trying to be difficult, I'm just trying to grok the paradigm =
that is being proposed with CoAP. I'm having trouble imagining specific =
use cases and how this mapping would be helpful to making the wider =
internet include severely constrained devices. Would the border gateways =
also have a CoAP->HTTP proxy? If that is not what is being proposed, =
then it is still going to be significant work to get the wider internet =
to adopt CoAP... I'm thinking that they just won't, because they won't =
care.=20

__________________
Robert Quattlebaum
Jabber: darco@deepdarc.com
eMail:  darco@deepdarc.com
www:    http://www.deepdarc.com/




--Apple-Mail-10--788859373
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; =
"><div><div>Hello Don!</div><div><br></div><div>On May 14, 2010, at 1:33 =
PM, Don Sturek wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><span =
class=3D"Apple-style-span" style=3D"border-collapse: separate; =
font-family: Helvetica; font-size: medium; font-style: normal; =
font-variant: normal; font-weight: normal; letter-spacing: normal; =
line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; =
white-space: normal; widows: 2; word-spacing: 0px; =
-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: =
0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: =
auto; -webkit-text-stroke-width: 0px; "><div lang=3D"EN-US" link=3D"blue" =
vlink=3D"purple" style=3D"word-wrap: break-word; -webkit-nbsp-mode: =
space; -webkit-line-break: after-white-space; "><div =
class=3D"Section1"><div style=3D"margin-top: 0in; margin-right: 0in; =
margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: =
'Times New Roman', serif; "><span class=3D"Apple-style-span" =
style=3D"color: rgb(31, 73, 125); font-family: Calibri, sans-serif; =
font-size: 15px; ">Here are, I think, the assumptions with =
CoRE:</span></div><div style=3D"margin-top: 0in; margin-right: 0in; =
margin-bottom: 0.0001pt; margin-left: 0.5in; font-size: 12pt; =
font-family: 'Times New Roman', serif; text-indent: -0.25in; "><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125); "><span>1)<span style=3D"font: normal normal normal =
7pt/normal 'Times New Roman'; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125); ">&nbsp;For constrained devices, we would like to =
re-use the web services application design paradigm from the wider =
internet.&nbsp; This would use HTTP<o:p></o:p></span></div><div =
style=3D"margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; =
margin-left: 0.5in; font-size: 12pt; font-family: 'Times New Roman', =
serif; text-indent: -0.25in; "><span style=3D"font-size: 11pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125); =
"><span>2)<span style=3D"font: normal normal normal 7pt/normal 'Times =
New Roman'; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125); ">&nbsp;However, we would like to avoid burdening the =
constrained devices with many of the services that drive larger code =
size and complexity.<o:p></o:p></span></div><div style=3D"margin-top: =
0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0.5in; =
font-size: 12pt; font-family: 'Times New Roman', serif; text-indent: =
-0.25in; "><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125); "><span>3)<span style=3D"font: =
normal normal normal 7pt/normal 'Times New Roman'; =
">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125); ">&nbsp;We would like to deploy CoRE using UDP to =
avoid overhead and complexity with TCP along with the issues around =
congestion control with TCP in mesh wireless =
networks.<o:p></o:p></span></div><div style=3D"margin-top: 0in; =
margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0.5in; =
font-size: 12pt; font-family: 'Times New Roman', serif; text-indent: =
-0.25in; "><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125); "><span>4)<span style=3D"font: =
normal normal normal 7pt/normal 'Times New Roman'; =
">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span =
class=3D"Apple-converted-space">&nbsp;</span></span></span></span><span =
style=3D"font-size: 11pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125); ">We would like to re-use any security and other =
services applicable to web services.<o:p></o:p></span></div><div =
style=3D"margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; =
margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', =
serif; "><span style=3D"font-size: 11pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125); =
"><o:p>&nbsp;</o:p></span></div><div style=3D"margin-top: 0in; =
margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: =
12pt; font-family: 'Times New Roman', serif; "><span style=3D"font-size: =
11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">The =
better we can envision a mapping between CoRE and HTTP, the easier it =
will be to enable development on the wider internet to include devices =
with far less capabilities than are currently supported =
today.<o:p></o:p></span></div></div></div></span></blockquote></div><div><=
br></div><div>I'm not trying to be difficult, I'm just trying to grok =
the paradigm that is being proposed with CoAP. I'm having trouble =
imagining specific use cases and how this mapping would be helpful to =
making the wider internet include severely constrained devices. Would =
the border gateways also have a CoAP-&gt;HTTP proxy? If that is not what =
is being proposed, then it is still going to be significant work to get =
the wider internet to adopt CoAP... I'm thinking that they just won't, =
because they won't care.&nbsp;</div><div><br></div><div>
<span class=3D"Apple-style-span" style=3D"border-collapse: separate; =
color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: 2; text-align: =
auto; text-indent: 0px; text-transform: none; white-space: normal; =
widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; =
-webkit-border-vertical-spacing: 0px; =
-webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: =
auto; -webkit-text-stroke-width: 0; "><div><span =
class=3D"Apple-style-span" style=3D"font-family: 'Lucida Grande'; "><div =
style=3D"font-size: 8px; font-family: Helvetica; =
">__________________</div><div style=3D"font-size: 24px; color: rgb(51, =
51, 51); font-family: Cochin; "><strong style=3D"color: rgb(51, 51, 51); =
font-family: Cochin; font-size: 24px; font-weight: bold; ">Robert =
Quattlebaum</strong></div><div style=3D"font-size: 12px; color: rgb(51, =
51, 51); font-family: Monaco; ">Jabber:&nbsp;<span style=3D"font-size: =
14px; color: rgb(51, 51, 51); font-family: Georgia; "><a =
href=3D"xmpp:darco@deepdarc.com"><span class=3D"Apple-style-span" =
style=3D"color: rgb(0, 0, 238); =
">darco@deepdarc.com</span></a></span></div><div style=3D"font-size: =
12px; color: rgb(51, 51, 51); font-family: Monaco; ">eMail: &nbsp;<span =
style=3D"font-size: 14px; color: rgb(51, 51, 51); font-family: Georgia; =
"><a href=3D"mailto:darco@deepdarc.com"><span class=3D"Apple-style-span" =
style=3D"color: rgb(0, 0, 238); =
">darco@deepdarc.com</span></a></span></div><div style=3D"font-size: =
12px; color: rgb(51, 51, 51); font-family: Monaco; ">www: =
&nbsp;&nbsp;&nbsp;<span style=3D"font-size: 14px; color: rgb(51, 51, =
51); font-family: Georgia; "><span class=3D"Apple-style-span" =
style=3D"color: rgb(0, 0, 238); "><a =
href=3D"http://www.deepdarc.com/">http://www.deepdarc.com/</a></span></spa=
n></div><div><font class=3D"Apple-style-span" color=3D"#0000EE" =
face=3D"Georgia" size=3D"4"><span class=3D"Apple-style-span" =
style=3D"font-size: 14px; "><br =
class=3D"webkit-block-placeholder"></span></font></div></span></div></span=
><br class=3D"Apple-interchange-newline">
</div>
<br></body></html>=

--Apple-Mail-10--788859373--

From d.sturek@att.net  Fri May 14 16:25:50 2010
Return-Path: <d.sturek@att.net>
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 2C6673A6837 for <core@core3.amsl.com>; Fri, 14 May 2010 16:25:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.486
X-Spam-Level: 
X-Spam-Status: No, score=0.486 tagged_above=-999 required=5 tests=[AWL=-1.300,  BAYES_50=0.001, HTML_MESSAGE=0.001, IP_NOT_FRIENDLY=0.334, MSGID_MULTIPLE_AT=1.449, UNPARSEABLE_RELAY=0.001]
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 GyrOgQovA9u8 for <core@core3.amsl.com>; Fri, 14 May 2010 16:25:44 -0700 (PDT)
Received: from smtp110.sbc.mail.gq1.yahoo.com (smtp110.sbc.mail.gq1.yahoo.com [67.195.14.95]) by core3.amsl.com (Postfix) with SMTP id C2BDF3A6829 for <core@ietf.org>; Fri, 14 May 2010 16:25:44 -0700 (PDT)
Received: (qmail 36049 invoked from network); 14 May 2010 23:25:33 -0000
Received: from wsip-174-78-56-227.sd.sd.cox.net (d.sturek@174.78.56.227 with login) by smtp110.sbc.mail.gq1.yahoo.com with SMTP; 14 May 2010 16:25:32 -0700 PDT
X-Yahoo-SMTP: fvjol_aswBAraSJvMLe2r1XTzhBhbFxY8q8c3jo-
X-YMail-OSG: .NEKzikVM1mgwWvX_g55SZIjY7vpkxPMSqFgrNWOT.FzO4Q8T5piEjAhmTlWAiuweEL_PKO0QNr6Z_RjbrkSmLt2OASymRs_vxNYU8NHydGz71ui65MxogjYteiGcw1nun1BfabtL4DSkLZYoHj8LuKqx6.9Lj0ltzBhDb2hmhZpU6Ugq1Ndd_SAX1Q6jlPkYa9u1PXgGdVLBHwHQM42l6RIB.rmPZiz59jmDYjSL9VsIZZWMgwBNgcvNCcgDYTbDz2_X6zNMr_M0_HzFUo4BriQGkEMw4mInt7.8yueiIb7iN60IQ--
X-Yahoo-Newman-Property: ymail-3
From: "Don Sturek" <d.sturek@att.net>
To: "'Robert Quattlebaum'" <darco@deepdarc.com>
References: <3BB5F67A-9E57-4F81-B7C5-ABB1E136DAAC@tzi.org>	<AANLkTimYZLQyvG3Xn9BXqjiiIxuqe-43c0fveOF-bNSm@mail.gmail.com>	<568AEFD6-974D-4790-A2F8-84305B990BA9@cisco.com>	<AANLkTimzwXnCZZFBGNkL4I9UqzUMC-cW6XwewRR8Fl1Y@mail.gmail.com> <180ECE5C-7013-4A75-BE1F-DD479C128C38@deepdarc.com> <008301caf3a4$b1771d00$14655700$@sturek@att.net> <6202F1D7-8652-4C38-922B-5B47A965423D@deepdarc.com>
In-Reply-To: <6202F1D7-8652-4C38-922B-5B47A965423D@deepdarc.com>
Date: Fri, 14 May 2010 16:25:31 -0700
Message-ID: <00f001caf3bc$bf6aa900$3e3ffb00$@sturek@att.net>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_00F1_01CAF382.130BD100"
X-Mailer: Microsoft Office Outlook 12.0
Thread-Index: AcrzqRRaWm6KJ84aTm+QEwTAerI2QgADd/zw
Content-Language: en-us
Cc: 'core' <core@ietf.org>
Subject: Re: [core] Selecting a WG document for CoAP
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: d.sturek@att.net
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, 14 May 2010 23:25:50 -0000

This is a multi-part message in MIME format.

------=_NextPart_000_00F1_01CAF382.130BD100
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit

Hi Robert,

 

The original bar BOF and BOF discussed a device called "CoGII" which was a
gateway from CoAP to and from HTTP.  That feature was dropped out of the
charter for CoRE.

 

That said, I think the hope is that some type of obvious mapping is
supported.  If not, we have to hope CoRE takes off as a programming
interface on the wider internet else CoRE will be supporting only machine to
machine exchange.

 

Don

 

 

From: Robert Quattlebaum [mailto:darco@deepdarc.com] 
Sent: Friday, May 14, 2010 2:05 PM
To: d.sturek@att.net
Cc: 'Angelo P. Castellani'; 'core'
Subject: Re: [core] Selecting a WG document for CoAP

 

Hello Don!

 

On May 14, 2010, at 1:33 PM, Don Sturek wrote:





Here are, I think, the assumptions with CoRE:

1)       For constrained devices, we would like to re-use the web services
application design paradigm from the wider internet.  This would use HTTP

2)       However, we would like to avoid burdening the constrained devices
with many of the services that drive larger code size and complexity.

3)       We would like to deploy CoRE using UDP to avoid overhead and
complexity with TCP along with the issues around congestion control with TCP
in mesh wireless networks.

4)      We would like to re-use any security and other services applicable
to web services.

 

The better we can envision a mapping between CoRE and HTTP, the easier it
will be to enable development on the wider internet to include devices with
far less capabilities than are currently supported today.

 

I'm not trying to be difficult, I'm just trying to grok the paradigm that is
being proposed with CoAP. I'm having trouble imagining specific use cases
and how this mapping would be helpful to making the wider internet include
severely constrained devices. Would the border gateways also have a
CoAP->HTTP proxy? If that is not what is being proposed, then it is still
going to be significant work to get the wider internet to adopt CoAP... I'm
thinking that they just won't, because they won't care. 

 

__________________

Robert Quattlebaum

Jabber:  <xmpp:darco@deepdarc.com> darco@deepdarc.com

eMail:   <mailto:darco@deepdarc.com> darco@deepdarc.com

www:    http://www.deepdarc.com/

 

 

 


------=_NextPart_000_00F1_01CAF382.130BD100
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:x=3D"urn:schemas-microsoft-com:office:excel" =
xmlns:p=3D"urn:schemas-microsoft-com:office:powerpoint" =
xmlns:a=3D"urn:schemas-microsoft-com:office:access" =
xmlns:dt=3D"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" =
xmlns:s=3D"uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" =
xmlns:rs=3D"urn:schemas-microsoft-com:rowset" xmlns:z=3D"#RowsetSchema" =
xmlns:b=3D"urn:schemas-microsoft-com:office:publisher" =
xmlns:ss=3D"urn:schemas-microsoft-com:office:spreadsheet" =
xmlns:c=3D"urn:schemas-microsoft-com:office:component:spreadsheet" =
xmlns:odc=3D"urn:schemas-microsoft-com:office:odc" =
xmlns:oa=3D"urn:schemas-microsoft-com:office:activation" =
xmlns:html=3D"http://www.w3.org/TR/REC-html40" =
xmlns:q=3D"http://schemas.xmlsoap.org/soap/envelope/" =
xmlns:rtc=3D"http://microsoft.com/officenet/conferencing" =
xmlns:D=3D"DAV:" xmlns:Repl=3D"http://schemas.microsoft.com/repl/" =
xmlns:mt=3D"http://schemas.microsoft.com/sharepoint/soap/meetings/" =
xmlns:x2=3D"http://schemas.microsoft.com/office/excel/2003/xml" =
xmlns:ppda=3D"http://www.passport.com/NameSpace.xsd" =
xmlns:ois=3D"http://schemas.microsoft.com/sharepoint/soap/ois/" =
xmlns:dir=3D"http://schemas.microsoft.com/sharepoint/soap/directory/" =
xmlns:ds=3D"http://www.w3.org/2000/09/xmldsig#" =
xmlns:dsp=3D"http://schemas.microsoft.com/sharepoint/dsp" =
xmlns:udc=3D"http://schemas.microsoft.com/data/udc" =
xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema" =
xmlns:sub=3D"http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/"=
 xmlns:ec=3D"http://www.w3.org/2001/04/xmlenc#" =
xmlns:sp=3D"http://schemas.microsoft.com/sharepoint/" =
xmlns:sps=3D"http://schemas.microsoft.com/sharepoint/soap/" =
xmlns:xsi=3D"http://www.w3.org/2001/XMLSchema-instance" =
xmlns:udcs=3D"http://schemas.microsoft.com/data/udc/soap" =
xmlns:udcxf=3D"http://schemas.microsoft.com/data/udc/xmlfile" =
xmlns:udcp2p=3D"http://schemas.microsoft.com/data/udc/parttopart" =
xmlns:wf=3D"http://schemas.microsoft.com/sharepoint/soap/workflow/" =
xmlns:dsss=3D"http://schemas.microsoft.com/office/2006/digsig-setup" =
xmlns:dssi=3D"http://schemas.microsoft.com/office/2006/digsig" =
xmlns:mdssi=3D"http://schemas.openxmlformats.org/package/2006/digital-sig=
nature" =
xmlns:mver=3D"http://schemas.openxmlformats.org/markup-compatibility/2006=
" xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns:mrels=3D"http://schemas.openxmlformats.org/package/2006/relationshi=
ps" xmlns:spwp=3D"http://microsoft.com/sharepoint/webpartpages" =
xmlns:ex12t=3D"http://schemas.microsoft.com/exchange/services/2006/types"=
 =
xmlns:ex12m=3D"http://schemas.microsoft.com/exchange/services/2006/messag=
es" =
xmlns:pptsl=3D"http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/=
" =
xmlns:spsl=3D"http://microsoft.com/webservices/SharePointPortalServer/Pub=
lishedLinksService" xmlns:Z=3D"urn:schemas-microsoft-com:" =
xmlns:st=3D"&#1;" xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Helvetica;
	panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:"Lucida Grande";
	panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Cochin;
	panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Monaco;
	panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Georgia;
	panose-1:2 4 5 2 5 4 5 2 3 3;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
span.apple-style-span
	{mso-style-name:apple-style-span;}
span.apple-converted-space
	{mso-style-name:apple-converted-space;}
span.EmailStyle20
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
	{page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple style=3D'word-wrap: =
break-word;
-webkit-nbsp-mode: space;-webkit-line-break: after-white-space'>

<div class=3DSection1>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Hi Robert,<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>The original bar BOF and BOF discussed a device called =
&#8220;CoGII&#8221;
which was a gateway from CoAP to and from HTTP.&nbsp; That feature was =
dropped
out of the charter for CoRE.<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>That said, I think the hope is that some type of obvious =
mapping
is supported.&nbsp; If not, we have to hope CoRE takes off as a =
programming
interface on the wider internet else CoRE will be supporting only =
machine to
machine exchange.<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Don<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div>

<div style=3D'border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt =
0in 0in 0in'>

<p class=3DMsoNormal><b><span =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span>=
</b><span
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Robert =
Quattlebaum
[mailto:darco@deepdarc.com] <br>
<b>Sent:</b> Friday, May 14, 2010 2:05 PM<br>
<b>To:</b> d.sturek@att.net<br>
<b>Cc:</b> 'Angelo P. Castellani'; 'core'<br>
<b>Subject:</b> Re: [core] Selecting a WG document for =
CoAP<o:p></o:p></span></p>

</div>

</div>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<div>

<div>

<p class=3DMsoNormal>Hello Don!<o:p></o:p></p>

</div>

<div>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=3DMsoNormal>On May 14, 2010, at 1:33 PM, Don Sturek =
wrote:<o:p></o:p></p>

</div>

<p class=3DMsoNormal><br>
<br>
<o:p></o:p></p>

<div>

<div>

<div>

<p class=3DMsoNormal><span class=3Dapple-style-span><span =
style=3D'font-size:11.5pt;
font-family:"Calibri","sans-serif";color:#1F497D'>Here are, I think, the
assumptions with CoRE:</span></span><o:p></o:p></p>

</div>

<div style=3D'margin-left:.5in'>

<p class=3DMsoNormal style=3D'text-indent:-.25in'><span =
style=3D'font-size:11.0pt;
font-family:"Calibri","sans-serif";color:#1F497D'>1)</span><span
style=3D'font-size:7.0pt;color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<sp=
an
class=3Dapple-converted-space>&nbsp;</span></span><span =
style=3D'font-size:11.0pt;
font-family:"Calibri","sans-serif";color:#1F497D'>&nbsp;For constrained
devices, we would like to re-use the web services application design =
paradigm
from the wider internet.&nbsp; This would use HTTP</span><o:p></o:p></p>

</div>

<div style=3D'margin-left:.5in'>

<p class=3DMsoNormal style=3D'text-indent:-.25in'><span =
style=3D'font-size:11.0pt;
font-family:"Calibri","sans-serif";color:#1F497D'>2)</span><span
style=3D'font-size:7.0pt;color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<sp=
an
class=3Dapple-converted-space>&nbsp;</span></span><span =
style=3D'font-size:11.0pt;
font-family:"Calibri","sans-serif";color:#1F497D'>&nbsp;However, we =
would like
to avoid burdening the constrained devices with many of the services =
that drive
larger code size and complexity.</span><o:p></o:p></p>

</div>

<div style=3D'margin-left:.5in'>

<p class=3DMsoNormal style=3D'text-indent:-.25in'><span =
style=3D'font-size:11.0pt;
font-family:"Calibri","sans-serif";color:#1F497D'>3)</span><span
style=3D'font-size:7.0pt;color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<sp=
an
class=3Dapple-converted-space>&nbsp;</span></span><span =
style=3D'font-size:11.0pt;
font-family:"Calibri","sans-serif";color:#1F497D'>&nbsp;We would like to =
deploy
CoRE using UDP to avoid overhead and complexity with TCP along with the =
issues
around congestion control with TCP in mesh wireless =
networks.</span><o:p></o:p></p>

</div>

<div style=3D'margin-left:.5in'>

<p class=3DMsoNormal style=3D'text-indent:-.25in'><span =
style=3D'font-size:11.0pt;
font-family:"Calibri","sans-serif";color:#1F497D'>4)</span><span
style=3D'font-size:7.0pt;color:#1F497D'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<sp=
an
class=3Dapple-converted-space>&nbsp;</span></span><span =
style=3D'font-size:11.0pt;
font-family:"Calibri","sans-serif";color:#1F497D'>We would like to =
re-use any
security and other services applicable to web =
services.</span><o:p></o:p></p>

</div>

<div>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>&nbsp;</span><o:p></o:p></p>

</div>

<div>

<p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>The better we can envision a mapping between CoRE and =
HTTP, the
easier it will be to enable development on the wider internet to include
devices with far less capabilities than are currently supported =
today.</span><o:p></o:p></p>

</div>

</div>

</div>

</div>

<div>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=3DMsoNormal>I'm not trying to be difficult, I'm just trying to =
grok the
paradigm that is being proposed with CoAP. I'm having trouble imagining
specific use cases and how this mapping would be helpful to making the =
wider
internet include severely constrained devices. Would the border gateways =
also
have a CoAP-&gt;HTTP proxy? If that is not what is being proposed, then =
it is
still going to be significant work to get the wider internet to adopt =
CoAP...
I'm thinking that they just won't, because they won't =
care.&nbsp;<o:p></o:p></p>

</div>

<div>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<div>

<div>

<p class=3DMsoNormal><span =
style=3D'font-size:6.0pt;font-family:"Helvetica","sans-serif";
color:black'>__________________<o:p></o:p></span></p>

</div>

<div>

<p class=3DMsoNormal><strong><span =
style=3D'font-size:18.0pt;font-family:"Cochin","serif";
color:#333333'>Robert Quattlebaum</span></strong><span =
style=3D'font-size:18.0pt;
font-family:"Cochin","serif";color:#333333'><o:p></o:p></span></p>

</div>

<div>

<p class=3DMsoNormal><span =
style=3D'font-size:9.0pt;font-family:"Monaco","serif";
color:#333333'>Jabber:&nbsp;</span><span =
style=3D'font-size:10.5pt;font-family:
"Georgia","serif";color:#333333'><a =
href=3D"xmpp:darco@deepdarc.com"><span
class=3Dapple-style-span><span =
style=3D'color:#0000EE'>darco@deepdarc.com</span></span></a></span><span
style=3D'font-size:9.0pt;font-family:"Monaco","serif";color:#333333'><o:p=
></o:p></span></p>

</div>

<div>

<p class=3DMsoNormal><span =
style=3D'font-size:9.0pt;font-family:"Monaco","serif";
color:#333333'>eMail: &nbsp;</span><span =
style=3D'font-size:10.5pt;font-family:
"Georgia","serif";color:#333333'><a =
href=3D"mailto:darco@deepdarc.com"><span
class=3Dapple-style-span><span =
style=3D'color:#0000EE'>darco@deepdarc.com</span></span></a></span><span
style=3D'font-size:9.0pt;font-family:"Monaco","serif";color:#333333'><o:p=
></o:p></span></p>

</div>

<div>

<p class=3DMsoNormal><span =
style=3D'font-size:9.0pt;font-family:"Monaco","serif";
color:#333333'>www: &nbsp;&nbsp;&nbsp;</span><span =
class=3Dapple-style-span><span
style=3D'font-size:10.5pt;font-family:"Georgia","serif";color:#0000EE'><a=

href=3D"http://www.deepdarc.com/">http://www.deepdarc.com/</a></span></sp=
an><span
style=3D'font-size:9.0pt;font-family:"Monaco","serif";color:#333333'><o:p=
></o:p></span></p>

</div>

<div>

<p class=3DMsoNormal><span style=3D'font-size:9.0pt;font-family:"Lucida =
Grande","serif";
color:black'><o:p>&nbsp;</o:p></span></p>

</div>

</div>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</div>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</div>

</body>

</html>

------=_NextPart_000_00F1_01CAF382.130BD100--


From charles.palmer@onzo.com  Sat May 15 05:07:15 2010
Return-Path: <charles.palmer@onzo.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 331E03A6804 for <core@core3.amsl.com>; Sat, 15 May 2010 05:07:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.301
X-Spam-Level: *
X-Spam-Status: No, score=1.301 tagged_above=-999 required=5 tests=[BAYES_50=0.001, MANGLED_TOOL=2.3, 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 7K5bEPiwoktT for <core@core3.amsl.com>; Sat, 15 May 2010 05:07:12 -0700 (PDT)
Received: from service38.mimecast.com (service38.mimecast.com [212.2.3.166]) by core3.amsl.com (Postfix) with SMTP id EEB9D3A681D for <core@ietf.org>; Sat, 15 May 2010 05:07:10 -0700 (PDT)
Received: from onzosbs2k3.ONZO.local (217.138.5.2 [217.138.5.2]) by service38.mimecast.com; Sat, 15 May 2010 13:06:59 +0100
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Date: Sat, 15 May 2010 13:06:55 +0100
Message-ID: <E4DBD8AB11D2E54F89B23D7CD1065D8C01055E8A@onzosbs2k3.ONZO.local>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [core] Selecting a WG document for CoAP
Thread-Index: AcrzXymJJ03HfTKgSsyAPj23UsH0bQAwy+Kw
References: <3BB5F67A-9E57-4F81-B7C5-ABB1E136DAAC@tzi.org> <AANLkTimYZLQyvG3Xn9BXqjiiIxuqe-43c0fveOF-bNSm@mail.gmail.com> <1EFE7D38-0894-4557-84F9-5553E5EF6A04@sensinode.com> <AANLkTimyBXerdaekBb5w1RI8U5lHMF6gjX6onn65ihML@mail.gmail.com>
From: "Charles Palmer" <charles.palmer@onzo.com>
To: "core" <core@ietf.org>
X-MC-Unique: 110051513065900202
Content-Type: text/plain; charset=WINDOWS-1252
Content-Transfer-Encoding: quoted-printable
Subject: Re: [core] Selecting a WG document for CoAP
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: Sat, 15 May 2010 12:07:15 -0000

Dear all

Those interested in the subscribe/notify discussion might like to look
at the draft Smart Energy Profile 2.0 Application Protocol
Specification. It is available here:
http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicApp
licationProfile.aspx

It manages subscribe/notify by using POST. This seems to remove the need
for SUBSCRIBE and notify.

"Imagine a host A, which exposes a resource at http{s}://A/resource and
a second host B, which wishes to learn of changes to this resource. To
facilitate a subscription/ notification mechanism, A would expose a
resource http{s}://A/sub and B would expose a resource http{s}://B/ntfy.
To subscribe to notifications regarding http{s}://A/resource, B would
send a POST to the address http{s}://A/sub/B containing the URI of the
resource of interest (http{s}://A/resource) and the URI of B's
notification resource (http{s}://B/ntfy). Following this subscription
step, should A wish to notify B of a change to the resource addressed at
http{s}://A/resource, A would send a POST to the address
http{s}://B/ntfy containing the URI of the resource changed
(http{s}://A/resource) and the URI of A's subscription resource
(http{s}://A/sub/B), should A wish to change its subscription. The host
B can then query the resource (or not) at its leisure."

Sleepy nodes are not allowed to subscribe, and must poll.

Regards - Charles Palmer=20

-----Original Message-----
From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of
Angelo P. Castellani
Sent: 14 May 2010 13:14
To: Zach Shelby
Cc: core
Subject: Re: [core] Selecting a WG document for CoAP

Zach,

thanks for the comments, but please refer to my most recent e-mail for
a more specific list of technical issues I'm pointing to.

I want to do only a little integration to what I've written there.

In my very personal opinion, to maximize adherence with the REST model
and minimize implementation effort SUBSCRIBE and NOTIFY should be
mapped to methods (as discussed many times together...).

Uniform interface principle (Fielding PhD dissertation Section 5.1.5,
"The central feature that distinguishes the REST architectural style
[...]") states that to simplify the software architecture, resource
interfaces/interfaces should be as general as possible.

I agree with this principle in this specific case, mainly because
handling a special message type for notify leads node software design
to a more complex architecture.

The reason is that this new message type requires special handling and
introduces a complexity in the software modularization.

Best,
Angelo

On Fri, May 14, 2010 at 13:06, Zach Shelby <zach@sensinode.com> wrote:
> Hi Angelo,
>
> On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:
>
>> Dear C. Bormann, all,
>>
>> before deciding for the final direction, I've the following
>> observations about draft-shelby-core-coap-01
>>
>> While I mostly share Zach's view of the protocol approach, and
>> appreciate many aspects of the proposal, there are in my opinion
still
>> some open issues that need to be at least discussed before the
current
>> document can be selected.
>
> Of course there are plenty of open issues. Remember that working group
documents still undertake as much change and improvement as the WG
wants, so by no means is coap-01 set in stone. I would expect at least
5-10 more revisions still along the way.  Already several of your ideas
have been integrated into coap-01, and several more are under
consideration, so it is coming along. Patience ;-)
>
>>
>> In particular, I would like to highlight the following:
>>
>> a) As it is now, it is not possible to have a straightforward
>> translation of HTTP -> CoAP and viceversa: see
>> http://www.ietf.org/mail-archive/web/core/current/msg00133.html (this
>> impacts the scalability of the web service model too)
>
> In coap-01 the Method names are now identical to HTTP methods. The
Req/Res interaction is a direct translation. The URI hierarchy is
compatible, and the URI binary code format we are still working on
obviously. The only thing that takes some state to translate is
Subscribe/Notify. But note, Subscribe/Notify takes some state no matter
how you do it, even with HTTP-HTTP there is no clean and easy way to
handle subscriptions.
>
>>
>> b) Moreover, CoAP's implementation is not as simple as it should be.
>> I've investigated the implementation and some design choices (as
>> Options) are leading to very high program complexity (ROM) on a
>> MSP430-based device.
>
> This we can definitely improve, and already made several optimizations
from -00 to -01. Here I need some very concrete proposals though. Also
remember that many things are optional, for example subscribe/notify is
not required if you don't need it.
>
>> c) Finally when comparing HTTP message size with CoAP message size,
>> the resulting compression isn't as good as you may expect.
>>
>> Example:
>> HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
>> CoAP: 24 B with options parsing procedure requiring an added
>> implementation complexity
>
> Right, that is not how it will work in practice. Working with a real
HTTP server that HTTP header will be more complex, and on the CoAP side
you would chose shorter URLs. The biggest improvement possible here is
from using binary coded URLs of course. We need to look at a wider range
of interactions and real HTTP headers as well to check that we are
efficient enough.
>
>> Addressing all these points potentially leads to major technical
>> modifications (especially point a) on the current draft, hence it is
>> appropriate in my opinion to discuss these points before making the
>> final decision.
>
> I am not sure what else you have in mind for a). If we just forget
about Subscribe/Notify then you are good to go. But then you are also
not fulfilling the charter or the industry needs in that respect.
>
> Thanks,
> Zach
>
>>
>> Best regards,
>>
>> Angelo P. Castellani
>>
>>
>> On Mon, May 10, 2010 at 18:51, Carsten Bormann <cabo@tzi.org> wrote:
>>> The CORE WG has a milestone to select a WG document for CoAP in
April:
>>>
>>> http://datatracker.ietf.org/wg/core/charter/
>>> ...
>>> Apr 2010        Select WG document for basis of the CoAP protocol
>>>
>>> Of the various documents that have been contributed,
draft-shelby-core-coap has significant discussion, as well as the
largest number of updates (including a previous version that was still
called -6lowapp-coap).
>>>
>>> Today, another updated version of that draft was announced.  See
>>> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
>>> for the announcement and
>>> http://tools.ietf.org/html/draft-shelby-core-coap-01
>>> for the draft itself.
>>>
>>> However, as the authors say, there are still significant TODOs.
>>>
>>> Are we in a state yet where we can say whether this is the right
direction for the WG to take?
>>> If yes, is it the right direction?  Should we adopt it as a WG
document?
>>> If you don't think we can say yet, is there a set of technical
decisions you would like the authors to take with priority?
>>>
>>> Note that once a document has become a WG document, the authors act
as editors for the working group, making (and usually fleshing out the
details of) any change that the WG decides it needs.
>>> If you think we can still improve the draft, this is not an obstacle
to making it a WG document.
>>> But of course we shouldn't do that if we intend to reverse its
fundamental technical direction.
>>>
>>> In order to stay roughly in sync with our milestones, we should
reach at a decision on how to go forward this week.
>>>
>>> Gruesse, Carsten
>>>
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>
>> _______________________________________________
>> 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
>
>
_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

--------------------------------
Onzo is a limited company number 06097997 registered in England & Wales. Th=
e   =20
registered office is 6 Great Newport Street, London, WC2H 7JB, United Kingd=
om.

This email message may contain confidential and/or privileged information, =
and
is intended solely for the addressee(s). If you have received this email in=
    =20
error, please notify Onzo immediately. Unauthorised copying, disclosure or=
=20
distribution of the material in this email is forbidden.
--------------------------------


From izuzak@gmail.com  Sat May 15 06:29:04 2010
Return-Path: <izuzak@gmail.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 D52193A6971 for <core@core3.amsl.com>; Sat, 15 May 2010 06:29:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.301
X-Spam-Level: 
X-Spam-Status: No, score=0.301 tagged_above=-999 required=5 tests=[BAYES_50=0.001, MIME_8BIT_HEADER=0.3]
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 p-9BJxLvYjPP for <core@core3.amsl.com>; Sat, 15 May 2010 06:29:03 -0700 (PDT)
Received: from mail-ew0-f216.google.com (mail-ew0-f216.google.com [209.85.219.216]) by core3.amsl.com (Postfix) with ESMTP id E40413A6A3A for <core@ietf.org>; Sat, 15 May 2010 06:29:02 -0700 (PDT)
Received: by ewy8 with SMTP id 8so1169390ewy.28 for <core@ietf.org>; Sat, 15 May 2010 06:28:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:received:in-reply-to :references:from:date:message-id:subject:to:content-type; bh=JiN1FeLYOs/I4WSDNCkNyx1al3u/esE8zWFxIEwKaIw=; b=bNVhr81Hd9HgqNBRx1UmgEr3JyMBfBnoD4NMBmS9Tk19SO/OAbnTe1SYQbIeSqElxF aHFKfK9/ChLguH1EKl5syoqYKTE5fR9kGJDe4Z/jA7Ttx3kSjrEsYbUqc4vrcMAKESiu Wh3JW48XgDE1b1+UrfykZIy3l0xB1cbyRRSME=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; b=KU+lpGMjU0ISt9GDPMcQTOZ+bdTk19Gm47FLj3vcKQQyyJBZoYUN25e5pra2QJlTDP /sk3U4Exg23L0zGpJ7Ce7Jo+TaQjaAkRzpTs1YYxtXFMOYQdXPfVPci6sydmc7n/WN2J z3eGmMbTjvghta1Gnaw3R86Ho93JMUcjDoP0c=
Received: by 10.213.68.77 with SMTP id u13mr1026650ebi.9.1273930129386; Sat,  15 May 2010 06:28:49 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.213.34.13 with HTTP; Sat, 15 May 2010 06:28:19 -0700 (PDT)
In-Reply-To: <E4DBD8AB11D2E54F89B23D7CD1065D8C01055E8A@onzosbs2k3.ONZO.local>
References: <3BB5F67A-9E57-4F81-B7C5-ABB1E136DAAC@tzi.org>  <AANLkTimYZLQyvG3Xn9BXqjiiIxuqe-43c0fveOF-bNSm@mail.gmail.com>  <1EFE7D38-0894-4557-84F9-5553E5EF6A04@sensinode.com> <AANLkTimyBXerdaekBb5w1RI8U5lHMF6gjX6onn65ihML@mail.gmail.com>  <E4DBD8AB11D2E54F89B23D7CD1065D8C01055E8A@onzosbs2k3.ONZO.local>
From: =?UTF-8?B?SXZhbiDFvXXFvmFr?= <izuzak@gmail.com>
Date: Sat, 15 May 2010 15:28:19 +0200
Message-ID: <AANLkTildC_SYMz7dwPLm6IL5cgKZde_KbQz20X0lHoJZ@mail.gmail.com>
To: Charles Palmer <charles.palmer@onzo.com>, core <core@ietf.org>
Content-Type: text/plain; charset=UTF-8
Subject: Re: [core] Selecting a WG document for CoAP
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: Sat, 15 May 2010 13:29:04 -0000

Hi Charles, all,

On Sat, May 15, 2010 at 14:06, Charles Palmer <charles.palmer@onzo.com> wrote:
> Dear all
>
> Those interested in the subscribe/notify discussion might like to look
> at the draft Smart Energy Profile 2.0 Application Protocol
> Specification. It is available here:
> http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicApp
> licationProfile.aspx
>
> It manages subscribe/notify by using POST. This seems to remove the need
> for SUBSCRIBE and notify.
>
> "Imagine a host A, which exposes a resource at http{s}://A/resource and
> a second host B, which wishes to learn of changes to this resource. To
> facilitate a subscription/ notification mechanism, A would expose a
> resource http{s}://A/sub and B would expose a resource http{s}://B/ntfy.
> To subscribe to notifications regarding http{s}://A/resource, B would
> send a POST to the address http{s}://A/sub/B containing the URI of the
> resource of interest (http{s}://A/resource) and the URI of B's
> notification resource (http{s}://B/ntfy). Following this subscription
> step, should A wish to notify B of a change to the resource addressed at
> http{s}://A/resource, A would send a POST to the address
> http{s}://B/ntfy containing the URI of the resource changed
> (http{s}://A/resource) and the URI of A's subscription resource
> (http{s}://A/sub/B), should A wish to change its subscription. The host
> B can then query the resource (or not) at its leisure."

Underneath all this, as you probably know, is a simple concept called
webhooks which are callbacks for HTTP, - http://webhooks.org. The
webhooks community has also been iterating this design of a HTTP-level
publish-subscribe mechanism for arbitrary content:
http://webhooks.pbworks.com/RESTful-WebHooks

Since the number of subscribers for a specific resource could
potentially be very large (thus making the notification process
costly), another thing to look at is PubSubHubBub which enables
scalable distribution of notifications by use of intermediary hubs -
http://code.google.com/p/pubsubhubbub/. In essence, PubSubHubBub is a
protocol based on webhooks, so standard HTTP methods are used.
Although currently supporting only subscribing to and notifying
ATOM/RSS content, one of the the next versions will support arbitrary
content.

Best,
Ivan

From guido.moritz@uni-rostock.de  Sun May 16 23:53:19 2010
Return-Path: <guido.moritz@uni-rostock.de>
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 A2CB03A6866 for <core@core3.amsl.com>; Sun, 16 May 2010 23:53:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.701
X-Spam-Level: 
X-Spam-Status: No, score=-1.701 tagged_above=-999 required=5 tests=[AWL=-0.500, BAYES_60=1, HELO_EQ_DE=0.35, MSGID_MULTIPLE_AT=1.449, RCVD_IN_DNSWL_MED=-4]
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 n-5drH+QLaju for <core@core3.amsl.com>; Sun, 16 May 2010 23:53:18 -0700 (PDT)
Received: from ida.uni-rostock.de (ida.uni-rostock.de [139.30.8.34]) by core3.amsl.com (Postfix) with ESMTP id 8E8713A68AE for <core@ietf.org>; Sun, 16 May 2010 23:53:17 -0700 (PDT)
Received: from email2.uni-rostock.de (139.30.8.209) by ida.uni-rostock.de (139.30.8.162) with Microsoft SMTP Server (TLS) id 8.2.254.0; Mon, 17 May 2010 08:53:08 +0200
Received: from Schlappi (139.30.201.226) by email2.uni-rostock.de (139.30.8.210) with Microsoft SMTP Server (TLS) id 8.2.254.0; Mon, 17 May 2010 08:53:07 +0200
From: Guido Moritz <guido.moritz@uni-rostock.de>
To: <core@ietf.org>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com> <004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de> <FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk>
In-Reply-To: <FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk>
Date: Mon, 17 May 2010 08:53:21 +0200
Message-ID: <002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Office Outlook 12.0
Thread-Index: AcrxTf4ak2qgmnhIQIqfo77oXw6hCAAiuZtgAAERdbAA6/6R0A==
Content-Language: de
Subject: Re: [core] Core UDP vs TCP : Redux
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: Mon, 17 May 2010 06:53:19 -0000

For example there is a SOAP-over-UDP binding defined at OASIS
http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=3Dws-dd
The intention is to carry UDP multicast and unicast discovery messages.

See also SOAP over SMTP http://www.pocketsoap.com/specs/smtpbinding/

However, what is interesting to be agnostic of the transport protocol =
and
define dependencies in such bindings and not in the protocol itself.

Guido


> -----Urspr=FCngliche Nachricht-----
> Von: L.Wood@surrey.ac.uk [mailto:L.Wood@surrey.ac.uk]
> Gesendet: Mittwoch, 12. Mai 2010 16:28
> An: Guido Moritz; core@ietf.org
> Betreff: RE: [core] Core UDP vs TCP : Redux
>=20
> HTTP doesn't _have_ to run over TCP:
> http://tools.ietf.org/html/draft-wood-dtnrg-http-dtn-delivery-05
> and decoupling HTTP from TCP would be a very good idea, as =
implementation
work
> to do so (e.g. HTTP over SCTP) is ongoing:
>
http://personal.ee.surrey.ac.uk/Personal/L.Wood/publications/talks.html#h=
ttp
-
> standalone
>=20
> The only SOAP binding I can find is that to HTTP:
> http://www.w3.org/TR/soap12-part2/#soapinhttp
> http://www.w3.org/TR/2007/REC-soap12-part1-20070427/#transpbindframew
>=20
> which does place SOAP binding firmly at 'concept' stage - one example =
to
claim
> that an entire range of possibilities exist and are implementable.
>=20
> Another example of this 'concept' is BEEP's transport profiles, for =
which
only
> a mapping to TCP is actually defined. Because nobody uses BEEP.
>=20
> L.
>=20
> -----Original Message-----
> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of
Guido
> Moritz
> Sent: 12 May 2010 14:54
> To: core@ietf.org
> Subject: Re: [core] Core UDP vs TCP : Redux
>=20
> Sorry, but I would not agree to say 'when you are able to use TCP, you =
are
> also able to use HTTP'. We made several measurements with UDP vs. TCP =
and
of
> course, connection setup takes longer for TCP. But a typical HTTP =
header
has a
> size >100 Byte (without any payload). Thus the connection setup =
overhead
is
> compensated due to large payload/headers itself. There might be
application
> scenarios where the designer wants to have reliable communication, but
still
> have small payload.
>=20
> I did not have read through the current core I-D extensively, but is =
it
> necessary to go so much into detail why to use UDP or TCP and how it
should be
> used? It might be reasonable to define a reliability (and maybe also
> fragmentation) extension to UDP and define UDP as the defualt, but why
should
> TCP be forbidden at all?
>=20
> One may argue about SOAP Web services in several points, but their =
binding
> concept is quite nice. SOAP can be bound to which transport mechanism
ever.
> This makes it applicable it different scenarios and the transport
> mechanisms/protocol can be changed without an effect on application
itself.
>=20
> Just my two cents,
> Guido
>=20
> > -----Urspr=FCngliche Nachricht-----
> > Von: core-bounces@ietf.org [mailto:core-bounces@ietf.org] Im Auftrag
> > von
> Zach
> > Shelby
> > Gesendet: Dienstag, 11. Mai 2010 23:07
> > An: Thomas Herbst
> > Cc: core@ietf.org
> > Betreff: Re: [core] Core UDP vs TCP : Redux
> >
> > +1
> >
> > Through writing a few revisions of these specs, I have also already
> > found
> TCP
> > to be really awkward. And the TCP negotiation discussions at the =
mike
> > in Anaheim made me even more skeptical. Tom is right, if you need =
TCP
> > then
> just
> > use HTTP ;-)
> >
> > Zach
> >
> > On May 11, 2010, at 18:49 , Thomas Herbst wrote:
> >
> > > After the discussion in Anaheim, I'm surprised that we need yet
> > > another
> > revisit to UDP and TCP for CORE.
> > >
> > > The Right Solution(tm) might well be to fix TCP such that it =
doesn't
> lose
> > its brains every time you drop a packet, and we could end up with an
> end-to-
> > end system where constrained devices might reasonably provide =
services
> > to normal hosts in the regular Internet,  However, transport work is
> > out of
> scope
> > for this WG.
> > >
> > > The second most right solution would be to implement CORE with a
> reliable
> > UDP protocol, as is done in much of the draft.  The "optional" TCP
> portions of
> > the draft are mostly increased complexity for no added benefit. If a
> device is
> > capable of running TCP and the network it works on is capable of
> supporting
> > TCP, you should just open a connection to Port 80 and use HTTP (or =
the
> > TCP port/protocol of your choice).  There are many protocols a host
> > MAY
> implement
> > and it is not appropriate for the draft to enumerate them.
> > >
> > > Let's remove all of the sections related to TCP in the draft.
> > >
> > > tom
> > >
> >
> > --
> > Zach Shelby, Head of Research, 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



From d.sturek@att.net  Mon May 17 05:43:08 2010
Return-Path: <d.sturek@att.net>
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 E84F63A69B1 for <core@core3.amsl.com>; Mon, 17 May 2010 05:43:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.804
X-Spam-Level: 
X-Spam-Status: No, score=-0.804 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, MIME_BASE64_BLANKS=0.041, MIME_BASE64_TEXT=1.753, UNPARSEABLE_RELAY=0.001]
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 GEdsWQQ-qmp4 for <core@core3.amsl.com>; Mon, 17 May 2010 05:43:07 -0700 (PDT)
Received: from smtp124-mob.biz.mail.mud.yahoo.com (smtp124-mob.biz.mail.mud.yahoo.com [209.191.84.227]) by core3.amsl.com (Postfix) with SMTP id 487E83A69DF for <core@ietf.org>; Mon, 17 May 2010 05:37:28 -0700 (PDT)
Received: (qmail 86169 invoked from network); 17 May 2010 12:37:17 -0000
Received: from bda-67-223-67-25.bise.na.blackberry.com (d.sturek@67.223.67.25 with xymcookie) by smtp124-mob.biz.mail.mud.yahoo.com with SMTP; 17 May 2010 05:37:17 -0700 PDT
X-Yahoo-SMTP: fvjol_aswBAraSJvMLe2r1XTzhBhbFxY8q8c3jo-
X-YMail-OSG: Pjw6ZDsVM1lNKFxG25J2oM82bjVDss2Tey2COr_LGNHVQwNP05Qnkreq4Dq7qdyozOdWuca4ZOkaENf4ZiUULWw1KAQfnJ_ruvauRliMnB4OIeAqaIainWbz8.WNflhO7FJyX4KO2VRy2Bch2DREV8kAfHU7Ut414Go2eRupRi4YdY7YPvQ8eBdZOUTc60V_4Jq4HassBhZK7fjGZfCU0IX5PROS0KT4YbU4E4mk067PmDuX0UpwHgIhWxtc5Zb5AaYbR9xbGv4wqtkHxHK21RVwkcTCerl7ERmT8iQK2nD0LOOdaRQ-
X-Yahoo-Newman-Property: ymail-3
X-rim-org-msg-ref-id: 2076146592
Message-ID: <2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry>
Content-Transfer-Encoding: base64
X-Priority: Normal
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de>
In-Reply-To: <002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de>
Sensitivity: Normal
Importance: Normal
To: "Guido Moritz" <guido.moritz@uni-rostock.de>, core-bounces@ietf.org, core@ietf.org
From: d.sturek@att.net
Date: Mon, 17 May 2010 12:41:21 +0000
Content-Type: text/plain; charset="Windows-1252"
MIME-Version: 1.0
Subject: Re: [core] Core UDP vs TCP : Redux
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: d.sturek@att.net
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: Mon, 17 May 2010 12:43:09 -0000

SGkgZ3VpZG8sDQoNCkkgdGhpbmsgdGhlIHRoaW5nIGlzIHRoaXMgaXMgbm90IHNvYXAgYnV0IHJl
c3QuICBJdCBpcyBmaW5lIHRvIGNyZWF0ZSBtYXBwaW5ncyBidXQgbm90IHRvIGNoYW5nZSB0aGUg
ZGVzaWduIGdvYWwgb2YgdXNpbmcgcmVzdC4NCg0KRG9uDQpTZW50IHZpYSBCbGFja0JlcnJ5IGZy
b20gVC1Nb2JpbGUNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IEd1aWRvIE1v
cml0eiA8Z3VpZG8ubW9yaXR6QHVuaS1yb3N0b2NrLmRlPg0KRGF0ZTogTW9uLCAxNyBNYXkgMjAx
MCAwODo1MzoyMSANClRvOiA8Y29yZUBpZXRmLm9yZz4NClN1YmplY3Q6IFJlOiBbY29yZV0gQ29y
ZSBVRFAgdnMgVENQIDogUmVkdXgNCg0KRm9yIGV4YW1wbGUgdGhlcmUgaXMgYSBTT0FQLW92ZXIt
VURQIGJpbmRpbmcgZGVmaW5lZCBhdCBPQVNJUw0KaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9j
b21taXR0ZWVzL3RjX2hvbWUucGhwP3dnX2FiYnJldj13cy1kZA0KVGhlIGludGVudGlvbiBpcyB0
byBjYXJyeSBVRFAgbXVsdGljYXN0IGFuZCB1bmljYXN0IGRpc2NvdmVyeSBtZXNzYWdlcy4NCg0K
U2VlIGFsc28gU09BUCBvdmVyIFNNVFAgaHR0cDovL3d3dy5wb2NrZXRzb2FwLmNvbS9zcGVjcy9z
bXRwYmluZGluZy8NCg0KSG93ZXZlciwgd2hhdCBpcyBpbnRlcmVzdGluZyB0byBiZSBhZ25vc3Rp
YyBvZiB0aGUgdHJhbnNwb3J0IHByb3RvY29sIGFuZA0KZGVmaW5lIGRlcGVuZGVuY2llcyBpbiBz
dWNoIGJpbmRpbmdzIGFuZCBub3QgaW4gdGhlIHByb3RvY29sIGl0c2VsZi4NCg0KR3VpZG8NCg0K
DQo+IC0tLS0tVXJzcHL8bmdsaWNoZSBOYWNocmljaHQtLS0tLQ0KPiBWb246IEwuV29vZEBzdXJy
ZXkuYWMudWsgW21haWx0bzpMLldvb2RAc3VycmV5LmFjLnVrXQ0KPiBHZXNlbmRldDogTWl0dHdv
Y2gsIDEyLiBNYWkgMjAxMCAxNjoyOA0KPiBBbjogR3VpZG8gTW9yaXR6OyBjb3JlQGlldGYub3Jn
DQo+IEJldHJlZmY6IFJFOiBbY29yZV0gQ29yZSBVRFAgdnMgVENQIDogUmVkdXgNCj4gDQo+IEhU
VFAgZG9lc24ndF9oYXZlXyB0byBydW4gb3ZlciBUQ1A6DQo+IGh0dHA6Ly90b29scy5pZXRmLm9y
Zy9odG1sL2RyYWZ0LXdvb2QtZHRucmctaHR0cC1kdG4tZGVsaXZlcnktMDUNCj4gYW5kIGRlY291
cGxpbmcgSFRUUCBmcm9tIFRDUCB3b3VsZCBiZSBhIHZlcnkgZ29vZCBpZGVhLCBhcyBpbXBsZW1l
bnRhdGlvbg0Kd29yaw0KPiB0byBkbyBzbyAoZS5nLiBIVFRQIG92ZXIgU0NUUCkgaXMgb25nb2lu
ZzoNCj4NCmh0dHA6Ly9wZXJzb25hbC5lZS5zdXJyZXkuYWMudWsvUGVyc29uYWwvTC5Xb29kL3B1
YmxpY2F0aW9ucy90YWxrcy5odG1sI2h0dHANCi0NCj4gc3RhbmRhbG9uZQ0KPiANCj4gVGhlIG9u
bHkgU09BUCBiaW5kaW5nIEkgY2FuIGZpbmQgaXMgdGhhdCB0byBIVFRQOg0KPiBodHRwOi8vd3d3
LnczLm9yZy9UUi9zb2FwMTItcGFydDIvI3NvYXBpbmh0dHANCj4gaHR0cDovL3d3dy53My5vcmcv
VFIvMjAwNy9SRUMtc29hcDEyLXBhcnQxLTIwMDcwNDI3LyN0cmFuc3BiaW5kZnJhbWV3DQo+IA0K
PiB3aGljaCBkb2VzIHBsYWNlIFNPQVAgYmluZGluZyBmaXJtbHkgYXQgJ2NvbmNlcHQnIHN0YWdl
IC0gb25lIGV4YW1wbGUgdG8NCmNsYWltDQo+IHRoYXQgYW4gZW50aXJlIHJhbmdlIG9mIHBvc3Np
YmlsaXRpZXMgZXhpc3QgYW5kIGFyZSBpbXBsZW1lbnRhYmxlLg0KPiANCj4gQW5vdGhlciBleGFt
cGxlIG9mIHRoaXMgJ2NvbmNlcHQnIGlzIEJFRVAncyB0cmFuc3BvcnQgcHJvZmlsZXMsIGZvciB3
aGljaA0Kb25seQ0KPiBhIG1hcHBpbmcgdG8gVENQIGlzIGFjdHVhbGx5IGRlZmluZWQuIEJlY2F1
c2Ugbm9ib2R5IHVzZXMgQkVFUC4NCj4gDQo+IEwuDQo+IA0KPiAtLS0tLU9yaWdpbmFsIE1lc3Nh
Z2UtLS0tLQ0KPiBGcm9tOiBjb3JlLWJvdW5jZXNAaWV0Zi5vcmcgW21haWx0bzpjb3JlLWJvdW5j
ZXNAaWV0Zi5vcmddIE9uIEJlaGFsZiBPZg0KR3VpZG8NCj4gTW9yaXR6DQo+IFNlbnQ6IDEyIE1h
eSAyMDEwIDE0OjU0DQo+IFRvOiBjb3JlQGlldGYub3JnDQo+IFN1YmplY3Q6IFJlOiBbY29yZV0g
Q29yZSBVRFAgdnMgVENQIDogUmVkdXgNCj4gDQo+IFNvcnJ5LCBidXQgSSB3b3VsZCBub3QgYWdy
ZWUgdG8gc2F5ICd3aGVuIHlvdSBhcmUgYWJsZSB0byB1c2UgVENQLCB5b3UgYXJlDQo+IGFsc28g
YWJsZSB0byB1c2UgSFRUUCcuIFdlIG1hZGUgc2V2ZXJhbCBtZWFzdXJlbWVudHMgd2l0aCBVRFAg
dnMuIFRDUCBhbmQNCm9mDQo+IGNvdXJzZSwgY29ubmVjdGlvbiBzZXR1cCB0YWtlcyBsb25nZXIg
Zm9yIFRDUC4gQnV0IGEgdHlwaWNhbCBIVFRQIGhlYWRlcg0KaGFzIGENCj4gc2l6ZSA+MTAwIEJ5
dGUgKHdpdGhvdXQgYW55IHBheWxvYWQpLiBUaHVzIHRoZSBjb25uZWN0aW9uIHNldHVwIG92ZXJo
ZWFkDQppcw0KPiBjb21wZW5zYXRlZCBkdWUgdG8gbGFyZ2UgcGF5bG9hZC9oZWFkZXJzIGl0c2Vs
Zi4gVGhlcmUgbWlnaHQgYmUNCmFwcGxpY2F0aW9uDQo+IHNjZW5hcmlvcyB3aGVyZSB0aGUgZGVz
aWduZXIgd2FudHMgdG8gaGF2ZSByZWxpYWJsZSBjb21tdW5pY2F0aW9uLCBidXQNCnN0aWxsDQo+
IGhhdmUgc21hbGwgcGF5bG9hZC4NCj4gDQo+IEkgZGlkIG5vdCBoYXZlIHJlYWQgdGhyb3VnaCB0
aGUgY3VycmVudCBjb3JlIEktRCBleHRlbnNpdmVseSwgYnV0IGlzIGl0DQo+IG5lY2Vzc2FyeSB0
byBnbyBzbyBtdWNoIGludG8gZGV0YWlsIHdoeSB0byB1c2UgVURQIG9yIFRDUCBhbmQgaG93IGl0
DQpzaG91bGQgYmUNCj4gdXNlZD8gSXQgbWlnaHQgYmUgcmVhc29uYWJsZSB0byBkZWZpbmUgYSBy
ZWxpYWJpbGl0eSAoYW5kIG1heWJlIGFsc28NCj4gZnJhZ21lbnRhdGlvbikgZXh0ZW5zaW9uIHRv
IFVEUCBhbmQgZGVmaW5lIFVEUCBhcyB0aGUgZGVmdWFsdCwgYnV0IHdoeQ0Kc2hvdWxkDQo+IFRD
UCBiZSBmb3JiaWRkZW4gYXQgYWxsPw0KPiANCj4gT25lIG1heSBhcmd1ZSBhYm91dCBTT0FQIFdl
YiBzZXJ2aWNlcyBpbiBzZXZlcmFsIHBvaW50cywgYnV0IHRoZWlyIGJpbmRpbmcNCj4gY29uY2Vw
dCBpcyBxdWl0ZSBuaWNlLiBTT0FQIGNhbiBiZSBib3VuZCB0byB3aGljaCB0cmFuc3BvcnQgbWVj
aGFuaXNtDQpldmVyLg0KPiBUaGlzIG1ha2VzIGl0IGFwcGxpY2FibGUgaXQgZGlmZmVyZW50IHNj
ZW5hcmlvcyBhbmQgdGhlIHRyYW5zcG9ydA0KPiBtZWNoYW5pc21zL3Byb3RvY29sIGNhbiBiZSBj
aGFuZ2VkIHdpdGhvdXQgYW4gZWZmZWN0IG9uIGFwcGxpY2F0aW9uDQppdHNlbGYuDQo+IA0KPiBK
dXN0IG15IHR3byBjZW50cywNCj4gR3VpZG8NCj4gDQo+ID4gLS0tLS1VcnNwcvxuZ2xpY2hlIE5h
Y2hyaWNodC0tLS0tDQo+ID4gVm9uOiBjb3JlLWJvdW5jZXNAaWV0Zi5vcmcgW21haWx0bzpjb3Jl
LWJvdW5jZXNAaWV0Zi5vcmddIEltIEF1ZnRyYWcNCj4gPiB2b24NCj4gWmFjaA0KPiA+IFNoZWxi
eQ0KPiA+IEdlc2VuZGV0OiBEaWVuc3RhZywgMTEuIE1haSAyMDEwIDIzOjA3DQo+ID4gQW46IFRo
b21hcyBIZXJic3QNCj4gPiBDYzogY29yZUBpZXRmLm9yZw0KPiA+IEJldHJlZmY6IFJlOiBbY29y
ZV0gQ29yZSBVRFAgdnMgVENQIDogUmVkdXgNCj4gPg0KPiA+ICsxDQo+ID4NCj4gPiBUaHJvdWdo
IHdyaXRpbmcgYSBmZXcgcmV2aXNpb25zIG9mIHRoZXNlIHNwZWNzLCBJIGhhdmUgYWxzbyBhbHJl
YWR5DQo+ID4gZm91bmQNCj4gVENQDQo+ID4gdG8gYmUgcmVhbGx5IGF3a3dhcmQuIEFuZCB0aGUg
VENQIG5lZ290aWF0aW9uIGRpc2N1c3Npb25zIGF0IHRoZSBtaWtlDQo+ID4gaW4gQW5haGVpbSBt
YWRlIG1lIGV2ZW4gbW9yZSBza2VwdGljYWwuIFRvbSBpcyByaWdodCwgaWYgeW91IG5lZWQgVENQ
DQo+ID4gdGhlbg0KPiBqdXN0DQo+ID4gdXNlIEhUVFAgOy0pDQo+ID4NCj4gPiBaYWNoDQo+ID4N
Cj4gPiBPbiBNYXkgMTEsIDIwMTAsIGF0IDE4OjQ5ICwgVGhvbWFzIEhlcmJzdCB3cm90ZToNCj4g
Pg0KPiA+ID4gQWZ0ZXIgdGhlIGRpc2N1c3Npb24gaW4gQW5haGVpbSwgSSdtIHN1cnByaXNlZCB0
aGF0IHdlIG5lZWQgeWV0DQo+ID4gPiBhbm90aGVyDQo+ID4gcmV2aXNpdCB0byBVRFAgYW5kIFRD
UCBmb3IgQ09SRS4NCj4gPiA+DQo+ID4gPiBUaGUgUmlnaHQgU29sdXRpb24odG0pIG1pZ2h0IHdl
bGwgYmUgdG8gZml4IFRDUCBzdWNoIHRoYXQgaXQgZG9lc24ndA0KPiBsb3NlDQo+ID4gaXRzIGJy
YWlucyBldmVyeSB0aW1lIHlvdSBkcm9wIGEgcGFja2V0LCBhbmQgd2UgY291bGQgZW5kIHVwIHdp
dGggYW4NCj4gZW5kLXRvLQ0KPiA+IGVuZCBzeXN0ZW0gd2hlcmUgY29uc3RyYWluZWQgZGV2aWNl
cyBtaWdodCByZWFzb25hYmx5IHByb3ZpZGUgc2VydmljZXMNCj4gPiB0byBub3JtYWwgaG9zdHMg
aW4gdGhlIHJlZ3VsYXIgSW50ZXJuZXQsICBIb3dldmVyLCB0cmFuc3BvcnQgd29yayBpcw0KPiA+
IG91dCBvZg0KPiBzY29wZQ0KPiA+IGZvciB0aGlzIFdHLg0KPiA+ID4NCj4gPiA+IFRoZSBzZWNv
bmQgbW9zdCByaWdodCBzb2x1dGlvbiB3b3VsZCBiZSB0byBpbXBsZW1lbnQgQ09SRSB3aXRoIGEN
Cj4gcmVsaWFibGUNCj4gPiBVRFAgcHJvdG9jb2wsIGFzIGlzIGRvbmUgaW4gbXVjaCBvZiB0aGUg
ZHJhZnQuICBUaGUgIm9wdGlvbmFsIiBUQ1ANCj4gcG9ydGlvbnMgb2YNCj4gPiB0aGUgZHJhZnQg
YXJlIG1vc3RseSBpbmNyZWFzZWQgY29tcGxleGl0eSBmb3Igbm8gYWRkZWQgYmVuZWZpdC4gSWYg
YQ0KPiBkZXZpY2UgaXMNCj4gPiBjYXBhYmxlIG9mIHJ1bm5pbmcgVENQIGFuZCB0aGUgbmV0d29y
ayBpdCB3b3JrcyBvbiBpcyBjYXBhYmxlIG9mDQo+IHN1cHBvcnRpbmcNCj4gPiBUQ1AsIHlvdSBz
aG91bGQganVzdCBvcGVuIGEgY29ubmVjdGlvbiB0byBQb3J0IDgwIGFuZCB1c2UgSFRUUCAob3Ig
dGhlDQo+ID4gVENQIHBvcnQvcHJvdG9jb2wgb2YgeW91ciBjaG9pY2UpLiAgVGhlcmUgYXJlIG1h
bnkgcHJvdG9jb2xzIGEgaG9zdA0KPiA+IE1BWQ0KPiBpbXBsZW1lbnQNCj4gPiBhbmQgaXQgaXMg
bm90IGFwcHJvcHJpYXRlIGZvciB0aGUgZHJhZnQgdG8gZW51bWVyYXRlIHRoZW0uDQo+ID4gPg0K
PiA+ID4gTGV0J3MgcmVtb3ZlIGFsbCBvZiB0aGUgc2VjdGlvbnMgcmVsYXRlZCB0byBUQ1AgaW4g
dGhlIGRyYWZ0Lg0KPiA+ID4NCj4gPiA+IHRvbQ0KPiA+ID4NCj4gPg0KPiA+IC0tDQo+ID4gWmFj
aCBTaGVsYnksIEhlYWQgb2YgUmVzZWFyY2gsIFNlbnNpbm9kZSBMdGQuDQo+ID4gaHR0cDovL3ph
Y2hzaGVsYnkub3JnICAtIE15IGJsb2cgIk9uIHRoZSBJbnRlcm5ldCBvZiBUaGluZ3MiDQo+ID4g
aHR0cDovLzZsb3dwYW4ubmV0IC0gTXkgYm9vayAiNkxvV1BBTjogVGhlIFdpcmVsZXNzIEVtYmVk
ZGVkIEludGVybmV0Ig0KPiA+IE1vYmlsZTogKzM1OCA0MCA3Nzk2Mjk3DQoNCg0KX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCmNvcmUgbWFpbGluZyBsaXN0
DQpjb3JlQGlldGYub3JnDQpodHRwczovL3d3dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Nv
cmUNCg==



From guido.moritz@uni-rostock.de  Mon May 17 06:58:11 2010
Return-Path: <guido.moritz@uni-rostock.de>
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 F1DCE3A682D for <core@core3.amsl.com>; Mon, 17 May 2010 06:58:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.95
X-Spam-Level: 
X-Spam-Status: No, score=-2.95 tagged_above=-999 required=5 tests=[AWL=1.250,  BAYES_00=-2.599, HELO_EQ_DE=0.35, J_CHICKENPOX_33=0.6, MSGID_MULTIPLE_AT=1.449, RCVD_IN_DNSWL_MED=-4]
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 pDo7LsNTQNIu for <core@core3.amsl.com>; Mon, 17 May 2010 06:58:10 -0700 (PDT)
Received: from ida.uni-rostock.de (ida.uni-rostock.de [139.30.8.34]) by core3.amsl.com (Postfix) with ESMTP id 8AE033A6A0F for <core@ietf.org>; Mon, 17 May 2010 06:58:07 -0700 (PDT)
Received: from email2.uni-rostock.de (139.30.8.209) by ida.uni-rostock.de (139.30.8.162) with Microsoft SMTP Server (TLS) id 8.2.254.0; Mon, 17 May 2010 15:57:52 +0200
Received: from Schlappi (139.30.201.226) by email2.uni-rostock.de (139.30.8.210) with Microsoft SMTP Server (TLS) id 8.2.254.0; Mon, 17 May 2010 15:57:52 +0200
From: Guido Moritz <guido.moritz@uni-rostock.de>
To: <core@ietf.org>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de> <2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry>
In-Reply-To: <2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry>
Date: Mon, 17 May 2010 15:58:05 +0200
Message-ID: <006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Office Outlook 12.0
Thread-Index: Acr1vbFVBl34iLLITuK1sBSl6DTocAACh2IQ
Content-Language: de
Subject: Re: [core] Core UDP vs TCP : Redux
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: Mon, 17 May 2010 13:58:12 -0000

Don

REST (apples) is an architectural style, SOAP (oranges) is a protocol, =
hard
to compare apples and oranges. BTW, it is possible to use SOAP for a =
RESTful
design also. See WS-RA for example:
http://www.w3.org/2008/08/ws/charter.html=20

But I didn't want to go to deep into this discussion. I just wanted to =
ask
if it is reasonable to bind the CORE protocol to UDP,TCP or whatever or =
if
it is possible to leave this open and design CORE extensible and =
flexible
enough. This is anyway not related to REST, SOA or any other =
architecture,
just a question of protocol design.

Guido

> -----Urspr=FCngliche Nachricht-----
> Von: d.sturek@att.net [mailto:d.sturek@att.net]
> Gesendet: Montag, 17. Mai 2010 14:41
> An: Guido Moritz; core-bounces@ietf.org; core@ietf.org
> Betreff: Re: [core] Core UDP vs TCP : Redux
>=20
> Hi guido,
>=20
> I think the thing is this is not soap but rest.  It is fine to create
mappings
> but not to change the design goal of using rest.
>=20
> Don
> Sent via BlackBerry from T-Mobile
>=20
> -----Original Message-----
> From: Guido Moritz <guido.moritz@uni-rostock.de>
> Date: Mon, 17 May 2010 08:53:21
> To: <core@ietf.org>
> Subject: Re: [core] Core UDP vs TCP : Redux
>=20
> For example there is a SOAP-over-UDP binding defined at OASIS
> http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=3Dws-dd
> The intention is to carry UDP multicast and unicast discovery =
messages.
>=20
> See also SOAP over SMTP http://www.pocketsoap.com/specs/smtpbinding/
>=20
> However, what is interesting to be agnostic of the transport protocol =
and
> define dependencies in such bindings and not in the protocol itself.
>=20
> Guido
>=20
>=20
> > -----Urspr=FCngliche Nachricht-----
> > Von: L.Wood@surrey.ac.uk [mailto:L.Wood@surrey.ac.uk]
> > Gesendet: Mittwoch, 12. Mai 2010 16:28
> > An: Guido Moritz; core@ietf.org
> > Betreff: RE: [core] Core UDP vs TCP : Redux
> >
> > HTTP doesn't_have_ to run over TCP:
> > http://tools.ietf.org/html/draft-wood-dtnrg-http-dtn-delivery-05
> > and decoupling HTTP from TCP would be a very good idea, as
implementation
> work
> > to do so (e.g. HTTP over SCTP) is ongoing:
> >
>
http://personal.ee.surrey.ac.uk/Personal/L.Wood/publications/talks.html#h=
ttp
> -
> > standalone
> >
> > The only SOAP binding I can find is that to HTTP:
> > http://www.w3.org/TR/soap12-part2/#soapinhttp
> > =
http://www.w3.org/TR/2007/REC-soap12-part1-20070427/#transpbindframew
> >
> > which does place SOAP binding firmly at 'concept' stage - one =
example to
> claim
> > that an entire range of possibilities exist and are implementable.
> >
> > Another example of this 'concept' is BEEP's transport profiles, for
which
> only
> > a mapping to TCP is actually defined. Because nobody uses BEEP.
> >
> > L.
> >
> > -----Original Message-----
> > From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of
> Guido
> > Moritz
> > Sent: 12 May 2010 14:54
> > To: core@ietf.org
> > Subject: Re: [core] Core UDP vs TCP : Redux
> >
> > Sorry, but I would not agree to say 'when you are able to use TCP, =
you
are
> > also able to use HTTP'. We made several measurements with UDP vs. =
TCP
and
> of
> > course, connection setup takes longer for TCP. But a typical HTTP =
header
> has a
> > size >100 Byte (without any payload). Thus the connection setup =
overhead
> is
> > compensated due to large payload/headers itself. There might be
> application
> > scenarios where the designer wants to have reliable communication, =
but
> still
> > have small payload.
> >
> > I did not have read through the current core I-D extensively, but is =
it
> > necessary to go so much into detail why to use UDP or TCP and how it
> should be
> > used? It might be reasonable to define a reliability (and maybe also
> > fragmentation) extension to UDP and define UDP as the defualt, but =
why
> should
> > TCP be forbidden at all?
> >
> > One may argue about SOAP Web services in several points, but their
binding
> > concept is quite nice. SOAP can be bound to which transport =
mechanism
> ever.
> > This makes it applicable it different scenarios and the transport
> > mechanisms/protocol can be changed without an effect on application
> itself.
> >
> > Just my two cents,
> > Guido
> >
> > > -----Urspr=FCngliche Nachricht-----
> > > Von: core-bounces@ietf.org [mailto:core-bounces@ietf.org] Im =
Auftrag
> > > von
> > Zach
> > > Shelby
> > > Gesendet: Dienstag, 11. Mai 2010 23:07
> > > An: Thomas Herbst
> > > Cc: core@ietf.org
> > > Betreff: Re: [core] Core UDP vs TCP : Redux
> > >
> > > +1
> > >
> > > Through writing a few revisions of these specs, I have also =
already
> > > found
> > TCP
> > > to be really awkward. And the TCP negotiation discussions at the =
mike
> > > in Anaheim made me even more skeptical. Tom is right, if you need =
TCP
> > > then
> > just
> > > use HTTP ;-)
> > >
> > > Zach
> > >
> > > On May 11, 2010, at 18:49 , Thomas Herbst wrote:
> > >
> > > > After the discussion in Anaheim, I'm surprised that we need yet
> > > > another
> > > revisit to UDP and TCP for CORE.
> > > >
> > > > The Right Solution(tm) might well be to fix TCP such that it =
doesn't
> > lose
> > > its brains every time you drop a packet, and we could end up with =
an
> > end-to-
> > > end system where constrained devices might reasonably provide =
services
> > > to normal hosts in the regular Internet,  However, transport work =
is
> > > out of
> > scope
> > > for this WG.
> > > >
> > > > The second most right solution would be to implement CORE with a
> > reliable
> > > UDP protocol, as is done in much of the draft.  The "optional" TCP
> > portions of
> > > the draft are mostly increased complexity for no added benefit. If =
a
> > device is
> > > capable of running TCP and the network it works on is capable of
> > supporting
> > > TCP, you should just open a connection to Port 80 and use HTTP (or =
the
> > > TCP port/protocol of your choice).  There are many protocols a =
host
> > > MAY
> > implement
> > > and it is not appropriate for the draft to enumerate them.
> > > >
> > > > Let's remove all of the sections related to TCP in the draft.
> > > >
> > > > tom
> > > >
> > >
> > > --
> > > Zach Shelby, Head of Research, 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
>=20
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core


From cabo@tzi.org  Mon May 17 07:27:38 2010
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 E65C43A6D14 for <core@core3.amsl.com>; Mon, 17 May 2010 07:27:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.035
X-Spam-Level: 
X-Spam-Status: No, score=-4.035 tagged_above=-999 required=5 tests=[AWL=-0.986, BAYES_50=0.001, HELO_EQ_DE=0.35, J_CHICKENPOX_33=0.6, RCVD_IN_DNSWL_MED=-4]
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 E9bBFwNgcat0 for <core@core3.amsl.com>; Mon, 17 May 2010 07:27:36 -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 D717028C104 for <core@ietf.org>; Mon, 17 May 2010 07:23:58 -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 o4HENeWk001356; Mon, 17 May 2010 16:23:40 +0200 (CEST)
Received: from [192.168.217.101] (p5489B387.dip.t-dialin.net [84.137.179.135]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by smtp-fb3.informatik.uni-bremen.de (Postfix) with ESMTP id 4C598D24B;  Mon, 17 May 2010 16:23:40 +0200 (CEST)
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: text/plain; charset=us-ascii
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de>
Date: Mon, 17 May 2010 16:23:39 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de> <2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry> <006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de>
To: Guido Moritz <guido.moritz@uni-rostock.de>
X-Mailer: Apple Mail (2.1078)
Cc: core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux
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: Mon, 17 May 2010 14:27:38 -0000

On May 17, 2010, at 15:58, Guido Moritz wrote:

> I just wanted to ask
> if it is reasonable to bind the CORE protocol to UDP,TCP or whatever =
or if
> it is possible to leave this open and design CORE extensible and =
flexible
> enough.

It may be hard to meet the working group's objective of addressing =
constrained node/networks while leaving the underlying protocol(s) open. =
 It may also be hard to meet this objective while inserting a =
subprotocol as complex as SOAP into the stack.

Gruesse, Carsten


From d.sturek@att.net  Mon May 17 07:44:54 2010
Return-Path: <d.sturek@att.net>
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 192E73A6D0A for <core@core3.amsl.com>; Mon, 17 May 2010 07:44:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.504
X-Spam-Level: 
X-Spam-Status: No, score=-0.504 tagged_above=-999 required=5 tests=[AWL=-0.300, BAYES_00=-2.599, J_CHICKENPOX_33=0.6, MIME_BASE64_BLANKS=0.041, MIME_BASE64_TEXT=1.753, UNPARSEABLE_RELAY=0.001]
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 EQQUsYiWmbze for <core@core3.amsl.com>; Mon, 17 May 2010 07:44:52 -0700 (PDT)
Received: from smtp128-mob.biz.mail.mud.yahoo.com (smtp128-mob.biz.mail.mud.yahoo.com [209.191.85.15]) by core3.amsl.com (Postfix) with SMTP id 013873A680D for <core@ietf.org>; Mon, 17 May 2010 07:43:52 -0700 (PDT)
Received: (qmail 69459 invoked from network); 17 May 2010 14:43:41 -0000
Received: from bda-67-223-67-25.bise.na.blackberry.com (d.sturek@67.223.67.25 with xymcookie) by smtp128-mob.biz.mail.mud.yahoo.com with SMTP; 17 May 2010 07:43:41 -0700 PDT
X-Yahoo-SMTP: fvjol_aswBAraSJvMLe2r1XTzhBhbFxY8q8c3jo-
X-YMail-OSG: Bb3f6sgVM1lDrOBOtxcji429SGvae7XOIxUAIzOav4t9Th8TzHDUDHf7ZRtcDTSTRtcbqQ.FtUunJqmb..PT4ns88.467qpDgQgt_o7xCtXLfEMKWQT8OjHadXHKqXHwrPZ2PZWWiRGMxzrACGdVkTEUFxVSUPKZT.ww3Psr.ZOntR._3w6hUEwpqflPpVjxjBtStFvzR8I7MCTtFrcQqpquHGs2tluUQ7.a3W5j2pU.c1ciNTR_UQ5_PzCltsf.Y0s7DCNhZGFmlJMpg.pauyPP4g7Zl7pCeJrzQDVXve5UuNayBQ--
X-Yahoo-Newman-Property: ymail-3
X-rim-org-msg-ref-id: 933784992
Message-ID: <933784992-1274107417-cardhu_decombobulator_blackberry.rim.net-1548422594-@bda054.bisx.prod.on.blackberry>
Content-Transfer-Encoding: base64
X-Priority: Normal
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de>
In-Reply-To: <006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de>
Sensitivity: Normal
Importance: Normal
To: "Guido Moritz" <guido.moritz@uni-rostock.de>, core-bounces@ietf.org, core@ietf.org
From: d.sturek@att.net
Date: Mon, 17 May 2010 14:47:45 +0000
Content-Type: text/plain; charset="Windows-1252"
MIME-Version: 1.0
Subject: Re: [core] Core UDP vs TCP : Redux
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: d.sturek@att.net
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: Mon, 17 May 2010 14:44:54 -0000

SGkgZ3VpZG8sDQoNCk15IHBvaW50IGlzIHRoYXQgcmVzdCBhcmNoaXRlY3R1cmUgbWFwcGVkIHRv
IG9uIG9uIHByb3RvY29sIGlzIG5vdCBzb2FwDQoNCkRvbg0KU2VudCB2aWEgQmxhY2tCZXJyeSBm
cm9tIFQtTW9iaWxlDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBHdWlkbyBN
b3JpdHogPGd1aWRvLm1vcml0ekB1bmktcm9zdG9jay5kZT4NCkRhdGU6IE1vbiwgMTcgTWF5IDIw
MTAgMTU6NTg6MDUgDQpUbzogPGNvcmVAaWV0Zi5vcmc+DQpTdWJqZWN0OiBSZTogW2NvcmVdIENv
cmUgVURQIHZzIFRDUCA6IFJlZHV4DQoNCkRvbg0KDQpSRVNUIChhcHBsZXMpIGlzIGFuIGFyY2hp
dGVjdHVyYWwgc3R5bGUsIFNPQVAgKG9yYW5nZXMpIGlzIGEgcHJvdG9jb2wsIGhhcmQNCnRvIGNv
bXBhcmUgYXBwbGVzIGFuZCBvcmFuZ2VzLiBCVFcsIGl0IGlzIHBvc3NpYmxlIHRvIHVzZSBTT0FQ
IGZvciBhIFJFU1RmdWwNCmRlc2lnbiBhbHNvLiBTZWUgV1MtUkEgZm9yIGV4YW1wbGU6DQpodHRw
Oi8vd3d3LnczLm9yZy8yMDA4LzA4L3dzL2NoYXJ0ZXIuaHRtbCANCg0KQnV0IEkgZGlkbid0IHdh
bnQgdG8gZ28gdG8gZGVlcCBpbnRvIHRoaXMgZGlzY3Vzc2lvbi4gSSBqdXN0IHdhbnRlZCB0byBh
c2sNCmlmIGl0IGlzIHJlYXNvbmFibGUgdG8gYmluZCB0aGUgQ09SRSBwcm90b2NvbCB0byBVRFAs
VENQIG9yIHdoYXRldmVyIG9yIGlmDQppdCBpcyBwb3NzaWJsZSB0byBsZWF2ZSB0aGlzIG9wZW4g
YW5kIGRlc2lnbiBDT1JFIGV4dGVuc2libGUgYW5kIGZsZXhpYmxlDQplbm91Z2guIFRoaXMgaXMg
YW55d2F5IG5vdCByZWxhdGVkIHRvIFJFU1QsIFNPQSBvciBhbnkgb3RoZXIgYXJjaGl0ZWN0dXJl
LA0KanVzdCBhIHF1ZXN0aW9uIG9mIHByb3RvY29sIGRlc2lnbi4NCg0KR3VpZG8NCg0KPiAtLS0t
LVVyc3By/G5nbGljaGUgTmFjaHJpY2h0LS0tLS0NCj4gVm9uOiBkLnN0dXJla0BhdHQubmV0IFtt
YWlsdG86ZC5zdHVyZWtAYXR0Lm5ldF0NCj4gR2VzZW5kZXQ6IE1vbnRhZywgMTcuIE1haSAyMDEw
IDE0OjQxDQo+IEFuOiBHdWlkbyBNb3JpdHo7IGNvcmUtYm91bmNlc0BpZXRmLm9yZzsgY29yZUBp
ZXRmLm9yZw0KPiBCZXRyZWZmOiBSZTogW2NvcmVdIENvcmUgVURQIHZzIFRDUCA6IFJlZHV4DQo+
IA0KPiBIaSBndWlkbywNCj4gDQo+IEkgdGhpbmsgdGhlIHRoaW5nIGlzIHRoaXMgaXMgbm90IHNv
YXAgYnV0IHJlc3QuICBJdCBpcyBmaW5lIHRvIGNyZWF0ZQ0KbWFwcGluZ3MNCj4gYnV0IG5vdCB0
byBjaGFuZ2UgdGhlIGRlc2lnbiBnb2FsIG9mIHVzaW5nIHJlc3QuDQo+IA0KPiBEb24NCj4gU2Vu
dCB2aWEgQmxhY2tCZXJyeSBmcm9tIFQtTW9iaWxlDQo+IA0KPiAtLS0tLU9yaWdpbmFsIE1lc3Nh
Z2UtLS0tLQ0KPiBGcm9tOiBHdWlkbyBNb3JpdHogPGd1aWRvLm1vcml0ekB1bmktcm9zdG9jay5k
ZT4NCj4gRGF0ZTogTW9uLCAxNyBNYXkgMjAxMCAwODo1MzoyMQ0KPiBUbzogPGNvcmVAaWV0Zi5v
cmc+DQo+IFN1YmplY3Q6IFJlOiBbY29yZV0gQ29yZSBVRFAgdnMgVENQIDogUmVkdXgNCj4gDQo+
IEZvciBleGFtcGxlIHRoZXJlIGlzIGEgU09BUC1vdmVyLVVEUCBiaW5kaW5nIGRlZmluZWQgYXQg
T0FTSVMNCj4gaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9jb21taXR0ZWVzL3RjX2hvbWUucGhw
P3dnX2FiYnJldj13cy1kZA0KPiBUaGUgaW50ZW50aW9uIGlzIHRvIGNhcnJ5IFVEUCBtdWx0aWNh
c3QgYW5kIHVuaWNhc3QgZGlzY292ZXJ5IG1lc3NhZ2VzLg0KPiANCj4gU2VlIGFsc28gU09BUCBv
dmVyIFNNVFAgaHR0cDovL3d3dy5wb2NrZXRzb2FwLmNvbS9zcGVjcy9zbXRwYmluZGluZy8NCj4g
DQo+IEhvd2V2ZXIsIHdoYXQgaXMgaW50ZXJlc3RpbmcgdG8gYmUgYWdub3N0aWMgb2YgdGhlIHRy
YW5zcG9ydCBwcm90b2NvbCBhbmQNCj4gZGVmaW5lIGRlcGVuZGVuY2llcyBpbiBzdWNoIGJpbmRp
bmdzIGFuZCBub3QgaW4gdGhlIHByb3RvY29sIGl0c2VsZi4NCj4gDQo+IEd1aWRvDQo+IA0KPiAN
Cj4gPiAtLS0tLVVyc3By/G5nbGljaGUgTmFjaHJpY2h0LS0tLS0NCj4gPiBWb246IEwuV29vZEBz
dXJyZXkuYWMudWsgW21haWx0bzpMLldvb2RAc3VycmV5LmFjLnVrXQ0KPiA+IEdlc2VuZGV0OiBN
aXR0d29jaCwgMTIuIE1haSAyMDEwIDE2OjI4DQo+ID4gQW46IEd1aWRvIE1vcml0ejsgY29yZUBp
ZXRmLm9yZw0KPiA+IEJldHJlZmY6IFJFOiBbY29yZV0gQ29yZSBVRFAgdnMgVENQIDogUmVkdXgN
Cj4gPg0KPiA+IEhUVFAgZG9lc24ndF9oYXZlXyB0byBydW4gb3ZlciBUQ1A6DQo+ID4gaHR0cDov
L3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtd29vZC1kdG5yZy1odHRwLWR0bi1kZWxpdmVyeS0w
NQ0KPiA+IGFuZCBkZWNvdXBsaW5nIEhUVFAgZnJvbSBUQ1Agd291bGQgYmUgYSB2ZXJ5IGdvb2Qg
aWRlYSwgYXMNCmltcGxlbWVudGF0aW9uDQo+IHdvcmsNCj4gPiB0byBkbyBzbyAoZS5nLiBIVFRQ
IG92ZXIgU0NUUCkgaXMgb25nb2luZzoNCj4gPg0KPg0KaHR0cDovL3BlcnNvbmFsLmVlLnN1cnJl
eS5hYy51ay9QZXJzb25hbC9MLldvb2QvcHVibGljYXRpb25zL3RhbGtzLmh0bWwjaHR0cA0KPiAt
DQo+ID4gc3RhbmRhbG9uZQ0KPiA+DQo+ID4gVGhlIG9ubHkgU09BUCBiaW5kaW5nIEkgY2FuIGZp
bmQgaXMgdGhhdCB0byBIVFRQOg0KPiA+IGh0dHA6Ly93d3cudzMub3JnL1RSL3NvYXAxMi1wYXJ0
Mi8jc29hcGluaHR0cA0KPiA+IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDcvUkVDLXNvYXAxMi1w
YXJ0MS0yMDA3MDQyNy8jdHJhbnNwYmluZGZyYW1ldw0KPiA+DQo+ID4gd2hpY2ggZG9lcyBwbGFj
ZSBTT0FQIGJpbmRpbmcgZmlybWx5IGF0ICdjb25jZXB0JyBzdGFnZSAtIG9uZSBleGFtcGxlIHRv
DQo+IGNsYWltDQo+ID4gdGhhdCBhbiBlbnRpcmUgcmFuZ2Ugb2YgcG9zc2liaWxpdGllcyBleGlz
dCBhbmQgYXJlIGltcGxlbWVudGFibGUuDQo+ID4NCj4gPiBBbm90aGVyIGV4YW1wbGUgb2YgdGhp
cyAnY29uY2VwdCcgaXMgQkVFUCdzIHRyYW5zcG9ydCBwcm9maWxlcywgZm9yDQp3aGljaA0KPiBv
bmx5DQo+ID4gYSBtYXBwaW5nIHRvIFRDUCBpcyBhY3R1YWxseSBkZWZpbmVkLiBCZWNhdXNlIG5v
Ym9keSB1c2VzIEJFRVAuDQo+ID4NCj4gPiBMLg0KPiA+DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNz
YWdlLS0tLS0NCj4gPiBGcm9tOiBjb3JlLWJvdW5jZXNAaWV0Zi5vcmcgW21haWx0bzpjb3JlLWJv
dW5jZXNAaWV0Zi5vcmddIE9uIEJlaGFsZiBPZg0KPiBHdWlkbw0KPiA+IE1vcml0eg0KPiA+IFNl
bnQ6IDEyIE1heSAyMDEwIDE0OjU0DQo+ID4gVG86IGNvcmVAaWV0Zi5vcmcNCj4gPiBTdWJqZWN0
OiBSZTogW2NvcmVdIENvcmUgVURQIHZzIFRDUCA6IFJlZHV4DQo+ID4NCj4gPiBTb3JyeSwgYnV0
IEkgd291bGQgbm90IGFncmVlIHRvIHNheSAnd2hlbiB5b3UgYXJlIGFibGUgdG8gdXNlIFRDUCwg
eW91DQphcmUNCj4gPiBhbHNvIGFibGUgdG8gdXNlIEhUVFAnLiBXZSBtYWRlIHNldmVyYWwgbWVh
c3VyZW1lbnRzIHdpdGggVURQIHZzLiBUQ1ANCmFuZA0KPiBvZg0KPiA+IGNvdXJzZSwgY29ubmVj
dGlvbiBzZXR1cCB0YWtlcyBsb25nZXIgZm9yIFRDUC4gQnV0IGEgdHlwaWNhbCBIVFRQIGhlYWRl
cg0KPiBoYXMgYQ0KPiA+IHNpemUgPjEwMCBCeXRlICh3aXRob3V0IGFueSBwYXlsb2FkKS4gVGh1
cyB0aGUgY29ubmVjdGlvbiBzZXR1cCBvdmVyaGVhZA0KPiBpcw0KPiA+IGNvbXBlbnNhdGVkIGR1
ZSB0byBsYXJnZSBwYXlsb2FkL2hlYWRlcnMgaXRzZWxmLiBUaGVyZSBtaWdodCBiZQ0KPiBhcHBs
aWNhdGlvbg0KPiA+IHNjZW5hcmlvcyB3aGVyZSB0aGUgZGVzaWduZXIgd2FudHMgdG8gaGF2ZSBy
ZWxpYWJsZSBjb21tdW5pY2F0aW9uLCBidXQNCj4gc3RpbGwNCj4gPiBoYXZlIHNtYWxsIHBheWxv
YWQuDQo+ID4NCj4gPiBJIGRpZCBub3QgaGF2ZSByZWFkIHRocm91Z2ggdGhlIGN1cnJlbnQgY29y
ZSBJLUQgZXh0ZW5zaXZlbHksIGJ1dCBpcyBpdA0KPiA+IG5lY2Vzc2FyeSB0byBnbyBzbyBtdWNo
IGludG8gZGV0YWlsIHdoeSB0byB1c2UgVURQIG9yIFRDUCBhbmQgaG93IGl0DQo+IHNob3VsZCBi
ZQ0KPiA+IHVzZWQ/IEl0IG1pZ2h0IGJlIHJlYXNvbmFibGUgdG8gZGVmaW5lIGEgcmVsaWFiaWxp
dHkgKGFuZCBtYXliZSBhbHNvDQo+ID4gZnJhZ21lbnRhdGlvbikgZXh0ZW5zaW9uIHRvIFVEUCBh
bmQgZGVmaW5lIFVEUCBhcyB0aGUgZGVmdWFsdCwgYnV0IHdoeQ0KPiBzaG91bGQNCj4gPiBUQ1Ag
YmUgZm9yYmlkZGVuIGF0IGFsbD8NCj4gPg0KPiA+IE9uZSBtYXkgYXJndWUgYWJvdXQgU09BUCBX
ZWIgc2VydmljZXMgaW4gc2V2ZXJhbCBwb2ludHMsIGJ1dCB0aGVpcg0KYmluZGluZw0KPiA+IGNv
bmNlcHQgaXMgcXVpdGUgbmljZS4gU09BUCBjYW4gYmUgYm91bmQgdG8gd2hpY2ggdHJhbnNwb3J0
IG1lY2hhbmlzbQ0KPiBldmVyLg0KPiA+IFRoaXMgbWFrZXMgaXQgYXBwbGljYWJsZSBpdCBkaWZm
ZXJlbnQgc2NlbmFyaW9zIGFuZCB0aGUgdHJhbnNwb3J0DQo+ID4gbWVjaGFuaXNtcy9wcm90b2Nv
bCBjYW4gYmUgY2hhbmdlZCB3aXRob3V0IGFuIGVmZmVjdCBvbiBhcHBsaWNhdGlvbg0KPiBpdHNl
bGYuDQo+ID4NCj4gPiBKdXN0IG15IHR3byBjZW50cywNCj4gPiBHdWlkbw0KPiA+DQo+ID4gPiAt
LS0tLVVyc3By/G5nbGljaGUgTmFjaHJpY2h0LS0tLS0NCj4gPiA+IFZvbjogY29yZS1ib3VuY2Vz
QGlldGYub3JnIFttYWlsdG86Y29yZS1ib3VuY2VzQGlldGYub3JnXSBJbSBBdWZ0cmFnDQo+ID4g
PiB2b24NCj4gPiBaYWNoDQo+ID4gPiBTaGVsYnkNCj4gPiA+IEdlc2VuZGV0OiBEaWVuc3RhZywg
MTEuIE1haSAyMDEwIDIzOjA3DQo+ID4gPiBBbjogVGhvbWFzIEhlcmJzdA0KPiA+ID4gQ2M6IGNv
cmVAaWV0Zi5vcmcNCj4gPiA+IEJldHJlZmY6IFJlOiBbY29yZV0gQ29yZSBVRFAgdnMgVENQIDog
UmVkdXgNCj4gPiA+DQo+ID4gPiArMQ0KPiA+ID4NCj4gPiA+IFRocm91Z2ggd3JpdGluZyBhIGZl
dyByZXZpc2lvbnMgb2YgdGhlc2Ugc3BlY3MsIEkgaGF2ZSBhbHNvIGFscmVhZHkNCj4gPiA+IGZv
dW5kDQo+ID4gVENQDQo+ID4gPiB0byBiZSByZWFsbHkgYXdrd2FyZC4gQW5kIHRoZSBUQ1AgbmVn
b3RpYXRpb24gZGlzY3Vzc2lvbnMgYXQgdGhlIG1pa2UNCj4gPiA+IGluIEFuYWhlaW0gbWFkZSBt
ZSBldmVuIG1vcmUgc2tlcHRpY2FsLiBUb20gaXMgcmlnaHQsIGlmIHlvdSBuZWVkIFRDUA0KPiA+
ID4gdGhlbg0KPiA+IGp1c3QNCj4gPiA+IHVzZSBIVFRQIDstKQ0KPiA+ID4NCj4gPiA+IFphY2gN
Cj4gPiA+DQo+ID4gPiBPbiBNYXkgMTEsIDIwMTAsIGF0IDE4OjQ5ICwgVGhvbWFzIEhlcmJzdCB3
cm90ZToNCj4gPiA+DQo+ID4gPiA+IEFmdGVyIHRoZSBkaXNjdXNzaW9uIGluIEFuYWhlaW0sIEkn
bSBzdXJwcmlzZWQgdGhhdCB3ZSBuZWVkIHlldA0KPiA+ID4gPiBhbm90aGVyDQo+ID4gPiByZXZp
c2l0IHRvIFVEUCBhbmQgVENQIGZvciBDT1JFLg0KPiA+ID4gPg0KPiA+ID4gPiBUaGUgUmlnaHQg
U29sdXRpb24odG0pIG1pZ2h0IHdlbGwgYmUgdG8gZml4IFRDUCBzdWNoIHRoYXQgaXQgZG9lc24n
dA0KPiA+IGxvc2UNCj4gPiA+IGl0cyBicmFpbnMgZXZlcnkgdGltZSB5b3UgZHJvcCBhIHBhY2tl
dCwgYW5kIHdlIGNvdWxkIGVuZCB1cCB3aXRoIGFuDQo+ID4gZW5kLXRvLQ0KPiA+ID4gZW5kIHN5
c3RlbSB3aGVyZSBjb25zdHJhaW5lZCBkZXZpY2VzIG1pZ2h0IHJlYXNvbmFibHkgcHJvdmlkZSBz
ZXJ2aWNlcw0KPiA+ID4gdG8gbm9ybWFsIGhvc3RzIGluIHRoZSByZWd1bGFyIEludGVybmV0LCAg
SG93ZXZlciwgdHJhbnNwb3J0IHdvcmsgaXMNCj4gPiA+IG91dCBvZg0KPiA+IHNjb3BlDQo+ID4g
PiBmb3IgdGhpcyBXRy4NCj4gPiA+ID4NCj4gPiA+ID4gVGhlIHNlY29uZCBtb3N0IHJpZ2h0IHNv
bHV0aW9uIHdvdWxkIGJlIHRvIGltcGxlbWVudCBDT1JFIHdpdGggYQ0KPiA+IHJlbGlhYmxlDQo+
ID4gPiBVRFAgcHJvdG9jb2wsIGFzIGlzIGRvbmUgaW4gbXVjaCBvZiB0aGUgZHJhZnQuICBUaGUg
Im9wdGlvbmFsIiBUQ1ANCj4gPiBwb3J0aW9ucyBvZg0KPiA+ID4gdGhlIGRyYWZ0IGFyZSBtb3N0
bHkgaW5jcmVhc2VkIGNvbXBsZXhpdHkgZm9yIG5vIGFkZGVkIGJlbmVmaXQuIElmIGENCj4gPiBk
ZXZpY2UgaXMNCj4gPiA+IGNhcGFibGUgb2YgcnVubmluZyBUQ1AgYW5kIHRoZSBuZXR3b3JrIGl0
IHdvcmtzIG9uIGlzIGNhcGFibGUgb2YNCj4gPiBzdXBwb3J0aW5nDQo+ID4gPiBUQ1AsIHlvdSBz
aG91bGQganVzdCBvcGVuIGEgY29ubmVjdGlvbiB0byBQb3J0IDgwIGFuZCB1c2UgSFRUUCAob3Ig
dGhlDQo+ID4gPiBUQ1AgcG9ydC9wcm90b2NvbCBvZiB5b3VyIGNob2ljZSkuICBUaGVyZSBhcmUg
bWFueSBwcm90b2NvbHMgYSBob3N0DQo+ID4gPiBNQVkNCj4gPiBpbXBsZW1lbnQNCj4gPiA+IGFu
ZCBpdCBpcyBub3QgYXBwcm9wcmlhdGUgZm9yIHRoZSBkcmFmdCB0byBlbnVtZXJhdGUgdGhlbS4N
Cj4gPiA+ID4NCj4gPiA+ID4gTGV0J3MgcmVtb3ZlIGFsbCBvZiB0aGUgc2VjdGlvbnMgcmVsYXRl
ZCB0byBUQ1AgaW4gdGhlIGRyYWZ0Lg0KPiA+ID4gPg0KPiA+ID4gPiB0b20NCj4gPiA+ID4NCj4g
PiA+DQo+ID4gPiAtLQ0KPiA+ID4gWmFjaCBTaGVsYnksIEhlYWQgb2YgUmVzZWFyY2gsIFNlbnNp
bm9kZSBMdGQuDQo+ID4gPiBodHRwOi8vemFjaHNoZWxieS5vcmcgIC0gTXkgYmxvZyAiT24gdGhl
IEludGVybmV0IG9mIFRoaW5ncyINCj4gPiA+IGh0dHA6Ly82bG93cGFuLm5ldCAtIE15IGJvb2sg
IjZMb1dQQU46IFRoZSBXaXJlbGVzcyBFbWJlZGRlZCBJbnRlcm5ldCINCj4gPiA+IE1vYmlsZTog
KzM1OCA0MCA3Nzk2Mjk3DQo+IA0KPiANCj5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXw0KPiBjb3JlIG1haWxpbmcgbGlzdA0KPiBjb3JlQGlldGYub3JnDQo+
IGh0dHBzOi8vd3d3LmlldGYub3JnL21haWxtYW4vbGlzdGluZm8vY29yZQ0KDQpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KY29yZSBtYWlsaW5nIGxpc3QN
CmNvcmVAaWV0Zi5vcmcNCmh0dHBzOi8vd3d3LmlldGYub3JnL21haWxtYW4vbGlzdGluZm8vY29y
ZQ0K



From guido.moritz@uni-rostock.de  Mon May 17 08:11:23 2010
Return-Path: <guido.moritz@uni-rostock.de>
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 3D0823A6A93 for <core@core3.amsl.com>; Mon, 17 May 2010 08:11:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.067
X-Spam-Level: 
X-Spam-Status: No, score=-2.067 tagged_above=-999 required=5 tests=[AWL=-0.467, BAYES_50=0.001, HELO_EQ_DE=0.35, J_CHICKENPOX_33=0.6, MSGID_MULTIPLE_AT=1.449, RCVD_IN_DNSWL_MED=-4]
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 wSWvUV2ykvNB for <core@core3.amsl.com>; Mon, 17 May 2010 08:11:22 -0700 (PDT)
Received: from ida.uni-rostock.de (ida.uni-rostock.de [139.30.8.34]) by core3.amsl.com (Postfix) with ESMTP id 796A43A6CA1 for <core@ietf.org>; Mon, 17 May 2010 08:11:10 -0700 (PDT)
Received: from email2.uni-rostock.de (139.30.8.209) by ida.uni-rostock.de (139.30.8.162) with Microsoft SMTP Server (TLS) id 8.2.254.0; Mon, 17 May 2010 17:11:00 +0200
Received: from Schlappi (139.30.201.226) by email2.uni-rostock.de (139.30.8.210) with Microsoft SMTP Server (TLS) id 8.2.254.0; Mon, 17 May 2010 17:11:00 +0200
From: Guido Moritz <guido.moritz@uni-rostock.de>
To: <core@ietf.org>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de> <2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry> <006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de> <041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org>
In-Reply-To: <041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org>
Date: Mon, 17 May 2010 17:11:14 +0200
Message-ID: <007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Office Outlook 12.0
Thread-Index: Acr1zJc/bvdnn+5LQpypULdy1SC3ZQAA0P1w
Content-Language: de
Subject: Re: [core] Core UDP vs TCP : Redux
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: Mon, 17 May 2010 15:11:23 -0000

> It may also be hard to meet this objective while inserting a =
subprotocol
as complex as SOAP into the stack.
I just went through the current COAP I-D and it is already quite =
complex! It
includes many mechanisms and concepts which are also included in SOAP =
and
other W3C/OASIS Web services specifications that I am familiar in due to =
my
background in DPWS.=20

Nevertheless, let's leave the discussion around SOAP, because there =
seems to
be many misunderstandings related to SOAP and what I wanted to point at.
What I wanted to say is (and that is my still my opinion after reading
current COAP I-D): there is no reason to bind COAP to UDP or TCP =
exclusively
or exclude one of them. COAP seems to describe many mechanisms for
interaction with resources, eventing and discovery mechanisms, =
mechanisms to
avoid duplicated message processing etc. But all these mechanisms do not
depend on the transport layer. Why should a node not support =
interactions by
using TCP or UDP at the same time for the same resource. Of course, not =
the
highly resource constrained one, but we are heading towards =
heterogeneous
device infrastructures where resource richer devices in the same network
might be possible as well.

Take the ideas or throw them away. But these are major decisions =
concerning
applicability of the resulting COAP. What made HTTP and REST in the WWW =
such
a success was that it is possible to run it over all kinds of =
technologies
and not to restrict it to specific message sizes. Let's say there is a =
cool
new wireless technology IEEE 802.15.XY which is capable of running =
6LoWPAN
but with double of the frame size and data rate at same energy costs. =
Will
there be the next COAPXY for this new link layer because suddenly there =
is
double the bandwidth available?

Again,
Just my two cents ;)
Guido

> -----Urspr=FCngliche Nachricht-----
> Von: Carsten Bormann [mailto:cabo@tzi.org]
> Gesendet: Montag, 17. Mai 2010 16:24
> An: Guido Moritz
> Cc: core@ietf.org
> Betreff: Re: [core] Core UDP vs TCP : Redux
>=20
> On May 17, 2010, at 15:58, Guido Moritz wrote:
>=20
> > I just wanted to ask
> > if it is reasonable to bind the CORE protocol to UDP,TCP or whatever =
or
if
> > it is possible to leave this open and design CORE extensible and
flexible
> > enough.
>=20
> It may be hard to meet the working group's objective of addressing
constrained
> node/networks while leaving the underlying protocol(s) open.  It may =
also
be
> hard to meet this objective while inserting a subprotocol as complex =
as
SOAP
> into the stack.
>=20
> Gruesse, Carsten



From matthieu.vial@fr.non.schneider-electric.com  Mon May 17 08:47:05 2010
Return-Path: <matthieu.vial@fr.non.schneider-electric.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 CC8103A6A95; Mon, 17 May 2010 08:47:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.115
X-Spam-Level: **
X-Spam-Status: No, score=2.115 tagged_above=-999 required=5 tests=[AWL=-1.150,  BAYES_50=0.001, HTML_MESSAGE=0.001, MANGLED_TOOL=2.3, RCVD_IN_DNSWL_LOW=-1, SARE_GIF_ATTACH=1.42, TVD_FW_GRAPHIC_NAME_MID=0.543]
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 Hvl0j+RIQIDi; Mon, 17 May 2010 08:47:03 -0700 (PDT)
Received: from mailX03.eud.schneider-electric.com (mailx03.eud.schneider-electric.com [205.167.7.41]) by core3.amsl.com (Postfix) with ESMTP id 1FCF73A6D58; Mon, 17 May 2010 08:44:41 -0700 (PDT)
Received: from ATEUI01.schneider-electric.com ([10.198.14.9]) by mailX03.eud.schneider-electric.com with ESMTP id 2010051717350982-79044 ; Mon, 17 May 2010 17:35:09 +0200 
In-Reply-To: <E4DBD8AB11D2E54F89B23D7CD1065D8C01055E8A@onzosbs2k3.ONZO.local>
To: "Charles Palmer" <charles.palmer@onzo.com>
X-Mailer: Lotus Notes Release 6.5.6 March 06, 2007
Message-ID: <OF97EC852F.8A85DCEB-ONC1257726.0051887E-C1257726.005677A7@schneider-electric.com>
From: matthieu.vial@fr.non.schneider-electric.com
Date: Mon, 17 May 2010 17:44:27 +0200
MIME-Version: 1.0
X-MIMETrack: Serialize by Router on ATEUI01.Schneider-Electric.com/T/SVR/Schneider at 17/05/2010 17:44:30, Itemize by SMTP Server on AXEU3OUT.schneider-electric.com/X/SVR/SEIxtra at 17/05/2010 17:35:09, Serialize by Router on AXEU3OUT.schneider-electric.com/X/SVR/SEIxtra at 17/05/2010 17:35:13
Content-type: multipart/related;  Boundary="0__=4EBBFDB5DFC20EEE8f9e8a93df938690918c4EBBFDB5DFC20EEE"
Cc: core-bounces@ietf.org, core <core@ietf.org>
Subject: Re: [core] Selecting a WG document for CoAP
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: Mon, 17 May 2010 15:47:05 -0000

--0__=4EBBFDB5DFC20EEE8f9e8a93df938690918c4EBBFDB5DFC20EEE
Content-type: multipart/alternative; 
	Boundary="1__=4EBBFDB5DFC20EEE8f9e8a93df938690918c4EBBFDB5DFC20EEE"

--1__=4EBBFDB5DFC20EEE8f9e8a93df938690918c4EBBFDB5DFC20EEE
Content-transfer-encoding: quoted-printable
Content-type: text/plain; charset=ISO-8859-1


Hi,

My comments about  the subscribe/notify mechanism of Zigbee IP.

Pros:
- Derived from the webhooks concept
- If used by CORE it will be easier to map to HTTP because it uses only=

CRUD verbs.
- The subscription message is extendable and could support advanced opt=
ions
(delays, increment, ...)
- Only one listening port whatever the transport binding is.

Cons:
- No interoperability without  well known URIs and a well defined
subscription message format (Not sure CoAP draft is the right place to
specify this).
- XML/EXI is too complex to be the required format for the default
subscription/notification mechanism.
- The notification should not require a subsequent GET to retrieve the
content.
- Subresource subscription is redundant.

Hope this could help,
Matthieu






                                                                       =
    
             "Charles Palmer"                                          =
    
             <charles.palmer@o                                         =
    
             nzo.com>                                                  =
  A 
             Envoy=E9 par :              "core" <core@ietf.org>        =
      
             core-bounces@ietf                                         =
 cc 
             .org                                                      =
    
                                                                     Ob=
jet 
                                       Re: [core] Selecting a WG docume=
nt  
             15/05/2010 14:06          for CoAP                        =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    




Dear all

Those interested in the subscribe/notify discussion might like to look
at the draft Smart Energy Profile 2.0 Application Protocol
Specification. It is available here:
http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicAp=
p
licationProfile.aspx

It manages subscribe/notify by using POST. This seems to remove the nee=
d
for SUBSCRIBE and notify.

"Imagine a host A, which exposes a resource at http{s}://A/resource and=

a second host B, which wishes to learn of changes to this resource. To
facilitate a subscription/ notification mechanism, A would expose a
resource http{s}://A/sub and B would expose a resource http{s}://B/ntfy=
.
To subscribe to notifications regarding http{s}://A/resource, B would
send a POST to the address http{s}://A/sub/B containing the URI of the
resource of interest (http{s}://A/resource) and the URI of B's
notification resource (http{s}://B/ntfy). Following this subscription
step, should A wish to notify B of a change to the resource addressed a=
t
http{s}://A/resource, A would send a POST to the address
http{s}://B/ntfy containing the URI of the resource changed
(http{s}://A/resource) and the URI of A's subscription resource
(http{s}://A/sub/B), should A wish to change its subscription. The host=

B can then query the resource (or not) at its leisure."

Sleepy nodes are not allowed to subscribe, and must poll.

Regards - Charles Palmer

-----Original Message-----
From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of=

Angelo P. Castellani
Sent: 14 May 2010 13:14
To: Zach Shelby
Cc: core
Subject: Re: [core] Selecting a WG document for CoAP

Zach,

thanks for the comments, but please refer to my most recent e-mail for
a more specific list of technical issues I'm pointing to.

I want to do only a little integration to what I've written there.

In my very personal opinion, to maximize adherence with the REST model
and minimize implementation effort SUBSCRIBE and NOTIFY should be
mapped to methods (as discussed many times together...).

Uniform interface principle (Fielding PhD dissertation Section 5.1.5,
"The central feature that distinguishes the REST architectural style
[...]") states that to simplify the software architecture, resource
interfaces/interfaces should be as general as possible.

I agree with this principle in this specific case, mainly because
handling a special message type for notify leads node software design
to a more complex architecture.

The reason is that this new message type requires special handling and
introduces a complexity in the software modularization.

Best,
Angelo

On Fri, May 14, 2010 at 13:06, Zach Shelby <zach@sensinode.com> wrote:
> Hi Angelo,
>
> On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:
>
>> Dear C. Bormann, all,
>>
>> before deciding for the final direction, I've the following
>> observations about draft-shelby-core-coap-01
>>
>> While I mostly share Zach's view of the protocol approach, and
>> appreciate many aspects of the proposal, there are in my opinion
still
>> some open issues that need to be at least discussed before the
current
>> document can be selected.
>
> Of course there are plenty of open issues. Remember that working grou=
p
documents still undertake as much change and improvement as the WG
wants, so by no means is coap-01 set in stone. I would expect at least
5-10 more revisions still along the way.  Already several of your ideas=

have been integrated into coap-01, and several more are under
consideration, so it is coming along. Patience ;-)
>
>>
>> In particular, I would like to highlight the following:
>>
>> a) As it is now, it is not possible to have a straightforward
>> translation of HTTP -> CoAP and viceversa: see
>> http://www.ietf.org/mail-archive/web/core/current/msg00133.html (thi=
s
>> impacts the scalability of the web service model too)
>
> In coap-01 the Method names are now identical to HTTP methods. The
Req/Res interaction is a direct translation. The URI hierarchy is
compatible, and the URI binary code format we are still working on
obviously. The only thing that takes some state to translate is
Subscribe/Notify. But note, Subscribe/Notify takes some state no matter=

how you do it, even with HTTP-HTTP there is no clean and easy way to
handle subscriptions.
>
>>
>> b) Moreover, CoAP's implementation is not as simple as it should be.=

>> I've investigated the implementation and some design choices (as
>> Options) are leading to very high program complexity (ROM) on a
>> MSP430-based device.
>
> This we can definitely improve, and already made several optimization=
s
from -00 to -01. Here I need some very concrete proposals though. Also
remember that many things are optional, for example subscribe/notify is=

not required if you don't need it.
>
>> c) Finally when comparing HTTP message size with CoAP message size,
>> the resulting compression isn't as good as you may expect.
>>
>> Example:
>> HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
>> CoAP: 24 B with options parsing procedure requiring an added
>> implementation complexity
>
> Right, that is not how it will work in practice. Working with a real
HTTP server that HTTP header will be more complex, and on the CoAP side=

you would chose shorter URLs. The biggest improvement possible here is
from using binary coded URLs of course. We need to look at a wider rang=
e
of interactions and real HTTP headers as well to check that we are
efficient enough.
>
>> Addressing all these points potentially leads to major technical
>> modifications (especially point a) on the current draft, hence it is=

>> appropriate in my opinion to discuss these points before making the
>> final decision.
>
> I am not sure what else you have in mind for a). If we just forget
about Subscribe/Notify then you are good to go. But then you are also
not fulfilling the charter or the industry needs in that respect.
>
> Thanks,
> Zach
>
>>
>> Best regards,
>>
>> Angelo P. Castellani
>>
>>
>> On Mon, May 10, 2010 at 18:51, Carsten Bormann <cabo@tzi.org> wrote:=

>>> The CORE WG has a milestone to select a WG document for CoAP in
April:
>>>
>>> http://datatracker.ietf.org/wg/core/charter/
>>> ...
>>> Apr 2010        Select WG document for basis of the CoAP protocol
>>>
>>> Of the various documents that have been contributed,
draft-shelby-core-coap has significant discussion, as well as the
largest number of updates (including a previous version that was still
called -6lowapp-coap).
>>>
>>> Today, another updated version of that draft was announced.  See
>>> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
>>> for the announcement and
>>> http://tools.ietf.org/html/draft-shelby-core-coap-01
>>> for the draft itself.
>>>
>>> However, as the authors say, there are still significant TODOs.
>>>
>>> Are we in a state yet where we can say whether this is the right
direction for the WG to take?
>>> If yes, is it the right direction?  Should we adopt it as a WG
document?
>>> If you don't think we can say yet, is there a set of technical
decisions you would like the authors to take with priority?
>>>
>>> Note that once a document has become a WG document, the authors act=

as editors for the working group, making (and usually fleshing out the
details of) any change that the WG decides it needs.
>>> If you think we can still improve the draft, this is not an obstacl=
e
to making it a WG document.
>>> But of course we shouldn't do that if we intend to reverse its
fundamental technical direction.
>>>
>>> In order to stay roughly in sync with our milestones, we should
reach at a decision on how to go forward this week.
>>>
>>> Gruesse, Carsten
>>>
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>
>> _______________________________________________
>> 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
>
>
_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

--------------------------------
Onzo is a limited company number 06097997 registered in England & Wales=
.
The
registered office is 6 Great Newport Street, London, WC2H 7JB, United
Kingdom.

This email message may contain confidential and/or privileged informati=
on,
and
is intended solely for the addressee(s). If you have received this emai=
l in

error, please notify Onzo immediately. Unauthorised copying, disclosure=
 or
distribution of the material in this email is forbidden.
--------------------------------

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
______________________________________________________________________
=

--1__=4EBBFDB5DFC20EEE8f9e8a93df938690918c4EBBFDB5DFC20EEE
Content-transfer-encoding: quoted-printable
Content-type: text/html; charset=ISO-8859-1
Content-Disposition: inline

<html><body>
<p>Hi,<br>
<br>
My comments about  the subscribe/notify mechanism of Zigbee IP.<br>
<br>
Pros:<br>
- Derived from the webhooks concept<br>
- If used by CORE it will be easier to map to HTTP because it uses only=
 CRUD verbs.<br>
- The subscription message is extendable and could support advanced opt=
ions (delays, increment, ...) <br>
- Only one listening port whatever the transport binding is.<br>
<br>
Cons:<br>
- No interoperability without  well known URIs and a well defined subsc=
ription message format (Not sure CoAP draft is the right place to speci=
fy this).<br>
- XML/EXI is too complex to be the required format for the default subs=
cription/notification mechanism.<br>
- The notification should not require a subsequent GET to retrieve the =
content.<br>
- Subresource subscription is redundant.<br>
<br>
Hope this could help,<br>
Matthieu<br>
<br>
<br>
<img width=3D"16" height=3D"16" src=3D"cid:1__=3D4EBBFDB5DFC20EEE8@schn=
eider-electric.com" border=3D"0" alt=3D"Inactive hide details for &quot=
;Charles Palmer&quot; &lt;charles.palmer@onzo.com&gt;">&quot;Charles Pa=
lmer&quot; &lt;charles.palmer@onzo.com&gt;<br>
<br>
<br>
<br>
<br>

<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">=

<tr valign=3D"top"><td style=3D"background-image:url(cid:2__=3D4EBBFDB5=
DFC20EEE8@schneider-electric.com); background-repeat: no-repeat; " widt=
h=3D"40%">
<ul>
<ul>
<ul>
<ul><b><font size=3D"2">&quot;Charles Palmer&quot; &lt;charles.palmer@o=
nzo.com&gt;</font></b><font size=3D"2"> </font><br>
<font size=3D"2">Envoy=E9 par : core-bounces@ietf.org</font>
<p><font size=3D"2">15/05/2010 14:06</font></ul>
</ul>
</ul>
</ul>
</td><td width=3D"60%">
<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">=

<tr valign=3D"top"><td width=3D"1%"><img width=3D"58" height=3D"1" src=3D=
"cid:3__=3D4EBBFDB5DFC20EEE8@schneider-electric.com" border=3D"0" alt=3D=
""><br>
<div align=3D"right"><font size=3D"2">A</font></div></td><td width=3D"1=
00%"><img width=3D"1" height=3D"1" src=3D"cid:3__=3D4EBBFDB5DFC20EEE8@s=
chneider-electric.com" border=3D"0" alt=3D""><br>
<font size=3D"2">&quot;core&quot; &lt;core@ietf.org&gt;</font></td></tr=
>

<tr valign=3D"top"><td width=3D"1%"><img width=3D"58" height=3D"1" src=3D=
"cid:3__=3D4EBBFDB5DFC20EEE8@schneider-electric.com" border=3D"0" alt=3D=
""><br>
<div align=3D"right"><font size=3D"2">cc</font></div></td><td width=3D"=
100%"><img width=3D"1" height=3D"1" src=3D"cid:3__=3D4EBBFDB5DFC20EEE8@=
schneider-electric.com" border=3D"0" alt=3D""><br>
</td></tr>

<tr valign=3D"top"><td width=3D"1%"><img width=3D"58" height=3D"1" src=3D=
"cid:3__=3D4EBBFDB5DFC20EEE8@schneider-electric.com" border=3D"0" alt=3D=
""><br>
<div align=3D"right"><font size=3D"2">Objet</font></div></td><td width=3D=
"100%"><img width=3D"1" height=3D"1" src=3D"cid:3__=3D4EBBFDB5DFC20EEE8=
@schneider-electric.com" border=3D"0" alt=3D""><br>
<font size=3D"2">Re: [core] Selecting a WG document for CoAP</font></td=
></tr>
</table>

<table border=3D"0" cellspacing=3D"0" cellpadding=3D"0">
<tr valign=3D"top"><td width=3D"58"><img width=3D"1" height=3D"1" src=3D=
"cid:3__=3D4EBBFDB5DFC20EEE8@schneider-electric.com" border=3D"0" alt=3D=
""></td><td width=3D"336"><img width=3D"1" height=3D"1" src=3D"cid:3__=3D=
4EBBFDB5DFC20EEE8@schneider-electric.com" border=3D"0" alt=3D""></td></=
tr>
</table>
</td></tr>
</table>
<br>
<tt>Dear all<br>
<br>
Those interested in the subscribe/notify discussion might like to look<=
br>
at the draft Smart Energy Profile 2.0 Application Protocol<br>
Specification. It is available here:<br>
</tt><tt><a href=3D"http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeS=
martEnergy20PublicApp">http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigB=
eeSmartEnergy20PublicApp</a></tt><tt><br>
licationProfile.aspx<br>
<br>
It manages subscribe/notify by using POST. This seems to remove the nee=
d<br>
for SUBSCRIBE and notify.<br>
<br>
&quot;Imagine a host A, which exposes a resource at http{s}://A/resourc=
e and<br>
a second host B, which wishes to learn of changes to this resource. To<=
br>
facilitate a subscription/ notification mechanism, A would expose a<br>=

resource http{s}://A/sub and B would expose a resource http{s}://B/ntfy=
.<br>
To subscribe to notifications regarding http{s}://A/resource, B would<b=
r>
send a POST to the address http{s}://A/sub/B containing the URI of the<=
br>
resource of interest (http{s}://A/resource) and the URI of B's<br>
notification resource (http{s}://B/ntfy). Following this subscription<b=
r>
step, should A wish to notify B of a change to the resource addressed a=
t<br>
http{s}://A/resource, A would send a POST to the address<br>
http{s}://B/ntfy containing the URI of the resource changed<br>
(http{s}://A/resource) and the URI of A's subscription resource<br>
(http{s}://A/sub/B), should A wish to change its subscription. The host=
<br>
B can then query the resource (or not) at its leisure.&quot;<br>
<br>
Sleepy nodes are not allowed to subscribe, and must poll.<br>
<br>
Regards - Charles Palmer <br>
<br>
-----Original Message-----<br>
From: core-bounces@ietf.org [<a href=3D"mailto:core-bounces@ietf.org">m=
ailto:core-bounces@ietf.org</a>] On Behalf Of<br>
Angelo P. Castellani<br>
Sent: 14 May 2010 13:14<br>
To: Zach Shelby<br>
Cc: core<br>
Subject: Re: [core] Selecting a WG document for CoAP<br>
<br>
Zach,<br>
<br>
thanks for the comments, but please refer to my most recent e-mail for<=
br>
a more specific list of technical issues I'm pointing to.<br>
<br>
I want to do only a little integration to what I've written there.<br>
<br>
In my very personal opinion, to maximize adherence with the REST model<=
br>
and minimize implementation effort SUBSCRIBE and NOTIFY should be<br>
mapped to methods (as discussed many times together...).<br>
<br>
Uniform interface principle (Fielding PhD dissertation Section 5.1.5,<b=
r>
&quot;The central feature that distinguishes the REST architectural sty=
le<br>
[...]&quot;) states that to simplify the software architecture, resourc=
e<br>
interfaces/interfaces should be as general as possible.<br>
<br>
I agree with this principle in this specific case, mainly because<br>
handling a special message type for notify leads node software design<b=
r>
to a more complex architecture.<br>
<br>
The reason is that this new message type requires special handling and<=
br>
introduces a complexity in the software modularization.<br>
<br>
Best,<br>
Angelo<br>
<br>
On Fri, May 14, 2010 at 13:06, Zach Shelby &lt;zach@sensinode.com&gt; w=
rote:<br>
&gt; Hi Angelo,<br>
&gt;<br>
&gt; On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:<br>
&gt;<br>
&gt;&gt; Dear C. Bormann, all,<br>
&gt;&gt;<br>
&gt;&gt; before deciding for the final direction, I've the following<br=
>
&gt;&gt; observations about draft-shelby-core-coap-01<br>
&gt;&gt;<br>
&gt;&gt; While I mostly share Zach's view of the protocol approach, and=
<br>
&gt;&gt; appreciate many aspects of the proposal, there are in my opini=
on<br>
still<br>
&gt;&gt; some open issues that need to be at least discussed before the=
<br>
current<br>
&gt;&gt; document can be selected.<br>
&gt;<br>
&gt; Of course there are plenty of open issues. Remember that working g=
roup<br>
documents still undertake as much change and improvement as the WG<br>
wants, so by no means is coap-01 set in stone. I would expect at least<=
br>
5-10 more revisions still along the way. &nbsp;Already several of your =
ideas<br>
have been integrated into coap-01, and several more are under<br>
consideration, so it is coming along. Patience ;-)<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; In particular, I would like to highlight the following:<br>
&gt;&gt;<br>
&gt;&gt; a) As it is now, it is not possible to have a straightforward<=
br>
&gt;&gt; translation of HTTP -&gt; CoAP and viceversa: see<br>
&gt;&gt; </tt><tt><a href=3D"http://www.ietf.org/mail-archive/web/core/=
current/msg00133.html">http://www.ietf.org/mail-archive/web/core/curren=
t/msg00133.html</a></tt><tt>&nbsp;(this<br>
&gt;&gt; impacts the scalability of the web service model too)<br>
&gt;<br>
&gt; In coap-01 the Method names are now identical to HTTP methods. The=
<br>
Req/Res interaction is a direct translation. The URI hierarchy is<br>
compatible, and the URI binary code format we are still working on<br>
obviously. The only thing that takes some state to translate is<br>
Subscribe/Notify. But note, Subscribe/Notify takes some state no matter=
<br>
how you do it, even with HTTP-HTTP there is no clean and easy way to<br=
>
handle subscriptions.<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; b) Moreover, CoAP's implementation is not as simple as it shou=
ld be.<br>
&gt;&gt; I've investigated the implementation and some design choices (=
as<br>
&gt;&gt; Options) are leading to very high program complexity (ROM) on =
a<br>
&gt;&gt; MSP430-based device.<br>
&gt;<br>
&gt; This we can definitely improve, and already made several optimizat=
ions<br>
from -00 to -01. Here I need some very concrete proposals though. Also<=
br>
remember that many things are optional, for example subscribe/notify is=
<br>
not required if you don't need it.<br>
&gt;<br>
&gt;&gt; c) Finally when comparing HTTP message size with CoAP message =
size,<br>
&gt;&gt; the resulting compression isn't as good as you may expect.<br>=

&gt;&gt;<br>
&gt;&gt; Example:<br>
&gt;&gt; HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B<br>
&gt;&gt; CoAP: 24 B with options parsing procedure requiring an added<b=
r>
&gt;&gt; implementation complexity<br>
&gt;<br>
&gt; Right, that is not how it will work in practice. Working with a re=
al<br>
HTTP server that HTTP header will be more complex, and on the CoAP side=
<br>
you would chose shorter URLs. The biggest improvement possible here is<=
br>
from using binary coded URLs of course. We need to look at a wider rang=
e<br>
of interactions and real HTTP headers as well to check that we are<br>
efficient enough.<br>
&gt;<br>
&gt;&gt; Addressing all these points potentially leads to major technic=
al<br>
&gt;&gt; modifications (especially point a) on the current draft, hence=
 it is<br>
&gt;&gt; appropriate in my opinion to discuss these points before makin=
g the<br>
&gt;&gt; final decision.<br>
&gt;<br>
&gt; I am not sure what else you have in mind for a). If we just forget=
<br>
about Subscribe/Notify then you are good to go. But then you are also<b=
r>
not fulfilling the charter or the industry needs in that respect.<br>
&gt;<br>
&gt; Thanks,<br>
&gt; Zach<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; Best regards,<br>
&gt;&gt;<br>
&gt;&gt; Angelo P. Castellani<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Mon, May 10, 2010 at 18:51, Carsten Bormann &lt;cabo@tzi.or=
g&gt; wrote:<br>
&gt;&gt;&gt; The CORE WG has a milestone to select a WG document for Co=
AP in<br>
April:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; </tt><tt><a href=3D"http://datatracker.ietf.org/wg/core/ch=
arter/">http://datatracker.ietf.org/wg/core/charter/</a></tt><tt><br>
&gt;&gt;&gt; ...<br>
&gt;&gt;&gt; Apr 2010 &nbsp; &nbsp; &nbsp; &nbsp;Select WG document for=
 basis of the CoAP protocol<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Of the various documents that have been contributed,<br>
draft-shelby-core-coap has significant discussion, as well as the<br>
largest number of updates (including a previous version that was still<=
br>
called -6lowapp-coap).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Today, another updated version of that draft was announced=
. &nbsp;See<br>
&gt;&gt;&gt; </tt><tt><a href=3D"http://www.ietf.org/mail-archive/web/c=
ore/current/msg00138.html">http://www.ietf.org/mail-archive/web/core/cu=
rrent/msg00138.html</a></tt><tt><br>
&gt;&gt;&gt; for the announcement and<br>
&gt;&gt;&gt; </tt><tt><a href=3D"http://tools.ietf.org/html/draft-shelb=
y-core-coap-01">http://tools.ietf.org/html/draft-shelby-core-coap-01</a=
></tt><tt><br>
&gt;&gt;&gt; for the draft itself.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; However, as the authors say, there are still significant T=
ODOs.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Are we in a state yet where we can say whether this is the=
 right<br>
direction for the WG to take?<br>
&gt;&gt;&gt; If yes, is it the right direction? &nbsp;Should we adopt i=
t as a WG<br>
document?<br>
&gt;&gt;&gt; If you don't think we can say yet, is there a set of techn=
ical<br>
decisions you would like the authors to take with priority?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Note that once a document has become a WG document, the au=
thors act<br>
as editors for the working group, making (and usually fleshing out the<=
br>
details of) any change that the WG decides it needs.<br>
&gt;&gt;&gt; If you think we can still improve the draft, this is not a=
n obstacle<br>
to making it a WG document.<br>
&gt;&gt;&gt; But of course we shouldn't do that if we intend to reverse=
 its<br>
fundamental technical direction.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; In order to stay roughly in sync with our milestones, we s=
hould<br>
reach at a decision on how to go forward this week.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Gruesse, Carsten<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; core mailing list<br>
&gt;&gt;&gt; core@ietf.org<br>
&gt;&gt;&gt; </tt><tt><a href=3D"https://www.ietf.org/mailman/listinfo/=
core">https://www.ietf.org/mailman/listinfo/core</a></tt><tt><br>
&gt;&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; core mailing list<br>
&gt;&gt; core@ietf.org<br>
&gt;&gt; </tt><tt><a href=3D"https://www.ietf.org/mailman/listinfo/core=
">https://www.ietf.org/mailman/listinfo/core</a></tt><tt><br>
&gt;<br>
&gt; --<br>
&gt; Zach Shelby, Chief Nerd, Sensinode Ltd.<br>
&gt; </tt><tt><a href=3D"http://zachshelby.org">http://zachshelby.org</=
a></tt><tt>&nbsp; - My blog &quot;On the Internet of Things&quot;<br>
&gt; </tt><tt><a href=3D"http://6lowpan.net">http://6lowpan.net</a></tt=
><tt>&nbsp;- My book &quot;6LoWPAN: The Wireless Embedded Internet&quot=
;<br>
&gt; Mobile: +358 40 7796297<br>
&gt;<br>
&gt;<br>
_______________________________________________<br>
core mailing list<br>
core@ietf.org<br>
</tt><tt><a href=3D"https://www.ietf.org/mailman/listinfo/core">https:/=
/www.ietf.org/mailman/listinfo/core</a></tt><tt><br>
<br>
--------------------------------<br>
Onzo is a limited company number 06097997 registered in England &amp; W=
ales. The &nbsp; &nbsp;<br>
registered office is 6 Great Newport Street, London, WC2H 7JB, United K=
ingdom.<br>
<br>
This email message may contain confidential and/or privileged informati=
on, and<br>
is intended solely for the addressee(s). If you have received this emai=
l in &nbsp; &nbsp; <br>
error, please notify Onzo immediately. Unauthorised copying, disclosure=
 or <br>
distribution of the material in this email is forbidden.<br>
--------------------------------<br>
<br>
_______________________________________________<br>
core mailing list<br>
core@ietf.org<br>
</tt><tt><a href=3D"https://www.ietf.org/mailman/listinfo/core">https:/=
/www.ietf.org/mailman/listinfo/core</a></tt><tt><br>
<br>
______________________________________________________________________<=
br>
This email has been scanned by the MessageLabs Email Security System.<b=
r>
______________________________________________________________________<=
br>
</tt><br>
</body></html>=


--1__=4EBBFDB5DFC20EEE8f9e8a93df938690918c4EBBFDB5DFC20EEE--


--0__=4EBBFDB5DFC20EEE8f9e8a93df938690918c4EBBFDB5DFC20EEE
Content-type: image/gif; 
	name="graycol.gif"
Content-Disposition: inline; filename="graycol.gif"
Content-ID: <1__=4EBBFDB5DFC20EEE8@schneider-electric.com>
Content-Transfer-Encoding: base64

R0lGODlhEAAQAKECAMzMzAAAAP///wAAACH5BAEAAAIALAAAAAAQABAAAAIXlI+py+0PopwxUbpu
ZRfKZ2zgSJbmSRYAIf4fT3B0aW1pemVkIGJ5IFVsZWFkIFNtYXJ0U2F2ZXIhAAA7


--0__=4EBBFDB5DFC20EEE8f9e8a93df938690918c4EBBFDB5DFC20EEE
Content-type: image/gif; 
	name="pic17861.gif"
Content-Disposition: inline; filename="pic17861.gif"
Content-ID: <2__=4EBBFDB5DFC20EEE8@schneider-electric.com>
Content-Transfer-Encoding: base64

R0lGODlhWABDALP/AAAAAK04Qf79/o+Gm7WuwlNObwoJFCsoSMDAwGFsmIuezf///wAAAAAAAAAA
AAAAACH5BAEAAAgALAAAAABYAEMAQAT/EMlJq704682770RiFMRinqggEUNSHIchG0BCfHhOjAuh
EDeUqTASLCbBhQrhG7xis2j0lssNDopE4jfIJhDaggI8YB1sZeZgLVA9YVCpnGagVjV171aRVrYR
RghXcAGFhoUETwYxcXNyADJ3GlcSKGAwLwllVC1vjIUHBWsFilKQdI8GA5IcpApeJQt8L09lmgkH
LZikoU5wjqcyAMMFrJIDPAKvCFletKSev1HBw8KrxtjZ2tvc3d5VyKtCKW3jfz4uMKmq3xu4N0nK
BVoJQmx2LGVOmrqNjjJf2hHAQo/eDwJGTKhQMcgQEEAnEjFS98+RnW3smGkZU6ncCWav/4wYOnAI
TihRL/4FEwbp28BXMMcoscQCVxlepL4IGDSCyJyVQOu0o7CjmLN50OZlqWmyFy5/6yBBuji0AxFR
M00oQAqNIstqI6qKHUsWRAEAvagsmfUEAImyxgbmUpJk3IklNUtJOUAVLoUr1+wqDGTE4zk+T6FG
uQb3SizBCwatiiUgCBN8vrz+zFjVyQ8FWkOlg4NQiZMB5QS8QO3mpOaKnL0Z2EKvNMSILEThKhCg
zMKPVxYJh23qm9KNW7pArPynMqZDiErsTMqI+LRi3QAgkFUbXpuFKhSYZALd0O5RKa2z9EYKBbpb
qxIKsjUPRgD7I2XYV6wyrOw92ykExP8NW4URhknC5dKGE4v4NENQj2jXjmfNgOZDaXb5glRmXQ33
YEWQYNcZFnrYcIQLNzyTFDQNkXIff0ExVlY4srziQk43inZgL4rwxxINMvpFFAz1KOODHiu+4aEw
NEjFl5B3JIKWKF3k6I9bfUGp5ZZcdunll5IA4cuHvQQJ5gcsoCWOOUwgltIwAKRxJgbIkJAQZEq0
2YliZnpZZ4BH3CnYOXldOUOfQoYDqF1LFHbXCrO8xmRsfoXDXJ6ChjCAH3QlhJcT6VWE6FCkfCco
CgrMFsROrIEX3o2whVjWDjoJccN3LdggSGXLCdLEgHr1lyU3O3QxhgohNKXJCWv8JQr/PDdaqd6w
2rj1inLiGeiCJoDspAoQlYE6QWLSECehcWIYxIQES6zhbn1iImTHEQyqJ4eIxJJoUBc+3CbBuwZE
V5cJPPkIjFDdeEabQbd6WgICTxiiz0f5dBKquXF6k4senwEhYGnKEFJeGrxUZy8dB8gmAXI/sPvH
ESfCwVt5hTgYiqQqtdRNHQIU1PJ33ZqmzgE90OwLaoJcnMop1WiMmgkPHQRIrwgFuNV90A3doNKT
mrKIN07AnGcI9BQjhCBN4RfA1qIZnMqorJCogKfGQnxSCDilTVIA0yl5ciTovgLuBDKFUDE9aQcw
9SA+rjSNf9/M1gxrj6VwDTS0IUSElMzBfsj0NFXR2kwsV1A5IF1grLgLL/r1R40BZEnuBWgmQEyb
jqRwSAt6bqMCOFkvKFN2GPPkUzIm/SCF8z8pVzpbjVnMsy0vOr1hw3SaSRUhpY09v0z0J1FnwzPl
fmh+xl4WtR0zGu24I4KbMQm3lnVu2oNWxI9W/lcyzA+mCKF4DBikxb/+UWtOGRiFP8qEwAayIgIA
Ow==


--0__=4EBBFDB5DFC20EEE8f9e8a93df938690918c4EBBFDB5DFC20EEE
Content-type: image/gif; 
	name="ecblank.gif"
Content-Disposition: inline; filename="ecblank.gif"
Content-ID: <3__=4EBBFDB5DFC20EEE8@schneider-electric.com>
Content-Transfer-Encoding: base64

R0lGODlhEAABAIAAAAAAAP///yH5BAEAAAEALAAAAAAQAAEAAAIEjI8ZBQA7


--0__=4EBBFDB5DFC20EEE8f9e8a93df938690918c4EBBFDB5DFC20EEE--


From charles.palmer@onzo.com  Mon May 17 08:50:03 2010
Return-Path: <charles.palmer@onzo.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 290BE3A6D00 for <core@core3.amsl.com>; Mon, 17 May 2010 08:50:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.451
X-Spam-Level: 
X-Spam-Status: No, score=0.451 tagged_above=-999 required=5 tests=[AWL=0.850,  BAYES_50=0.001, J_CHICKENPOX_33=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 JeAJGYG9D+Bn for <core@core3.amsl.com>; Mon, 17 May 2010 08:50:00 -0700 (PDT)
Received: from service38.mimecast.com (service38.mimecast.com [212.2.3.166]) by core3.amsl.com (Postfix) with SMTP id DC79C3A6D62 for <core@ietf.org>; Mon, 17 May 2010 08:47:57 -0700 (PDT)
Received: from onzosbs2k3.ONZO.local (217.138.5.2 [217.138.5.2]) by service38.mimecast.com; Mon, 17 May 2010 16:47:45 +0100
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Date: Mon, 17 May 2010 16:47:40 +0100
Message-ID: <E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [core] Core UDP vs TCP : Redux
Thread-Index: Acr1zJc/bvdnn+5LQpypULdy1SC3ZQAA0P1wAAFHDkA=
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org> <007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de>
From: "Charles Palmer" <charles.palmer@onzo.com>
To: "core" <core@ietf.org>
X-MC-Unique: 110051716474500402
Content-Type: text/plain; charset=WINDOWS-1252
Content-Transfer-Encoding: quoted-printable
Subject: Re: [core] Core UDP vs TCP : Redux
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: Mon, 17 May 2010 15:50:03 -0000

Hi folks

Worth noting that the draft ZigBee Smart Energy 2.0 Application Protocol Sp=
ecification is very good about not mandating the transport layer (although =
it talks extensively about TLS - does this limit it to TCP?)

The SE2.0 spec also makes reference to possibly using CoRE (see quote below=
). BTW how closely are we/should we be tracking SE2.0 work? I see several n=
ames in both lists. I'd speculate that if CoRE is to be of use to ZigBee Sm=
art Energy then CoRE needs to provide an easy transition.

I guess SE2.0 plans to use HTTP/EXI/TCP/IP because they exist and work.=20

How disruptive would it be to design CoRE without reference to TCP/UDP, and=
 also design a "reliable UDP" and use this for CoRE?=20

>From SE2.0:

"6.1 Protocol Flexibility
The Smart Energy Profile is designed to implement a RESTful architecture. A=
s such it is built around the core actions of GET, PUT, POST, and DELETE (a=
s used in [REST]), with the addition of a lightweight subscription and noti=
fication mechanism, as discussed above in =A77. It is not however, strictly=
 limited to HTTP. Any protocol that can implement the GET, PUT, POST, and D=
ELETE command set can be used with SEP 2.0. It is expected that HTTP is the=
 preferred protocol for interactions with the broader Internet, and that pr=
otocol translation services are provided when it is desired to link an SEP =
system using another application protocol with HTTP based solutions. The li=
ghtweight RESTful Constrained Application Protocol (CoAP) is one such alter=
native to HTTP [COAP]. This protocol should be proxied to HTTP for interact=
ions with the broader Internet, but may be applied end-to-end."

Regards - Charles Palmer=20


-----Original Message-----
From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of Gui=
do Moritz
Sent: 17 May 2010 16:11
To: core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux

> It may also be hard to meet this objective while inserting a subprotocol
as complex as SOAP into the stack.
I just went through the current COAP I-D and it is already quite complex! I=
t
includes many mechanisms and concepts which are also included in SOAP and
other W3C/OASIS Web services specifications that I am familiar in due to my
background in DPWS.=20

Nevertheless, let's leave the discussion around SOAP, because there seems t=
o
be many misunderstandings related to SOAP and what I wanted to point at.
What I wanted to say is (and that is my still my opinion after reading
current COAP I-D): there is no reason to bind COAP to UDP or TCP exclusivel=
y
or exclude one of them. COAP seems to describe many mechanisms for
interaction with resources, eventing and discovery mechanisms, mechanisms t=
o
avoid duplicated message processing etc. But all these mechanisms do not
depend on the transport layer. Why should a node not support interactions b=
y
using TCP or UDP at the same time for the same resource. Of course, not the
highly resource constrained one, but we are heading towards heterogeneous
device infrastructures where resource richer devices in the same network
might be possible as well.

Take the ideas or throw them away. But these are major decisions concerning
applicability of the resulting COAP. What made HTTP and REST in the WWW suc=
h
a success was that it is possible to run it over all kinds of technologies
and not to restrict it to specific message sizes. Let's say there is a cool
new wireless technology IEEE 802.15.XY which is capable of running 6LoWPAN
but with double of the frame size and data rate at same energy costs. Will
there be the next COAPXY for this new link layer because suddenly there is
double the bandwidth available?

Again,
Just my two cents ;)
Guido

> -----Urspr=FCngliche Nachricht-----
> Von: Carsten Bormann [mailto:cabo@tzi.org]
> Gesendet: Montag, 17. Mai 2010 16:24
> An: Guido Moritz
> Cc: core@ietf.org
> Betreff: Re: [core] Core UDP vs TCP : Redux
>=20
> On May 17, 2010, at 15:58, Guido Moritz wrote:
>=20
> > I just wanted to ask
> > if it is reasonable to bind the CORE protocol to UDP,TCP or whatever or
if
> > it is possible to leave this open and design CORE extensible and
flexible
> > enough.
>=20
> It may be hard to meet the working group's objective of addressing
constrained
> node/networks while leaving the underlying protocol(s) open.  It may also
be
> hard to meet this objective while inserting a subprotocol as complex as
SOAP
> into the stack.
>=20
> Gruesse, Carsten


_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

--------------------------------
Onzo is a limited company number 06097997 registered in England & Wales. Th=
e   =20
registered office is 6 Great Newport Street, London, WC2H 7JB, United Kingd=
om.

This email message may contain confidential and/or privileged information, =
and
is intended solely for the addressee(s). If you have received this email in=
    =20
error, please notify Onzo immediately. Unauthorised copying, disclosure or=
=20
distribution of the material in this email is forbidden.
--------------------------------


From charles.palmer@onzo.com  Mon May 17 08:57:24 2010
Return-Path: <charles.palmer@onzo.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 4D5943A6A93 for <core@core3.amsl.com>; Mon, 17 May 2010 08:57:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.086
X-Spam-Level: **
X-Spam-Status: No, score=2.086 tagged_above=-999 required=5 tests=[AWL=-1.635,  BAYES_50=0.001, EXTRA_MPART_TYPE=1, HTML_MESSAGE=0.001, MANGLED_TOOL=2.3, RCVD_IN_DNSWL_LOW=-1, SARE_GIF_ATTACH=1.42]
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 cHycoIguWfMu for <core@core3.amsl.com>; Mon, 17 May 2010 08:57:21 -0700 (PDT)
Received: from service38.mimecast.com (service38.mimecast.com [212.2.3.166]) by core3.amsl.com (Postfix) with SMTP id A14D33A6A71 for <core@ietf.org>; Mon, 17 May 2010 08:56:04 -0700 (PDT)
Received: from onzosbs2k3.ONZO.local (217.138.5.2 [217.138.5.2]) by service38.mimecast.com; Mon, 17 May 2010 16:55:47 +0100
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Date: Mon, 17 May 2010 16:55:42 +0100
Message-ID: <E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED8@onzosbs2k3.ONZO.local>
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
Thread-Topic: [core] Selecting a WG document for CoAP
Thread-Index: Acr12JRx9Ph9sWWaRO2YyHYNHEGmUwAAD8oQ
References: <OF97EC852F.8A85DCEB-ONC1257726.0051887E-C1257726.005677A7@schneider-electric.com>
From: "Charles Palmer" <charles.palmer@onzo.com>
To: <matthieu.vial@fr.non.schneider-electric.com>
X-MC-Unique: 110051716554700702
Content-Type: multipart/related; type="multipart/alternative"; boundary="----_=_NextPart_001_01CAF5D9.69034CBC"
Cc: core-bounces@ietf.org, core <core@ietf.org>
Subject: Re: [core] Selecting a WG document for CoAP
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: Mon, 17 May 2010 15:57:24 -0000

This is a multi-part message in MIME format.

------_=_NextPart_001_01CAF5D9.69034CBC
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_002_01CAF5D9.69034CBC"


------_=_NextPart_002_01CAF5D9.69034CBC
Content-Type: text/plain; charset=WINDOWS-1252
Content-Transfer-Encoding: quoted-printable

Hi Matthieu

=20

I guess the decision on format of message content (e.g. XML/EXI or not) can=
 be taken independently of the POST/webhooks vs SUBSCRIBE/notify mechanism.

=20

Could the second POST (effectively the Notify) be extended to include the c=
hanged data, to avoid the subsequent GET?

=20

Regards - Charles Palmer=20
Onzo Limited (Project Hydra Project Manager)=20
Woodthorpe, Calver Road, Baslow, Derbyshire, DE45 1RR, United Kingdom=20
Ph: +44 (0)1246 582 220, Mob: +44 (0)7977 577 627=20
Email: charles.palmer@onzo.com Skype: Acutetech

=20

From: matthieu.vial@fr.non.schneider-electric.com [mailto:matthieu.vial@fr.=
non.schneider-electric.com]=20
Sent: 17 May 2010 16:44
To: Charles Palmer
Cc: core; core-bounces@ietf.org
Subject: Re: [core] Selecting a WG document for CoAP

=20

Hi,

My comments about the subscribe/notify mechanism of Zigbee IP.

Pros:
- Derived from the webhooks concept
- If used by CORE it will be easier to map to HTTP because it uses only CRU=
D verbs.
- The subscription message is extendable and could support advanced options=
 (delays, increment, ...)=20
- Only one listening port whatever the transport binding is.

Cons:
- No interoperability without well known URIs and a well defined subscripti=
on message format (Not sure CoAP draft is the right place to specify this).
- XML/EXI is too complex to be the required format for the default subscrip=
tion/notification mechanism.
- The notification should not require a subsequent GET to retrieve the cont=
ent.
- Subresource subscription is redundant.

Hope this could help,
Matthieu


 "Charles Palmer" <charles.palmer@onzo.com>





"Charles Palmer" <charles.palmer@onzo.com>=20
Envoy=E9 par : core-bounces@ietf.org=20

15/05/2010 14:06

=20

A

=20
"core" <core@ietf.org>



cc





Objet


Re: [core] Selecting a WG document for CoAP

=20






Dear all

Those interested in the subscribe/notify discussion might like to look
at the draft Smart Energy Profile 2.0 Application Protocol
Specification. It is available here:
http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicApp
licationProfile.aspx

It manages subscribe/notify by using POST. This seems to remove the need
for SUBSCRIBE and notify.

"Imagine a host A, which exposes a resource at http{s}://A/resource and
a second host B, which wishes to learn of changes to this resource. To
facilitate a subscription/ notification mechanism, A would expose a
resource http{s}://A/sub and B would expose a resource http{s}://B/ntfy.
To subscribe to notifications regarding http{s}://A/resource, B would
send a POST to the address http{s}://A/sub/B containing the URI of the
resource of interest (http{s}://A/resource) and the URI of B's
notification resource (http{s}://B/ntfy). Following this subscription
step, should A wish to notify B of a change to the resource addressed at
http{s}://A/resource, A would send a POST to the address
http{s}://B/ntfy containing the URI of the resource changed
(http{s}://A/resource) and the URI of A's subscription resource
(http{s}://A/sub/B), should A wish to change its subscription. The host
B can then query the resource (or not) at its leisure."

Sleepy nodes are not allowed to subscribe, and must poll.

Regards - Charles Palmer=20

-----Original Message-----
From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of
Angelo P. Castellani
Sent: 14 May 2010 13:14
To: Zach Shelby
Cc: core
Subject: Re: [core] Selecting a WG document for CoAP

Zach,

thanks for the comments, but please refer to my most recent e-mail for
a more specific list of technical issues I'm pointing to.

I want to do only a little integration to what I've written there.

In my very personal opinion, to maximize adherence with the REST model
and minimize implementation effort SUBSCRIBE and NOTIFY should be
mapped to methods (as discussed many times together...).

Uniform interface principle (Fielding PhD dissertation Section 5.1.5,
"The central feature that distinguishes the REST architectural style
[...]") states that to simplify the software architecture, resource
interfaces/interfaces should be as general as possible.

I agree with this principle in this specific case, mainly because
handling a special message type for notify leads node software design
to a more complex architecture.

The reason is that this new message type requires special handling and
introduces a complexity in the software modularization.

Best,
Angelo

On Fri, May 14, 2010 at 13:06, Zach Shelby <zach@sensinode.com> wrote:
> Hi Angelo,
>
> On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:
>
>> Dear C. Bormann, all,
>>
>> before deciding for the final direction, I've the following
>> observations about draft-shelby-core-coap-01
>>
>> While I mostly share Zach's view of the protocol approach, and
>> appreciate many aspects of the proposal, there are in my opinion
still
>> some open issues that need to be at least discussed before the
current
>> document can be selected.
>
> Of course there are plenty of open issues. Remember that working group
documents still undertake as much change and improvement as the WG
wants, so by no means is coap-01 set in stone. I would expect at least
5-10 more revisions still along the way.  Already several of your ideas
have been integrated into coap-01, and several more are under
consideration, so it is coming along. Patience ;-)
>
>>
>> In particular, I would like to highlight the following:
>>
>> a) As it is now, it is not possible to have a straightforward
>> translation of HTTP -> CoAP and viceversa: see
>> http://www.ietf.org/mail-archive/web/core/current/msg00133.html (this
>> impacts the scalability of the web service model too)
>
> In coap-01 the Method names are now identical to HTTP methods. The
Req/Res interaction is a direct translation. The URI hierarchy is
compatible, and the URI binary code format we are still working on
obviously. The only thing that takes some state to translate is
Subscribe/Notify. But note, Subscribe/Notify takes some state no matter
how you do it, even with HTTP-HTTP there is no clean and easy way to
handle subscriptions.
>
>>
>> b) Moreover, CoAP's implementation is not as simple as it should be.
>> I've investigated the implementation and some design choices (as
>> Options) are leading to very high program complexity (ROM) on a
>> MSP430-based device.
>
> This we can definitely improve, and already made several optimizations
from -00 to -01. Here I need some very concrete proposals though. Also
remember that many things are optional, for example subscribe/notify is
not required if you don't need it.
>
>> c) Finally when comparing HTTP message size with CoAP message size,
>> the resulting compression isn't as good as you may expect.
>>
>> Example:
>> HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
>> CoAP: 24 B with options parsing procedure requiring an added
>> implementation complexity
>
> Right, that is not how it will work in practice. Working with a real
HTTP server that HTTP header will be more complex, and on the CoAP side
you would chose shorter URLs. The biggest improvement possible here is
from using binary coded URLs of course. We need to look at a wider range
of interactions and real HTTP headers as well to check that we are
efficient enough.
>
>> Addressing all these points potentially leads to major technical
>> modifications (especially point a) on the current draft, hence it is
>> appropriate in my opinion to discuss these points before making the
>> final decision.
>
> I am not sure what else you have in mind for a). If we just forget
about Subscribe/Notify then you are good to go. But then you are also
not fulfilling the charter or the industry needs in that respect.
>
> Thanks,
> Zach
>
>>
>> Best regards,
>>
>> Angelo P. Castellani
>>
>>
>> On Mon, May 10, 2010 at 18:51, Carsten Bormann <cabo@tzi.org> wrote:
>>> The CORE WG has a milestone to select a WG document for CoAP in
April:
>>>
>>> http://datatracker.ietf.org/wg/core/charter/
>>> ...
>>> Apr 2010        Select WG document for basis of the CoAP protocol
>>>
>>> Of the various documents that have been contributed,
draft-shelby-core-coap has significant discussion, as well as the
largest number of updates (including a previous version that was still
called -6lowapp-coap).
>>>
>>> Today, another updated version of that draft was announced.  See
>>> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
>>> for the announcement and
>>> http://tools.ietf.org/html/draft-shelby-core-coap-01
>>> for the draft itself.
>>>
>>> However, as the authors say, there are still significant TODOs.
>>>
>>> Are we in a state yet where we can say whether this is the right
direction for the WG to take?
>>> If yes, is it the right direction?  Should we adopt it as a WG
document?
>>> If you don't think we can say yet, is there a set of technical
decisions you would like the authors to take with priority?
>>>
>>> Note that once a document has become a WG document, the authors act
as editors for the working group, making (and usually fleshing out the
details of) any change that the WG decides it needs.
>>> If you think we can still improve the draft, this is not an obstacle
to making it a WG document.
>>> But of course we shouldn't do that if we intend to reverse its
fundamental technical direction.
>>>
>>> In order to stay roughly in sync with our milestones, we should
reach at a decision on how to go forward this week.
>>>
>>> Gruesse, Carsten
>>>
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>
>> _______________________________________________
>> 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
>
>
_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

--------------------------------
Onzo is a limited company number 06097997 registered in England & Wales. Th=
e   =20
registered office is 6 Great Newport Street, London, WC2H 7JB, United Kingd=
om.

This email message may contain confidential and/or privileged information, =
and
is intended solely for the addressee(s). If you have received this email in=
    =20
error, please notify Onzo immediately. Unauthorised copying, disclosure or=
=20
distribution of the material in this email is forbidden.
--------------------------------

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
______________________________________________________________________

--------------------------------
Onzo is a limited company number 06097997 registered in England & Wales. Th=
e   =20
registered office is 6 Great Newport Street, London, WC2H 7JB, United Kingd=
om.

This email message may contain confidential and/or privileged information, =
and
is intended solely for the addressee(s). If you have received this email in=
    =20
error, please notify Onzo immediately. Unauthorised copying, disclosure or=
=20
distribution of the material in this email is forbidden.
--------------------------------
------_=_NextPart_002_01CAF5D9.69034CBC
Content-Type: text/html; charset=WINDOWS-1252
Content-Transfer-Encoding: quoted-printable

<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; charset=3Diso-8859-=
1">
<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">

<head>

<meta name=3DGenerator content=3D"Microsoft Word 12 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
=09{font-family:Wingdings;
=09panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
=09{font-family:Wingdings;
=09panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
=09{font-family:Calibri;
=09panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
=09{font-family:Tahoma;
=09panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
=09{margin:0cm;
=09margin-bottom:.0001pt;
=09font-size:12.0pt;
=09font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
=09{mso-style-priority:99;
=09color:blue;
=09text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
=09{mso-style-priority:99;
=09color:purple;
=09text-decoration:underline;}
p
=09{mso-style-priority:99;
=09mso-margin-top-alt:auto;
=09margin-right:0cm;
=09mso-margin-bottom-alt:auto;
=09margin-left:0cm;
=09font-size:12.0pt;
=09font-family:"Times New Roman","serif";}
tt
=09{mso-style-priority:99;
=09font-family:"Courier New";}
span.EmailStyle19
=09{mso-style-type:personal-reply;
=09font-family:"Calibri","sans-serif";
=09color:#1F497D;}
.MsoChpDefault
=09{mso-style-type:export-only;
=09font-size:10.0pt;}
@page Section1
=09{size:612.0pt 792.0pt;
=09margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.Section1
=09{page:Section1;}
 /* List Definitions */
 @list l0
=09{mso-list-id:841120811;
=09mso-list-template-ids:2105852900;}
@list l0:level1
=09{mso-level-number-format:bullet;
=09mso-level-text:\F0B7;
=09mso-level-tab-stop:36.0pt;
=09mso-level-number-position:left;
=09text-indent:-18.0pt;
=09mso-ansi-font-size:10.0pt;
=09font-family:Symbol;}
@list l0:level2
=09{mso-level-number-format:bullet;
=09mso-level-text:o;
=09mso-level-tab-stop:72.0pt;
=09mso-level-number-position:left;
=09text-indent:-18.0pt;
=09mso-ansi-font-size:10.0pt;
=09font-family:"Courier New";
=09mso-bidi-font-family:"Times New Roman";}
@list l0:level3
=09{mso-level-number-format:bullet;
=09mso-level-text:\F0A7;
=09mso-level-tab-stop:108.0pt;
=09mso-level-number-position:left;
=09text-indent:-18.0pt;
=09mso-ansi-font-size:10.0pt;
=09font-family:Wingdings;}
@list l0:level4
=09{mso-level-number-format:bullet;
=09mso-level-text:\F0A7;
=09mso-level-tab-stop:144.0pt;
=09mso-level-number-position:left;
=09text-indent:-18.0pt;
=09mso-ansi-font-size:10.0pt;
=09font-family:Wingdings;}
ol
=09{margin-bottom:0cm;}
ul
=09{margin-bottom:0cm;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=3DEN-GB link=3Dblue vlink=3Dpurple>     =20
   =20

<div class=3DSection1>

<p class=3DMsoNormal><span style=3D'font-size:11.0pt;font-family:"Calibri",=
"sans-serif";
color:#1F497D'>Hi Matthieu<o:p></o:p></span></p>

<p class=3DMsoNormal><span style=3D'font-size:11.0pt;font-family:"Calibri",=
"sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span style=3D'font-size:11.0pt;font-family:"Calibri",=
"sans-serif";
color:#1F497D'>I guess the decision on format of message content (e.g. XML/=
EXI
or not) can be taken independently of the POST/webhooks vs SUBSCRIBE/notify
mechanism.<o:p></o:p></span></p>

<p class=3DMsoNormal><span style=3D'font-size:11.0pt;font-family:"Calibri",=
"sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span style=3D'font-size:11.0pt;font-family:"Calibri",=
"sans-serif";
color:#1F497D'>Could the second POST (effectively the Notify) be extended t=
o
include the changed data, to avoid the subsequent GET?<o:p></o:p></span></p=
>

<p class=3DMsoNormal><span style=3D'font-size:11.0pt;font-family:"Calibri",=
"sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div>

<p class=3DMsoNormal><span style=3D'font-size:11.0pt;font-family:"Calibri",=
"sans-serif";
color:#1F497D'>Regards - Charles Palmer <br>
Onzo Limited (Project Hydra Project Manager) <br>
Woodthorpe, Calver Road, Baslow, Derbyshire, DE45 1RR, United Kingdom <br>
Ph: +44 (0)1246 582 220, Mob: +44 (0)7977 577 627 <br>
Email: <a href=3D"mailto:charles.palmer@onzo.com">charles.palmer@onzo.com</=
a>
Skype: Acutetech<o:p></o:p></span></p>

</div>

<p class=3DMsoNormal><span style=3D'font-size:11.0pt;font-family:"Calibri",=
"sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div>

<div style=3D'border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm'>

<p class=3DMsoNormal><b><span lang=3DEN-US style=3D'font-size:10.0pt;font-f=
amily:
"Tahoma","sans-serif"'>From:</span></b><span lang=3DEN-US style=3D'font-siz=
e:10.0pt;
font-family:"Tahoma","sans-serif"'> matthieu.vial@fr.non.schneider-electric=
.com
[mailto:matthieu.vial@fr.non.schneider-electric.com] <br>
<b>Sent:</b> 17 May 2010 16:44<br>
<b>To:</b> Charles Palmer<br>
<b>Cc:</b> core; core-bounces@ietf.org<br>
<b>Subject:</b> Re: [core] Selecting a WG document for CoAP<o:p></o:p></spa=
n></p>

</div>

</div>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<p style=3D'margin-bottom:12.0pt'>Hi,<br>
<br>
My comments about the subscribe/notify mechanism of Zigbee IP.<br>
<br>
Pros:<br>
- Derived from the webhooks concept<br>
- If used by CORE it will be easier to map to HTTP because it uses only CRU=
D
verbs.<br>
- The subscription message is extendable and could support advanced options
(delays, increment, ...) <br>
- Only one listening port whatever the transport binding is.<br>
<br>
Cons:<br>
- No interoperability without well known URIs and a well defined subscripti=
on
message format (Not sure CoAP draft is the right place to specify this).<br=
>
- XML/EXI is too complex to be the required format for the default
subscription/notification mechanism.<br>
- The notification should not require a subsequent GET to retrieve the cont=
ent.<br>
- Subresource subscription is redundant.<br>
<br>
Hope this could help,<br>
Matthieu<br>
<br>
<br>
<img border=3D0 width=3D16 height=3D16 id=3D"_x0000_i1025"
src=3D"cid:image001.gif@01CAF5E1.C8AF7870"
alt=3D"Inactive hide details for &quot;Charles Palmer&quot; &lt;charles.pal=
mer@onzo.com&gt;">&quot;Charles
Palmer&quot; &lt;charles.palmer@onzo.com&gt;<br>
<br>
<br>
<br>
<o:p></o:p></p>

<table class=3DMsoNormalTable border=3D0 cellspacing=3D0 cellpadding=3D0 wi=
dth=3D"100%"
 style=3D'width:100.0%'>
 <tr>
  <td width=3D"40%" valign=3Dtop style=3D'width:40.0%;padding:0cm 0cm 0cm 0=
cm'>
  <p class=3DMsoNormal style=3D'margin-left:144.0pt'><b><span style=3D'font=
-size:
  10.0pt'>&quot;Charles Palmer&quot; &lt;charles.palmer@onzo.com&gt;</span>=
</b><span
  style=3D'font-size:10.0pt'> </span><br>
  <span style=3D'font-size:10.0pt'>Envoy=E9 par : core-bounces@ietf.org</sp=
an> <o:p></o:p></p>
  <p style=3D'margin-left:144.0pt'><span style=3D'font-size:10.0pt'>15/05/2=
010
  14:06</span><o:p></o:p></p>
  </td>
  <td width=3D"60%" valign=3Dtop style=3D'width:60.0%;padding:0cm 0cm 0cm 0=
cm'>
  <table class=3DMsoNormalTable border=3D0 cellspacing=3D0 cellpadding=3D0 =
width=3D"100%"
   style=3D'width:100.0%'>
   <tr>
    <td width=3D"1%" valign=3Dtop style=3D'width:1.0%;padding:0cm 0cm 0cm 0=
cm'>
    <p class=3DMsoNormal><img border=3D0 width=3D58 height=3D1 id=3D"_x0000=
_i1026"
    src=3D"cid:image002.png@01CAF5E1.C8AF7870"><o:p></o:p></p>
    <p class=3DMsoNormal align=3Dright style=3D'text-align:right'><span
    style=3D'font-size:10.0pt'>A</span><o:p></o:p></p>
    </td>
    <td width=3D"100%" valign=3Dtop style=3D'width:100.0%;padding:0cm 0cm 0=
cm 0cm'>
    <p class=3DMsoNormal><img border=3D0 width=3D1 height=3D1 id=3D"_x0000_=
i1027"
    src=3D"cid:image003.png@01CAF5E1.C8AF7870"><br>
    <span style=3D'font-size:10.0pt'>&quot;core&quot; &lt;core@ietf.org&gt;=
</span><o:p></o:p></p>
    </td>
   </tr>
   <tr>
    <td width=3D"1%" valign=3Dtop style=3D'width:1.0%;padding:0cm 0cm 0cm 0=
cm'>
    <p class=3DMsoNormal><img border=3D0 width=3D58 height=3D1 id=3D"_x0000=
_i1028"
    src=3D"cid:image002.png@01CAF5E1.C8AF7870"><o:p></o:p></p>
    <p class=3DMsoNormal align=3Dright style=3D'text-align:right'><span
    style=3D'font-size:10.0pt'>cc</span><o:p></o:p></p>
    </td>
    <td width=3D"100%" valign=3Dtop style=3D'width:100.0%;padding:0cm 0cm 0=
cm 0cm'>
    <p class=3DMsoNormal><img border=3D0 width=3D1 height=3D1 id=3D"_x0000_=
i1029"
    src=3D"cid:image003.png@01CAF5E1.C8AF7870"><o:p></o:p></p>
    </td>
   </tr>
   <tr>
    <td width=3D"1%" valign=3Dtop style=3D'width:1.0%;padding:0cm 0cm 0cm 0=
cm'>
    <p class=3DMsoNormal><img border=3D0 width=3D58 height=3D1 id=3D"_x0000=
_i1030"
    src=3D"cid:image002.png@01CAF5E1.C8AF7870"><o:p></o:p></p>
    <p class=3DMsoNormal align=3Dright style=3D'text-align:right'><span
    style=3D'font-size:10.0pt'>Objet</span><o:p></o:p></p>
    </td>
    <td width=3D"100%" valign=3Dtop style=3D'width:100.0%;padding:0cm 0cm 0=
cm 0cm'>
    <p class=3DMsoNormal><img border=3D0 width=3D1 height=3D1 id=3D"_x0000_=
i1031"
    src=3D"cid:image003.png@01CAF5E1.C8AF7870"><br>
    <span style=3D'font-size:10.0pt'>Re: [core] Selecting a WG document for=
 CoAP</span><o:p></o:p></p>
    </td>
   </tr>
  </table>
  <p class=3DMsoNormal><span style=3D'display:none'><o:p>&nbsp;</o:p></span=
></p>
  <table class=3DMsoNormalTable border=3D0 cellspacing=3D0 cellpadding=3D0>
   <tr>
    <td width=3D58 valign=3Dtop style=3D'width:43.5pt;padding:0cm 0cm 0cm 0=
cm'>
    <p class=3DMsoNormal><img border=3D0 width=3D1 height=3D1 id=3D"_x0000_=
i1032"
    src=3D"cid:image003.png@01CAF5E1.C8AF7870"><o:p></o:p></p>
    </td>
    <td width=3D336 valign=3Dtop style=3D'width:252.0pt;padding:0cm 0cm 0cm=
 0cm'>
    <p class=3DMsoNormal><img border=3D0 width=3D1 height=3D1 id=3D"_x0000_=
i1033"
    src=3D"cid:image003.png@01CAF5E1.C8AF7870"><o:p></o:p></p>
    </td>
   </tr>
  </table>
  </td>
 </tr>
</table>

<p style=3D'margin-bottom:12.0pt'><br>
<tt><span style=3D'font-size:10.0pt'>Dear all</span></tt><span style=3D'fon=
t-size:
10.0pt;font-family:"Courier New"'><br>
<br>
<tt>Those interested in the subscribe/notify discussion might like to look<=
/tt><br>
<tt>at the draft Smart Energy Profile 2.0 Application Protocol</tt><br>
<tt>Specification. It is available here:</tt><br>
<tt><a
href=3D"http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20Publ=
icApp">http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20Publi=
cApp</a></tt><br>
<tt>licationProfile.aspx</tt><br>
<br>
<tt>It manages subscribe/notify by using POST. This seems to remove the nee=
d</tt><br>
<tt>for SUBSCRIBE and notify.</tt><br>
<br>
<tt>&quot;Imagine a host A, which exposes a resource at http{s}://A/resourc=
e
and</tt><br>
<tt>a second host B, which wishes to learn of changes to this resource. To<=
/tt><br>
<tt>facilitate a subscription/ notification mechanism, A would expose a</tt=
><br>
<tt>resource http{s}://A/sub and B would expose a resource http{s}://B/ntfy=
.</tt><br>
<tt>To subscribe to notifications regarding http{s}://A/resource, B would</=
tt><br>
<tt>send a POST to the address http{s}://A/sub/B containing the URI of the<=
/tt><br>
<tt>resource of interest (http{s}://A/resource) and the URI of B's</tt><br>
<tt>notification resource (http{s}://B/ntfy). Following this subscription</=
tt><br>
<tt>step, should A wish to notify B of a change to the resource addressed a=
t</tt><br>
<tt>http{s}://A/resource, A would send a POST to the address</tt><br>
<tt>http{s}://B/ntfy containing the URI of the resource changed</tt><br>
<tt>(http{s}://A/resource) and the URI of A's subscription resource</tt><br=
>
<tt>(http{s}://A/sub/B), should A wish to change its subscription. The host=
</tt><br>
<tt>B can then query the resource (or not) at its leisure.&quot;</tt><br>
<br>
<tt>Sleepy nodes are not allowed to subscribe, and must poll.</tt><br>
<br>
<tt>Regards - Charles Palmer </tt><br>
<br>
<tt>-----Original Message-----</tt><br>
<tt>From: core-bounces@ietf.org [<a href=3D"mailto:core-bounces@ietf.org">m=
ailto:core-bounces@ietf.org</a>]
On Behalf Of</tt><br>
<tt>Angelo P. Castellani</tt><br>
<tt>Sent: 14 May 2010 13:14</tt><br>
<tt>To: Zach Shelby</tt><br>
<tt>Cc: core</tt><br>
<tt>Subject: Re: [core] Selecting a WG document for CoAP</tt><br>
<br>
<tt>Zach,</tt><br>
<br>
<tt>thanks for the comments, but please refer to my most recent e-mail for<=
/tt><br>
<tt>a more specific list of technical issues I'm pointing to.</tt><br>
<br>
<tt>I want to do only a little integration to what I've written there.</tt>=
<br>
<br>
<tt>In my very personal opinion, to maximize adherence with the REST model<=
/tt><br>
<tt>and minimize implementation effort SUBSCRIBE and NOTIFY should be</tt><=
br>
<tt>mapped to methods (as discussed many times together...).</tt><br>
<br>
<tt>Uniform interface principle (Fielding PhD dissertation Section 5.1.5,</=
tt><br>
<tt>&quot;The central feature that distinguishes the REST architectural sty=
le</tt><br>
<tt>[...]&quot;) states that to simplify the software architecture, resourc=
e</tt><br>
<tt>interfaces/interfaces should be as general as possible.</tt><br>
<br>
<tt>I agree with this principle in this specific case, mainly because</tt><=
br>
<tt>handling a special message type for notify leads node software design</=
tt><br>
<tt>to a more complex architecture.</tt><br>
<br>
<tt>The reason is that this new message type requires special handling and<=
/tt><br>
<tt>introduces a complexity in the software modularization.</tt><br>
<br>
<tt>Best,</tt><br>
<tt>Angelo</tt><br>
<br>
<tt>On Fri, May 14, 2010 at 13:06, Zach Shelby &lt;zach@sensinode.com&gt;
wrote:</tt><br>
<tt>&gt; Hi Angelo,</tt><br>
<tt>&gt;</tt><br>
<tt>&gt; On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:</tt><br>
<tt>&gt;</tt><br>
<tt>&gt;&gt; Dear C. Bormann, all,</tt><br>
<tt>&gt;&gt;</tt><br>
<tt>&gt;&gt; before deciding for the final direction, I've the following</t=
t><br>
<tt>&gt;&gt; observations about draft-shelby-core-coap-01</tt><br>
<tt>&gt;&gt;</tt><br>
<tt>&gt;&gt; While I mostly share Zach's view of the protocol approach, and=
</tt><br>
<tt>&gt;&gt; appreciate many aspects of the proposal, there are in my opini=
on</tt><br>
<tt>still</tt><br>
<tt>&gt;&gt; some open issues that need to be at least discussed before the=
</tt><br>
<tt>current</tt><br>
<tt>&gt;&gt; document can be selected.</tt><br>
<tt>&gt;</tt><br>
<tt>&gt; Of course there are plenty of open issues. Remember that working g=
roup</tt><br>
<tt>documents still undertake as much change and improvement as the WG</tt>=
<br>
<tt>wants, so by no means is coap-01 set in stone. I would expect at least<=
/tt><br>
<tt>5-10 more revisions still along the way. &nbsp;Already several of your
ideas</tt><br>
<tt>have been integrated into coap-01, and several more are under</tt><br>
<tt>consideration, so it is coming along. Patience ;-)</tt><br>
<tt>&gt;</tt><br>
<tt>&gt;&gt;</tt><br>
<tt>&gt;&gt; In particular, I would like to highlight the following:</tt><b=
r>
<tt>&gt;&gt;</tt><br>
<tt>&gt;&gt; a) As it is now, it is not possible to have a straightforward<=
/tt><br>
<tt>&gt;&gt; translation of HTTP -&gt; CoAP and viceversa: see</tt><br>
<tt>&gt;&gt; <a
href=3D"http://www.ietf.org/mail-archive/web/core/current/msg00133.html">ht=
tp://www.ietf.org/mail-archive/web/core/current/msg00133.html</a>&nbsp;(thi=
s</tt><br>
<tt>&gt;&gt; impacts the scalability of the web service model too)</tt><br>
<tt>&gt;</tt><br>
<tt>&gt; In coap-01 the Method names are now identical to HTTP methods. The=
</tt><br>
<tt>Req/Res interaction is a direct translation. The URI hierarchy is</tt><=
br>
<tt>compatible, and the URI binary code format we are still working on</tt>=
<br>
<tt>obviously. The only thing that takes some state to translate is</tt><br=
>
<tt>Subscribe/Notify. But note, Subscribe/Notify takes some state no matter=
</tt><br>
<tt>how you do it, even with HTTP-HTTP there is no clean and easy way to</t=
t><br>
<tt>handle subscriptions.</tt><br>
<tt>&gt;</tt><br>
<tt>&gt;&gt;</tt><br>
<tt>&gt;&gt; b) Moreover, CoAP's implementation is not as simple as it shou=
ld
be.</tt><br>
<tt>&gt;&gt; I've investigated the implementation and some design choices (=
as</tt><br>
<tt>&gt;&gt; Options) are leading to very high program complexity (ROM) on =
a</tt><br>
<tt>&gt;&gt; MSP430-based device.</tt><br>
<tt>&gt;</tt><br>
<tt>&gt; This we can definitely improve, and already made several optimizat=
ions</tt><br>
<tt>from -00 to -01. Here I need some very concrete proposals though. Also<=
/tt><br>
<tt>remember that many things are optional, for example subscribe/notify is=
</tt><br>
<tt>not required if you don't need it.</tt><br>
<tt>&gt;</tt><br>
<tt>&gt;&gt; c) Finally when comparing HTTP message size with CoAP message
size,</tt><br>
<tt>&gt;&gt; the resulting compression isn't as good as you may expect.</tt=
><br>
<tt>&gt;&gt;</tt><br>
<tt>&gt;&gt; Example:</tt><br>
<tt>&gt;&gt; HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B</tt><br>
<tt>&gt;&gt; CoAP: 24 B with options parsing procedure requiring an added</=
tt><br>
<tt>&gt;&gt; implementation complexity</tt><br>
<tt>&gt;</tt><br>
<tt>&gt; Right, that is not how it will work in practice. Working with a re=
al</tt><br>
<tt>HTTP server that HTTP header will be more complex, and on the CoAP side=
</tt><br>
<tt>you would chose shorter URLs. The biggest improvement possible here is<=
/tt><br>
<tt>from using binary coded URLs of course. We need to look at a wider rang=
e</tt><br>
<tt>of interactions and real HTTP headers as well to check that we are</tt>=
<br>
<tt>efficient enough.</tt><br>
<tt>&gt;</tt><br>
<tt>&gt;&gt; Addressing all these points potentially leads to major technic=
al</tt><br>
<tt>&gt;&gt; modifications (especially point a) on the current draft, hence=
 it
is</tt><br>
<tt>&gt;&gt; appropriate in my opinion to discuss these points before makin=
g the</tt><br>
<tt>&gt;&gt; final decision.</tt><br>
<tt>&gt;</tt><br>
<tt>&gt; I am not sure what else you have in mind for a). If we just forget=
</tt><br>
<tt>about Subscribe/Notify then you are good to go. But then you are also</=
tt><br>
<tt>not fulfilling the charter or the industry needs in that respect.</tt><=
br>
<tt>&gt;</tt><br>
<tt>&gt; Thanks,</tt><br>
<tt>&gt; Zach</tt><br>
<tt>&gt;</tt><br>
<tt>&gt;&gt;</tt><br>
<tt>&gt;&gt; Best regards,</tt><br>
<tt>&gt;&gt;</tt><br>
<tt>&gt;&gt; Angelo P. Castellani</tt><br>
<tt>&gt;&gt;</tt><br>
<tt>&gt;&gt;</tt><br>
<tt>&gt;&gt; On Mon, May 10, 2010 at 18:51, Carsten Bormann
&lt;cabo@tzi.org&gt; wrote:</tt><br>
<tt>&gt;&gt;&gt; The CORE WG has a milestone to select a WG document for Co=
AP
in</tt><br>
<tt>April:</tt><br>
<tt>&gt;&gt;&gt;</tt><br>
<tt>&gt;&gt;&gt; <a href=3D"http://datatracker.ietf.org/wg/core/charter/">h=
ttp://datatracker.ietf.org/wg/core/charter/</a></tt><br>
<tt>&gt;&gt;&gt; ...</tt><br>
<tt>&gt;&gt;&gt; Apr 2010 &nbsp; &nbsp; &nbsp; &nbsp;Select WG document for
basis of the CoAP protocol</tt><br>
<tt>&gt;&gt;&gt;</tt><br>
<tt>&gt;&gt;&gt; Of the various documents that have been contributed,</tt><=
br>
<tt>draft-shelby-core-coap has significant discussion, as well as the</tt><=
br>
<tt>largest number of updates (including a previous version that was still<=
/tt><br>
<tt>called -6lowapp-coap).</tt><br>
<tt>&gt;&gt;&gt;</tt><br>
<tt>&gt;&gt;&gt; Today, another updated version of that draft was announced=
.
&nbsp;See</tt><br>
<tt>&gt;&gt;&gt; <a
href=3D"http://www.ietf.org/mail-archive/web/core/current/msg00138.html">ht=
tp://www.ietf.org/mail-archive/web/core/current/msg00138.html</a></tt><br>
<tt>&gt;&gt;&gt; for the announcement and</tt><br>
<tt>&gt;&gt;&gt; <a href=3D"http://tools.ietf.org/html/draft-shelby-core-co=
ap-01">http://tools.ietf.org/html/draft-shelby-core-coap-01</a></tt><br>
<tt>&gt;&gt;&gt; for the draft itself.</tt><br>
<tt>&gt;&gt;&gt;</tt><br>
<tt>&gt;&gt;&gt; However, as the authors say, there are still significant
TODOs.</tt><br>
<tt>&gt;&gt;&gt;</tt><br>
<tt>&gt;&gt;&gt; Are we in a state yet where we can say whether this is the
right</tt><br>
<tt>direction for the WG to take?</tt><br>
<tt>&gt;&gt;&gt; If yes, is it the right direction? &nbsp;Should we adopt i=
t as
a WG</tt><br>
<tt>document?</tt><br>
<tt>&gt;&gt;&gt; If you don't think we can say yet, is there a set of techn=
ical</tt><br>
<tt>decisions you would like the authors to take with priority?</tt><br>
<tt>&gt;&gt;&gt;</tt><br>
<tt>&gt;&gt;&gt; Note that once a document has become a WG document, the
authors act</tt><br>
<tt>as editors for the working group, making (and usually fleshing out the<=
/tt><br>
<tt>details of) any change that the WG decides it needs.</tt><br>
<tt>&gt;&gt;&gt; If you think we can still improve the draft, this is not a=
n
obstacle</tt><br>
<tt>to making it a WG document.</tt><br>
<tt>&gt;&gt;&gt; But of course we shouldn't do that if we intend to reverse=
 its</tt><br>
<tt>fundamental technical direction.</tt><br>
<tt>&gt;&gt;&gt;</tt><br>
<tt>&gt;&gt;&gt; In order to stay roughly in sync with our milestones, we
should</tt><br>
<tt>reach at a decision on how to go forward this week.</tt><br>
<tt>&gt;&gt;&gt;</tt><br>
<tt>&gt;&gt;&gt; Gruesse, Carsten</tt><br>
<tt>&gt;&gt;&gt;</tt><br>
<tt>&gt;&gt;&gt; _______________________________________________</tt><br>
<tt>&gt;&gt;&gt; core mailing list</tt><br>
<tt>&gt;&gt;&gt; core@ietf.org</tt><br>
<tt>&gt;&gt;&gt; <a href=3D"https://www.ietf.org/mailman/listinfo/core">htt=
ps://www.ietf.org/mailman/listinfo/core</a></tt><br>
<tt>&gt;&gt;&gt;</tt><br>
<tt>&gt;&gt; _______________________________________________</tt><br>
<tt>&gt;&gt; core mailing list</tt><br>
<tt>&gt;&gt; core@ietf.org</tt><br>
<tt>&gt;&gt; <a href=3D"https://www.ietf.org/mailman/listinfo/core">https:/=
/www.ietf.org/mailman/listinfo/core</a></tt><br>
<tt>&gt;</tt><br>
<tt>&gt; --</tt><br>
<tt>&gt; Zach Shelby, Chief Nerd, Sensinode Ltd.</tt><br>
<tt>&gt; <a href=3D"http://zachshelby.org">http://zachshelby.org</a>&nbsp; =
- My
blog &quot;On the Internet of Things&quot;</tt><br>
<tt>&gt; <a href=3D"http://6lowpan.net">http://6lowpan.net</a>&nbsp;- My bo=
ok
&quot;6LoWPAN: The Wireless Embedded Internet&quot;</tt><br>
<tt>&gt; Mobile: +358 40 7796297</tt><br>
<tt>&gt;</tt><br>
<tt>&gt;</tt><br>
<tt>_______________________________________________</tt><br>
<tt>core mailing list</tt><br>
<tt>core@ietf.org</tt><br>
<tt><a href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf=
.org/mailman/listinfo/core</a></tt><br>
<br>
<tt>--------------------------------</tt><br>
<tt>Onzo is a limited company number 06097997 registered in England &amp;
Wales. The &nbsp; &nbsp;</tt><br>
<tt>registered office is 6 Great Newport Street, London, WC2H 7JB, United
Kingdom.</tt><br>
<br>
<tt>This email message may contain confidential and/or privileged informati=
on,
and</tt><br>
<tt>is intended solely for the addressee(s). If you have received this emai=
l in
&nbsp; &nbsp; </tt><br>
<tt>error, please notify Onzo immediately. Unauthorised copying, disclosure=
 or </tt><br>
<tt>distribution of the material in this email is forbidden.</tt><br>
<tt>--------------------------------</tt><br>
<br>
<tt>_______________________________________________</tt><br>
<tt>core mailing list</tt><br>
<tt>core@ietf.org</tt><br>
<tt><a href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf=
.org/mailman/listinfo/core</a></tt><br>
<br>
<tt>______________________________________________________________________<=
/tt><br>
<tt>This email has been scanned by the MessageLabs Email Security System.</=
tt><br>
<tt>______________________________________________________________________<=
/tt></span><o:p></o:p></p>

</div>


    <BR>
    <span style=3D"font-family:Arial; Font-size:8pt">
          --------------------------------<br/>
          <a href=3D"http://www.onzo.com/">Onzo</a> is a limited company nu=
mber 06097997 registered in England & Wales. The<br/>
          registered office is 6 Great Newport Street, London, WC2H 7JB, Un=
ited Kingdom.<br/><br/>
          This email message may contain confidential and/or privileged inf=
ormation, and<br/>
          is intended solely for the addressee(s). If you have received thi=
s email in<br/>
          error, please notify <a href=3D"http://www.onzo.com/">Onzo</a> im=
mediately. Unauthorised copying, disclosure or<br/>
          distribution of the material in this email is forbidden.<br/>
          --------------------------------<br/>
    </span>
    </body>

</html>

------_=_NextPart_002_01CAF5D9.69034CBC--

------_=_NextPart_001_01CAF5D9.69034CBC
Content-Type: image/gif;
	name="image001.gif"
Content-Transfer-Encoding: base64
Content-ID: <image001.gif@01CAF5E1.C8AF7870>
Content-Description: image001.gif
Content-Location: image001.gif

R0lGODlhEAAQAKECAMzMzAAAAP///wAAACH5BAEAAAIALAAAAAAQABAAAAIXlI+py+0PopwxUbpu
ZRfKZ2zgSJbmSRYAIf4fT3B0aW1pemVkIGJ5IFVsZWFkIFNtYXJ0U2F2ZXIhAAA7
------_=_NextPart_001_01CAF5D9.69034CBC
Content-Type: image/png;
	name="image002.png"
Content-Transfer-Encoding: base64
Content-ID: <image002.png@01CAF5E1.C8AF7870>
Content-Description: image002.png
Content-Location: image002.png

iVBORw0KGgoAAAANSUhEUgAAADoAAAABCAMAAAC42E10AAAAAXNSR0ICQMB9xQAAAANQTFRFAAAA
p3o92gAAAAF0Uk5TAEDm2GYAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAZdEVYdFNvZnR3YXJlAE1p
Y3Jvc29mdCBPZmZpY2V/7TVxAAAADElEQVQY02NgIBsAAAA7AAFzMF3lAAAAAElFTkSuQmCC
------_=_NextPart_001_01CAF5D9.69034CBC
Content-Type: image/png;
	name="image003.png"
Content-Transfer-Encoding: base64
Content-ID: <image003.png@01CAF5E1.C8AF7870>
Content-Description: image003.png
Content-Location: image003.png

iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAMAAAAoyzS7AAAAAXNSR0ICQMB9xQAAAANQTFRFAAAA
p3o92gAAAAF0Uk5TAEDm2GYAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAZdEVYdFNvZnR3YXJlAE1p
Y3Jvc29mdCBPZmZpY2V/7TVxAAAACklEQVQY02NgAAAAAgABmGNs1wAAAABJRU5ErkJggg==
------_=_NextPart_001_01CAF5D9.69034CBC--


From d.sturek@att.net  Mon May 17 09:25:28 2010
Return-Path: <d.sturek@att.net>
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 B3CFB28C1C9 for <core@core3.amsl.com>; Mon, 17 May 2010 09:25:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.11
X-Spam-Level: *
X-Spam-Status: No, score=1.11 tagged_above=-999 required=5 tests=[AWL=-1.274,  BAYES_50=0.001, IP_NOT_FRIENDLY=0.334, J_CHICKENPOX_33=0.6, MSGID_MULTIPLE_AT=1.449, UNPARSEABLE_RELAY=0.001]
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 7vaN0yeqQywV for <core@core3.amsl.com>; Mon, 17 May 2010 09:25:27 -0700 (PDT)
Received: from smtp108.sbc.mail.gq1.yahoo.com (smtp108.sbc.mail.gq1.yahoo.com [67.195.14.111]) by core3.amsl.com (Postfix) with SMTP id 1E92228C1CC for <core@ietf.org>; Mon, 17 May 2010 09:16:44 -0700 (PDT)
Received: (qmail 43114 invoked from network); 17 May 2010 16:16:30 -0000
Received: from sfs-wifi-aruba-dhcp-130-212-158-90.sfsu.edu (d.sturek@130.212.158.90 with login) by smtp108.sbc.mail.gq1.yahoo.com with SMTP; 17 May 2010 09:16:30 -0700 PDT
X-Yahoo-SMTP: fvjol_aswBAraSJvMLe2r1XTzhBhbFxY8q8c3jo-
X-YMail-OSG: ox2n7TEVM1kTC3td_DEcp8fxf9wKh.sV1QVavNsiBjlQZ0Ydq5hzU5pcJSrMs.vhcBEkJyFvfGTmL3UJSmKiOrrADDf0NUWod4uicgkIiI0RA7LVwdHrRvdDz6XD_qyLyig31.1WZ4zVtyyXbTsN5gOxLeoHYRPt1J6IxPdHcI4lF0crHGBFupJiaXDNQktrpL1KKXYpqAC.iWghVhKM0FjvXxHmYPAb.elTVXTCHKmKB12o_FCiZsPipoki_gKPvz3_gb1SGefoYeK9wOjWSgO7iQJd3lY9sd1dRR7YdpanJprCnOo-
X-Yahoo-Newman-Property: ymail-3
From: "Don Sturek" <d.sturek@att.net>
To: "'Charles Palmer'" <charles.palmer@onzo.com>, "'core'" <core@ietf.org>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org>	<007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de> <E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local>
In-Reply-To: <E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local>
Date: Mon, 17 May 2010 09:16:28 -0700
Message-ID: <011601caf5dc$4ed71850$ec8548f0$@sturek@att.net>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Office Outlook 12.0
Thread-Index: Acr1zJc/bvdnn+5LQpypULdy1SC3ZQAA0P1wAAFHDkAAAZqG8A==
Content-Language: en-us
Subject: Re: [core] Core UDP vs TCP : Redux
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: d.sturek@att.net
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: Mon, 17 May 2010 16:25:28 -0000

Hi Charles,

I think HTTP/TCP/IP/EXI was selected in Smart Energy 2.0 to provide a
familiar programming environment for the headend systems.  In general, =
we
(the SE 2.0 team) chose REST as the programming paradigm with HTTP/TCP =
as
"plan A" and CoRE/UDP as "plan B".  Plan B is around ensuring that the =
stack
fits on small footprint devices (particularly those already fielded).   =
We
(SE 2.0) are in the midst of interoperability testing of IEEE
802.15.4/6LowPAN/IPv6/TCP/HTTP so we should have some
throughput/efficiency/code size issues shortly.

In any case, we believe that CoRE is a fundamental feature needed to =
deploy
small footprint devices.

Don


-----Original Message-----
From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of
Charles Palmer
Sent: Monday, May 17, 2010 8:48 AM
To: core
Subject: Re: [core] Core UDP vs TCP : Redux

Hi folks

Worth noting that the draft ZigBee Smart Energy 2.0 Application Protocol
Specification is very good about not mandating the transport layer =
(although
it talks extensively about TLS - does this limit it to TCP?)

The SE2.0 spec also makes reference to possibly using CoRE (see quote
below). BTW how closely are we/should we be tracking SE2.0 work? I see
several names in both lists. I'd speculate that if CoRE is to be of use =
to
ZigBee Smart Energy then CoRE needs to provide an easy transition.

I guess SE2.0 plans to use HTTP/EXI/TCP/IP because they exist and work.=20

How disruptive would it be to design CoRE without reference to TCP/UDP, =
and
also design a "reliable UDP" and use this for CoRE?=20

>From SE2.0:

"6.1 Protocol Flexibility
The Smart Energy Profile is designed to implement a RESTful =
architecture. As
such it is built around the core actions of GET, PUT, POST, and DELETE =
(as
used in [REST]), with the addition of a lightweight subscription and
notification mechanism, as discussed above in =A77. It is not however,
strictly limited to HTTP. Any protocol that can implement the GET, PUT,
POST, and DELETE command set can be used with SEP 2.0. It is expected =
that
HTTP is the preferred protocol for interactions with the broader =
Internet,
and that protocol translation services are provided when it is desired =
to
link an SEP system using another application protocol with HTTP based
solutions. The lightweight RESTful Constrained Application Protocol =
(CoAP)
is one such alternative to HTTP [COAP]. This protocol should be proxied =
to
HTTP for interactions with the broader Internet, but may be applied
end-to-end."

Regards - Charles Palmer=20


-----Original Message-----
From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of
Guido Moritz
Sent: 17 May 2010 16:11
To: core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux

> It may also be hard to meet this objective while inserting a =
subprotocol
as complex as SOAP into the stack.
I just went through the current COAP I-D and it is already quite =
complex! It
includes many mechanisms and concepts which are also included in SOAP =
and
other W3C/OASIS Web services specifications that I am familiar in due to =
my
background in DPWS.=20

Nevertheless, let's leave the discussion around SOAP, because there =
seems to
be many misunderstandings related to SOAP and what I wanted to point at.
What I wanted to say is (and that is my still my opinion after reading
current COAP I-D): there is no reason to bind COAP to UDP or TCP =
exclusively
or exclude one of them. COAP seems to describe many mechanisms for
interaction with resources, eventing and discovery mechanisms, =
mechanisms to
avoid duplicated message processing etc. But all these mechanisms do not
depend on the transport layer. Why should a node not support =
interactions by
using TCP or UDP at the same time for the same resource. Of course, not =
the
highly resource constrained one, but we are heading towards =
heterogeneous
device infrastructures where resource richer devices in the same network
might be possible as well.

Take the ideas or throw them away. But these are major decisions =
concerning
applicability of the resulting COAP. What made HTTP and REST in the WWW =
such
a success was that it is possible to run it over all kinds of =
technologies
and not to restrict it to specific message sizes. Let's say there is a =
cool
new wireless technology IEEE 802.15.XY which is capable of running =
6LoWPAN
but with double of the frame size and data rate at same energy costs. =
Will
there be the next COAPXY for this new link layer because suddenly there =
is
double the bandwidth available?

Again,
Just my two cents ;)
Guido

> -----Urspr=FCngliche Nachricht-----
> Von: Carsten Bormann [mailto:cabo@tzi.org]
> Gesendet: Montag, 17. Mai 2010 16:24
> An: Guido Moritz
> Cc: core@ietf.org
> Betreff: Re: [core] Core UDP vs TCP : Redux
>=20
> On May 17, 2010, at 15:58, Guido Moritz wrote:
>=20
> > I just wanted to ask
> > if it is reasonable to bind the CORE protocol to UDP,TCP or whatever =
or
if
> > it is possible to leave this open and design CORE extensible and
flexible
> > enough.
>=20
> It may be hard to meet the working group's objective of addressing
constrained
> node/networks while leaving the underlying protocol(s) open.  It may =
also
be
> hard to meet this objective while inserting a subprotocol as complex =
as
SOAP
> into the stack.
>=20
> Gruesse, Carsten


_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

--------------------------------
Onzo is a limited company number 06097997 registered in England & Wales. =
The

registered office is 6 Great Newport Street, London, WC2H 7JB, United
Kingdom.

This email message may contain confidential and/or privileged =
information,
and
is intended solely for the addressee(s). If you have received this email =
in

error, please notify Onzo immediately. Unauthorised copying, disclosure =
or=20
distribution of the material in this email is forbidden.
--------------------------------

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core


From matthieu.vial@fr.non.schneider-electric.com  Mon May 17 09:45:42 2010
Return-Path: <matthieu.vial@fr.non.schneider-electric.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 230143A6872; Mon, 17 May 2010 09:45:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.99
X-Spam-Level: **
X-Spam-Status: No, score=2.99 tagged_above=-999 required=5 tests=[AWL=-0.875,  BAYES_50=0.001, HTML_MESSAGE=0.001, J_CHICKENPOX_12=0.6, MANGLED_TOOL=2.3, RCVD_IN_DNSWL_LOW=-1, SARE_GIF_ATTACH=1.42, TVD_FW_GRAPHIC_NAME_MID=0.543]
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 UdTe9cuJU+3E; Mon, 17 May 2010 09:45:39 -0700 (PDT)
Received: from mailX03.eud.schneider-electric.com (mailx03.eud.schneider-electric.com [205.167.7.41]) by core3.amsl.com (Postfix) with ESMTP id 333453A688B; Mon, 17 May 2010 09:45:26 -0700 (PDT)
Received: from ATEUI01.schneider-electric.com ([10.198.14.9]) by mailX03.eud.schneider-electric.com with ESMTP id 2010051718355597-80151 ; Mon, 17 May 2010 18:35:55 +0200 
In-Reply-To: <E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED8@onzosbs2k3.ONZO.local>
To: "Charles Palmer" <charles.palmer@onzo.com>
X-Mailer: Lotus Notes Release 6.5.6 March 06, 2007
Message-ID: <OF9BE4EEA6.73AA41D7-ONC1257726.0059B3DB-C1257726.005C07EB@schneider-electric.com>
From: matthieu.vial@fr.non.schneider-electric.com
Date: Mon, 17 May 2010 18:45:13 +0200
MIME-Version: 1.0
X-MIMETrack: Serialize by Router on ATEUI01.Schneider-Electric.com/T/SVR/Schneider at 17/05/2010 18:45:16, Itemize by SMTP Server on AXEU3OUT.schneider-electric.com/X/SVR/SEIxtra at 17/05/2010 18:35:56, Serialize by Router on AXEU3OUT.schneider-electric.com/X/SVR/SEIxtra at 17/05/2010 18:35:58
Content-type: multipart/related;  Boundary="0__=4EBBFDB5DFCA354B8f9e8a93df938690918c4EBBFDB5DFCA354B"
Cc: core-bounces@ietf.org, core <core@ietf.org>
Subject: Re: [core] Selecting a WG document for CoAP
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: Mon, 17 May 2010 16:45:42 -0000

--0__=4EBBFDB5DFCA354B8f9e8a93df938690918c4EBBFDB5DFCA354B
Content-type: multipart/alternative; 
	Boundary="1__=4EBBFDB5DFCA354B8f9e8a93df938690918c4EBBFDB5DFCA354B"

--1__=4EBBFDB5DFCA354B8f9e8a93df938690918c4EBBFDB5DFCA354B
Content-transfer-encoding: quoted-printable
Content-type: text/plain; charset=ISO-8859-1



>I guess the decision on format of message content (e.g. XML/EXI or not=
)
can be taken independently of the POST/webhooks vs SUBSCRIBE/notify
mechanism.
Of course but I have the feeling that interoperability between CoAP dev=
ices
may suffer from the webhooks approach because of a new message definiti=
on
whatever it is.
I hope I'am wrong because I still prefer webhooks.

>Could the second POST (effectively the Notify) be extended to include =
the
changed data, to avoid the subsequent GET?
If the notification URI is different for each subscribed resource could=

the POST content be as simple as the extra GET ?

Best regards,
Matthieu





                                                                       =
    
             "Charles Palmer"                                          =
    
             <charles.palmer@o                                         =
    
             nzo.com>                                                  =
  A 
                                       Matthieu                        =
    
             17/05/2010 17:55          Vial/FR/Non/Schneider@Europe    =
    
                                                                       =
 cc 
                                       "core" <core@ietf.org>,         =
    
                                       <core-bounces@ietf.org>         =
    
                                                                     Ob=
jet 
                                       RE: [core] Selecting a WG docume=
nt  
                                       for CoAP                        =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    




From: matthieu.vial@fr.non.schneider-electric.com
[mailto:matthieu.vial@fr.non.schneider-electric.com]
Sent: 17 May 2010 16:44
To: Charles Palmer
Cc: core; core-bounces@ietf.org
Subject: Re: [core] Selecting a WG document for CoAP



Hi,

My comments about the subscribe/notify mechanism of Zigbee IP.

Pros:
- Derived from the webhooks concept
- If used by CORE it will be easier to map to HTTP because it uses only=

CRUD verbs.
- The subscription message is extendable and could support advanced opt=
ions
(delays, increment, ...)
- Only one listening port whatever the transport binding is.

Cons:
- No interoperability without well known URIs and a well defined
subscription message format (Not sure CoAP draft is the right place to
specify this).
- XML/EXI is too complex to be the required format for the default
subscription/notification mechanism.
- The notification should not require a subsequent GET to retrieve the
content.
- Subresource subscription is redundant.

Hope this could help,
Matthieu


Inactive hide details for "Charles Palmer" <charles.palmer@onzo.com>
"Charles Palmer" <charles.palmer@onzo.com>





                                                                       =
    
 "Charles Palmer"                                                      =
    
 <charles.palmer@onzo.com>                                             =
    
 Envoy=E9 par :                                                        =
      
 core-bounces@ietf.org                                                 =
    
                                                                       =
  A 
                                                                       =
    
 15/05/2010 14:06                               "core" <core@ietf.org> =
    
                                                                       =
    
                                                                       =
 cc 
                                                                       =
    
                                                                       =
    
                                                                     Ob=
jet 
                                                                       =
    
                                                Re: [core] Selecting a =
WG  
                                                document for CoAP      =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    





Dear all

Those interested in the subscribe/notify discussion might like to look
at the draft Smart Energy Profile 2.0 Application Protocol
Specification. It is available here:
http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicAp=
p
licationProfile.aspx

It manages subscribe/notify by using POST. This seems to remove the nee=
d
for SUBSCRIBE and notify.

"Imagine a host A, which exposes a resource at http{s}://A/resource and=

a second host B, which wishes to learn of changes to this resource. To
facilitate a subscription/ notification mechanism, A would expose a
resource http{s}://A/sub and B would expose a resource http{s}://B/ntfy=
.
To subscribe to notifications regarding http{s}://A/resource, B would
send a POST to the address http{s}://A/sub/B containing the URI of the
resource of interest (http{s}://A/resource) and the URI of B's
notification resource (http{s}://B/ntfy). Following this subscription
step, should A wish to notify B of a change to the resource addressed a=
t
http{s}://A/resource, A would send a POST to the address
http{s}://B/ntfy containing the URI of the resource changed
(http{s}://A/resource) and the URI of A's subscription resource
(http{s}://A/sub/B), should A wish to change its subscription. The host=

B can then query the resource (or not) at its leisure."

Sleepy nodes are not allowed to subscribe, and must poll.

Regards - Charles Palmer

-----Original Message-----
From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of=

Angelo P. Castellani
Sent: 14 May 2010 13:14
To: Zach Shelby
Cc: core
Subject: Re: [core] Selecting a WG document for CoAP

Zach,

thanks for the comments, but please refer to my most recent e-mail for
a more specific list of technical issues I'm pointing to.

I want to do only a little integration to what I've written there.

In my very personal opinion, to maximize adherence with the REST model
and minimize implementation effort SUBSCRIBE and NOTIFY should be
mapped to methods (as discussed many times together...).

Uniform interface principle (Fielding PhD dissertation Section 5.1.5,
"The central feature that distinguishes the REST architectural style
[...]") states that to simplify the software architecture, resource
interfaces/interfaces should be as general as possible.

I agree with this principle in this specific case, mainly because
handling a special message type for notify leads node software design
to a more complex architecture.

The reason is that this new message type requires special handling and
introduces a complexity in the software modularization.

Best,
Angelo

On Fri, May 14, 2010 at 13:06, Zach Shelby <zach@sensinode.com> wrote:
> Hi Angelo,
>
> On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:
>
>> Dear C. Bormann, all,
>>
>> before deciding for the final direction, I've the following
>> observations about draft-shelby-core-coap-01
>>
>> While I mostly share Zach's view of the protocol approach, and
>> appreciate many aspects of the proposal, there are in my opinion
still
>> some open issues that need to be at least discussed before the
current
>> document can be selected.
>
> Of course there are plenty of open issues. Remember that working grou=
p
documents still undertake as much change and improvement as the WG
wants, so by no means is coap-01 set in stone. I would expect at least
5-10 more revisions still along the way.  Already several of your ideas=

have been integrated into coap-01, and several more are under
consideration, so it is coming along. Patience ;-)
>
>>
>> In particular, I would like to highlight the following:
>>
>> a) As it is now, it is not possible to have a straightforward
>> translation of HTTP -> CoAP and viceversa: see
>> http://www.ietf.org/mail-archive/web/core/current/msg00133.html (thi=
s
>> impacts the scalability of the web service model too)
>
> In coap-01 the Method names are now identical to HTTP methods. The
Req/Res interaction is a direct translation. The URI hierarchy is
compatible, and the URI binary code format we are still working on
obviously. The only thing that takes some state to translate is
Subscribe/Notify. But note, Subscribe/Notify takes some state no matter=

how you do it, even with HTTP-HTTP there is no clean and easy way to
handle subscriptions.
>
>>
>> b) Moreover, CoAP's implementation is not as simple as it should be.=

>> I've investigated the implementation and some design choices (as
>> Options) are leading to very high program complexity (ROM) on a
>> MSP430-based device.
>
> This we can definitely improve, and already made several optimization=
s
from -00 to -01. Here I need some very concrete proposals though. Also
remember that many things are optional, for example subscribe/notify is=

not required if you don't need it.
>
>> c) Finally when comparing HTTP message size with CoAP message size,
>> the resulting compression isn't as good as you may expect.
>>
>> Example:
>> HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
>> CoAP: 24 B with options parsing procedure requiring an added
>> implementation complexity
>
> Right, that is not how it will work in practice. Working with a real
HTTP server that HTTP header will be more complex, and on the CoAP side=

you would chose shorter URLs. The biggest improvement possible here is
from using binary coded URLs of course. We need to look at a wider rang=
e
of interactions and real HTTP headers as well to check that we are
efficient enough.
>
>> Addressing all these points potentially leads to major technical
>> modifications (especially point a) on the current draft, hence it is=

>> appropriate in my opinion to discuss these points before making the
>> final decision.
>
> I am not sure what else you have in mind for a). If we just forget
about Subscribe/Notify then you are good to go. But then you are also
not fulfilling the charter or the industry needs in that respect.
>
> Thanks,
> Zach
>
>>
>> Best regards,
>>
>> Angelo P. Castellani
>>
>>
>> On Mon, May 10, 2010 at 18:51, Carsten Bormann <cabo@tzi.org> wrote:=

>>> The CORE WG has a milestone to select a WG document for CoAP in
April:
>>>
>>> http://datatracker.ietf.org/wg/core/charter/
>>> ...
>>> Apr 2010        Select WG document for basis of the CoAP protocol
>>>
>>> Of the various documents that have been contributed,
draft-shelby-core-coap has significant discussion, as well as the
largest number of updates (including a previous version that was still
called -6lowapp-coap).
>>>
>>> Today, another updated version of that draft was announced.  See
>>> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
>>> for the announcement and
>>> http://tools.ietf.org/html/draft-shelby-core-coap-01
>>> for the draft itself.
>>>
>>> However, as the authors say, there are still significant TODOs.
>>>
>>> Are we in a state yet where we can say whether this is the right
direction for the WG to take?
>>> If yes, is it the right direction?  Should we adopt it as a WG
document?
>>> If you don't think we can say yet, is there a set of technical
decisions you would like the authors to take with priority?
>>>
>>> Note that once a document has become a WG document, the authors act=

as editors for the working group, making (and usually fleshing out the
details of) any change that the WG decides it needs.
>>> If you think we can still improve the draft, this is not an obstacl=
e
to making it a WG document.
>>> But of course we shouldn't do that if we intend to reverse its
fundamental technical direction.
>>>
>>> In order to stay roughly in sync with our milestones, we should
reach at a decision on how to go forward this week.
>>>
>>> Gruesse, Carsten
>>>
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>
>> _______________________________________________
>> 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
>
>
_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

--------------------------------
Onzo is a limited company number 06097997 registered in England & Wales=
.
The
registered office is 6 Great Newport Street, London, WC2H 7JB, United
Kingdom.

This email message may contain confidential and/or privileged informati=
on,
and
is intended solely for the addressee(s). If you have received this emai=
l in

error, please notify Onzo immediately. Unauthorised copying, disclosure=
 or
distribution of the material in this email is forbidden.
--------------------------------

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
______________________________________________________________________



-------------------------------- Onzo is a limited company number 06097=
997
registered in England & Wales. The registered office is 6 Great Newport=

Street, London, WC2H 7JB, United Kingdom. This email message may contai=
n
confidential and/or privileged information, and is intended solely for =
the
addressee(s). If you have received this email in error, please notify O=
nzo
immediately. Unauthorised copying, disclosure or distribution of the
material in this email is forbidden. --------------------------------
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
______________________________________________________________________

=

--1__=4EBBFDB5DFCA354B8f9e8a93df938690918c4EBBFDB5DFCA354B
Content-transfer-encoding: quoted-printable
Content-type: text/html; charset=ISO-8859-1
Content-Disposition: inline

<html><body>
<p> <br>
&gt;I guess the decision on format of message content (e.g. XML/EXI or =
not) can be taken independently of the POST/webhooks vs SUBSCRIBE/notif=
y mechanism.<br>
Of course but I have the feeling that interoperability between CoAP dev=
ices may suffer from the webhooks approach because of a new message def=
inition whatever it is.<br>
I hope I'am wrong because I still prefer webhooks.<br>
 <br>
&gt;Could the second POST (effectively the Notify) be extended to inclu=
de the changed data, to avoid the subsequent GET?<br>
If the notification URI is different for each subscribed resource could=
  the POST content be as simple as the extra GET ?<br>
<br>
Best regards,<br>
Matthieu<br>
<br>
<img width=3D"16" height=3D"16" src=3D"cid:1__=3D4EBBFDB5DFCA354B8@schn=
eider-electric.com" border=3D"0" alt=3D"Inactive hide details for &quot=
;Charles Palmer&quot; &lt;charles.palmer@onzo.com&gt;">&quot;Charles Pa=
lmer&quot; &lt;charles.palmer@onzo.com&gt;<br>
<br>
<br>
<br>
<br>

<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">=

<tr valign=3D"top"><td style=3D"background-image:url(cid:2__=3D4EBBFDB5=
DFCA354B8@schneider-electric.com); background-repeat: no-repeat; " widt=
h=3D"40%">
<ul>
<ul>
<ul>
<ul><b><font size=3D"2">&quot;Charles Palmer&quot; &lt;charles.palmer@o=
nzo.com&gt;</font></b><font size=3D"2"> </font>
<p><font size=3D"2">17/05/2010 17:55</font></ul>
</ul>
</ul>
</ul>
</td><td width=3D"60%">
<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">=

<tr valign=3D"top"><td width=3D"1%"><img width=3D"58" height=3D"1" src=3D=
"cid:3__=3D4EBBFDB5DFCA354B8@schneider-electric.com" border=3D"0" alt=3D=
""><br>
<div align=3D"right"><font size=3D"2">A</font></div></td><td width=3D"1=
00%"><img width=3D"1" height=3D"1" src=3D"cid:3__=3D4EBBFDB5DFCA354B8@s=
chneider-electric.com" border=3D"0" alt=3D""><br>
<font size=3D"2">Matthieu Vial/FR/Non/Schneider@Europe</font></td></tr>=


<tr valign=3D"top"><td width=3D"1%"><img width=3D"58" height=3D"1" src=3D=
"cid:3__=3D4EBBFDB5DFCA354B8@schneider-electric.com" border=3D"0" alt=3D=
""><br>
<div align=3D"right"><font size=3D"2">cc</font></div></td><td width=3D"=
100%"><img width=3D"1" height=3D"1" src=3D"cid:3__=3D4EBBFDB5DFCA354B8@=
schneider-electric.com" border=3D"0" alt=3D""><br>
<font size=3D"2">&quot;core&quot; &lt;core@ietf.org&gt;, &lt;core-bounc=
es@ietf.org&gt;</font></td></tr>

<tr valign=3D"top"><td width=3D"1%"><img width=3D"58" height=3D"1" src=3D=
"cid:3__=3D4EBBFDB5DFCA354B8@schneider-electric.com" border=3D"0" alt=3D=
""><br>
<div align=3D"right"><font size=3D"2">Objet</font></div></td><td width=3D=
"100%"><img width=3D"1" height=3D"1" src=3D"cid:3__=3D4EBBFDB5DFCA354B8=
@schneider-electric.com" border=3D"0" alt=3D""><br>
<font size=3D"2">RE: [core] Selecting a WG document for CoAP</font></td=
></tr>
</table>

<table border=3D"0" cellspacing=3D"0" cellpadding=3D"0">
<tr valign=3D"top"><td width=3D"58"><img width=3D"1" height=3D"1" src=3D=
"cid:3__=3D4EBBFDB5DFCA354B8@schneider-electric.com" border=3D"0" alt=3D=
""></td><td width=3D"336"><img width=3D"1" height=3D"1" src=3D"cid:3__=3D=
4EBBFDB5DFCA354B8@schneider-electric.com" border=3D"0" alt=3D""></td></=
tr>
</table>
</td></tr>
</table>
<font size=3D"4" color=3D"#1F497D" face=3D"Calibri"> </font><br>
<b><font size=3D"4" face=3D"Tahoma">From:</font></b><font size=3D"4" fa=
ce=3D"Tahoma"> matthieu.vial@fr.non.schneider-electric.com [<a href=3D"=
mailto:matthieu.vial@fr.non.schneider-electric.com">mailto:matthieu.via=
l@fr.non.schneider-electric.com</a>] </font><b><font size=3D"4" face=3D=
"Tahoma"><br>
Sent:</font></b><font size=3D"4" face=3D"Tahoma"> 17 May 2010 16:44</fo=
nt><b><font size=3D"4" face=3D"Tahoma"><br>
To:</font></b><font size=3D"4" face=3D"Tahoma"> Charles Palmer</font><b=
><font size=3D"4" face=3D"Tahoma"><br>
Cc:</font></b><font size=3D"4" face=3D"Tahoma"> core; core-bounces@ietf=
.org</font><b><font size=3D"4" face=3D"Tahoma"><br>
Subject:</font></b><font size=3D"4" face=3D"Tahoma"> Re: [core] Selecti=
ng a WG document for CoAP</font><br>
<font size=3D"4" face=3D"Times New Roman"> </font>
<p><font size=3D"4" face=3D"Times New Roman">Hi,<br>
<br>
My comments about the subscribe/notify mechanism of Zigbee IP.<br>
<br>
Pros:<br>
- Derived from the webhooks concept<br>
- If used by CORE it will be easier to map to HTTP because it uses only=
 CRUD verbs.<br>
- The subscription message is extendable and could support advanced opt=
ions (delays, increment, ...) <br>
- Only one listening port whatever the transport binding is.<br>
<br>
Cons:<br>
- No interoperability without well known URIs and a well defined subscr=
iption message format (Not sure CoAP draft is the right place to specif=
y this).<br>
- XML/EXI is too complex to be the required format for the default subs=
cription/notification mechanism.<br>
- The notification should not require a subsequent GET to retrieve the =
content.<br>
- Subresource subscription is redundant.<br>
<br>
Hope this could help,<br>
Matthieu<br>
<br>
<br>
</font><img src=3D"cid:1__=3D4EBBFDB5DFCA354B8@schneider-electric.com" =
width=3D"16" height=3D"16" alt=3D"Inactive hide details for &quot;Charl=
es Palmer&quot; &lt;charles.palmer@onzo.com&gt;"><font size=3D"4" face=3D=
"Times New Roman">&quot;Charles Palmer&quot; &lt;charles.palmer@onzo.co=
m&gt;<br>
<br>
<br>
</font>
<p>
<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">=

<tr valign=3D"top"><td width=3D"45%"><b><font size=3D"4" face=3D"Times =
New Roman">&quot;Charles Palmer&quot; &lt;charles.palmer@onzo.com&gt;</=
font></b><font size=3D"4" face=3D"Times New Roman"> <br>
Envoy=E9 par : core-bounces@ietf.org </font>
<p><font size=3D"4" face=3D"Times New Roman">15/05/2010 14:06</font></t=
d><td width=3D"55%">
<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">=

<tr valign=3D"top"><td width=3D"17%"><div align=3D"right"><font size=3D=
"4" face=3D"Times New Roman">A</font></div></td><td width=3D"83%"><font=
 size=3D"4" face=3D"Times New Roman"><br>
&quot;core&quot; &lt;core@ietf.org&gt;</font></td></tr>

<tr valign=3D"top"><td width=3D"17%"><div align=3D"right"><font size=3D=
"4" face=3D"Times New Roman">cc</font></div></td><td width=3D"83%"><img=
 width=3D"1" height=3D"1" src=3D"cid:3__=3D4EBBFDB5DFCA354B8@schneider-=
electric.com" border=3D"0" alt=3D""></td></tr>

<tr valign=3D"top"><td width=3D"17%"><div align=3D"right"><font size=3D=
"4" face=3D"Times New Roman">Objet</font></div></td><td width=3D"83%"><=
font size=3D"4" face=3D"Times New Roman"><br>
Re: [core] Selecting a WG document for CoAP</font></td></tr>
</table>
<font size=3D"4" face=3D"Times New Roman"> </font>
<p><br>

<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">=

<tr valign=3D"top"><td width=3D"15%"><img width=3D"1" height=3D"1" src=3D=
"cid:3__=3D4EBBFDB5DFCA354B8@schneider-electric.com" border=3D"0" alt=3D=
""></td><td width=3D"85%"><img width=3D"1" height=3D"1" src=3D"cid:3__=3D=
4EBBFDB5DFCA354B8@schneider-electric.com" border=3D"0" alt=3D""></td></=
tr>
</table>
</td></tr>
</table>
<font size=3D"4" face=3D"Courier New"><br>
Dear all<br>
<br>
Those interested in the subscribe/notify discussion might like to look<=
br>
at the draft Smart Energy Profile 2.0 Application Protocol<br>
Specification. It is available here:</font><u><font size=3D"4" color=3D=
"#0000FF" face=3D"Courier New"><br>
</font></u><a href=3D"http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBe=
eSmartEnergy20PublicApp"><u><font size=3D"4" color=3D"#0000FF" face=3D"=
Courier New">http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEne=
rgy20PublicApp</font></u></a><font size=3D"4" face=3D"Courier New"><br>=

licationProfile.aspx<br>
<br>
It manages subscribe/notify by using POST. This seems to remove the nee=
d<br>
for SUBSCRIBE and notify.<br>
<br>
&quot;Imagine a host A, which exposes a resource at http{s}://A/resourc=
e and<br>
a second host B, which wishes to learn of changes to this resource. To<=
br>
facilitate a subscription/ notification mechanism, A would expose a<br>=

resource http{s}://A/sub and B would expose a resource http{s}://B/ntfy=
.<br>
To subscribe to notifications regarding http{s}://A/resource, B would<b=
r>
send a POST to the address http{s}://A/sub/B containing the URI of the<=
br>
resource of interest (http{s}://A/resource) and the URI of B's<br>
notification resource (http{s}://B/ntfy). Following this subscription<b=
r>
step, should A wish to notify B of a change to the resource addressed a=
t<br>
http{s}://A/resource, A would send a POST to the address<br>
http{s}://B/ntfy containing the URI of the resource changed<br>
(http{s}://A/resource) and the URI of A's subscription resource<br>
(http{s}://A/sub/B), should A wish to change its subscription. The host=
<br>
B can then query the resource (or not) at its leisure.&quot;<br>
<br>
Sleepy nodes are not allowed to subscribe, and must poll.<br>
<br>
Regards - Charles Palmer <br>
<br>
-----Original Message-----<br>
From: core-bounces@ietf.org [</font><a href=3D"mailto:core-bounces@ietf=
.org"><u><font size=3D"4" color=3D"#0000FF" face=3D"Courier New">mailto=
:core-bounces@ietf.org</font></u></a><font size=3D"4" face=3D"Courier N=
ew">] On Behalf Of<br>
Angelo P. Castellani<br>
Sent: 14 May 2010 13:14<br>
To: Zach Shelby<br>
Cc: core<br>
Subject: Re: [core] Selecting a WG document for CoAP<br>
<br>
Zach,<br>
<br>
thanks for the comments, but please refer to my most recent e-mail for<=
br>
a more specific list of technical issues I'm pointing to.<br>
<br>
I want to do only a little integration to what I've written there.<br>
<br>
In my very personal opinion, to maximize adherence with the REST model<=
br>
and minimize implementation effort SUBSCRIBE and NOTIFY should be<br>
mapped to methods (as discussed many times together...).<br>
<br>
Uniform interface principle (Fielding PhD dissertation Section 5.1.5,<b=
r>
&quot;The central feature that distinguishes the REST architectural sty=
le<br>
[...]&quot;) states that to simplify the software architecture, resourc=
e<br>
interfaces/interfaces should be as general as possible.<br>
<br>
I agree with this principle in this specific case, mainly because<br>
handling a special message type for notify leads node software design<b=
r>
to a more complex architecture.<br>
<br>
The reason is that this new message type requires special handling and<=
br>
introduces a complexity in the software modularization.<br>
<br>
Best,<br>
Angelo<br>
<br>
On Fri, May 14, 2010 at 13:06, Zach Shelby &lt;zach@sensinode.com&gt; w=
rote:<br>
&gt; Hi Angelo,<br>
&gt;<br>
&gt; On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:<br>
&gt;<br>
&gt;&gt; Dear C. Bormann, all,<br>
&gt;&gt;<br>
&gt;&gt; before deciding for the final direction, I've the following<br=
>
&gt;&gt; observations about draft-shelby-core-coap-01<br>
&gt;&gt;<br>
&gt;&gt; While I mostly share Zach's view of the protocol approach, and=
<br>
&gt;&gt; appreciate many aspects of the proposal, there are in my opini=
on<br>
still<br>
&gt;&gt; some open issues that need to be at least discussed before the=
<br>
current<br>
&gt;&gt; document can be selected.<br>
&gt;<br>
&gt; Of course there are plenty of open issues. Remember that working g=
roup<br>
documents still undertake as much change and improvement as the WG<br>
wants, so by no means is coap-01 set in stone. I would expect at least<=
br>
5-10 more revisions still along the way.  Already several of your ideas=
<br>
have been integrated into coap-01, and several more are under<br>
consideration, so it is coming along. Patience ;-)<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; In particular, I would like to highlight the following:<br>
&gt;&gt;<br>
&gt;&gt; a) As it is now, it is not possible to have a straightforward<=
br>
&gt;&gt; translation of HTTP -&gt; CoAP and viceversa: see<br>
&gt;&gt; </font><a href=3D"http://www.ietf.org/mail-archive/web/core/cu=
rrent/msg00133.html"><u><font size=3D"4" color=3D"#0000FF" face=3D"Cour=
ier New">http://www.ietf.org/mail-archive/web/core/current/msg00133.htm=
l</font></u></a><font size=3D"4" face=3D"Courier New"> (this<br>
&gt;&gt; impacts the scalability of the web service model too)<br>
&gt;<br>
&gt; In coap-01 the Method names are now identical to HTTP methods. The=
<br>
Req/Res interaction is a direct translation. The URI hierarchy is<br>
compatible, and the URI binary code format we are still working on<br>
obviously. The only thing that takes some state to translate is<br>
Subscribe/Notify. But note, Subscribe/Notify takes some state no matter=
<br>
how you do it, even with HTTP-HTTP there is no clean and easy way to<br=
>
handle subscriptions.<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; b) Moreover, CoAP's implementation is not as simple as it shou=
ld be.<br>
&gt;&gt; I've investigated the implementation and some design choices (=
as<br>
&gt;&gt; Options) are leading to very high program complexity (ROM) on =
a<br>
&gt;&gt; MSP430-based device.<br>
&gt;<br>
&gt; This we can definitely improve, and already made several optimizat=
ions<br>
from -00 to -01. Here I need some very concrete proposals though. Also<=
br>
remember that many things are optional, for example subscribe/notify is=
<br>
not required if you don't need it.<br>
&gt;<br>
&gt;&gt; c) Finally when comparing HTTP message size with CoAP message =
size,<br>
&gt;&gt; the resulting compression isn't as good as you may expect.<br>=

&gt;&gt;<br>
&gt;&gt; Example:<br>
&gt;&gt; HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B<br>
&gt;&gt; CoAP: 24 B with options parsing procedure requiring an added<b=
r>
&gt;&gt; implementation complexity<br>
&gt;<br>
&gt; Right, that is not how it will work in practice. Working with a re=
al<br>
HTTP server that HTTP header will be more complex, and on the CoAP side=
<br>
you would chose shorter URLs. The biggest improvement possible here is<=
br>
from using binary coded URLs of course. We need to look at a wider rang=
e<br>
of interactions and real HTTP headers as well to check that we are<br>
efficient enough.<br>
&gt;<br>
&gt;&gt; Addressing all these points potentially leads to major technic=
al<br>
&gt;&gt; modifications (especially point a) on the current draft, hence=
 it is<br>
&gt;&gt; appropriate in my opinion to discuss these points before makin=
g the<br>
&gt;&gt; final decision.<br>
&gt;<br>
&gt; I am not sure what else you have in mind for a). If we just forget=
<br>
about Subscribe/Notify then you are good to go. But then you are also<b=
r>
not fulfilling the charter or the industry needs in that respect.<br>
&gt;<br>
&gt; Thanks,<br>
&gt; Zach<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; Best regards,<br>
&gt;&gt;<br>
&gt;&gt; Angelo P. Castellani<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Mon, May 10, 2010 at 18:51, Carsten Bormann &lt;cabo@tzi.or=
g&gt; wrote:<br>
&gt;&gt;&gt; The CORE WG has a milestone to select a WG document for Co=
AP in<br>
April:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; </font><a href=3D"http://datatracker.ietf.org/wg/core/char=
ter/"><u><font size=3D"4" color=3D"#0000FF" face=3D"Courier New">http:/=
/datatracker.ietf.org/wg/core/charter/</font></u></a><font size=3D"4" f=
ace=3D"Courier New"><br>
&gt;&gt;&gt; ...<br>
&gt;&gt;&gt; Apr 2010        Select WG document for basis of the CoAP p=
rotocol<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Of the various documents that have been contributed,<br>
draft-shelby-core-coap has significant discussion, as well as the<br>
largest number of updates (including a previous version that was still<=
br>
called -6lowapp-coap).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Today, another updated version of that draft was announced=
.  See<br>
&gt;&gt;&gt; </font><a href=3D"http://www.ietf.org/mail-archive/web/cor=
e/current/msg00138.html"><u><font size=3D"4" color=3D"#0000FF" face=3D"=
Courier New">http://www.ietf.org/mail-archive/web/core/current/msg00138=
.html</font></u></a><font size=3D"4" face=3D"Courier New"><br>
&gt;&gt;&gt; for the announcement and<br>
&gt;&gt;&gt; </font><a href=3D"http://tools.ietf.org/html/draft-shelby-=
core-coap-01"><u><font size=3D"4" color=3D"#0000FF" face=3D"Courier New=
">http://tools.ietf.org/html/draft-shelby-core-coap-01</font></u></a><f=
ont size=3D"4" face=3D"Courier New"><br>
&gt;&gt;&gt; for the draft itself.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; However, as the authors say, there are still significant T=
ODOs.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Are we in a state yet where we can say whether this is the=
 right<br>
direction for the WG to take?<br>
&gt;&gt;&gt; If yes, is it the right direction?  Should we adopt it as =
a WG<br>
document?<br>
&gt;&gt;&gt; If you don't think we can say yet, is there a set of techn=
ical<br>
decisions you would like the authors to take with priority?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Note that once a document has become a WG document, the au=
thors act<br>
as editors for the working group, making (and usually fleshing out the<=
br>
details of) any change that the WG decides it needs.<br>
&gt;&gt;&gt; If you think we can still improve the draft, this is not a=
n obstacle<br>
to making it a WG document.<br>
&gt;&gt;&gt; But of course we shouldn't do that if we intend to reverse=
 its<br>
fundamental technical direction.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; In order to stay roughly in sync with our milestones, we s=
hould<br>
reach at a decision on how to go forward this week.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Gruesse, Carsten<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; core mailing list<br>
&gt;&gt;&gt; core@ietf.org<br>
&gt;&gt;&gt; </font><a href=3D"https://www.ietf.org/mailman/listinfo/co=
re"><u><font size=3D"4" color=3D"#0000FF" face=3D"Courier New">https://=
www.ietf.org/mailman/listinfo/core</font></u></a><font size=3D"4" face=3D=
"Courier New"><br>
&gt;&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; core mailing list<br>
&gt;&gt; core@ietf.org<br>
&gt;&gt; </font><a href=3D"https://www.ietf.org/mailman/listinfo/core">=
<u><font size=3D"4" color=3D"#0000FF" face=3D"Courier New">https://www.=
ietf.org/mailman/listinfo/core</font></u></a><font size=3D"4" face=3D"C=
ourier New"><br>
&gt;<br>
&gt; --<br>
&gt; Zach Shelby, Chief Nerd, Sensinode Ltd.<br>
&gt; </font><a href=3D"http://zachshelby.org/"><u><font size=3D"4" colo=
r=3D"#0000FF" face=3D"Courier New">http://zachshelby.org</font></u></a>=
<font size=3D"4" face=3D"Courier New">  - My blog &quot;On the Internet=
 of Things&quot;<br>
&gt; </font><a href=3D"http://6lowpan.net/"><u><font size=3D"4" color=3D=
"#0000FF" face=3D"Courier New">http://6lowpan.net</font></u></a><font s=
ize=3D"4" face=3D"Courier New"> - My book &quot;6LoWPAN: The Wireless E=
mbedded Internet&quot;<br>
&gt; Mobile: +358 40 7796297<br>
&gt;<br>
&gt;<br>
_______________________________________________<br>
core mailing list<br>
core@ietf.org</font><u><font size=3D"4" color=3D"#0000FF" face=3D"Couri=
er New"><br>
</font></u><a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><f=
ont size=3D"4" color=3D"#0000FF" face=3D"Courier New">https://www.ietf.=
org/mailman/listinfo/core</font></u></a><font size=3D"4" face=3D"Courie=
r New"><br>
<br>
--------------------------------<br>
Onzo is a limited company number 06097997 registered in England &amp; W=
ales. The    <br>
registered office is 6 Great Newport Street, London, WC2H 7JB, United K=
ingdom.<br>
<br>
This email message may contain confidential and/or privileged informati=
on, and<br>
is intended solely for the addressee(s). If you have received this emai=
l in     <br>
error, please notify Onzo immediately. Unauthorised copying, disclosure=
 or <br>
distribution of the material in this email is forbidden.<br>
--------------------------------<br>
<br>
_______________________________________________<br>
core mailing list<br>
core@ietf.org</font><u><font size=3D"4" color=3D"#0000FF" face=3D"Couri=
er New"><br>
</font></u><a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><f=
ont size=3D"4" color=3D"#0000FF" face=3D"Courier New">https://www.ietf.=
org/mailman/listinfo/core</font></u></a><font size=3D"4" face=3D"Courie=
r New"><br>
<br>
______________________________________________________________________<=
br>
This email has been scanned by the MessageLabs Email Security System.<b=
r>
______________________________________________________________________<=
/font>
<p><font size=3D"2" face=3D"Arial"><br>
-------------------------------- </font><a href=3D"http://www.onzo.com/=
"><u><font size=3D"2" color=3D"#0000FF" face=3D"Arial">Onzo</font></u><=
/a><font size=3D"2" face=3D"Arial"> is a limited company number 0609799=
7 registered in England &amp; Wales. The registered office is 6 Great N=
ewport Street, London, WC2H 7JB, United Kingdom. This email message may=
 contain confidential and/or privileged information, and is intended so=
lely for the addressee(s). If you have received this email in error, pl=
ease notify </font><a href=3D"http://www.onzo.com/"><u><font size=3D"2"=
 color=3D"#0000FF" face=3D"Arial">Onzo</font></u></a><font size=3D"2" f=
ace=3D"Arial"> immediately. Unauthorised copying, disclosure or distrib=
ution of the material in this email is forbidden. ---------------------=
----------- </font><font size=3D"4"><br>
______________________________________________________________________<=
br>
This email has been scanned by the MessageLabs Email Security System.<b=
r>
______________________________________________________________________<=
/font>
<p></body></html>=


--1__=4EBBFDB5DFCA354B8f9e8a93df938690918c4EBBFDB5DFCA354B--


--0__=4EBBFDB5DFCA354B8f9e8a93df938690918c4EBBFDB5DFCA354B
Content-type: image/gif; 
	name="graycol.gif"
Content-Disposition: inline; filename="graycol.gif"
Content-ID: <1__=4EBBFDB5DFCA354B8@schneider-electric.com>
Content-Transfer-Encoding: base64

R0lGODlhEAAQAKECAMzMzAAAAP///wAAACH5BAEAAAIALAAAAAAQABAAAAIXlI+py+0PopwxUbpu
ZRfKZ2zgSJbmSRYAIf4fT3B0aW1pemVkIGJ5IFVsZWFkIFNtYXJ0U2F2ZXIhAAA7


--0__=4EBBFDB5DFCA354B8f9e8a93df938690918c4EBBFDB5DFCA354B
Content-type: image/gif; 
	name="pic18875.gif"
Content-Disposition: inline; filename="pic18875.gif"
Content-ID: <2__=4EBBFDB5DFCA354B8@schneider-electric.com>
Content-Transfer-Encoding: base64

R0lGODlhWABDALP/AAAAAK04Qf79/o+Gm7WuwlNObwoJFCsoSMDAwGFsmIuezf///wAAAAAAAAAA
AAAAACH5BAEAAAgALAAAAABYAEMAQAT/EMlJq704682770RiFMRinqggEUNSHIchG0BCfHhOjAuh
EDeUqTASLCbBhQrhG7xis2j0lssNDopE4jfIJhDaggI8YB1sZeZgLVA9YVCpnGagVjV171aRVrYR
RghXcAGFhoUETwYxcXNyADJ3GlcSKGAwLwllVC1vjIUHBWsFilKQdI8GA5IcpApeJQt8L09lmgkH
LZikoU5wjqcyAMMFrJIDPAKvCFletKSev1HBw8KrxtjZ2tvc3d5VyKtCKW3jfz4uMKmq3xu4N0nK
BVoJQmx2LGVOmrqNjjJf2hHAQo/eDwJGTKhQMcgQEEAnEjFS98+RnW3smGkZU6ncCWav/4wYOnAI
TihRL/4FEwbp28BXMMcoscQCVxlepL4IGDSCyJyVQOu0o7CjmLN50OZlqWmyFy5/6yBBuji0AxFR
M00oQAqNIstqI6qKHUsWRAEAvagsmfUEAImyxgbmUpJk3IklNUtJOUAVLoUr1+wqDGTE4zk+T6FG
uQb3SizBCwatiiUgCBN8vrz+zFjVyQ8FWkOlg4NQiZMB5QS8QO3mpOaKnL0Z2EKvNMSILEThKhCg
zMKPVxYJh23qm9KNW7pArPynMqZDiErsTMqI+LRi3QAgkFUbXpuFKhSYZALd0O5RKa2z9EYKBbpb
qxIKsjUPRgD7I2XYV6wyrOw92ykExP8NW4URhknC5dKGE4v4NENQj2jXjmfNgOZDaXb5glRmXQ33
YEWQYNcZFnrYcIQLNzyTFDQNkXIff0ExVlY4srziQk43inZgL4rwxxINMvpFFAz1KOODHiu+4aEw
NEjFl5B3JIKWKF3k6I9bfUGp5ZZcdunll5IA4cuHvQQJ5gcsoCWOOUwgltIwAKRxJgbIkJAQZEq0
2YliZnpZZ4BH3CnYOXldOUOfQoYDqF1LFHbXCrO8xmRsfoXDXJ6ChjCAH3QlhJcT6VWE6FCkfCco
CgrMFsROrIEX3o2whVjWDjoJccN3LdggSGXLCdLEgHr1lyU3O3QxhgohNKXJCWv8JQr/PDdaqd6w
2rj1inLiGeiCJoDspAoQlYE6QWLSECehcWIYxIQES6zhbn1iImTHEQyqJ4eIxJJoUBc+3CbBuwZE
V5cJPPkIjFDdeEabQbd6WgICTxiiz0f5dBKquXF6k4senwEhYGnKEFJeGrxUZy8dB8gmAXI/sPvH
ESfCwVt5hTgYiqQqtdRNHQIU1PJ33ZqmzgE90OwLaoJcnMop1WiMmgkPHQRIrwgFuNV90A3doNKT
mrKIN07AnGcI9BQjhCBN4RfA1qIZnMqorJCogKfGQnxSCDilTVIA0yl5ciTovgLuBDKFUDE9aQcw
9SA+rjSNf9/M1gxrj6VwDTS0IUSElMzBfsj0NFXR2kwsV1A5IF1grLgLL/r1R40BZEnuBWgmQEyb
jqRwSAt6bqMCOFkvKFN2GPPkUzIm/SCF8z8pVzpbjVnMsy0vOr1hw3SaSRUhpY09v0z0J1FnwzPl
fmh+xl4WtR0zGu24I4KbMQm3lnVu2oNWxI9W/lcyzA+mCKF4DBikxb/+UWtOGRiFP8qEwAayIgIA
Ow==


--0__=4EBBFDB5DFCA354B8f9e8a93df938690918c4EBBFDB5DFCA354B
Content-type: image/gif; 
	name="ecblank.gif"
Content-Disposition: inline; filename="ecblank.gif"
Content-ID: <3__=4EBBFDB5DFCA354B8@schneider-electric.com>
Content-Transfer-Encoding: base64

R0lGODlhEAABAIAAAAAAAP///yH5BAEAAAEALAAAAAAQAAEAAAIEjI8ZBQA7


--0__=4EBBFDB5DFCA354B8f9e8a93df938690918c4EBBFDB5DFCA354B--


From cabo@tzi.org  Mon May 17 09:59:11 2010
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 3C95F3A68AD for <core@core3.amsl.com>; Mon, 17 May 2010 09:59:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.994
X-Spam-Level: 
X-Spam-Status: No, score=-3.994 tagged_above=-999 required=5 tests=[AWL=-0.945, BAYES_50=0.001, HELO_EQ_DE=0.35, J_CHICKENPOX_32=0.6, RCVD_IN_DNSWL_MED=-4]
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 lAciSZ75WzEg for <core@core3.amsl.com>; Mon, 17 May 2010 09:59:10 -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 DED1A3A6783 for <core@ietf.org>; Mon, 17 May 2010 09:59:09 -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 o4HGwsD1007804; Mon, 17 May 2010 18:58:54 +0200 (CEST)
Received: from [192.168.217.101] (p5489B387.dip.t-dialin.net [84.137.179.135]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by smtp-fb3.informatik.uni-bremen.de (Postfix) with ESMTP id BA9F5D38E;  Mon, 17 May 2010 18:58:53 +0200 (CEST)
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: text/plain; charset=us-ascii
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local>
Date: Mon, 17 May 2010 18:58:52 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org> <007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de> <E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local>
To: "Charles Palmer" <charles.palmer@onzo.com>
X-Mailer: Apple Mail (2.1078)
Cc: core <core@ietf.org>
Subject: Re: [core] Core UDP vs TCP : Redux
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: Mon, 17 May 2010 16:59:11 -0000

On May 17, 2010, at 17:47, Charles Palmer wrote:

> How disruptive would it be to design CoRE without reference to =
TCP/UDP, and also design a "reliable UDP" and use this for CoRE?=20

I personally think CoAP needs to work with DTLS; if the WG moves in that =
direction there will be some minimum requirement for independence from =
the underlying protocol.

However, what we expect from the underlying protocol has a big bearing =
on CoAP itself.
If we expect we can always move to TCP, there will be little need to =
make CoAP operate on large representations with small underlying =
interactions.  I've heard a lot of pushback on assuming the availability =
of TCP, so far.

There is also the aspect of interoperability:  One of the great =
properties of the Web is that everybody uses the same stack, so all Web =
clients and servers are interoperable, with IP providing the necessary =
technological diversity.
(On the other hand, this has made it near impossible to swap in, say, =
SCTP.)
Just standardizing CoAP without an "we expect this to run on UDP, unless =
otherwise specified" would not achieve the same level of =
interoperability.

<WG chair hat>In any case, designing a reliable transport as a TCP =
replacement and then a CoAP on top of either that or TCP is very much =
not what the charter suggests we are supposed to do.</WG chair hat>
Instead, we should look at how stateless CoAP really can be made -- I =
think even TFTP has too much state (and thus isn't as trivial a file =
transfer protocol as it could be).

Gruesse, Carsten


From Michael.Stuber@itron.com  Mon May 17 15:30:24 2010
Return-Path: <Michael.Stuber@itron.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 354F33A6927 for <core@core3.amsl.com>; Mon, 17 May 2010 15:30:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.999
X-Spam-Level: 
X-Spam-Status: No, score=-0.999 tagged_above=-999 required=5 tests=[AWL=-1.600, BAYES_50=0.001, J_CHICKENPOX_33=0.6]
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 9apSUeDn23hm for <core@core3.amsl.com>; Mon, 17 May 2010 15:30:22 -0700 (PDT)
Received: from mailer-1.itron.com (mailer-1.itron.com [198.182.8.123]) by core3.amsl.com (Postfix) with ESMTP id B13BE3A6405 for <core@ietf.org>; Mon, 17 May 2010 15:30:19 -0700 (PDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Mon, 17 May 2010 15:30:11 -0700
Message-ID: <05C6A38D732F1144A8C4016BA4416BFE02D5A50F@SPO-EXVS-02.itron.com>
In-Reply-To: <E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [core] Core UDP vs TCP : Redux
Thread-Index: Acr1zJc/bvdnn+5LQpypULdy1SC3ZQAA0P1wAAFHDkAADlYSQA==
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org><007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de> <E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local>
From: "Stuber, Michael" <Michael.Stuber@itron.com>
To: "Charles Palmer" <charles.palmer@onzo.com>, "core" <core@ietf.org>
Subject: Re: [core] Core UDP vs TCP : Redux
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: Mon, 17 May 2010 22:30:24 -0000

Quoting:

"I guess SE2.0 plans to use HTTP/EXI/TCP/IP because they exist and =
work."

They exist and work on PCs and some embedded devices.  There are open =
questions as to how effective they will be in an 802.15.4 context, =
especially when packet size constraints, device constraints, and network =
scale are factored in.  (Note:  I'm not suggesting that HTTP doesn't =
work, I'm suggesting that a lighter-weight solution like CoAP is a =
better choice given the limitations in these networks, especially as =
they are required to scale up.)  That is why some of us are very =
interested in CoAP.  HTTP/EXI/TCP/IP can be made smaller with effort.  =
CoAP should be small from the outset. =20

Regarding your question of not having a UDP reference, I would argue =
that we should recognize that this effort is explicitly for constrained =
devices.  As such, we should design the protocol with UDP as the =
transport.  These remain IP networks.  Folks that want a different =
performance profile can choose to run additional or alternate protocols. =
 We should focus on simple and lightweight protocols for constrained =
devices.  We should ensure that CoAP works over UDP, and we should state =
that it is our target transport.  Implementers, as always, can choose to =
run over other transports, but that should be outside of our scope.


-----Original Message-----
From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of =
Charles Palmer
Sent: Monday, May 17, 2010 8:48 AM
To: core
Subject: Re: [core] Core UDP vs TCP : Redux


Hi folks

Worth noting that the draft ZigBee Smart Energy 2.0 Application Protocol =
Specification is very good about not mandating the transport layer =
(although it talks extensively about TLS - does this limit it to TCP?)

The SE2.0 spec also makes reference to possibly using CoRE (see quote =
below). BTW how closely are we/should we be tracking SE2.0 work? I see =
several names in both lists. I'd speculate that if CoRE is to be of use =
to ZigBee Smart Energy then CoRE needs to provide an easy transition.


How disruptive would it be to design CoRE without reference to TCP/UDP, =
and also design a "reliable UDP" and use this for CoRE?=20

>From SE2.0:

"6.1 Protocol Flexibility
The Smart Energy Profile is designed to implement a RESTful =
architecture. As such it is built around the core actions of GET, PUT, =
POST, and DELETE (as used in [REST]), with the addition of a lightweight =
subscription and notification mechanism, as discussed above in =A77. It =
is not however, strictly limited to HTTP. Any protocol that can =
implement the GET, PUT, POST, and DELETE command set can be used with =
SEP 2.0. It is expected that HTTP is the preferred protocol for =
interactions with the broader Internet, and that protocol translation =
services are provided when it is desired to link an SEP system using =
another application protocol with HTTP based solutions. The lightweight =
RESTful Constrained Application Protocol (CoAP) is one such alternative =
to HTTP [COAP]. This protocol should be proxied to HTTP for interactions =
with the broader Internet, but may be applied end-to-end."

Regards - Charles Palmer=20


-----Original Message-----
From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of =
Guido Moritz
Sent: 17 May 2010 16:11
To: core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux

> It may also be hard to meet this objective while inserting a=20
> subprotocol
as complex as SOAP into the stack.
I just went through the current COAP I-D and it is already quite =
complex! It includes many mechanisms and concepts which are also =
included in SOAP and other W3C/OASIS Web services specifications that I =
am familiar in due to my background in DPWS.=20

Nevertheless, let's leave the discussion around SOAP, because there =
seems to be many misunderstandings related to SOAP and what I wanted to =
point at.
What I wanted to say is (and that is my still my opinion after reading =
current COAP I-D): there is no reason to bind COAP to UDP or TCP =
exclusively or exclude one of them. COAP seems to describe many =
mechanisms for interaction with resources, eventing and discovery =
mechanisms, mechanisms to avoid duplicated message processing etc. But =
all these mechanisms do not depend on the transport layer. Why should a =
node not support interactions by using TCP or UDP at the same time for =
the same resource. Of course, not the highly resource constrained one, =
but we are heading towards heterogeneous device infrastructures where =
resource richer devices in the same network might be possible as well.

Take the ideas or throw them away. But these are major decisions =
concerning applicability of the resulting COAP. What made HTTP and REST =
in the WWW such a success was that it is possible to run it over all =
kinds of technologies and not to restrict it to specific message sizes. =
Let's say there is a cool new wireless technology IEEE 802.15.XY which =
is capable of running 6LoWPAN but with double of the frame size and data =
rate at same energy costs. Will there be the next COAPXY for this new =
link layer because suddenly there is double the bandwidth available?

Again,
Just my two cents ;)
Guido

> -----Urspr=FCngliche Nachricht-----
> Von: Carsten Bormann [mailto:cabo@tzi.org]
> Gesendet: Montag, 17. Mai 2010 16:24
> An: Guido Moritz
> Cc: core@ietf.org
> Betreff: Re: [core] Core UDP vs TCP : Redux
>=20
> On May 17, 2010, at 15:58, Guido Moritz wrote:
>=20
> > I just wanted to ask
> > if it is reasonable to bind the CORE protocol to UDP,TCP or whatever =

> > or
if
> > it is possible to leave this open and design CORE extensible and
flexible
> > enough.
>=20
> It may be hard to meet the working group's objective of addressing
constrained
> node/networks while leaving the underlying protocol(s) open.  It may=20
> also
be
> hard to meet this objective while inserting a subprotocol as complex=20
> as
SOAP
> into the stack.
>=20
> Gruesse, Carsten


_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

--------------------------------
Onzo is a limited company number 06097997 registered in England & Wales. =
The   =20
registered office is 6 Great Newport Street, London, WC2H 7JB, United =
Kingdom.

This email message may contain confidential and/or privileged =
information, and
is intended solely for the addressee(s). If you have received this email =
in    =20
error, please notify Onzo immediately. Unauthorised copying, disclosure =
or distribution of the material in this email is forbidden.
--------------------------------

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

From gc355804@ohio.edu  Mon May 17 15:53:12 2010
Return-Path: <gc355804@ohio.edu>
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 9703E3A6AF2 for <core@core3.amsl.com>; Mon, 17 May 2010 15:53:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.001
X-Spam-Level: 
X-Spam-Status: No, score=0.001 tagged_above=-999 required=5 tests=[BAYES_50=0.001]
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 ESQsULEQZPdm for <core@core3.amsl.com>; Mon, 17 May 2010 15:53:11 -0700 (PDT)
Received: from mx2.oit.ohio.edu (mx2.oit.ohio.edu [132.235.51.19]) by core3.amsl.com (Postfix) with ESMTP id C28B43A6AA8 for <core@ietf.org>; Mon, 17 May 2010 15:53:11 -0700 (PDT)
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AqQFAOdl8UuE6wiX/2dsb2JhbACRdoxztF+IXoUQBA
X-IronPort-AV: E=Sophos;i="4.53,249,1272859200"; d="scan'208";a="42347612"
Received: from oak3a.cats.ohiou.edu (HELO oak.cats.ohiou.edu) ([132.235.8.151]) by smtpout2.oit.ohio.edu with ESMTP; 17 May 2010 18:53:03 -0400
Received: from [10.1.42.116] (cpe-184-57-77-118.columbus.res.rr.com [184.57.77.118]) (authenticated bits=0) by oak.cats.ohiou.edu (8.13.1/8.13.1) with ESMTP id o4HMpG4C1630135 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for <core@ietf.org>; Mon, 17 May 2010 18:51:17 -0400 (EDT)
Message-ID: <4BF1C85E.8090309@ohio.edu>
Date: Mon, 17 May 2010 18:51:10 -0400
From: Gilbert Clark <gc355804@ohio.edu>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4
MIME-Version: 1.0
To: core@ietf.org
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org>	<007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de>	<E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local> <3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org>
In-Reply-To: <3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Subject: Re: [core] Core UDP vs TCP : Redux
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: Mon, 17 May 2010 22:53:12 -0000

On 5/17/2010 12:58 PM, Carsten Bormann wrote:
> On May 17, 2010, at 17:47, Charles Palmer wrote:
>
>    
>> How disruptive would it be to design CoRE without reference to TCP/UDP, and also design a "reliable UDP" and use this for CoRE?
>>      
> I personally think CoAP needs to work with DTLS; if the WG moves in that direction there will be some minimum requirement for independence from the underlying protocol.
>
>    

Apologies in advance if I missed it, but has DCCP been considered?

I know that it works with DTLS in theory (RFC 5238).  Further, from the 
DCCP RFC (4340):

"One DCCP design goal was to give most streaming UDP applications little 
reason not to switch to DCCP, once it is deployed.  To facilitate this, 
DCCP was designed to have as little overhead as possible, both in terms 
of the packet header size and in terms of the state and CPU overhead 
required at end hosts."

Also, assuming that TCP is not included in the final version(s) of the 
draft, would it be worthwhile to include a note in the RFC stating that 
running CoAP over TCP is not recommended?

Best,
Gilbert Clark
Grad Student


From Michael.Stuber@itron.com  Mon May 17 15:58:52 2010
Return-Path: <Michael.Stuber@itron.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 229453A6B33 for <core@core3.amsl.com>; Mon, 17 May 2010 15:58:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.054
X-Spam-Level: 
X-Spam-Status: No, score=-1.054 tagged_above=-999 required=5 tests=[AWL=0.056,  BAYES_05=-1.11]
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 zCkv9NO+4uCz for <core@core3.amsl.com>; Mon, 17 May 2010 15:58:51 -0700 (PDT)
Received: from mailer-1.itron.com (mailer-1.itron.com [198.182.8.123]) by core3.amsl.com (Postfix) with ESMTP id 036293A6B31 for <core@ietf.org>; Mon, 17 May 2010 15:58:49 -0700 (PDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Date: Mon, 17 May 2010 15:58:41 -0700
Message-ID: <05C6A38D732F1144A8C4016BA4416BFE02D5A531@SPO-EXVS-02.itron.com>
In-Reply-To: <3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [core] Core UDP vs TCP : Redux
Thread-Index: Acr14kMw25NWzy2ZSNKbKahuoQEUIgAMaQzA
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org><007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de><E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local> <3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org>
From: "Stuber, Michael" <Michael.Stuber@itron.com>
To: "Carsten Bormann" <cabo@tzi.org>, "Charles Palmer" <charles.palmer@onzo.com>
Cc: core <core@ietf.org>
Subject: Re: [core] Core UDP vs TCP : Redux
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: Mon, 17 May 2010 22:58:52 -0000

-----Original Message-----
From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of
Carsten Bormann

> I personally think CoAP needs to work with DTLS; if the WG moves in
that direction there will be some minimum requirement for independence
from the underlying protocol.

We should look at this closely.  If you examine DTLS -- and I admit I am
NOT a TLS or DTLS expert -- it appears to simply be TLS over UDP.  If I
have read it correctly, it still creates and maintains a logical
session, even if there is no session provided by the transport layer.  I
think we need to examine this closely before we choose to adopt it as
our security mechanism.

Note:  I am not saying we should be incompatible with DTLS, I am simply
saying that DTLS may not be the best choice for a native security
mechanism for CoAP.

From hgs@cs.columbia.edu  Mon May 17 19:05:18 2010
Return-Path: <hgs@cs.columbia.edu>
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 30B6F3A688F for <core@core3.amsl.com>; Mon, 17 May 2010 19:05:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.999
X-Spam-Level: 
X-Spam-Status: No, score=-3.999 tagged_above=-999 required=5 tests=[BAYES_50=0.001, RCVD_IN_DNSWL_MED=-4]
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 qGQLA8wlQu+L for <core@core3.amsl.com>; Mon, 17 May 2010 19:05:17 -0700 (PDT)
Received: from brinza.cc.columbia.edu (brinza.cc.columbia.edu [128.59.29.8]) by core3.amsl.com (Postfix) with ESMTP id 68AC83A6853 for <core@ietf.org>; Mon, 17 May 2010 19:05:14 -0700 (PDT)
Received: from new-host-3.home (pool-173-54-225-147.nwrknj.fios.verizon.net [173.54.225.147]) (user=hgs10 mech=PLAIN bits=0) by brinza.cc.columbia.edu (8.14.3/8.14.3) with ESMTP id o4I255G9027264 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Mon, 17 May 2010 22:05:05 -0400 (EDT)
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: text/plain; charset=us-ascii
From: Henning Schulzrinne <hgs@cs.columbia.edu>
In-Reply-To: <4BF1C85E.8090309@ohio.edu>
Date: Mon, 17 May 2010 22:05:05 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <C3B3F64B-28C0-4B1A-8B5A-248CE7E2E9EB@cs.columbia.edu>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org>	<007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de>	<E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local> <3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org> <4BF1C85E.8090309@ohio.edu>
To: Gilbert Clark <gc355804@ohio.edu>
X-Mailer: Apple Mail (2.1078)
X-No-Spam-Score: Local
X-Scanned-By: MIMEDefang 2.68 on 128.59.29.8
Cc: core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux
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: Tue, 18 May 2010 02:05:18 -0000

DCCP provides congestion control, but no reliability, and is designed, =
as you quote below, for "streaming applications", such as audio and =
video. This seems like a poor match to the needs of this application =
domain.

Henning

On May 17, 2010, at 6:51 PM, Gilbert Clark wrote:

> On 5/17/2010 12:58 PM, Carsten Bormann wrote:
>> On May 17, 2010, at 17:47, Charles Palmer wrote:
>>=20
>>  =20
>>> How disruptive would it be to design CoRE without reference to =
TCP/UDP, and also design a "reliable UDP" and use this for CoRE?
>>>    =20
>> I personally think CoAP needs to work with DTLS; if the WG moves in =
that direction there will be some minimum requirement for independence =
from the underlying protocol.
>>=20
>>  =20
>=20
> Apologies in advance if I missed it, but has DCCP been considered?
>=20
> I know that it works with DTLS in theory (RFC 5238).  Further, from =
the DCCP RFC (4340):
>=20
> "One DCCP design goal was to give most streaming UDP applications =
little reason not to switch to DCCP, once it is deployed.  To facilitate =
this, DCCP was designed to have as little overhead as possible, both in =
terms of the packet header size and in terms of the state and CPU =
overhead required at end hosts."
>=20
> Also, assuming that TCP is not included in the final version(s) of the =
draft, would it be worthwhile to include a note in the RFC stating that =
running CoAP over TCP is not recommended?
>=20
> Best,
> Gilbert Clark
> Grad Student
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>=20


From gc355804@ohio.edu  Mon May 17 19:33:39 2010
Return-Path: <gc355804@ohio.edu>
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 791153A688F for <core@core3.amsl.com>; Mon, 17 May 2010 19:33:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.001
X-Spam-Level: 
X-Spam-Status: No, score=0.001 tagged_above=-999 required=5 tests=[BAYES_50=0.001]
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 ke+ruCYLh8sm for <core@core3.amsl.com>; Mon, 17 May 2010 19:33:38 -0700 (PDT)
Received: from mx2.oit.ohio.edu (mx2.oit.ohio.edu [132.235.51.19]) by core3.amsl.com (Postfix) with ESMTP id 3C84228C1AD for <core@ietf.org>; Mon, 17 May 2010 19:28:13 -0700 (PDT)
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: ApsEAEqY8UuE6wiX/2dsb2JhbACea7JRiF6FEASPPA
X-IronPort-AV: E=Sophos;i="4.53,251,1272859200"; d="scan'208";a="42361678"
Received: from oak3a.cats.ohiou.edu (HELO oak.cats.ohiou.edu) ([132.235.8.151]) by smtpout2.oit.ohio.edu with ESMTP; 17 May 2010 22:28:05 -0400
Received: from [10.1.42.116] (cpe-184-57-77-118.columbus.res.rr.com [184.57.77.118]) (authenticated bits=0) by oak.cats.ohiou.edu (8.13.1/8.13.1) with ESMTP id o4I2RNRm1785299 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 17 May 2010 22:27:39 -0400 (EDT)
Message-ID: <4BF1FB04.2040403@ohio.edu>
Date: Mon, 17 May 2010 22:27:16 -0400
From: Gilbert Clark <gc355804@ohio.edu>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4
MIME-Version: 1.0
To: Henning Schulzrinne <hgs@cs.columbia.edu>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org>	<007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de>	<E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local> <3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org> <4BF1C85E.8090309@ohio.edu> <C3B3F64B-28C0-4B1A-8B5A-248CE7E2E9EB@cs.columbia.edu>
In-Reply-To: <C3B3F64B-28C0-4B1A-8B5A-248CE7E2E9EB@cs.columbia.edu>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Cc: core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux
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: Tue, 18 May 2010 02:33:39 -0000

Point; only connection setup / teardown is reliable, so that doesn't 
really help.  That was probably not the best suggestion :)

--Gilbert

On 5/17/2010 10:05 PM, Henning Schulzrinne wrote:
> DCCP provides congestion control, but no reliability, and is designed, as you quote below, for "streaming applications", such as audio and video. This seems like a poor match to the needs of this application domain.
>
> Henning
>
> On May 17, 2010, at 6:51 PM, Gilbert Clark wrote:
>
>    
>> On 5/17/2010 12:58 PM, Carsten Bormann wrote:
>>      
>>> On May 17, 2010, at 17:47, Charles Palmer wrote:
>>>
>>>
>>>        
>>>> How disruptive would it be to design CoRE without reference to TCP/UDP, and also design a "reliable UDP" and use this for CoRE?
>>>>
>>>>          
>>> I personally think CoAP needs to work with DTLS; if the WG moves in that direction there will be some minimum requirement for independence from the underlying protocol.
>>>
>>>
>>>        
>> Apologies in advance if I missed it, but has DCCP been considered?
>>
>> I know that it works with DTLS in theory (RFC 5238).  Further, from the DCCP RFC (4340):
>>
>> "One DCCP design goal was to give most streaming UDP applications little reason not to switch to DCCP, once it is deployed.  To facilitate this, DCCP was designed to have as little overhead as possible, both in terms of the packet header size and in terms of the state and CPU overhead required at end hosts."
>>
>> Also, assuming that TCP is not included in the final version(s) of the draft, would it be worthwhile to include a note in the RFC stating that running CoAP over TCP is not recommended?
>>
>> Best,
>> Gilbert Clark
>> Grad Student
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>>      
>    


From L.Wood@surrey.ac.uk  Mon May 17 21:40:08 2010
Return-Path: <L.Wood@surrey.ac.uk>
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 7ED873A672E for <core@core3.amsl.com>; Mon, 17 May 2010 21:40:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.669
X-Spam-Level: 
X-Spam-Status: No, score=-4.669 tagged_above=-999 required=5 tests=[AWL=-0.670, BAYES_50=0.001, RCVD_IN_DNSWL_MED=-4]
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 FDMqQQVUI47E for <core@core3.amsl.com>; Mon, 17 May 2010 21:40:06 -0700 (PDT)
Received: from mail82.messagelabs.com (mail82.messagelabs.com [195.245.231.67]) by core3.amsl.com (Postfix) with ESMTP id 080493A6BE7 for <core@ietf.org>; Mon, 17 May 2010 21:40:01 -0700 (PDT)
X-VirusChecked: Checked
X-Env-Sender: L.Wood@surrey.ac.uk
X-Msg-Ref: server-15.tower-82.messagelabs.com!1274157592!6520235!1
X-StarScan-Version: 6.2.4; banners=-,-,-
X-Originating-IP: [131.227.200.31]
Received: (qmail 1519 invoked from network); 18 May 2010 04:39:52 -0000
Received: from unknown (HELO EXHT011P.surrey.ac.uk) (131.227.200.31) by server-15.tower-82.messagelabs.com with AES128-SHA encrypted SMTP; 18 May 2010 04:39:52 -0000
Received: from EXMB01CMS.surrey.ac.uk ([169.254.1.69]) by EXHT011P.surrey.ac.uk ([131.227.200.31]) with mapi; Tue, 18 May 2010 05:39:52 +0100
From: <L.Wood@surrey.ac.uk>
To: <gc355804@ohio.edu>, <core@ietf.org>
Date: Tue, 18 May 2010 05:39:51 +0100
Thread-Topic: [core] Core UDP vs TCP : Redux
Thread-Index: Acr2E7hILkvhUx9FQXysZ8UHcrqMhAAL+ERg
Message-ID: <FD7B10366AE3794AB1EC5DE97A93A37305A2FBAE26@EXMB01CMS.surrey.ac.uk>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com> <17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org> <007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de> <E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local> <3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org> <4BF1C85E.8090309@ohio.edu>
In-Reply-To: <4BF1C85E.8090309@ohio.edu>
Accept-Language: en-US, en-GB
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
acceptlanguage: en-US, en-GB
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: Re: [core] Core UDP vs TCP : Redux
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: Tue, 18 May 2010 04:40:08 -0000

That quote from RFC4340 is optimistic. DCCP has not been deployed in any si=
gnificant amount.

The remaining outstanding action in the DCCP WG, being debated, is to imple=
ment an efficient DCCP-over-UDP tunnel to get through NAT and firewalls and=
 encourage DCCP adoption. Not being UDP is sufficient reason not to switch.=
..

-----Original Message-----
From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of Gil=
bert Clark
Sent: 17 May 2010 23:51
To: core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux

On 5/17/2010 12:58 PM, Carsten Bormann wrote:
> On May 17, 2010, at 17:47, Charles Palmer wrote:
>
>   =20
>> How disruptive would it be to design CoRE without reference to TCP/UDP, =
and also design a "reliable UDP" and use this for CoRE?
>>     =20
> I personally think CoAP needs to work with DTLS; if the WG moves in that =
direction there will be some minimum requirement for independence from the =
underlying protocol.
>
>   =20

Apologies in advance if I missed it, but has DCCP been considered?

I know that it works with DTLS in theory (RFC 5238).  Further, from the DCC=
P RFC (4340):

"One DCCP design goal was to give most streaming UDP applications little re=
ason not to switch to DCCP, once it is deployed.  To facilitate this, DCCP =
was designed to have as little overhead as possible, both in terms of the p=
acket header size and in terms of the state and CPU overhead required at en=
d hosts."

Also, assuming that TCP is not included in the final version(s) of the draf=
t, would it be worthwhile to include a note in the RFC stating that running=
 CoAP over TCP is not recommended?

Best,
Gilbert Clark
Grad Student

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

From robert.cragie@gridmerge.com  Mon May 17 22:42:45 2010
Return-Path: <robert.cragie@gridmerge.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 5E7B43A67EC for <core@core3.amsl.com>; Mon, 17 May 2010 22:42:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.998
X-Spam-Level: 
X-Spam-Status: No, score=-0.998 tagged_above=-999 required=5 tests=[BAYES_50=0.001, HTML_MESSAGE=0.001, 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 QwlJmiJQg3k4 for <core@core3.amsl.com>; Mon, 17 May 2010 22:42:43 -0700 (PDT)
Received: from mail78.extendcp.co.uk (mail78.extendcp.co.uk [79.170.40.78]) by core3.amsl.com (Postfix) with ESMTP id 002A53A6BDD for <core@ietf.org>; Mon, 17 May 2010 22:42:41 -0700 (PDT)
Received: from 216-75-227-18.static.wiline.com ([216.75.227.18] helo=[192.168.5.111]) by mail78.extendcp.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.71) id 1OEFZK-0002Rf-Mm; Tue, 18 May 2010 06:42:19 +0100
Message-ID: <4BF228B7.8050000@gridmerge.com>
Date: Tue, 18 May 2010 06:42:15 +0100
From: Robert Cragie <robert.cragie@gridmerge.com>
Organization: Gridmerge Ltd.
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.9) Gecko/20100317 Lightning/1.0b1 Thunderbird/3.0.4
MIME-Version: 1.0
To: "Stuber, Michael" <Michael.Stuber@itron.com>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org><007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de><E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local>	<3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org> <05C6A38D732F1144A8C4016BA4416BFE02D5A531@SPO-EXVS-02.itron.com>
In-Reply-To: <05C6A38D732F1144A8C4016BA4416BFE02D5A531@SPO-EXVS-02.itron.com>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="------------ms040702060105030202050204"
Cc: core <core@ietf.org>
Subject: Re: [core] Core UDP vs TCP : Redux
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: robert.cragie@gridmerge.com
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: Tue, 18 May 2010 05:42:45 -0000

This is a cryptographically signed message in MIME format.

--------------ms040702060105030202050204
Content-Type: multipart/alternative;
 boundary="------------020500030208080801080804"

This is a multi-part message in MIME format.
--------------020500030208080801080804
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable

Hi Michael,

I think you have to have some notion of session between a pairwise=20
secure association even if it's as basic as maintaining a nonce=20
associated with a shared key to ensure non-repeatability for stream ciphe=
rs.

Robert

Robert Cragie (Pacific Gas & Electric)

Gridmerge Ltd.
89 Greenfield Crescent,
Wakefield, WF4 4WA, UK
+44 1924 910888
+1 415 513 0064
http://www.gridmerge.com <http://www.gridmerge.com/>


On 17/05/2010 11:58 PM, Stuber, Michael wrote:
> -----Original Message-----
> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of=

> Carsten Bormann
>
>   =20
>> I personally think CoAP needs to work with DTLS; if the WG moves in
>>     =20
> that direction there will be some minimum requirement for independence
> from the underlying protocol.
>
> We should look at this closely.  If you examine DTLS -- and I admit I a=
m
> NOT a TLS or DTLS expert -- it appears to simply be TLS over UDP.  If I=

> have read it correctly, it still creates and maintains a logical
> session, even if there is no session provided by the transport layer.  =
I
> think we need to examine this closely before we choose to adopt it as
> our security mechanism.
>
> Note:  I am not saying we should be incompatible with DTLS, I am simply=

> saying that DTLS may not be the best choice for a native security
> mechanism for CoAP.
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>
>   =20

--------------020500030208080801080804
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content=3D"text/html; charset=3DISO-8859-1"
 http-equiv=3D"Content-Type">
</head>
<body bgcolor=3D"#ffffff" text=3D"#000000">
Hi Michael,<br>
<br>
I think you have to have some notion of session between a pairwise
secure association even if it's as basic as maintaining a nonce
associated with a shared key to ensure non-repeatability for stream
ciphers.<br>
<br>
Robert<br>
<div class=3D"moz-signature">
<style type=3D"text/css">
p
{
font-family:Verdana,Arial,sans-serif;
font-size:8pt;
}
=2Ename
{
font-size:12pt;
}
</style>
<p class=3D"name">Robert Cragie (Pacific Gas &amp; Electric)</p>
<p>Gridmerge Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 1924 910888<br>
+1 415 513 0064<br>
<a href=3D"http://www.gridmerge.com/">http://www.gridmerge.com</a></p>
</div>
<br>
On 17/05/2010 11:58 PM, Stuber, Michael wrote:
<blockquote
 cite=3D"mid:05C6A38D732F1144A8C4016BA4416BFE02D5A531@SPO-EXVS-02.itron.c=
om"
 type=3D"cite">
  <pre wrap=3D"">-----Original Message-----
From: <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core-bounces@i=
etf.org">core-bounces@ietf.org</a> [<a class=3D"moz-txt-link-freetext" hr=
ef=3D"mailto:core-bounces@ietf.org">mailto:core-bounces@ietf.org</a>] On =
Behalf Of
Carsten Bormann

  </pre>
  <blockquote type=3D"cite">
    <pre wrap=3D"">I personally think CoAP needs to work with DTLS; if th=
e WG moves in
    </pre>
  </blockquote>
  <pre wrap=3D"">that direction there will be some minimum requirement fo=
r independence
from the underlying protocol.

We should look at this closely.  If you examine DTLS -- and I admit I am
NOT a TLS or DTLS expert -- it appears to simply be TLS over UDP.  If I
have read it correctly, it still creates and maintains a logical
session, even if there is no session provided by the transport layer.  I
think we need to examine this closely before we choose to adopt it as
our security mechanism.

Note:  I am not saying we should be incompatible with DTLS, I am simply
saying that DTLS may not be the best choice for a native security
mechanism for CoAP.
_______________________________________________
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext" href=3D"https://www.ietf.org/mailman/l=
istinfo/core">https://www.ietf.org/mailman/listinfo/core</a>

  </pre>
</blockquote>
</body>
</html>

--------------020500030208080801080804--

--------------ms040702060105030202050204
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIJKzCC
AvAwggJZoAMCAQICEHQVhhxGmCATv+IPne+OkB8wDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UE
BhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMT
I1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA5MDgyOTE2NTcwM1oX
DTEwMDgyOTE2NTcwM1owTTEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEqMCgG
CSqGSIb3DQEJARYbcm9iZXJ0LmNyYWdpZUBncmlkbWVyZ2UuY29tMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAtuQTYz8HUA37wa1PMyVnREeRwT3jtzGO6epyiCCaVeJkP76G
KdnNapg0jyuzDfRqSMW0n570toMF9FTpD34hDvtHcnMDboU7MSKFV2VyOOlTB3eHJfRn2Jtl
o9mSeW1qIIOwRReV6v50OxmijmeGFAn82Y1QrtyKDQxhl0HhEmY4jonziMyQ5gKlO5TM+CxY
hV0zXCLHfp9QjLG7bwZx6F0ChSHvRaf5ZlLKQSI2BGAx/GtP5l4ME7+kq4icmbV0g6m1AH9Y
LYYKV9rOx9SilPpTJdwn7GY/Qop4VSmdsaDBlXieBbjKqPN/CEqFmlxjjPFihorkeyC1T2R5
CqB41QIDAQABozgwNjAmBgNVHREEHzAdgRtyb2JlcnQuY3JhZ2llQGdyaWRtZXJnZS5jb20w
DAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQUFAAOBgQCTQ5bjbW8th9Yy/xbAgmc070Y/DLPR
RwOu51zamGFNffSpiPDJsLg4Bu9QZqhDylPm3AriHGp9MVL8Ei4h5krygmgHLE0mNYFsJt35
90wdK7z3dXtV/nOD0+rFR6Y9oUGf916rO0madex0KbosqrUuZ1NGVh/Q5/7H0mAEg+1EWzCC
AvAwggJZoAMCAQICEHQVhhxGmCATv+IPne+OkB8wDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UE
BhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMT
I1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA5MDgyOTE2NTcwM1oX
DTEwMDgyOTE2NTcwM1owTTEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEqMCgG
CSqGSIb3DQEJARYbcm9iZXJ0LmNyYWdpZUBncmlkbWVyZ2UuY29tMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAtuQTYz8HUA37wa1PMyVnREeRwT3jtzGO6epyiCCaVeJkP76G
KdnNapg0jyuzDfRqSMW0n570toMF9FTpD34hDvtHcnMDboU7MSKFV2VyOOlTB3eHJfRn2Jtl
o9mSeW1qIIOwRReV6v50OxmijmeGFAn82Y1QrtyKDQxhl0HhEmY4jonziMyQ5gKlO5TM+CxY
hV0zXCLHfp9QjLG7bwZx6F0ChSHvRaf5ZlLKQSI2BGAx/GtP5l4ME7+kq4icmbV0g6m1AH9Y
LYYKV9rOx9SilPpTJdwn7GY/Qop4VSmdsaDBlXieBbjKqPN/CEqFmlxjjPFihorkeyC1T2R5
CqB41QIDAQABozgwNjAmBgNVHREEHzAdgRtyb2JlcnQuY3JhZ2llQGdyaWRtZXJnZS5jb20w
DAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQUFAAOBgQCTQ5bjbW8th9Yy/xbAgmc070Y/DLPR
RwOu51zamGFNffSpiPDJsLg4Bu9QZqhDylPm3AriHGp9MVL8Ei4h5krygmgHLE0mNYFsJt35
90wdK7z3dXtV/nOD0+rFR6Y9oUGf916rO0madex0KbosqrUuZ1NGVh/Q5/7H0mAEg+1EWzCC
Az8wggKooAMCAQICAQ0wDQYJKoZIhvcNAQEFBQAwgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQI
EwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENv
bnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xJDAi
BgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVy
c29uYWwtZnJlZW1haWxAdGhhd3RlLmNvbTAeFw0wMzA3MTcwMDAwMDBaFw0xMzA3MTYyMzU5
NTlaMGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBM
dGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQTCBnzAN
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxKY8VXNV+065yplaHmjAdQRwnd/p/6Me7L3N9Vvy
Gna9fww6YfK/Uc4B1OVQCjDXAmNaLIkVcI7dyfArhVqqP3FWy688Cwfn8R+RNiQqE88r1fOC
dz0Dviv+uxg+B79AgAJk16emu59l0cUqVIUPSAR/p7bRPGEEQB5kGXJgt/sCAwEAAaOBlDCB
kTASBgNVHRMBAf8ECDAGAQH/AgEAMEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwudGhh
d3RlLmNvbS9UaGF3dGVQZXJzb25hbEZyZWVtYWlsQ0EuY3JsMAsGA1UdDwQEAwIBBjApBgNV
HREEIjAgpB4wHDEaMBgGA1UEAxMRUHJpdmF0ZUxhYmVsMi0xMzgwDQYJKoZIhvcNAQEFBQAD
gYEASIzRUIPqCy7MDaNmrGcPf6+svsIXoUOWlJ1/TCG4+DYfqi2fNi/A9BxQIJNwPP2t4WFi
w9k6GX6EsZkbAMUaC4J0niVQlGLH2ydxVyWN3amcOY6MIE9lX5Xa9/eH1sYITq726jTlEBpb
NU1341YheILcIRk13iSx0x1G/11fZU8xggNxMIIDbQIBATB2MGIxCzAJBgNVBAYTAlpBMSUw
IwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUg
UGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQQIQdBWGHEaYIBO/4g+d746QHzAJBgUrDgMC
GgUAoIIB0DAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xMDA1
MTgwNTQyMTVaMCMGCSqGSIb3DQEJBDEWBBS8hERJGdGBr9lEqtDgLDQaIs1CpjBfBgkqhkiG
9w0BCQ8xUjBQMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAOBggqhkiG9w0DAgICAIAwDQYI
KoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgwgYUGCSsGAQQBgjcQBDF4MHYw
YjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4x
LDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBAhB0FYYcRpgg
E7/iD53vjpAfMIGHBgsqhkiG9w0BCRACCzF4oHYwYjELMAkGA1UEBhMCWkExJTAjBgNVBAoT
HFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25h
bCBGcmVlbWFpbCBJc3N1aW5nIENBAhB0FYYcRpggE7/iD53vjpAfMA0GCSqGSIb3DQEBAQUA
BIIBAC1IeDs2y/ySx2VxrIb08ctK0+1d+2NEJECNeS6+Tj9MG+oFnOvlrSXVEcCqBlCxrp+C
TNH2rpYRwF76EmeBHG/ldOteOcDbTVoMl/kU1dJBF2T+wgDzJRnr3mGFWObcIMawbl34y/fL
lyRjnLW1sWF2zWsv2MAFQlGUBx4ZCg0U2qOif9wfAqcPnUWbgtfuGjsLdqq/EkTKnS33diq5
p8Pu/8F21rWD5jD0UBBiOv7Sw46pHybhoGk7EaQpcJjSYRqxOzQm4bY6glGMS8zHarnEPrZg
BiDKnCcPuhNc6qWDRu6iqS82OcVZ9PrlHG1yvEJrMCn72HruCqV8VbflWGcAAAAAAAA=
--------------ms040702060105030202050204--

From robert.cragie@gridmerge.com  Mon May 17 22:49:53 2010
Return-Path: <robert.cragie@gridmerge.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 67B673A6BD8 for <core@core3.amsl.com>; Mon, 17 May 2010 22:49:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level: 
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[AWL=1.000,  BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_33=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 9AixrmNrUZgp for <core@core3.amsl.com>; Mon, 17 May 2010 22:49:50 -0700 (PDT)
Received: from mail78.extendcp.co.uk (mail78.extendcp.co.uk [79.170.40.78]) by core3.amsl.com (Postfix) with ESMTP id 09EA83A6882 for <core@ietf.org>; Mon, 17 May 2010 22:49:50 -0700 (PDT)
Received: from 216-75-227-18.static.wiline.com ([216.75.227.18] helo=[192.168.5.111]) by mail78.extendcp.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.71) id 1OEFgS-0005ua-UE for core@ietf.org; Tue, 18 May 2010 06:49:41 +0100
Message-ID: <4BF22A72.9050803@gridmerge.com>
Date: Tue, 18 May 2010 06:49:38 +0100
From: Robert Cragie <robert.cragie@gridmerge.com>
Organization: Gridmerge Ltd.
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.9) Gecko/20100317 Lightning/1.0b1 Thunderbird/3.0.4
MIME-Version: 1.0
To: core@ietf.org
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de>	<2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry> <006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de>
In-Reply-To: <006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="------------ms040605050308050405030702"
Subject: Re: [core] Core UDP vs TCP : Redux
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: robert.cragie@gridmerge.com
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: Tue, 18 May 2010 05:49:53 -0000

This is a cryptographically signed message in MIME format.

--------------ms040605050308050405030702
Content-Type: multipart/alternative;
 boundary="------------080202040101040103090303"

This is a multi-part message in MIME format.
--------------080202040101040103090303
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable

Of course SOAP can be bound to almost anything as it basically uses=20
whatever it is bound to as a simple transport mechanism, e.g. let's just =

use HTTP POST for everything. But that's not the point of using a=20
RESTful architecture. What's more important to consider is the=20
transactional model. HTTP generally has some restrictions as a=20
synchronous request/response protocol and the web model has unwittingly=20
made further restrictions on the client/server and threading models.=20
Whatever CoAP ends up being should be less restrictive on its=20
transactional model so it can potentially map to any underlying protocol.=


Robert

Robert Cragie (Pacific Gas & Electric)

Gridmerge Ltd.
89 Greenfield Crescent,
Wakefield, WF4 4WA, UK
+44 1924 910888
+1 415 513 0064
http://www.gridmerge.com <http://www.gridmerge.com/>


On 17/05/2010 2:58 PM, Guido Moritz wrote:
> Don
>
> REST (apples) is an architectural style, SOAP (oranges) is a protocol, =
hard
> to compare apples and oranges. BTW, it is possible to use SOAP for a RE=
STful
> design also. See WS-RA for example:
> http://www.w3.org/2008/08/ws/charter.html
>
> But I didn't want to go to deep into this discussion. I just wanted to =
ask
> if it is reasonable to bind the CORE protocol to UDP,TCP or whatever or=
 if
> it is possible to leave this open and design CORE extensible and flexib=
le
> enough. This is anyway not related to REST, SOA or any other architectu=
re,
> just a question of protocol design.
>
> Guido
>
>   =20
>> -----Urspr=FCngliche Nachricht-----
>> Von:d.sturek@att.net  [mailto:d.sturek@att.net]
>> Gesendet: Montag, 17. Mai 2010 14:41
>> An: Guido Moritz;core-bounces@ietf.org;core@ietf.org
>> Betreff: Re: [core] Core UDP vs TCP : Redux
>>
>> Hi guido,
>>
>> I think the thing is this is not soap but rest.  It is fine to create
>>     =20
> mappings
>   =20
>> but not to change the design goal of using rest.
>>
>> Don
>> Sent via BlackBerry from T-Mobile
>>
>> -----Original Message-----
>> From: Guido Moritz<guido.moritz@uni-rostock.de>
>> Date: Mon, 17 May 2010 08:53:21
>> To:<core@ietf.org>
>> Subject: Re: [core] Core UDP vs TCP : Redux
>>
>> For example there is a SOAP-over-UDP binding defined at OASIS
>> http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=3Dws-dd
>> The intention is to carry UDP multicast and unicast discovery messages=
=2E
>>
>> See also SOAP over SMTPhttp://www.pocketsoap.com/specs/smtpbinding/
>>
>> However, what is interesting to be agnostic of the transport protocol =
and
>> define dependencies in such bindings and not in the protocol itself.
>>
>> Guido
>>
>>
>>     =20
>>> -----Urspr=FCngliche Nachricht-----
>>> Von:L.Wood@surrey.ac.uk  [mailto:L.Wood@surrey.ac.uk]
>>> Gesendet: Mittwoch, 12. Mai 2010 16:28
>>> An: Guido Moritz;core@ietf.org
>>> Betreff: RE: [core] Core UDP vs TCP : Redux
>>>
>>> HTTP doesn't_have_ to run over TCP:
>>> http://tools.ietf.org/html/draft-wood-dtnrg-http-dtn-delivery-05
>>> and decoupling HTTP from TCP would be a very good idea, as
>>>       =20
> implementation
>   =20
>> work
>>     =20
>>> to do so (e.g. HTTP over SCTP) is ongoing:
>>>
>>>       =20
>>     =20
> http://personal.ee.surrey.ac.uk/Personal/L.Wood/publications/talks.html=
#http
>   =20
>> -
>>     =20
>>> standalone
>>>
>>> The only SOAP binding I can find is that to HTTP:
>>> http://www.w3.org/TR/soap12-part2/#soapinhttp
>>> http://www.w3.org/TR/2007/REC-soap12-part1-20070427/#transpbindframew=

>>>
>>> which does place SOAP binding firmly at 'concept' stage - one example=
 to
>>>       =20
>> claim
>>     =20
>>> that an entire range of possibilities exist and are implementable.
>>>
>>> Another example of this 'concept' is BEEP's transport profiles, for
>>>       =20
> which
>   =20
>> only
>>     =20
>>> a mapping to TCP is actually defined. Because nobody uses BEEP.
>>>
>>> L.
>>>
>>> -----Original Message-----
>>> From:core-bounces@ietf.org  [mailto:core-bounces@ietf.org] On Behalf =
Of
>>>       =20
>> Guido
>>     =20
>>> Moritz
>>> Sent: 12 May 2010 14:54
>>> To:core@ietf.org

>>> Subject: Re: [core] Core UDP vs TCP : Redux
>>>
>>> Sorry, but I would not agree to say 'when you are able to use TCP, yo=
u
>>>       =20
> are
>   =20
>>> also able to use HTTP'. We made several measurements with UDP vs. TCP=

>>>       =20
> and
>   =20
>> of
>>     =20
>>> course, connection setup takes longer for TCP. But a typical HTTP hea=
der
>>>       =20
>> has a
>>     =20
>>> size>100 Byte (without any payload). Thus the connection setup overhe=
ad
>>>       =20
>> is
>>     =20
>>> compensated due to large payload/headers itself. There might be
>>>       =20
>> application
>>     =20
>>> scenarios where the designer wants to have reliable communication, bu=
t
>>>       =20
>> still
>>     =20
>>> have small payload.
>>>
>>> I did not have read through the current core I-D extensively, but is =
it
>>> necessary to go so much into detail why to use UDP or TCP and how it
>>>       =20
>> should be
>>     =20
>>> used? It might be reasonable to define a reliability (and maybe also
>>> fragmentation) extension to UDP and define UDP as the defualt, but wh=
y
>>>       =20
>> should
>>     =20
>>> TCP be forbidden at all?
>>>
>>> One may argue about SOAP Web services in several points, but their
>>>       =20
> binding
>   =20
>>> concept is quite nice. SOAP can be bound to which transport mechanism=

>>>       =20
>> ever.
>>     =20
>>> This makes it applicable it different scenarios and the transport
>>> mechanisms/protocol can be changed without an effect on application
>>>       =20
>> itself.
>>     =20
>>> Just my two cents,
>>> Guido
>>>
>>>       =20
>>>> -----Urspr=FCngliche Nachricht-----
>>>> Von:core-bounces@ietf.org  [mailto:core-bounces@ietf.org] Im Auftrag=

>>>> von
>>>>         =20
>>> Zach
>>>       =20
>>>> Shelby
>>>> Gesendet: Dienstag, 11. Mai 2010 23:07
>>>> An: Thomas Herbst
>>>> Cc:core@ietf.org
>>>> Betreff: Re: [core] Core UDP vs TCP : Redux
>>>>
>>>> +1
>>>>
>>>> Through writing a few revisions of these specs, I have also already
>>>> found
>>>>         =20
>>> TCP
>>>       =20
>>>> to be really awkward. And the TCP negotiation discussions at the mik=
e
>>>> in Anaheim made me even more skeptical. Tom is right, if you need TC=
P
>>>> then
>>>>         =20
>>> just
>>>       =20
>>>> use HTTP ;-)
>>>>
>>>> Zach
>>>>
>>>> On May 11, 2010, at 18:49 , Thomas Herbst wrote:
>>>>
>>>>         =20
>>>>> After the discussion in Anaheim, I'm surprised that we need yet
>>>>> another
>>>>>           =20
>>>> revisit to UDP and TCP for CORE.
>>>>         =20
>>>>> The Right Solution(tm) might well be to fix TCP such that it doesn'=
t
>>>>>           =20
>>> lose
>>>       =20
>>>> its brains every time you drop a packet, and we could end up with an=

>>>>         =20
>>> end-to-
>>>       =20
>>>> end system where constrained devices might reasonably provide servic=
es
>>>> to normal hosts in the regular Internet,  However, transport work is=

>>>> out of
>>>>         =20
>>> scope
>>>       =20
>>>> for this WG.
>>>>         =20
>>>>> The second most right solution would be to implement CORE with a
>>>>>           =20
>>> reliable
>>>       =20
>>>> UDP protocol, as is done in much of the draft.  The "optional" TCP
>>>>         =20
>>> portions of
>>>       =20
>>>> the draft are mostly increased complexity for no added benefit. If a=

>>>>         =20
>>> device is
>>>       =20
>>>> capable of running TCP and the network it works on is capable of
>>>>         =20
>>> supporting
>>>       =20
>>>> TCP, you should just open a connection to Port 80 and use HTTP (or t=
he
>>>> TCP port/protocol of your choice).  There are many protocols a host
>>>> MAY
>>>>         =20
>>> implement
>>>       =20
>>>> and it is not appropriate for the draft to enumerate them.
>>>>         =20
>>>>> Let's remove all of the sections related to TCP in the draft.
>>>>>
>>>>> tom
>>>>>
>>>>>           =20
>>>> --
>>>> Zach Shelby, Head of Research, Sensinode Ltd.
>>>> http://zachshelby.org   - My blog "On the Internet of Things"
>>>> http://6lowpan.net - My book "6LoWPAN: The Wireless Embedded Interne=
t"
>>>> Mobile: +358 40 7796297
>>>>         =20
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>     =20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>
>   =20

--------------080202040101040103090303
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content=3D"text/html; charset=3DISO-8859-1"
 http-equiv=3D"Content-Type">
  <title></title>
</head>
<body bgcolor=3D"#ffffff" text=3D"#000000">
Of course SOAP can be bound to almost anything as it basically uses
whatever it is bound to as a simple transport mechanism, e.g. let's
just use HTTP POST for everything. But that's not the point of using a
RESTful architecture. What's more important to consider is the
transactional model. HTTP generally has some restrictions as a
synchronous request/response protocol and the web model has unwittingly
made further restrictions on the client/server and threading models.
Whatever
CoAP ends up being should be less restrictive on its transactional
model so it can potentially map to any underlying protocol.<br>
<br>
Robert<br>
<div class=3D"moz-signature">
<style type=3D"text/css">
p
{
font-family:Verdana,Arial,sans-serif;
font-size:8pt;
}
=2Ename
{
font-size:12pt;
}
</style>
<p class=3D"name">Robert Cragie (Pacific Gas &amp; Electric)</p>
<p>Gridmerge Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 1924 910888<br>
+1 415 513 0064<br>
<a href=3D"http://www.gridmerge.com/">http://www.gridmerge.com</a></p>
</div>
<br>
On 17/05/2010 2:58 PM, Guido Moritz wrote:
<blockquote
 cite=3D"mid:006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de"
 type=3D"cite">
  <pre wrap=3D"">Don

REST (apples) is an architectural style, SOAP (oranges) is a protocol, ha=
rd
to compare apples and oranges. BTW, it is possible to use SOAP for a REST=
ful
design also. See WS-RA for example:
<a class=3D"moz-txt-link-freetext"
 href=3D"http://www.w3.org/2008/08/ws/charter.html">http://www.w3.org/200=
8/08/ws/charter.html</a>=20

But I didn't want to go to deep into this discussion. I just wanted to as=
k
if it is reasonable to bind the CORE protocol to UDP,TCP or whatever or i=
f
it is possible to leave this open and design CORE extensible and flexible=

enough. This is anyway not related to REST, SOA or any other architecture=
,
just a question of protocol design.

Guido

  </pre>
  <blockquote type=3D"cite">
    <pre wrap=3D"">-----Urspr&uuml;ngliche Nachricht-----
Von: <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:d.sturek@att.ne=
t">d.sturek@att.net</a> [<a
 class=3D"moz-txt-link-freetext" href=3D"mailto:d.sturek@att.net">mailto:=
d.sturek@att.net</a>]
Gesendet: Montag, 17. Mai 2010 14:41
An: Guido Moritz; <a class=3D"moz-txt-link-abbreviated"
 href=3D"mailto:core-bounces@ietf.org">core-bounces@ietf.org</a>; <a
 class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@ie=
tf.org</a>
Betreff: Re: [core] Core UDP vs TCP : Redux

Hi guido,

I think the thing is this is not soap but rest.  It is fine to create
    </pre>
  </blockquote>
  <pre wrap=3D"">mappings
  </pre>
  <blockquote type=3D"cite">
    <pre wrap=3D"">but not to change the design goal of using rest.

Don
Sent via BlackBerry from T-Mobile

-----Original Message-----
From: Guido Moritz <a class=3D"moz-txt-link-rfc2396E"
 href=3D"mailto:guido.moritz@uni-rostock.de">&lt;guido.moritz@uni-rostock=
=2Ede&gt;</a>
Date: Mon, 17 May 2010 08:53:21
To: <a class=3D"moz-txt-link-rfc2396E" href=3D"mailto:core@ietf.org">&lt;=
core@ietf.org&gt;</a>
Subject: Re: [core] Core UDP vs TCP : Redux

For example there is a SOAP-over-UDP binding defined at OASIS
<a class=3D"moz-txt-link-freetext"
 href=3D"http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=3Dws-=
dd">http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=3Dws-dd</a=
>
The intention is to carry UDP multicast and unicast discovery messages.

See also SOAP over SMTP <a class=3D"moz-txt-link-freetext"
 href=3D"http://www.pocketsoap.com/specs/smtpbinding/">http://www.pockets=
oap.com/specs/smtpbinding/</a>

However, what is interesting to be agnostic of the transport protocol and=

define dependencies in such bindings and not in the protocol itself.

Guido


    </pre>
    <blockquote type=3D"cite">
      <pre wrap=3D"">-----Urspr&uuml;ngliche Nachricht-----
Von: <a class=3D"moz-txt-link-abbreviated"
 href=3D"mailto:L.Wood@surrey.ac.uk">L.Wood@surrey.ac.uk</a> [<a
 class=3D"moz-txt-link-freetext" href=3D"mailto:L.Wood@surrey.ac.uk">mail=
to:L.Wood@surrey.ac.uk</a>]
Gesendet: Mittwoch, 12. Mai 2010 16:28
An: Guido Moritz; <a class=3D"moz-txt-link-abbreviated"
 href=3D"mailto:core@ietf.org">core@ietf.org</a>
Betreff: RE: [core] Core UDP vs TCP : Redux

HTTP doesn't_have_ to run over TCP:
<a class=3D"moz-txt-link-freetext"
 href=3D"http://tools.ietf.org/html/draft-wood-dtnrg-http-dtn-delivery-05=
">http://tools.ietf.org/html/draft-wood-dtnrg-http-dtn-delivery-05</a>
and decoupling HTTP from TCP would be a very good idea, as
      </pre>
    </blockquote>
  </blockquote>
  <pre wrap=3D"">implementation
  </pre>
  <blockquote type=3D"cite">
    <pre wrap=3D"">work
    </pre>
    <blockquote type=3D"cite">
      <pre wrap=3D"">to do so (e.g. HTTP over SCTP) is ongoing:

      </pre>
    </blockquote>
    <pre wrap=3D"">    </pre>
  </blockquote>
  <pre wrap=3D""><a class=3D"moz-txt-link-freetext"
 href=3D"http://personal.ee.surrey.ac.uk/Personal/L.Wood/publications/tal=
ks.html#http">http://personal.ee.surrey.ac.uk/Personal/L.Wood/publication=
s/talks.html#http</a>
  </pre>
  <blockquote type=3D"cite">
    <pre wrap=3D"">-
    </pre>
    <blockquote type=3D"cite">
      <pre wrap=3D"">standalone

The only SOAP binding I can find is that to HTTP:
<a class=3D"moz-txt-link-freetext"
 href=3D"http://www.w3.org/TR/soap12-part2/#soapinhttp">http://www.w3.org=
/TR/soap12-part2/#soapinhttp</a>
<a class=3D"moz-txt-link-freetext"
 href=3D"http://www.w3.org/TR/2007/REC-soap12-part1-20070427/#transpbindf=
ramew">http://www.w3.org/TR/2007/REC-soap12-part1-20070427/#transpbindfra=
mew</a>

which does place SOAP binding firmly at 'concept' stage - one example to
      </pre>
    </blockquote>
    <pre wrap=3D"">claim
    </pre>
    <blockquote type=3D"cite">
      <pre wrap=3D"">that an entire range of possibilities exist and are =
implementable.

Another example of this 'concept' is BEEP's transport profiles, for
      </pre>
    </blockquote>
  </blockquote>
  <pre wrap=3D"">which
  </pre>
  <blockquote type=3D"cite">
    <pre wrap=3D"">only
    </pre>
    <blockquote type=3D"cite">
      <pre wrap=3D"">a mapping to TCP is actually defined. Because nobody=
 uses BEEP.

L.

-----Original Message-----
From: <a class=3D"moz-txt-link-abbreviated"
 href=3D"mailto:core-bounces@ietf.org">core-bounces@ietf.org</a> [<a
 class=3D"moz-txt-link-freetext" href=3D"mailto:core-bounces@ietf.org">ma=
ilto:core-bounces@ietf.org</a>] On Behalf Of
      </pre>
    </blockquote>
    <pre wrap=3D"">Guido
    </pre>
    <blockquote type=3D"cite">
      <pre wrap=3D"">Moritz
Sent: 12 May 2010 14:54
To: <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">c=
ore@ietf.org</a>
Subject: Re: [core] Core UDP vs TCP : Redux

Sorry, but I would not agree to say 'when you are able to use TCP, you
      </pre>
    </blockquote>
  </blockquote>
  <pre wrap=3D"">are
  </pre>
  <blockquote type=3D"cite">
    <blockquote type=3D"cite">
      <pre wrap=3D"">also able to use HTTP'. We made several measurements=
 with UDP vs. TCP
      </pre>
    </blockquote>
  </blockquote>
  <pre wrap=3D"">and
  </pre>
  <blockquote type=3D"cite">
    <pre wrap=3D"">of
    </pre>
    <blockquote type=3D"cite">
      <pre wrap=3D"">course, connection setup takes longer for TCP. But a=
 typical HTTP header
      </pre>
    </blockquote>
    <pre wrap=3D"">has a
    </pre>
    <blockquote type=3D"cite">
      <pre wrap=3D"">size &gt;100 Byte (without any payload). Thus the co=
nnection setup overhead
      </pre>
    </blockquote>
    <pre wrap=3D"">is
    </pre>
    <blockquote type=3D"cite">
      <pre wrap=3D"">compensated due to large payload/headers itself. The=
re might be
      </pre>
    </blockquote>
    <pre wrap=3D"">application
    </pre>
    <blockquote type=3D"cite">
      <pre wrap=3D"">scenarios where the designer wants to have reliable =
communication, but
      </pre>
    </blockquote>
    <pre wrap=3D"">still
    </pre>
    <blockquote type=3D"cite">
      <pre wrap=3D"">have small payload.

I did not have read through the current core I-D extensively, but is it
necessary to go so much into detail why to use UDP or TCP and how it
      </pre>
    </blockquote>
    <pre wrap=3D"">should be
    </pre>
    <blockquote type=3D"cite">
      <pre wrap=3D"">used? It might be reasonable to define a reliability=
 (and maybe also
fragmentation) extension to UDP and define UDP as the defualt, but why
      </pre>
    </blockquote>
    <pre wrap=3D"">should
    </pre>
    <blockquote type=3D"cite">
      <pre wrap=3D"">TCP be forbidden at all?

One may argue about SOAP Web services in several points, but their
      </pre>
    </blockquote>
  </blockquote>
  <pre wrap=3D"">binding
  </pre>
  <blockquote type=3D"cite">
    <blockquote type=3D"cite">
      <pre wrap=3D"">concept is quite nice. SOAP can be bound to which tr=
ansport mechanism
      </pre>
    </blockquote>
    <pre wrap=3D"">ever.
    </pre>
    <blockquote type=3D"cite">
      <pre wrap=3D"">This makes it applicable it different scenarios and =
the transport
mechanisms/protocol can be changed without an effect on application
      </pre>
    </blockquote>
    <pre wrap=3D"">itself.
    </pre>
    <blockquote type=3D"cite">
      <pre wrap=3D"">Just my two cents,
Guido

      </pre>
      <blockquote type=3D"cite">
        <pre wrap=3D"">-----Urspr&uuml;ngliche Nachricht-----
Von: <a class=3D"moz-txt-link-abbreviated"
 href=3D"mailto:core-bounces@ietf.org">core-bounces@ietf.org</a> [<a
 class=3D"moz-txt-link-freetext" href=3D"mailto:core-bounces@ietf.org">ma=
ilto:core-bounces@ietf.org</a>] Im Auftrag
von
        </pre>
      </blockquote>
      <pre wrap=3D"">Zach
      </pre>
      <blockquote type=3D"cite">
        <pre wrap=3D"">Shelby
Gesendet: Dienstag, 11. Mai 2010 23:07
An: Thomas Herbst
Cc: <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">c=
ore@ietf.org</a>
Betreff: Re: [core] Core UDP vs TCP : Redux

+1

Through writing a few revisions of these specs, I have also already
found
        </pre>
      </blockquote>
      <pre wrap=3D"">TCP
      </pre>
      <blockquote type=3D"cite">
        <pre wrap=3D"">to be really awkward. And the TCP negotiation disc=
ussions at the mike
in Anaheim made me even more skeptical. Tom is right, if you need TCP
then
        </pre>
      </blockquote>
      <pre wrap=3D"">just
      </pre>
      <blockquote type=3D"cite">
        <pre wrap=3D"">use HTTP ;-)

Zach

On May 11, 2010, at 18:49 , Thomas Herbst wrote:

        </pre>
        <blockquote type=3D"cite">
          <pre wrap=3D"">After the discussion in Anaheim, I'm surprised t=
hat we need yet
another
          </pre>
        </blockquote>
        <pre wrap=3D"">revisit to UDP and TCP for CORE.
        </pre>
        <blockquote type=3D"cite">
          <pre wrap=3D"">The Right Solution(tm) might well be to fix TCP =
such that it doesn't
          </pre>
        </blockquote>
      </blockquote>
      <pre wrap=3D"">lose
      </pre>
      <blockquote type=3D"cite">
        <pre wrap=3D"">its brains every time you drop a packet, and we co=
uld end up with an
        </pre>
      </blockquote>
      <pre wrap=3D"">end-to-
      </pre>
      <blockquote type=3D"cite">
        <pre wrap=3D"">end system where constrained devices might reasona=
bly provide services
to normal hosts in the regular Internet,  However, transport work is
out of
        </pre>
      </blockquote>
      <pre wrap=3D"">scope
      </pre>
      <blockquote type=3D"cite">
        <pre wrap=3D"">for this WG.
        </pre>
        <blockquote type=3D"cite">
          <pre wrap=3D"">The second most right solution would be to imple=
ment CORE with a
          </pre>
        </blockquote>
      </blockquote>
      <pre wrap=3D"">reliable
      </pre>
      <blockquote type=3D"cite">
        <pre wrap=3D"">UDP protocol, as is done in much of the draft.  Th=
e "optional" TCP
        </pre>
      </blockquote>
      <pre wrap=3D"">portions of
      </pre>
      <blockquote type=3D"cite">
        <pre wrap=3D"">the draft are mostly increased complexity for no a=
dded benefit. If a
        </pre>
      </blockquote>
      <pre wrap=3D"">device is
      </pre>
      <blockquote type=3D"cite">
        <pre wrap=3D"">capable of running TCP and the network it works on=
 is capable of
        </pre>
      </blockquote>
      <pre wrap=3D"">supporting
      </pre>
      <blockquote type=3D"cite">
        <pre wrap=3D"">TCP, you should just open a connection to Port 80 =
and use HTTP (or the
TCP port/protocol of your choice).  There are many protocols a host
MAY
        </pre>
      </blockquote>
      <pre wrap=3D"">implement
      </pre>
      <blockquote type=3D"cite">
        <pre wrap=3D"">and it is not appropriate for the draft to enumera=
te them.
        </pre>
        <blockquote type=3D"cite">
          <pre wrap=3D"">Let's remove all of the sections related to TCP =
in the draft.

tom

          </pre>
        </blockquote>
        <pre wrap=3D"">--
Zach Shelby, Head of Research, Sensinode Ltd.
<a class=3D"moz-txt-link-freetext" href=3D"http://zachshelby.org">http://=
zachshelby.org</a>  - My blog "On the Internet of Things<a
 class=3D"moz-txt-link-rfc2396E" href=3D"http://6lowpan.net-Mybook">"
http://6lowpan.net - My book "</a>6LoWPAN: The Wireless Embedded Internet=
"
Mobile: +358 40 7796297
        </pre>
      </blockquote>
    </blockquote>
    <pre wrap=3D"">
_______________________________________________
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext"
 href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org=
/mailman/listinfo/core</a>
    </pre>
  </blockquote>
  <pre wrap=3D"">_______________________________________________
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext"
 href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org=
/mailman/listinfo/core</a>

  </pre>
</blockquote>
</body>
</html>

--------------080202040101040103090303--

--------------ms040605050308050405030702
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIJKzCC
AvAwggJZoAMCAQICEHQVhhxGmCATv+IPne+OkB8wDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UE
BhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMT
I1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA5MDgyOTE2NTcwM1oX
DTEwMDgyOTE2NTcwM1owTTEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEqMCgG
CSqGSIb3DQEJARYbcm9iZXJ0LmNyYWdpZUBncmlkbWVyZ2UuY29tMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAtuQTYz8HUA37wa1PMyVnREeRwT3jtzGO6epyiCCaVeJkP76G
KdnNapg0jyuzDfRqSMW0n570toMF9FTpD34hDvtHcnMDboU7MSKFV2VyOOlTB3eHJfRn2Jtl
o9mSeW1qIIOwRReV6v50OxmijmeGFAn82Y1QrtyKDQxhl0HhEmY4jonziMyQ5gKlO5TM+CxY
hV0zXCLHfp9QjLG7bwZx6F0ChSHvRaf5ZlLKQSI2BGAx/GtP5l4ME7+kq4icmbV0g6m1AH9Y
LYYKV9rOx9SilPpTJdwn7GY/Qop4VSmdsaDBlXieBbjKqPN/CEqFmlxjjPFihorkeyC1T2R5
CqB41QIDAQABozgwNjAmBgNVHREEHzAdgRtyb2JlcnQuY3JhZ2llQGdyaWRtZXJnZS5jb20w
DAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQUFAAOBgQCTQ5bjbW8th9Yy/xbAgmc070Y/DLPR
RwOu51zamGFNffSpiPDJsLg4Bu9QZqhDylPm3AriHGp9MVL8Ei4h5krygmgHLE0mNYFsJt35
90wdK7z3dXtV/nOD0+rFR6Y9oUGf916rO0madex0KbosqrUuZ1NGVh/Q5/7H0mAEg+1EWzCC
AvAwggJZoAMCAQICEHQVhhxGmCATv+IPne+OkB8wDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UE
BhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMT
I1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA5MDgyOTE2NTcwM1oX
DTEwMDgyOTE2NTcwM1owTTEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEqMCgG
CSqGSIb3DQEJARYbcm9iZXJ0LmNyYWdpZUBncmlkbWVyZ2UuY29tMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAtuQTYz8HUA37wa1PMyVnREeRwT3jtzGO6epyiCCaVeJkP76G
KdnNapg0jyuzDfRqSMW0n570toMF9FTpD34hDvtHcnMDboU7MSKFV2VyOOlTB3eHJfRn2Jtl
o9mSeW1qIIOwRReV6v50OxmijmeGFAn82Y1QrtyKDQxhl0HhEmY4jonziMyQ5gKlO5TM+CxY
hV0zXCLHfp9QjLG7bwZx6F0ChSHvRaf5ZlLKQSI2BGAx/GtP5l4ME7+kq4icmbV0g6m1AH9Y
LYYKV9rOx9SilPpTJdwn7GY/Qop4VSmdsaDBlXieBbjKqPN/CEqFmlxjjPFihorkeyC1T2R5
CqB41QIDAQABozgwNjAmBgNVHREEHzAdgRtyb2JlcnQuY3JhZ2llQGdyaWRtZXJnZS5jb20w
DAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQUFAAOBgQCTQ5bjbW8th9Yy/xbAgmc070Y/DLPR
RwOu51zamGFNffSpiPDJsLg4Bu9QZqhDylPm3AriHGp9MVL8Ei4h5krygmgHLE0mNYFsJt35
90wdK7z3dXtV/nOD0+rFR6Y9oUGf916rO0madex0KbosqrUuZ1NGVh/Q5/7H0mAEg+1EWzCC
Az8wggKooAMCAQICAQ0wDQYJKoZIhvcNAQEFBQAwgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQI
EwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENv
bnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xJDAi
BgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVy
c29uYWwtZnJlZW1haWxAdGhhd3RlLmNvbTAeFw0wMzA3MTcwMDAwMDBaFw0xMzA3MTYyMzU5
NTlaMGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBM
dGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQTCBnzAN
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxKY8VXNV+065yplaHmjAdQRwnd/p/6Me7L3N9Vvy
Gna9fww6YfK/Uc4B1OVQCjDXAmNaLIkVcI7dyfArhVqqP3FWy688Cwfn8R+RNiQqE88r1fOC
dz0Dviv+uxg+B79AgAJk16emu59l0cUqVIUPSAR/p7bRPGEEQB5kGXJgt/sCAwEAAaOBlDCB
kTASBgNVHRMBAf8ECDAGAQH/AgEAMEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwudGhh
d3RlLmNvbS9UaGF3dGVQZXJzb25hbEZyZWVtYWlsQ0EuY3JsMAsGA1UdDwQEAwIBBjApBgNV
HREEIjAgpB4wHDEaMBgGA1UEAxMRUHJpdmF0ZUxhYmVsMi0xMzgwDQYJKoZIhvcNAQEFBQAD
gYEASIzRUIPqCy7MDaNmrGcPf6+svsIXoUOWlJ1/TCG4+DYfqi2fNi/A9BxQIJNwPP2t4WFi
w9k6GX6EsZkbAMUaC4J0niVQlGLH2ydxVyWN3amcOY6MIE9lX5Xa9/eH1sYITq726jTlEBpb
NU1341YheILcIRk13iSx0x1G/11fZU8xggNxMIIDbQIBATB2MGIxCzAJBgNVBAYTAlpBMSUw
IwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUg
UGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQQIQdBWGHEaYIBO/4g+d746QHzAJBgUrDgMC
GgUAoIIB0DAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xMDA1
MTgwNTQ5MzhaMCMGCSqGSIb3DQEJBDEWBBTSCCeLq3pHAxj6eRu/wYvN8zo/WDBfBgkqhkiG
9w0BCQ8xUjBQMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAOBggqhkiG9w0DAgICAIAwDQYI
KoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgwgYUGCSsGAQQBgjcQBDF4MHYw
YjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4x
LDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBAhB0FYYcRpgg
E7/iD53vjpAfMIGHBgsqhkiG9w0BCRACCzF4oHYwYjELMAkGA1UEBhMCWkExJTAjBgNVBAoT
HFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25h
bCBGcmVlbWFpbCBJc3N1aW5nIENBAhB0FYYcRpggE7/iD53vjpAfMA0GCSqGSIb3DQEBAQUA
BIIBAKX1F15UaXbTeXdO/XGwPjswL5ERqo6pysTulv7L/VIPL5at5TH6uq3VjO+ts21roatT
9ATM5514v9jKpOMVeNakyJyhwvmlbAqn8V7CsqFgK7KOfxIk2nsCEmJDBr5WtSLcBOCcAqyF
QJh0tyM0pmHCM44xgtEUZhdM8K16HvKkJrvfWnJTaqqHZx1RFy7Bc7Gy7FiBdu7KpHJwVeq8
NPfg52dARTaIzFSdbJEkJqN+jVRoNr/jRS8SxCGl22N/pWx/i3zvKCaSZggFZHjF5azUoRY0
JHlPJJqBhpRDsRIc/CBVurKZxMf5CnPu+AuEZIJvKnVmraIGTkDcnqZlTXEAAAAAAAA=
--------------ms040605050308050405030702--

From guido.moritz@uni-rostock.de  Tue May 18 01:31:57 2010
Return-Path: <guido.moritz@uni-rostock.de>
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 7531128C17E for <core@core3.amsl.com>; Tue, 18 May 2010 01:31:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.95
X-Spam-Level: 
X-Spam-Status: No, score=-1.95 tagged_above=-999 required=5 tests=[AWL=-0.350,  BAYES_50=0.001, HELO_EQ_DE=0.35, J_CHICKENPOX_32=0.6, MSGID_MULTIPLE_AT=1.449, RCVD_IN_DNSWL_MED=-4]
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 N1wTk6DItbQY for <core@core3.amsl.com>; Tue, 18 May 2010 01:31:48 -0700 (PDT)
Received: from ida.uni-rostock.de (ida.uni-rostock.de [139.30.8.34]) by core3.amsl.com (Postfix) with ESMTP id A6FF03A68A8 for <core@ietf.org>; Tue, 18 May 2010 01:27:57 -0700 (PDT)
Received: from email1.uni-rostock.de (139.30.8.208) by ida.uni-rostock.de (139.30.8.162) with Microsoft SMTP Server (TLS) id 8.2.254.0; Tue, 18 May 2010 10:27:44 +0200
Received: from Schlappi (139.30.201.226) by email1.uni-rostock.de (139.30.8.210) with Microsoft SMTP Server (TLS) id 8.2.254.0; Tue, 18 May 2010 10:21:26 +0200
From: Guido Moritz <guido.moritz@uni-rostock.de>
To: <core@ietf.org>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org>	<007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de>	<E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local> <3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org>
In-Reply-To: <3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org>
Date: Tue, 18 May 2010 10:21:26 +0200
Message-ID: <002101caf663$1c251d30$546f5790$@moritz@uni-rostock.de>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Office Outlook 12.0
Thread-Index: Acr14kyv39NSOyiHTBGOLspdW+HdUAAgMjPA
Content-Language: de
Subject: Re: [core] Core UDP vs TCP : Redux
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: Tue, 18 May 2010 08:31:57 -0000

>From the CORE charter:
>  4) The core CoAP functionality MUST operate well over UDP and UDP =
MUST
>  be implemented on CoAP Devices. There may be OPTIONAL functions in
>  CoAP (e.g. delivery of larger chunks of data) which if implemented =
are
>  implemented over TCP. Applications which require the optional TCP
>  features will limit themselves to a narrower subset of deployment
>  cases.

Running over TCP would narrow application scenarios? It would be more =
than
reasonable to design COAP while keeping UDP in mind. But as long as =
there
are no direct dependencies of COAP itself to the transport mechanisms, =
don't
restrict it. This in contrast would extend application scenarios, =
because
you can use COAP also if reliable transport layer is required in the
scenario.

Are there dependencies to UDP or is it only because the assumed
infrastructure is highly constrained?

Guido

> -----Urspr=FCngliche Nachricht-----
> Von: core-bounces@ietf.org [mailto:core-bounces@ietf.org] Im Auftrag =
von
> Carsten Bormann
> Gesendet: Montag, 17. Mai 2010 18:59
> An: Charles Palmer
> Cc: core
> Betreff: Re: [core] Core UDP vs TCP : Redux
>=20
> On May 17, 2010, at 17:47, Charles Palmer wrote:
>=20
> > How disruptive would it be to design CoRE without reference to =
TCP/UDP,
and
> also design a "reliable UDP" and use this for CoRE?
>=20
> I personally think CoAP needs to work with DTLS; if the WG moves in =
that
> direction there will be some minimum requirement for independence from =
the
> underlying protocol.
>=20
> However, what we expect from the underlying protocol has a big bearing =
on
CoAP
> itself.
> If we expect we can always move to TCP, there will be little need to =
make
CoAP
> operate on large representations with small underlying interactions.  =
I've
> heard a lot of pushback on assuming the availability of TCP, so far.
>=20
> There is also the aspect of interoperability:  One of the great =
properties
of
> the Web is that everybody uses the same stack, so all Web clients and
servers
> are interoperable, with IP providing the necessary technological
diversity.
> (On the other hand, this has made it near impossible to swap in, say,
SCTP.)
> Just standardizing CoAP without an "we expect this to run on UDP, =
unless
> otherwise specified" would not achieve the same level of =
interoperability.
>=20
> <WG chair hat>In any case, designing a reliable transport as a TCP
replacement
> and then a CoAP on top of either that or TCP is very much not what the
charter
> suggests we are supposed to do.</WG chair hat>
> Instead, we should look at how stateless CoAP really can be made -- I
think
> even TFTP has too much state (and thus isn't as trivial a file =
transfer
> protocol as it could be).
>=20
> Gruesse, Carsten
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core


From Colin.OFlynn@atmel.com  Tue May 18 06:32:05 2010
Return-Path: <Colin.OFlynn@atmel.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 9AE2B3A6C27 for <core@core3.amsl.com>; Tue, 18 May 2010 06:32:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.237
X-Spam-Level: 
X-Spam-Status: No, score=-0.237 tagged_above=-999 required=5 tests=[AWL=-0.839, BAYES_50=0.001, HTML_MESSAGE=0.001, J_CHICKENPOX_32=0.6]
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 CWGBRqmLHFxg for <core@core3.amsl.com>; Tue, 18 May 2010 06:32:04 -0700 (PDT)
Received: from sjogate2.atmel.com (newsmtp5.atmel.com [204.2.163.5]) by core3.amsl.com (Postfix) with ESMTP id 8E9C33A6C3D for <core@ietf.org>; Tue, 18 May 2010 06:28:51 -0700 (PDT)
Received: from csomb01.corp.atmel.com ([10.95.30.150]) by sjogate2.atmel.com (8.13.6/8.13.6) with ESMTP id o4IDQRZ3028979; Tue, 18 May 2010 06:26:27 -0700 (PDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01CAF68D.FCE5E675"
Date: Tue, 18 May 2010 07:23:42 -0600
Message-ID: <C6471264338047459F18230B4F871DA0098F0529@csomb01.corp.atmel.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [core] Core UDP vs TCP : Redux
Thread-Index: Acr14kyv39NSOyiHTBGOLspdW+HdUAAgMjPAAAqQDGU=
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org>	<007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de>	<E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local> <3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org> <002101caf663$1c251d30$546f5790$@moritz@uni-rostock.de>
From: "Oflynn, Colin" <Colin.OFlynn@atmel.com>
To: "Guido Moritz" <guido.moritz@uni-rostock.de>, <core@ietf.org>
Subject: Re: [core] Core UDP vs TCP : Redux
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: Tue, 18 May 2010 13:32:05 -0000

This is a multi-part message in MIME format.

------_=_NextPart_001_01CAF68D.FCE5E675
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

> Are there dependencies to UDP or is it only because the assumed
> infrastructure is highly constrained?

My thoughts/feeling on the issue is that CoAP should be designed with a =
highly constrained environment, and as such being bound to UDP makes it =
a lot simpler.

The resources which CoAP accesses SHOULD be accessible another in =
another manner; most likely this is HTTP over TCP. Even though CoAP does =
not map directly to HTTP, the requests are the same and thus I don't see =
an issue here. Nodes which are highly constrained may only support CoAP; =
larger nodes can support the full HTTP method.

Of course the whole subscription/notify method might take some changes =
to make it accessible via HTTP... but thats another thread.

  -Colin


-----Original Message-----
From: core-bounces@ietf.org on behalf of Guido Moritz
Sent: Tue 18/05/2010 09:21
To: core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux
=20
>From the CORE charter:
>  4) The core CoAP functionality MUST operate well over UDP and UDP =
MUST
>  be implemented on CoAP Devices. There may be OPTIONAL functions in
>  CoAP (e.g. delivery of larger chunks of data) which if implemented =
are
>  implemented over TCP. Applications which require the optional TCP
>  features will limit themselves to a narrower subset of deployment
>  cases.

Running over TCP would narrow application scenarios? It would be more =
than
reasonable to design COAP while keeping UDP in mind. But as long as =
there
are no direct dependencies of COAP itself to the transport mechanisms, =
don't
restrict it. This in contrast would extend application scenarios, =
because
you can use COAP also if reliable transport layer is required in the
scenario.

Are there dependencies to UDP or is it only because the assumed
infrastructure is highly constrained?

Guido

> -----Urspr=FCngliche Nachricht-----
> Von: core-bounces@ietf.org [mailto:core-bounces@ietf.org] Im Auftrag =
von
> Carsten Bormann
> Gesendet: Montag, 17. Mai 2010 18:59
> An: Charles Palmer
> Cc: core
> Betreff: Re: [core] Core UDP vs TCP : Redux
>=20
> On May 17, 2010, at 17:47, Charles Palmer wrote:
>=20
> > How disruptive would it be to design CoRE without reference to =
TCP/UDP,
and
> also design a "reliable UDP" and use this for CoRE?
>=20
> I personally think CoAP needs to work with DTLS; if the WG moves in =
that
> direction there will be some minimum requirement for independence from =
the
> underlying protocol.
>=20
> However, what we expect from the underlying protocol has a big bearing =
on
CoAP
> itself.
> If we expect we can always move to TCP, there will be little need to =
make
CoAP
> operate on large representations with small underlying interactions.  =
I've
> heard a lot of pushback on assuming the availability of TCP, so far.
>=20
> There is also the aspect of interoperability:  One of the great =
properties
of
> the Web is that everybody uses the same stack, so all Web clients and
servers
> are interoperable, with IP providing the necessary technological
diversity.
> (On the other hand, this has made it near impossible to swap in, say,
SCTP.)
> Just standardizing CoAP without an "we expect this to run on UDP, =
unless
> otherwise specified" would not achieve the same level of =
interoperability.
>=20
> <WG chair hat>In any case, designing a reliable transport as a TCP
replacement
> and then a CoAP on top of either that or TCP is very much not what the
charter
> suggests we are supposed to do.</WG chair hat>
> Instead, we should look at how stateless CoAP really can be made -- I
think
> even TFTP has too much state (and thus isn't as trivial a file =
transfer
> protocol as it could be).
>=20
> Gruesse, Carsten
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core


------_=_NextPart_001_01CAF68D.FCE5E675
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
6.5.7654.12">
<TITLE>RE: [core] Core UDP vs TCP : Redux</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=3D2>&gt; Are there dependencies to UDP or is it only =
because the assumed<BR>
&gt; infrastructure is highly constrained?<BR>
<BR>
My thoughts/feeling on the issue is that CoAP should be designed with a =
highly constrained environment, and as such being bound to UDP makes it =
a lot simpler.<BR>
<BR>
The resources which CoAP accesses SHOULD be accessible another in =
another manner; most likely this is HTTP over TCP. Even though CoAP does =
not map directly to HTTP, the requests are the same and thus I don't see =
an issue here. Nodes which are highly constrained may only support CoAP; =
larger nodes can support the full HTTP method.<BR>
<BR>
Of course the whole subscription/notify method might take some changes =
to make it accessible via HTTP... but thats another thread.<BR>
<BR>
&nbsp; -Colin<BR>
<BR>
<BR>
-----Original Message-----<BR>
From: core-bounces@ietf.org on behalf of Guido Moritz<BR>
Sent: Tue 18/05/2010 09:21<BR>
To: core@ietf.org<BR>
Subject: Re: [core] Core UDP vs TCP : Redux<BR>
<BR>
>From the CORE charter:<BR>
&gt;&nbsp; 4) The core CoAP functionality MUST operate well over UDP and =
UDP MUST<BR>
&gt;&nbsp; be implemented on CoAP Devices. There may be OPTIONAL =
functions in<BR>
&gt;&nbsp; CoAP (e.g. delivery of larger chunks of data) which if =
implemented are<BR>
&gt;&nbsp; implemented over TCP. Applications which require the optional =
TCP<BR>
&gt;&nbsp; features will limit themselves to a narrower subset of =
deployment<BR>
&gt;&nbsp; cases.<BR>
<BR>
Running over TCP would narrow application scenarios? It would be more =
than<BR>
reasonable to design COAP while keeping UDP in mind. But as long as =
there<BR>
are no direct dependencies of COAP itself to the transport mechanisms, =
don't<BR>
restrict it. This in contrast would extend application scenarios, =
because<BR>
you can use COAP also if reliable transport layer is required in the<BR>
scenario.<BR>
<BR>
Are there dependencies to UDP or is it only because the assumed<BR>
infrastructure is highly constrained?<BR>
<BR>
Guido<BR>
<BR>
&gt; -----Urspr=FCngliche Nachricht-----<BR>
&gt; Von: core-bounces@ietf.org [<A =
HREF=3D"mailto:core-bounces@ietf.org">mailto:core-bounces@ietf.org</A>] =
Im Auftrag von<BR>
&gt; Carsten Bormann<BR>
&gt; Gesendet: Montag, 17. Mai 2010 18:59<BR>
&gt; An: Charles Palmer<BR>
&gt; Cc: core<BR>
&gt; Betreff: Re: [core] Core UDP vs TCP : Redux<BR>
&gt;<BR>
&gt; On May 17, 2010, at 17:47, Charles Palmer wrote:<BR>
&gt;<BR>
&gt; &gt; How disruptive would it be to design CoRE without reference to =
TCP/UDP,<BR>
and<BR>
&gt; also design a &quot;reliable UDP&quot; and use this for CoRE?<BR>
&gt;<BR>
&gt; I personally think CoAP needs to work with DTLS; if the WG moves in =
that<BR>
&gt; direction there will be some minimum requirement for independence =
from the<BR>
&gt; underlying protocol.<BR>
&gt;<BR>
&gt; However, what we expect from the underlying protocol has a big =
bearing on<BR>
CoAP<BR>
&gt; itself.<BR>
&gt; If we expect we can always move to TCP, there will be little need =
to make<BR>
CoAP<BR>
&gt; operate on large representations with small underlying =
interactions.&nbsp; I've<BR>
&gt; heard a lot of pushback on assuming the availability of TCP, so =
far.<BR>
&gt;<BR>
&gt; There is also the aspect of interoperability:&nbsp; One of the =
great properties<BR>
of<BR>
&gt; the Web is that everybody uses the same stack, so all Web clients =
and<BR>
servers<BR>
&gt; are interoperable, with IP providing the necessary =
technological<BR>
diversity.<BR>
&gt; (On the other hand, this has made it near impossible to swap in, =
say,<BR>
SCTP.)<BR>
&gt; Just standardizing CoAP without an &quot;we expect this to run on =
UDP, unless<BR>
&gt; otherwise specified&quot; would not achieve the same level of =
interoperability.<BR>
&gt;<BR>
&gt; &lt;WG chair hat&gt;In any case, designing a reliable transport as =
a TCP<BR>
replacement<BR>
&gt; and then a CoAP on top of either that or TCP is very much not what =
the<BR>
charter<BR>
&gt; suggests we are supposed to do.&lt;/WG chair hat&gt;<BR>
&gt; Instead, we should look at how stateless CoAP really can be made -- =
I<BR>
think<BR>
&gt; even TFTP has too much state (and thus isn't as trivial a file =
transfer<BR>
&gt; protocol as it could be).<BR>
&gt;<BR>
&gt; Gruesse, Carsten<BR>
&gt;<BR>
&gt; _______________________________________________<BR>
&gt; core mailing list<BR>
&gt; core@ietf.org<BR>
&gt; <A =
HREF=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</A><BR>
<BR>
_______________________________________________<BR>
core mailing list<BR>
core@ietf.org<BR>
<A =
HREF=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</A><BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>
------_=_NextPart_001_01CAF68D.FCE5E675--

From cabo@tzi.org  Tue May 18 06:41:10 2010
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 21F1B3A69A5 for <core@core3.amsl.com>; Tue, 18 May 2010 06:41:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.256
X-Spam-Level: 
X-Spam-Status: No, score=-4.256 tagged_above=-999 required=5 tests=[AWL=-0.607, BAYES_50=0.001, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-4]
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 rVv+UXstTN6V for <core@core3.amsl.com>; Tue, 18 May 2010 06:41:09 -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 AA0163A6BD6 for <core@ietf.org>; Tue, 18 May 2010 06:39:53 -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 o4IDdYor028528; Tue, 18 May 2010 15:39:34 +0200 (CEST)
Received: from [192.168.217.101] (p5489A815.dip.t-dialin.net [84.137.168.21]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by smtp-fb3.informatik.uni-bremen.de (Postfix) with ESMTP id 4B0D1D9A2;  Tue, 18 May 2010 15:39:34 +0200 (CEST)
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: text/plain; charset=us-ascii
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <C6471264338047459F18230B4F871DA0098F0529@csomb01.corp.atmel.com>
Date: Tue, 18 May 2010 15:39:33 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <F4BFBB68-0891-4F84-9CFA-E10F0C2921DB@tzi.org>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org>	<007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de>	<E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local> <3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org> <002101caf663$1c251d30$546f5790$@moritz@uni-rostock.de> <C6471264338047459F18230B4F871DA0098F0529@csomb01.corp.atmel.com>
To: "Oflynn, Colin" <Colin.OFlynn@atmel.com>
X-Mailer: Apple Mail (2.1078)
Cc: core <core@ietf.org>
Subject: Re: [core] Core UDP vs TCP : Redux
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: Tue, 18 May 2010 13:41:10 -0000

On May 18, 2010, at 15:23, Oflynn, Colin wrote:

> The resources which CoAP accesses SHOULD be accessible another in =
another manner; most likely this is HTTP over TCP. Even though CoAP does =
not map directly to HTTP, the requests are the same and thus I don't see =
an issue here. Nodes which are highly constrained may only support CoAP; =
larger nodes can support the full HTTP method.

That is an interesting point, as it means that our main charter item
"CoAP protocol specification with mapping to HTTP Rest API"
may need this mapping not only in a node that provides a proxy function, =
but also possibly right in the origin servers.  While this can be =
trivially reduced to co-locating the proxy with the origin server, it =
does provide a slightly different point of view on this mapping than I =
previously had.  Interesting!

Gruesse, Carsten


From robert.cragie@gridmerge.com  Tue May 18 07:18:45 2010
Return-Path: <robert.cragie@gridmerge.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 8B1903A686E for <core@core3.amsl.com>; Tue, 18 May 2010 07:18:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.868
X-Spam-Level: 
X-Spam-Status: No, score=-1.868 tagged_above=-999 required=5 tests=[AWL=-0.129, BAYES_20=-0.74, HTML_MESSAGE=0.001, 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 CNUP-zj9yw3s for <core@core3.amsl.com>; Tue, 18 May 2010 07:18:44 -0700 (PDT)
Received: from mail78.extendcp.co.uk (mail78.extendcp.co.uk [79.170.40.78]) by core3.amsl.com (Postfix) with ESMTP id 939B228C120 for <core@ietf.org>; Tue, 18 May 2010 07:15:35 -0700 (PDT)
Received: from 216-75-227-18.static.wiline.com ([216.75.227.18] helo=[192.168.5.116]) by mail78.extendcp.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.71) id 1OENZt-0005kK-Lt for core@ietf.org; Tue, 18 May 2010 15:15:26 +0100
Message-ID: <4BF2A0FA.9050909@gridmerge.com>
Date: Tue, 18 May 2010 15:15:22 +0100
From: Robert Cragie <robert.cragie@gridmerge.com>
Organization: Gridmerge Ltd.
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.9) Gecko/20100317 Lightning/1.0b1 Thunderbird/3.0.4
MIME-Version: 1.0
To: core@ietf.org
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org>	<007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de>	<E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local>	<3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org>	<002101caf663$1c251d30$546f5790$@moritz@uni-rostock.de>	<C6471264338047459F18230B4F871DA0098F0529@csomb01.corp.atmel.com> <F4BFBB68-0891-4F84-9CFA-E10F0C2921DB@tzi.org>
In-Reply-To: <F4BFBB68-0891-4F84-9CFA-E10F0C2921DB@tzi.org>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="------------ms040205060309020808050100"
Subject: Re: [core] Core UDP vs TCP : Redux
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: robert.cragie@gridmerge.com
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: Tue, 18 May 2010 14:18:45 -0000

This is a cryptographically signed message in MIME format.

--------------ms040205060309020808050100
Content-Type: multipart/alternative;
 boundary="------------030808000700040405000500"

This is a multi-part message in MIME format.
--------------030808000700040405000500
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable

Hi Carsten,

"co-locating the proxy with the origin server" seems to be a paradox -=20
can you explain what you mean? For the moment, I can't see why you'd=20
need to do this.

Robert

Robert Cragie (Pacific Gas & Electric)

Gridmerge Ltd.
89 Greenfield Crescent,
Wakefield, WF4 4WA, UK
+44 1924 910888
+1 415 513 0064
http://www.gridmerge.com <http://www.gridmerge.com/>


On 18/05/2010 2:39 PM, Carsten Bormann wrote:
> On May 18, 2010, at 15:23, Oflynn, Colin wrote:
>
>   =20
>> The resources which CoAP accesses SHOULD be accessible another in anot=
her manner; most likely this is HTTP over TCP. Even though CoAP does not =
map directly to HTTP, the requests are the same and thus I don't see an i=
ssue here. Nodes which are highly constrained may only support CoAP; larg=
er nodes can support the full HTTP method.
>>     =20
> That is an interesting point, as it means that our main charter item
> "CoAP protocol specification with mapping to HTTP Rest API"
> may need this mapping not only in a node that provides a proxy function=
, but also possibly right in the origin servers.  While this can be trivi=
ally reduced to co-locating the proxy with the origin server, it does pro=
vide a slightly different point of view on this mapping than I previously=
 had.  Interesting!
>
> Gruesse, Carsten
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>
>   =20

--------------030808000700040405000500
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content=3D"text/html; charset=3DISO-8859-1"
 http-equiv=3D"Content-Type">
</head>
<body bgcolor=3D"#ffffff" text=3D"#000000">
Hi Carsten,<br>
<br>
"co-locating the proxy with the origin server" seems to be a paradox -
can you explain what you mean? For the moment, I can't see why you'd
need to do this.<br>
<br>
Robert<br>
<div class=3D"moz-signature">
<style type=3D"text/css">
p
{
font-family:Verdana,Arial,sans-serif;
font-size:8pt;
}
=2Ename
{
font-size:12pt;
}
</style>
<p class=3D"name">Robert Cragie (Pacific Gas &amp; Electric)</p>
<p>Gridmerge Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 1924 910888<br>
+1 415 513 0064<br>
<a href=3D"http://www.gridmerge.com/">http://www.gridmerge.com</a></p>
</div>
<br>
On 18/05/2010 2:39 PM, Carsten Bormann wrote:
<blockquote cite=3D"mid:F4BFBB68-0891-4F84-9CFA-E10F0C2921DB@tzi.org"
 type=3D"cite">
  <pre wrap=3D"">On May 18, 2010, at 15:23, Oflynn, Colin wrote:

  </pre>
  <blockquote type=3D"cite">
    <pre wrap=3D"">The resources which CoAP accesses SHOULD be accessible=
 another in another manner; most likely this is HTTP over TCP. Even thoug=
h CoAP does not map directly to HTTP, the requests are the same and thus =
I don't see an issue here. Nodes which are highly constrained may only su=
pport CoAP; larger nodes can support the full HTTP method.
    </pre>
  </blockquote>
  <pre wrap=3D"">
That is an interesting point, as it means that our main charter item
"CoAP protocol specification with mapping to HTTP Rest API"
may need this mapping not only in a node that provides a proxy function, =
but also possibly right in the origin servers.  While this can be trivial=
ly reduced to co-locating the proxy with the origin server, it does provi=
de a slightly different point of view on this mapping than I previously h=
ad.  Interesting!

Gruesse, Carsten

_______________________________________________
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext" href=3D"https://www.ietf.org/mailman/l=
istinfo/core">https://www.ietf.org/mailman/listinfo/core</a>

  </pre>
</blockquote>
</body>
</html>

--------------030808000700040405000500--

--------------ms040205060309020808050100
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIJKzCC
AvAwggJZoAMCAQICEHQVhhxGmCATv+IPne+OkB8wDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UE
BhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMT
I1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA5MDgyOTE2NTcwM1oX
DTEwMDgyOTE2NTcwM1owTTEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEqMCgG
CSqGSIb3DQEJARYbcm9iZXJ0LmNyYWdpZUBncmlkbWVyZ2UuY29tMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAtuQTYz8HUA37wa1PMyVnREeRwT3jtzGO6epyiCCaVeJkP76G
KdnNapg0jyuzDfRqSMW0n570toMF9FTpD34hDvtHcnMDboU7MSKFV2VyOOlTB3eHJfRn2Jtl
o9mSeW1qIIOwRReV6v50OxmijmeGFAn82Y1QrtyKDQxhl0HhEmY4jonziMyQ5gKlO5TM+CxY
hV0zXCLHfp9QjLG7bwZx6F0ChSHvRaf5ZlLKQSI2BGAx/GtP5l4ME7+kq4icmbV0g6m1AH9Y
LYYKV9rOx9SilPpTJdwn7GY/Qop4VSmdsaDBlXieBbjKqPN/CEqFmlxjjPFihorkeyC1T2R5
CqB41QIDAQABozgwNjAmBgNVHREEHzAdgRtyb2JlcnQuY3JhZ2llQGdyaWRtZXJnZS5jb20w
DAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQUFAAOBgQCTQ5bjbW8th9Yy/xbAgmc070Y/DLPR
RwOu51zamGFNffSpiPDJsLg4Bu9QZqhDylPm3AriHGp9MVL8Ei4h5krygmgHLE0mNYFsJt35
90wdK7z3dXtV/nOD0+rFR6Y9oUGf916rO0madex0KbosqrUuZ1NGVh/Q5/7H0mAEg+1EWzCC
AvAwggJZoAMCAQICEHQVhhxGmCATv+IPne+OkB8wDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UE
BhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMT
I1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA5MDgyOTE2NTcwM1oX
DTEwMDgyOTE2NTcwM1owTTEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEqMCgG
CSqGSIb3DQEJARYbcm9iZXJ0LmNyYWdpZUBncmlkbWVyZ2UuY29tMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAtuQTYz8HUA37wa1PMyVnREeRwT3jtzGO6epyiCCaVeJkP76G
KdnNapg0jyuzDfRqSMW0n570toMF9FTpD34hDvtHcnMDboU7MSKFV2VyOOlTB3eHJfRn2Jtl
o9mSeW1qIIOwRReV6v50OxmijmeGFAn82Y1QrtyKDQxhl0HhEmY4jonziMyQ5gKlO5TM+CxY
hV0zXCLHfp9QjLG7bwZx6F0ChSHvRaf5ZlLKQSI2BGAx/GtP5l4ME7+kq4icmbV0g6m1AH9Y
LYYKV9rOx9SilPpTJdwn7GY/Qop4VSmdsaDBlXieBbjKqPN/CEqFmlxjjPFihorkeyC1T2R5
CqB41QIDAQABozgwNjAmBgNVHREEHzAdgRtyb2JlcnQuY3JhZ2llQGdyaWRtZXJnZS5jb20w
DAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQUFAAOBgQCTQ5bjbW8th9Yy/xbAgmc070Y/DLPR
RwOu51zamGFNffSpiPDJsLg4Bu9QZqhDylPm3AriHGp9MVL8Ei4h5krygmgHLE0mNYFsJt35
90wdK7z3dXtV/nOD0+rFR6Y9oUGf916rO0madex0KbosqrUuZ1NGVh/Q5/7H0mAEg+1EWzCC
Az8wggKooAMCAQICAQ0wDQYJKoZIhvcNAQEFBQAwgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQI
EwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENv
bnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xJDAi
BgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVy
c29uYWwtZnJlZW1haWxAdGhhd3RlLmNvbTAeFw0wMzA3MTcwMDAwMDBaFw0xMzA3MTYyMzU5
NTlaMGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBM
dGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQTCBnzAN
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxKY8VXNV+065yplaHmjAdQRwnd/p/6Me7L3N9Vvy
Gna9fww6YfK/Uc4B1OVQCjDXAmNaLIkVcI7dyfArhVqqP3FWy688Cwfn8R+RNiQqE88r1fOC
dz0Dviv+uxg+B79AgAJk16emu59l0cUqVIUPSAR/p7bRPGEEQB5kGXJgt/sCAwEAAaOBlDCB
kTASBgNVHRMBAf8ECDAGAQH/AgEAMEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwudGhh
d3RlLmNvbS9UaGF3dGVQZXJzb25hbEZyZWVtYWlsQ0EuY3JsMAsGA1UdDwQEAwIBBjApBgNV
HREEIjAgpB4wHDEaMBgGA1UEAxMRUHJpdmF0ZUxhYmVsMi0xMzgwDQYJKoZIhvcNAQEFBQAD
gYEASIzRUIPqCy7MDaNmrGcPf6+svsIXoUOWlJ1/TCG4+DYfqi2fNi/A9BxQIJNwPP2t4WFi
w9k6GX6EsZkbAMUaC4J0niVQlGLH2ydxVyWN3amcOY6MIE9lX5Xa9/eH1sYITq726jTlEBpb
NU1341YheILcIRk13iSx0x1G/11fZU8xggNxMIIDbQIBATB2MGIxCzAJBgNVBAYTAlpBMSUw
IwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUg
UGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQQIQdBWGHEaYIBO/4g+d746QHzAJBgUrDgMC
GgUAoIIB0DAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xMDA1
MTgxNDE1MjJaMCMGCSqGSIb3DQEJBDEWBBQpnsYhuDud6Np6sWRGmY4UvsX9xzBfBgkqhkiG
9w0BCQ8xUjBQMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAOBggqhkiG9w0DAgICAIAwDQYI
KoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgwgYUGCSsGAQQBgjcQBDF4MHYw
YjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4x
LDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBAhB0FYYcRpgg
E7/iD53vjpAfMIGHBgsqhkiG9w0BCRACCzF4oHYwYjELMAkGA1UEBhMCWkExJTAjBgNVBAoT
HFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25h
bCBGcmVlbWFpbCBJc3N1aW5nIENBAhB0FYYcRpggE7/iD53vjpAfMA0GCSqGSIb3DQEBAQUA
BIIBADHi5kxAhDiq8R5oLTaLTVTAfd3peujsw9L+VxGOHOGcbkDyp0QP+38UwX9M2o+LMOEf
/9yZL5/u2Ce0M1nwMclUUfEaChk5u2eQ9xdx7LRayuZ8uIVlXu0N9aBZFZB66POcaVetlztW
PiOfAxiSQ5ZuYkGs8e1xWQfusjEV5Jrws26LMsDylz2IAn+F/ILONbwhu1L1qbn57wlOMHGf
BRfqfMbctXqqgaXyrPI0m4aWpeq2ynKYW1H+6qc2q2a92LiWWHzQo5PzgtidReQUu61ZUPsE
j+wq75uhb9lzyvsonJojHGnUgrBj2fyQcLFeNPl2J8+N0lnlcb5DEoux/RgAAAAAAAA=
--------------ms040205060309020808050100--

From cabo@tzi.org  Tue May 18 07:34:57 2010
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 21CD13A6A31 for <core@core3.amsl.com>; Tue, 18 May 2010 07:34:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.533
X-Spam-Level: 
X-Spam-Status: No, score=-5.533 tagged_above=-999 required=5 tests=[AWL=0.716,  BAYES_00=-2.599, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-4]
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 9ULZ+6HOxcTt for <core@core3.amsl.com>; Tue, 18 May 2010 07:34:56 -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 AA0AA3A6C21 for <core@ietf.org>; Tue, 18 May 2010 07:27:40 -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 o4IERN61020393; Tue, 18 May 2010 16:27:23 +0200 (CEST)
Received: from [192.168.217.101] (p5489A815.dip.t-dialin.net [84.137.168.21]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by smtp-fb3.informatik.uni-bremen.de (Postfix) with ESMTP id B09ACDA33;  Tue, 18 May 2010 16:27:22 +0200 (CEST)
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: text/plain; charset=us-ascii
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <4BF2A0FA.9050909@gridmerge.com>
Date: Tue, 18 May 2010 16:27:20 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <7312D5B8-CB41-451B-ADD6-D7AD17BD2747@tzi.org>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org>	<007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de>	<E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local>	<3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org>	<002101caf663$1c251d30$546f5790$@moritz@uni-rostock.de>	<C6471264338047459F18230B4F871DA0098F0529@csomb01.corp.atmel.com> <F4BFBB68-0891-4F84-9CFA-E10F0C2921DB@tzi.org> <4BF2A0FA.9050909@gridmerge.com>
To: robert.cragie@gridmerge.com
X-Mailer: Apple Mail (2.1078)
Cc: core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux
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: Tue, 18 May 2010 14:34:57 -0000

On May 18, 2010, at 16:15, Robert Cragie wrote:

> "co-locating the proxy with the origin server" seems to be a paradox - =
can you explain what you mean? For the moment, I can't see why you'd =
need to do this.

I just mentioned this as a trivial proof that of course the CoAP-to-HTTP =
mapping would already specify one way to do the CoAP-to-HTTP switch on =
the origin server, because you could do the colocation.  But, yes, this =
certainly can be modeled in a simpler way.  The question is whether a =
client would have to care whether the HTTP access is through a =
(non-colocated) proxy to a CoAP-only origin server or right on the HTTP =
service of the origin server.  It would be nice if it didn't have to =
care (except maybe for the URI).  This creates some additional =
objectives for the HTTP mapping that I wasn't aware of.

Gruesse, Carsten


From robby.simpson@ge.com  Tue May 18 08:02:57 2010
Return-Path: <robby.simpson@ge.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 BEA0B3A69D5 for <core@core3.amsl.com>; Tue, 18 May 2010 08:02:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.554
X-Spam-Level: 
X-Spam-Status: No, score=-4.554 tagged_above=-999 required=5 tests=[AWL=0.556,  BAYES_05=-1.11, RCVD_IN_DNSWL_MED=-4]
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 zE1-UJKw2R0i for <core@core3.amsl.com>; Tue, 18 May 2010 08:02:56 -0700 (PDT)
Received: from exprod5og104.obsmtp.com (exprod5og104.obsmtp.com [64.18.0.178]) by core3.amsl.com (Postfix) with ESMTP id 90D9828C128 for <core@ietf.org>; Tue, 18 May 2010 08:02:46 -0700 (PDT)
Received: from source ([4.78.218.129]) (using TLSv1) by exprod5ob104.postini.com ([64.18.4.12]) with SMTP ID DSNKS/KsDkHYDoOcOYmYoMdau1Qcsf9dko7n@postini.com; Tue, 18 May 2010 08:02:39 PDT
Received: from unknown (HELO alpmlef08.e2k.ad.ge.com) ([3.159.18.17]) by Cinmlip09.e2k.ad.ge.com with ESMTP; 18 May 2010 11:02:38 -0400
Received: from ALPMLVEM04.e2k.ad.ge.com ([3.159.17.50]) by alpmlef08.e2k.ad.ge.com with Microsoft SMTPSVC(6.0.3790.4675);  Tue, 18 May 2010 11:02:37 -0400
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Date: Tue, 18 May 2010 11:01:54 -0400
Message-ID: <A61BB3A241E6E64D86C58237F6DC1A18026F5FA5@ALPMLVEM04.e2k.ad.ge.com>
In-Reply-To: <7312D5B8-CB41-451B-ADD6-D7AD17BD2747@tzi.org>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: CoAP-to-HTTP and Security (was RE: [core] Core UDP vs TCP : Redux)
thread-index: Acr2l0s5l22P4azkSrC1Y4XM6olwiwAAz+RA
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org>	<007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de>	<E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local>	<3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org>	<002101caf663$1c251d30$546f5790$@moritz@uni-rostock.de>	<C6471264338047459F18230B4F871DA0098F0529@csomb01.corp.atmel.com><F4BFBB68-0891-4F84-9CFA-E10F0C2921DB@tzi.org><4BF2A0FA.9050909@gridmerge.com> <7312D5B8-CB41-451B-ADD6-D7AD17BD2747@tzi.org>
From: "Simpson, Robby (GE Energy Services)" <robby.simpson@ge.com>
To: "Carsten Bormann" <cabo@tzi.org>, <robert.cragie@gridmerge.com>
X-OriginalArrivalTime: 18 May 2010 15:02:37.0456 (UTC) FILETIME=[2761B900:01CAF69B]
Cc: core@ietf.org
Subject: [core] CoAP-to-HTTP and Security (was RE: Core UDP vs TCP : Redux)
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: Tue, 18 May 2010 15:02:57 -0000

Thus far, from a security perspective, the only protocol I have seen
floated is DTLS.  If end-to-end security is desired, as well as
translation from CoAP-to-HTTP and vice versa, how do we envision this
occurring?  Would the point of translation need to be a break in the
end-to-end security?

- Robby
=20

-----Original Message-----
From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of
Carsten Bormann
Sent: Tuesday, May 18, 2010 10:27 AM
To: robert.cragie@gridmerge.com
Cc: core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux

On May 18, 2010, at 16:15, Robert Cragie wrote:

> "co-locating the proxy with the origin server" seems to be a paradox -
can you explain what you mean? For the moment, I can't see why you'd
need to do this.

I just mentioned this as a trivial proof that of course the CoAP-to-HTTP
mapping would already specify one way to do the CoAP-to-HTTP switch on
the origin server, because you could do the colocation.  But, yes, this
certainly can be modeled in a simpler way.  The question is whether a
client would have to care whether the HTTP access is through a
(non-colocated) proxy to a CoAP-only origin server or right on the HTTP
service of the origin server.  It would be nice if it didn't have to
care (except maybe for the URI).  This creates some additional
objectives for the HTTP mapping that I wasn't aware of.

Gruesse, Carsten

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

From Michael.Stuber@itron.com  Tue May 18 08:29:19 2010
Return-Path: <Michael.Stuber@itron.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 29F7B3A6828 for <core@core3.amsl.com>; Tue, 18 May 2010 08:29:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.818
X-Spam-Level: 
X-Spam-Status: No, score=-1.818 tagged_above=-999 required=5 tests=[AWL=0.782,  BAYES_00=-2.599]
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 TfH1giUWlNo8 for <core@core3.amsl.com>; Tue, 18 May 2010 08:29:17 -0700 (PDT)
Received: from mailer-1.itron.com (mailer-1.itron.com [198.182.8.123]) by core3.amsl.com (Postfix) with ESMTP id 810773A680D for <core@ietf.org>; Tue, 18 May 2010 08:27:43 -0700 (PDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Date: Tue, 18 May 2010 08:27:35 -0700
Message-ID: <05C6A38D732F1144A8C4016BA4416BFE02D5A646@SPO-EXVS-02.itron.com>
In-Reply-To: <A61BB3A241E6E64D86C58237F6DC1A18026F5FA5@ALPMLVEM04.e2k.ad.ge.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [core] CoAP-to-HTTP and Security (was RE: Core UDP vs TCP : Redux)
Thread-Index: Acr2l0s5l22P4azkSrC1Y4XM6olwiwAAz+RAAACzjEA=
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org>	<007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de>	<E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local>	<3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org>	<002101caf663$1c251d30$546f5790$@moritz@uni-rostock.de>	<C6471264338047459F18230B4F871DA0098F0529@csomb01.corp.atmel.com><F4BFBB68-0891-4F84-9CFA-E10F0C2921DB@tzi.org><4BF2A0FA.9050909@gridmerge.com><7312D5B8-CB41-451B-ADD6-D7AD17BD2747@tzi.org> <A61BB3A241E6E64D86C58237F6DC1A18026F5FA5@ALPMLVEM04 .e2k.ad. ge.com>
From: "Stuber, Michael" <Michael.Stuber@itron.com>
To: "Simpson, Robby (GE Energy Services)" <robby.simpson@ge.com>, "Carsten Bormann" <cabo@tzi.org>, <robert.cragie@gridmerge.com>
Cc: core@ietf.org
Subject: Re: [core] CoAP-to-HTTP and Security (was RE: Core UDP vs TCP : Redux)
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: Tue, 18 May 2010 15:29:19 -0000

If we have a deployment model in which two protocols are used, for
example CoAP with a HAN, and HTTP back to a central server, it seems we
have two obvious choices:
	(1)	Provide security within the application message contents
(i.e. not the protocol itself), such that the contents are secured
end-to-end.  An example of this would be an encrypted file.  It doesn't
matter if it is sent over FTP, HTTP, or camel train, the contents is
still encrypted and presumably only available to the sending and
receiving parties with the secret key.
	(2)	Accept a break a in the end-to-end security model at the
translation node.  The message is secured between the HAN and the
translator, and the translator and the central server, but temporarily
exposed within the translator itself as the contents are transformed
from one protocol to another.

Are there other approaches?  I could imagine some function thing where
the translator node allows a CoAP device to complete TLS negotiation
with a HTTP server, but I wouldn't want to have to write it, and the
possibility for opening a security hole seems pretty large to me.

-----Original Message-----
From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of
Simpson, Robby (GE Energy Services)
Sent: Tuesday, May 18, 2010 8:02 AM
To: Carsten Bormann; robert.cragie@gridmerge.com
Cc: core@ietf.org
Subject: [core] CoAP-to-HTTP and Security (was RE: Core UDP vs TCP :
Redux)

Thus far, from a security perspective, the only protocol I have seen
floated is DTLS.  If end-to-end security is desired, as well as
translation from CoAP-to-HTTP and vice versa, how do we envision this
occurring?  Would the point of translation need to be a break in the
end-to-end security?

- Robby
=20

-----Original Message-----
From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of
Carsten Bormann
Sent: Tuesday, May 18, 2010 10:27 AM
To: robert.cragie@gridmerge.com
Cc: core@ietf.org
Subject: Re: [core] Core UDP vs TCP : Redux

On May 18, 2010, at 16:15, Robert Cragie wrote:

> "co-locating the proxy with the origin server" seems to be a paradox -
can you explain what you mean? For the moment, I can't see why you'd
need to do this.

I just mentioned this as a trivial proof that of course the CoAP-to-HTTP
mapping would already specify one way to do the CoAP-to-HTTP switch on
the origin server, because you could do the colocation.  But, yes, this
certainly can be modeled in a simpler way.  The question is whether a
client would have to care whether the HTTP access is through a
(non-colocated) proxy to a CoAP-only origin server or right on the HTTP
service of the origin server.  It would be nice if it didn't have to
care (except maybe for the URI).  This creates some additional
objectives for the HTTP mapping that I wasn't aware of.

Gruesse, Carsten

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core
_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

From scholza@in.tum.de  Tue May 18 09:05:30 2010
Return-Path: <scholza@in.tum.de>
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 ECED73A6A87 for <core@core3.amsl.com>; Tue, 18 May 2010 09:05:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.951
X-Spam-Level: 
X-Spam-Status: No, score=0.951 tagged_above=-999 required=5 tests=[BAYES_50=0.001, HELO_EQ_DE=0.35, J_CHICKENPOX_33=0.6]
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 Ys-BQ0KZOna3 for <core@core3.amsl.com>; Tue, 18 May 2010 09:05:29 -0700 (PDT)
Received: from mail-out1.informatik.tu-muenchen.de (mail-out1.informatik.tu-muenchen.de [131.159.0.8]) by core3.amsl.com (Postfix) with ESMTP id 084783A688E for <core@ietf.org>; Tue, 18 May 2010 09:04:37 -0700 (PDT)
Received: from [172.30.2.214] (p54A31CE4.dip0.t-ipconnect.de [84.163.28.228]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.in.tum.de (Postfix) with ESMTP id 7C5D4DBA3 for <core@ietf.org>; Tue, 18 May 2010 18:04:27 +0200 (CEST)
Message-ID: <4BF2BA8A.5020208@in.tum.de>
Date: Tue, 18 May 2010 18:04:26 +0200
From: Andreas Scholz <scholza@in.tum.de>
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
MIME-Version: 1.0
To: core@ietf.org
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de>	<2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry>	<006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de>	<041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org> <007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de>
In-Reply-To: <007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
X-Virus-Scanned: ClamAV using ClamSMTP
Subject: Re: [core] Core UDP vs TCP : Redux
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: Tue, 18 May 2010 16:05:31 -0000

I think Guido points out an important aspect: a resource constraint network will have to transmit and process data with fairly different characteristics

A typical way to develop an automation application is to connect services (or function blocks, etc) together to a larger application. The data exchanged between these blocks will have different characteristics. 
Assume we have a automation application with the following structure:

Process Sensor
   |           
 Logic ---- Actuator
   |
Switch


The switch will require a reliable message transport (assuming e.g. a power off functionality). Assume the process sensor produces data frequently, in this case no reliability is required because some lost packets are tolerable. The connection between the Logic and the Actuator might require reliability again. Another aspect is security. Some of those links might require secure communications, others not.

One possibility to solve these different requirements is to embed the specification of such requirements into the subscription mechanism. 
Based on these requirements different protocol bindings could be selected by COAP. If a node supports TCP and the user wants reliability, TCP is selected. If the node does not support TCP some kind of reliable UDP is selected. If no reliability is needed COAP selects pure UDP.

To support such heterogeneous scenarios, COAP might not only need the flexibility to support different bindings, but might even need the flexibility to select different bindings for individual parts of the application (unless we want to (re-)implement each of these features in or on top of the application protocol)

Coming back to the latest posts regarding security aspects: An end-to-end encryption could be one of the situations where you want to choose a specific protocol binding (e.g. SOAP + Web Service security standards, just to name a protocol suite that would support this kind of interaction).



Guido Moritz schrieb:
>> It may also be hard to meet this objective while inserting a subprotocol
>>     
> as complex as SOAP into the stack.
> I just went through the current COAP I-D and it is already quite complex! It
> includes many mechanisms and concepts which are also included in SOAP and
> other W3C/OASIS Web services specifications that I am familiar in due to my
> background in DPWS. 
>
> Nevertheless, let's leave the discussion around SOAP, because there seems to
> be many misunderstandings related to SOAP and what I wanted to point at.
> What I wanted to say is (and that is my still my opinion after reading
> current COAP I-D): there is no reason to bind COAP to UDP or TCP exclusively
> or exclude one of them. COAP seems to describe many mechanisms for
> interaction with resources, eventing and discovery mechanisms, mechanisms to
> avoid duplicated message processing etc. But all these mechanisms do not
> depend on the transport layer. Why should a node not support interactions by
> using TCP or UDP at the same time for the same resource. Of course, not the
> highly resource constrained one, but we are heading towards heterogeneous
> device infrastructures where resource richer devices in the same network
> might be possible as well.
>
> Take the ideas or throw them away. But these are major decisions concerning
> applicability of the resulting COAP. What made HTTP and REST in the WWW such
> a success was that it is possible to run it over all kinds of technologies
> and not to restrict it to specific message sizes. Let's say there is a cool
> new wireless technology IEEE 802.15.XY which is capable of running 6LoWPAN
> but with double of the frame size and data rate at same energy costs. Will
> there be the next COAPXY for this new link layer because suddenly there is
> double the bandwidth available?
>
> Again,
> Just my two cents ;)
> Guido
>
>   
>> -----Ursprüngliche Nachricht-----
>> Von: Carsten Bormann [mailto:cabo@tzi.org]
>> Gesendet: Montag, 17. Mai 2010 16:24
>> An: Guido Moritz
>> Cc: core@ietf.org
>> Betreff: Re: [core] Core UDP vs TCP : Redux
>>
>> On May 17, 2010, at 15:58, Guido Moritz wrote:
>>
>>     
>>> I just wanted to ask
>>> if it is reasonable to bind the CORE protocol to UDP,TCP or whatever or
>>>       
> if
>   
>>> it is possible to leave this open and design CORE extensible and
>>>       
> flexible
>   
>>> enough.
>>>       
>> It may be hard to meet the working group's objective of addressing
>>     
> constrained
>   
>> node/networks while leaving the underlying protocol(s) open.  It may also
>>     
> be
>   
>> hard to meet this objective while inserting a subprotocol as complex as
>>     
> SOAP
>   
>> into the stack.
>>
>> Gruesse, Carsten
>>     
>
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>   

-- 
Andreas Scholz               Lehrstuhl Informatik III
Tel. +49 89 289-17292        TU München, Zimmer 02.11.037 FMI
andreas.scholz@in.tum.de     Boltzmannstr. 3, 85748 Garching


From richard.kelsey@ember.com  Tue May 18 09:08:07 2010
Return-Path: <richard.kelsey@ember.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 C0DEE28C10B for <core@core3.amsl.com>; Tue, 18 May 2010 09:08:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.12
X-Spam-Level: 
X-Spam-Status: No, score=-0.12 tagged_above=-999 required=5 tests=[AWL=-1.010,  BAYES_05=-1.11, J_BACKHAIR_33=1, J_BACKHAIR_44=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 nAdhDwV5virH for <core@core3.amsl.com>; Tue, 18 May 2010 09:08:07 -0700 (PDT)
Received: from EMPIRE.hq.ember.com (mail.ember.com [74.10.175.227]) by core3.amsl.com (Postfix) with ESMTP id 7F42F3A6C3B for <core@ietf.org>; Tue, 18 May 2010 09:07:20 -0700 (PDT)
Received: from kelsey-ws.hq.ember.com ([192.168.81.37]) by EMPIRE.hq.ember.com with Microsoft SMTPSVC(6.0.3790.4675);  Tue, 18 May 2010 12:10:38 -0400
Date: Tue, 18 May 2010 12:06:44 -0400
Message-Id: <87ocgdyz1n.fsf@kelsey-ws.hq.ember.com>
To: "Stuber, Michael" <Michael.Stuber@itron.com>
In-reply-to: <05C6A38D732F1144A8C4016BA4416BFE02D5A646@SPO-EXVS-02.itron.com> (Michael.Stuber@itron.com)
From: Richard Kelsey <richard.kelsey@ember.com>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org>	<007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de>	<E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local>	<3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org>	<002101caf663$1c251d30$546f5790$@moritz@uni-rostock.de>	<C6471264338047459F18230B4F871DA0098F0529@csomb01.corp.atmel.com><F4BFBB68-0891-4F84-9CFA-E10F0C2921DB@tzi.org><4BF2A0FA.9050909@gridmerge.com><7312D5B8-CB41-451B-ADD6-D7AD17BD2747@tzi.org> <A61BB3A241E6E64D86C58237F6DC1A18026F5FA5@ALPMLVEM04 .e2k.ad. ge.com> <05C6A38D732F1144A8C4016BA4416BFE02D5A646@SPO-EXVS-02.itron.com>
X-OriginalArrivalTime: 18 May 2010 16:10:38.0912 (UTC) FILETIME=[A81E7C00:01CAF6A4]
Cc: core@ietf.org
Subject: Re: [core] CoAP-to-HTTP and Security (was RE: Core UDP vs TCP :	Redux)
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: Tue, 18 May 2010 16:08:07 -0000

> Date: Tue, 18 May 2010 08:27:35 -0700
> From: "Stuber, Michael" <Michael.Stuber@itron.com>
> 
> If we have a deployment model in which two protocols are used, for
> example CoAP with a HAN, and HTTP back to a central server, it seems we
> have two obvious choices:
> 	(1) [...]
>
> 	(2)	Accept a break a in the end-to-end security model at the
> translation node.  The message is secured between the HAN and the
> translator, and the translator and the central server, but temporarily
> exposed within the translator itself as the contents are transformed
> from one protocol to another.

The exposure can be minimized by putting the translator on
the central server.  This gives you machine-to-machine
end-to-end security.  The translator can take care of
CORE<->HTTP (and possibly EXI<->XML), allowing the rest of
the central server to remain blissfully ignorant of anything
smaller than a PC or slower than 100Mb ethernet.

                                     -Richard Kelsey

From cabo@tzi.org  Tue May 18 09:36:16 2010
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 75E9B28C14E for <core@core3.amsl.com>; Tue, 18 May 2010 09:36:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.815
X-Spam-Level: 
X-Spam-Status: No, score=-4.815 tagged_above=-999 required=5 tests=[AWL=-0.055, BAYES_05=-1.11, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-4]
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 VlD0S6wkz2AM for <core@core3.amsl.com>; Tue, 18 May 2010 09:36:15 -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 E3EED28C1E5 for <core@ietf.org>; Tue, 18 May 2010 09:30:48 -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 o4IGUWlt015600 for <core@ietf.org>; Tue, 18 May 2010 18:30:32 +0200 (CEST)
Received: from [192.168.217.101] (p5489A815.dip.t-dialin.net [84.137.168.21]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by smtp-fb3.informatik.uni-bremen.de (Postfix) with ESMTP id D1961DB88;  Tue, 18 May 2010 18:30:31 +0200 (CEST)
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: text/plain; charset=us-ascii
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <05C6A38D732F1144A8C4016BA4416BFE02D5A646@SPO-EXVS-02.itron.com>
Date: Tue, 18 May 2010 18:30:30 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <56A5C17D-2637-4C9B-919E-A7575683085D@tzi.org>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org>	<007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de>	<E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local>	<3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org>	<002101caf663$1c251d30$546f5790$@moritz@uni-rostock.de>	<C6471264338047459F18230B4F871DA0098F0529@csomb01.corp.atmel.com><F4BFBB68-0891-4F84-9CFA-E10F0C2921DB@tzi.org><4BF2A0FA.9050909@gridmerge.com><7312D5B8-CB41-451B-ADD6-D7AD17BD2747@tzi.org> <A61BB3A241E6E64D86C58237F6DC1A18026F5FA5@ALPMLVEM04 .e2k.ad. ge.com> <05C6A38D732F1144A8C4016BA4416BFE02D5A646@SPO-EXVS-02.itron.com>
To: core <core@ietf.org>
X-Mailer: Apple Mail (2.1078)
Subject: Re: [core] CoAP-to-HTTP and Security (was RE: Core UDP vs TCP : Redux)
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: Tue, 18 May 2010 16:36:16 -0000

On May 18, 2010, at 17:27, Stuber, Michael wrote:

> 	(2)	Accept a break a in the end-to-end security model at the
> translation node.  The message is secured between the HAN and the
> translator, and the translator and the central server, but temporarily
> exposed within the translator itself as the contents are transformed
> from one protocol to another.

One interesting aspect here is the trust model.
E.g., the meter may trust the utility server, and the meter may trust =
(maybe with a different trust model) the washing machine, but there =
needn't be a trust relationship between the washing machine and the =
utility server.  This would already make the meter a natural point to =
terminate (and proxy between) two separate security associations. =20

Of course, not every case where you would want to locate a proxy may be =
so lucky.
(But I think it is very useful to discuss architecture in specific =
terms, not in generalizations that may or may not be relevant.)

Gruesse, Carsten


From charles.palmer@onzo.com  Tue May 18 13:50:33 2010
Return-Path: <charles.palmer@onzo.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 EE2E428C229 for <core@core3.amsl.com>; Tue, 18 May 2010 13:50:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.271
X-Spam-Level: 
X-Spam-Status: No, score=0.271 tagged_above=-999 required=5 tests=[AWL=1.270,  BAYES_50=0.001, 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 3aG6Z36tm7z7 for <core@core3.amsl.com>; Tue, 18 May 2010 13:50:31 -0700 (PDT)
Received: from service38.mimecast.com (service38.mimecast.com [212.2.3.166]) by core3.amsl.com (Postfix) with SMTP id D121728C1FD for <core@ietf.org>; Tue, 18 May 2010 13:47:39 -0700 (PDT)
Received: from onzosbs2k3.ONZO.local (217.138.5.2 [217.138.5.2]) by service38.mimecast.com; Tue, 18 May 2010 21:47:30 +0100
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Date: Tue, 18 May 2010 21:45:54 +0100
Message-ID: <E4DBD8AB11D2E54F89B23D7CD1065D8C01055F6D@onzosbs2k3.ONZO.local>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [core] CoAP-to-HTTP and Security (was RE: Core UDP vs TCP :Redux)
Thread-Index: Acr2qDs/dq8Uims+Sh2e7x2mu+QpFQAHIdCw
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org>	<007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de>	<E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local>	<3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org>	<002101caf663$1c251d30$546f5790$@moritz@uni-rostock.de>	<C6471264338047459F18230B4F871DA0098F0529@csomb01.corp.atmel.com><F4BFBB68-0891-4F84-9CFA-E10F0C2921DB@tzi.org><4BF2A0FA.9050909@gridmerge.com><7312D5B8-CB41-451B-ADD6-D7AD17BD2747@tzi.org><A61BB3A241E6E64D86C58237F6DC1A18026F5FA5@ALPMLVEM04. e2k.ad. ge.com><05C6 A38D732F1144A8C4016BA4416BFE02D5A646@SPO-EXVS-02.itron.com> <56A5C17D-2637-4C9B-919E-A7575683085D@tzi.org>
From: "Charles Palmer" <charles.palmer@onzo.com>
To: "core" <core@ietf.org>
X-MC-Unique: 110051821473000802
Content-Type: text/plain; charset=WINDOWS-1252
Content-Transfer-Encoding: quoted-printable
Subject: Re: [core] CoAP-to-HTTP and Security (was RE: Core UDP vs TCP :Redux)
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: Tue, 18 May 2010 20:50:33 -0000

Dear all

My project (http://projecthydra.info/) is exploring the use of secure
micros and smart card technology to provide tamper resistant hardware in
(for example) smart meter applications and to allow secure, dynamic
deployment of multiple applications ("value-added services" - such as
telecare) onto (say) smart meters.

The smart card industry have solved problems that are being discussed
here and elsewhere, including how to provide separate (robust) security
domains (one for each application) within a single resource constrained
micro, how to provide (robust) end-to-end secure communications channels
from one application to its off-card server through an un-trusted comms
infrastructure, and how to do secure software deployments/updates,
including updates where the application owner need not trust the card
owner.

GlobalPlatform is a key technology.

To address the last point in this thread: GlobalPlatform assumes maximum
paranoia and requires almost no trust. I would submit that in
application spaces where billions of dollars are being transferred that
is the right attitude.

We are currently playing with ideas such as:

1 How to extend a smart card architecture (normally a host-card
interface with a request initiated by a terminal and response provided
by the smart card) to an architecture where the smart card also has to
communicate with "devices" (smart meters, health-care devices).

2 How to map the GlobalPlatform capabilities onto CoRE or ZigBee SE2.0
application specifications.

We'd be very interested in exploring these areas with CoRE participants,
within this list or outside.

Regards - Charles Palmer=20

-----Original Message-----
From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of
Carsten Bormann
Sent: 18 May 2010 17:31
To: core
Subject: Re: [core] CoAP-to-HTTP and Security (was RE: Core UDP vs TCP
:Redux)

On May 18, 2010, at 17:27, Stuber, Michael wrote:

> =09(2)=09Accept a break a in the end-to-end security model at the
> translation node.  The message is secured between the HAN and the
> translator, and the translator and the central server, but temporarily
> exposed within the translator itself as the contents are transformed
> from one protocol to another.

One interesting aspect here is the trust model.
E.g., the meter may trust the utility server, and the meter may trust
(maybe with a different trust model) the washing machine, but there
needn't be a trust relationship between the washing machine and the
utility server.  This would already make the meter a natural point to
terminate (and proxy between) two separate security associations. =20

Of course, not every case where you would want to locate a proxy may be
so lucky.
(But I think it is very useful to discuss architecture in specific
terms, not in generalizations that may or may not be relevant.)

Gruesse, Carsten

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

--------------------------------
Onzo is a limited company number 06097997 registered in England & Wales. Th=
e   =20
registered office is 6 Great Newport Street, London, WC2H 7JB, United Kingd=
om.

This email message may contain confidential and/or privileged information, =
and
is intended solely for the addressee(s). If you have received this email in=
    =20
error, please notify Onzo immediately. Unauthorised copying, disclosure or=
=20
distribution of the material in this email is forbidden.
--------------------------------


From yoshihiro.ohba@toshiba.co.jp  Tue May 18 21:07:15 2010
Return-Path: <yoshihiro.ohba@toshiba.co.jp>
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 2A3BF3A6901 for <core@core3.amsl.com>; Tue, 18 May 2010 21:07:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.23
X-Spam-Level: 
X-Spam-Status: No, score=-2.23 tagged_above=-999 required=5 tests=[BAYES_20=-0.74, HELO_EQ_JP=1.244, HOST_EQ_JP=1.265, RCVD_IN_DNSWL_MED=-4, UNPARSEABLE_RELAY=0.001]
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 Y4pSBai8Tc7T for <core@core3.amsl.com>; Tue, 18 May 2010 21:07:13 -0700 (PDT)
Received: from imx2.toshiba.co.jp (inet-tsb5.toshiba.co.jp [202.33.96.24]) by core3.amsl.com (Postfix) with ESMTP id B505E3A68BF for <core@ietf.org>; Tue, 18 May 2010 21:07:13 -0700 (PDT)
Received: from arc1.toshiba.co.jp ([133.199.194.235]) by imx2.toshiba.co.jp  with ESMTP id o4J474ru019253; Wed, 19 May 2010 13:07:04 +0900 (JST)
Received: (from root@localhost) by arc1.toshiba.co.jp  id o4J474E3005745; Wed, 19 May 2010 13:07:04 +0900 (JST)
Received: from unknown [133.199.192.144]  by arc1.toshiba.co.jp with ESMTP id PAA05743; Wed, 19 May 2010 13:07:04 +0900
Received: from mx2.toshiba.co.jp (localhost [127.0.0.1]) by ovp2.toshiba.co.jp  with ESMTP id o4J473wt024738; Wed, 19 May 2010 13:07:04 +0900 (JST)
Received: from tsbpoa.po.toshiba.co.jp by toshiba.co.jp id o4J46HGu023784; Wed, 19 May 2010 13:07:01 +0900 (JST)
Received: from [133.196.17.73] by mail.po.toshiba.co.jp (Sun Java System Messaging Server 6.1 HotFix 0.05 (built Oct 21 2004)) with ESMTPA id <0L2N00LUIFFHDNC0@mail.po.toshiba.co.jp>; Wed, 19 May 2010 13:06:53 +0900 (JST)
Date: Wed, 19 May 2010 13:06:51 +0900
From: Yoshihiro Ohba <yoshihiro.ohba@toshiba.co.jp>
In-reply-to: <56A5C17D-2637-4C9B-919E-A7575683085D@tzi.org>
To: Carsten Bormann <cabo@tzi.org>
Message-id: <4BF363DB.9010705@toshiba.co.jp>
MIME-version: 1.0
Content-type: text/plain; charset=ISO-8859-1; format=flowed
Content-transfer-encoding: 7bit
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com> <002b01caf58d$a3b0d770$eb128650$%moritz@uni-rostock.de> <2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry> <006901caf5c8$f9431d70$ebc95850$%moritz@uni-rostock.de> <041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org> <007c01caf5d3$30f026f0$92d074d0$%moritz@uni-rostock.de> <E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local> <3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org> <002101caf663$1c251d30$546f5790$%moritz@uni-rostock.de> <C6471264338047459F18230B4F871DA0098F0529@csomb01.corp.atmel.com> <F4BFBB68-0891-4F84-9CFA-E10F0C2921DB@tzi.org> <4BF2A0FA.9050909@gridmerge.com> <7312D5B8-CB41-451B-ADD6-D7AD17BD2747@tzi.org> <A61BB3A241E6E64D86C58237F6DC1A18026F5FA5@ALPMLVEM04.e2k.ad.ge.com> <05C6A38D732F1144A8C4016BA4416BFE02D5A646@SPO-EXVS-02.itron.com> <56A5C17D-2637-4C9B-919E-A7575683085D@tzi.org>
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
Cc: core <core@ietf.org>
Subject: Re: [core] CoAP-to-HTTP and Security (was RE: Core UDP vs TCP :	Redux)
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, 19 May 2010 04:07:15 -0000

What about if there is a relay or proxy between the meter and the 
central server?  For example, ANSI C12.22 provides end-to-end data 
encryption.  Of course security requirements depend on the trust 
model.  Question: what is trust model of CORE?

Thanks,
Yoshihiro Ohba


Carsten Bormann wrote:
> On May 18, 2010, at 17:27, Stuber, Michael wrote:
> 
>> 	(2)	Accept a break a in the end-to-end security model at the
>> translation node.  The message is secured between the HAN and the
>> translator, and the translator and the central server, but temporarily
>> exposed within the translator itself as the contents are transformed
>> from one protocol to another.
> 
> One interesting aspect here is the trust model.
> E.g., the meter may trust the utility server, and the meter may trust (maybe with a different trust model) the washing machine, but there needn't be a trust relationship between the washing machine and the utility server.  This would already make the meter a natural point to terminate (and proxy between) two separate security associations.  
> 
> Of course, not every case where you would want to locate a proxy may be so lucky.
> (But I think it is very useful to discuss architecture in specific terms, not in generalizations that may or may not be relevant.)
> 
> Gruesse, Carsten
> 
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
> 


From zach@sensinode.com  Mon May 24 06:46:17 2010
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 868323A6BFA for <core@core3.amsl.com>; Mon, 24 May 2010 06:46:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.99
X-Spam-Level: 
X-Spam-Status: No, score=-1.99 tagged_above=-999 required=5 tests=[AWL=-0.990,  BAYES_50=0.001, 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 sE7Lb87wM0e4 for <core@core3.amsl.com>; Mon, 24 May 2010 06:46:15 -0700 (PDT)
Received: from auth-smtp.nebula.fi (auth-smtp.nebula.fi [217.30.180.105]) by core3.amsl.com (Postfix) with ESMTP id C6DE33A6A45 for <core@ietf.org>; Mon, 24 May 2010 06:46:14 -0700 (PDT)
Received: from [10.10.100.182] ([84.239.254.208]) (authenticated bits=0) by auth-smtp.nebula.fi (8.13.4/8.13.4) with ESMTP id o4ODjugo001178 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Mon, 24 May 2010 16:45:57 +0300
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: text/plain; charset=us-ascii
From: Zach Shelby <zach@sensinode.com>
In-Reply-To: <AANLkTimzwXnCZZFBGNkL4I9UqzUMC-cW6XwewRR8Fl1Y@mail.gmail.com>
Date: Mon, 24 May 2010 16:45:58 +0300
Content-Transfer-Encoding: quoted-printable
Message-Id: <7ACD74E5-787D-47A4-82BF-5A640396D546@sensinode.com>
References: <3BB5F67A-9E57-4F81-B7C5-ABB1E136DAAC@tzi.org> <AANLkTimYZLQyvG3Xn9BXqjiiIxuqe-43c0fveOF-bNSm@mail.gmail.com> <568AEFD6-974D-4790-A2F8-84305B990BA9@cisco.com> <AANLkTimzwXnCZZFBGNkL4I9UqzUMC-cW6XwewRR8Fl1Y@mail.gmail.com>
To: "Angelo P. Castellani" <angelo@castellani.net>
X-Mailer: Apple Mail (2.1078)
Cc: core <core@ietf.org>
Subject: Re: [core] Selecting a WG document for CoAP
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: Mon, 24 May 2010 13:46:17 -0000

Angelo,

Thanks for the technical comments, now I better understand what you have =
in mind.=20

On May 14, 2010, at 11:50 AM, Angelo P. Castellani wrote:

> Cullen,
>=20
> thanks for the excellent understanding of my doubts.
>=20
> Point (a) is exactly about the very initial design approach to define
> a new realization of REST (e.g.: CRUD methods were defined instead of
> standard HTTP methods) instead of a feature-limited adaptation of HTTP
> itself to constrained host/network environments.
>=20
> There was even discussion on defining mapping of various protocols to
> CoAP without clear focus on HTTP translation.

HTTP translation is not the only goal of the WG. CoAP should work on its =
own, and CoAP may very well be proxied with many protocols. However the =
WG does have the requirement of defining an HTTP mapping for CoAP. We of =
course want to make that as painless as possible! But it doesn't mean =
that CoAP is HTTP.=20

> Doubts were raised that CoAP may be following the "reinvent HTTP"
> road, killing itself just as WAP did. Discussion on URI-Code/BinaryURI
> (as detailed in the Transparent proxying CoAP mail) is just the tip of
> the iceberg.
>=20
> Draft -01 has made some valid enhancements on this topic (see HTTP
> methods), however the whole document subtly imply this design
> objective throughout.

Thanks. You mean GET, POST, PUT, DELETE? Sure, that makes an HTTP =
mapping easier to understand. Otherwise I don't find coap-01 very =
difficult to map to HTTP. Sure, Subscribe/Notify takes some effort, but =
that even can't be mapped HTTP-HTTP today as there is no standard way to =
do it ;-)=20

> In my humble opinion the direction that can be followed is: If
> HTTP/TCP is not viable on CoRE, we should find a way to adapt it to
> this environment.

This was discussed at length during chartering, and we decided not to do =
this. HTTP/TCP is a perfectly good solution on some kinds of devices and =
networks, and it should be used as is there. CoRE is aiming at a special =
class of constrained devices and networks.=20

>=20
> Design philosophy: CoAP should be a *stateless* HTTP-translation and
> we should start by understanding how we can compress HTTP preserving
> its core principles to be *stateless*, providing an *uniform*
> interface to access *diverse* content organized in a *hierarchical*
> fashion, it should be easily *cacheable* and *translatable*.

All these things are already in our CoAP design philosophy - we are =
making a RESTful protocol. However we are not compressing HTTP, or just =
doing an HTTP translation. We are designing a RESTful protocol, which =
*can* be mapped to HTTP.=20

Now apart from philosophy here, we are technically already very =
close.... =20

> Being pratical:
> -* uniformity leads to only request and response (no notify, no other
> message types, REST should be only REQ/RES)

Uniformity of what? Notify actually gives a uniform way of notifying =
about a resource, and conceptually it does belong as a message. It is =
clearly not Req/Res, please see the original list exchange started by =
Robert Cragie. That is where we decided to make it a message instead of =
a Method.

> -* hierarchy leads to URI and BinaryURI as in the transparent proxying
> discussion (no flat codes like URI-Code)

URI-Code is just something we started with, I am open to any scheme. =
Already your Sum Modulo-255 is being discussed, below it seems you are =
suggesting a different one. =20

> -* stateless, translation, cacheability lead to URI->BinaryURI as a
> stateless mapping (avoid stateful tables)

Yep, you have a point there.=20

>=20
> -* stateless and diversity suggest that content should be always fully
> described Content-Lenght (req), Content-Type (req) and
> Content-Enconding should be supported

Um, wrong. Content-Length and Content-Type are not always needed. We =
already discussed on the list that we can do without Content-Encoding.=20=


>=20
> -* cacheable flag should be included always (not an option)
>=20
> -* stateless server and stateful resources? cookies are required (lets
> use binary cookies)

I need some more convincing here that we really need cookies. What is =
the use case?

> Other considerations, important in my opinion, on the realization of
> the protocol (more technical here):
>=20
> -* translation and compression should focus on the URI
>=20
>   a) It should be always present and not an option

Why? If your URL is / then there is no reason to necessarily include it.=20=


>=20
>   b) Using a flag we should understand whether we are using URI or the
> lossy BinaryURI encoding

Possible, basically combining two options into one.=20

>=20
>   c) URI is ASCII-7 and is usually formed by chars, numbers and a few
> others? I propose to investigate compressed loss-less encodings. Now I
> can think at least two different encodings:
>       i) Represent the / (supposed to be most frequent char in URI)
> using the left-most unused bit in the octet
>       ii) Represent most frequent chars (regex format: [0-9a-zA-Z/])
> using 6 bit encoding, use a NULL (\x00) octet to signal that an
> uncompressed char is following. Every 3 compressed chars we have 6
> unused bits that can map another char (0.75 ratio in the best case,
> other cases to be evaluated).
>        Maybe some predefined vocabularies can be agreed, and the used
> vocabulary chosen in a preceding field (vocabulary 2 example:
> [a-zA-Z%+._/\|=3D&?-])

Sure, such an encoding could be used for all URIs, at least 7-bit ASCII =
encoding would be easy and already now we are leaving out the / in =
coap-01. This is a different issue to the Binary URI encoding.

>=20
> -* option translation issues (addressing complex implementation),
> general rule avoid variable length options (harder to handle):

We can avoid most variable length options at cost to flexibility, sure. =
URIs are an exception obviously.=20

>  a) Messages with Payload should always carry Content-Length and
> Content-Type before the payload

I am not buying that. Content-Length is only needed when packing =
multiple messages in a UDP payload or over a stream. In many =
applications you don't explicitly need the Content-Type (and mapping =
from HTTP you might not always get it).

>  b) Define which are the well-known request and response options we
> want to support, without merging them (it seems not a good choice
> because many are response specific only, and many other request
> specific only).
>      Well-known options present in the message should be represented
> in a binary bitmask (like in 6LoWPAN HC) and carried in-line
> (fixed-length is an important requirement, however variable length can
> be handled if cannot be avoided)
>     When similar options are available may be beneficial to prefer
> the simplest and easiest to compress (fixed-length).
>     Example: Last-Modified should be preferred to Etag, (1) it can be
> represented as an unsigned integer, (2) with a binary flag
> representing "Now" its insertion can be delegated to the HTTP
> translating entity, (3) supports conditional GET.

This we can discuss. The working group is going to have to find a =
balance between flexibility in options and efficiency/complexity. I =
originally proposed (coap-req-01) having a totally fixed header with no =
options, but the WG clearly wanted options. You can't have your cake and =
eat it too.

>=20
>  c) Other options compressed with the URI style encoding (better
> vocabulary here is [a-zA-Z%+._/\|=3D&?-])
>=20
>=20
> I'm quite confident that the final compression ratio is good and, if
> properly investigated, it should retain the ability to do CoAP->HTTP
> translation too (Host option required).

There are all really optimizations, which I am confident we will work =
through as a WG. I am also sure we can still simplify and improve coap!=20=


>=20
> Moreover using CoAP realized like this leads to an easier
> straightforward C implementation, mainly thanks to many specific
> details especially bitmasks, fixed-length options, bitwise operations.
>=20
> I hope I was able to give an idea of my thinking on these issues. A
> more exhaustive and detailed list of the issues is not easy to provide
> by e-mail, but I will be happy to draft a document with more details
> if this is considered as an useful contribution to this discussion.

All discussion and input are useful here. In the future it might be =
easier to split this up into smaller subject threads rather than a large =
list of issues all at once.=20

Thanks,
Zach

>=20
> Best,
> Angelo
>=20
> On Thu, May 13, 2010 at 16:57, Cullen Jennings <fluffy@cisco.com> =
wrote:
>>=20
>> Angelo,
>>=20
>> I may be reading too much in between the lines here, but I think you =
are raising the overall design question of should we use some form of =
compressed HTTP, where we preserver the semantics of HTTP but encode it =
differently, or should we develop a protocol with a subset of the =
semantics of HTTP. Perhaps I have this all wrong and you are not raising =
that. Could you outline some proposed solutions to your a,b,c problems =
below and perhaps say a bit more about what the problem is. Once I =
understood a bit more about how you would propose to design the protocol =
to mitigate these problems, I think that would help everyone make =
informed choices.
>>=20
>> Thanks, Cullen
>>=20
>> Few more questions inline ....
>>=20
>> On May 13, 2010, at 5:24 AM, Angelo P. Castellani wrote:
>>=20
>>> Dear C. Bormann, all,
>>>=20
>>> before deciding for the final direction, I've the following
>>> observations about draft-shelby-core-coap-01
>>>=20
>>> While I mostly share Zach's view of the protocol approach, and
>>> appreciate many aspects of the proposal, there are in my opinion =
still
>>> some open issues that need to be at least discussed before the =
current
>>> document can be selected.
>>>=20
>>> In particular, I would like to highlight the following:
>>>=20
>>> a) As it is now, it is not possible to have a straightforward
>>> translation of HTTP -> CoAP and viceversa: see
>>> http://www.ietf.org/mail-archive/web/core/current/msg00133.html =
(this
>>> impacts the scalability of the web service model too)
>>=20
>> On the topic of how to encode the URI. I think that needs discussion =
but could easily happen (and would happen) even if the COAP document was =
adopted as a WG item now.
>>=20
>>>=20
>>> b) Moreover, CoAP's implementation is not as simple as it should be.
>>> I've investigated the implementation and some design choices (as
>>> Options) are leading to very high program complexity (ROM) on a
>>> MSP430-based device.
>>=20
>> Can you say more - particularly about proposals to fix it?
>>=20
>>>=20
>>> c) Finally when comparing HTTP message size with CoAP message size,
>>> the resulting compression isn't as good as you may expect.
>>>=20
>>> Example:
>>> HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
>>> CoAP: 24 B with options parsing procedure requiring an added
>>> implementation complexity
>>>=20
>>> Addressing all these points potentially leads to major technical
>>> modifications (especially point a) on the current draft, hence it is
>>> appropriate in my opinion to discuss these points before making the
>>> final decision.
>>>=20
>>> Best regards,
>>>=20
>>> Angelo P. Castellani
>>>=20
>>>=20
>>> On Mon, May 10, 2010 at 18:51, Carsten Bormann <cabo@tzi.org> wrote:
>>>> The CORE WG has a milestone to select a WG document for CoAP in =
April:
>>>>=20
>>>> http://datatracker.ietf.org/wg/core/charter/
>>>> ...
>>>> Apr 2010        Select WG document for basis of the CoAP protocol
>>>>=20
>>>> Of the various documents that have been contributed, =
draft-shelby-core-coap has significant discussion, as well as the =
largest number of updates (including a previous version that was still =
called -6lowapp-coap).
>>>>=20
>>>> Today, another updated version of that draft was announced.  See
>>>> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
>>>> for the announcement and
>>>> http://tools.ietf.org/html/draft-shelby-core-coap-01
>>>> for the draft itself.
>>>>=20
>>>> However, as the authors say, there are still significant TODOs.
>>>>=20
>>>> Are we in a state yet where we can say whether this is the right =
direction for the WG to take?
>>>> If yes, is it the right direction?  Should we adopt it as a WG =
document?
>>>> If you don't think we can say yet, is there a set of technical =
decisions you would like the authors to take with priority?
>>>>=20
>>>> Note that once a document has become a WG document, the authors act =
as editors for the working group, making (and usually fleshing out the =
details of) any change that the WG decides it needs.
>>>> If you think we can still improve the draft, this is not an =
obstacle to making it a WG document.
>>>> But of course we shouldn't do that if we intend to reverse its =
fundamental technical direction.
>>>>=20
>>>> In order to stay roughly in sync with our milestones, we should =
reach at a decision on how to go forward this week.
>>>>=20
>>>> Gruesse, Carsten
>>>>=20
>>>> _______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>>>=20
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>=20
>>=20
>> Cullen Jennings
>> For corporate legal information go to:
>> http://www.cisco.com/web/about/doing_business/legal/cri/index.html
>>=20
>>=20
>>=20
>>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core

--=20
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


From zach@sensinode.com  Mon May 24 15:34:14 2010
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 9577D3A6D28 for <core@core3.amsl.com>; Mon, 24 May 2010 15:34:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.67
X-Spam-Level: 
X-Spam-Status: No, score=0.67 tagged_above=-999 required=5 tests=[BAYES_50=0.001, DATE_IN_PAST_06_12=1.069, J_CHICKENPOX_32=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 RvO8F5vxxq1L for <core@core3.amsl.com>; Mon, 24 May 2010 15:34:13 -0700 (PDT)
Received: from auth-smtp.nebula.fi (auth-smtp.nebula.fi [217.30.180.105]) by core3.amsl.com (Postfix) with ESMTP id B04743A6CFB for <core@ietf.org>; Mon, 24 May 2010 15:34:11 -0700 (PDT)
Received: from [192.168.13.99] (154.Red-88-1-185.dynamicIP.rima-tde.net [88.1.185.154]) (authenticated bits=0) by auth-smtp.nebula.fi (8.13.4/8.13.4) with ESMTP id o4OMXuWM018844 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO) for <core@ietf.org>; Tue, 25 May 2010 01:34:00 +0300
Content-Type: text/plain; charset=iso-8859-1
Mime-Version: 1.0 (Apple Message framework v1078)
From: Zach Shelby <zach@sensinode.com>
In-Reply-To: <C6471264338047459F18230B4F871DA0098F0529@csomb01.corp.atmel.com>
Date: Mon, 24 May 2010 18:14:43 +0300
Content-Transfer-Encoding: quoted-printable
Message-Id: <355B1C46-98A8-4D4F-95B5-C011B2B81F92@sensinode.com>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org>	<007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de>	<E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local> <3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org> <002101caf663$1c251d30$546f5790$@moritz@uni-rostock.de> <C6471264338047459F18230B4F871DA0098F0529@csomb01.corp.atmel.com>
To: core <core@ietf.org>
X-Mailer: Apple Mail (2.1078)
Subject: Re: [core] Core UDP vs TCP : Redux
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: Mon, 24 May 2010 22:34:14 -0000

So what I heard people want here:

1. UDP as *the only* transport for simplicity and interoperability in =
the spec (as long as we don't reinvent TCP).
2. CoAP to be transport independent as a protocol, thus allowing it to =
be possibly used in other ways in the future.
3. A couple people think we might need a fragmentation feature for =
responses with a payload size over the maximum.=20
4. DTLS might have complexity problems, should not be the only option =
(Michael)
5. Some transport binding framework could be explored (Robert)

I agree with 1 and 2, and my proposal would be to remove the =
TCP-specific text and sections from the next version of CoAP. We can =
make the protocol itself independent of UDP (it really already is), =
however UDP must be specified for interoperability reasons. I propose we =
anyways keep some text saying something like=20

"Although this document specifies CoAP over UDP, the protocol may also =
be applicable over other transports such as TCP or SCTP. The =
specification of such use is out of scope of this document.=20

This would at least give us a starting point. I don't see the need for =
developing frameworks or negotiation of multiple bindings for CoAP, at =
least not now.

Regarding fragmentation, let's not jump the gun too soon here. For the =
vast majority of constrained applications the 1280 byte maximum is more =
than enough. For cases when it is not let's first see if it would make =
sense to let the application deal with it. By the way, coap-01 has a =
mistake with the 576B IPv4 maximum and 1280B IPv6 maximum. That doesn't =
work for CoAP(IPv4)-CoAP(IPv6) proxying. Instead we should set both to =
use the 1280 byte maximum.

Regarding DTLS, we are specifying how to use it with CoAP as it is a =
secure transport. I agree with Michael that DTLS may very well be too =
much for many constrained devices, so we should make it clear that this =
is not the only way to do security, IPSEC e.g. is equally applicable =
(and probably simpler) but doesn't require any specification in the =
document. A security analysis ID would be a big help for the WG.....

Zach

On May 18, 2010, at 4:23 PM, Oflynn, Colin wrote:

> > Are there dependencies to UDP or is it only because the assumed
> > infrastructure is highly constrained?
>=20
> My thoughts/feeling on the issue is that CoAP should be designed with =
a highly constrained environment, and as such being bound to UDP makes =
it a lot simpler.
>=20
> The resources which CoAP accesses SHOULD be accessible another in =
another manner; most likely this is HTTP over TCP. Even though CoAP does =
not map directly to HTTP, the requests are the same and thus I don't see =
an issue here. Nodes which are highly constrained may only support CoAP; =
larger nodes can support the full HTTP method.
>=20
> Of course the whole subscription/notify method might take some changes =
to make it accessible via HTTP... but thats another thread.
>=20
>   -Colin
>=20
>=20
> -----Original Message-----
> From: core-bounces@ietf.org on behalf of Guido Moritz
> Sent: Tue 18/05/2010 09:21
> To: core@ietf.org
> Subject: Re: [core] Core UDP vs TCP : Redux
>=20
> =46rom the CORE charter:
> >  4) The core CoAP functionality MUST operate well over UDP and UDP =
MUST
> >  be implemented on CoAP Devices. There may be OPTIONAL functions in
> >  CoAP (e.g. delivery of larger chunks of data) which if implemented =
are
> >  implemented over TCP. Applications which require the optional TCP
> >  features will limit themselves to a narrower subset of deployment
> >  cases.
>=20
> Running over TCP would narrow application scenarios? It would be more =
than
> reasonable to design COAP while keeping UDP in mind. But as long as =
there
> are no direct dependencies of COAP itself to the transport mechanisms, =
don't
> restrict it. This in contrast would extend application scenarios, =
because
> you can use COAP also if reliable transport layer is required in the
> scenario.
>=20
> Are there dependencies to UDP or is it only because the assumed
> infrastructure is highly constrained?
>=20
> Guido
>=20
> > -----Urspr=FCngliche Nachricht-----
> > Von: core-bounces@ietf.org [mailto:core-bounces@ietf.org] Im Auftrag =
von
> > Carsten Bormann
> > Gesendet: Montag, 17. Mai 2010 18:59
> > An: Charles Palmer
> > Cc: core
> > Betreff: Re: [core] Core UDP vs TCP : Redux
> >
> > On May 17, 2010, at 17:47, Charles Palmer wrote:
> >
> > > How disruptive would it be to design CoRE without reference to =
TCP/UDP,
> and
> > also design a "reliable UDP" and use this for CoRE?
> >
> > I personally think CoAP needs to work with DTLS; if the WG moves in =
that
> > direction there will be some minimum requirement for independence =
from the
> > underlying protocol.
> >
> > However, what we expect from the underlying protocol has a big =
bearing on
> CoAP
> > itself.
> > If we expect we can always move to TCP, there will be little need to =
make
> CoAP
> > operate on large representations with small underlying interactions. =
 I've
> > heard a lot of pushback on assuming the availability of TCP, so far.
> >
> > There is also the aspect of interoperability:  One of the great =
properties
> of
> > the Web is that everybody uses the same stack, so all Web clients =
and
> servers
> > are interoperable, with IP providing the necessary technological
> diversity.
> > (On the other hand, this has made it near impossible to swap in, =
say,
> SCTP.)
> > Just standardizing CoAP without an "we expect this to run on UDP, =
unless
> > otherwise specified" would not achieve the same level of =
interoperability.
> >
> > <WG chair hat>In any case, designing a reliable transport as a TCP
> replacement
> > and then a CoAP on top of either that or TCP is very much not what =
the
> charter
> > suggests we are supposed to do.</WG chair hat>
> > Instead, we should look at how stateless CoAP really can be made -- =
I
> think
> > even TFTP has too much state (and thus isn't as trivial a file =
transfer
> > protocol as it could be).
> >
> > Gruesse, Carsten
> >
> > _______________________________________________
> > core mailing list
> > core@ietf.org
> > https://www.ietf.org/mailman/listinfo/core
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>=20
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core

--=20
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


From zach@sensinode.com  Mon May 24 15:37:11 2010
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 466DC3A6B61 for <core@core3.amsl.com>; Mon, 24 May 2010 15:37:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.52
X-Spam-Level: *
X-Spam-Status: No, score=1.52 tagged_above=-999 required=5 tests=[AWL=-0.850,  BAYES_50=0.001, DATE_IN_PAST_06_12=1.069, MANGLED_TOOL=2.3, 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 hioMrUNBf7zU for <core@core3.amsl.com>; Mon, 24 May 2010 15:37:08 -0700 (PDT)
Received: from auth-smtp.nebula.fi (auth-smtp.nebula.fi [217.30.180.105]) by core3.amsl.com (Postfix) with ESMTP id 939CA3A67E5 for <core@ietf.org>; Mon, 24 May 2010 15:36:54 -0700 (PDT)
Received: from [192.168.13.99] (154.Red-88-1-185.dynamicIP.rima-tde.net [88.1.185.154]) (authenticated bits=0) by auth-smtp.nebula.fi (8.13.4/8.13.4) with ESMTP id o4OMafQL018871 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Tue, 25 May 2010 01:36:43 +0300
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: text/plain; charset=iso-8859-1
From: Zach Shelby <zach@sensinode.com>
In-Reply-To: <OF97EC852F.8A85DCEB-ONC1257726.0051887E-C1257726.005677A7@schneider-electric.com>
Date: Mon, 24 May 2010 18:49:34 +0300
Content-Transfer-Encoding: quoted-printable
Message-Id: <3602E0C6-1E2E-4164-A208-A874128325AF@sensinode.com>
References: <OF97EC852F.8A85DCEB-ONC1257726.0051887E-C1257726.005677A7@schneider-electric.com>
To: matthieu.vial@fr.non.schneider-electric.com
X-Mailer: Apple Mail (2.1078)
Cc: core <core@ietf.org>
Subject: Re: [core] Subscribe/Notify for CoAP
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: Mon, 24 May 2010 22:37:11 -0000

(thread renamed)

We have two different paths with regard to a subscribe/notify mechanism =
for CoAP:

1. Use specific Subscription and Notify mechanisms for CoAP as HTTP =
really does not include this concept.=20
1a) Notify as a message and SUBSCRIBE as a method. This is currently =
used in coap-01.=20
1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but we =
had a good list discussion about this leading to a. In practice it =
doesn't make a big difference if notification is a message or method.=20

2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0 =
proposal or GENA.=20

So far we have focused on 1 in the WG, and every now and again 2 comes =
up. At least I am not convinced that we need to suffer the drawbacks of =
HTTP here. Anyways 2 does not help our mapping to HTTP in reality very =
much as there is no standard way of doing this over HTTP. Thus a =
CoAP-HTTP proxy may end up anyways translating between multiple HTTP =
frameworks depending on the application. So instead of doing a CoAP =
Notify/Subscribe to Webhooks mapping, you will could end up having to do =
a CoAP Webhooks to HTTP GENA mapping.=20

=46rom what I have heard so far 1 still seems like a wise choice, =
although I need to look at Webhooks more deeply. In reality many =
applications specify their own way of doing a push interface using REST =
methods and specific payloads (ZigBee SE2.0 is such an example). That is =
just fine, and might be used instead of a specific CoAP notify/subscribe =
in that case. So 1 doesn't prevent the application using its own =
mechanism, it just provides a native way for doing push.

What do people think?

Zach=20

On May 17, 2010, at 6:44 PM, matthieu.vial@fr.non.schneider-electric.com =
wrote:

> Hi,
>=20
> My comments about the subscribe/notify mechanism of Zigbee IP.
>=20
> Pros:
> - Derived from the webhooks concept
> - If used by CORE it will be easier to map to HTTP because it uses =
only CRUD verbs.
> - The subscription message is extendable and could support advanced =
options (delays, increment, ...)=20
> - Only one listening port whatever the transport binding is.
>=20
> Cons:
> - No interoperability without well known URIs and a well defined =
subscription message format (Not sure CoAP draft is the right place to =
specify this).
> - XML/EXI is too complex to be the required format for the default =
subscription/notification mechanism.
> - The notification should not require a subsequent GET to retrieve the =
content.
> - Subresource subscription is redundant.
>=20
> Hope this could help,
> Matthieu
>=20
>=20
> <graycol.gif>"Charles Palmer" <charles.palmer@onzo.com>
>=20
>=20
>=20
>=20
> "Charles Palmer" <charles.palmer@onzo.com>=20
> Envoy=E9 par : core-bounces@ietf.org
> 15/05/2010 14:06
>=20
> <ecblank.gif>
> A
> <ecblank.gif>
> "core" <core@ietf.org>
> <ecblank.gif>
> cc
> <ecblank.gif>
> <ecblank.gif>
> Objet
> <ecblank.gif>
> Re: [core] Selecting a WG document for CoAP
> <ecblank.gif>	<ecblank.gif>
>=20
> Dear all
>=20
> Those interested in the subscribe/notify discussion might like to look
> at the draft Smart Energy Profile 2.0 Application Protocol
> Specification. It is available here:
> =
http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicApp
> licationProfile.aspx
>=20
> It manages subscribe/notify by using POST. This seems to remove the =
need
> for SUBSCRIBE and notify.
>=20
> "Imagine a host A, which exposes a resource at http{s}://A/resource =
and
> a second host B, which wishes to learn of changes to this resource. To
> facilitate a subscription/ notification mechanism, A would expose a
> resource http{s}://A/sub and B would expose a resource =
http{s}://B/ntfy.
> To subscribe to notifications regarding http{s}://A/resource, B would
> send a POST to the address http{s}://A/sub/B containing the URI of the
> resource of interest (http{s}://A/resource) and the URI of B's
> notification resource (http{s}://B/ntfy). Following this subscription
> step, should A wish to notify B of a change to the resource addressed =
at
> http{s}://A/resource, A would send a POST to the address
> http{s}://B/ntfy containing the URI of the resource changed
> (http{s}://A/resource) and the URI of A's subscription resource
> (http{s}://A/sub/B), should A wish to change its subscription. The =
host
> B can then query the resource (or not) at its leisure."
>=20
> Sleepy nodes are not allowed to subscribe, and must poll.
>=20
> Regards - Charles Palmer=20
>=20
> -----Original Message-----
> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of
> Angelo P. Castellani
> Sent: 14 May 2010 13:14
> To: Zach Shelby
> Cc: core
> Subject: Re: [core] Selecting a WG document for CoAP
>=20
> Zach,
>=20
> thanks for the comments, but please refer to my most recent e-mail for
> a more specific list of technical issues I'm pointing to.
>=20
> I want to do only a little integration to what I've written there.
>=20
> In my very personal opinion, to maximize adherence with the REST model
> and minimize implementation effort SUBSCRIBE and NOTIFY should be
> mapped to methods (as discussed many times together...).
>=20
> Uniform interface principle (Fielding PhD dissertation Section 5.1.5,
> "The central feature that distinguishes the REST architectural style
> [...]") states that to simplify the software architecture, resource
> interfaces/interfaces should be as general as possible.
>=20
> I agree with this principle in this specific case, mainly because
> handling a special message type for notify leads node software design
> to a more complex architecture.
>=20
> The reason is that this new message type requires special handling and
> introduces a complexity in the software modularization.
>=20
> Best,
> Angelo
>=20
> On Fri, May 14, 2010 at 13:06, Zach Shelby <zach@sensinode.com> wrote:
> > Hi Angelo,
> >
> > On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:
> >
> >> Dear C. Bormann, all,
> >>
> >> before deciding for the final direction, I've the following
> >> observations about draft-shelby-core-coap-01
> >>
> >> While I mostly share Zach's view of the protocol approach, and
> >> appreciate many aspects of the proposal, there are in my opinion
> still
> >> some open issues that need to be at least discussed before the
> current
> >> document can be selected.
> >
> > Of course there are plenty of open issues. Remember that working =
group
> documents still undertake as much change and improvement as the WG
> wants, so by no means is coap-01 set in stone. I would expect at least
> 5-10 more revisions still along the way.  Already several of your =
ideas
> have been integrated into coap-01, and several more are under
> consideration, so it is coming along. Patience ;-)
> >
> >>
> >> In particular, I would like to highlight the following:
> >>
> >> a) As it is now, it is not possible to have a straightforward
> >> translation of HTTP -> CoAP and viceversa: see
> >> http://www.ietf.org/mail-archive/web/core/current/msg00133.html =
(this
> >> impacts the scalability of the web service model too)
> >
> > In coap-01 the Method names are now identical to HTTP methods. The
> Req/Res interaction is a direct translation. The URI hierarchy is
> compatible, and the URI binary code format we are still working on
> obviously. The only thing that takes some state to translate is
> Subscribe/Notify. But note, Subscribe/Notify takes some state no =
matter
> how you do it, even with HTTP-HTTP there is no clean and easy way to
> handle subscriptions.
> >
> >>
> >> b) Moreover, CoAP's implementation is not as simple as it should =
be.
> >> I've investigated the implementation and some design choices (as
> >> Options) are leading to very high program complexity (ROM) on a
> >> MSP430-based device.
> >
> > This we can definitely improve, and already made several =
optimizations
> from -00 to -01. Here I need some very concrete proposals though. Also
> remember that many things are optional, for example subscribe/notify =
is
> not required if you don't need it.
> >
> >> c) Finally when comparing HTTP message size with CoAP message size,
> >> the resulting compression isn't as good as you may expect.
> >>
> >> Example:
> >> HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
> >> CoAP: 24 B with options parsing procedure requiring an added
> >> implementation complexity
> >
> > Right, that is not how it will work in practice. Working with a real
> HTTP server that HTTP header will be more complex, and on the CoAP =
side
> you would chose shorter URLs. The biggest improvement possible here is
> from using binary coded URLs of course. We need to look at a wider =
range
> of interactions and real HTTP headers as well to check that we are
> efficient enough.
> >
> >> Addressing all these points potentially leads to major technical
> >> modifications (especially point a) on the current draft, hence it =
is
> >> appropriate in my opinion to discuss these points before making the
> >> final decision.
> >
> > I am not sure what else you have in mind for a). If we just forget
> about Subscribe/Notify then you are good to go. But then you are also
> not fulfilling the charter or the industry needs in that respect.
> >
> > Thanks,
> > Zach
> >
> >>
> >> Best regards,
> >>
> >> Angelo P. Castellani
> >>
> >>
> >> On Mon, May 10, 2010 at 18:51, Carsten Bormann <cabo@tzi.org> =
wrote:
> >>> The CORE WG has a milestone to select a WG document for CoAP in
> April:
> >>>
> >>> http://datatracker.ietf.org/wg/core/charter/
> >>> ...
> >>> Apr 2010        Select WG document for basis of the CoAP protocol
> >>>
> >>> Of the various documents that have been contributed,
> draft-shelby-core-coap has significant discussion, as well as the
> largest number of updates (including a previous version that was still
> called -6lowapp-coap).
> >>>
> >>> Today, another updated version of that draft was announced.  See
> >>> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
> >>> for the announcement and
> >>> http://tools.ietf.org/html/draft-shelby-core-coap-01
> >>> for the draft itself.
> >>>
> >>> However, as the authors say, there are still significant TODOs.
> >>>
> >>> Are we in a state yet where we can say whether this is the right
> direction for the WG to take?
> >>> If yes, is it the right direction?  Should we adopt it as a WG
> document?
> >>> If you don't think we can say yet, is there a set of technical
> decisions you would like the authors to take with priority?
> >>>
> >>> Note that once a document has become a WG document, the authors =
act
> as editors for the working group, making (and usually fleshing out the
> details of) any change that the WG decides it needs.
> >>> If you think we can still improve the draft, this is not an =
obstacle
> to making it a WG document.
> >>> But of course we shouldn't do that if we intend to reverse its
> fundamental technical direction.
> >>>
> >>> In order to stay roughly in sync with our milestones, we should
> reach at a decision on how to go forward this week.
> >>>
> >>> Gruesse, Carsten
> >>>
> >>> _______________________________________________
> >>> core mailing list
> >>> core@ietf.org
> >>> https://www.ietf.org/mailman/listinfo/core
> >>>
> >> _______________________________________________
> >> 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
> >
> >
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>=20
> --------------------------------
> Onzo is a limited company number 06097997 registered in England & =
Wales. The   =20
> registered office is 6 Great Newport Street, London, WC2H 7JB, United =
Kingdom.
>=20
> This email message may contain confidential and/or privileged =
information, and
> is intended solely for the addressee(s). If you have received this =
email in    =20
> error, please notify Onzo immediately. Unauthorised copying, =
disclosure or=20
> distribution of the material in this email is forbidden.
> --------------------------------
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>=20
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> ______________________________________________________________________
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core

--=20
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


From paduffy@cisco.com  Mon May 24 19:48:17 2010
Return-Path: <paduffy@cisco.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 C16483A68B9 for <core@core3.amsl.com>; Mon, 24 May 2010 19:48:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.699
X-Spam-Level: 
X-Spam-Status: No, score=-5.699 tagged_above=-999 required=5 tests=[BAYES_50=0.001, MANGLED_TOOL=2.3, 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 yhyU6VUjOabY for <core@core3.amsl.com>; Mon, 24 May 2010 19:48:15 -0700 (PDT)
Received: from rtp-iport-2.cisco.com (rtp-iport-2.cisco.com [64.102.122.149]) by core3.amsl.com (Postfix) with ESMTP id 4C8F43A6846 for <core@ietf.org>; Mon, 24 May 2010 19:48:15 -0700 (PDT)
Authentication-Results: rtp-iport-2.cisco.com; dkim=neutral (message not signed) header.i=none
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AvsEAD/X+ktAZnwM/2dsb2JhbACdenGjfYFrCwGXfwKFEQQ
X-IronPort-AV: E=Sophos;i="4.53,295,1272844800"; d="scan'208";a="114448344"
Received: from rtp-core-1.cisco.com ([64.102.124.12]) by rtp-iport-2.cisco.com with ESMTP; 25 May 2010 02:48:06 +0000
Received: from [10.86.241.9] (che-vpn-cluster-1-264.cisco.com [10.86.241.9]) by rtp-core-1.cisco.com (8.13.8/8.14.3) with ESMTP id o4P2m6wt004327; Tue, 25 May 2010 02:48:06 GMT
Message-ID: <4BFB3A66.5080700@cisco.com>
Date: Mon, 24 May 2010 22:48:06 -0400
From: Paul Duffy <paduffy@cisco.com>
Organization: Cisco Systems
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4
MIME-Version: 1.0
To: Zach Shelby <zach@sensinode.com>
References: <OF97EC852F.8A85DCEB-ONC1257726.0051887E-C1257726.005677A7@schneider-electric.com> <3602E0C6-1E2E-4164-A208-A874128325AF@sensinode.com>
In-Reply-To: <3602E0C6-1E2E-4164-A208-A874128325AF@sensinode.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Cc: core <core@ietf.org>
Subject: Re: [core] Subscribe/Notify for CoAP
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: paduffy@cisco.com
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: Tue, 25 May 2010 02:48:17 -0000

Recommend something like #2, primarily to avoid introducing non HTTP 
method semantics, simplifying HTTP/COAP translation.gateways, etc.


On 5/24/2010 11:49 AM, Zach Shelby wrote:
> (thread renamed)
>
> We have two different paths with regard to a subscribe/notify mechanism for CoAP:
>
> 1. Use specific Subscription and Notify mechanisms for CoAP as HTTP really does not include this concept.
> 1a) Notify as a message and SUBSCRIBE as a method. This is currently used in coap-01.
> 1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but we had a good list discussion about this leading to a. In practice it doesn't make a big difference if notification is a message or method.
>
> 2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0 proposal or GENA.
>
> So far we have focused on 1 in the WG, and every now and again 2 comes up. At least I am not convinced that we need to suffer the drawbacks of HTTP here. Anyways 2 does not help our mapping to HTTP in reality very much as there is no standard way of doing this over HTTP. Thus a CoAP-HTTP proxy may end up anyways translating between multiple HTTP frameworks depending on the application. So instead of doing a CoAP Notify/Subscribe to Webhooks mapping, you will could end up having to do a CoAP Webhooks to HTTP GENA mapping.
>    


I don't understand this last para.  If CoAP sticks to the semantics of 
the current HTTP methods, would this not offer a fairly straightforward 
translation to/from HTTP?


> > From what I have heard so far 1 still seems like a wise choice, although I need to look at Webhooks more deeply. In reality many applications specify their own way of doing a push interface using REST methods and specific payloads (ZigBee SE2.0 is such an example). That is just fine, and might be used instead of a specific CoAP notify/subscribe in that case. So 1 doesn't prevent the application using its own mechanism, it just provides a native way for doing push.
>
> What do people think?
>
> Zach
>
> On May 17, 2010, at 6:44 PM, matthieu.vial@fr.non.schneider-electric.com wrote:
>
>    
>> Hi,
>>
>> My comments about the subscribe/notify mechanism of Zigbee IP.
>>
>> Pros:
>> - Derived from the webhooks concept
>> - If used by CORE it will be easier to map to HTTP because it uses only CRUD verbs.
>> - The subscription message is extendable and could support advanced options (delays, increment, ...)
>> - Only one listening port whatever the transport binding is.
>>
>> Cons:
>> - No interoperability without well known URIs and a well defined subscription message format (Not sure CoAP draft is the right place to specify this).
>> - XML/EXI is too complex to be the required format for the default subscription/notification mechanism.
>> - The notification should not require a subsequent GET to retrieve the content.
>> - Subresource subscription is redundant.
>>
>> Hope this could help,
>> Matthieu
>>
>>
>> <graycol.gif>"Charles Palmer"<charles.palmer@onzo.com>
>>
>>
>>
>>
>> "Charles Palmer"<charles.palmer@onzo.com>
>> Envoyé par : core-bounces@ietf.org
>> 15/05/2010 14:06
>>
>> <ecblank.gif>
>> A
>> <ecblank.gif>
>> "core"<core@ietf.org>
>> <ecblank.gif>
>> cc
>> <ecblank.gif>
>> <ecblank.gif>
>> Objet
>> <ecblank.gif>
>> Re: [core] Selecting a WG document for CoAP
>> <ecblank.gif>	<ecblank.gif>
>>
>> Dear all
>>
>> Those interested in the subscribe/notify discussion might like to look
>> at the draft Smart Energy Profile 2.0 Application Protocol
>> Specification. It is available here:
>> http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicApp
>> licationProfile.aspx
>>
>> It manages subscribe/notify by using POST. This seems to remove the need
>> for SUBSCRIBE and notify.
>>
>> "Imagine a host A, which exposes a resource at http{s}://A/resource and
>> a second host B, which wishes to learn of changes to this resource. To
>> facilitate a subscription/ notification mechanism, A would expose a
>> resource http{s}://A/sub and B would expose a resource http{s}://B/ntfy.
>> To subscribe to notifications regarding http{s}://A/resource, B would
>> send a POST to the address http{s}://A/sub/B containing the URI of the
>> resource of interest (http{s}://A/resource) and the URI of B's
>> notification resource (http{s}://B/ntfy). Following this subscription
>> step, should A wish to notify B of a change to the resource addressed at
>> http{s}://A/resource, A would send a POST to the address
>> http{s}://B/ntfy containing the URI of the resource changed
>> (http{s}://A/resource) and the URI of A's subscription resource
>> (http{s}://A/sub/B), should A wish to change its subscription. The host
>> B can then query the resource (or not) at its leisure."
>>
>> Sleepy nodes are not allowed to subscribe, and must poll.
>>
>> Regards - Charles Palmer
>>
>> -----Original Message-----
>> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of
>> Angelo P. Castellani
>> Sent: 14 May 2010 13:14
>> To: Zach Shelby
>> Cc: core
>> Subject: Re: [core] Selecting a WG document for CoAP
>>
>> Zach,
>>
>> thanks for the comments, but please refer to my most recent e-mail for
>> a more specific list of technical issues I'm pointing to.
>>
>> I want to do only a little integration to what I've written there.
>>
>> In my very personal opinion, to maximize adherence with the REST model
>> and minimize implementation effort SUBSCRIBE and NOTIFY should be
>> mapped to methods (as discussed many times together...).
>>
>> Uniform interface principle (Fielding PhD dissertation Section 5.1.5,
>> "The central feature that distinguishes the REST architectural style
>> [...]") states that to simplify the software architecture, resource
>> interfaces/interfaces should be as general as possible.
>>
>> I agree with this principle in this specific case, mainly because
>> handling a special message type for notify leads node software design
>> to a more complex architecture.
>>
>> The reason is that this new message type requires special handling and
>> introduces a complexity in the software modularization.
>>
>> Best,
>> Angelo
>>
>> On Fri, May 14, 2010 at 13:06, Zach Shelby<zach@sensinode.com>  wrote:
>>      
>>> Hi Angelo,
>>>
>>> On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:
>>>
>>>        
>>>> Dear C. Bormann, all,
>>>>
>>>> before deciding for the final direction, I've the following
>>>> observations about draft-shelby-core-coap-01
>>>>
>>>> While I mostly share Zach's view of the protocol approach, and
>>>> appreciate many aspects of the proposal, there are in my opinion
>>>>          
>> still
>>      
>>>> some open issues that need to be at least discussed before the
>>>>          
>> current
>>      
>>>> document can be selected.
>>>>          
>>> Of course there are plenty of open issues. Remember that working group
>>>        
>> documents still undertake as much change and improvement as the WG
>> wants, so by no means is coap-01 set in stone. I would expect at least
>> 5-10 more revisions still along the way.  Already several of your ideas
>> have been integrated into coap-01, and several more are under
>> consideration, so it is coming along. Patience ;-)
>>      
>>>        
>>>> In particular, I would like to highlight the following:
>>>>
>>>> a) As it is now, it is not possible to have a straightforward
>>>> translation of HTTP ->  CoAP and viceversa: see
>>>> http://www.ietf.org/mail-archive/web/core/current/msg00133.html (this
>>>> impacts the scalability of the web service model too)
>>>>          
>>> In coap-01 the Method names are now identical to HTTP methods. The
>>>        
>> Req/Res interaction is a direct translation. The URI hierarchy is
>> compatible, and the URI binary code format we are still working on
>> obviously. The only thing that takes some state to translate is
>> Subscribe/Notify. But note, Subscribe/Notify takes some state no matter
>> how you do it, even with HTTP-HTTP there is no clean and easy way to
>> handle subscriptions.
>>      
>>>        
>>>> b) Moreover, CoAP's implementation is not as simple as it should be.
>>>> I've investigated the implementation and some design choices (as
>>>> Options) are leading to very high program complexity (ROM) on a
>>>> MSP430-based device.
>>>>          
>>> This we can definitely improve, and already made several optimizations
>>>        
>> from -00 to -01. Here I need some very concrete proposals though. Also
>> remember that many things are optional, for example subscribe/notify is
>> not required if you don't need it.
>>      
>>>        
>>>> c) Finally when comparing HTTP message size with CoAP message size,
>>>> the resulting compression isn't as good as you may expect.
>>>>
>>>> Example:
>>>> HTTP: GET /sensor/temp.xml HTTP/1.0 = 32 B
>>>> CoAP: 24 B with options parsing procedure requiring an added
>>>> implementation complexity
>>>>          
>>> Right, that is not how it will work in practice. Working with a real
>>>        
>> HTTP server that HTTP header will be more complex, and on the CoAP side
>> you would chose shorter URLs. The biggest improvement possible here is
>> from using binary coded URLs of course. We need to look at a wider range
>> of interactions and real HTTP headers as well to check that we are
>> efficient enough.
>>      
>>>        
>>>> Addressing all these points potentially leads to major technical
>>>> modifications (especially point a) on the current draft, hence it is
>>>> appropriate in my opinion to discuss these points before making the
>>>> final decision.
>>>>          
>>> I am not sure what else you have in mind for a). If we just forget
>>>        
>> about Subscribe/Notify then you are good to go. But then you are also
>> not fulfilling the charter or the industry needs in that respect.
>>      
>>> Thanks,
>>> Zach
>>>
>>>        
>>>> Best regards,
>>>>
>>>> Angelo P. Castellani
>>>>
>>>>
>>>> On Mon, May 10, 2010 at 18:51, Carsten Bormann<cabo@tzi.org>  wrote:
>>>>          
>>>>> The CORE WG has a milestone to select a WG document for CoAP in
>>>>>            
>> April:
>>      
>>>>> http://datatracker.ietf.org/wg/core/charter/
>>>>> ...
>>>>> Apr 2010        Select WG document for basis of the CoAP protocol
>>>>>
>>>>> Of the various documents that have been contributed,
>>>>>            
>> draft-shelby-core-coap has significant discussion, as well as the
>> largest number of updates (including a previous version that was still
>> called -6lowapp-coap).
>>      
>>>>> Today, another updated version of that draft was announced.  See
>>>>> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
>>>>> for the announcement and
>>>>> http://tools.ietf.org/html/draft-shelby-core-coap-01
>>>>> for the draft itself.
>>>>>
>>>>> However, as the authors say, there are still significant TODOs.
>>>>>
>>>>> Are we in a state yet where we can say whether this is the right
>>>>>            
>> direction for the WG to take?
>>      
>>>>> If yes, is it the right direction?  Should we adopt it as a WG
>>>>>            
>> document?
>>      
>>>>> If you don't think we can say yet, is there a set of technical
>>>>>            
>> decisions you would like the authors to take with priority?
>>      
>>>>> Note that once a document has become a WG document, the authors act
>>>>>            
>> as editors for the working group, making (and usually fleshing out the
>> details of) any change that the WG decides it needs.
>>      
>>>>> If you think we can still improve the draft, this is not an obstacle
>>>>>            
>> to making it a WG document.
>>      
>>>>> But of course we shouldn't do that if we intend to reverse its
>>>>>            
>> fundamental technical direction.
>>      
>>>>> In order to stay roughly in sync with our milestones, we should
>>>>>            
>> reach at a decision on how to go forward this week.
>>      
>>>>> Gruesse, Carsten
>>>>>
>>>>> _______________________________________________
>>>>> core mailing list
>>>>> core@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>
>>>>>            
>>>> _______________________________________________
>>>> 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
>>>
>>>
>>>        
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>> --------------------------------
>> Onzo is a limited company number 06097997 registered in England&  Wales. The
>> registered office is 6 Great Newport Street, London, WC2H 7JB, United Kingdom.
>>
>> This email message may contain confidential and/or privileged information, and
>> is intended solely for the addressee(s). If you have received this email in
>> error, please notify Onzo immediately. Unauthorised copying, disclosure or
>> distribution of the material in this email is forbidden.
>> --------------------------------
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>> ______________________________________________________________________
>> This email has been scanned by the MessageLabs Email Security System.
>> ______________________________________________________________________
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>      
>    


From paduffy@cisco.com  Mon May 24 20:08:27 2010
Return-Path: <paduffy@cisco.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 2EC1C3A7180 for <core@core3.amsl.com>; Mon, 24 May 2010 20:08:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.549
X-Spam-Level: 
X-Spam-Status: No, score=-6.549 tagged_above=-999 required=5 tests=[AWL=0.850,  BAYES_50=0.001, J_CHICKENPOX_32=0.6, 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 0mf+JY3EPaaw for <core@core3.amsl.com>; Mon, 24 May 2010 20:08:25 -0700 (PDT)
Received: from rtp-iport-1.cisco.com (rtp-iport-1.cisco.com [64.102.122.148]) by core3.amsl.com (Postfix) with ESMTP id 54D433A717C for <core@ietf.org>; Mon, 24 May 2010 20:07:10 -0700 (PDT)
Authentication-Results: rtp-iport-1.cisco.com; dkim=neutral (message not signed) header.i=none
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AvsEAP/a+ktAZnwN/2dsb2JhbACdenGjbYFrCwGYAoUTBA
X-IronPort-AV: E=Sophos;i="4.53,295,1272844800"; d="scan'208";a="114318689"
Received: from rtp-core-2.cisco.com ([64.102.124.13]) by rtp-iport-1.cisco.com with ESMTP; 25 May 2010 03:07:01 +0000
Received: from [10.86.241.9] (che-vpn-cluster-1-264.cisco.com [10.86.241.9]) by rtp-core-2.cisco.com (8.13.8/8.14.3) with ESMTP id o4P371xN005660; Tue, 25 May 2010 03:07:01 GMT
Message-ID: <4BFB3ED5.5010101@cisco.com>
Date: Mon, 24 May 2010 23:07:01 -0400
From: Paul Duffy <paduffy@cisco.com>
Organization: Cisco Systems
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4
MIME-Version: 1.0
To: Zach Shelby <zach@sensinode.com>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org>	<007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de>	<E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local>	<3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org>	<002101caf663$1c251d30$546f5790$@moritz@uni-rostock.de>	<C6471264338047459F18230B4F871DA0098F0529@csomb01.corp.atmel.com> <355B1C46-98A8-4D4F-95B5-C011B2B81F92@sensinode.com>
In-Reply-To: <355B1C46-98A8-4D4F-95B5-C011B2B81F92@sensinode.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Cc: core <core@ietf.org>
Subject: Re: [core] Core UDP vs TCP : Redux
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: paduffy@cisco.com
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: Tue, 25 May 2010 03:08:27 -0000

IMO any decision pro/con DTLS is premature.  Use of DTLS is desirable as 
it "goes with the grain" of HTTP usage patterns.

I believe the DTLS concerns revolve around how long a session can be 
kept alive.  Or alternatively, over how long a period of time can I 
amortize/cache session information for a single (expensive) key 
establishment handshake.

Yes, we need security expertise to answer this question.


On 5/24/2010 11:14 AM, Zach Shelby wrote:
> So what I heard people want here:
>
> 1. UDP as *the only* transport for simplicity and interoperability in the spec (as long as we don't reinvent TCP).
> 2. CoAP to be transport independent as a protocol, thus allowing it to be possibly used in other ways in the future.
> 3. A couple people think we might need a fragmentation feature for responses with a payload size over the maximum.
> 4. DTLS might have complexity problems, should not be the only option (Michael)
> 5. Some transport binding framework could be explored (Robert)
>
> I agree with 1 and 2, and my proposal would be to remove the TCP-specific text and sections from the next version of CoAP. We can make the protocol itself independent of UDP (it really already is), however UDP must be specified for interoperability reasons. I propose we anyways keep some text saying something like
>
> "Although this document specifies CoAP over UDP, the protocol may also be applicable over other transports such as TCP or SCTP. The specification of such use is out of scope of this document.
>
> This would at least give us a starting point. I don't see the need for developing frameworks or negotiation of multiple bindings for CoAP, at least not now.
>
> Regarding fragmentation, let's not jump the gun too soon here. For the vast majority of constrained applications the 1280 byte maximum is more than enough. For cases when it is not let's first see if it would make sense to let the application deal with it. By the way, coap-01 has a mistake with the 576B IPv4 maximum and 1280B IPv6 maximum. That doesn't work for CoAP(IPv4)-CoAP(IPv6) proxying. Instead we should set both to use the 1280 byte maximum.
>
> Regarding DTLS, we are specifying how to use it with CoAP as it is a secure transport. I agree with Michael that DTLS may very well be too much for many constrained devices, so we should make it clear that this is not the only way to do security, IPSEC e.g. is equally applicable (and probably simpler) but doesn't require any specification in the document. A security analysis ID would be a big help for the WG.....
>
> Zach
>
> On May 18, 2010, at 4:23 PM, Oflynn, Colin wrote:
>
>    
>>> Are there dependencies to UDP or is it only because the assumed
>>> infrastructure is highly constrained?
>>>        
>> My thoughts/feeling on the issue is that CoAP should be designed with a highly constrained environment, and as such being bound to UDP makes it a lot simpler.
>>
>> The resources which CoAP accesses SHOULD be accessible another in another manner; most likely this is HTTP over TCP. Even though CoAP does not map directly to HTTP, the requests are the same and thus I don't see an issue here. Nodes which are highly constrained may only support CoAP; larger nodes can support the full HTTP method.
>>
>> Of course the whole subscription/notify method might take some changes to make it accessible via HTTP... but thats another thread.
>>
>>    -Colin
>>
>>
>> -----Original Message-----
>> From: core-bounces@ietf.org on behalf of Guido Moritz
>> Sent: Tue 18/05/2010 09:21
>> To: core@ietf.org
>> Subject: Re: [core] Core UDP vs TCP : Redux
>>
>>  From the CORE charter:
>>      
>>>   4) The core CoAP functionality MUST operate well over UDP and UDP MUST
>>>   be implemented on CoAP Devices. There may be OPTIONAL functions in
>>>   CoAP (e.g. delivery of larger chunks of data) which if implemented are
>>>   implemented over TCP. Applications which require the optional TCP
>>>   features will limit themselves to a narrower subset of deployment
>>>   cases.
>>>        
>> Running over TCP would narrow application scenarios? It would be more than
>> reasonable to design COAP while keeping UDP in mind. But as long as there
>> are no direct dependencies of COAP itself to the transport mechanisms, don't
>> restrict it. This in contrast would extend application scenarios, because
>> you can use COAP also if reliable transport layer is required in the
>> scenario.
>>
>> Are there dependencies to UDP or is it only because the assumed
>> infrastructure is highly constrained?
>>
>> Guido
>>
>>      
>>> -----Ursprüngliche Nachricht-----
>>> Von: core-bounces@ietf.org [mailto:core-bounces@ietf.org] Im Auftrag von
>>> Carsten Bormann
>>> Gesendet: Montag, 17. Mai 2010 18:59
>>> An: Charles Palmer
>>> Cc: core
>>> Betreff: Re: [core] Core UDP vs TCP : Redux
>>>
>>> On May 17, 2010, at 17:47, Charles Palmer wrote:
>>>
>>>        
>>>> How disruptive would it be to design CoRE without reference to TCP/UDP,
>>>>          
>> and
>>      
>>> also design a "reliable UDP" and use this for CoRE?
>>>
>>> I personally think CoAP needs to work with DTLS; if the WG moves in that
>>> direction there will be some minimum requirement for independence from the
>>> underlying protocol.
>>>
>>> However, what we expect from the underlying protocol has a big bearing on
>>>        
>> CoAP
>>      
>>> itself.
>>> If we expect we can always move to TCP, there will be little need to make
>>>        
>> CoAP
>>      
>>> operate on large representations with small underlying interactions.  I've
>>> heard a lot of pushback on assuming the availability of TCP, so far.
>>>
>>> There is also the aspect of interoperability:  One of the great properties
>>>        
>> of
>>      
>>> the Web is that everybody uses the same stack, so all Web clients and
>>>        
>> servers
>>      
>>> are interoperable, with IP providing the necessary technological
>>>        
>> diversity.
>>      
>>> (On the other hand, this has made it near impossible to swap in, say,
>>>        
>> SCTP.)
>>      
>>> Just standardizing CoAP without an "we expect this to run on UDP, unless
>>> otherwise specified" would not achieve the same level of interoperability.
>>>
>>> <WG chair hat>In any case, designing a reliable transport as a TCP
>>>        
>> replacement
>>      
>>> and then a CoAP on top of either that or TCP is very much not what the
>>>        
>> charter
>>      
>>> suggests we are supposed to do.</WG chair hat>
>>> Instead, we should look at how stateless CoAP really can be made -- I
>>>        
>> think
>>      
>>> even TFTP has too much state (and thus isn't as trivial a file transfer
>>> protocol as it could be).
>>>
>>> Gruesse, Carsten
>>>
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>        
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>      
>    


From therbst@silverspringnet.com  Mon May 24 23:23:39 2010
Return-Path: <therbst@silverspringnet.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 69D003A6877 for <core@core3.amsl.com>; Mon, 24 May 2010 23:23:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.635
X-Spam-Level: 
X-Spam-Status: No, score=0.635 tagged_above=-999 required=5 tests=[AWL=-0.300,  BAYES_50=0.001, IP_NOT_FRIENDLY=0.334, J_CHICKENPOX_32=0.6]
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 Jo4i5CWK9gvG for <core@core3.amsl.com>; Mon, 24 May 2010 23:23:37 -0700 (PDT)
Received: from bachelor.silverspringnet.com (bachelor.silverspringnet.com [69.36.245.73]) by core3.amsl.com (Postfix) with ESMTP id C6BCD3A6823 for <core@ietf.org>; Mon, 24 May 2010 23:23:37 -0700 (PDT)
Received: from IT-EXCA-02.silverspringnet.com ([10.200.1.62]) by bachelor.silverspringnet.com (8.14.1/8.13.8) with ESMTP id o4P6N74Y022546; Mon, 24 May 2010 23:23:07 -0700 (PDT)
Received: from IT-EXMB-01.silverspringnet.com ([fe80::b81e:2d5b:d263:6c44]) by IT-EXCA-02.silverspringnet.com ([::1]) with mapi; Mon, 24 May 2010 23:23:06 -0700
From: Thomas Herbst <therbst@silverspringnet.com>
To: Zach Shelby <zach@sensinode.com>, core <core@ietf.org>
Date: Mon, 24 May 2010 23:18:25 -0700
Thread-Topic: [core] Core UDP vs TCP : Redux
Thread-Index: Acr7kUF74doNKJTvR3Kzy47+DbTxQwAQNPaG
Message-ID: <485AF6ECE8D1954D996771CC49E996FDC0A8A4F4@IT-EXMB-01.silverspringnet.com>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com> <17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org> <007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de> <E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local> <3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org> <002101caf663$1c251d30$546f5790$@moritz@uni-rostock.de> <C6471264338047459F18230B4F871DA0098F0529@csomb01.corp.atmel.com>, <355B1C46-98A8-4D4F-95B5-C011B2B81F92@sensinode.com>
In-Reply-To: <355B1C46-98A8-4D4F-95B5-C011B2B81F92@sensinode.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
acceptlanguage: en-US
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: Re: [core] Core UDP vs TCP : Redux
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: Tue, 25 May 2010 06:23:39 -0000

IMHO, 1& 2 move the document forward significantly.
For 3,  fragmentation being an exercise for the user seems okay.=20

DTLS may well need more thought.=20

________________________________________
From: core-bounces@ietf.org [core-bounces@ietf.org] On Behalf Of Zach Shelb=
y [zach@sensinode.com]
Sent: Monday, May 24, 2010 8:14 AM
To: core
Subject: Re: [core] Core UDP vs TCP : Redux

So what I heard people want here:

1. UDP as *the only* transport for simplicity and interoperability in the s=
pec (as long as we don't reinvent TCP).
2. CoAP to be transport independent as a protocol, thus allowing it to be p=
ossibly used in other ways in the future.
3. A couple people think we might need a fragmentation feature for response=
s with a payload size over the maximum.
4. DTLS might have complexity problems, should not be the only option (Mich=
ael)
5. Some transport binding framework could be explored (Robert)

I agree with 1 and 2, and my proposal would be to remove the TCP-specific t=
ext and sections from the next version of CoAP. We can make the protocol it=
self independent of UDP (it really already is), however UDP must be specifi=
ed for interoperability reasons. I propose we anyways keep some text saying=
 something like

"Although this document specifies CoAP over UDP, the protocol may also be a=
pplicable over other transports such as TCP or SCTP. The specification of s=
uch use is out of scope of this document.

This would at least give us a starting point. I don't see the need for deve=
loping frameworks or negotiation of multiple bindings for CoAP, at least no=
t now.

Regarding fragmentation, let's not jump the gun too soon here. For the vast=
 majority of constrained applications the 1280 byte maximum is more than en=
ough. For cases when it is not let's first see if it would make sense to le=
t the application deal with it. By the way, coap-01 has a mistake with the =
576B IPv4 maximum and 1280B IPv6 maximum. That doesn't work for CoAP(IPv4)-=
CoAP(IPv6) proxying. Instead we should set both to use the 1280 byte maximu=
m.

Regarding DTLS, we are specifying how to use it with CoAP as it is a secure=
 transport. I agree with Michael that DTLS may very well be too much for ma=
ny constrained devices, so we should make it clear that this is not the onl=
y way to do security, IPSEC e.g. is equally applicable (and probably simple=
r) but doesn't require any specification in the document. A security analys=
is ID would be a big help for the WG.....

Zach

On May 18, 2010, at 4:23 PM, Oflynn, Colin wrote:

> > Are there dependencies to UDP or is it only because the assumed
> > infrastructure is highly constrained?
>
> My thoughts/feeling on the issue is that CoAP should be designed with a h=
ighly constrained environment, and as such being bound to UDP makes it a lo=
t simpler.
>
> The resources which CoAP accesses SHOULD be accessible another in another=
 manner; most likely this is HTTP over TCP. Even though CoAP does not map d=
irectly to HTTP, the requests are the same and thus I don't see an issue he=
re. Nodes which are highly constrained may only support CoAP; larger nodes =
can support the full HTTP method.
>
> Of course the whole subscription/notify method might take some changes to=
 make it accessible via HTTP... but thats another thread.
>
>   -Colin
>
>
> -----Original Message-----
> From: core-bounces@ietf.org on behalf of Guido Moritz
> Sent: Tue 18/05/2010 09:21
> To: core@ietf.org
> Subject: Re: [core] Core UDP vs TCP : Redux
>
> From the CORE charter:
> >  4) The core CoAP functionality MUST operate well over UDP and UDP MUST
> >  be implemented on CoAP Devices. There may be OPTIONAL functions in
> >  CoAP (e.g. delivery of larger chunks of data) which if implemented are
> >  implemented over TCP. Applications which require the optional TCP
> >  features will limit themselves to a narrower subset of deployment
> >  cases.
>
> Running over TCP would narrow application scenarios? It would be more tha=
n
> reasonable to design COAP while keeping UDP in mind. But as long as there
> are no direct dependencies of COAP itself to the transport mechanisms, do=
n't
> restrict it. This in contrast would extend application scenarios, because
> you can use COAP also if reliable transport layer is required in the
> scenario.
>
> Are there dependencies to UDP or is it only because the assumed
> infrastructure is highly constrained?
>
> Guido
>
> > -----Urspr=FCngliche Nachricht-----
> > Von: core-bounces@ietf.org [mailto:core-bounces@ietf.org] Im Auftrag vo=
n
> > Carsten Bormann
> > Gesendet: Montag, 17. Mai 2010 18:59
> > An: Charles Palmer
> > Cc: core
> > Betreff: Re: [core] Core UDP vs TCP : Redux
> >
> > On May 17, 2010, at 17:47, Charles Palmer wrote:
> >
> > > How disruptive would it be to design CoRE without reference to TCP/UD=
P,
> and
> > also design a "reliable UDP" and use this for CoRE?
> >
> > I personally think CoAP needs to work with DTLS; if the WG moves in tha=
t
> > direction there will be some minimum requirement for independence from =
the
> > underlying protocol.
> >
> > However, what we expect from the underlying protocol has a big bearing =
on
> CoAP
> > itself.
> > If we expect we can always move to TCP, there will be little need to ma=
ke
> CoAP
> > operate on large representations with small underlying interactions.  I=
've
> > heard a lot of pushback on assuming the availability of TCP, so far.
> >
> > There is also the aspect of interoperability:  One of the great propert=
ies
> of
> > the Web is that everybody uses the same stack, so all Web clients and
> servers
> > are interoperable, with IP providing the necessary technological
> diversity.
> > (On the other hand, this has made it near impossible to swap in, say,
> SCTP.)
> > Just standardizing CoAP without an "we expect this to run on UDP, unles=
s
> > otherwise specified" would not achieve the same level of interoperabili=
ty.
> >
> > <WG chair hat>In any case, designing a reliable transport as a TCP
> replacement
> > and then a CoAP on top of either that or TCP is very much not what the
> charter
> > suggests we are supposed to do.</WG chair hat>
> > Instead, we should look at how stateless CoAP really can be made -- I
> think
> > even TFTP has too much state (and thus isn't as trivial a file transfer
> > protocol as it could be).
> >
> > Gruesse, Carsten
> >
> > _______________________________________________
> > core mailing list
> > core@ietf.org
> > https://www.ietf.org/mailman/listinfo/core
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>
>
> _______________________________________________
> 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

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

From Colin.OFlynn@atmel.com  Tue May 25 01:38:07 2010
Return-Path: <Colin.OFlynn@atmel.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 3C78E3A6D42 for <core@core3.amsl.com>; Tue, 25 May 2010 01:38:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.097
X-Spam-Level: 
X-Spam-Status: No, score=-0.097 tagged_above=-999 required=5 tests=[AWL=-0.699, BAYES_50=0.001, HTML_MESSAGE=0.001, J_CHICKENPOX_32=0.6]
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 NdhpJS8vfuQa for <core@core3.amsl.com>; Tue, 25 May 2010 01:38:05 -0700 (PDT)
Received: from sjogate2.atmel.com (newsmtp5.atmel.com [204.2.163.5]) by core3.amsl.com (Postfix) with ESMTP id 3C8983A6917 for <core@ietf.org>; Tue, 25 May 2010 01:38:05 -0700 (PDT)
Received: from csomb01.corp.atmel.com ([10.95.30.150]) by sjogate2.atmel.com (8.13.6/8.13.6) with ESMTP id o4P8ZciL001471; Tue, 25 May 2010 01:35:39 -0700 (PDT)
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01CAFBE5.85945FD9"
Date: Tue, 25 May 2010 02:37:34 -0600
Message-ID: <C6471264338047459F18230B4F871DA0098F052E@csomb01.corp.atmel.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [core] Core UDP vs TCP : Redux
Thread-Index: Acr7kUF74doNKJTvR3Kzy47+DbTxQwAQNPaGAASgwCM=
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com><17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org><007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de><E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local><3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org><002101caf663$1c251d30$546f5790$@moritz@uni-rostock.de><C6471264338047459F18230B4F871DA0098F0529@csomb01.corp.atmel.com>, <355B1C46-98A8-4D4F-95B5-C011B2B81F92@sensinode.com> <485AF6ECE8D1954D996771CC49E996FDC0A8A4F4@IT-EXMB-01.silverspringnet.com>
From: "Oflynn, Colin" <Colin.OFlynn@atmel.com>
To: "Thomas Herbst" <therbst@silverspringnet.com>, "Zach Shelby" <zach@sensinode.com>, "core" <core@ietf.org>
Subject: Re: [core] Core UDP vs TCP : Redux
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: Tue, 25 May 2010 08:38:07 -0000

This is a multi-part message in MIME format.

------_=_NextPart_001_01CAFBE5.85945FD9
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hello,

I think 3 (fragmentation) should still be included in CoAP if we are =
proposing UDP. The main feature I'm thinking of is firmware updates =
which would need larger responses.

Again the fragmentation can be very simple (TFTP style), and if the user =
requires anything more advanced it is their responsibility. However =
leaving it to "users" probably means "not interpolatable", since then =
their is basically different responses depending on the file size.

Regards,

  -Colin


-----Original Message-----
From: core-bounces@ietf.org on behalf of Thomas Herbst
Sent: Tue 25/05/2010 07:18
To: Zach Shelby; core
Subject: Re: [core] Core UDP vs TCP : Redux
=20
IMHO, 1& 2 move the document forward significantly.
For 3,  fragmentation being an exercise for the user seems okay.=20

DTLS may well need more thought.=20

________________________________________
From: core-bounces@ietf.org [core-bounces@ietf.org] On Behalf Of Zach =
Shelby [zach@sensinode.com]
Sent: Monday, May 24, 2010 8:14 AM
To: core
Subject: Re: [core] Core UDP vs TCP : Redux

So what I heard people want here:

1. UDP as *the only* transport for simplicity and interoperability in =
the spec (as long as we don't reinvent TCP).
2. CoAP to be transport independent as a protocol, thus allowing it to =
be possibly used in other ways in the future.
3. A couple people think we might need a fragmentation feature for =
responses with a payload size over the maximum.
4. DTLS might have complexity problems, should not be the only option =
(Michael)
5. Some transport binding framework could be explored (Robert)

I agree with 1 and 2, and my proposal would be to remove the =
TCP-specific text and sections from the next version of CoAP. We can =
make the protocol itself independent of UDP (it really already is), =
however UDP must be specified for interoperability reasons. I propose we =
anyways keep some text saying something like

"Although this document specifies CoAP over UDP, the protocol may also =
be applicable over other transports such as TCP or SCTP. The =
specification of such use is out of scope of this document.

This would at least give us a starting point. I don't see the need for =
developing frameworks or negotiation of multiple bindings for CoAP, at =
least not now.

Regarding fragmentation, let's not jump the gun too soon here. For the =
vast majority of constrained applications the 1280 byte maximum is more =
than enough. For cases when it is not let's first see if it would make =
sense to let the application deal with it. By the way, coap-01 has a =
mistake with the 576B IPv4 maximum and 1280B IPv6 maximum. That doesn't =
work for CoAP(IPv4)-CoAP(IPv6) proxying. Instead we should set both to =
use the 1280 byte maximum.

Regarding DTLS, we are specifying how to use it with CoAP as it is a =
secure transport. I agree with Michael that DTLS may very well be too =
much for many constrained devices, so we should make it clear that this =
is not the only way to do security, IPSEC e.g. is equally applicable =
(and probably simpler) but doesn't require any specification in the =
document. A security analysis ID would be a big help for the WG.....

Zach

On May 18, 2010, at 4:23 PM, Oflynn, Colin wrote:

> > Are there dependencies to UDP or is it only because the assumed
> > infrastructure is highly constrained?
>
> My thoughts/feeling on the issue is that CoAP should be designed with =
a highly constrained environment, and as such being bound to UDP makes =
it a lot simpler.
>
> The resources which CoAP accesses SHOULD be accessible another in =
another manner; most likely this is HTTP over TCP. Even though CoAP does =
not map directly to HTTP, the requests are the same and thus I don't see =
an issue here. Nodes which are highly constrained may only support CoAP; =
larger nodes can support the full HTTP method.
>
> Of course the whole subscription/notify method might take some changes =
to make it accessible via HTTP... but thats another thread.
>
>   -Colin
>
>
> -----Original Message-----
> From: core-bounces@ietf.org on behalf of Guido Moritz
> Sent: Tue 18/05/2010 09:21
> To: core@ietf.org
> Subject: Re: [core] Core UDP vs TCP : Redux
>
> From the CORE charter:
> >  4) The core CoAP functionality MUST operate well over UDP and UDP =
MUST
> >  be implemented on CoAP Devices. There may be OPTIONAL functions in
> >  CoAP (e.g. delivery of larger chunks of data) which if implemented =
are
> >  implemented over TCP. Applications which require the optional TCP
> >  features will limit themselves to a narrower subset of deployment
> >  cases.
>
> Running over TCP would narrow application scenarios? It would be more =
than
> reasonable to design COAP while keeping UDP in mind. But as long as =
there
> are no direct dependencies of COAP itself to the transport mechanisms, =
don't
> restrict it. This in contrast would extend application scenarios, =
because
> you can use COAP also if reliable transport layer is required in the
> scenario.
>
> Are there dependencies to UDP or is it only because the assumed
> infrastructure is highly constrained?
>
> Guido
>
> > -----Urspr=FCngliche Nachricht-----
> > Von: core-bounces@ietf.org [mailto:core-bounces@ietf.org] Im Auftrag =
von
> > Carsten Bormann
> > Gesendet: Montag, 17. Mai 2010 18:59
> > An: Charles Palmer
> > Cc: core
> > Betreff: Re: [core] Core UDP vs TCP : Redux
> >
> > On May 17, 2010, at 17:47, Charles Palmer wrote:
> >
> > > How disruptive would it be to design CoRE without reference to =
TCP/UDP,
> and
> > also design a "reliable UDP" and use this for CoRE?
> >
> > I personally think CoAP needs to work with DTLS; if the WG moves in =
that
> > direction there will be some minimum requirement for independence =
from the
> > underlying protocol.
> >
> > However, what we expect from the underlying protocol has a big =
bearing on
> CoAP
> > itself.
> > If we expect we can always move to TCP, there will be little need to =
make
> CoAP
> > operate on large representations with small underlying interactions. =
 I've
> > heard a lot of pushback on assuming the availability of TCP, so far.
> >
> > There is also the aspect of interoperability:  One of the great =
properties
> of
> > the Web is that everybody uses the same stack, so all Web clients =
and
> servers
> > are interoperable, with IP providing the necessary technological
> diversity.
> > (On the other hand, this has made it near impossible to swap in, =
say,
> SCTP.)
> > Just standardizing CoAP without an "we expect this to run on UDP, =
unless
> > otherwise specified" would not achieve the same level of =
interoperability.
> >
> > <WG chair hat>In any case, designing a reliable transport as a TCP
> replacement
> > and then a CoAP on top of either that or TCP is very much not what =
the
> charter
> > suggests we are supposed to do.</WG chair hat>
> > Instead, we should look at how stateless CoAP really can be made -- =
I
> think
> > even TFTP has too much state (and thus isn't as trivial a file =
transfer
> > protocol as it could be).
> >
> > Gruesse, Carsten
> >
> > _______________________________________________
> > core mailing list
> > core@ietf.org
> > https://www.ietf.org/mailman/listinfo/core
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>
>
> _______________________________________________
> 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

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core
_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core


------_=_NextPart_001_01CAFBE5.85945FD9
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
6.5.7654.12">
<TITLE>RE: [core] Core UDP vs TCP : Redux</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=3D2>Hello,<BR>
<BR>
I think 3 (fragmentation) should still be included in CoAP if we are =
proposing UDP. The main feature I'm thinking of is firmware updates =
which would need larger responses.<BR>
<BR>
Again the fragmentation can be very simple (TFTP style), and if the user =
requires anything more advanced it is their responsibility. However =
leaving it to &quot;users&quot; probably means &quot;not =
interpolatable&quot;, since then their is basically different responses =
depending on the file size.<BR>
<BR>
Regards,<BR>
<BR>
&nbsp; -Colin<BR>
<BR>
<BR>
-----Original Message-----<BR>
From: core-bounces@ietf.org on behalf of Thomas Herbst<BR>
Sent: Tue 25/05/2010 07:18<BR>
To: Zach Shelby; core<BR>
Subject: Re: [core] Core UDP vs TCP : Redux<BR>
<BR>
IMHO, 1&amp; 2 move the document forward significantly.<BR>
For 3,&nbsp; fragmentation being an exercise for the user seems =
okay.<BR>
<BR>
DTLS may well need more thought.<BR>
<BR>
________________________________________<BR>
From: core-bounces@ietf.org [core-bounces@ietf.org] On Behalf Of Zach =
Shelby [zach@sensinode.com]<BR>
Sent: Monday, May 24, 2010 8:14 AM<BR>
To: core<BR>
Subject: Re: [core] Core UDP vs TCP : Redux<BR>
<BR>
So what I heard people want here:<BR>
<BR>
1. UDP as *the only* transport for simplicity and interoperability in =
the spec (as long as we don't reinvent TCP).<BR>
2. CoAP to be transport independent as a protocol, thus allowing it to =
be possibly used in other ways in the future.<BR>
3. A couple people think we might need a fragmentation feature for =
responses with a payload size over the maximum.<BR>
4. DTLS might have complexity problems, should not be the only option =
(Michael)<BR>
5. Some transport binding framework could be explored (Robert)<BR>
<BR>
I agree with 1 and 2, and my proposal would be to remove the =
TCP-specific text and sections from the next version of CoAP. We can =
make the protocol itself independent of UDP (it really already is), =
however UDP must be specified for interoperability reasons. I propose we =
anyways keep some text saying something like<BR>
<BR>
&quot;Although this document specifies CoAP over UDP, the protocol may =
also be applicable over other transports such as TCP or SCTP. The =
specification of such use is out of scope of this document.<BR>
<BR>
This would at least give us a starting point. I don't see the need for =
developing frameworks or negotiation of multiple bindings for CoAP, at =
least not now.<BR>
<BR>
Regarding fragmentation, let's not jump the gun too soon here. For the =
vast majority of constrained applications the 1280 byte maximum is more =
than enough. For cases when it is not let's first see if it would make =
sense to let the application deal with it. By the way, coap-01 has a =
mistake with the 576B IPv4 maximum and 1280B IPv6 maximum. That doesn't =
work for CoAP(IPv4)-CoAP(IPv6) proxying. Instead we should set both to =
use the 1280 byte maximum.<BR>
<BR>
Regarding DTLS, we are specifying how to use it with CoAP as it is a =
secure transport. I agree with Michael that DTLS may very well be too =
much for many constrained devices, so we should make it clear that this =
is not the only way to do security, IPSEC e.g. is equally applicable =
(and probably simpler) but doesn't require any specification in the =
document. A security analysis ID would be a big help for the WG.....<BR>
<BR>
Zach<BR>
<BR>
On May 18, 2010, at 4:23 PM, Oflynn, Colin wrote:<BR>
<BR>
&gt; &gt; Are there dependencies to UDP or is it only because the =
assumed<BR>
&gt; &gt; infrastructure is highly constrained?<BR>
&gt;<BR>
&gt; My thoughts/feeling on the issue is that CoAP should be designed =
with a highly constrained environment, and as such being bound to UDP =
makes it a lot simpler.<BR>
&gt;<BR>
&gt; The resources which CoAP accesses SHOULD be accessible another in =
another manner; most likely this is HTTP over TCP. Even though CoAP does =
not map directly to HTTP, the requests are the same and thus I don't see =
an issue here. Nodes which are highly constrained may only support CoAP; =
larger nodes can support the full HTTP method.<BR>
&gt;<BR>
&gt; Of course the whole subscription/notify method might take some =
changes to make it accessible via HTTP... but thats another thread.<BR>
&gt;<BR>
&gt;&nbsp;&nbsp; -Colin<BR>
&gt;<BR>
&gt;<BR>
&gt; -----Original Message-----<BR>
&gt; From: core-bounces@ietf.org on behalf of Guido Moritz<BR>
&gt; Sent: Tue 18/05/2010 09:21<BR>
&gt; To: core@ietf.org<BR>
&gt; Subject: Re: [core] Core UDP vs TCP : Redux<BR>
&gt;<BR>
&gt; From the CORE charter:<BR>
&gt; &gt;&nbsp; 4) The core CoAP functionality MUST operate well over =
UDP and UDP MUST<BR>
&gt; &gt;&nbsp; be implemented on CoAP Devices. There may be OPTIONAL =
functions in<BR>
&gt; &gt;&nbsp; CoAP (e.g. delivery of larger chunks of data) which if =
implemented are<BR>
&gt; &gt;&nbsp; implemented over TCP. Applications which require the =
optional TCP<BR>
&gt; &gt;&nbsp; features will limit themselves to a narrower subset of =
deployment<BR>
&gt; &gt;&nbsp; cases.<BR>
&gt;<BR>
&gt; Running over TCP would narrow application scenarios? It would be =
more than<BR>
&gt; reasonable to design COAP while keeping UDP in mind. But as long as =
there<BR>
&gt; are no direct dependencies of COAP itself to the transport =
mechanisms, don't<BR>
&gt; restrict it. This in contrast would extend application scenarios, =
because<BR>
&gt; you can use COAP also if reliable transport layer is required in =
the<BR>
&gt; scenario.<BR>
&gt;<BR>
&gt; Are there dependencies to UDP or is it only because the assumed<BR>
&gt; infrastructure is highly constrained?<BR>
&gt;<BR>
&gt; Guido<BR>
&gt;<BR>
&gt; &gt; -----Urspr=FCngliche Nachricht-----<BR>
&gt; &gt; Von: core-bounces@ietf.org [<A =
HREF=3D"mailto:core-bounces@ietf.org">mailto:core-bounces@ietf.org</A>] =
Im Auftrag von<BR>
&gt; &gt; Carsten Bormann<BR>
&gt; &gt; Gesendet: Montag, 17. Mai 2010 18:59<BR>
&gt; &gt; An: Charles Palmer<BR>
&gt; &gt; Cc: core<BR>
&gt; &gt; Betreff: Re: [core] Core UDP vs TCP : Redux<BR>
&gt; &gt;<BR>
&gt; &gt; On May 17, 2010, at 17:47, Charles Palmer wrote:<BR>
&gt; &gt;<BR>
&gt; &gt; &gt; How disruptive would it be to design CoRE without =
reference to TCP/UDP,<BR>
&gt; and<BR>
&gt; &gt; also design a &quot;reliable UDP&quot; and use this for =
CoRE?<BR>
&gt; &gt;<BR>
&gt; &gt; I personally think CoAP needs to work with DTLS; if the WG =
moves in that<BR>
&gt; &gt; direction there will be some minimum requirement for =
independence from the<BR>
&gt; &gt; underlying protocol.<BR>
&gt; &gt;<BR>
&gt; &gt; However, what we expect from the underlying protocol has a big =
bearing on<BR>
&gt; CoAP<BR>
&gt; &gt; itself.<BR>
&gt; &gt; If we expect we can always move to TCP, there will be little =
need to make<BR>
&gt; CoAP<BR>
&gt; &gt; operate on large representations with small underlying =
interactions.&nbsp; I've<BR>
&gt; &gt; heard a lot of pushback on assuming the availability of TCP, =
so far.<BR>
&gt; &gt;<BR>
&gt; &gt; There is also the aspect of interoperability:&nbsp; One of the =
great properties<BR>
&gt; of<BR>
&gt; &gt; the Web is that everybody uses the same stack, so all Web =
clients and<BR>
&gt; servers<BR>
&gt; &gt; are interoperable, with IP providing the necessary =
technological<BR>
&gt; diversity.<BR>
&gt; &gt; (On the other hand, this has made it near impossible to swap =
in, say,<BR>
&gt; SCTP.)<BR>
&gt; &gt; Just standardizing CoAP without an &quot;we expect this to run =
on UDP, unless<BR>
&gt; &gt; otherwise specified&quot; would not achieve the same level of =
interoperability.<BR>
&gt; &gt;<BR>
&gt; &gt; &lt;WG chair hat&gt;In any case, designing a reliable =
transport as a TCP<BR>
&gt; replacement<BR>
&gt; &gt; and then a CoAP on top of either that or TCP is very much not =
what the<BR>
&gt; charter<BR>
&gt; &gt; suggests we are supposed to do.&lt;/WG chair hat&gt;<BR>
&gt; &gt; Instead, we should look at how stateless CoAP really can be =
made -- I<BR>
&gt; think<BR>
&gt; &gt; even TFTP has too much state (and thus isn't as trivial a file =
transfer<BR>
&gt; &gt; protocol as it could be).<BR>
&gt; &gt;<BR>
&gt; &gt; Gruesse, Carsten<BR>
&gt; &gt;<BR>
&gt; &gt; _______________________________________________<BR>
&gt; &gt; core mailing list<BR>
&gt; &gt; core@ietf.org<BR>
&gt; &gt; <A =
HREF=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</A><BR>
&gt;<BR>
&gt; _______________________________________________<BR>
&gt; core mailing list<BR>
&gt; core@ietf.org<BR>
&gt; <A =
HREF=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</A><BR>
&gt;<BR>
&gt;<BR>
&gt; _______________________________________________<BR>
&gt; core mailing list<BR>
&gt; core@ietf.org<BR>
&gt; <A =
HREF=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</A><BR>
<BR>
--<BR>
Zach Shelby, Chief Nerd, Sensinode Ltd.<BR>
<A HREF=3D"http://zachshelby.org">http://zachshelby.org</A>&nbsp; - My =
blog &quot;On the Internet of Things&quot;<BR>
<A HREF=3D"http://6lowpan.net">http://6lowpan.net</A> - My book =
&quot;6LoWPAN: The Wireless Embedded Internet&quot;<BR>
Mobile: +358 40 7796297<BR>
<BR>
_______________________________________________<BR>
core mailing list<BR>
core@ietf.org<BR>
<A =
HREF=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</A><BR>
_______________________________________________<BR>
core mailing list<BR>
core@ietf.org<BR>
<A =
HREF=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</A><BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>
------_=_NextPart_001_01CAFBE5.85945FD9--

From dberenguer@usapiens.com  Tue May 25 05:35:35 2010
Return-Path: <dberenguer@usapiens.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 8DF723A73F6 for <core@core3.amsl.com>; Tue, 25 May 2010 05:35:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.223
X-Spam-Level: *
X-Spam-Status: No, score=1.223 tagged_above=-999 required=5 tests=[BAYES_50=0.001, FM_FORGED_GMAIL=0.622, J_CHICKENPOX_32=0.6]
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 zAfofdazVR4d for <core@core3.amsl.com>; Tue, 25 May 2010 05:35:34 -0700 (PDT)
Received: from mail-ww0-f44.google.com (mail-ww0-f44.google.com [74.125.82.44]) by core3.amsl.com (Postfix) with ESMTP id 4644F3A7414 for <core@ietf.org>; Tue, 25 May 2010 05:32:23 -0700 (PDT)
Received: by wwe15 with SMTP id 15so432169wwe.31 for <core@ietf.org>; Tue, 25 May 2010 05:32:10 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.216.86.10 with SMTP id v10mr4595639wee.183.1274790730516; Tue,  25 May 2010 05:32:10 -0700 (PDT)
Received: by 10.216.19.143 with HTTP; Tue, 25 May 2010 05:32:09 -0700 (PDT)
In-Reply-To: <C6471264338047459F18230B4F871DA0098F052E@csomb01.corp.atmel.com>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com> <FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk> <2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry> <041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org> <E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local> <3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org> <C6471264338047459F18230B4F871DA0098F0529@csomb01.corp.atmel.com> <355B1C46-98A8-4D4F-95B5-C011B2B81F92@sensinode.com> <485AF6ECE8D1954D996771CC49E996FDC0A8A4F4@IT-EXMB-01.silverspringnet.com> <C6471264338047459F18230B4F871DA0098F052E@csomb01.corp.atmel.com>
Date: Tue, 25 May 2010 14:32:09 +0200
Message-ID: <AANLkTinmMRgnMwKV1XpjHFz1hWsiU-Bj-oNWuCbKom2N@mail.gmail.com>
From: Daniel Berenguer <dberenguer@usapiens.com>
To: core <core@ietf.org>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Subject: Re: [core] Core UDP vs TCP : Redux
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: Tue, 25 May 2010 12:35:35 -0000

Maybe I'm misunderstanding something but, is CoAP supposed to give
support for firmware upgrades? Wouldn't be easier to use proprietary
schemas over TCP or just TFTP over UDP for transferring large packet
blocks? Why overloading a M2M protocol like CoAP with such things?

I agree with Zach in that interoperability is a priority so adding a
explicit note about the recommended use of CoAP over UDP would be
useful.

Daniel.


On 25 May 2010 10:37, Oflynn, Colin <Colin.OFlynn@atmel.com> wrote:
> Hello,
>
> I think 3 (fragmentation) should still be included in CoAP if we are
> proposing UDP. The main feature I'm thinking of is firmware updates which
> would need larger responses.
>
> Again the fragmentation can be very simple (TFTP style), and if the user
> requires anything more advanced it is their responsibility. However leavi=
ng
> it to "users" probably means "not interpolatable", since then their is
> basically different responses depending on the file size.
>
> Regards,
>
> =A0 -Colin
>
>
> -----Original Message-----
> From: core-bounces@ietf.org on behalf of Thomas Herbst
> Sent: Tue 25/05/2010 07:18
> To: Zach Shelby; core
> Subject: Re: [core] Core UDP vs TCP : Redux
>
> IMHO, 1& 2 move the document forward significantly.
> For 3,=A0 fragmentation being an exercise for the user seems okay.
>
> DTLS may well need more thought.
>
> ________________________________________
> From: core-bounces@ietf.org [core-bounces@ietf.org] On Behalf Of Zach She=
lby
> [zach@sensinode.com]
> Sent: Monday, May 24, 2010 8:14 AM
> To: core
> Subject: Re: [core] Core UDP vs TCP : Redux
>
> So what I heard people want here:
>
> 1. UDP as *the only* transport for simplicity and interoperability in the
> spec (as long as we don't reinvent TCP).
> 2. CoAP to be transport independent as a protocol, thus allowing it to be
> possibly used in other ways in the future.
> 3. A couple people think we might need a fragmentation feature for respon=
ses
> with a payload size over the maximum.
> 4. DTLS might have complexity problems, should not be the only option
> (Michael)
> 5. Some transport binding framework could be explored (Robert)
>
> I agree with 1 and 2, and my proposal would be to remove the TCP-specific
> text and sections from the next version of CoAP. We can make the protocol
> itself independent of UDP (it really already is), however UDP must be
> specified for interoperability reasons. I propose we anyways keep some te=
xt
> saying something like
>
> "Although this document specifies CoAP over UDP, the protocol may also be
> applicable over other transports such as TCP or SCTP. The specification o=
f
> such use is out of scope of this document.
>
> This would at least give us a starting point. I don't see the need for
> developing frameworks or negotiation of multiple bindings for CoAP, at le=
ast
> not now.
>
> Regarding fragmentation, let's not jump the gun too soon here. For the va=
st
> majority of constrained applications the 1280 byte maximum is more than
> enough. For cases when it is not let's first see if it would make sense t=
o
> let the application deal with it. By the way, coap-01 has a mistake with =
the
> 576B IPv4 maximum and 1280B IPv6 maximum. That doesn't work for
> CoAP(IPv4)-CoAP(IPv6) proxying. Instead we should set both to use the 128=
0
> byte maximum.
>
> Regarding DTLS, we are specifying how to use it with CoAP as it is a secu=
re
> transport. I agree with Michael that DTLS may very well be too much for m=
any
> constrained devices, so we should make it clear that this is not the only
> way to do security, IPSEC e.g. is equally applicable (and probably simple=
r)
> but doesn't require any specification in the document. A security analysi=
s
> ID would be a big help for the WG.....
>
> Zach
>
> On May 18, 2010, at 4:23 PM, Oflynn, Colin wrote:
>
>> > Are there dependencies to UDP or is it only because the assumed
>> > infrastructure is highly constrained?
>>
>> My thoughts/feeling on the issue is that CoAP should be designed with a
>> highly constrained environment, and as such being bound to UDP makes it =
a
>> lot simpler.
>>
>> The resources which CoAP accesses SHOULD be accessible another in anothe=
r
>> manner; most likely this is HTTP over TCP. Even though CoAP does not map
>> directly to HTTP, the requests are the same and thus I don't see an issu=
e
>> here. Nodes which are highly constrained may only support CoAP; larger n=
odes
>> can support the full HTTP method.
>>
>> Of course the whole subscription/notify method might take some changes t=
o
>> make it accessible via HTTP... but thats another thread.
>>
>>=A0=A0 -Colin
>>
>>
>> -----Original Message-----
>> From: core-bounces@ietf.org on behalf of Guido Moritz
>> Sent: Tue 18/05/2010 09:21
>> To: core@ietf.org
>> Subject: Re: [core] Core UDP vs TCP : Redux
>>
>> From the CORE charter:
>> >=A0 4) The core CoAP functionality MUST operate well over UDP and UDP M=
UST
>> >=A0 be implemented on CoAP Devices. There may be OPTIONAL functions in
>> >=A0 CoAP (e.g. delivery of larger chunks of data) which if implemented =
are
>> >=A0 implemented over TCP. Applications which require the optional TCP
>> >=A0 features will limit themselves to a narrower subset of deployment
>> >=A0 cases.
>>
>> Running over TCP would narrow application scenarios? It would be more th=
an
>> reasonable to design COAP while keeping UDP in mind. But as long as ther=
e
>> are no direct dependencies of COAP itself to the transport mechanisms,
>> don't
>> restrict it. This in contrast would extend application scenarios, becaus=
e
>> you can use COAP also if reliable transport layer is required in the
>> scenario.
>>
>> Are there dependencies to UDP or is it only because the assumed
>> infrastructure is highly constrained?
>>
>> Guido
>>
>> > -----Urspr=FCngliche Nachricht-----
>> > Von: core-bounces@ietf.org [mailto:core-bounces@ietf.org] Im Auftrag v=
on
>> > Carsten Bormann
>> > Gesendet: Montag, 17. Mai 2010 18:59
>> > An: Charles Palmer
>> > Cc: core
>> > Betreff: Re: [core] Core UDP vs TCP : Redux
>> >
>> > On May 17, 2010, at 17:47, Charles Palmer wrote:
>> >
>> > > How disruptive would it be to design CoRE without reference to
>> > > TCP/UDP,
>> and
>> > also design a "reliable UDP" and use this for CoRE?
>> >
>> > I personally think CoAP needs to work with DTLS; if the WG moves in th=
at
>> > direction there will be some minimum requirement for independence from
>> > the
>> > underlying protocol.
>> >
>> > However, what we expect from the underlying protocol has a big bearing
>> > on
>> CoAP
>> > itself.
>> > If we expect we can always move to TCP, there will be little need to
>> > make
>> CoAP
>> > operate on large representations with small underlying interactions.
>> > I've
>> > heard a lot of pushback on assuming the availability of TCP, so far.
>> >
>> > There is also the aspect of interoperability:=A0 One of the great
>> > properties
>> of
>> > the Web is that everybody uses the same stack, so all Web clients and
>> servers
>> > are interoperable, with IP providing the necessary technological
>> diversity.
>> > (On the other hand, this has made it near impossible to swap in, say,
>> SCTP.)
>> > Just standardizing CoAP without an "we expect this to run on UDP, unle=
ss
>> > otherwise specified" would not achieve the same level of
>> > interoperability.
>> >
>> > <WG chair hat>In any case, designing a reliable transport as a TCP
>> replacement
>> > and then a CoAP on top of either that or TCP is very much not what the
>> charter
>> > suggests we are supposed to do.</WG chair hat>
>> > Instead, we should look at how stateless CoAP really can be made -- I
>> think
>> > even TFTP has too much state (and thus isn't as trivial a file transfe=
r
>> > protocol as it could be).
>> >
>> > Gruesse, Carsten
>> >
>> > _______________________________________________
>> > core mailing list
>> > core@ietf.org
>> > https://www.ietf.org/mailman/listinfo/core
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>
> --
> Zach Shelby, Chief Nerd, Sensinode Ltd.
> http://zachshelby.org=A0 - My blog "On the Internet of Things"
> http://6lowpan.net - My book "6LoWPAN: The Wireless Embedded Internet"
> Mobile: +358 40 7796297
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>
>

From charles.palmer@onzo.com  Tue May 25 17:28:06 2010
Return-Path: <charles.palmer@onzo.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 A22573A7032 for <core@core3.amsl.com>; Tue, 25 May 2010 17:28:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.301
X-Spam-Level: *
X-Spam-Status: No, score=1.301 tagged_above=-999 required=5 tests=[BAYES_50=0.001, MANGLED_TOOL=2.3, 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 PZPi48gWJDoR for <core@core3.amsl.com>; Tue, 25 May 2010 17:28:02 -0700 (PDT)
Received: from service38.mimecast.com (service38.mimecast.com [212.2.3.166]) by core3.amsl.com (Postfix) with SMTP id 6E8A83A6A7A for <core@ietf.org>; Tue, 25 May 2010 15:23:19 -0700 (PDT)
Received: from onzosbs2k3.ONZO.local (217.138.5.2 [217.138.5.2]) by service38.mimecast.com; Tue, 25 May 2010 23:23:09 +0100
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Date: Tue, 25 May 2010 23:23:03 +0100
Message-ID: <E4DBD8AB11D2E54F89B23D7CD1065D8C0105621D@onzosbs2k3.ONZO.local>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [core] Subscribe/Notify for CoAP
Thread-Index: Acr7tLlcZ+YHmeyiTgep+C80I8UtyQAo9kxA
References: <OF97EC852F.8A85DCEB-ONC1257726.0051887E-C1257726.005677A7@schneider-electric.com><3602E0C6-1E2E-4164-A208-A874128325AF@sensinode.com> <4BFB3A66.5080700@cisco.com>
From: "Charles Palmer" <charles.palmer@onzo.com>
To: <paduffy@cisco.com>, "Zach Shelby" <zach@sensinode.com>
X-MC-Unique: 110052523230900302
Content-Type: text/plain; charset=WINDOWS-1252
Content-Transfer-Encoding: quoted-printable
Cc: core <core@ietf.org>
Subject: Re: [core] Subscribe/Notify for CoAP
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, 26 May 2010 00:28:06 -0000

Hi folks=20

It occurs to me that CoRE should be keeping a close eye on ZigBee SE2.0 wor=
k, so that it is as easy as possible for ZigBee SE to use CoRE when ready. =
That suggests to me that we should align with their subscribe/notify proces=
s.

Regards - Charles=20


-----Original Message-----
From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of Pau=
l Duffy
Sent: 25 May 2010 03:48
To: Zach Shelby
Cc: core
Subject: Re: [core] Subscribe/Notify for CoAP

Recommend something like #2, primarily to avoid introducing non HTTP=20
method semantics, simplifying HTTP/COAP translation.gateways, etc.


On 5/24/2010 11:49 AM, Zach Shelby wrote:
> (thread renamed)
>
> We have two different paths with regard to a subscribe/notify mechanism f=
or CoAP:
>
> 1. Use specific Subscription and Notify mechanisms for CoAP as HTTP reall=
y does not include this concept.
> 1a) Notify as a message and SUBSCRIBE as a method. This is currently used=
 in coap-01.
> 1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but we had=
 a good list discussion about this leading to a. In practice it doesn't mak=
e a big difference if notification is a message or method.
>
> 2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0 prop=
osal or GENA.
>
> So far we have focused on 1 in the WG, and every now and again 2 comes up=
. At least I am not convinced that we need to suffer the drawbacks of HTTP =
here. Anyways 2 does not help our mapping to HTTP in reality very much as t=
here is no standard way of doing this over HTTP. Thus a CoAP-HTTP proxy may=
 end up anyways translating between multiple HTTP frameworks depending on t=
he application. So instead of doing a CoAP Notify/Subscribe to Webhooks map=
ping, you will could end up having to do a CoAP Webhooks to HTTP GENA mappi=
ng.
>   =20


I don't understand this last para.  If CoAP sticks to the semantics of=20
the current HTTP methods, would this not offer a fairly straightforward=20
translation to/from HTTP?


> > From what I have heard so far 1 still seems like a wise choice, althoug=
h I need to look at Webhooks more deeply. In reality many applications spec=
ify their own way of doing a push interface using REST methods and specific=
 payloads (ZigBee SE2.0 is such an example). That is just fine, and might b=
e used instead of a specific CoAP notify/subscribe in that case. So 1 doesn=
't prevent the application using its own mechanism, it just provides a nati=
ve way for doing push.
>
> What do people think?
>
> Zach
>
> On May 17, 2010, at 6:44 PM, matthieu.vial@fr.non.schneider-electric.com =
wrote:
>
>   =20
>> Hi,
>>
>> My comments about the subscribe/notify mechanism of Zigbee IP.
>>
>> Pros:
>> - Derived from the webhooks concept
>> - If used by CORE it will be easier to map to HTTP because it uses only =
CRUD verbs.
>> - The subscription message is extendable and could support advanced opti=
ons (delays, increment, ...)
>> - Only one listening port whatever the transport binding is.
>>
>> Cons:
>> - No interoperability without well known URIs and a well defined subscri=
ption message format (Not sure CoAP draft is the right place to specify thi=
s).
>> - XML/EXI is too complex to be the required format for the default subsc=
ription/notification mechanism.
>> - The notification should not require a subsequent GET to retrieve the c=
ontent.
>> - Subresource subscription is redundant.
>>
>> Hope this could help,
>> Matthieu
>>
>>
>> <graycol.gif>"Charles Palmer"<charles.palmer@onzo.com>
>>
>>
>>
>>
>> "Charles Palmer"<charles.palmer@onzo.com>
>> Envoy=E9 par : core-bounces@ietf.org
>> 15/05/2010 14:06
>>
>> <ecblank.gif>
>> A
>> <ecblank.gif>
>> "core"<core@ietf.org>
>> <ecblank.gif>
>> cc
>> <ecblank.gif>
>> <ecblank.gif>
>> Objet
>> <ecblank.gif>
>> Re: [core] Selecting a WG document for CoAP
>> <ecblank.gif>=09<ecblank.gif>
>>
>> Dear all
>>
>> Those interested in the subscribe/notify discussion might like to look
>> at the draft Smart Energy Profile 2.0 Application Protocol
>> Specification. It is available here:
>> http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicApp
>> licationProfile.aspx
>>
>> It manages subscribe/notify by using POST. This seems to remove the need
>> for SUBSCRIBE and notify.
>>
>> "Imagine a host A, which exposes a resource at http{s}://A/resource and
>> a second host B, which wishes to learn of changes to this resource. To
>> facilitate a subscription/ notification mechanism, A would expose a
>> resource http{s}://A/sub and B would expose a resource http{s}://B/ntfy.
>> To subscribe to notifications regarding http{s}://A/resource, B would
>> send a POST to the address http{s}://A/sub/B containing the URI of the
>> resource of interest (http{s}://A/resource) and the URI of B's
>> notification resource (http{s}://B/ntfy). Following this subscription
>> step, should A wish to notify B of a change to the resource addressed at
>> http{s}://A/resource, A would send a POST to the address
>> http{s}://B/ntfy containing the URI of the resource changed
>> (http{s}://A/resource) and the URI of A's subscription resource
>> (http{s}://A/sub/B), should A wish to change its subscription. The host
>> B can then query the resource (or not) at its leisure."
>>
>> Sleepy nodes are not allowed to subscribe, and must poll.
>>
>> Regards - Charles Palmer
>>
>> -----Original Message-----
>> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of
>> Angelo P. Castellani
>> Sent: 14 May 2010 13:14
>> To: Zach Shelby
>> Cc: core
>> Subject: Re: [core] Selecting a WG document for CoAP
>>
>> Zach,
>>
>> thanks for the comments, but please refer to my most recent e-mail for
>> a more specific list of technical issues I'm pointing to.
>>
>> I want to do only a little integration to what I've written there.
>>
>> In my very personal opinion, to maximize adherence with the REST model
>> and minimize implementation effort SUBSCRIBE and NOTIFY should be
>> mapped to methods (as discussed many times together...).
>>
>> Uniform interface principle (Fielding PhD dissertation Section 5.1.5,
>> "The central feature that distinguishes the REST architectural style
>> [...]") states that to simplify the software architecture, resource
>> interfaces/interfaces should be as general as possible.
>>
>> I agree with this principle in this specific case, mainly because
>> handling a special message type for notify leads node software design
>> to a more complex architecture.
>>
>> The reason is that this new message type requires special handling and
>> introduces a complexity in the software modularization.
>>
>> Best,
>> Angelo
>>
>> On Fri, May 14, 2010 at 13:06, Zach Shelby<zach@sensinode.com>  wrote:
>>     =20
>>> Hi Angelo,
>>>
>>> On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:
>>>
>>>       =20
>>>> Dear C. Bormann, all,
>>>>
>>>> before deciding for the final direction, I've the following
>>>> observations about draft-shelby-core-coap-01
>>>>
>>>> While I mostly share Zach's view of the protocol approach, and
>>>> appreciate many aspects of the proposal, there are in my opinion
>>>>         =20
>> still
>>     =20
>>>> some open issues that need to be at least discussed before the
>>>>         =20
>> current
>>     =20
>>>> document can be selected.
>>>>         =20
>>> Of course there are plenty of open issues. Remember that working group
>>>       =20
>> documents still undertake as much change and improvement as the WG
>> wants, so by no means is coap-01 set in stone. I would expect at least
>> 5-10 more revisions still along the way.  Already several of your ideas
>> have been integrated into coap-01, and several more are under
>> consideration, so it is coming along. Patience ;-)
>>     =20
>>>       =20
>>>> In particular, I would like to highlight the following:
>>>>
>>>> a) As it is now, it is not possible to have a straightforward
>>>> translation of HTTP ->  CoAP and viceversa: see
>>>> http://www.ietf.org/mail-archive/web/core/current/msg00133.html (this
>>>> impacts the scalability of the web service model too)
>>>>         =20
>>> In coap-01 the Method names are now identical to HTTP methods. The
>>>       =20
>> Req/Res interaction is a direct translation. The URI hierarchy is
>> compatible, and the URI binary code format we are still working on
>> obviously. The only thing that takes some state to translate is
>> Subscribe/Notify. But note, Subscribe/Notify takes some state no matter
>> how you do it, even with HTTP-HTTP there is no clean and easy way to
>> handle subscriptions.
>>     =20
>>>       =20
>>>> b) Moreover, CoAP's implementation is not as simple as it should be.
>>>> I've investigated the implementation and some design choices (as
>>>> Options) are leading to very high program complexity (ROM) on a
>>>> MSP430-based device.
>>>>         =20
>>> This we can definitely improve, and already made several optimizations
>>>       =20
>> from -00 to -01. Here I need some very concrete proposals though. Also
>> remember that many things are optional, for example subscribe/notify is
>> not required if you don't need it.
>>     =20
>>>       =20
>>>> c) Finally when comparing HTTP message size with CoAP message size,
>>>> the resulting compression isn't as good as you may expect.
>>>>
>>>> Example:
>>>> HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
>>>> CoAP: 24 B with options parsing procedure requiring an added
>>>> implementation complexity
>>>>         =20
>>> Right, that is not how it will work in practice. Working with a real
>>>       =20
>> HTTP server that HTTP header will be more complex, and on the CoAP side
>> you would chose shorter URLs. The biggest improvement possible here is
>> from using binary coded URLs of course. We need to look at a wider range
>> of interactions and real HTTP headers as well to check that we are
>> efficient enough.
>>     =20
>>>       =20
>>>> Addressing all these points potentially leads to major technical
>>>> modifications (especially point a) on the current draft, hence it is
>>>> appropriate in my opinion to discuss these points before making the
>>>> final decision.
>>>>         =20
>>> I am not sure what else you have in mind for a). If we just forget
>>>       =20
>> about Subscribe/Notify then you are good to go. But then you are also
>> not fulfilling the charter or the industry needs in that respect.
>>     =20
>>> Thanks,
>>> Zach
>>>
>>>       =20
>>>> Best regards,
>>>>
>>>> Angelo P. Castellani
>>>>
>>>>
>>>> On Mon, May 10, 2010 at 18:51, Carsten Bormann<cabo@tzi.org>  wrote:
>>>>         =20
>>>>> The CORE WG has a milestone to select a WG document for CoAP in
>>>>>           =20
>> April:
>>     =20
>>>>> http://datatracker.ietf.org/wg/core/charter/
>>>>> ...
>>>>> Apr 2010        Select WG document for basis of the CoAP protocol
>>>>>
>>>>> Of the various documents that have been contributed,
>>>>>           =20
>> draft-shelby-core-coap has significant discussion, as well as the
>> largest number of updates (including a previous version that was still
>> called -6lowapp-coap).
>>     =20
>>>>> Today, another updated version of that draft was announced.  See
>>>>> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
>>>>> for the announcement and
>>>>> http://tools.ietf.org/html/draft-shelby-core-coap-01
>>>>> for the draft itself.
>>>>>
>>>>> However, as the authors say, there are still significant TODOs.
>>>>>
>>>>> Are we in a state yet where we can say whether this is the right
>>>>>           =20
>> direction for the WG to take?
>>     =20
>>>>> If yes, is it the right direction?  Should we adopt it as a WG
>>>>>           =20
>> document?
>>     =20
>>>>> If you don't think we can say yet, is there a set of technical
>>>>>           =20
>> decisions you would like the authors to take with priority?
>>     =20
>>>>> Note that once a document has become a WG document, the authors act
>>>>>           =20
>> as editors for the working group, making (and usually fleshing out the
>> details of) any change that the WG decides it needs.
>>     =20
>>>>> If you think we can still improve the draft, this is not an obstacle
>>>>>           =20
>> to making it a WG document.
>>     =20
>>>>> But of course we shouldn't do that if we intend to reverse its
>>>>>           =20
>> fundamental technical direction.
>>     =20
>>>>> In order to stay roughly in sync with our milestones, we should
>>>>>           =20
>> reach at a decision on how to go forward this week.
>>     =20
>>>>> Gruesse, Carsten
>>>>>
>>>>> _______________________________________________
>>>>> core mailing list
>>>>> core@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>
>>>>>           =20
>>>> _______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>>>         =20
>>> --
>>> 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
>>>
>>>
>>>       =20
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>> --------------------------------
>> Onzo is a limited company number 06097997 registered in England&  Wales.=
 The
>> registered office is 6 Great Newport Street, London, WC2H 7JB, United Ki=
ngdom.
>>
>> This email message may contain confidential and/or privileged informatio=
n, and
>> is intended solely for the addressee(s). If you have received this email=
 in
>> error, please notify Onzo immediately. Unauthorised copying, disclosure =
or
>> distribution of the material in this email is forbidden.
>> --------------------------------
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>> ______________________________________________________________________
>> This email has been scanned by the MessageLabs Email Security System.
>> ______________________________________________________________________
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>     =20
>   =20

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

--------------------------------
Onzo is a limited company number 06097997 registered in England & Wales. Th=
e   =20
registered office is 6 Great Newport Street, London, WC2H 7JB, United Kingd=
om.

This email message may contain confidential and/or privileged information, =
and
is intended solely for the addressee(s). If you have received this email in=
    =20
error, please notify Onzo immediately. Unauthorised copying, disclosure or=
=20
distribution of the material in this email is forbidden.
--------------------------------


From paduffy@cisco.com  Tue May 25 17:28:59 2010
Return-Path: <paduffy@cisco.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 40FD83A65A6 for <core@core3.amsl.com>; Tue, 25 May 2010 17:28:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.699
X-Spam-Level: 
X-Spam-Status: No, score=-5.699 tagged_above=-999 required=5 tests=[BAYES_50=0.001, MANGLED_TOOL=2.3, 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 TjcbvTC75o3C for <core@core3.amsl.com>; Tue, 25 May 2010 17:28:49 -0700 (PDT)
Received: from sj-iport-6.cisco.com (sj-iport-6.cisco.com [171.71.176.117]) by core3.amsl.com (Postfix) with ESMTP id A14CC3A6AB3 for <core@ietf.org>; Tue, 25 May 2010 15:31:27 -0700 (PDT)
Authentication-Results: sj-iport-6.cisco.com; dkim=neutral (message not signed) header.i=none
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AvsEAL/s+0urRN+J/2dsb2JhbACeGXGnC4FuCwGXeQKFEQQ
X-IronPort-AV: E=Sophos;i="4.53,299,1272844800"; d="scan'208";a="535176023"
Received: from sj-core-3.cisco.com ([171.68.223.137]) by sj-iport-6.cisco.com with ESMTP; 25 May 2010 22:31:19 +0000
Received: from [10.86.249.191] (bxb-vpn3-447.cisco.com [10.86.249.191]) by sj-core-3.cisco.com (8.13.8/8.14.3) with ESMTP id o4PMVIvB015940; Tue, 25 May 2010 22:31:18 GMT
Message-ID: <4BFC4FB5.9020102@cisco.com>
Date: Tue, 25 May 2010 18:31:17 -0400
From: Paul Duffy <paduffy@cisco.com>
Organization: Cisco Systems
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4
MIME-Version: 1.0
To: Charles Palmer <charles.palmer@onzo.com>
References: <OF97EC852F.8A85DCEB-ONC1257726.0051887E-C1257726.005677A7@schneider-electric.com><3602E0C6-1E2E-4164-A208-A874128325AF@sensinode.com> <4BFB3A66.5080700@cisco.com> <E4DBD8AB11D2E54F89B23D7CD1065D8C0105621D@onzosbs2k3.ONZO.local>
In-Reply-To: <E4DBD8AB11D2E54F89B23D7CD1065D8C0105621D@onzosbs2k3.ONZO.local>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit
Cc: core <core@ietf.org>
Subject: Re: [core] Subscribe/Notify for CoAP
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: paduffy@cisco.com
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, 26 May 2010 00:28:59 -0000

On 5/25/2010 6:23 PM, Charles Palmer wrote:
> Hi folks
>
> It occurs to me that CoRE should be keeping a close eye on ZigBee SE2.0 work, so that it is as easy as possible for ZigBee SE to use CoRE when ready. That suggests to me that we should align with their subscribe/notify process.
>    

Which is based upon existing HTTP methods and not introducing new 
methods to support subscriptions.

The intent is to make it possible to interchange HTTP and COAP as 
necessary/appropriate.


> Regards - Charles
>
>
> -----Original Message-----
> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of Paul Duffy
> Sent: 25 May 2010 03:48
> To: Zach Shelby
> Cc: core
> Subject: Re: [core] Subscribe/Notify for CoAP
>
> Recommend something like #2, primarily to avoid introducing non HTTP
> method semantics, simplifying HTTP/COAP translation.gateways, etc.
>
>
> On 5/24/2010 11:49 AM, Zach Shelby wrote:
>    
>> (thread renamed)
>>
>> We have two different paths with regard to a subscribe/notify mechanism for CoAP:
>>
>> 1. Use specific Subscription and Notify mechanisms for CoAP as HTTP really does not include this concept.
>> 1a) Notify as a message and SUBSCRIBE as a method. This is currently used in coap-01.
>> 1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but we had a good list discussion about this leading to a. In practice it doesn't make a big difference if notification is a message or method.
>>
>> 2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0 proposal or GENA.
>>
>> So far we have focused on 1 in the WG, and every now and again 2 comes up. At least I am not convinced that we need to suffer the drawbacks of HTTP here. Anyways 2 does not help our mapping to HTTP in reality very much as there is no standard way of doing this over HTTP. Thus a CoAP-HTTP proxy may end up anyways translating between multiple HTTP frameworks depending on the application. So instead of doing a CoAP Notify/Subscribe to Webhooks mapping, you will could end up having to do a CoAP Webhooks to HTTP GENA mapping.
>>
>>      
>
> I don't understand this last para.  If CoAP sticks to the semantics of
> the current HTTP methods, would this not offer a fairly straightforward
> translation to/from HTTP?
>
>
>    
>>>  From what I have heard so far 1 still seems like a wise choice, although I need to look at Webhooks more deeply. In reality many applications specify their own way of doing a push interface using REST methods and specific payloads (ZigBee SE2.0 is such an example). That is just fine, and might be used instead of a specific CoAP notify/subscribe in that case. So 1 doesn't prevent the application using its own mechanism, it just provides a native way for doing push.
>>>        
>> What do people think?
>>
>> Zach
>>
>> On May 17, 2010, at 6:44 PM, matthieu.vial@fr.non.schneider-electric.com wrote:
>>
>>
>>      
>>> Hi,
>>>
>>> My comments about the subscribe/notify mechanism of Zigbee IP.
>>>
>>> Pros:
>>> - Derived from the webhooks concept
>>> - If used by CORE it will be easier to map to HTTP because it uses only CRUD verbs.
>>> - The subscription message is extendable and could support advanced options (delays, increment, ...)
>>> - Only one listening port whatever the transport binding is.
>>>
>>> Cons:
>>> - No interoperability without well known URIs and a well defined subscription message format (Not sure CoAP draft is the right place to specify this).
>>> - XML/EXI is too complex to be the required format for the default subscription/notification mechanism.
>>> - The notification should not require a subsequent GET to retrieve the content.
>>> - Subresource subscription is redundant.
>>>
>>> Hope this could help,
>>> Matthieu
>>>
>>>
>>> <graycol.gif>"Charles Palmer"<charles.palmer@onzo.com>
>>>
>>>
>>>
>>>
>>> "Charles Palmer"<charles.palmer@onzo.com>
>>> Envoyé par : core-bounces@ietf.org
>>> 15/05/2010 14:06
>>>
>>> <ecblank.gif>
>>> A
>>> <ecblank.gif>
>>> "core"<core@ietf.org>
>>> <ecblank.gif>
>>> cc
>>> <ecblank.gif>
>>> <ecblank.gif>
>>> Objet
>>> <ecblank.gif>
>>> Re: [core] Selecting a WG document for CoAP
>>> <ecblank.gif>	<ecblank.gif>
>>>
>>> Dear all
>>>
>>> Those interested in the subscribe/notify discussion might like to look
>>> at the draft Smart Energy Profile 2.0 Application Protocol
>>> Specification. It is available here:
>>> http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicApp
>>> licationProfile.aspx
>>>
>>> It manages subscribe/notify by using POST. This seems to remove the need
>>> for SUBSCRIBE and notify.
>>>
>>> "Imagine a host A, which exposes a resource at http{s}://A/resource and
>>> a second host B, which wishes to learn of changes to this resource. To
>>> facilitate a subscription/ notification mechanism, A would expose a
>>> resource http{s}://A/sub and B would expose a resource http{s}://B/ntfy.
>>> To subscribe to notifications regarding http{s}://A/resource, B would
>>> send a POST to the address http{s}://A/sub/B containing the URI of the
>>> resource of interest (http{s}://A/resource) and the URI of B's
>>> notification resource (http{s}://B/ntfy). Following this subscription
>>> step, should A wish to notify B of a change to the resource addressed at
>>> http{s}://A/resource, A would send a POST to the address
>>> http{s}://B/ntfy containing the URI of the resource changed
>>> (http{s}://A/resource) and the URI of A's subscription resource
>>> (http{s}://A/sub/B), should A wish to change its subscription. The host
>>> B can then query the resource (or not) at its leisure."
>>>
>>> Sleepy nodes are not allowed to subscribe, and must poll.
>>>
>>> Regards - Charles Palmer
>>>
>>> -----Original Message-----
>>> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of
>>> Angelo P. Castellani
>>> Sent: 14 May 2010 13:14
>>> To: Zach Shelby
>>> Cc: core
>>> Subject: Re: [core] Selecting a WG document for CoAP
>>>
>>> Zach,
>>>
>>> thanks for the comments, but please refer to my most recent e-mail for
>>> a more specific list of technical issues I'm pointing to.
>>>
>>> I want to do only a little integration to what I've written there.
>>>
>>> In my very personal opinion, to maximize adherence with the REST model
>>> and minimize implementation effort SUBSCRIBE and NOTIFY should be
>>> mapped to methods (as discussed many times together...).
>>>
>>> Uniform interface principle (Fielding PhD dissertation Section 5.1.5,
>>> "The central feature that distinguishes the REST architectural style
>>> [...]") states that to simplify the software architecture, resource
>>> interfaces/interfaces should be as general as possible.
>>>
>>> I agree with this principle in this specific case, mainly because
>>> handling a special message type for notify leads node software design
>>> to a more complex architecture.
>>>
>>> The reason is that this new message type requires special handling and
>>> introduces a complexity in the software modularization.
>>>
>>> Best,
>>> Angelo
>>>
>>> On Fri, May 14, 2010 at 13:06, Zach Shelby<zach@sensinode.com>   wrote:
>>>
>>>        
>>>> Hi Angelo,
>>>>
>>>> On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:
>>>>
>>>>
>>>>          
>>>>> Dear C. Bormann, all,
>>>>>
>>>>> before deciding for the final direction, I've the following
>>>>> observations about draft-shelby-core-coap-01
>>>>>
>>>>> While I mostly share Zach's view of the protocol approach, and
>>>>> appreciate many aspects of the proposal, there are in my opinion
>>>>>
>>>>>            
>>> still
>>>
>>>        
>>>>> some open issues that need to be at least discussed before the
>>>>>
>>>>>            
>>> current
>>>
>>>        
>>>>> document can be selected.
>>>>>
>>>>>            
>>>> Of course there are plenty of open issues. Remember that working group
>>>>
>>>>          
>>> documents still undertake as much change and improvement as the WG
>>> wants, so by no means is coap-01 set in stone. I would expect at least
>>> 5-10 more revisions still along the way.  Already several of your ideas
>>> have been integrated into coap-01, and several more are under
>>> consideration, so it is coming along. Patience ;-)
>>>
>>>        
>>>>
>>>>          
>>>>> In particular, I would like to highlight the following:
>>>>>
>>>>> a) As it is now, it is not possible to have a straightforward
>>>>> translation of HTTP ->   CoAP and viceversa: see
>>>>> http://www.ietf.org/mail-archive/web/core/current/msg00133.html (this
>>>>> impacts the scalability of the web service model too)
>>>>>
>>>>>            
>>>> In coap-01 the Method names are now identical to HTTP methods. The
>>>>
>>>>          
>>> Req/Res interaction is a direct translation. The URI hierarchy is
>>> compatible, and the URI binary code format we are still working on
>>> obviously. The only thing that takes some state to translate is
>>> Subscribe/Notify. But note, Subscribe/Notify takes some state no matter
>>> how you do it, even with HTTP-HTTP there is no clean and easy way to
>>> handle subscriptions.
>>>
>>>        
>>>>
>>>>          
>>>>> b) Moreover, CoAP's implementation is not as simple as it should be.
>>>>> I've investigated the implementation and some design choices (as
>>>>> Options) are leading to very high program complexity (ROM) on a
>>>>> MSP430-based device.
>>>>>
>>>>>            
>>>> This we can definitely improve, and already made several optimizations
>>>>
>>>>          
>>> from -00 to -01. Here I need some very concrete proposals though. Also
>>> remember that many things are optional, for example subscribe/notify is
>>> not required if you don't need it.
>>>
>>>        
>>>>
>>>>          
>>>>> c) Finally when comparing HTTP message size with CoAP message size,
>>>>> the resulting compression isn't as good as you may expect.
>>>>>
>>>>> Example:
>>>>> HTTP: GET /sensor/temp.xml HTTP/1.0 = 32 B
>>>>> CoAP: 24 B with options parsing procedure requiring an added
>>>>> implementation complexity
>>>>>
>>>>>            
>>>> Right, that is not how it will work in practice. Working with a real
>>>>
>>>>          
>>> HTTP server that HTTP header will be more complex, and on the CoAP side
>>> you would chose shorter URLs. The biggest improvement possible here is
>>> from using binary coded URLs of course. We need to look at a wider range
>>> of interactions and real HTTP headers as well to check that we are
>>> efficient enough.
>>>
>>>        
>>>>
>>>>          
>>>>> Addressing all these points potentially leads to major technical
>>>>> modifications (especially point a) on the current draft, hence it is
>>>>> appropriate in my opinion to discuss these points before making the
>>>>> final decision.
>>>>>
>>>>>            
>>>> I am not sure what else you have in mind for a). If we just forget
>>>>
>>>>          
>>> about Subscribe/Notify then you are good to go. But then you are also
>>> not fulfilling the charter or the industry needs in that respect.
>>>
>>>        
>>>> Thanks,
>>>> Zach
>>>>
>>>>
>>>>          
>>>>> Best regards,
>>>>>
>>>>> Angelo P. Castellani
>>>>>
>>>>>
>>>>> On Mon, May 10, 2010 at 18:51, Carsten Bormann<cabo@tzi.org>   wrote:
>>>>>
>>>>>            
>>>>>> The CORE WG has a milestone to select a WG document for CoAP in
>>>>>>
>>>>>>              
>>> April:
>>>
>>>        
>>>>>> http://datatracker.ietf.org/wg/core/charter/
>>>>>> ...
>>>>>> Apr 2010        Select WG document for basis of the CoAP protocol
>>>>>>
>>>>>> Of the various documents that have been contributed,
>>>>>>
>>>>>>              
>>> draft-shelby-core-coap has significant discussion, as well as the
>>> largest number of updates (including a previous version that was still
>>> called -6lowapp-coap).
>>>
>>>        
>>>>>> Today, another updated version of that draft was announced.  See
>>>>>> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
>>>>>> for the announcement and
>>>>>> http://tools.ietf.org/html/draft-shelby-core-coap-01
>>>>>> for the draft itself.
>>>>>>
>>>>>> However, as the authors say, there are still significant TODOs.
>>>>>>
>>>>>> Are we in a state yet where we can say whether this is the right
>>>>>>
>>>>>>              
>>> direction for the WG to take?
>>>
>>>        
>>>>>> If yes, is it the right direction?  Should we adopt it as a WG
>>>>>>
>>>>>>              
>>> document?
>>>
>>>        
>>>>>> If you don't think we can say yet, is there a set of technical
>>>>>>
>>>>>>              
>>> decisions you would like the authors to take with priority?
>>>
>>>        
>>>>>> Note that once a document has become a WG document, the authors act
>>>>>>
>>>>>>              
>>> as editors for the working group, making (and usually fleshing out the
>>> details of) any change that the WG decides it needs.
>>>
>>>        
>>>>>> If you think we can still improve the draft, this is not an obstacle
>>>>>>
>>>>>>              
>>> to making it a WG document.
>>>
>>>        
>>>>>> But of course we shouldn't do that if we intend to reverse its
>>>>>>
>>>>>>              
>>> fundamental technical direction.
>>>
>>>        
>>>>>> In order to stay roughly in sync with our milestones, we should
>>>>>>
>>>>>>              
>>> reach at a decision on how to go forward this week.
>>>
>>>        
>>>>>> Gruesse, Carsten
>>>>>>
>>>>>> _______________________________________________
>>>>>> core mailing list
>>>>>> core@ietf.org
>>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>>
>>>>>>
>>>>>>              
>>>>> _______________________________________________
>>>>> 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
>>>>
>>>>
>>>>
>>>>          
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>
>>> --------------------------------
>>> Onzo is a limited company number 06097997 registered in England&   Wales. The
>>> registered office is 6 Great Newport Street, London, WC2H 7JB, United Kingdom.
>>>
>>> This email message may contain confidential and/or privileged information, and
>>> is intended solely for the addressee(s). If you have received this email in
>>> error, please notify Onzo immediately. Unauthorised copying, disclosure or
>>> distribution of the material in this email is forbidden.
>>> --------------------------------
>>>
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>
>>> ______________________________________________________________________
>>> This email has been scanned by the MessageLabs Email Security System.
>>> ______________________________________________________________________
>>>
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>
>>>        
>>
>>      
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>
> --------------------------------
> Onzo is a limited company number 06097997 registered in England&  Wales. The
> registered office is 6 Great Newport Street, London, WC2H 7JB, United Kingdom.
>
> This email message may contain confidential and/or privileged information, and
> is intended solely for the addressee(s). If you have received this email in
> error, please notify Onzo immediately. Unauthorised copying, disclosure or
> distribution of the material in this email is forbidden.
> --------------------------------
>
>
>    


From zach@sensinode.com  Tue May 25 17:34:55 2010
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 94DE63A6D22 for <core@core3.amsl.com>; Tue, 25 May 2010 17:34:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.299
X-Spam-Level: 
X-Spam-Status: No, score=-1.299 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, MANGLED_TOOL=2.3, 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 RjddtUw0+zpw for <core@core3.amsl.com>; Tue, 25 May 2010 17:34:53 -0700 (PDT)
Received: from auth-smtp.nebula.fi (auth-smtp.nebula.fi [217.30.180.105]) by core3.amsl.com (Postfix) with ESMTP id 841D53A779E for <core@ietf.org>; Tue, 25 May 2010 15:41:51 -0700 (PDT)
Received: from [192.168.13.111] (135.Red-88-11-88.dynamicIP.rima-tde.net [88.11.88.135]) (authenticated bits=0) by auth-smtp.nebula.fi (8.13.4/8.13.4) with ESMTP id o4PMfFIS010065 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Wed, 26 May 2010 01:41:24 +0300
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: text/plain; charset=iso-8859-1
From: Zach Shelby <zach@sensinode.com>
In-Reply-To: <E4DBD8AB11D2E54F89B23D7CD1065D8C0105621D@onzosbs2k3.ONZO.local>
Date: Wed, 26 May 2010 00:41:14 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <324781C3-5548-474D-8995-EC327ED08209@sensinode.com>
References: <OF97EC852F.8A85DCEB-ONC1257726.0051887E-C1257726.005677A7@schneider-electric.com><3602E0C6-1E2E-4164-A208-A874128325AF@sensinode.com> <4BFB3A66.5080700@cisco.com> <E4DBD8AB11D2E54F89B23D7CD1065D8C0105621D@onzosbs2k3.ONZO.local>
To: "Charles Palmer" <charles.palmer@onzo.com>
X-Mailer: Apple Mail (2.1078)
Cc: core <core@ietf.org>
Subject: Re: [core] Subscribe/Notify for CoAP
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, 26 May 2010 00:34:55 -0000

Hi,

On May 26, 2010, at 12:23 AM, Charles Palmer wrote:

> Hi folks=20
>=20
> It occurs to me that CoRE should be keeping a close eye on ZigBee =
SE2.0 work, so that it is as easy as possible for ZigBee SE to use CoRE =
when ready. That suggests to me that we should align with their =
subscribe/notify process.
>=20

I am not sure I understand that. I mean, ZigBee SE2.0 is defining an =
application specific subscribe/notify mechanism for that purpose so far =
for HTTP. This uses standard HTTP methods and some custom payload and =
REST interfaces. CoAP Req/Res is already totally compatible with SE2.0 =
in that respect, so alignment is already OK there. Nothing stopping =
someone from using SE2.0 over CoAP.

Specifying a native susbcription/notify into CoAP is another matter. We =
can't adopt a solution specific to one application as that won't solve =
the problems of other applications nor general HTTP mapping at all =
(probably would make it worse). It seems that for the near future there =
will be a bunch of HTTP push mechanisms in use without any clear =
standard appearing - or am I wrong there?

Zach

> Regards - Charles=20
>=20
>=20
> -----Original Message-----
> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of Paul Duffy
> Sent: 25 May 2010 03:48
> To: Zach Shelby
> Cc: core
> Subject: Re: [core] Subscribe/Notify for CoAP
>=20
> Recommend something like #2, primarily to avoid introducing non HTTP=20=

> method semantics, simplifying HTTP/COAP translation.gateways, etc.
>=20
>=20
> On 5/24/2010 11:49 AM, Zach Shelby wrote:
>> (thread renamed)
>>=20
>> We have two different paths with regard to a subscribe/notify =
mechanism for CoAP:
>>=20
>> 1. Use specific Subscription and Notify mechanisms for CoAP as HTTP =
really does not include this concept.
>> 1a) Notify as a message and SUBSCRIBE as a method. This is currently =
used in coap-01.
>> 1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but we =
had a good list discussion about this leading to a. In practice it =
doesn't make a big difference if notification is a message or method.
>>=20
>> 2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0 =
proposal or GENA.
>>=20
>> So far we have focused on 1 in the WG, and every now and again 2 =
comes up. At least I am not convinced that we need to suffer the =
drawbacks of HTTP here. Anyways 2 does not help our mapping to HTTP in =
reality very much as there is no standard way of doing this over HTTP. =
Thus a CoAP-HTTP proxy may end up anyways translating between multiple =
HTTP frameworks depending on the application. So instead of doing a CoAP =
Notify/Subscribe to Webhooks mapping, you will could end up having to do =
a CoAP Webhooks to HTTP GENA mapping.
>>=20
>=20
>=20
> I don't understand this last para.  If CoAP sticks to the semantics of=20=

> the current HTTP methods, would this not offer a fairly =
straightforward=20
> translation to/from HTTP?
>=20
>=20
>>> =46rom what I have heard so far 1 still seems like a wise choice, =
although I need to look at Webhooks more deeply. In reality many =
applications specify their own way of doing a push interface using REST =
methods and specific payloads (ZigBee SE2.0 is such an example). That is =
just fine, and might be used instead of a specific CoAP notify/subscribe =
in that case. So 1 doesn't prevent the application using its own =
mechanism, it just provides a native way for doing push.
>>=20
>> What do people think?
>>=20
>> Zach
>>=20
>> On May 17, 2010, at 6:44 PM, =
matthieu.vial@fr.non.schneider-electric.com wrote:
>>=20
>>=20
>>> Hi,
>>>=20
>>> My comments about the subscribe/notify mechanism of Zigbee IP.
>>>=20
>>> Pros:
>>> - Derived from the webhooks concept
>>> - If used by CORE it will be easier to map to HTTP because it uses =
only CRUD verbs.
>>> - The subscription message is extendable and could support advanced =
options (delays, increment, ...)
>>> - Only one listening port whatever the transport binding is.
>>>=20
>>> Cons:
>>> - No interoperability without well known URIs and a well defined =
subscription message format (Not sure CoAP draft is the right place to =
specify this).
>>> - XML/EXI is too complex to be the required format for the default =
subscription/notification mechanism.
>>> - The notification should not require a subsequent GET to retrieve =
the content.
>>> - Subresource subscription is redundant.
>>>=20
>>> Hope this could help,
>>> Matthieu
>>>=20
>>>=20
>>> <graycol.gif>"Charles Palmer"<charles.palmer@onzo.com>
>>>=20
>>>=20
>>>=20
>>>=20
>>> "Charles Palmer"<charles.palmer@onzo.com>
>>> Envoy=E9 par : core-bounces@ietf.org
>>> 15/05/2010 14:06
>>>=20
>>> <ecblank.gif>
>>> A
>>> <ecblank.gif>
>>> "core"<core@ietf.org>
>>> <ecblank.gif>
>>> cc
>>> <ecblank.gif>
>>> <ecblank.gif>
>>> Objet
>>> <ecblank.gif>
>>> Re: [core] Selecting a WG document for CoAP
>>> <ecblank.gif>	<ecblank.gif>
>>>=20
>>> Dear all
>>>=20
>>> Those interested in the subscribe/notify discussion might like to =
look
>>> at the draft Smart Energy Profile 2.0 Application Protocol
>>> Specification. It is available here:
>>> =
http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicApp
>>> licationProfile.aspx
>>>=20
>>> It manages subscribe/notify by using POST. This seems to remove the =
need
>>> for SUBSCRIBE and notify.
>>>=20
>>> "Imagine a host A, which exposes a resource at http{s}://A/resource =
and
>>> a second host B, which wishes to learn of changes to this resource. =
To
>>> facilitate a subscription/ notification mechanism, A would expose a
>>> resource http{s}://A/sub and B would expose a resource =
http{s}://B/ntfy.
>>> To subscribe to notifications regarding http{s}://A/resource, B =
would
>>> send a POST to the address http{s}://A/sub/B containing the URI of =
the
>>> resource of interest (http{s}://A/resource) and the URI of B's
>>> notification resource (http{s}://B/ntfy). Following this =
subscription
>>> step, should A wish to notify B of a change to the resource =
addressed at
>>> http{s}://A/resource, A would send a POST to the address
>>> http{s}://B/ntfy containing the URI of the resource changed
>>> (http{s}://A/resource) and the URI of A's subscription resource
>>> (http{s}://A/sub/B), should A wish to change its subscription. The =
host
>>> B can then query the resource (or not) at its leisure."
>>>=20
>>> Sleepy nodes are not allowed to subscribe, and must poll.
>>>=20
>>> Regards - Charles Palmer
>>>=20
>>> -----Original Message-----
>>> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of
>>> Angelo P. Castellani
>>> Sent: 14 May 2010 13:14
>>> To: Zach Shelby
>>> Cc: core
>>> Subject: Re: [core] Selecting a WG document for CoAP
>>>=20
>>> Zach,
>>>=20
>>> thanks for the comments, but please refer to my most recent e-mail =
for
>>> a more specific list of technical issues I'm pointing to.
>>>=20
>>> I want to do only a little integration to what I've written there.
>>>=20
>>> In my very personal opinion, to maximize adherence with the REST =
model
>>> and minimize implementation effort SUBSCRIBE and NOTIFY should be
>>> mapped to methods (as discussed many times together...).
>>>=20
>>> Uniform interface principle (Fielding PhD dissertation Section =
5.1.5,
>>> "The central feature that distinguishes the REST architectural style
>>> [...]") states that to simplify the software architecture, resource
>>> interfaces/interfaces should be as general as possible.
>>>=20
>>> I agree with this principle in this specific case, mainly because
>>> handling a special message type for notify leads node software =
design
>>> to a more complex architecture.
>>>=20
>>> The reason is that this new message type requires special handling =
and
>>> introduces a complexity in the software modularization.
>>>=20
>>> Best,
>>> Angelo
>>>=20
>>> On Fri, May 14, 2010 at 13:06, Zach Shelby<zach@sensinode.com>  =
wrote:
>>>=20
>>>> Hi Angelo,
>>>>=20
>>>> On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:
>>>>=20
>>>>=20
>>>>> Dear C. Bormann, all,
>>>>>=20
>>>>> before deciding for the final direction, I've the following
>>>>> observations about draft-shelby-core-coap-01
>>>>>=20
>>>>> While I mostly share Zach's view of the protocol approach, and
>>>>> appreciate many aspects of the proposal, there are in my opinion
>>>>>=20
>>> still
>>>=20
>>>>> some open issues that need to be at least discussed before the
>>>>>=20
>>> current
>>>=20
>>>>> document can be selected.
>>>>>=20
>>>> Of course there are plenty of open issues. Remember that working =
group
>>>>=20
>>> documents still undertake as much change and improvement as the WG
>>> wants, so by no means is coap-01 set in stone. I would expect at =
least
>>> 5-10 more revisions still along the way.  Already several of your =
ideas
>>> have been integrated into coap-01, and several more are under
>>> consideration, so it is coming along. Patience ;-)
>>>=20
>>>>=20
>>>>> In particular, I would like to highlight the following:
>>>>>=20
>>>>> a) As it is now, it is not possible to have a straightforward
>>>>> translation of HTTP ->  CoAP and viceversa: see
>>>>> http://www.ietf.org/mail-archive/web/core/current/msg00133.html =
(this
>>>>> impacts the scalability of the web service model too)
>>>>>=20
>>>> In coap-01 the Method names are now identical to HTTP methods. The
>>>>=20
>>> Req/Res interaction is a direct translation. The URI hierarchy is
>>> compatible, and the URI binary code format we are still working on
>>> obviously. The only thing that takes some state to translate is
>>> Subscribe/Notify. But note, Subscribe/Notify takes some state no =
matter
>>> how you do it, even with HTTP-HTTP there is no clean and easy way to
>>> handle subscriptions.
>>>=20
>>>>=20
>>>>> b) Moreover, CoAP's implementation is not as simple as it should =
be.
>>>>> I've investigated the implementation and some design choices (as
>>>>> Options) are leading to very high program complexity (ROM) on a
>>>>> MSP430-based device.
>>>>>=20
>>>> This we can definitely improve, and already made several =
optimizations
>>>>=20
>>> from -00 to -01. Here I need some very concrete proposals though. =
Also
>>> remember that many things are optional, for example subscribe/notify =
is
>>> not required if you don't need it.
>>>=20
>>>>=20
>>>>> c) Finally when comparing HTTP message size with CoAP message =
size,
>>>>> the resulting compression isn't as good as you may expect.
>>>>>=20
>>>>> Example:
>>>>> HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
>>>>> CoAP: 24 B with options parsing procedure requiring an added
>>>>> implementation complexity
>>>>>=20
>>>> Right, that is not how it will work in practice. Working with a =
real
>>>>=20
>>> HTTP server that HTTP header will be more complex, and on the CoAP =
side
>>> you would chose shorter URLs. The biggest improvement possible here =
is
>>> from using binary coded URLs of course. We need to look at a wider =
range
>>> of interactions and real HTTP headers as well to check that we are
>>> efficient enough.
>>>=20
>>>>=20
>>>>> Addressing all these points potentially leads to major technical
>>>>> modifications (especially point a) on the current draft, hence it =
is
>>>>> appropriate in my opinion to discuss these points before making =
the
>>>>> final decision.
>>>>>=20
>>>> I am not sure what else you have in mind for a). If we just forget
>>>>=20
>>> about Subscribe/Notify then you are good to go. But then you are =
also
>>> not fulfilling the charter or the industry needs in that respect.
>>>=20
>>>> Thanks,
>>>> Zach
>>>>=20
>>>>=20
>>>>> Best regards,
>>>>>=20
>>>>> Angelo P. Castellani
>>>>>=20
>>>>>=20
>>>>> On Mon, May 10, 2010 at 18:51, Carsten Bormann<cabo@tzi.org>  =
wrote:
>>>>>=20
>>>>>> The CORE WG has a milestone to select a WG document for CoAP in
>>>>>>=20
>>> April:
>>>=20
>>>>>> http://datatracker.ietf.org/wg/core/charter/
>>>>>> ...
>>>>>> Apr 2010        Select WG document for basis of the CoAP protocol
>>>>>>=20
>>>>>> Of the various documents that have been contributed,
>>>>>>=20
>>> draft-shelby-core-coap has significant discussion, as well as the
>>> largest number of updates (including a previous version that was =
still
>>> called -6lowapp-coap).
>>>=20
>>>>>> Today, another updated version of that draft was announced.  See
>>>>>> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
>>>>>> for the announcement and
>>>>>> http://tools.ietf.org/html/draft-shelby-core-coap-01
>>>>>> for the draft itself.
>>>>>>=20
>>>>>> However, as the authors say, there are still significant TODOs.
>>>>>>=20
>>>>>> Are we in a state yet where we can say whether this is the right
>>>>>>=20
>>> direction for the WG to take?
>>>=20
>>>>>> If yes, is it the right direction?  Should we adopt it as a WG
>>>>>>=20
>>> document?
>>>=20
>>>>>> If you don't think we can say yet, is there a set of technical
>>>>>>=20
>>> decisions you would like the authors to take with priority?
>>>=20
>>>>>> Note that once a document has become a WG document, the authors =
act
>>>>>>=20
>>> as editors for the working group, making (and usually fleshing out =
the
>>> details of) any change that the WG decides it needs.
>>>=20
>>>>>> If you think we can still improve the draft, this is not an =
obstacle
>>>>>>=20
>>> to making it a WG document.
>>>=20
>>>>>> But of course we shouldn't do that if we intend to reverse its
>>>>>>=20
>>> fundamental technical direction.
>>>=20
>>>>>> In order to stay roughly in sync with our milestones, we should
>>>>>>=20
>>> reach at a decision on how to go forward this week.
>>>=20
>>>>>> Gruesse, Carsten
>>>>>>=20
>>>>>> _______________________________________________
>>>>>> core mailing list
>>>>>> core@ietf.org
>>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>>=20
>>>>>>=20
>>>>> _______________________________________________
>>>>> core mailing list
>>>>> core@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>=20
>>>> --
>>>> 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
>>>>=20
>>>>=20
>>>>=20
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>=20
>>> --------------------------------
>>> Onzo is a limited company number 06097997 registered in England&  =
Wales. The
>>> registered office is 6 Great Newport Street, London, WC2H 7JB, =
United Kingdom.
>>>=20
>>> This email message may contain confidential and/or privileged =
information, and
>>> is intended solely for the addressee(s). If you have received this =
email in
>>> error, please notify Onzo immediately. Unauthorised copying, =
disclosure or
>>> distribution of the material in this email is forbidden.
>>> --------------------------------
>>>=20
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>=20
>>> =
______________________________________________________________________
>>> This email has been scanned by the MessageLabs Email Security =
System.
>>> =
______________________________________________________________________
>>>=20
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>=20
>>=20
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>=20
> --------------------------------
> Onzo is a limited company number 06097997 registered in England & =
Wales. The   =20
> registered office is 6 Great Newport Street, London, WC2H 7JB, United =
Kingdom.
>=20
> This email message may contain confidential and/or privileged =
information, and
> is intended solely for the addressee(s). If you have received this =
email in    =20
> error, please notify Onzo immediately. Unauthorised copying, =
disclosure or=20
> distribution of the material in this email is forbidden.
> --------------------------------
>=20

--=20
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


From paduffy@cisco.com  Tue May 25 17:35:24 2010
Return-Path: <paduffy@cisco.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 131573A6B1C for <core@core3.amsl.com>; Tue, 25 May 2010 17:35:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.299
X-Spam-Level: 
X-Spam-Status: No, score=-8.299 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, MANGLED_TOOL=2.3, 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 SKE7Jqrtqg7v for <core@core3.amsl.com>; Tue, 25 May 2010 17:35:21 -0700 (PDT)
Received: from rtp-iport-2.cisco.com (rtp-iport-2.cisco.com [64.102.122.149]) by core3.amsl.com (Postfix) with ESMTP id 548803A77C5 for <core@ietf.org>; Tue, 25 May 2010 15:47:15 -0700 (PDT)
Authentication-Results: rtp-iport-2.cisco.com; dkim=neutral (message not signed) header.i=none
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AvsEAH/w+0tAZnwN/2dsb2JhbACeGXGmb4FuCwGXegKFEQQ
X-IronPort-AV: E=Sophos;i="4.53,300,1272844800"; d="scan'208";a="114804831"
Received: from rtp-core-2.cisco.com ([64.102.124.13]) by rtp-iport-2.cisco.com with ESMTP; 25 May 2010 22:47:06 +0000
Received: from [10.86.249.191] (bxb-vpn3-447.cisco.com [10.86.249.191]) by rtp-core-2.cisco.com (8.13.8/8.14.3) with ESMTP id o4PMl5EL016358; Tue, 25 May 2010 22:47:06 GMT
Message-ID: <4BFC5368.2010602@cisco.com>
Date: Tue, 25 May 2010 18:47:04 -0400
From: Paul Duffy <paduffy@cisco.com>
Organization: Cisco Systems
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4
MIME-Version: 1.0
To: Zach Shelby <zach@sensinode.com>
References: <OF97EC852F.8A85DCEB-ONC1257726.0051887E-C1257726.005677A7@schneider-electric.com><3602E0C6-1E2E-4164-A208-A874128325AF@sensinode.com> <4BFB3A66.5080700@cisco.com> <E4DBD8AB11D2E54F89B23D7CD1065D8C0105621D@onzosbs2k3.ONZO.local> <324781C3-5548-474D-8995-EC327ED08209@sensinode.com>
In-Reply-To: <324781C3-5548-474D-8995-EC327ED08209@sensinode.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Cc: core <core@ietf.org>
Subject: Re: [core] Subscribe/Notify for CoAP
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: paduffy@cisco.com
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, 26 May 2010 00:35:24 -0000

On 5/25/2010 6:41 PM, Zach Shelby wrote:
> Hi,
>
> On May 26, 2010, at 12:23 AM, Charles Palmer wrote:
>
>    
>> Hi folks
>>
>> It occurs to me that CoRE should be keeping a close eye on ZigBee SE2.0 work, so that it is as easy as possible for ZigBee SE to use CoRE when ready. That suggests to me that we should align with their subscribe/notify process.
>>
>>      
> I am not sure I understand that. I mean, ZigBee SE2.0 is defining an application specific subscribe/notify mechanism for that purpose so far for HTTP. This uses standard HTTP methods and some custom payload and REST interfaces. CoAP Req/Res is already totally compatible with SE2.0 in that respect, so alignment is already OK there. Nothing stopping someone from using SE2.0 over CoAP.
>
> Specifying a native susbcription/notify into CoAP is another matter. We can't adopt a solution specific to one application as that won't solve the problems of other applications nor general HTTP mapping at all (probably would make it worse). It seems that for the near future there will be a bunch of HTTP push mechanisms in use without any clear standard appearing - or am I wrong there?
>    



If COAP extends HTTP semantics with new subscription methods, it will 
not be possible to easily interchange HTTP/COAP, and translation 
gateways will become more complex to implement.



> Zach
>
>    
>> Regards - Charles
>>
>>
>> -----Original Message-----
>> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of Paul Duffy
>> Sent: 25 May 2010 03:48
>> To: Zach Shelby
>> Cc: core
>> Subject: Re: [core] Subscribe/Notify for CoAP
>>
>> Recommend something like #2, primarily to avoid introducing non HTTP
>> method semantics, simplifying HTTP/COAP translation.gateways, etc.
>>
>>
>> On 5/24/2010 11:49 AM, Zach Shelby wrote:
>>      
>>> (thread renamed)
>>>
>>> We have two different paths with regard to a subscribe/notify mechanism for CoAP:
>>>
>>> 1. Use specific Subscription and Notify mechanisms for CoAP as HTTP really does not include this concept.
>>> 1a) Notify as a message and SUBSCRIBE as a method. This is currently used in coap-01.
>>> 1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but we had a good list discussion about this leading to a. In practice it doesn't make a big difference if notification is a message or method.
>>>
>>> 2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0 proposal or GENA.
>>>
>>> So far we have focused on 1 in the WG, and every now and again 2 comes up. At least I am not convinced that we need to suffer the drawbacks of HTTP here. Anyways 2 does not help our mapping to HTTP in reality very much as there is no standard way of doing this over HTTP. Thus a CoAP-HTTP proxy may end up anyways translating between multiple HTTP frameworks depending on the application. So instead of doing a CoAP Notify/Subscribe to Webhooks mapping, you will could end up having to do a CoAP Webhooks to HTTP GENA mapping.
>>>
>>>        
>>
>> I don't understand this last para.  If CoAP sticks to the semantics of
>> the current HTTP methods, would this not offer a fairly straightforward
>> translation to/from HTTP?
>>
>>
>>      
>>>>  From what I have heard so far 1 still seems like a wise choice, although I need to look at Webhooks more deeply. In reality many applications specify their own way of doing a push interface using REST methods and specific payloads (ZigBee SE2.0 is such an example). That is just fine, and might be used instead of a specific CoAP notify/subscribe in that case. So 1 doesn't prevent the application using its own mechanism, it just provides a native way for doing push.
>>>>          
>>> What do people think?
>>>
>>> Zach
>>>
>>> On May 17, 2010, at 6:44 PM, matthieu.vial@fr.non.schneider-electric.com wrote:
>>>
>>>
>>>        
>>>> Hi,
>>>>
>>>> My comments about the subscribe/notify mechanism of Zigbee IP.
>>>>
>>>> Pros:
>>>> - Derived from the webhooks concept
>>>> - If used by CORE it will be easier to map to HTTP because it uses only CRUD verbs.
>>>> - The subscription message is extendable and could support advanced options (delays, increment, ...)
>>>> - Only one listening port whatever the transport binding is.
>>>>
>>>> Cons:
>>>> - No interoperability without well known URIs and a well defined subscription message format (Not sure CoAP draft is the right place to specify this).
>>>> - XML/EXI is too complex to be the required format for the default subscription/notification mechanism.
>>>> - The notification should not require a subsequent GET to retrieve the content.
>>>> - Subresource subscription is redundant.
>>>>
>>>> Hope this could help,
>>>> Matthieu
>>>>
>>>>
>>>> <graycol.gif>"Charles Palmer"<charles.palmer@onzo.com>
>>>>
>>>>
>>>>
>>>>
>>>> "Charles Palmer"<charles.palmer@onzo.com>
>>>> Envoyé par : core-bounces@ietf.org
>>>> 15/05/2010 14:06
>>>>
>>>> <ecblank.gif>
>>>> A
>>>> <ecblank.gif>
>>>> "core"<core@ietf.org>
>>>> <ecblank.gif>
>>>> cc
>>>> <ecblank.gif>
>>>> <ecblank.gif>
>>>> Objet
>>>> <ecblank.gif>
>>>> Re: [core] Selecting a WG document for CoAP
>>>> <ecblank.gif>	<ecblank.gif>
>>>>
>>>> Dear all
>>>>
>>>> Those interested in the subscribe/notify discussion might like to look
>>>> at the draft Smart Energy Profile 2.0 Application Protocol
>>>> Specification. It is available here:
>>>> http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicApp
>>>> licationProfile.aspx
>>>>
>>>> It manages subscribe/notify by using POST. This seems to remove the need
>>>> for SUBSCRIBE and notify.
>>>>
>>>> "Imagine a host A, which exposes a resource at http{s}://A/resource and
>>>> a second host B, which wishes to learn of changes to this resource. To
>>>> facilitate a subscription/ notification mechanism, A would expose a
>>>> resource http{s}://A/sub and B would expose a resource http{s}://B/ntfy.
>>>> To subscribe to notifications regarding http{s}://A/resource, B would
>>>> send a POST to the address http{s}://A/sub/B containing the URI of the
>>>> resource of interest (http{s}://A/resource) and the URI of B's
>>>> notification resource (http{s}://B/ntfy). Following this subscription
>>>> step, should A wish to notify B of a change to the resource addressed at
>>>> http{s}://A/resource, A would send a POST to the address
>>>> http{s}://B/ntfy containing the URI of the resource changed
>>>> (http{s}://A/resource) and the URI of A's subscription resource
>>>> (http{s}://A/sub/B), should A wish to change its subscription. The host
>>>> B can then query the resource (or not) at its leisure."
>>>>
>>>> Sleepy nodes are not allowed to subscribe, and must poll.
>>>>
>>>> Regards - Charles Palmer
>>>>
>>>> -----Original Message-----
>>>> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of
>>>> Angelo P. Castellani
>>>> Sent: 14 May 2010 13:14
>>>> To: Zach Shelby
>>>> Cc: core
>>>> Subject: Re: [core] Selecting a WG document for CoAP
>>>>
>>>> Zach,
>>>>
>>>> thanks for the comments, but please refer to my most recent e-mail for
>>>> a more specific list of technical issues I'm pointing to.
>>>>
>>>> I want to do only a little integration to what I've written there.
>>>>
>>>> In my very personal opinion, to maximize adherence with the REST model
>>>> and minimize implementation effort SUBSCRIBE and NOTIFY should be
>>>> mapped to methods (as discussed many times together...).
>>>>
>>>> Uniform interface principle (Fielding PhD dissertation Section 5.1.5,
>>>> "The central feature that distinguishes the REST architectural style
>>>> [...]") states that to simplify the software architecture, resource
>>>> interfaces/interfaces should be as general as possible.
>>>>
>>>> I agree with this principle in this specific case, mainly because
>>>> handling a special message type for notify leads node software design
>>>> to a more complex architecture.
>>>>
>>>> The reason is that this new message type requires special handling and
>>>> introduces a complexity in the software modularization.
>>>>
>>>> Best,
>>>> Angelo
>>>>
>>>> On Fri, May 14, 2010 at 13:06, Zach Shelby<zach@sensinode.com>   wrote:
>>>>
>>>>          
>>>>> Hi Angelo,
>>>>>
>>>>> On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:
>>>>>
>>>>>
>>>>>            
>>>>>> Dear C. Bormann, all,
>>>>>>
>>>>>> before deciding for the final direction, I've the following
>>>>>> observations about draft-shelby-core-coap-01
>>>>>>
>>>>>> While I mostly share Zach's view of the protocol approach, and
>>>>>> appreciate many aspects of the proposal, there are in my opinion
>>>>>>
>>>>>>              
>>>> still
>>>>
>>>>          
>>>>>> some open issues that need to be at least discussed before the
>>>>>>
>>>>>>              
>>>> current
>>>>
>>>>          
>>>>>> document can be selected.
>>>>>>
>>>>>>              
>>>>> Of course there are plenty of open issues. Remember that working group
>>>>>
>>>>>            
>>>> documents still undertake as much change and improvement as the WG
>>>> wants, so by no means is coap-01 set in stone. I would expect at least
>>>> 5-10 more revisions still along the way.  Already several of your ideas
>>>> have been integrated into coap-01, and several more are under
>>>> consideration, so it is coming along. Patience ;-)
>>>>
>>>>          
>>>>>            
>>>>>> In particular, I would like to highlight the following:
>>>>>>
>>>>>> a) As it is now, it is not possible to have a straightforward
>>>>>> translation of HTTP ->   CoAP and viceversa: see
>>>>>> http://www.ietf.org/mail-archive/web/core/current/msg00133.html (this
>>>>>> impacts the scalability of the web service model too)
>>>>>>
>>>>>>              
>>>>> In coap-01 the Method names are now identical to HTTP methods. The
>>>>>
>>>>>            
>>>> Req/Res interaction is a direct translation. The URI hierarchy is
>>>> compatible, and the URI binary code format we are still working on
>>>> obviously. The only thing that takes some state to translate is
>>>> Subscribe/Notify. But note, Subscribe/Notify takes some state no matter
>>>> how you do it, even with HTTP-HTTP there is no clean and easy way to
>>>> handle subscriptions.
>>>>
>>>>          
>>>>>            
>>>>>> b) Moreover, CoAP's implementation is not as simple as it should be.
>>>>>> I've investigated the implementation and some design choices (as
>>>>>> Options) are leading to very high program complexity (ROM) on a
>>>>>> MSP430-based device.
>>>>>>
>>>>>>              
>>>>> This we can definitely improve, and already made several optimizations
>>>>>
>>>>>            
>>>> from -00 to -01. Here I need some very concrete proposals though. Also
>>>> remember that many things are optional, for example subscribe/notify is
>>>> not required if you don't need it.
>>>>
>>>>          
>>>>>            
>>>>>> c) Finally when comparing HTTP message size with CoAP message size,
>>>>>> the resulting compression isn't as good as you may expect.
>>>>>>
>>>>>> Example:
>>>>>> HTTP: GET /sensor/temp.xml HTTP/1.0 = 32 B
>>>>>> CoAP: 24 B with options parsing procedure requiring an added
>>>>>> implementation complexity
>>>>>>
>>>>>>              
>>>>> Right, that is not how it will work in practice. Working with a real
>>>>>
>>>>>            
>>>> HTTP server that HTTP header will be more complex, and on the CoAP side
>>>> you would chose shorter URLs. The biggest improvement possible here is
>>>> from using binary coded URLs of course. We need to look at a wider range
>>>> of interactions and real HTTP headers as well to check that we are
>>>> efficient enough.
>>>>
>>>>          
>>>>>            
>>>>>> Addressing all these points potentially leads to major technical
>>>>>> modifications (especially point a) on the current draft, hence it is
>>>>>> appropriate in my opinion to discuss these points before making the
>>>>>> final decision.
>>>>>>
>>>>>>              
>>>>> I am not sure what else you have in mind for a). If we just forget
>>>>>
>>>>>            
>>>> about Subscribe/Notify then you are good to go. But then you are also
>>>> not fulfilling the charter or the industry needs in that respect.
>>>>
>>>>          
>>>>> Thanks,
>>>>> Zach
>>>>>
>>>>>
>>>>>            
>>>>>> Best regards,
>>>>>>
>>>>>> Angelo P. Castellani
>>>>>>
>>>>>>
>>>>>> On Mon, May 10, 2010 at 18:51, Carsten Bormann<cabo@tzi.org>   wrote:
>>>>>>
>>>>>>              
>>>>>>> The CORE WG has a milestone to select a WG document for CoAP in
>>>>>>>
>>>>>>>                
>>>> April:
>>>>
>>>>          
>>>>>>> http://datatracker.ietf.org/wg/core/charter/
>>>>>>> ...
>>>>>>> Apr 2010        Select WG document for basis of the CoAP protocol
>>>>>>>
>>>>>>> Of the various documents that have been contributed,
>>>>>>>
>>>>>>>                
>>>> draft-shelby-core-coap has significant discussion, as well as the
>>>> largest number of updates (including a previous version that was still
>>>> called -6lowapp-coap).
>>>>
>>>>          
>>>>>>> Today, another updated version of that draft was announced.  See
>>>>>>> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
>>>>>>> for the announcement and
>>>>>>> http://tools.ietf.org/html/draft-shelby-core-coap-01
>>>>>>> for the draft itself.
>>>>>>>
>>>>>>> However, as the authors say, there are still significant TODOs.
>>>>>>>
>>>>>>> Are we in a state yet where we can say whether this is the right
>>>>>>>
>>>>>>>                
>>>> direction for the WG to take?
>>>>
>>>>          
>>>>>>> If yes, is it the right direction?  Should we adopt it as a WG
>>>>>>>
>>>>>>>                
>>>> document?
>>>>
>>>>          
>>>>>>> If you don't think we can say yet, is there a set of technical
>>>>>>>
>>>>>>>                
>>>> decisions you would like the authors to take with priority?
>>>>
>>>>          
>>>>>>> Note that once a document has become a WG document, the authors act
>>>>>>>
>>>>>>>                
>>>> as editors for the working group, making (and usually fleshing out the
>>>> details of) any change that the WG decides it needs.
>>>>
>>>>          
>>>>>>> If you think we can still improve the draft, this is not an obstacle
>>>>>>>
>>>>>>>                
>>>> to making it a WG document.
>>>>
>>>>          
>>>>>>> But of course we shouldn't do that if we intend to reverse its
>>>>>>>
>>>>>>>                
>>>> fundamental technical direction.
>>>>
>>>>          
>>>>>>> In order to stay roughly in sync with our milestones, we should
>>>>>>>
>>>>>>>                
>>>> reach at a decision on how to go forward this week.
>>>>
>>>>          
>>>>>>> Gruesse, Carsten
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> core mailing list
>>>>>>> core@ietf.org
>>>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>>>
>>>>>>>
>>>>>>>                
>>>>>> _______________________________________________
>>>>>> 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
>>>>>
>>>>>
>>>>>
>>>>>            
>>>> _______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>>>
>>>> --------------------------------
>>>> Onzo is a limited company number 06097997 registered in England&   Wales. The
>>>> registered office is 6 Great Newport Street, London, WC2H 7JB, United Kingdom.
>>>>
>>>> This email message may contain confidential and/or privileged information, and
>>>> is intended solely for the addressee(s). If you have received this email in
>>>> error, please notify Onzo immediately. Unauthorised copying, disclosure or
>>>> distribution of the material in this email is forbidden.
>>>> --------------------------------
>>>>
>>>> _______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>>>
>>>> ______________________________________________________________________
>>>> This email has been scanned by the MessageLabs Email Security System.
>>>> ______________________________________________________________________
>>>>
>>>> _______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>>>
>>>>          
>>>        
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>> --------------------------------
>> Onzo is a limited company number 06097997 registered in England&  Wales. The
>> registered office is 6 Great Newport Street, London, WC2H 7JB, United Kingdom.
>>
>> This email message may contain confidential and/or privileged information, and
>> is intended solely for the addressee(s). If you have received this email in
>> error, please notify Onzo immediately. Unauthorised copying, disclosure or
>> distribution of the material in this email is forbidden.
>> --------------------------------
>>
>>      
>    


From apezzuto@cisco.com  Tue May 25 23:17:27 2010
Return-Path: <apezzuto@cisco.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 B1B473A6897 for <core@core3.amsl.com>; Tue, 25 May 2010 23:17:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.299
X-Spam-Level: 
X-Spam-Status: No, score=-0.299 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, MANGLED_TOOL=2.3]
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 N2EjQpyTbrzL for <core@core3.amsl.com>; Tue, 25 May 2010 23:17:25 -0700 (PDT)
Received: from ams-iport-2.cisco.com (ams-iport-2.cisco.com [144.254.224.141]) by core3.amsl.com (Postfix) with ESMTP id A4BC13A6893 for <core@ietf.org>; Tue, 25 May 2010 23:17:24 -0700 (PDT)
Authentication-Results: ams-iport-2.cisco.com; dkim=neutral (message not signed) header.i=none
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: As8BAPxZ/EuQ/uCWe2dsb2JhbACeGhUBARYiBhylYZlzAoURBA
X-IronPort-AV: E=Sophos;i="4.53,302,1272844800";  d="scan'208";a="7790565"
Received: from ams-core-1.cisco.com ([144.254.224.150]) by ams-iport-2.cisco.com with ESMTP; 26 May 2010 05:38:13 +0000
Received: from xbh-ams-201.cisco.com (xbh-ams-201.cisco.com [144.254.75.7]) by ams-core-1.cisco.com (8.13.8/8.14.3) with ESMTP id o4Q6HEVD022745; Wed, 26 May 2010 06:17:14 GMT
Received: from xmb-ams-106.cisco.com ([144.254.74.81]) by xbh-ams-201.cisco.com with Microsoft SMTPSVC(6.0.3790.3959);  Wed, 26 May 2010 08:17:14 +0200
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Date: Wed, 26 May 2010 08:17:17 +0200
Message-ID: <0D212BD466921646B58854FB79092CEC0216121C@XMB-AMS-106.cisco.com>
In-Reply-To: <4BFC5368.2010602@cisco.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [core] Subscribe/Notify for CoAP
Thread-Index: Acr8a1VwqqPM5o0/QreVZLIoBryI4gAKmEdg
References: <OF97EC852F.8A85DCEB-ONC1257726.0051887E-C1257726.005677A7@schneider-electric.com><3602E0C6-1E2E-4164-A208-A874128325AF@sensinode.com><4BFB3A66.5080700@cisco.com><E4DBD8AB11D2E54F89B23D7CD1065D8C0105621D@onzosbs2k3.ONZO.local><324781C3-5548-474D-8995-EC327ED08209@sensinode.com> <4BFC5368.2010602@cisco.com>
From: "Adriano Pezzuto (apezzuto)" <apezzuto@cisco.com>
To: "Paul Duffy (paduffy)" <paduffy@cisco.com>, "Zach Shelby" <zach@sensinode.com>
X-OriginalArrivalTime: 26 May 2010 06:17:14.0755 (UTC) FILETIME=[15B14530:01CAFC9B]
Cc: core <core@ietf.org>
Subject: Re: [core] Subscribe/Notify for CoAP
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, 26 May 2010 06:17:27 -0000

Hi,
it looks to me that CoAP should use an explicit sub/notify mechanism =
since this is the core of the machine-to-machine interaction model.
HTTP suffers of this lack and we have seen a plethora of solutions to =
give an asynch taste to it. Webhooks and websockets are only the lasts =
of the list.
As someone has already pointed out on this list, it is theoretically =
possible to describe sub/notify using only CRUD methods but it looks a =
little bit tricky and verbose.

Now we have a chance to build from scratch a new protocol with and I =
think using explicit sub/notify methods with a clear and well defined =
semantic is the best option. It is easily understanding from every =
developer and will prevent to build other fanny solutions on top of the =
CoAP. HTTP does not have this well defined semantic and (for hundreds of =
other reasons also) it is not used as wide protocol for =
machine-to-machine communication.

CoAP - as binary protocol - and with an explicit asynch model has a =
chance to be a really wide protocol for M2M communication not only for =
constrained environments.

my 2 cents

- adriano

-----Original Message-----
From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of =
Paul Duffy (paduffy)
Sent: mercoled=EC 26 maggio 2010 0.47
To: Zach Shelby
Cc: core
Subject: Re: [core] Subscribe/Notify for CoAP

On 5/25/2010 6:41 PM, Zach Shelby wrote:
> Hi,
>
> On May 26, 2010, at 12:23 AM, Charles Palmer wrote:
>
>   =20
>> Hi folks
>>
>> It occurs to me that CoRE should be keeping a close eye on ZigBee =
SE2.0 work, so that it is as easy as possible for ZigBee SE to use CoRE =
when ready. That suggests to me that we should align with their =
subscribe/notify process.
>>
>>     =20
> I am not sure I understand that. I mean, ZigBee SE2.0 is defining an =
application specific subscribe/notify mechanism for that purpose so far =
for HTTP. This uses standard HTTP methods and some custom payload and =
REST interfaces. CoAP Req/Res is already totally compatible with SE2.0 =
in that respect, so alignment is already OK there. Nothing stopping =
someone from using SE2.0 over CoAP.
>
> Specifying a native susbcription/notify into CoAP is another matter. =
We can't adopt a solution specific to one application as that won't =
solve the problems of other applications nor general HTTP mapping at all =
(probably would make it worse). It seems that for the near future there =
will be a bunch of HTTP push mechanisms in use without any clear =
standard appearing - or am I wrong there?
>   =20



If COAP extends HTTP semantics with new subscription methods, it will=20
not be possible to easily interchange HTTP/COAP, and translation=20
gateways will become more complex to implement.



> Zach
>
>   =20
>> Regards - Charles
>>
>>
>> -----Original Message-----
>> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of Paul Duffy
>> Sent: 25 May 2010 03:48
>> To: Zach Shelby
>> Cc: core
>> Subject: Re: [core] Subscribe/Notify for CoAP
>>
>> Recommend something like #2, primarily to avoid introducing non HTTP
>> method semantics, simplifying HTTP/COAP translation.gateways, etc.
>>
>>
>> On 5/24/2010 11:49 AM, Zach Shelby wrote:
>>     =20
>>> (thread renamed)
>>>
>>> We have two different paths with regard to a subscribe/notify =
mechanism for CoAP:
>>>
>>> 1. Use specific Subscription and Notify mechanisms for CoAP as HTTP =
really does not include this concept.
>>> 1a) Notify as a message and SUBSCRIBE as a method. This is currently =
used in coap-01.
>>> 1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but =
we had a good list discussion about this leading to a. In practice it =
doesn't make a big difference if notification is a message or method.
>>>
>>> 2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0 =
proposal or GENA.
>>>
>>> So far we have focused on 1 in the WG, and every now and again 2 =
comes up. At least I am not convinced that we need to suffer the =
drawbacks of HTTP here. Anyways 2 does not help our mapping to HTTP in =
reality very much as there is no standard way of doing this over HTTP. =
Thus a CoAP-HTTP proxy may end up anyways translating between multiple =
HTTP frameworks depending on the application. So instead of doing a CoAP =
Notify/Subscribe to Webhooks mapping, you will could end up having to do =
a CoAP Webhooks to HTTP GENA mapping.
>>>
>>>       =20
>>
>> I don't understand this last para.  If CoAP sticks to the semantics =
of
>> the current HTTP methods, would this not offer a fairly =
straightforward
>> translation to/from HTTP?
>>
>>
>>     =20
>>>>  From what I have heard so far 1 still seems like a wise choice, =
although I need to look at Webhooks more deeply. In reality many =
applications specify their own way of doing a push interface using REST =
methods and specific payloads (ZigBee SE2.0 is such an example). That is =
just fine, and might be used instead of a specific CoAP notify/subscribe =
in that case. So 1 doesn't prevent the application using its own =
mechanism, it just provides a native way for doing push.
>>>>         =20
>>> What do people think?
>>>
>>> Zach
>>>
>>> On May 17, 2010, at 6:44 PM, =
matthieu.vial@fr.non.schneider-electric.com wrote:
>>>
>>>
>>>       =20
>>>> Hi,
>>>>
>>>> My comments about the subscribe/notify mechanism of Zigbee IP.
>>>>
>>>> Pros:
>>>> - Derived from the webhooks concept
>>>> - If used by CORE it will be easier to map to HTTP because it uses =
only CRUD verbs.
>>>> - The subscription message is extendable and could support advanced =
options (delays, increment, ...)
>>>> - Only one listening port whatever the transport binding is.
>>>>
>>>> Cons:
>>>> - No interoperability without well known URIs and a well defined =
subscription message format (Not sure CoAP draft is the right place to =
specify this).
>>>> - XML/EXI is too complex to be the required format for the default =
subscription/notification mechanism.
>>>> - The notification should not require a subsequent GET to retrieve =
the content.
>>>> - Subresource subscription is redundant.
>>>>
>>>> Hope this could help,
>>>> Matthieu
>>>>
>>>>
>>>> <graycol.gif>"Charles Palmer"<charles.palmer@onzo.com>
>>>>
>>>>
>>>>
>>>>
>>>> "Charles Palmer"<charles.palmer@onzo.com>
>>>> Envoy=E9 par : core-bounces@ietf.org
>>>> 15/05/2010 14:06
>>>>
>>>> <ecblank.gif>
>>>> A
>>>> <ecblank.gif>
>>>> "core"<core@ietf.org>
>>>> <ecblank.gif>
>>>> cc
>>>> <ecblank.gif>
>>>> <ecblank.gif>
>>>> Objet
>>>> <ecblank.gif>
>>>> Re: [core] Selecting a WG document for CoAP
>>>> <ecblank.gif>	<ecblank.gif>
>>>>
>>>> Dear all
>>>>
>>>> Those interested in the subscribe/notify discussion might like to =
look
>>>> at the draft Smart Energy Profile 2.0 Application Protocol
>>>> Specification. It is available here:
>>>> =
http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicApp
>>>> licationProfile.aspx
>>>>
>>>> It manages subscribe/notify by using POST. This seems to remove the =
need
>>>> for SUBSCRIBE and notify.
>>>>
>>>> "Imagine a host A, which exposes a resource at http{s}://A/resource =
and
>>>> a second host B, which wishes to learn of changes to this resource. =
To
>>>> facilitate a subscription/ notification mechanism, A would expose a
>>>> resource http{s}://A/sub and B would expose a resource =
http{s}://B/ntfy.
>>>> To subscribe to notifications regarding http{s}://A/resource, B =
would
>>>> send a POST to the address http{s}://A/sub/B containing the URI of =
the
>>>> resource of interest (http{s}://A/resource) and the URI of B's
>>>> notification resource (http{s}://B/ntfy). Following this =
subscription
>>>> step, should A wish to notify B of a change to the resource =
addressed at
>>>> http{s}://A/resource, A would send a POST to the address
>>>> http{s}://B/ntfy containing the URI of the resource changed
>>>> (http{s}://A/resource) and the URI of A's subscription resource
>>>> (http{s}://A/sub/B), should A wish to change its subscription. The =
host
>>>> B can then query the resource (or not) at its leisure."
>>>>
>>>> Sleepy nodes are not allowed to subscribe, and must poll.
>>>>
>>>> Regards - Charles Palmer
>>>>
>>>> -----Original Message-----
>>>> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On =
Behalf Of
>>>> Angelo P. Castellani
>>>> Sent: 14 May 2010 13:14
>>>> To: Zach Shelby
>>>> Cc: core
>>>> Subject: Re: [core] Selecting a WG document for CoAP
>>>>
>>>> Zach,
>>>>
>>>> thanks for the comments, but please refer to my most recent e-mail =
for
>>>> a more specific list of technical issues I'm pointing to.
>>>>
>>>> I want to do only a little integration to what I've written there.
>>>>
>>>> In my very personal opinion, to maximize adherence with the REST =
model
>>>> and minimize implementation effort SUBSCRIBE and NOTIFY should be
>>>> mapped to methods (as discussed many times together...).
>>>>
>>>> Uniform interface principle (Fielding PhD dissertation Section =
5.1.5,
>>>> "The central feature that distinguishes the REST architectural =
style
>>>> [...]") states that to simplify the software architecture, resource
>>>> interfaces/interfaces should be as general as possible.
>>>>
>>>> I agree with this principle in this specific case, mainly because
>>>> handling a special message type for notify leads node software =
design
>>>> to a more complex architecture.
>>>>
>>>> The reason is that this new message type requires special handling =
and
>>>> introduces a complexity in the software modularization.
>>>>
>>>> Best,
>>>> Angelo
>>>>
>>>> On Fri, May 14, 2010 at 13:06, Zach Shelby<zach@sensinode.com>   =
wrote:
>>>>
>>>>         =20
>>>>> Hi Angelo,
>>>>>
>>>>> On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:
>>>>>
>>>>>
>>>>>           =20
>>>>>> Dear C. Bormann, all,
>>>>>>
>>>>>> before deciding for the final direction, I've the following
>>>>>> observations about draft-shelby-core-coap-01
>>>>>>
>>>>>> While I mostly share Zach's view of the protocol approach, and
>>>>>> appreciate many aspects of the proposal, there are in my opinion
>>>>>>
>>>>>>             =20
>>>> still
>>>>
>>>>         =20
>>>>>> some open issues that need to be at least discussed before the
>>>>>>
>>>>>>             =20
>>>> current
>>>>
>>>>         =20
>>>>>> document can be selected.
>>>>>>
>>>>>>             =20
>>>>> Of course there are plenty of open issues. Remember that working =
group
>>>>>
>>>>>           =20
>>>> documents still undertake as much change and improvement as the WG
>>>> wants, so by no means is coap-01 set in stone. I would expect at =
least
>>>> 5-10 more revisions still along the way.  Already several of your =
ideas
>>>> have been integrated into coap-01, and several more are under
>>>> consideration, so it is coming along. Patience ;-)
>>>>
>>>>         =20
>>>>>           =20
>>>>>> In particular, I would like to highlight the following:
>>>>>>
>>>>>> a) As it is now, it is not possible to have a straightforward
>>>>>> translation of HTTP ->   CoAP and viceversa: see
>>>>>> http://www.ietf.org/mail-archive/web/core/current/msg00133.html =
(this
>>>>>> impacts the scalability of the web service model too)
>>>>>>
>>>>>>             =20
>>>>> In coap-01 the Method names are now identical to HTTP methods. The
>>>>>
>>>>>           =20
>>>> Req/Res interaction is a direct translation. The URI hierarchy is
>>>> compatible, and the URI binary code format we are still working on
>>>> obviously. The only thing that takes some state to translate is
>>>> Subscribe/Notify. But note, Subscribe/Notify takes some state no =
matter
>>>> how you do it, even with HTTP-HTTP there is no clean and easy way =
to
>>>> handle subscriptions.
>>>>
>>>>         =20
>>>>>           =20
>>>>>> b) Moreover, CoAP's implementation is not as simple as it should =
be.
>>>>>> I've investigated the implementation and some design choices (as
>>>>>> Options) are leading to very high program complexity (ROM) on a
>>>>>> MSP430-based device.
>>>>>>
>>>>>>             =20
>>>>> This we can definitely improve, and already made several =
optimizations
>>>>>
>>>>>           =20
>>>> from -00 to -01. Here I need some very concrete proposals though. =
Also
>>>> remember that many things are optional, for example =
subscribe/notify is
>>>> not required if you don't need it.
>>>>
>>>>         =20
>>>>>           =20
>>>>>> c) Finally when comparing HTTP message size with CoAP message =
size,
>>>>>> the resulting compression isn't as good as you may expect.
>>>>>>
>>>>>> Example:
>>>>>> HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
>>>>>> CoAP: 24 B with options parsing procedure requiring an added
>>>>>> implementation complexity
>>>>>>
>>>>>>             =20
>>>>> Right, that is not how it will work in practice. Working with a =
real
>>>>>
>>>>>           =20
>>>> HTTP server that HTTP header will be more complex, and on the CoAP =
side
>>>> you would chose shorter URLs. The biggest improvement possible here =
is
>>>> from using binary coded URLs of course. We need to look at a wider =
range
>>>> of interactions and real HTTP headers as well to check that we are
>>>> efficient enough.
>>>>
>>>>         =20
>>>>>           =20
>>>>>> Addressing all these points potentially leads to major technical
>>>>>> modifications (especially point a) on the current draft, hence it =
is
>>>>>> appropriate in my opinion to discuss these points before making =
the
>>>>>> final decision.
>>>>>>
>>>>>>             =20
>>>>> I am not sure what else you have in mind for a). If we just forget
>>>>>
>>>>>           =20
>>>> about Subscribe/Notify then you are good to go. But then you are =
also
>>>> not fulfilling the charter or the industry needs in that respect.
>>>>
>>>>         =20
>>>>> Thanks,
>>>>> Zach
>>>>>
>>>>>
>>>>>           =20
>>>>>> Best regards,
>>>>>>
>>>>>> Angelo P. Castellani
>>>>>>
>>>>>>
>>>>>> On Mon, May 10, 2010 at 18:51, Carsten Bormann<cabo@tzi.org>   =
wrote:
>>>>>>
>>>>>>             =20
>>>>>>> The CORE WG has a milestone to select a WG document for CoAP in
>>>>>>>
>>>>>>>               =20
>>>> April:
>>>>
>>>>         =20
>>>>>>> http://datatracker.ietf.org/wg/core/charter/
>>>>>>> ...
>>>>>>> Apr 2010        Select WG document for basis of the CoAP =
protocol
>>>>>>>
>>>>>>> Of the various documents that have been contributed,
>>>>>>>
>>>>>>>               =20
>>>> draft-shelby-core-coap has significant discussion, as well as the
>>>> largest number of updates (including a previous version that was =
still
>>>> called -6lowapp-coap).
>>>>
>>>>         =20
>>>>>>> Today, another updated version of that draft was announced.  See
>>>>>>> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
>>>>>>> for the announcement and
>>>>>>> http://tools.ietf.org/html/draft-shelby-core-coap-01
>>>>>>> for the draft itself.
>>>>>>>
>>>>>>> However, as the authors say, there are still significant TODOs.
>>>>>>>
>>>>>>> Are we in a state yet where we can say whether this is the right
>>>>>>>
>>>>>>>               =20
>>>> direction for the WG to take?
>>>>
>>>>         =20
>>>>>>> If yes, is it the right direction?  Should we adopt it as a WG
>>>>>>>
>>>>>>>               =20
>>>> document?
>>>>
>>>>         =20
>>>>>>> If you don't think we can say yet, is there a set of technical
>>>>>>>
>>>>>>>               =20
>>>> decisions you would like the authors to take with priority?
>>>>
>>>>         =20
>>>>>>> Note that once a document has become a WG document, the authors =
act
>>>>>>>
>>>>>>>               =20
>>>> as editors for the working group, making (and usually fleshing out =
the
>>>> details of) any change that the WG decides it needs.
>>>>
>>>>         =20
>>>>>>> If you think we can still improve the draft, this is not an =
obstacle
>>>>>>>
>>>>>>>               =20
>>>> to making it a WG document.
>>>>
>>>>         =20
>>>>>>> But of course we shouldn't do that if we intend to reverse its
>>>>>>>
>>>>>>>               =20
>>>> fundamental technical direction.
>>>>
>>>>         =20
>>>>>>> In order to stay roughly in sync with our milestones, we should
>>>>>>>
>>>>>>>               =20
>>>> reach at a decision on how to go forward this week.
>>>>
>>>>         =20
>>>>>>> Gruesse, Carsten
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> core mailing list
>>>>>>> core@ietf.org
>>>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>>>
>>>>>>>
>>>>>>>               =20
>>>>>> _______________________________________________
>>>>>> core mailing list
>>>>>> core@ietf.org
>>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>>
>>>>>>             =20
>>>>> --
>>>>> 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
>>>>>
>>>>>
>>>>>
>>>>>           =20
>>>> _______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>>>
>>>> --------------------------------
>>>> Onzo is a limited company number 06097997 registered in England&   =
Wales. The
>>>> registered office is 6 Great Newport Street, London, WC2H 7JB, =
United Kingdom.
>>>>
>>>> This email message may contain confidential and/or privileged =
information, and
>>>> is intended solely for the addressee(s). If you have received this =
email in
>>>> error, please notify Onzo immediately. Unauthorised copying, =
disclosure or
>>>> distribution of the material in this email is forbidden.
>>>> --------------------------------
>>>>
>>>> _______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>>>
>>>> =
______________________________________________________________________
>>>> This email has been scanned by the MessageLabs Email Security =
System.
>>>> =
______________________________________________________________________
>>>>
>>>> _______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>>>
>>>>         =20
>>>       =20
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>> --------------------------------
>> Onzo is a limited company number 06097997 registered in England&  =
Wales. The
>> registered office is 6 Great Newport Street, London, WC2H 7JB, United =
Kingdom.
>>
>> This email message may contain confidential and/or privileged =
information, and
>> is intended solely for the addressee(s). If you have received this =
email in
>> error, please notify Onzo immediately. Unauthorised copying, =
disclosure or
>> distribution of the material in this email is forbidden.
>> --------------------------------
>>
>>     =20
>   =20

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

From matthieu.vial@fr.non.schneider-electric.com  Wed May 26 01:15:23 2010
Return-Path: <matthieu.vial@fr.non.schneider-electric.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 9767B3A68BA; Wed, 26 May 2010 01:15:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.665
X-Spam-Level: 
X-Spam-Status: No, score=0.665 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, MANGLED_TOOL=2.3, RCVD_IN_DNSWL_LOW=-1, SARE_GIF_ATTACH=1.42, TVD_FW_GRAPHIC_NAME_MID=0.543]
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 krIm98tOcq7K; Wed, 26 May 2010 01:15:15 -0700 (PDT)
Received: from mailX02.eud.schneider-electric.com (mailx02.eud.schneider-electric.com [205.167.7.38]) by core3.amsl.com (Postfix) with ESMTP id 3A4883A68B5; Wed, 26 May 2010 01:14:48 -0700 (PDT)
Received: from ATEUI01.schneider-electric.com ([10.198.14.9]) by mailX02.eud.schneider-electric.com with ESMTP id 2010052610072997-8595 ; Wed, 26 May 2010 10:07:29 +0200 
In-Reply-To: <E4DBD8AB11D2E54F89B23D7CD1065D8C0105621D@onzosbs2k3.ONZO.local>
To: "Charles Palmer" <charles.palmer@onzo.com>
X-Mailer: Lotus Notes Release 6.5.6 March 06, 2007
Message-ID: <OF52EA5DAE.20999329-ONC125772F.002870C1-C125772F.002D4749@schneider-electric.com>
From: matthieu.vial@fr.non.schneider-electric.com
Date: Wed, 26 May 2010 10:14:33 +0200
MIME-Version: 1.0
X-MIMETrack: Serialize by Router on ATEUI01.Schneider-Electric.com/T/SVR/Schneider at 26/05/2010 10:14:38, Itemize by SMTP Server on AXEU2OUT.schneider-electric.com/X/SVR/SEIxtra at 26/05/2010 10:07:30, Serialize by Router on AXEU2OUT.schneider-electric.com/X/SVR/SEIxtra at 26/05/2010 10:07:32
Content-type: multipart/related;  Boundary="0__=4EBBFDBCDFBBF6518f9e8a93df938690918c4EBBFDBCDFBBF651"
Cc: core-bounces@ietf.org, core <core@ietf.org>
Subject: Re: [core] Subscribe/Notify for CoAP
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, 26 May 2010 08:15:25 -0000

--0__=4EBBFDBCDFBBF6518f9e8a93df938690918c4EBBFDBCDFBBF651
Content-type: multipart/alternative; 
	Boundary="1__=4EBBFDBCDFBBF6518f9e8a93df938690918c4EBBFDBCDFBBF651"

--1__=4EBBFDBCDFBBF6518f9e8a93df938690918c4EBBFDBCDFBBF651
Content-transfer-encoding: quoted-printable
Content-type: text/plain; charset=ISO-8859-1




Hi

>It occurs to me that CoRE should be keeping a close eye on ZigBee SE2.=
0
work, so that it is as easy as possible for ZigBee SE to use CoRE when
ready. That suggests to me that we should align with their subscribe/no=
tify
process.

Does it mean that all CoAP nodes shall support XML/EXI? If so I am not =
sure
this is the right solution.

I think we will achieve better interoperability between CoAP nodes with=
 a
native solution. I also agree with Zach that alignement with HTTP is
already there in CoAP.
However if the native subscribe/notify is not enough extensible, many
applications will fallback to a specific subscribe. Zigbee ZCL, bacnet,=

have a higher degree of control for notifications than just a simple up=
date
(delays, values...). Maybe CORE shall provide at least guidelines to
support extended controls on notification conditions.

Regards,
Matthieu





                                                                       =
    
             "Charles Palmer"                                          =
    
             <charles.palmer@o                                         =
    
             nzo.com>                                                  =
  A 
             Envoy=E9 par :              <paduffy@cisco.com>, "Zach She=
lby"  
             core-bounces@ietf         <zach@sensinode.com>            =
    
             .org                                                      =
 cc 
                                       core <core@ietf.org>            =
    
                                                                     Ob=
jet 
             26/05/2010 00:23          Re: [core] Subscribe/Notify for =
    
                                       CoAP                            =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    




Hi folks

It occurs to me that CoRE should be keeping a close eye on ZigBee SE2.0=

work, so that it is as easy as possible for ZigBee SE to use CoRE when
ready. That suggests to me that we should align with their subscribe/no=
tify
process.

Regards - Charles


-----Original Message-----
From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of=

Paul Duffy
Sent: 25 May 2010 03:48
To: Zach Shelby
Cc: core
Subject: Re: [core] Subscribe/Notify for CoAP

Recommend something like #2, primarily to avoid introducing non HTTP
method semantics, simplifying HTTP/COAP translation.gateways, etc.


On 5/24/2010 11:49 AM, Zach Shelby wrote:
> (thread renamed)
>
> We have two different paths with regard to a subscribe/notify mechani=
sm
for CoAP:
>
> 1. Use specific Subscription and Notify mechanisms for CoAP as HTTP
really does not include this concept.
> 1a) Notify as a message and SUBSCRIBE as a method. This is currently =
used
in coap-01.
> 1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but we=
 had
a good list discussion about this leading to a. In practice it doesn't =
make
a big difference if notification is a message or method.
>
> 2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0
proposal or GENA.
>
> So far we have focused on 1 in the WG, and every now and again 2 come=
s
up. At least I am not convinced that we need to suffer the drawbacks of=

HTTP here. Anyways 2 does not help our mapping to HTTP in reality very =
much
as there is no standard way of doing this over HTTP. Thus a CoAP-HTTP p=
roxy
may end up anyways translating between multiple HTTP frameworks dependi=
ng
on the application. So instead of doing a CoAP Notify/Subscribe to Webh=
ooks
mapping, you will could end up having to do a CoAP Webhooks to HTTP GEN=
A
mapping.
>


I don't understand this last para.  If CoAP sticks to the semantics of
the current HTTP methods, would this not offer a fairly straightforward=

translation to/from HTTP?


> > From what I have heard so far 1 still seems like a wise choice,
although I need to look at Webhooks more deeply. In reality many
applications specify their own way of doing a push interface using REST=

methods and specific payloads (ZigBee SE2.0 is such an example). That i=
s
just fine, and might be used instead of a specific CoAP notify/subscrib=
e in
that case. So 1 doesn't prevent the application using its own mechanism=
, it
just provides a native way for doing push.
>
> What do people think?
>
> Zach
>
> On May 17, 2010, at 6:44 PM, matthieu.vial@fr.non.schneider-electric.=
com
wrote:
>
>
>> Hi,
>>
>> My comments about the subscribe/notify mechanism of Zigbee IP.
>>
>> Pros:
>> - Derived from the webhooks concept
>> - If used by CORE it will be easier to map to HTTP because it uses o=
nly
CRUD verbs.
>> - The subscription message is extendable and could support advanced
options (delays, increment, ...)
>> - Only one listening port whatever the transport binding is.
>>
>> Cons:
>> - No interoperability without well known URIs and a well defined
subscription message format (Not sure CoAP draft is the right place to
specify this).
>> - XML/EXI is too complex to be the required format for the default
subscription/notification mechanism.
>> - The notification should not require a subsequent GET to retrieve t=
he
content.
>> - Subresource subscription is redundant.
>>
>> Hope this could help,
>> Matthieu
>>
>>
>> <graycol.gif>"Charles Palmer"<charles.palmer@onzo.com>
>>
>>
>>
>>
>> "Charles Palmer"<charles.palmer@onzo.com>
>> Envoy=E9 par : core-bounces@ietf.org
>> 15/05/2010 14:06
>>
>> <ecblank.gif>
>> A
>> <ecblank.gif>
>> "core"<core@ietf.org>
>> <ecblank.gif>
>> cc
>> <ecblank.gif>
>> <ecblank.gif>
>> Objet
>> <ecblank.gif>
>> Re: [core] Selecting a WG document for CoAP
>> <ecblank.gif>         <ecblank.gif>
>>
>> Dear all
>>
>> Those interested in the subscribe/notify discussion might like to lo=
ok
>> at the draft Smart Energy Profile 2.0 Application Protocol
>> Specification. It is available here:
>> http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20Publi=
cApp
>> licationProfile.aspx
>>
>> It manages subscribe/notify by using POST. This seems to remove the =
need
>> for SUBSCRIBE and notify.
>>
>> "Imagine a host A, which exposes a resource at http{s}://A/resource =
and
>> a second host B, which wishes to learn of changes to this resource. =
To
>> facilitate a subscription/ notification mechanism, A would expose a
>> resource http{s}://A/sub and B would expose a resource http{s}://B/n=
tfy.
>> To subscribe to notifications regarding http{s}://A/resource, B woul=
d
>> send a POST to the address http{s}://A/sub/B containing the URI of t=
he
>> resource of interest (http{s}://A/resource) and the URI of B's
>> notification resource (http{s}://B/ntfy). Following this subscriptio=
n
>> step, should A wish to notify B of a change to the resource addresse=
d at
>> http{s}://A/resource, A would send a POST to the address
>> http{s}://B/ntfy containing the URI of the resource changed
>> (http{s}://A/resource) and the URI of A's subscription resource
>> (http{s}://A/sub/B), should A wish to change its subscription. The h=
ost
>> B can then query the resource (or not) at its leisure."
>>
>> Sleepy nodes are not allowed to subscribe, and must poll.
>>
>> Regards - Charles Palmer
>>
>> -----Original Message-----
>> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf=
 Of
>> Angelo P. Castellani
>> Sent: 14 May 2010 13:14
>> To: Zach Shelby
>> Cc: core
>> Subject: Re: [core] Selecting a WG document for CoAP
>>
>> Zach,
>>
>> thanks for the comments, but please refer to my most recent e-mail f=
or
>> a more specific list of technical issues I'm pointing to.
>>
>> I want to do only a little integration to what I've written there.
>>
>> In my very personal opinion, to maximize adherence with the REST mod=
el
>> and minimize implementation effort SUBSCRIBE and NOTIFY should be
>> mapped to methods (as discussed many times together...).
>>
>> Uniform interface principle (Fielding PhD dissertation Section 5.1.5=
,
>> "The central feature that distinguishes the REST architectural style=

>> [...]") states that to simplify the software architecture, resource
>> interfaces/interfaces should be as general as possible.
>>
>> I agree with this principle in this specific case, mainly because
>> handling a special message type for notify leads node software desig=
n
>> to a more complex architecture.
>>
>> The reason is that this new message type requires special handling a=
nd
>> introduces a complexity in the software modularization.
>>
>> Best,
>> Angelo
>>
>> On Fri, May 14, 2010 at 13:06, Zach Shelby<zach@sensinode.com>  wrot=
e:
>>
>>> Hi Angelo,
>>>
>>> On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:
>>>
>>>
>>>> Dear C. Bormann, all,
>>>>
>>>> before deciding for the final direction, I've the following
>>>> observations about draft-shelby-core-coap-01
>>>>
>>>> While I mostly share Zach's view of the protocol approach, and
>>>> appreciate many aspects of the proposal, there are in my opinion
>>>>
>> still
>>
>>>> some open issues that need to be at least discussed before the
>>>>
>> current
>>
>>>> document can be selected.
>>>>
>>> Of course there are plenty of open issues. Remember that working gr=
oup
>>>
>> documents still undertake as much change and improvement as the WG
>> wants, so by no means is coap-01 set in stone. I would expect at lea=
st
>> 5-10 more revisions still along the way.  Already several of your id=
eas
>> have been integrated into coap-01, and several more are under
>> consideration, so it is coming along. Patience ;-)
>>
>>>
>>>> In particular, I would like to highlight the following:
>>>>
>>>> a) As it is now, it is not possible to have a straightforward
>>>> translation of HTTP ->  CoAP and viceversa: see
>>>> http://www.ietf.org/mail-archive/web/core/current/msg00133.html (t=
his
>>>> impacts the scalability of the web service model too)
>>>>
>>> In coap-01 the Method names are now identical to HTTP methods. The
>>>
>> Req/Res interaction is a direct translation. The URI hierarchy is
>> compatible, and the URI binary code format we are still working on
>> obviously. The only thing that takes some state to translate is
>> Subscribe/Notify. But note, Subscribe/Notify takes some state no mat=
ter
>> how you do it, even with HTTP-HTTP there is no clean and easy way to=

>> handle subscriptions.
>>
>>>
>>>> b) Moreover, CoAP's implementation is not as simple as it should b=
e.
>>>> I've investigated the implementation and some design choices (as
>>>> Options) are leading to very high program complexity (ROM) on a
>>>> MSP430-based device.
>>>>
>>> This we can definitely improve, and already made several optimizati=
ons
>>>
>> from -00 to -01. Here I need some very concrete proposals though. Al=
so
>> remember that many things are optional, for example subscribe/notify=
 is
>> not required if you don't need it.
>>
>>>
>>>> c) Finally when comparing HTTP message size with CoAP message size=
,
>>>> the resulting compression isn't as good as you may expect.
>>>>
>>>> Example:
>>>> HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
>>>> CoAP: 24 B with options parsing procedure requiring an added
>>>> implementation complexity
>>>>
>>> Right, that is not how it will work in practice. Working with a rea=
l
>>>
>> HTTP server that HTTP header will be more complex, and on the CoAP s=
ide
>> you would chose shorter URLs. The biggest improvement possible here =
is
>> from using binary coded URLs of course. We need to look at a wider r=
ange
>> of interactions and real HTTP headers as well to check that we are
>> efficient enough.
>>
>>>
>>>> Addressing all these points potentially leads to major technical
>>>> modifications (especially point a) on the current draft, hence it =
is
>>>> appropriate in my opinion to discuss these points before making th=
e
>>>> final decision.
>>>>
>>> I am not sure what else you have in mind for a). If we just forget
>>>
>> about Subscribe/Notify then you are good to go. But then you are als=
o
>> not fulfilling the charter or the industry needs in that respect.
>>
>>> Thanks,
>>> Zach
>>>
>>>
>>>> Best regards,
>>>>
>>>> Angelo P. Castellani
>>>>
>>>>
>>>> On Mon, May 10, 2010 at 18:51, Carsten Bormann<cabo@tzi.org>  wrot=
e:
>>>>
>>>>> The CORE WG has a milestone to select a WG document for CoAP in
>>>>>
>> April:
>>
>>>>> http://datatracker.ietf.org/wg/core/charter/
>>>>> ...
>>>>> Apr 2010        Select WG document for basis of the CoAP protocol=

>>>>>
>>>>> Of the various documents that have been contributed,
>>>>>
>> draft-shelby-core-coap has significant discussion, as well as the
>> largest number of updates (including a previous version that was sti=
ll
>> called -6lowapp-coap).
>>
>>>>> Today, another updated version of that draft was announced.  See
>>>>> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
>>>>> for the announcement and
>>>>> http://tools.ietf.org/html/draft-shelby-core-coap-01
>>>>> for the draft itself.
>>>>>
>>>>> However, as the authors say, there are still significant TODOs.
>>>>>
>>>>> Are we in a state yet where we can say whether this is the right
>>>>>
>> direction for the WG to take?
>>
>>>>> If yes, is it the right direction?  Should we adopt it as a WG
>>>>>
>> document?
>>
>>>>> If you don't think we can say yet, is there a set of technical
>>>>>
>> decisions you would like the authors to take with priority?
>>
>>>>> Note that once a document has become a WG document, the authors a=
ct
>>>>>
>> as editors for the working group, making (and usually fleshing out t=
he
>> details of) any change that the WG decides it needs.
>>
>>>>> If you think we can still improve the draft, this is not an obsta=
cle
>>>>>
>> to making it a WG document.
>>
>>>>> But of course we shouldn't do that if we intend to reverse its
>>>>>
>> fundamental technical direction.
>>
>>>>> In order to stay roughly in sync with our milestones, we should
>>>>>
>> reach at a decision on how to go forward this week.
>>
>>>>> Gruesse, Carsten
>>>>>
>>>>> _______________________________________________
>>>>> core mailing list
>>>>> core@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>
>>>>>
>>>> _______________________________________________
>>>> 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 Intern=
et"
>>> Mobile: +358 40 7796297
>>>
>>>
>>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>> --------------------------------
>> Onzo is a limited company number 06097997 registered in England&  Wa=
les.
The
>> registered office is 6 Great Newport Street, London, WC2H 7JB, Unite=
d
Kingdom.
>>
>> This email message may contain confidential and/or privileged
information, and
>> is intended solely for the addressee(s). If you have received this e=
mail
in
>> error, please notify Onzo immediately. Unauthorised copying, disclos=
ure
or
>> distribution of the material in this email is forbidden.
>> --------------------------------
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>> ____________________________________________________________________=
__
>> This email has been scanned by the MessageLabs Email Security System=
.
>> ____________________________________________________________________=
__
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

--------------------------------
Onzo is a limited company number 06097997 registered in England & Wales=
.
The
registered office is 6 Great Newport Street, London, WC2H 7JB, United
Kingdom.

This email message may contain confidential and/or privileged informati=
on,
and
is intended solely for the addressee(s). If you have received this emai=
l in

error, please notify Onzo immediately. Unauthorised copying, disclosure=
 or
distribution of the material in this email is forbidden.
--------------------------------

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
______________________________________________________________________
=

--1__=4EBBFDBCDFBBF6518f9e8a93df938690918c4EBBFDBCDFBBF651
Content-transfer-encoding: quoted-printable
Content-type: text/html; charset=ISO-8859-1
Content-Disposition: inline

<html><body>
<p><tt>Hi<br>
<br>
&gt;It occurs to me that CoRE should be keeping a close eye on ZigBee S=
E2.0 work, so that it is as easy as possible for ZigBee SE to use CoRE =
when ready. That suggests to me that we should align with their subscri=
be/notify process.<br>
</tt><br>
<tt>Does it mean that all CoAP nodes shall support XML/EXI? If so I am =
not sure this is the right solution.</tt><br>
<br>
<tt>I think we will achieve better interoperability between CoAP nodes =
with a native solution. I also agree with Zach that alignement with HTT=
P is already there in CoAP.</tt><br>
<tt>However if the native subscribe/notify is not enough extensible, ma=
ny applications will fallback to a specific subscribe. Zigbee ZCL, bacn=
et, have a higher degree of control for notifications than just a simpl=
e update (delays, values...). Maybe CORE shall provide at least guideli=
nes to support extended controls on notification conditions.</tt><br>
<br>
<tt>Regards,</tt><br>
<tt>Matthieu</tt><br>
<br>
<img width=3D"16" height=3D"16" src=3D"cid:1__=3D4EBBFDBCDFBBF6518@schn=
eider-electric.com" border=3D"0" alt=3D"Inactive hide details for &quot=
;Charles Palmer&quot; &lt;charles.palmer@onzo.com&gt;">&quot;Charles Pa=
lmer&quot; &lt;charles.palmer@onzo.com&gt;<br>
<br>
<br>
<br>
<br>

<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">=

<tr valign=3D"top"><td style=3D"background-image:url(cid:2__=3D4EBBFDBC=
DFBBF6518@schneider-electric.com); background-repeat: no-repeat; " widt=
h=3D"40%">
<ul>
<ul>
<ul>
<ul><b><font size=3D"2">&quot;Charles Palmer&quot; &lt;charles.palmer@o=
nzo.com&gt;</font></b><font size=3D"2"> </font><br>
<font size=3D"2">Envoy=E9 par : core-bounces@ietf.org</font>
<p><font size=3D"2">26/05/2010 00:23</font></ul>
</ul>
</ul>
</ul>
</td><td width=3D"60%">
<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">=

<tr valign=3D"top"><td width=3D"1%"><img width=3D"58" height=3D"1" src=3D=
"cid:3__=3D4EBBFDBCDFBBF6518@schneider-electric.com" border=3D"0" alt=3D=
""><br>
<div align=3D"right"><font size=3D"2">A</font></div></td><td width=3D"1=
00%"><img width=3D"1" height=3D"1" src=3D"cid:3__=3D4EBBFDBCDFBBF6518@s=
chneider-electric.com" border=3D"0" alt=3D""><br>
<font size=3D"2">&lt;paduffy@cisco.com&gt;, &quot;Zach Shelby&quot; &lt=
;zach@sensinode.com&gt;</font></td></tr>

<tr valign=3D"top"><td width=3D"1%"><img width=3D"58" height=3D"1" src=3D=
"cid:3__=3D4EBBFDBCDFBBF6518@schneider-electric.com" border=3D"0" alt=3D=
""><br>
<div align=3D"right"><font size=3D"2">cc</font></div></td><td width=3D"=
100%"><img width=3D"1" height=3D"1" src=3D"cid:3__=3D4EBBFDBCDFBBF6518@=
schneider-electric.com" border=3D"0" alt=3D""><br>
<font size=3D"2">core &lt;core@ietf.org&gt;</font></td></tr>

<tr valign=3D"top"><td width=3D"1%"><img width=3D"58" height=3D"1" src=3D=
"cid:3__=3D4EBBFDBCDFBBF6518@schneider-electric.com" border=3D"0" alt=3D=
""><br>
<div align=3D"right"><font size=3D"2">Objet</font></div></td><td width=3D=
"100%"><img width=3D"1" height=3D"1" src=3D"cid:3__=3D4EBBFDBCDFBBF6518=
@schneider-electric.com" border=3D"0" alt=3D""><br>
<font size=3D"2">Re: [core] Subscribe/Notify for CoAP</font></td></tr>
</table>

<table border=3D"0" cellspacing=3D"0" cellpadding=3D"0">
<tr valign=3D"top"><td width=3D"58"><img width=3D"1" height=3D"1" src=3D=
"cid:3__=3D4EBBFDBCDFBBF6518@schneider-electric.com" border=3D"0" alt=3D=
""></td><td width=3D"336"><img width=3D"1" height=3D"1" src=3D"cid:3__=3D=
4EBBFDBCDFBBF6518@schneider-electric.com" border=3D"0" alt=3D""></td></=
tr>
</table>
</td></tr>
</table>
<br>
<tt>Hi folks <br>
<br>
It occurs to me that CoRE should be keeping a close eye on ZigBee SE2.0=
 work, so that it is as easy as possible for ZigBee SE to use CoRE when=
 ready. That suggests to me that we should align with their subscribe/n=
otify process.<br>
<br>
Regards - Charles <br>
<br>
<br>
-----Original Message-----<br>
From: core-bounces@ietf.org [<a href=3D"mailto:core-bounces@ietf.org">m=
ailto:core-bounces@ietf.org</a>] On Behalf Of Paul Duffy<br>
Sent: 25 May 2010 03:48<br>
To: Zach Shelby<br>
Cc: core<br>
Subject: Re: [core] Subscribe/Notify for CoAP<br>
<br>
Recommend something like #2, primarily to avoid introducing non HTTP <b=
r>
method semantics, simplifying HTTP/COAP translation.gateways, etc.<br>
<br>
<br>
On 5/24/2010 11:49 AM, Zach Shelby wrote:<br>
&gt; (thread renamed)<br>
&gt;<br>
&gt; We have two different paths with regard to a subscribe/notify mech=
anism for CoAP:<br>
&gt;<br>
&gt; 1. Use specific Subscription and Notify mechanisms for CoAP as HTT=
P really does not include this concept.<br>
&gt; 1a) Notify as a message and SUBSCRIBE as a method. This is current=
ly used in coap-01.<br>
&gt; 1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but=
 we had a good list discussion about this leading to a. In practice it =
doesn't make a big difference if notification is a message or method.<b=
r>
&gt;<br>
&gt; 2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2=
.0 proposal or GENA.<br>
&gt;<br>
&gt; So far we have focused on 1 in the WG, and every now and again 2 c=
omes up. At least I am not convinced that we need to suffer the drawbac=
ks of HTTP here. Anyways 2 does not help our mapping to HTTP in reality=
 very much as there is no standard way of doing this over HTTP. Thus a =
CoAP-HTTP proxy may end up anyways translating between multiple HTTP fr=
ameworks depending on the application. So instead of doing a CoAP Notif=
y/Subscribe to Webhooks mapping, you will could end up having to do a C=
oAP Webhooks to HTTP GENA mapping.<br>
&gt; &nbsp; &nbsp;<br>
<br>
<br>
I don't understand this last para. &nbsp;If CoAP sticks to the semantic=
s of <br>
the current HTTP methods, would this not offer a fairly straightforward=
 <br>
translation to/from HTTP?<br>
<br>
<br>
&gt; &gt; From what I have heard so far 1 still seems like a wise choic=
e, although I need to look at Webhooks more deeply. In reality many app=
lications specify their own way of doing a push interface using REST me=
thods and specific payloads (ZigBee SE2.0 is such an example). That is =
just fine, and might be used instead of a specific CoAP notify/subscrib=
e in that case. So 1 doesn't prevent the application using its own mech=
anism, it just provides a native way for doing push.<br>
&gt;<br>
&gt; What do people think?<br>
&gt;<br>
&gt; Zach<br>
&gt;<br>
&gt; On May 17, 2010, at 6:44 PM, matthieu.vial@fr.non.schneider-electr=
ic.com wrote:<br>
&gt;<br>
&gt; &nbsp; &nbsp;<br>
&gt;&gt; Hi,<br>
&gt;&gt;<br>
&gt;&gt; My comments about the subscribe/notify mechanism of Zigbee IP.=
<br>
&gt;&gt;<br>
&gt;&gt; Pros:<br>
&gt;&gt; - Derived from the webhooks concept<br>
&gt;&gt; - If used by CORE it will be easier to map to HTTP because it =
uses only CRUD verbs.<br>
&gt;&gt; - The subscription message is extendable and could support adv=
anced options (delays, increment, ...)<br>
&gt;&gt; - Only one listening port whatever the transport binding is.<b=
r>
&gt;&gt;<br>
&gt;&gt; Cons:<br>
&gt;&gt; - No interoperability without well known URIs and a well defin=
ed subscription message format (Not sure CoAP draft is the right place =
to specify this).<br>
&gt;&gt; - XML/EXI is too complex to be the required format for the def=
ault subscription/notification mechanism.<br>
&gt;&gt; - The notification should not require a subsequent GET to retr=
ieve the content.<br>
&gt;&gt; - Subresource subscription is redundant.<br>
&gt;&gt;<br>
&gt;&gt; Hope this could help,<br>
&gt;&gt; Matthieu<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; &lt;graycol.gif&gt;&quot;Charles Palmer&quot;&lt;charles.palme=
r@onzo.com&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; &quot;Charles Palmer&quot;&lt;charles.palmer@onzo.com&gt;<br>
&gt;&gt; Envoy=E9 par : core-bounces@ietf.org<br>
&gt;&gt; 15/05/2010 14:06<br>
&gt;&gt;<br>
&gt;&gt; &lt;ecblank.gif&gt;<br>
&gt;&gt; A<br>
&gt;&gt; &lt;ecblank.gif&gt;<br>
&gt;&gt; &quot;core&quot;&lt;core@ietf.org&gt;<br>
&gt;&gt; &lt;ecblank.gif&gt;<br>
&gt;&gt; cc<br>
&gt;&gt; &lt;ecblank.gif&gt;<br>
&gt;&gt; &lt;ecblank.gif&gt;<br>
&gt;&gt; Objet<br>
&gt;&gt; &lt;ecblank.gif&gt;<br>
&gt;&gt; Re: [core] Selecting a WG document for CoAP<br>
&gt;&gt; &lt;ecblank.gif&gt;		 &lt;ecblank.gif&gt;<br>
&gt;&gt;<br>
&gt;&gt; Dear all<br>
&gt;&gt;<br>
&gt;&gt; Those interested in the subscribe/notify discussion might like=
 to look<br>
&gt;&gt; at the draft Smart Energy Profile 2.0 Application Protocol<br>=

&gt;&gt; Specification. It is available here:<br>
&gt;&gt; </tt><tt><a href=3D"http://zigbee.org/Markets/ZigBeeSmartEnerg=
y/ZigBeeSmartEnergy20PublicApp">http://zigbee.org/Markets/ZigBeeSmartEn=
ergy/ZigBeeSmartEnergy20PublicApp</a></tt><tt><br>
&gt;&gt; licationProfile.aspx<br>
&gt;&gt;<br>
&gt;&gt; It manages subscribe/notify by using POST. This seems to remov=
e the need<br>
&gt;&gt; for SUBSCRIBE and notify.<br>
&gt;&gt;<br>
&gt;&gt; &quot;Imagine a host A, which exposes a resource at http{s}://=
A/resource and<br>
&gt;&gt; a second host B, which wishes to learn of changes to this reso=
urce. To<br>
&gt;&gt; facilitate a subscription/ notification mechanism, A would exp=
ose a<br>
&gt;&gt; resource http{s}://A/sub and B would expose a resource http{s}=
://B/ntfy.<br>
&gt;&gt; To subscribe to notifications regarding http{s}://A/resource, =
B would<br>
&gt;&gt; send a POST to the address http{s}://A/sub/B containing the UR=
I of the<br>
&gt;&gt; resource of interest (http{s}://A/resource) and the URI of B's=
<br>
&gt;&gt; notification resource (http{s}://B/ntfy). Following this subsc=
ription<br>
&gt;&gt; step, should A wish to notify B of a change to the resource ad=
dressed at<br>
&gt;&gt; http{s}://A/resource, A would send a POST to the address<br>
&gt;&gt; http{s}://B/ntfy containing the URI of the resource changed<br=
>
&gt;&gt; (http{s}://A/resource) and the URI of A's subscription resourc=
e<br>
&gt;&gt; (http{s}://A/sub/B), should A wish to change its subscription.=
 The host<br>
&gt;&gt; B can then query the resource (or not) at its leisure.&quot;<b=
r>
&gt;&gt;<br>
&gt;&gt; Sleepy nodes are not allowed to subscribe, and must poll.<br>
&gt;&gt;<br>
&gt;&gt; Regards - Charles Palmer<br>
&gt;&gt;<br>
&gt;&gt; -----Original Message-----<br>
&gt;&gt; From: core-bounces@ietf.org [<a href=3D"mailto:core-bounces@ie=
tf.org">mailto:core-bounces@ietf.org</a>] On Behalf Of<br>
&gt;&gt; Angelo P. Castellani<br>
&gt;&gt; Sent: 14 May 2010 13:14<br>
&gt;&gt; To: Zach Shelby<br>
&gt;&gt; Cc: core<br>
&gt;&gt; Subject: Re: [core] Selecting a WG document for CoAP<br>
&gt;&gt;<br>
&gt;&gt; Zach,<br>
&gt;&gt;<br>
&gt;&gt; thanks for the comments, but please refer to my most recent e-=
mail for<br>
&gt;&gt; a more specific list of technical issues I'm pointing to.<br>
&gt;&gt;<br>
&gt;&gt; I want to do only a little integration to what I've written th=
ere.<br>
&gt;&gt;<br>
&gt;&gt; In my very personal opinion, to maximize adherence with the RE=
ST model<br>
&gt;&gt; and minimize implementation effort SUBSCRIBE and NOTIFY should=
 be<br>
&gt;&gt; mapped to methods (as discussed many times together...).<br>
&gt;&gt;<br>
&gt;&gt; Uniform interface principle (Fielding PhD dissertation Section=
 5.1.5,<br>
&gt;&gt; &quot;The central feature that distinguishes the REST architec=
tural style<br>
&gt;&gt; [...]&quot;) states that to simplify the software architecture=
, resource<br>
&gt;&gt; interfaces/interfaces should be as general as possible.<br>
&gt;&gt;<br>
&gt;&gt; I agree with this principle in this specific case, mainly beca=
use<br>
&gt;&gt; handling a special message type for notify leads node software=
 design<br>
&gt;&gt; to a more complex architecture.<br>
&gt;&gt;<br>
&gt;&gt; The reason is that this new message type requires special hand=
ling and<br>
&gt;&gt; introduces a complexity in the software modularization.<br>
&gt;&gt;<br>
&gt;&gt; Best,<br>
&gt;&gt; Angelo<br>
&gt;&gt;<br>
&gt;&gt; On Fri, May 14, 2010 at 13:06, Zach Shelby&lt;zach@sensinode.c=
om&gt; &nbsp;wrote:<br>
&gt;&gt; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt; Hi Angelo,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:<br=
>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt;&gt; Dear C. Bormann, all,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; before deciding for the final direction, I've the foll=
owing<br>
&gt;&gt;&gt;&gt; observations about draft-shelby-core-coap-01<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; While I mostly share Zach's view of the protocol appro=
ach, and<br>
&gt;&gt;&gt;&gt; appreciate many aspects of the proposal, there are in =
my opinion<br>
&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt; still<br>
&gt;&gt; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt;&gt; some open issues that need to be at least discussed be=
fore the<br>
&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt; current<br>
&gt;&gt; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt;&gt; document can be selected.<br>
&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt; Of course there are plenty of open issues. Remember that w=
orking group<br>
&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt; documents still undertake as much change and improvement as th=
e WG<br>
&gt;&gt; wants, so by no means is coap-01 set in stone. I would expect =
at least<br>
&gt;&gt; 5-10 more revisions still along the way. &nbsp;Already several=
 of your ideas<br>
&gt;&gt; have been integrated into coap-01, and several more are under<=
br>
&gt;&gt; consideration, so it is coming along. Patience ;-)<br>
&gt;&gt; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt;&gt; In particular, I would like to highlight the following=
:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; a) As it is now, it is not possible to have a straight=
forward<br>
&gt;&gt;&gt;&gt; translation of HTTP -&gt; &nbsp;CoAP and viceversa: se=
e<br>
&gt;&gt;&gt;&gt; </tt><tt><a href=3D"http://www.ietf.org/mail-archive/w=
eb/core/current/msg00133.html">http://www.ietf.org/mail-archive/web/cor=
e/current/msg00133.html</a></tt><tt>&nbsp;(this<br>
&gt;&gt;&gt;&gt; impacts the scalability of the web service model too)<=
br>
&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt; In coap-01 the Method names are now identical to HTTP meth=
ods. The<br>
&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt; Req/Res interaction is a direct translation. The URI hierarchy=
 is<br>
&gt;&gt; compatible, and the URI binary code format we are still workin=
g on<br>
&gt;&gt; obviously. The only thing that takes some state to translate i=
s<br>
&gt;&gt; Subscribe/Notify. But note, Subscribe/Notify takes some state =
no matter<br>
&gt;&gt; how you do it, even with HTTP-HTTP there is no clean and easy =
way to<br>
&gt;&gt; handle subscriptions.<br>
&gt;&gt; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt;&gt; b) Moreover, CoAP's implementation is not as simple as=
 it should be.<br>
&gt;&gt;&gt;&gt; I've investigated the implementation and some design c=
hoices (as<br>
&gt;&gt;&gt;&gt; Options) are leading to very high program complexity (=
ROM) on a<br>
&gt;&gt;&gt;&gt; MSP430-based device.<br>
&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt; This we can definitely improve, and already made several o=
ptimizations<br>
&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt; from -00 to -01. Here I need some very concrete proposals thou=
gh. Also<br>
&gt;&gt; remember that many things are optional, for example subscribe/=
notify is<br>
&gt;&gt; not required if you don't need it.<br>
&gt;&gt; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt;&gt; c) Finally when comparing HTTP message size with CoAP =
message size,<br>
&gt;&gt;&gt;&gt; the resulting compression isn't as good as you may exp=
ect.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Example:<br>
&gt;&gt;&gt;&gt; HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B<br>
&gt;&gt;&gt;&gt; CoAP: 24 B with options parsing procedure requiring an=
 added<br>
&gt;&gt;&gt;&gt; implementation complexity<br>
&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt; Right, that is not how it will work in practice. Working w=
ith a real<br>
&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt; HTTP server that HTTP header will be more complex, and on the =
CoAP side<br>
&gt;&gt; you would chose shorter URLs. The biggest improvement possible=
 here is<br>
&gt;&gt; from using binary coded URLs of course. We need to look at a w=
ider range<br>
&gt;&gt; of interactions and real HTTP headers as well to check that we=
 are<br>
&gt;&gt; efficient enough.<br>
&gt;&gt; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt;&gt; Addressing all these points potentially leads to major=
 technical<br>
&gt;&gt;&gt;&gt; modifications (especially point a) on the current draf=
t, hence it is<br>
&gt;&gt;&gt;&gt; appropriate in my opinion to discuss these points befo=
re making the<br>
&gt;&gt;&gt;&gt; final decision.<br>
&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt; I am not sure what else you have in mind for a). If we jus=
t forget<br>
&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt; about Subscribe/Notify then you are good to go. But then you a=
re also<br>
&gt;&gt; not fulfilling the charter or the industry needs in that respe=
ct.<br>
&gt;&gt; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt; Thanks,<br>
&gt;&gt;&gt; Zach<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt;&gt; Best regards,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Angelo P. Castellani<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On Mon, May 10, 2010 at 18:51, Carsten Bormann&lt;cabo=
@tzi.org&gt; &nbsp;wrote:<br>
&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt;&gt;&gt; The CORE WG has a milestone to select a WG documen=
t for CoAP in<br>
&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt; April:<br>
&gt;&gt; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt;&gt;&gt; </tt><tt><a href=3D"http://datatracker.ietf.org/wg=
/core/charter/">http://datatracker.ietf.org/wg/core/charter/</a></tt><t=
t><br>
&gt;&gt;&gt;&gt;&gt; ...<br>
&gt;&gt;&gt;&gt;&gt; Apr 2010 &nbsp; &nbsp; &nbsp; &nbsp;Select WG docu=
ment for basis of the CoAP protocol<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Of the various documents that have been contribute=
d,<br>
&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt; draft-shelby-core-coap has significant discussion, as well as =
the<br>
&gt;&gt; largest number of updates (including a previous version that w=
as still<br>
&gt;&gt; called -6lowapp-coap).<br>
&gt;&gt; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt;&gt;&gt; Today, another updated version of that draft was a=
nnounced. &nbsp;See<br>
&gt;&gt;&gt;&gt;&gt; </tt><tt><a href=3D"http://www.ietf.org/mail-archi=
ve/web/core/current/msg00138.html">http://www.ietf.org/mail-archive/web=
/core/current/msg00138.html</a></tt><tt><br>
&gt;&gt;&gt;&gt;&gt; for the announcement and<br>
&gt;&gt;&gt;&gt;&gt; </tt><tt><a href=3D"http://tools.ietf.org/html/dra=
ft-shelby-core-coap-01">http://tools.ietf.org/html/draft-shelby-core-co=
ap-01</a></tt><tt><br>
&gt;&gt;&gt;&gt;&gt; for the draft itself.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; However, as the authors say, there are still signi=
ficant TODOs.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Are we in a state yet where we can say whether thi=
s is the right<br>
&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt; direction for the WG to take?<br>
&gt;&gt; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt;&gt;&gt; If yes, is it the right direction? &nbsp;Should we=
 adopt it as a WG<br>
&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt; document?<br>
&gt;&gt; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt;&gt;&gt; If you don't think we can say yet, is there a set =
of technical<br>
&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt; decisions you would like the authors to take with priority?<br=
>
&gt;&gt; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt;&gt;&gt; Note that once a document has become a WG document=
, the authors act<br>
&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt; as editors for the working group, making (and usually fleshing=
 out the<br>
&gt;&gt; details of) any change that the WG decides it needs.<br>
&gt;&gt; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt;&gt;&gt; If you think we can still improve the draft, this =
is not an obstacle<br>
&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt; to making it a WG document.<br>
&gt;&gt; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt;&gt;&gt; But of course we shouldn't do that if we intend to=
 reverse its<br>
&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt; fundamental technical direction.<br>
&gt;&gt; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt;&gt;&gt; In order to stay roughly in sync with our mileston=
es, we should<br>
&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt; reach at a decision on how to go forward this week.<br>
&gt;&gt; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt;&gt;&gt; Gruesse, Carsten<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; _______________________________________________<br=
>
&gt;&gt;&gt;&gt;&gt; core mailing list<br>
&gt;&gt;&gt;&gt;&gt; core@ietf.org<br>
&gt;&gt;&gt;&gt;&gt; </tt><tt><a href=3D"https://www.ietf.org/mailman/l=
istinfo/core">https://www.ietf.org/mailman/listinfo/core</a></tt><tt><b=
r>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt; core mailing list<br>
&gt;&gt;&gt;&gt; core@ietf.org<br>
&gt;&gt;&gt;&gt; </tt><tt><a href=3D"https://www.ietf.org/mailman/listi=
nfo/core">https://www.ietf.org/mailman/listinfo/core</a></tt><tt><br>
&gt;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt;&gt; --<br>
&gt;&gt;&gt; Zach Shelby, Chief Nerd, Sensinode Ltd.<br>
&gt;&gt;&gt; </tt><tt><a href=3D"http://zachshelby.org">http://zachshel=
by.org</a></tt><tt>&nbsp; - My blog &quot;On the Internet of Things&quo=
t;<br>
&gt;&gt;&gt; </tt><tt><a href=3D"http://6lowpan.net">http://6lowpan.net=
</a></tt><tt>&nbsp;- My book &quot;6LoWPAN: The Wireless Embedded Inter=
net&quot;<br>
&gt;&gt;&gt; Mobile: +358 40 7796297<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; core mailing list<br>
&gt;&gt; core@ietf.org<br>
&gt;&gt; </tt><tt><a href=3D"https://www.ietf.org/mailman/listinfo/core=
">https://www.ietf.org/mailman/listinfo/core</a></tt><tt><br>
&gt;&gt;<br>
&gt;&gt; --------------------------------<br>
&gt;&gt; Onzo is a limited company number 06097997 registered in Englan=
d&amp; &nbsp;Wales. The<br>
&gt;&gt; registered office is 6 Great Newport Street, London, WC2H 7JB,=
 United Kingdom.<br>
&gt;&gt;<br>
&gt;&gt; This email message may contain confidential and/or privileged =
information, and<br>
&gt;&gt; is intended solely for the addressee(s). If you have received =
this email in<br>
&gt;&gt; error, please notify Onzo immediately. Unauthorised copying, d=
isclosure or<br>
&gt;&gt; distribution of the material in this email is forbidden.<br>
&gt;&gt; --------------------------------<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; core mailing list<br>
&gt;&gt; core@ietf.org<br>
&gt;&gt; </tt><tt><a href=3D"https://www.ietf.org/mailman/listinfo/core=
">https://www.ietf.org/mailman/listinfo/core</a></tt><tt><br>
&gt;&gt;<br>
&gt;&gt; ______________________________________________________________=
________<br>
&gt;&gt; This email has been scanned by the MessageLabs Email Security =
System.<br>
&gt;&gt; ______________________________________________________________=
________<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; core mailing list<br>
&gt;&gt; core@ietf.org<br>
&gt;&gt; </tt><tt><a href=3D"https://www.ietf.org/mailman/listinfo/core=
">https://www.ietf.org/mailman/listinfo/core</a></tt><tt><br>
&gt;&gt; &nbsp; &nbsp; &nbsp;<br>
&gt; &nbsp; &nbsp;<br>
<br>
_______________________________________________<br>
core mailing list<br>
core@ietf.org<br>
</tt><tt><a href=3D"https://www.ietf.org/mailman/listinfo/core">https:/=
/www.ietf.org/mailman/listinfo/core</a></tt><tt><br>
<br>
--------------------------------<br>
Onzo is a limited company number 06097997 registered in England &amp; W=
ales. The &nbsp; &nbsp;<br>
registered office is 6 Great Newport Street, London, WC2H 7JB, United K=
ingdom.<br>
<br>
This email message may contain confidential and/or privileged informati=
on, and<br>
is intended solely for the addressee(s). If you have received this emai=
l in &nbsp; &nbsp; <br>
error, please notify Onzo immediately. Unauthorised copying, disclosure=
 or <br>
distribution of the material in this email is forbidden.<br>
--------------------------------<br>
<br>
_______________________________________________<br>
core mailing list<br>
core@ietf.org<br>
</tt><tt><a href=3D"https://www.ietf.org/mailman/listinfo/core">https:/=
/www.ietf.org/mailman/listinfo/core</a></tt><tt><br>
<br>
______________________________________________________________________<=
br>
This email has been scanned by the MessageLabs Email Security System.<b=
r>
______________________________________________________________________<=
br>
</tt><br>
</body></html>=


--1__=4EBBFDBCDFBBF6518f9e8a93df938690918c4EBBFDBCDFBBF651--


--0__=4EBBFDBCDFBBF6518f9e8a93df938690918c4EBBFDBCDFBBF651
Content-type: image/gif; 
	name="graycol.gif"
Content-Disposition: inline; filename="graycol.gif"
Content-ID: <1__=4EBBFDBCDFBBF6518@schneider-electric.com>
Content-Transfer-Encoding: base64

R0lGODlhEAAQAKECAMzMzAAAAP///wAAACH5BAEAAAIALAAAAAAQABAAAAIXlI+py+0PopwxUbpu
ZRfKZ2zgSJbmSRYAIf4fT3B0aW1pemVkIGJ5IFVsZWFkIFNtYXJ0U2F2ZXIhAAA7


--0__=4EBBFDBCDFBBF6518f9e8a93df938690918c4EBBFDBCDFBBF651
Content-type: image/gif; 
	name="pic10195.gif"
Content-Disposition: inline; filename="pic10195.gif"
Content-ID: <2__=4EBBFDBCDFBBF6518@schneider-electric.com>
Content-Transfer-Encoding: base64

R0lGODlhWABDALP/AAAAAK04Qf79/o+Gm7WuwlNObwoJFCsoSMDAwGFsmIuezf///wAAAAAAAAAA
AAAAACH5BAEAAAgALAAAAABYAEMAQAT/EMlJq704682770RiFMRinqggEUNSHIchG0BCfHhOjAuh
EDeUqTASLCbBhQrhG7xis2j0lssNDopE4jfIJhDaggI8YB1sZeZgLVA9YVCpnGagVjV171aRVrYR
RghXcAGFhoUETwYxcXNyADJ3GlcSKGAwLwllVC1vjIUHBWsFilKQdI8GA5IcpApeJQt8L09lmgkH
LZikoU5wjqcyAMMFrJIDPAKvCFletKSev1HBw8KrxtjZ2tvc3d5VyKtCKW3jfz4uMKmq3xu4N0nK
BVoJQmx2LGVOmrqNjjJf2hHAQo/eDwJGTKhQMcgQEEAnEjFS98+RnW3smGkZU6ncCWav/4wYOnAI
TihRL/4FEwbp28BXMMcoscQCVxlepL4IGDSCyJyVQOu0o7CjmLN50OZlqWmyFy5/6yBBuji0AxFR
M00oQAqNIstqI6qKHUsWRAEAvagsmfUEAImyxgbmUpJk3IklNUtJOUAVLoUr1+wqDGTE4zk+T6FG
uQb3SizBCwatiiUgCBN8vrz+zFjVyQ8FWkOlg4NQiZMB5QS8QO3mpOaKnL0Z2EKvNMSILEThKhCg
zMKPVxYJh23qm9KNW7pArPynMqZDiErsTMqI+LRi3QAgkFUbXpuFKhSYZALd0O5RKa2z9EYKBbpb
qxIKsjUPRgD7I2XYV6wyrOw92ykExP8NW4URhknC5dKGE4v4NENQj2jXjmfNgOZDaXb5glRmXQ33
YEWQYNcZFnrYcIQLNzyTFDQNkXIff0ExVlY4srziQk43inZgL4rwxxINMvpFFAz1KOODHiu+4aEw
NEjFl5B3JIKWKF3k6I9bfUGp5ZZcdunll5IA4cuHvQQJ5gcsoCWOOUwgltIwAKRxJgbIkJAQZEq0
2YliZnpZZ4BH3CnYOXldOUOfQoYDqF1LFHbXCrO8xmRsfoXDXJ6ChjCAH3QlhJcT6VWE6FCkfCco
CgrMFsROrIEX3o2whVjWDjoJccN3LdggSGXLCdLEgHr1lyU3O3QxhgohNKXJCWv8JQr/PDdaqd6w
2rj1inLiGeiCJoDspAoQlYE6QWLSECehcWIYxIQES6zhbn1iImTHEQyqJ4eIxJJoUBc+3CbBuwZE
V5cJPPkIjFDdeEabQbd6WgICTxiiz0f5dBKquXF6k4senwEhYGnKEFJeGrxUZy8dB8gmAXI/sPvH
ESfCwVt5hTgYiqQqtdRNHQIU1PJ33ZqmzgE90OwLaoJcnMop1WiMmgkPHQRIrwgFuNV90A3doNKT
mrKIN07AnGcI9BQjhCBN4RfA1qIZnMqorJCogKfGQnxSCDilTVIA0yl5ciTovgLuBDKFUDE9aQcw
9SA+rjSNf9/M1gxrj6VwDTS0IUSElMzBfsj0NFXR2kwsV1A5IF1grLgLL/r1R40BZEnuBWgmQEyb
jqRwSAt6bqMCOFkvKFN2GPPkUzIm/SCF8z8pVzpbjVnMsy0vOr1hw3SaSRUhpY09v0z0J1FnwzPl
fmh+xl4WtR0zGu24I4KbMQm3lnVu2oNWxI9W/lcyzA+mCKF4DBikxb/+UWtOGRiFP8qEwAayIgIA
Ow==


--0__=4EBBFDBCDFBBF6518f9e8a93df938690918c4EBBFDBCDFBBF651
Content-type: image/gif; 
	name="ecblank.gif"
Content-Disposition: inline; filename="ecblank.gif"
Content-ID: <3__=4EBBFDBCDFBBF6518@schneider-electric.com>
Content-Transfer-Encoding: base64

R0lGODlhEAABAIAAAAAAAP///yH5BAEAAAEALAAAAAAQAAEAAAIEjI8ZBQA7


--0__=4EBBFDBCDFBBF6518f9e8a93df938690918c4EBBFDBCDFBBF651--


From daniel.gavelle@jennic.com  Wed May 26 01:42:04 2010
Return-Path: <daniel.gavelle@jennic.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 13CCC3A68B7 for <core@core3.amsl.com>; Wed, 26 May 2010 01:42:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.154
X-Spam-Level: *
X-Spam-Status: No, score=1.154 tagged_above=-999 required=5 tests=[BAYES_50=0.001, HELO_MISMATCH_COM=0.553, J_CHICKENPOX_32=0.6]
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 PHOvS+ws8QfV for <core@core3.amsl.com>; Wed, 26 May 2010 01:42:02 -0700 (PDT)
Received: from mail.jennic.com (proxy.jennic.co.uk [81.23.53.53]) by core3.amsl.com (Postfix) with ESMTP id 72D5E3A689E for <core@ietf.org>; Wed, 26 May 2010 01:42:02 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mail.jennic.com (Postfix) with ESMTP id 6AE469BE50A; Wed, 26 May 2010 09:41:52 +0100 (BST)
Received: from mail.jennic.com ([127.0.0.1]) by localhost (smithers.jennic.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0uKldF4NiNuG; Wed, 26 May 2010 09:41:52 +0100 (BST)
Received: from [10.99.96.69] (snifflap01.jennic.com [10.99.96.69]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mail.jennic.com (Postfix) with ESMTPSA id 521389BE508; Wed, 26 May 2010 09:41:52 +0100 (BST)
Message-ID: <4BFCDED0.2060605@jennic.com>
Date: Wed, 26 May 2010 09:41:52 +0100
From: Daniel Gavelle <daniel.gavelle@jennic.com>
Organization: Jennic Ltd.
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
MIME-Version: 1.0
To: Daniel Berenguer <dberenguer@usapiens.com>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk>	<2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry>	<041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org>	<E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local>	<3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org>	<C6471264338047459F18230B4F871DA0098F0529@csomb01.corp.atmel.com>	<355B1C46-98A8-4D4F-95B5-C011B2B81F92@sensinode.com>	<485AF6ECE8D1954D996771CC49E996FDC0A8A4F4@IT-EXMB-01.silverspringnet.com>	<C6471264338047459F18230B4F871DA0098F052E@csomb01.corp.atmel.com> <AANLkTinmMRgnMwKV1XpjHFz1hWsiU-Bj-oNWuCbKom2N@mail.gmail.com>
In-Reply-To: <AANLkTinmMRgnMwKV1XpjHFz1hWsiU-Bj-oNWuCbKom2N@mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Cc: core <core@ietf.org>
Subject: Re: [core] Core UDP vs TCP : Redux
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: daniel.gavelle@jennic.com
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, 26 May 2010 08:42:04 -0000

I also think that fragmentation should not be part of CoAP. 
Applications that need more than 1K of data per message are likely to be 
running on devices that can support TCP/HTTP. Firmware updates can use TFTP.

I do think there would be interest in a separate effort to cover 
compressing HTTP/TCP.  If this were done, CoAP could target the very 
restricted nodes and wouldn't need to attempt to address the next size 
up, where HTTP/TCP can be used but is inefficient.

Daniel.





Daniel Berenguer wrote:
> Maybe I'm misunderstanding something but, is CoAP supposed to give
> support for firmware upgrades? Wouldn't be easier to use proprietary
> schemas over TCP or just TFTP over UDP for transferring large packet
> blocks? Why overloading a M2M protocol like CoAP with such things?
> 
> I agree with Zach in that interoperability is a priority so adding a
> explicit note about the recommended use of CoAP over UDP would be
> useful.
> 
> Daniel.
> 
> 
> On 25 May 2010 10:37, Oflynn, Colin <Colin.OFlynn@atmel.com> wrote:
>> Hello,
>>
>> I think 3 (fragmentation) should still be included in CoAP if we are
>> proposing UDP. The main feature I'm thinking of is firmware updates which
>> would need larger responses.
>>
>> Again the fragmentation can be very simple (TFTP style), and if the user
>> requires anything more advanced it is their responsibility. However leaving
>> it to "users" probably means "not interpolatable", since then their is
>> basically different responses depending on the file size.
>>
>> Regards,
>>
>>   -Colin
>>
>>
>> -----Original Message-----
>> From: core-bounces@ietf.org on behalf of Thomas Herbst
>> Sent: Tue 25/05/2010 07:18
>> To: Zach Shelby; core
>> Subject: Re: [core] Core UDP vs TCP : Redux
>>
>> IMHO, 1& 2 move the document forward significantly.
>> For 3,  fragmentation being an exercise for the user seems okay.
>>
>> DTLS may well need more thought.
>>
>> ________________________________________
>> From: core-bounces@ietf.org [core-bounces@ietf.org] On Behalf Of Zach Shelby
>> [zach@sensinode.com]
>> Sent: Monday, May 24, 2010 8:14 AM
>> To: core
>> Subject: Re: [core] Core UDP vs TCP : Redux
>>
>> So what I heard people want here:
>>
>> 1. UDP as *the only* transport for simplicity and interoperability in the
>> spec (as long as we don't reinvent TCP).
>> 2. CoAP to be transport independent as a protocol, thus allowing it to be
>> possibly used in other ways in the future.
>> 3. A couple people think we might need a fragmentation feature for responses
>> with a payload size over the maximum.
>> 4. DTLS might have complexity problems, should not be the only option
>> (Michael)
>> 5. Some transport binding framework could be explored (Robert)
>>
>> I agree with 1 and 2, and my proposal would be to remove the TCP-specific
>> text and sections from the next version of CoAP. We can make the protocol
>> itself independent of UDP (it really already is), however UDP must be
>> specified for interoperability reasons. I propose we anyways keep some text
>> saying something like
>>
>> "Although this document specifies CoAP over UDP, the protocol may also be
>> applicable over other transports such as TCP or SCTP. The specification of
>> such use is out of scope of this document.
>>
>> This would at least give us a starting point. I don't see the need for
>> developing frameworks or negotiation of multiple bindings for CoAP, at least
>> not now.
>>
>> Regarding fragmentation, let's not jump the gun too soon here. For the vast
>> majority of constrained applications the 1280 byte maximum is more than
>> enough. For cases when it is not let's first see if it would make sense to
>> let the application deal with it. By the way, coap-01 has a mistake with the
>> 576B IPv4 maximum and 1280B IPv6 maximum. That doesn't work for
>> CoAP(IPv4)-CoAP(IPv6) proxying. Instead we should set both to use the 1280
>> byte maximum.
>>
>> Regarding DTLS, we are specifying how to use it with CoAP as it is a secure
>> transport. I agree with Michael that DTLS may very well be too much for many
>> constrained devices, so we should make it clear that this is not the only
>> way to do security, IPSEC e.g. is equally applicable (and probably simpler)
>> but doesn't require any specification in the document. A security analysis
>> ID would be a big help for the WG.....
>>
>> Zach
>>
>> On May 18, 2010, at 4:23 PM, Oflynn, Colin wrote:
>>
>>>> Are there dependencies to UDP or is it only because the assumed
>>>> infrastructure is highly constrained?
>>> My thoughts/feeling on the issue is that CoAP should be designed with a
>>> highly constrained environment, and as such being bound to UDP makes it a
>>> lot simpler.
>>>
>>> The resources which CoAP accesses SHOULD be accessible another in another
>>> manner; most likely this is HTTP over TCP. Even though CoAP does not map
>>> directly to HTTP, the requests are the same and thus I don't see an issue
>>> here. Nodes which are highly constrained may only support CoAP; larger nodes
>>> can support the full HTTP method.
>>>
>>> Of course the whole subscription/notify method might take some changes to
>>> make it accessible via HTTP... but thats another thread.
>>>
>>>    -Colin
>>>
>>>
>>> -----Original Message-----
>>> From: core-bounces@ietf.org on behalf of Guido Moritz
>>> Sent: Tue 18/05/2010 09:21
>>> To: core@ietf.org
>>> Subject: Re: [core] Core UDP vs TCP : Redux
>>>
>>> From the CORE charter:
>>>>   4) The core CoAP functionality MUST operate well over UDP and UDP MUST
>>>>   be implemented on CoAP Devices. There may be OPTIONAL functions in
>>>>   CoAP (e.g. delivery of larger chunks of data) which if implemented are
>>>>   implemented over TCP. Applications which require the optional TCP
>>>>   features will limit themselves to a narrower subset of deployment
>>>>   cases.
>>> Running over TCP would narrow application scenarios? It would be more than
>>> reasonable to design COAP while keeping UDP in mind. But as long as there
>>> are no direct dependencies of COAP itself to the transport mechanisms,
>>> don't
>>> restrict it. This in contrast would extend application scenarios, because
>>> you can use COAP also if reliable transport layer is required in the
>>> scenario.
>>>
>>> Are there dependencies to UDP or is it only because the assumed
>>> infrastructure is highly constrained?
>>>
>>> Guido
>>>
>>>> -----Ursprüngliche Nachricht-----
>>>> Von: core-bounces@ietf.org [mailto:core-bounces@ietf.org] Im Auftrag von
>>>> Carsten Bormann
>>>> Gesendet: Montag, 17. Mai 2010 18:59
>>>> An: Charles Palmer
>>>> Cc: core
>>>> Betreff: Re: [core] Core UDP vs TCP : Redux
>>>>
>>>> On May 17, 2010, at 17:47, Charles Palmer wrote:
>>>>
>>>>> How disruptive would it be to design CoRE without reference to
>>>>> TCP/UDP,
>>> and
>>>> also design a "reliable UDP" and use this for CoRE?
>>>>
>>>> I personally think CoAP needs to work with DTLS; if the WG moves in that
>>>> direction there will be some minimum requirement for independence from
>>>> the
>>>> underlying protocol.
>>>>
>>>> However, what we expect from the underlying protocol has a big bearing
>>>> on
>>> CoAP
>>>> itself.
>>>> If we expect we can always move to TCP, there will be little need to
>>>> make
>>> CoAP
>>>> operate on large representations with small underlying interactions.
>>>> I've
>>>> heard a lot of pushback on assuming the availability of TCP, so far.
>>>>
>>>> There is also the aspect of interoperability:  One of the great
>>>> properties
>>> of
>>>> the Web is that everybody uses the same stack, so all Web clients and
>>> servers
>>>> are interoperable, with IP providing the necessary technological
>>> diversity.
>>>> (On the other hand, this has made it near impossible to swap in, say,
>>> SCTP.)
>>>> Just standardizing CoAP without an "we expect this to run on UDP, unless
>>>> otherwise specified" would not achieve the same level of
>>>> interoperability.
>>>>
>>>> <WG chair hat>In any case, designing a reliable transport as a TCP
>>> replacement
>>>> and then a CoAP on top of either that or TCP is very much not what the
>>> charter
>>>> suggests we are supposed to do.</WG chair hat>
>>>> Instead, we should look at how stateless CoAP really can be made -- I
>>> think
>>>> even TFTP has too much state (and thus isn't as trivial a file transfer
>>>> protocol as it could be).
>>>>
>>>> Gruesse, Carsten
>>>>
>>>> _______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>
>>>
>>> _______________________________________________
>>> 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
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
> 

-- 
__________________________________________________
Daniel Gavelle, Software Engineer
Tel: +44 114 281 2655
Fax: +44 114 281 2951
Jennic Ltd, Furnival Street, Sheffield, S1 4QT, UK
Comp Reg No: 3191371  Registered In England
http://www.jennic.com
__________________________________________________

From angelo.castellani@gmail.com  Wed May 26 03:09:24 2010
Return-Path: <angelo.castellani@gmail.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 EFB2D3A68E8 for <core@core3.amsl.com>; Wed, 26 May 2010 03:09:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.623
X-Spam-Level: 
X-Spam-Status: No, score=0.623 tagged_above=-999 required=5 tests=[BAYES_50=0.001, FM_FORGED_GMAIL=0.622]
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 cUr1XAylVRz1 for <core@core3.amsl.com>; Wed, 26 May 2010 03:09:23 -0700 (PDT)
Received: from mail-vw0-f44.google.com (mail-vw0-f44.google.com [209.85.212.44]) by core3.amsl.com (Postfix) with ESMTP id 9D3613A68BD for <core@ietf.org>; Wed, 26 May 2010 03:09:21 -0700 (PDT)
Received: by vws14 with SMTP id 14so2036484vws.31 for <core@ietf.org>; Wed, 26 May 2010 03:09:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=/u5/9RoW1eYVjfyXkyAgbjczz6FPhotemxsJ+h883rA=; b=mQjr59nGyiLflyLh+BwoBlnKJT/2IM3JvnmQGcrUbNqcqy4L7ja4Wh1Ku/0yCGNZvZ UKhgoGotlx3BNHLaSyWaYuSVlE9QnCjt+VYiVS/BaX0SJ1BCAQ2sqj96hCigYhxZQ+s7 TwA2QsCwlFVYGHvZpB/6YrQGt2OqFLSd/QUvU=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=JpgQNSMeYv+7tic1NmMza3b+0qfv91TqnVZH20r7eSPEtsU7iTUj66QneMydBREOxd zFbX6+hHPsriTJmwue7n5KkKkDKwh3hXLw8Rb6QTExgxdY3eK5nMbs4bjVQA3rgOfayA i6aiN/LTzeVTVYnvOLoO4ykBLKaCgxvdbhHAg=
MIME-Version: 1.0
Received: by 10.220.128.136 with SMTP id k8mr6091176vcs.198.1274868544875;  Wed, 26 May 2010 03:09:04 -0700 (PDT)
Sender: angelo.castellani@gmail.com
Received: by 10.220.99.140 with HTTP; Wed, 26 May 2010 03:09:04 -0700 (PDT)
In-Reply-To: <7ACD74E5-787D-47A4-82BF-5A640396D546@sensinode.com>
References: <3BB5F67A-9E57-4F81-B7C5-ABB1E136DAAC@tzi.org> <AANLkTimYZLQyvG3Xn9BXqjiiIxuqe-43c0fveOF-bNSm@mail.gmail.com> <568AEFD6-974D-4790-A2F8-84305B990BA9@cisco.com> <AANLkTimzwXnCZZFBGNkL4I9UqzUMC-cW6XwewRR8Fl1Y@mail.gmail.com> <7ACD74E5-787D-47A4-82BF-5A640396D546@sensinode.com>
Date: Wed, 26 May 2010 12:09:04 +0200
X-Google-Sender-Auth: eH9DQydJ1PbgoB3fWWfY2O2Z6G8
Message-ID: <AANLkTinQ36S96m2gbrC9zxRTu90UCzphTaX5i6_ZI9WY@mail.gmail.com>
From: "Angelo P. Castellani" <angelo@castellani.net>
To: Zach Shelby <zach@sensinode.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: core <core@ietf.org>
Subject: Re: [core] Selecting a WG document for CoAP
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, 26 May 2010 10:09:24 -0000

Zach,

thanks for the interesting discussion.

In my opinion in the CoAP specification process HTTP interoperability
should not be solved with a simple mapping between two different
protocols.

I think that can be more useful, reusable and interoperable to define
a standard HTTP binary-compressed *bidirectional* translation of HTTP.

After this is done we can focus on specific features (e.g. M2M
communication through subscribe/notify, etc.) not included in the HTTP
design goals.

The current focus (not the result maybe) of coap-01 is quite different
from this.

Philosophy ended :)

On Mon, May 24, 2010 at 15:45, Zach Shelby <zach@sensinode.com> wrote:
> Uniformity of what? Notify actually gives a uniform way of notifying abou=
t a resource, and conceptually it does belong as a message. It is clearly n=
ot Req/Res, please see the original list exchange started by Robert Cragie.=
 That is where we decided to make it a message instead of a Method.


I can handle it as a different message type, but in my sw components
interface specification this leads to the need to specify a completely
different interface for pushing notifications to a resource. This
introduces complexity in my constrained device software architecture.

REQ/RES only interaction was selected to provide an uniform interface.
That choice was an application of a well-known SW engineering
principle: generalizing component interfaces simplifies the overall
system architecture.

> URI-Code is just something we started with, I am open to any scheme. Alre=
ady your Sum Modulo-255 is being discussed, below it seems you are suggesti=
ng a different one.


Yes, I'm proposing actually two different formats. Depending upon the
use case we can use one or the other.

> Um, wrong. Content-Length and Content-Type are not always needed. We alre=
ady discussed on the list that we can do without Content-Encoding.


Right, Options bitmap fields are a very good solution for this kind of
options then..

> I need some more convincing here that we really need cookies. What is the=
 use case?


Suppose an user has a recurrent interaction with a generic resource,
state informations about this interaction can be saved into a binary
cookie and the complexity of memorizing that is left to the user not
to the constrained device.

> Sure, such an encoding could be used for all URIs, at least 7-bit ASCII e=
ncoding would be easy and already now we are leaving out the / in coap-01. =
This is a different issue to the Binary URI encoding.


Yes is different, both are useful and depending upon the use-case we
can choose which is better.

CoAP -> HTTP translation requires the compressed URI format to
interoperate with HTTP

HTTP -> CoAP is supposed to use the BinaryURI format because if node
resources have been added without collisions

> This we can discuss. The working group is going to have to find a balance=
 between flexibility in options and efficiency/complexity. I originally pro=
posed (coap-req-01) having a totally fixed header with no options, but the =
WG clearly wanted options. You can't have your cake and eat it too.


In my opinion split request and response options and put well-known
Options in a bitmap is a very useful feature to reduce complexity and
minimize packet size. If this is done, URI can be an Option because
the result is quite the same :)

> There are all really optimizations, which I am confident we will work thr=
ough as a WG. I am also sure we can still simplify and improve coap!


Sure, I'm quite interested in providing help, if I'm able to..

> All discussion and input are useful here. In the future it might be easie=
r to split this up into smaller subject threads rather than a large list of=
 issues all at once.


Thanks for the useful comments, sorry I will write the issues
separately the next time..

Best,
Angelo

From fluffy@cisco.com  Wed May 26 09:14:17 2010
Return-Path: <fluffy@cisco.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 357D43A67B4 for <core@core3.amsl.com>; Wed, 26 May 2010 09:14:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -108.117
X-Spam-Level: 
X-Spam-Status: No, score=-108.117 tagged_above=-999 required=5 tests=[AWL=-0.718, BAYES_50=0.001, J_CHICKENPOX_32=0.6, RCVD_IN_DNSWL_HI=-8, 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 N5BsRmzJaNSn for <core@core3.amsl.com>; Wed, 26 May 2010 09:14:15 -0700 (PDT)
Received: from sj-iport-5.cisco.com (sj-iport-5.cisco.com [171.68.10.87]) by core3.amsl.com (Postfix) with ESMTP id 06C513A68DC for <core@ietf.org>; Wed, 26 May 2010 09:14:15 -0700 (PDT)
Authentication-Results: sj-iport-5.cisco.com; dkim=neutral (message not signed) header.i=none
X-IronPort-AV: E=Sophos;i="4.53,304,1272844800"; d="scan'208";a="203096484"
Received: from sj-core-1.cisco.com ([171.71.177.237]) by sj-iport-5.cisco.com with ESMTP; 26 May 2010 16:14:05 +0000
Received: from [192.168.4.177] (rcdn-fluffy-8711.cisco.com [10.99.9.18]) by sj-core-1.cisco.com (8.13.8/8.14.3) with ESMTP id o4QGE4Nx014530; Wed, 26 May 2010 16:14:04 GMT
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: text/plain; charset=iso-8859-1
Impp: xmpp:cullenfluffyjennings@jabber.org
From: Cullen Jennings <fluffy@cisco.com>
In-Reply-To: <4BFB3ED5.5010101@cisco.com>
Date: Wed, 26 May 2010 10:14:03 -0600
Content-Transfer-Encoding: quoted-printable
Message-Id: <E995EA2D-48BB-4761-BC46-2EDF503518D6@cisco.com>
References: <485AF6ECE8D1954D996771CC49E996FDC0F4BE30@IT-EXMB-01.silverspringnet.com>	<17D5C562-AC60-43E7-B05F-B3F906693F99@sensinode.com><004801caf1da$822f4160$868dc420$@moritz@uni-rostock.de><FD7B10366AE3794AB1EC5DE97A93A37305A2FBAB68@EXMB01CMS.surrey.ac.uk><002b01caf58d$a3b0d770$eb128650$@moritz@uni-rostock.de><2076146592-1274099833-cardhu_decombobulator_blackberry.rim.net-1047544741-@bda054.bisx.prod.on.blackberry><006901caf5c8$f9431d70$ebc95850$@moritz@uni-rostock.de><041A6061-2C61-43CA-8497-C5A978360FD4@tzi.org>	<007c01caf5d3$30f026f0$92d074d0$@moritz@uni-rostock.de>	<E4DBD8AB11D2E54F89B23D7CD1065D8C01055ED5@onzosbs2k3.ONZO.local>	<3C20B7FD-CB93-43CC-83D2-3F4209CC5B84@tzi.org>	<002101caf663$1c251d30$546f5790$@moritz@uni-rostock.de>	<C6471264338047459F18230B4F871DA0098F0529@csomb01.corp.atmel.com> <355B1C46-98A8-4D4F-95B5-C011B2B81F92@sensinode.com> <4BFB3ED5.5010101@cisco.com>
To: Paul Duffy <paduffy@cisco.com>, core <core@ietf.org>
X-Mailer: Apple Mail (2.1078)
Subject: Re: [core] Core UDP vs TCP : Redux
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, 26 May 2010 16:14:17 -0000

Not arguing one way or the other about what we should do with security =
but a few bits of information ....

Michaels email nicely highlighted that we could use what I would call an =
object security model where we secure the chunks of data being moved =
around (his option 1) or use a session security model (his option 2). =
Session security is often much easier to get to implemented and DTLS =
would be the obvious candidate for this. Object security would have =
advantages in a protocol that involves things like proxies, translators, =
caches, nodes responding on behalf of other nodes that are powered off, =
and multicast.=20

DTLS is simply TLS stuck on top of UDP. The reliability only covers the =
TLS control messages but not the transported data so you still need to =
deal with reliability & fragmentation the same as you would do for UDP.=20=

=20
DTLS (and TLS) support session resumption so that you only have to do =
expensive public key crypto the first time you ever connect to a given =
server and after that it can be very fast. The people doing SIP over TLS =
use this so that when a city looses power and all phones reboot at the =
same time, the servers can keep up - it's easy and works well. The =
client and server can decide how long to  allow the cached info to be =
used.=20

I'm not a security expert but if we have questions we need security =
folks to answer, I can get the Sec ADs to find us someone to help. I =
don't think we are at that point yet as I suspect there is a fair amount =
of security expertise on this list. Let me know and I will make sure we =
get the needed info. =20

Cullen

On May 24, 2010, at 9:07 PM, Paul Duffy wrote:

> IMO any decision pro/con DTLS is premature.  Use of DTLS is desirable =
as it "goes with the grain" of HTTP usage patterns.
>=20
> I believe the DTLS concerns revolve around how long a session can be =
kept alive.  Or alternatively, over how long a period of time can I =
amortize/cache session information for a single (expensive) key =
establishment handshake.
>=20
> Yes, we need security expertise to answer this question.
>=20
>=20
> On 5/24/2010 11:14 AM, Zach Shelby wrote:
>> So what I heard people want here:
>>=20
>> 1. UDP as *the only* transport for simplicity and interoperability in =
the spec (as long as we don't reinvent TCP).
>> 2. CoAP to be transport independent as a protocol, thus allowing it =
to be possibly used in other ways in the future.
>> 3. A couple people think we might need a fragmentation feature for =
responses with a payload size over the maximum.
>> 4. DTLS might have complexity problems, should not be the only option =
(Michael)
>> 5. Some transport binding framework could be explored (Robert)
>>=20
>> I agree with 1 and 2, and my proposal would be to remove the =
TCP-specific text and sections from the next version of CoAP. We can =
make the protocol itself independent of UDP (it really already is), =
however UDP must be specified for interoperability reasons. I propose we =
anyways keep some text saying something like
>>=20
>> "Although this document specifies CoAP over UDP, the protocol may =
also be applicable over other transports such as TCP or SCTP. The =
specification of such use is out of scope of this document.
>>=20
>> This would at least give us a starting point. I don't see the need =
for developing frameworks or negotiation of multiple bindings for CoAP, =
at least not now.
>>=20
>> Regarding fragmentation, let's not jump the gun too soon here. For =
the vast majority of constrained applications the 1280 byte maximum is =
more than enough. For cases when it is not let's first see if it would =
make sense to let the application deal with it. By the way, coap-01 has =
a mistake with the 576B IPv4 maximum and 1280B IPv6 maximum. That =
doesn't work for CoAP(IPv4)-CoAP(IPv6) proxying. Instead we should set =
both to use the 1280 byte maximum.
>>=20
>> Regarding DTLS, we are specifying how to use it with CoAP as it is a =
secure transport. I agree with Michael that DTLS may very well be too =
much for many constrained devices, so we should make it clear that this =
is not the only way to do security, IPSEC e.g. is equally applicable =
(and probably simpler) but doesn't require any specification in the =
document. A security analysis ID would be a big help for the WG.....
>>=20
>> Zach
>>=20
>> On May 18, 2010, at 4:23 PM, Oflynn, Colin wrote:
>>=20
>>  =20
>>>> Are there dependencies to UDP or is it only because the assumed
>>>> infrastructure is highly constrained?
>>>>      =20
>>> My thoughts/feeling on the issue is that CoAP should be designed =
with a highly constrained environment, and as such being bound to UDP =
makes it a lot simpler.
>>>=20
>>> The resources which CoAP accesses SHOULD be accessible another in =
another manner; most likely this is HTTP over TCP. Even though CoAP does =
not map directly to HTTP, the requests are the same and thus I don't see =
an issue here. Nodes which are highly constrained may only support CoAP; =
larger nodes can support the full HTTP method.
>>>=20
>>> Of course the whole subscription/notify method might take some =
changes to make it accessible via HTTP... but thats another thread.
>>>=20
>>>   -Colin
>>>=20
>>>=20
>>> -----Original Message-----
>>> From: core-bounces@ietf.org on behalf of Guido Moritz
>>> Sent: Tue 18/05/2010 09:21
>>> To: core@ietf.org
>>> Subject: Re: [core] Core UDP vs TCP : Redux
>>>=20
>>> =46rom the CORE charter:
>>>    =20
>>>>  4) The core CoAP functionality MUST operate well over UDP and UDP =
MUST
>>>>  be implemented on CoAP Devices. There may be OPTIONAL functions in
>>>>  CoAP (e.g. delivery of larger chunks of data) which if implemented =
are
>>>>  implemented over TCP. Applications which require the optional TCP
>>>>  features will limit themselves to a narrower subset of deployment
>>>>  cases.
>>>>      =20
>>> Running over TCP would narrow application scenarios? It would be =
more than
>>> reasonable to design COAP while keeping UDP in mind. But as long as =
there
>>> are no direct dependencies of COAP itself to the transport =
mechanisms, don't
>>> restrict it. This in contrast would extend application scenarios, =
because
>>> you can use COAP also if reliable transport layer is required in the
>>> scenario.
>>>=20
>>> Are there dependencies to UDP or is it only because the assumed
>>> infrastructure is highly constrained?
>>>=20
>>> Guido
>>>=20
>>>    =20
>>>> -----Urspr=FCngliche Nachricht-----
>>>> Von: core-bounces@ietf.org [mailto:core-bounces@ietf.org] Im =
Auftrag von
>>>> Carsten Bormann
>>>> Gesendet: Montag, 17. Mai 2010 18:59
>>>> An: Charles Palmer
>>>> Cc: core
>>>> Betreff: Re: [core] Core UDP vs TCP : Redux
>>>>=20
>>>> On May 17, 2010, at 17:47, Charles Palmer wrote:
>>>>=20
>>>>      =20
>>>>> How disruptive would it be to design CoRE without reference to =
TCP/UDP,
>>>>>        =20
>>> and
>>>    =20
>>>> also design a "reliable UDP" and use this for CoRE?
>>>>=20
>>>> I personally think CoAP needs to work with DTLS; if the WG moves in =
that
>>>> direction there will be some minimum requirement for independence =
from the
>>>> underlying protocol.
>>>>=20
>>>> However, what we expect from the underlying protocol has a big =
bearing on
>>>>      =20
>>> CoAP
>>>    =20
>>>> itself.
>>>> If we expect we can always move to TCP, there will be little need =
to make
>>>>      =20
>>> CoAP
>>>    =20
>>>> operate on large representations with small underlying =
interactions.  I've
>>>> heard a lot of pushback on assuming the availability of TCP, so =
far.
>>>>=20
>>>> There is also the aspect of interoperability:  One of the great =
properties
>>>>      =20
>>> of
>>>    =20
>>>> the Web is that everybody uses the same stack, so all Web clients =
and
>>>>      =20
>>> servers
>>>    =20
>>>> are interoperable, with IP providing the necessary technological
>>>>      =20
>>> diversity.
>>>    =20
>>>> (On the other hand, this has made it near impossible to swap in, =
say,
>>>>      =20
>>> SCTP.)
>>>    =20
>>>> Just standardizing CoAP without an "we expect this to run on UDP, =
unless
>>>> otherwise specified" would not achieve the same level of =
interoperability.
>>>>=20
>>>> <WG chair hat>In any case, designing a reliable transport as a TCP
>>>>      =20
>>> replacement
>>>    =20
>>>> and then a CoAP on top of either that or TCP is very much not what =
the
>>>>      =20
>>> charter
>>>    =20
>>>> suggests we are supposed to do.</WG chair hat>
>>>> Instead, we should look at how stateless CoAP really can be made -- =
I
>>>>      =20
>>> think
>>>    =20
>>>> even TFTP has too much state (and thus isn't as trivial a file =
transfer
>>>> protocol as it could be).
>>>>=20
>>>> Gruesse, Carsten
>>>>=20
>>>> _______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>>>      =20
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>=20
>>>=20
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>    =20
>>  =20
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core


Cullen Jennings
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html




From robert.cragie@gridmerge.com  Wed May 26 11:09:45 2010
Return-Path: <robert.cragie@gridmerge.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 E81E93A6915 for <core@core3.amsl.com>; Wed, 26 May 2010 11:09:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.152
X-Spam-Level: 
X-Spam-Status: No, score=0.152 tagged_above=-999 required=5 tests=[AWL=-1.150,  BAYES_50=0.001, HTML_MESSAGE=0.001, MANGLED_TOOL=2.3, 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 fG5HxRq42lV8 for <core@core3.amsl.com>; Wed, 26 May 2010 11:09:41 -0700 (PDT)
Received: from mail78.extendcp.co.uk (mail78.extendcp.co.uk [79.170.40.78]) by core3.amsl.com (Postfix) with ESMTP id 8E17F3A6920 for <core@ietf.org>; Wed, 26 May 2010 11:09:40 -0700 (PDT)
Received: from client-86-29-245-200.pete.adsl.virginmedia.com ([86.29.245.200] helo=[192.168.1.70]) by mail78.extendcp.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.71) id 1OHL2k-0000SM-IX; Wed, 26 May 2010 19:09:28 +0100
Message-ID: <4BFD63D3.3040207@gridmerge.com>
Date: Wed, 26 May 2010 19:09:23 +0100
From: Robert Cragie <robert.cragie@gridmerge.com>
Organization: Gridmerge Ltd.
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.9) Gecko/20100317 Lightning/1.0b1 Thunderbird/3.0.4
MIME-Version: 1.0
To: "Adriano Pezzuto (apezzuto)" <apezzuto@cisco.com>
References: <OF97EC852F.8A85DCEB-ONC1257726.0051887E-C1257726.005677A7@schneider-electric.com><3602E0C6-1E2E-4164-A208-A874128325AF@sensinode.com><4BFB3A66.5080700@cisco.com><E4DBD8AB11D2E54F89B23D7CD1065D8C0105621D@onzosbs2k3.ONZO.local><324781C3-5548-474D-8995-EC327ED08209@sensinode.com>	<4BFC5368.2010602@cisco.com> <0D212BD466921646B58854FB79092CEC0216121C@XMB-AMS-106.cisco.com>
In-Reply-To: <0D212BD466921646B58854FB79092CEC0216121C@XMB-AMS-106.cisco.com>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="------------ms090808020503020308020401"
Cc: core <core@ietf.org>
Subject: Re: [core] Subscribe/Notify for CoAP
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: robert.cragie@gridmerge.com
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, 26 May 2010 18:09:45 -0000

This is a cryptographically signed message in MIME format.

--------------ms090808020503020308020401
Content-Type: multipart/alternative;
 boundary="------------010705060600050603060108"

This is a multi-part message in MIME format.
--------------010705060600050603060108
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable

Hi Adrian,

I would also prefer to keep the protocol in CoAP asynchronous. You can=20
always map an asynchronous protocol to a synchronous one but, as we see=20
in HTTP, it always ends up as a kludge to do it the other way round. The =

efforts which have been gone to to make HTTP quasi-asynchronous via all=20
the schemes mentioned below and many more besides (all non-interoperable =

of course) is testament to how important this is for M2M communication.

So, back to Zach's list, I favor 1a) for the following reasons:

Foundation level of messages:

   1. request/response can be asynchronous or synchronous messages (as
      there is a transaction ID in there)
   2. notify is an asynchronous message

Derived methods:

I think it makes sense to add a pub/sub model as a useful mechanism for M=
2M.

So, looking at it the other way round: It will be entirely possible to=20
translate whatever is currently built on HTTP to CoAP based on the=20
above, with all its restrictions regarding synchronous and client/server =

transactions. What may be harder is to translate directly is a=20
CoAP-based application to HTTP. So I guess the question is: Do we want=20
to be hamstrung to synchronous client/server transactions as dictated by =

HTTP and provide a direct mapping to HTTP, then have to come up with=20
similar kludges for asynchronous peer-to-peer transactions as has been=20
done in numerous ways for HTTP, or do we want to define the protocol=20
cleanly to start with and accept that some sort of transaction=20
relaying/conversion would have to take place at a mapping node?

Robert

Robert Cragie (Pacific Gas & Electric)

Gridmerge Ltd.
89 Greenfield Crescent,
Wakefield, WF4 4WA, UK
+44 1924 910888
+1 415 513 0064
http://www.gridmerge.com <http://www.gridmerge.com/>


On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote:
> Hi,
> it looks to me that CoAP should use an explicit sub/notify mechanism si=
nce this is the core of the machine-to-machine interaction model.
> HTTP suffers of this lack and we have seen a plethora of solutions to g=
ive an asynch taste to it. Webhooks and websockets are only the lasts of =
the list.
> As someone has already pointed out on this list, it is theoretically po=
ssible to describe sub/notify using only CRUD methods but it looks a litt=
le bit tricky and verbose.
>
> Now we have a chance to build from scratch a new protocol with and I th=
ink using explicit sub/notify methods with a clear and well defined seman=
tic is the best option. It is easily understanding from every developer a=
nd will prevent to build other fanny solutions on top of the CoAP. HTTP d=
oes not have this well defined semantic and (for hundreds of other reason=
s also) it is not used as wide protocol for machine-to-machine communicat=
ion.
>
> CoAP - as binary protocol - and with an explicit asynch model has a cha=
nce to be a really wide protocol for M2M communication not only for const=
rained environments.
>
> my 2 cents
>
> - adriano
>
> -----Original Message-----
> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of=
 Paul Duffy (paduffy)
> Sent: mercoled=EC 26 maggio 2010 0.47
> To: Zach Shelby
> Cc: core
> Subject: Re: [core] Subscribe/Notify for CoAP
>
> On 5/25/2010 6:41 PM, Zach Shelby wrote:
>   =20
>> Hi,
>>
>> On May 26, 2010, at 12:23 AM, Charles Palmer wrote:
>>
>>
>>     =20
>>> Hi folks
>>>
>>> It occurs to me that CoRE should be keeping a close eye on ZigBee SE2=
=2E0 work, so that it is as easy as possible for ZigBee SE to use CoRE wh=
en ready. That suggests to me that we should align with their subscribe/n=
otify process.
>>>
>>>
>>>       =20
>> I am not sure I understand that. I mean, ZigBee SE2.0 is defining an a=
pplication specific subscribe/notify mechanism for that purpose so far fo=
r HTTP. This uses standard HTTP methods and some custom payload and REST =
interfaces. CoAP Req/Res is already totally compatible with SE2.0 in that=
 respect, so alignment is already OK there. Nothing stopping someone from=
 using SE2.0 over CoAP.
>>
>> Specifying a native susbcription/notify into CoAP is another matter. W=
e can't adopt a solution specific to one application as that won't solve =
the problems of other applications nor general HTTP mapping at all (proba=
bly would make it worse). It seems that for the near future there will be=
 a bunch of HTTP push mechanisms in use without any clear standard appear=
ing - or am I wrong there?
>>
>>     =20
>
>
> If COAP extends HTTP semantics with new subscription methods, it will
> not be possible to easily interchange HTTP/COAP, and translation
> gateways will become more complex to implement.
>
>
>
>   =20
>> Zach
>>
>>
>>     =20
>>> Regards - Charles
>>>
>>>
>>> -----Original Message-----
>>> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of Paul Duffy
>>> Sent: 25 May 2010 03:48
>>> To: Zach Shelby
>>> Cc: core
>>> Subject: Re: [core] Subscribe/Notify for CoAP
>>>
>>> Recommend something like #2, primarily to avoid introducing non HTTP
>>> method semantics, simplifying HTTP/COAP translation.gateways, etc.
>>>
>>>
>>> On 5/24/2010 11:49 AM, Zach Shelby wrote:
>>>
>>>       =20
>>>> (thread renamed)
>>>>
>>>> We have two different paths with regard to a subscribe/notify mechan=
ism for CoAP:
>>>>
>>>> 1. Use specific Subscription and Notify mechanisms for CoAP as HTTP =
really does not include this concept.
>>>> 1a) Notify as a message and SUBSCRIBE as a method. This is currently=
 used in coap-01.
>>>> 1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but w=
e had a good list discussion about this leading to a. In practice it does=
n't make a big difference if notification is a message or method.
>>>>
>>>> 2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0=
 proposal or GENA.
>>>>
>>>> So far we have focused on 1 in the WG, and every now and again 2 com=
es up. At least I am not convinced that we need to suffer the drawbacks o=
f HTTP here. Anyways 2 does not help our mapping to HTTP in reality very =
much as there is no standard way of doing this over HTTP. Thus a CoAP-HTT=
P proxy may end up anyways translating between multiple HTTP frameworks d=
epending on the application. So instead of doing a CoAP Notify/Subscribe =
to Webhooks mapping, you will could end up having to do a CoAP Webhooks t=
o HTTP GENA mapping.
>>>>
>>>>
>>>>         =20
>>> I don't understand this last para.  If CoAP sticks to the semantics o=
f
>>> the current HTTP methods, would this not offer a fairly straightforwa=
rd
>>> translation to/from HTTP?
>>>
>>>
>>>
>>>       =20
>>>>>    From what I have heard so far 1 still seems like a wise choice, =
although I need to look at Webhooks more deeply. In reality many applicat=
ions specify their own way of doing a push interface using REST methods a=
nd specific payloads (ZigBee SE2.0 is such an example). That is just fine=
, and might be used instead of a specific CoAP notify/subscribe in that c=
ase. So 1 doesn't prevent the application using its own mechanism, it jus=
t provides a native way for doing push.
>>>>>
>>>>>           =20
>>>> What do people think?
>>>>
>>>> Zach
>>>>
>>>> On May 17, 2010, at 6:44 PM, matthieu.vial@fr.non.schneider-electric=
=2Ecom wrote:
>>>>
>>>>
>>>>
>>>>         =20
>>>>> Hi,
>>>>>
>>>>> My comments about the subscribe/notify mechanism of Zigbee IP.
>>>>>
>>>>> Pros:
>>>>> - Derived from the webhooks concept
>>>>> - If used by CORE it will be easier to map to HTTP because it uses =
only CRUD verbs.
>>>>> - The subscription message is extendable and could support advanced=
 options (delays, increment, ...)
>>>>> - Only one listening port whatever the transport binding is.
>>>>>
>>>>> Cons:
>>>>> - No interoperability without well known URIs and a well defined su=
bscription message format (Not sure CoAP draft is the right place to spec=
ify this).
>>>>> - XML/EXI is too complex to be the required format for the default =
subscription/notification mechanism.
>>>>> - The notification should not require a subsequent GET to retrieve =
the content.
>>>>> - Subresource subscription is redundant.
>>>>>
>>>>> Hope this could help,
>>>>> Matthieu
>>>>>
>>>>>
>>>>> <graycol.gif>"Charles Palmer"<charles.palmer@onzo.com>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> "Charles Palmer"<charles.palmer@onzo.com>
>>>>> Envoy=E9 par : core-bounces@ietf.org
>>>>> 15/05/2010 14:06
>>>>>
>>>>> <ecblank.gif>
>>>>> A
>>>>> <ecblank.gif>
>>>>> "core"<core@ietf.org>
>>>>> <ecblank.gif>
>>>>> cc
>>>>> <ecblank.gif>
>>>>> <ecblank.gif>
>>>>> Objet
>>>>> <ecblank.gif>
>>>>> Re: [core] Selecting a WG document for CoAP
>>>>> <ecblank.gif>	<ecblank.gif>
>>>>>
>>>>> Dear all
>>>>>
>>>>> Those interested in the subscribe/notify discussion might like to l=
ook
>>>>> at the draft Smart Energy Profile 2.0 Application Protocol
>>>>> Specification. It is available here:
>>>>> http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20Publ=
icApp
>>>>> licationProfile.aspx
>>>>>
>>>>> It manages subscribe/notify by using POST. This seems to remove the=
 need
>>>>> for SUBSCRIBE and notify.
>>>>>
>>>>> "Imagine a host A, which exposes a resource at http{s}://A/resource=
 and
>>>>> a second host B, which wishes to learn of changes to this resource.=
 To
>>>>> facilitate a subscription/ notification mechanism, A would expose a=

>>>>> resource http{s}://A/sub and B would expose a resource http{s}://B/=
ntfy.
>>>>> To subscribe to notifications regarding http{s}://A/resource, B wou=
ld
>>>>> send a POST to the address http{s}://A/sub/B containing the URI of =
the
>>>>> resource of interest (http{s}://A/resource) and the URI of B's
>>>>> notification resource (http{s}://B/ntfy). Following this subscripti=
on
>>>>> step, should A wish to notify B of a change to the resource address=
ed at
>>>>> http{s}://A/resource, A would send a POST to the address
>>>>> http{s}://B/ntfy containing the URI of the resource changed
>>>>> (http{s}://A/resource) and the URI of A's subscription resource
>>>>> (http{s}://A/sub/B), should A wish to change its subscription. The =
host
>>>>> B can then query the resource (or not) at its leisure."
>>>>>
>>>>> Sleepy nodes are not allowed to subscribe, and must poll.
>>>>>
>>>>> Regards - Charles Palmer
>>>>>
>>>>> -----Original Message-----
>>>>> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behal=
f Of
>>>>> Angelo P. Castellani
>>>>> Sent: 14 May 2010 13:14
>>>>> To: Zach Shelby
>>>>> Cc: core
>>>>> Subject: Re: [core] Selecting a WG document for CoAP
>>>>>
>>>>> Zach,
>>>>>
>>>>> thanks for the comments, but please refer to my most recent e-mail =
for
>>>>> a more specific list of technical issues I'm pointing to.
>>>>>
>>>>> I want to do only a little integration to what I've written there.
>>>>>
>>>>> In my very personal opinion, to maximize adherence with the REST mo=
del
>>>>> and minimize implementation effort SUBSCRIBE and NOTIFY should be
>>>>> mapped to methods (as discussed many times together...).
>>>>>
>>>>> Uniform interface principle (Fielding PhD dissertation Section 5.1.=
5,
>>>>> "The central feature that distinguishes the REST architectural styl=
e
>>>>> [...]") states that to simplify the software architecture, resource=

>>>>> interfaces/interfaces should be as general as possible.
>>>>>
>>>>> I agree with this principle in this specific case, mainly because
>>>>> handling a special message type for notify leads node software desi=
gn
>>>>> to a more complex architecture.
>>>>>
>>>>> The reason is that this new message type requires special handling =
and
>>>>> introduces a complexity in the software modularization.
>>>>>
>>>>> Best,
>>>>> Angelo
>>>>>
>>>>> On Fri, May 14, 2010 at 13:06, Zach Shelby<zach@sensinode.com>    w=
rote:
>>>>>
>>>>>
>>>>>           =20
>>>>>> Hi Angelo,
>>>>>>
>>>>>> On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>             =20
>>>>>>> Dear C. Bormann, all,
>>>>>>>
>>>>>>> before deciding for the final direction, I've the following
>>>>>>> observations about draft-shelby-core-coap-01
>>>>>>>
>>>>>>> While I mostly share Zach's view of the protocol approach, and
>>>>>>> appreciate many aspects of the proposal, there are in my opinion
>>>>>>>
>>>>>>>
>>>>>>>               =20
>>>>> still
>>>>>
>>>>>
>>>>>           =20
>>>>>>> some open issues that need to be at least discussed before the
>>>>>>>
>>>>>>>
>>>>>>>               =20
>>>>> current
>>>>>
>>>>>
>>>>>           =20
>>>>>>> document can be selected.
>>>>>>>
>>>>>>>
>>>>>>>               =20
>>>>>> Of course there are plenty of open issues. Remember that working g=
roup
>>>>>>
>>>>>>
>>>>>>             =20
>>>>> documents still undertake as much change and improvement as the WG
>>>>> wants, so by no means is coap-01 set in stone. I would expect at le=
ast
>>>>> 5-10 more revisions still along the way.  Already several of your i=
deas
>>>>> have been integrated into coap-01, and several more are under
>>>>> consideration, so it is coming along. Patience ;-)
>>>>>
>>>>>
>>>>>           =20
>>>>>>
>>>>>>             =20
>>>>>>> In particular, I would like to highlight the following:
>>>>>>>
>>>>>>> a) As it is now, it is not possible to have a straightforward
>>>>>>> translation of HTTP ->    CoAP and viceversa: see
>>>>>>> http://www.ietf.org/mail-archive/web/core/current/msg00133.html (=
this
>>>>>>> impacts the scalability of the web service model too)
>>>>>>>
>>>>>>>
>>>>>>>               =20
>>>>>> In coap-01 the Method names are now identical to HTTP methods. The=

>>>>>>
>>>>>>
>>>>>>             =20
>>>>> Req/Res interaction is a direct translation. The URI hierarchy is
>>>>> compatible, and the URI binary code format we are still working on
>>>>> obviously. The only thing that takes some state to translate is
>>>>> Subscribe/Notify. But note, Subscribe/Notify takes some state no ma=
tter
>>>>> how you do it, even with HTTP-HTTP there is no clean and easy way t=
o
>>>>> handle subscriptions.
>>>>>
>>>>>
>>>>>           =20
>>>>>>
>>>>>>             =20
>>>>>>> b) Moreover, CoAP's implementation is not as simple as it should =
be.
>>>>>>> I've investigated the implementation and some design choices (as
>>>>>>> Options) are leading to very high program complexity (ROM) on a
>>>>>>> MSP430-based device.
>>>>>>>
>>>>>>>
>>>>>>>               =20
>>>>>> This we can definitely improve, and already made several optimizat=
ions
>>>>>>
>>>>>>
>>>>>>             =20
>>>>> from -00 to -01. Here I need some very concrete proposals though. A=
lso
>>>>> remember that many things are optional, for example subscribe/notif=
y is
>>>>> not required if you don't need it.
>>>>>
>>>>>
>>>>>           =20
>>>>>>
>>>>>>             =20
>>>>>>> c) Finally when comparing HTTP message size with CoAP message siz=
e,
>>>>>>> the resulting compression isn't as good as you may expect.
>>>>>>>
>>>>>>> Example:
>>>>>>> HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
>>>>>>> CoAP: 24 B with options parsing procedure requiring an added
>>>>>>> implementation complexity
>>>>>>>
>>>>>>>
>>>>>>>               =20
>>>>>> Right, that is not how it will work in practice. Working with a re=
al
>>>>>>
>>>>>>
>>>>>>             =20
>>>>> HTTP server that HTTP header will be more complex, and on the CoAP =
side
>>>>> you would chose shorter URLs. The biggest improvement possible here=
 is
>>>>> from using binary coded URLs of course. We need to look at a wider =
range
>>>>> of interactions and real HTTP headers as well to check that we are
>>>>> efficient enough.
>>>>>
>>>>>
>>>>>           =20
>>>>>>
>>>>>>             =20
>>>>>>> Addressing all these points potentially leads to major technical
>>>>>>> modifications (especially point a) on the current draft, hence it=
 is
>>>>>>> appropriate in my opinion to discuss these points before making t=
he
>>>>>>> final decision.
>>>>>>>
>>>>>>>
>>>>>>>               =20
>>>>>> I am not sure what else you have in mind for a). If we just forget=

>>>>>>
>>>>>>
>>>>>>             =20
>>>>> about Subscribe/Notify then you are good to go. But then you are al=
so
>>>>> not fulfilling the charter or the industry needs in that respect.
>>>>>
>>>>>
>>>>>           =20
>>>>>> Thanks,
>>>>>> Zach
>>>>>>
>>>>>>
>>>>>>
>>>>>>             =20
>>>>>>> Best regards,
>>>>>>>
>>>>>>> Angelo P. Castellani
>>>>>>>
>>>>>>>
>>>>>>> On Mon, May 10, 2010 at 18:51, Carsten Bormann<cabo@tzi.org>    w=
rote:
>>>>>>>
>>>>>>>
>>>>>>>               =20
>>>>>>>> The CORE WG has a milestone to select a WG document for CoAP in
>>>>>>>>
>>>>>>>>
>>>>>>>>                 =20
>>>>> April:
>>>>>
>>>>>
>>>>>           =20
>>>>>>>> http://datatracker.ietf.org/wg/core/charter/
>>>>>>>> ...
>>>>>>>> Apr 2010        Select WG document for basis of the CoAP protoco=
l
>>>>>>>>
>>>>>>>> Of the various documents that have been contributed,
>>>>>>>>
>>>>>>>>
>>>>>>>>                 =20
>>>>> draft-shelby-core-coap has significant discussion, as well as the
>>>>> largest number of updates (including a previous version that was st=
ill
>>>>> called -6lowapp-coap).
>>>>>
>>>>>
>>>>>           =20
>>>>>>>> Today, another updated version of that draft was announced.  See=

>>>>>>>> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
>>>>>>>> for the announcement and
>>>>>>>> http://tools.ietf.org/html/draft-shelby-core-coap-01
>>>>>>>> for the draft itself.
>>>>>>>>
>>>>>>>> However, as the authors say, there are still significant TODOs.
>>>>>>>>
>>>>>>>> Are we in a state yet where we can say whether this is the right=

>>>>>>>>
>>>>>>>>
>>>>>>>>                 =20
>>>>> direction for the WG to take?
>>>>>
>>>>>
>>>>>           =20
>>>>>>>> If yes, is it the right direction?  Should we adopt it as a WG
>>>>>>>>
>>>>>>>>
>>>>>>>>                 =20
>>>>> document?
>>>>>
>>>>>
>>>>>           =20
>>>>>>>> If you don't think we can say yet, is there a set of technical
>>>>>>>>
>>>>>>>>
>>>>>>>>                 =20
>>>>> decisions you would like the authors to take with priority?
>>>>>
>>>>>
>>>>>           =20
>>>>>>>> Note that once a document has become a WG document, the authors =
act
>>>>>>>>
>>>>>>>>
>>>>>>>>                 =20
>>>>> as editors for the working group, making (and usually fleshing out =
the
>>>>> details of) any change that the WG decides it needs.
>>>>>
>>>>>
>>>>>           =20
>>>>>>>> If you think we can still improve the draft, this is not an obst=
acle
>>>>>>>>
>>>>>>>>
>>>>>>>>                 =20
>>>>> to making it a WG document.
>>>>>
>>>>>
>>>>>           =20
>>>>>>>> But of course we shouldn't do that if we intend to reverse its
>>>>>>>>
>>>>>>>>
>>>>>>>>                 =20
>>>>> fundamental technical direction.
>>>>>
>>>>>
>>>>>           =20
>>>>>>>> In order to stay roughly in sync with our milestones, we should
>>>>>>>>
>>>>>>>>
>>>>>>>>                 =20
>>>>> reach at a decision on how to go forward this week.
>>>>>
>>>>>
>>>>>           =20
>>>>>>>> Gruesse, Carsten
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> core mailing list
>>>>>>>> core@ietf.org
>>>>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                 =20
>>>>>>> _______________________________________________
>>>>>>> core mailing list
>>>>>>> core@ietf.org
>>>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>>>
>>>>>>>
>>>>>>>               =20
>>>>>> --
>>>>>> 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 Inter=
net"
>>>>>> Mobile: +358 40 7796297
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>             =20
>>>>> _______________________________________________
>>>>> core mailing list
>>>>> core@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>
>>>>> --------------------------------
>>>>> Onzo is a limited company number 06097997 registered in England&   =
 Wales. The
>>>>> registered office is 6 Great Newport Street, London, WC2H 7JB, Unit=
ed Kingdom.
>>>>>
>>>>> This email message may contain confidential and/or privileged infor=
mation, and
>>>>> is intended solely for the addressee(s). If you have received this =
email in
>>>>> error, please notify Onzo immediately. Unauthorised copying, disclo=
sure or
>>>>> distribution of the material in this email is forbidden.
>>>>> --------------------------------
>>>>>
>>>>> _______________________________________________
>>>>> core mailing list
>>>>> core@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>
>>>>> ___________________________________________________________________=
___
>>>>> This email has been scanned by the MessageLabs Email Security Syste=
m.
>>>>> ___________________________________________________________________=
___
>>>>>
>>>>> _______________________________________________
>>>>> core mailing list
>>>>> core@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/core
>>>>>
>>>>>
>>>>>           =20
>>>>
>>>>         =20
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>
>>> --------------------------------
>>> Onzo is a limited company number 06097997 registered in England&   Wa=
les. The
>>> registered office is 6 Great Newport Street, London, WC2H 7JB, United=
 Kingdom.
>>>
>>> This email message may contain confidential and/or privileged informa=
tion, and
>>> is intended solely for the addressee(s). If you have received this em=
ail in
>>> error, please notify Onzo immediately. Unauthorised copying, disclosu=
re or
>>> distribution of the material in this email is forbidden.
>>> --------------------------------
>>>
>>>
>>>       =20
>>
>>     =20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>
>   =20

--------------010705060600050603060108
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content=3D"text/html; charset=3DISO-8859-1"
 http-equiv=3D"Content-Type">
</head>
<body bgcolor=3D"#ffffff" text=3D"#000000">
Hi Adrian,<br>
<br>
I would also prefer to keep the protocol in CoAP asynchronous. You can
always map an asynchronous protocol to a synchronous one but, as we see
in HTTP, it always ends up as a kludge to do it the other way round.
The efforts which have been gone to to make HTTP quasi-asynchronous via
all the schemes mentioned below and many more besides (all
non-interoperable of course) is testament to how important this is for
M2M communication.<br>
<br>
So, back to Zach's list, I favor 1a) for the following reasons:<br>
<br>
Foundation level of messages:<br>
<ol>
  <li>request/response can be asynchronous or synchronous messages (as
there is a transaction ID in there)</li>
  <li>notify is an asynchronous message</li>
</ol>
Derived methods:<br>
<br>
I think it makes sense to add a pub/sub model as a useful mechanism for
M2M.<br>
<br>
So, looking at it the other way round: It will be entirely possible to
translate whatever is currently built on HTTP to CoAP based on the
above, with all its restrictions regarding synchronous and
client/server transactions. What may be harder is to translate directly
is a CoAP-based application to HTTP. So I guess the question is: Do we
want to be hamstrung to synchronous client/server transactions as
dictated by HTTP and provide a direct mapping to HTTP, then have to
come up with similar kludges for asynchronous peer-to-peer transactions
as has been done in numerous ways for HTTP, or do we want to define the
protocol cleanly to start with and accept that some sort of transaction
relaying/conversion would have to take place at a mapping node?<br>
<br>
Robert<br>
<div class=3D"moz-signature">
<style type=3D"text/css">
p
{
font-family:Verdana,Arial,sans-serif;
font-size:8pt;
}
=2Ename
{
font-size:12pt;
}
</style>
<p class=3D"name">Robert Cragie (Pacific Gas &amp; Electric)</p>
<p>Gridmerge Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 1924 910888<br>
+1 415 513 0064<br>
<a href=3D"http://www.gridmerge.com/">http://www.gridmerge.com</a></p>
</div>
<br>
On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote:
<blockquote
 cite=3D"mid:0D212BD466921646B58854FB79092CEC0216121C@XMB-AMS-106.cisco.c=
om"
 type=3D"cite">
  <pre wrap=3D"">Hi,
it looks to me that CoAP should use an explicit sub/notify mechanism sinc=
e this is the core of the machine-to-machine interaction model.
HTTP suffers of this lack and we have seen a plethora of solutions to giv=
e an asynch taste to it. Webhooks and websockets are only the lasts of th=
e list.
As someone has already pointed out on this list, it is theoretically poss=
ible to describe sub/notify using only CRUD methods but it looks a little=
 bit tricky and verbose.

Now we have a chance to build from scratch a new protocol with and I thin=
k using explicit sub/notify methods with a clear and well defined semanti=
c is the best option. It is easily understanding from every developer and=
 will prevent to build other fanny solutions on top of the CoAP. HTTP doe=
s not have this well defined semantic and (for hundreds of other reasons =
also) it is not used as wide protocol for machine-to-machine communicatio=
n.

CoAP - as binary protocol - and with an explicit asynch model has a chanc=
e to be a really wide protocol for M2M communication not only for constra=
ined environments.

my 2 cents

- adriano

-----Original Message-----
From: <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core-bounces@i=
etf.org">core-bounces@ietf.org</a> [<a class=3D"moz-txt-link-freetext" hr=
ef=3D"mailto:core-bounces@ietf.org">mailto:core-bounces@ietf.org</a>] On =
Behalf Of Paul Duffy (paduffy)
Sent: mercoled&igrave; 26 maggio 2010 0.47
To: Zach Shelby
Cc: core
Subject: Re: [core] Subscribe/Notify for CoAP

On 5/25/2010 6:41 PM, Zach Shelby wrote:
  </pre>
  <blockquote type=3D"cite">
    <pre wrap=3D"">Hi,

On May 26, 2010, at 12:23 AM, Charles Palmer wrote:

  =20
    </pre>
    <blockquote type=3D"cite">
      <pre wrap=3D"">Hi folks

It occurs to me that CoRE should be keeping a close eye on ZigBee SE2.0 w=
ork, so that it is as easy as possible for ZigBee SE to use CoRE when rea=
dy. That suggests to me that we should align with their subscribe/notify =
process.

    =20
      </pre>
    </blockquote>
    <pre wrap=3D"">I am not sure I understand that. I mean, ZigBee SE2.0 =
is defining an application specific subscribe/notify mechanism for that p=
urpose so far for HTTP. This uses standard HTTP methods and some custom p=
ayload and REST interfaces. CoAP Req/Res is already totally compatible wi=
th SE2.0 in that respect, so alignment is already OK there. Nothing stopp=
ing someone from using SE2.0 over CoAP.

Specifying a native susbcription/notify into CoAP is another matter. We c=
an't adopt a solution specific to one application as that won't solve the=
 problems of other applications nor general HTTP mapping at all (probably=
 would make it worse). It seems that for the near future there will be a =
bunch of HTTP push mechanisms in use without any clear standard appearing=
 - or am I wrong there?
  =20
    </pre>
  </blockquote>
  <pre wrap=3D"">


If COAP extends HTTP semantics with new subscription methods, it will=20
not be possible to easily interchange HTTP/COAP, and translation=20
gateways will become more complex to implement.



  </pre>
  <blockquote type=3D"cite">
    <pre wrap=3D"">Zach

  =20
    </pre>
    <blockquote type=3D"cite">
      <pre wrap=3D"">Regards - Charles


-----Original Message-----
From: <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core-bounces@i=
etf.org">core-bounces@ietf.org</a> [<a class=3D"moz-txt-link-freetext" hr=
ef=3D"mailto:core-bounces@ietf.org">mailto:core-bounces@ietf.org</a>] On =
Behalf Of Paul Duffy
Sent: 25 May 2010 03:48
To: Zach Shelby
Cc: core
Subject: Re: [core] Subscribe/Notify for CoAP

Recommend something like #2, primarily to avoid introducing non HTTP
method semantics, simplifying HTTP/COAP translation.gateways, etc.


On 5/24/2010 11:49 AM, Zach Shelby wrote:
    =20
      </pre>
      <blockquote type=3D"cite">
        <pre wrap=3D"">(thread renamed)

We have two different paths with regard to a subscribe/notify mechanism f=
or CoAP:

1. Use specific Subscription and Notify mechanisms for CoAP as HTTP reall=
y does not include this concept.
1a) Notify as a message and SUBSCRIBE as a method. This is currently used=
 in coap-01.
1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but we had=
 a good list discussion about this leading to a. In practice it doesn't m=
ake a big difference if notification is a message or method.

2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0 prop=
osal or GENA.

So far we have focused on 1 in the WG, and every now and again 2 comes up=
=2E At least I am not convinced that we need to suffer the drawbacks of H=
TTP here. Anyways 2 does not help our mapping to HTTP in reality very muc=
h as there is no standard way of doing this over HTTP. Thus a CoAP-HTTP p=
roxy may end up anyways translating between multiple HTTP frameworks depe=
nding on the application. So instead of doing a CoAP Notify/Subscribe to =
Webhooks mapping, you will could end up having to do a CoAP Webhooks to H=
TTP GENA mapping.

      =20
        </pre>
      </blockquote>
      <pre wrap=3D"">
I don't understand this last para.  If CoAP sticks to the semantics of
the current HTTP methods, would this not offer a fairly straightforward
translation to/from HTTP?


    =20
      </pre>
      <blockquote type=3D"cite">
        <blockquote type=3D"cite">
          <pre wrap=3D""> From what I have heard so far 1 still seems lik=
e a wise choice, although I need to look at Webhooks more deeply. In real=
ity many applications specify their own way of doing a push interface usi=
ng REST methods and specific payloads (ZigBee SE2.0 is such an example). =
That is just fine, and might be used instead of a specific CoAP notify/su=
bscribe in that case. So 1 doesn't prevent the application using its own =
mechanism, it just provides a native way for doing push.
        =20
          </pre>
        </blockquote>
        <pre wrap=3D"">What do people think?

Zach

On May 17, 2010, at 6:44 PM, <a class=3D"moz-txt-link-abbreviated" href=3D=
"mailto:matthieu.vial@fr.non.schneider-electric.com">matthieu.vial@fr.non=
=2Eschneider-electric.com</a> wrote:


      =20
        </pre>
        <blockquote type=3D"cite">
          <pre wrap=3D"">Hi,

My comments about the subscribe/notify mechanism of Zigbee IP.

Pros:
- Derived from the webhooks concept
- If used by CORE it will be easier to map to HTTP because it uses only C=
RUD verbs.
- The subscription message is extendable and could support advanced optio=
ns (delays, increment, ...)
- Only one listening port whatever the transport binding is.

Cons:
- No interoperability without well known URIs and a well defined subscrip=
tion message format (Not sure CoAP draft is the right place to specify th=
is).
- XML/EXI is too complex to be the required format for the default subscr=
iption/notification mechanism.
- The notification should not require a subsequent GET to retrieve the co=
ntent.
- Subresource subscription is redundant.

Hope this could help,
Matthieu


&lt;graycol.gif&gt;"Charles Palmer"<a class=3D"moz-txt-link-rfc2396E" hre=
f=3D"mailto:charles.palmer@onzo.com">&lt;charles.palmer@onzo.com&gt;</a>




"Charles Palmer"<a class=3D"moz-txt-link-rfc2396E" href=3D"mailto:charles=
=2Epalmer@onzo.com">&lt;charles.palmer@onzo.com&gt;</a>
Envoy&eacute; par : <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:=
core-bounces@ietf.org">core-bounces@ietf.org</a>
15/05/2010 14:06

&lt;ecblank.gif&gt;
A
&lt;ecblank.gif&gt;
"core"<a class=3D"moz-txt-link-rfc2396E" href=3D"mailto:core@ietf.org">&l=
t;core@ietf.org&gt;</a>
&lt;ecblank.gif&gt;
cc
&lt;ecblank.gif&gt;
&lt;ecblank.gif&gt;
Objet
&lt;ecblank.gif&gt;
Re: [core] Selecting a WG document for CoAP
&lt;ecblank.gif&gt;	&lt;ecblank.gif&gt;

Dear all

Those interested in the subscribe/notify discussion might like to look
at the draft Smart Energy Profile 2.0 Application Protocol
Specification. It is available here:
<a class=3D"moz-txt-link-freetext" href=3D"http://zigbee.org/Markets/ZigB=
eeSmartEnergy/ZigBeeSmartEnergy20PublicApp">http://zigbee.org/Markets/Zig=
BeeSmartEnergy/ZigBeeSmartEnergy20PublicApp</a>
licationProfile.aspx

It manages subscribe/notify by using POST. This seems to remove the need
for SUBSCRIBE and notify.

"Imagine a host A, which exposes a resource at http{s}://A/resource and
a second host B, which wishes to learn of changes to this resource. To
facilitate a subscription/ notification mechanism, A would expose a
resource http{s}://A/sub and B would expose a resource http{s}://B/ntfy.
To subscribe to notifications regarding http{s}://A/resource, B would
send a POST to the address http{s}://A/sub/B containing the URI of the
resource of interest (http{s}://A/resource) and the URI of B's
notification resource (http{s}://B/ntfy). Following this subscription
step, should A wish to notify B of a change to the resource addressed at
http{s}://A/resource, A would send a POST to the address
http{s}://B/ntfy containing the URI of the resource changed
(http{s}://A/resource) and the URI of A's subscription resource
(http{s}://A/sub/B), should A wish to change its subscription. The host
B can then query the resource (or not) at its leisure."

Sleepy nodes are not allowed to subscribe, and must poll.

Regards - Charles Palmer

-----Original Message-----
From: <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core-bounces@i=
etf.org">core-bounces@ietf.org</a> [<a class=3D"moz-txt-link-freetext" hr=
ef=3D"mailto:core-bounces@ietf.org">mailto:core-bounces@ietf.org</a>] On =
Behalf Of
Angelo P. Castellani
Sent: 14 May 2010 13:14
To: Zach Shelby
Cc: core
Subject: Re: [core] Selecting a WG document for CoAP

Zach,

thanks for the comments, but please refer to my most recent e-mail for
a more specific list of technical issues I'm pointing to.

I want to do only a little integration to what I've written there.

In my very personal opinion, to maximize adherence with the REST model
and minimize implementation effort SUBSCRIBE and NOTIFY should be
mapped to methods (as discussed many times together...).

Uniform interface principle (Fielding PhD dissertation Section 5.1.5,
"The central feature that distinguishes the REST architectural style
[...]") states that to simplify the software architecture, resource
interfaces/interfaces should be as general as possible.

I agree with this principle in this specific case, mainly because
handling a special message type for notify leads node software design
to a more complex architecture.

The reason is that this new message type requires special handling and
introduces a complexity in the software modularization.

Best,
Angelo

On Fri, May 14, 2010 at 13:06, Zach Shelby<a class=3D"moz-txt-link-rfc239=
6E" href=3D"mailto:zach@sensinode.com">&lt;zach@sensinode.com&gt;</a>   w=
rote:

        =20
          </pre>
          <blockquote type=3D"cite">
            <pre wrap=3D"">Hi Angelo,

On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:


          =20
            </pre>
            <blockquote type=3D"cite">
              <pre wrap=3D"">Dear C. Bormann, all,

before deciding for the final direction, I've the following
observations about draft-shelby-core-coap-01

While I mostly share Zach's view of the protocol approach, and
appreciate many aspects of the proposal, there are in my opinion

            =20
              </pre>
            </blockquote>
          </blockquote>
          <pre wrap=3D"">still

        =20
          </pre>
          <blockquote type=3D"cite">
            <blockquote type=3D"cite">
              <pre wrap=3D"">some open issues that need to be at least di=
scussed before the

            =20
              </pre>
            </blockquote>
          </blockquote>
          <pre wrap=3D"">current

        =20
          </pre>
          <blockquote type=3D"cite">
            <blockquote type=3D"cite">
              <pre wrap=3D"">document can be selected.

            =20
              </pre>
            </blockquote>
            <pre wrap=3D"">Of course there are plenty of open issues. Rem=
ember that working group

          =20
            </pre>
          </blockquote>
          <pre wrap=3D"">documents still undertake as much change and imp=
rovement as the WG
wants, so by no means is coap-01 set in stone. I would expect at least
5-10 more revisions still along the way.  Already several of your ideas
have been integrated into coap-01, and several more are under
consideration, so it is coming along. Patience ;-)

        =20
          </pre>
          <blockquote type=3D"cite">
            <pre wrap=3D"">          =20
            </pre>
            <blockquote type=3D"cite">
              <pre wrap=3D"">In particular, I would like to highlight the=
 following:

a) As it is now, it is not possible to have a straightforward
translation of HTTP -&gt;   CoAP and viceversa: see
<a class=3D"moz-txt-link-freetext" href=3D"http://www.ietf.org/mail-archi=
ve/web/core/current/msg00133.html">http://www.ietf.org/mail-archive/web/c=
ore/current/msg00133.html</a> (this
impacts the scalability of the web service model too)

            =20
              </pre>
            </blockquote>
            <pre wrap=3D"">In coap-01 the Method names are now identical =
to HTTP methods. The

          =20
            </pre>
          </blockquote>
          <pre wrap=3D"">Req/Res interaction is a direct translation. The=
 URI hierarchy is
compatible, and the URI binary code format we are still working on
obviously. The only thing that takes some state to translate is
Subscribe/Notify. But note, Subscribe/Notify takes some state no matter
how you do it, even with HTTP-HTTP there is no clean and easy way to
handle subscriptions.

        =20
          </pre>
          <blockquote type=3D"cite">
            <pre wrap=3D"">          =20
            </pre>
            <blockquote type=3D"cite">
              <pre wrap=3D"">b) Moreover, CoAP's implementation is not as=
 simple as it should be.
I've investigated the implementation and some design choices (as
Options) are leading to very high program complexity (ROM) on a
MSP430-based device.

            =20
              </pre>
            </blockquote>
            <pre wrap=3D"">This we can definitely improve, and already ma=
de several optimizations

          =20
            </pre>
          </blockquote>
          <pre wrap=3D"">from -00 to -01. Here I need some very concrete =
proposals though. Also
remember that many things are optional, for example subscribe/notify is
not required if you don't need it.

        =20
          </pre>
          <blockquote type=3D"cite">
            <pre wrap=3D"">          =20
            </pre>
            <blockquote type=3D"cite">
              <pre wrap=3D"">c) Finally when comparing HTTP message size =
with CoAP message size,
the resulting compression isn't as good as you may expect.

Example:
HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
CoAP: 24 B with options parsing procedure requiring an added
implementation complexity

            =20
              </pre>
            </blockquote>
            <pre wrap=3D"">Right, that is not how it will work in practic=
e. Working with a real

          =20
            </pre>
          </blockquote>
          <pre wrap=3D"">HTTP server that HTTP header will be more comple=
x, and on the CoAP side
you would chose shorter URLs. The biggest improvement possible here is
from using binary coded URLs of course. We need to look at a wider range
of interactions and real HTTP headers as well to check that we are
efficient enough.

        =20
          </pre>
          <blockquote type=3D"cite">
            <pre wrap=3D"">          =20
            </pre>
            <blockquote type=3D"cite">
              <pre wrap=3D"">Addressing all these points potentially lead=
s to major technical
modifications (especially point a) on the current draft, hence it is
appropriate in my opinion to discuss these points before making the
final decision.

            =20
              </pre>
            </blockquote>
            <pre wrap=3D"">I am not sure what else you have in mind for a=
). If we just forget

          =20
            </pre>
          </blockquote>
          <pre wrap=3D"">about Subscribe/Notify then you are good to go. =
But then you are also
not fulfilling the charter or the industry needs in that respect.

        =20
          </pre>
          <blockquote type=3D"cite">
            <pre wrap=3D"">Thanks,
Zach


          =20
            </pre>
            <blockquote type=3D"cite">
              <pre wrap=3D"">Best regards,

Angelo P. Castellani


On Mon, May 10, 2010 at 18:51, Carsten Bormann<a class=3D"moz-txt-link-rf=
c2396E" href=3D"mailto:cabo@tzi.org">&lt;cabo@tzi.org&gt;</a>   wrote:

            =20
              </pre>
              <blockquote type=3D"cite">
                <pre wrap=3D"">The CORE WG has a milestone to select a WG=
 document for CoAP in

              =20
                </pre>
              </blockquote>
            </blockquote>
          </blockquote>
          <pre wrap=3D"">April:

        =20
          </pre>
          <blockquote type=3D"cite">
            <blockquote type=3D"cite">
              <blockquote type=3D"cite">
                <pre wrap=3D""><a class=3D"moz-txt-link-freetext" href=3D=
"http://datatracker.ietf.org/wg/core/charter/">http://datatracker.ietf.or=
g/wg/core/charter/</a>
=2E..
Apr 2010        Select WG document for basis of the CoAP protocol

Of the various documents that have been contributed,

              =20
                </pre>
              </blockquote>
            </blockquote>
          </blockquote>
          <pre wrap=3D"">draft-shelby-core-coap has significant discussio=
n, as well as the
largest number of updates (including a previous version that was still
called -6lowapp-coap).

        =20
          </pre>
          <blockquote type=3D"cite">
            <blockquote type=3D"cite">
              <blockquote type=3D"cite">
                <pre wrap=3D"">Today, another updated version of that dra=
ft was announced.  See
<a class=3D"moz-txt-link-freetext" href=3D"http://www.ietf.org/mail-archi=
ve/web/core/current/msg00138.html">http://www.ietf.org/mail-archive/web/c=
ore/current/msg00138.html</a>
for the announcement and
<a class=3D"moz-txt-link-freetext" href=3D"http://tools.ietf.org/html/dra=
ft-shelby-core-coap-01">http://tools.ietf.org/html/draft-shelby-core-coap=
-01</a>
for the draft itself.

However, as the authors say, there are still significant TODOs.

Are we in a state yet where we can say whether this is the right

              =20
                </pre>
              </blockquote>
            </blockquote>
          </blockquote>
          <pre wrap=3D"">direction for the WG to take?

        =20
          </pre>
          <blockquote type=3D"cite">
            <blockquote type=3D"cite">
              <blockquote type=3D"cite">
                <pre wrap=3D"">If yes, is it the right direction?  Should=
 we adopt it as a WG

              =20
                </pre>
              </blockquote>
            </blockquote>
          </blockquote>
          <pre wrap=3D"">document?

        =20
          </pre>
          <blockquote type=3D"cite">
            <blockquote type=3D"cite">
              <blockquote type=3D"cite">
                <pre wrap=3D"">If you don't think we can say yet, is ther=
e a set of technical

              =20
                </pre>
              </blockquote>
            </blockquote>
          </blockquote>
          <pre wrap=3D"">decisions you would like the authors to take wit=
h priority?

        =20
          </pre>
          <blockquote type=3D"cite">
            <blockquote type=3D"cite">
              <blockquote type=3D"cite">
                <pre wrap=3D"">Note that once a document has become a WG =
document, the authors act

              =20
                </pre>
              </blockquote>
            </blockquote>
          </blockquote>
          <pre wrap=3D"">as editors for the working group, making (and us=
ually fleshing out the
details of) any change that the WG decides it needs.

        =20
          </pre>
          <blockquote type=3D"cite">
            <blockquote type=3D"cite">
              <blockquote type=3D"cite">
                <pre wrap=3D"">If you think we can still improve the draf=
t, this is not an obstacle

              =20
                </pre>
              </blockquote>
            </blockquote>
          </blockquote>
          <pre wrap=3D"">to making it a WG document.

        =20
          </pre>
          <blockquote type=3D"cite">
            <blockquote type=3D"cite">
              <blockquote type=3D"cite">
                <pre wrap=3D"">But of course we shouldn't do that if we i=
ntend to reverse its

              =20
                </pre>
              </blockquote>
            </blockquote>
          </blockquote>
          <pre wrap=3D"">fundamental technical direction.

        =20
          </pre>
          <blockquote type=3D"cite">
            <blockquote type=3D"cite">
              <blockquote type=3D"cite">
                <pre wrap=3D"">In order to stay roughly in sync with our =
milestones, we should

              =20
                </pre>
              </blockquote>
            </blockquote>
          </blockquote>
          <pre wrap=3D"">reach at a decision on how to go forward this we=
ek.

        =20
          </pre>
          <blockquote type=3D"cite">
            <blockquote type=3D"cite">
              <blockquote type=3D"cite">
                <pre wrap=3D"">Gruesse, Carsten

_______________________________________________
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext" href=3D"https://www.ietf.org/mailman/l=
istinfo/core">https://www.ietf.org/mailman/listinfo/core</a>


              =20
                </pre>
              </blockquote>
              <pre wrap=3D"">____________________________________________=
___
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext" href=3D"https://www.ietf.org/mailman/l=
istinfo/core">https://www.ietf.org/mailman/listinfo/core</a>

            =20
              </pre>
            </blockquote>
            <pre wrap=3D"">--
Zach Shelby, Chief Nerd, Sensinode Ltd.
<a class=3D"moz-txt-link-freetext" href=3D"http://zachshelby.org">http://=
zachshelby.org</a>  - My blog "On the Internet of Things<a class=3D"moz-t=
xt-link-rfc2396E" href=3D"http://6lowpan.net-Mybook">"
http://6lowpan.net - My book "</a>6LoWPAN: The Wireless Embedded Internet=
"
Mobile: +358 40 7796297



          =20
            </pre>
          </blockquote>
          <pre wrap=3D"">_______________________________________________
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext" href=3D"https://www.ietf.org/mailman/l=
istinfo/core">https://www.ietf.org/mailman/listinfo/core</a>

--------------------------------
Onzo is a limited company number 06097997 registered in England&amp;   Wa=
les. The
registered office is 6 Great Newport Street, London, WC2H 7JB, United Kin=
gdom.

This email message may contain confidential and/or privileged information=
, and
is intended solely for the addressee(s). If you have received this email =
in
error, please notify Onzo immediately. Unauthorised copying, disclosure o=
r
distribution of the material in this email is forbidden.
--------------------------------

_______________________________________________
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext" href=3D"https://www.ietf.org/mailman/l=
istinfo/core">https://www.ietf.org/mailman/listinfo/core</a>

______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
______________________________________________________________________

_______________________________________________
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext" href=3D"https://www.ietf.org/mailman/l=
istinfo/core">https://www.ietf.org/mailman/listinfo/core</a>

        =20
          </pre>
        </blockquote>
        <pre wrap=3D"">      =20
        </pre>
      </blockquote>
      <pre wrap=3D"">_______________________________________________
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext" href=3D"https://www.ietf.org/mailman/l=
istinfo/core">https://www.ietf.org/mailman/listinfo/core</a>

--------------------------------
Onzo is a limited company number 06097997 registered in England&amp;  Wal=
es. The
registered office is 6 Great Newport Street, London, WC2H 7JB, United Kin=
gdom.

This email message may contain confidential and/or privileged information=
, and
is intended solely for the addressee(s). If you have received this email =
in
error, please notify Onzo immediately. Unauthorised copying, disclosure o=
r
distribution of the material in this email is forbidden.
--------------------------------

    =20
      </pre>
    </blockquote>
    <pre wrap=3D"">  =20
    </pre>
  </blockquote>
  <pre wrap=3D"">
_______________________________________________
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext" href=3D"https://www.ietf.org/mailman/l=
istinfo/core">https://www.ietf.org/mailman/listinfo/core</a>
_______________________________________________
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext" href=3D"https://www.ietf.org/mailman/l=
istinfo/core">https://www.ietf.org/mailman/listinfo/core</a>

  </pre>
</blockquote>
</body>
</html>

--------------010705060600050603060108--

--------------ms090808020503020308020401
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIJKzCC
AvAwggJZoAMCAQICEHQVhhxGmCATv+IPne+OkB8wDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UE
BhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMT
I1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA5MDgyOTE2NTcwM1oX
DTEwMDgyOTE2NTcwM1owTTEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEqMCgG
CSqGSIb3DQEJARYbcm9iZXJ0LmNyYWdpZUBncmlkbWVyZ2UuY29tMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAtuQTYz8HUA37wa1PMyVnREeRwT3jtzGO6epyiCCaVeJkP76G
KdnNapg0jyuzDfRqSMW0n570toMF9FTpD34hDvtHcnMDboU7MSKFV2VyOOlTB3eHJfRn2Jtl
o9mSeW1qIIOwRReV6v50OxmijmeGFAn82Y1QrtyKDQxhl0HhEmY4jonziMyQ5gKlO5TM+CxY
hV0zXCLHfp9QjLG7bwZx6F0ChSHvRaf5ZlLKQSI2BGAx/GtP5l4ME7+kq4icmbV0g6m1AH9Y
LYYKV9rOx9SilPpTJdwn7GY/Qop4VSmdsaDBlXieBbjKqPN/CEqFmlxjjPFihorkeyC1T2R5
CqB41QIDAQABozgwNjAmBgNVHREEHzAdgRtyb2JlcnQuY3JhZ2llQGdyaWRtZXJnZS5jb20w
DAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQUFAAOBgQCTQ5bjbW8th9Yy/xbAgmc070Y/DLPR
RwOu51zamGFNffSpiPDJsLg4Bu9QZqhDylPm3AriHGp9MVL8Ei4h5krygmgHLE0mNYFsJt35
90wdK7z3dXtV/nOD0+rFR6Y9oUGf916rO0madex0KbosqrUuZ1NGVh/Q5/7H0mAEg+1EWzCC
AvAwggJZoAMCAQICEHQVhhxGmCATv+IPne+OkB8wDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UE
BhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMT
I1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA5MDgyOTE2NTcwM1oX
DTEwMDgyOTE2NTcwM1owTTEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEqMCgG
CSqGSIb3DQEJARYbcm9iZXJ0LmNyYWdpZUBncmlkbWVyZ2UuY29tMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAtuQTYz8HUA37wa1PMyVnREeRwT3jtzGO6epyiCCaVeJkP76G
KdnNapg0jyuzDfRqSMW0n570toMF9FTpD34hDvtHcnMDboU7MSKFV2VyOOlTB3eHJfRn2Jtl
o9mSeW1qIIOwRReV6v50OxmijmeGFAn82Y1QrtyKDQxhl0HhEmY4jonziMyQ5gKlO5TM+CxY
hV0zXCLHfp9QjLG7bwZx6F0ChSHvRaf5ZlLKQSI2BGAx/GtP5l4ME7+kq4icmbV0g6m1AH9Y
LYYKV9rOx9SilPpTJdwn7GY/Qop4VSmdsaDBlXieBbjKqPN/CEqFmlxjjPFihorkeyC1T2R5
CqB41QIDAQABozgwNjAmBgNVHREEHzAdgRtyb2JlcnQuY3JhZ2llQGdyaWRtZXJnZS5jb20w
DAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQUFAAOBgQCTQ5bjbW8th9Yy/xbAgmc070Y/DLPR
RwOu51zamGFNffSpiPDJsLg4Bu9QZqhDylPm3AriHGp9MVL8Ei4h5krygmgHLE0mNYFsJt35
90wdK7z3dXtV/nOD0+rFR6Y9oUGf916rO0madex0KbosqrUuZ1NGVh/Q5/7H0mAEg+1EWzCC
Az8wggKooAMCAQICAQ0wDQYJKoZIhvcNAQEFBQAwgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQI
EwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENv
bnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xJDAi
BgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVy
c29uYWwtZnJlZW1haWxAdGhhd3RlLmNvbTAeFw0wMzA3MTcwMDAwMDBaFw0xMzA3MTYyMzU5
NTlaMGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBM
dGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQTCBnzAN
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxKY8VXNV+065yplaHmjAdQRwnd/p/6Me7L3N9Vvy
Gna9fww6YfK/Uc4B1OVQCjDXAmNaLIkVcI7dyfArhVqqP3FWy688Cwfn8R+RNiQqE88r1fOC
dz0Dviv+uxg+B79AgAJk16emu59l0cUqVIUPSAR/p7bRPGEEQB5kGXJgt/sCAwEAAaOBlDCB
kTASBgNVHRMBAf8ECDAGAQH/AgEAMEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwudGhh
d3RlLmNvbS9UaGF3dGVQZXJzb25hbEZyZWVtYWlsQ0EuY3JsMAsGA1UdDwQEAwIBBjApBgNV
HREEIjAgpB4wHDEaMBgGA1UEAxMRUHJpdmF0ZUxhYmVsMi0xMzgwDQYJKoZIhvcNAQEFBQAD
gYEASIzRUIPqCy7MDaNmrGcPf6+svsIXoUOWlJ1/TCG4+DYfqi2fNi/A9BxQIJNwPP2t4WFi
w9k6GX6EsZkbAMUaC4J0niVQlGLH2ydxVyWN3amcOY6MIE9lX5Xa9/eH1sYITq726jTlEBpb
NU1341YheILcIRk13iSx0x1G/11fZU8xggNxMIIDbQIBATB2MGIxCzAJBgNVBAYTAlpBMSUw
IwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUg
UGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQQIQdBWGHEaYIBO/4g+d746QHzAJBgUrDgMC
GgUAoIIB0DAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xMDA1
MjYxODA5MjNaMCMGCSqGSIb3DQEJBDEWBBQWvjguKjeGfRJAc5GDG6lPK5DaIjBfBgkqhkiG
9w0BCQ8xUjBQMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAOBggqhkiG9w0DAgICAIAwDQYI
KoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgwgYUGCSsGAQQBgjcQBDF4MHYw
YjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4x
LDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBAhB0FYYcRpgg
E7/iD53vjpAfMIGHBgsqhkiG9w0BCRACCzF4oHYwYjELMAkGA1UEBhMCWkExJTAjBgNVBAoT
HFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25h
bCBGcmVlbWFpbCBJc3N1aW5nIENBAhB0FYYcRpggE7/iD53vjpAfMA0GCSqGSIb3DQEBAQUA
BIIBAHMpLB3VgPQknKDEk7M8TRd2mqXQsJCNFnSh5SpvXSdyr40HI17vTYdBmPeadw7kb+l2
hQHzoqxml0nFodBYCrOVYfOIXUnTsilMHVCRAcTmvp/9GswGwVi5aL3vulRNZ166YiOFGL3R
8M9DxcnRfy0kyLw5CLJSdYIkklDmeuwHpC4641ev5XTA0IKmddpvJMAGNg34/7bJCPIb6HjM
tCsXVsrwByvqrTKSm6grSj28/RNqykPYr0ZWHcovQ9fa6xEO9KFuuQT8Ph8tn6gDYfHkv/3h
fVqPFlTkhkgCZZb9nEceDBDsVVSs0skUzVlqdS+2zsvGbuZ8BCwsysAchesAAAAAAAA=
--------------ms090808020503020308020401--

From fluffy@cisco.com  Wed May 26 20:05:55 2010
Return-Path: <fluffy@cisco.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 D55FD3A63C9 for <core@core3.amsl.com>; Wed, 26 May 2010 20:05:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -108.566
X-Spam-Level: 
X-Spam-Status: No, score=-108.566 tagged_above=-999 required=5 tests=[AWL=-0.567, BAYES_50=0.001, RCVD_IN_DNSWL_HI=-8, 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 03Pj1NlewSdX for <core@core3.amsl.com>; Wed, 26 May 2010 20:05:54 -0700 (PDT)
Received: from sj-iport-5.cisco.com (sj-iport-5.cisco.com [171.68.10.87]) by core3.amsl.com (Postfix) with ESMTP id D90993A67E2 for <core@ietf.org>; Wed, 26 May 2010 20:05:54 -0700 (PDT)
Authentication-Results: sj-iport-5.cisco.com; dkim=neutral (message not signed) header.i=none
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AvsEAO9+/UurR7Hu/2dsb2JhbACeJnGmZpl/gm4Igh0Eg0I
X-IronPort-AV: E=Sophos;i="4.53,308,1272844800"; d="scan'208";a="203412012"
Received: from sj-core-5.cisco.com ([171.71.177.238]) by sj-iport-5.cisco.com with ESMTP; 27 May 2010 03:05:38 +0000
Received: from [192.168.4.177] (rcdn-fluffy-8711.cisco.com [10.99.9.18]) by sj-core-5.cisco.com (8.13.8/8.14.3) with ESMTP id o4R35aeF004959; Thu, 27 May 2010 03:05:37 GMT
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: text/plain; charset=us-ascii
Impp: xmpp:cullenfluffyjennings@jabber.org
From: Cullen Jennings <fluffy@cisco.com>
In-Reply-To: <AANLkTinkPwS1mr-0PXi_gNcnDbSDBPWqdwpR0Fg8taO2@mail.gmail.com>
Date: Wed, 26 May 2010 21:05:36 -0600
Content-Transfer-Encoding: quoted-printable
Message-Id: <0924B0BC-BFA7-40E5-8ED9-1AF27533F401@cisco.com>
References: <AANLkTinkPwS1mr-0PXi_gNcnDbSDBPWqdwpR0Fg8taO2@mail.gmail.com>
To: Peter Bigot <pab@peoplepowerco.com>
X-Mailer: Apple Mail (2.1078)
Cc: core@ietf.org
Subject: Re: [core] Date option in draft-shelby-core-coap-01
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, 27 May 2010 03:05:56 -0000

Peter,=20

These are all excellent points and I think I (not Zach) am partial to =
blame for the current text... I just pointed him towards some cut and =
pasted text from some other RFC - I figured we needed something in the =
draft as a starting point to get this conversation going. Dealing with =
time is always complicated and even more so in this constrained =
environment. If we start by looking at our constraints, I suspect we =
come to the conclusions you suggested below.=20

My guess is that if we asked everyone, most people would say that we =
could not require a COAP node to do any of the following. Some nodes =
might do these but it would not be required

1) run NTP=20
2) have a table of when leap seconds were going to happened and way to =
keep that table up to date=20
3) have a time source was more accurate than a simple non temperature =
compensated crystal=20
4) have any clue about timezones=20

I really have no idea how some of these devices are even going to set =
their time when they first get turned on other than perhaps looking at =
the time of some other node.=20

All this leads me to wonder if we could get away with only having =
relative times in CoAP.=20

On May 13, 2010, at 8:35 AM, Peter Bigot wrote:

> Section 3.3.6 introduces a Date option that can be used to timestamp a =
measurement.  The description specifies that leap seconds are excluded.  =
It's not crystal clear to me what "excluded" means in this situation.  I =
don't see any discussion in the list archive.
>=20
> Pretending leap seconds don't exist (one sense of exclude) makes sense =
as it trivializes the translation between POSIX- time representations =
(seconds since 1970-01-01T00:00:00Z) and UTC-aligned wall clock times =
that people normally deal with: this becomes simple division and modulus =
operations with a little hassle imposed by leap years.  On the other =
hand, the representation can express times that do not exist (23:59:59 =
when a negative leap second takes effect), and can be ambiguous =
(23:59:60 or a repeated 23:59:59 when a positive leap second takes =
effect).  More importantly, simple subtraction of two event times does =
not necessarily result in the duration of the event.
>=20
> For an in-development system to which CoAP could apply, my =
recommendation was to use times expressed as atomic seconds since the =
POSIX epoch (thereby excluding leap second adjustments from the value).  =
This does mean that translation to civil time requires knowledge of the =
number of leap seconds in effect at that time (currently UTC is 24 =
seconds behind TAI relative to the POSIX epoch).  In return, devices =
that maintain an internal clock used to timestamp events do not need to =
be updated to take into account leap second adjustments, which can take =
a fair amount of code and support infrastructure to handle a very rare =
event.  It also trivializes calculation of event durations, even when =
the duration spans application of a leap second.
>=20
> My feeling is that any software component that needs to translate =
between between device time and civil time can be expected to account =
for leap seconds, while those that are operating in a constrained =
environment would best be isolated from their effects.  Note that GPS =
time is similarly measured in atomic seconds since an epoch =
(1980-01-06T00:00:00Z).
>=20
> So, do Date values in the proposed COAP match what you get from =
running "date +%s" on a Linux system synchronized to UTC, or are they =
that value plus 24?  I read the draft as specifying the latter, which is =
my preference, but anticipate great confusion from people who haven't =
had to deal with leap seconds before.
>=20
> Recommend changing "number of seconds, excluding leap seconds, after" =
to "number of (atomic) seconds since".

I suspect that using a EPOCH of 2010 instead of 1970 would reduce the =
bits we need and also, more importantly, encourage people not to confuse =
these times with "date +%s"  times.=20

>=20
> Peter
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core


Cullen Jennings
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html




From pab@peoplepowerco.com  Thu May 27 07:14:28 2010
Return-Path: <pab@peoplepowerco.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 517DA3A6AEC for <core@core3.amsl.com>; Thu, 27 May 2010 07:14:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.624
X-Spam-Level: 
X-Spam-Status: No, score=0.624 tagged_above=-999 required=5 tests=[BAYES_50=0.001, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001]
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 91SVVEOB0RpR for <core@core3.amsl.com>; Thu, 27 May 2010 07:14:24 -0700 (PDT)
Received: from mail-fx0-f54.google.com (mail-fx0-f54.google.com [209.85.161.54]) by core3.amsl.com (Postfix) with ESMTP id 5CD273A6943 for <core@ietf.org>; Thu, 27 May 2010 07:14:22 -0700 (PDT)
Received: by fxm20 with SMTP id 20so24715fxm.27 for <core@ietf.org>; Thu, 27 May 2010 07:14:09 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.102.12.30 with SMTP id 30mr6832855mul.43.1274969648720; Thu,  27 May 2010 07:14:08 -0700 (PDT)
Received: by 10.103.212.5 with HTTP; Thu, 27 May 2010 07:14:08 -0700 (PDT)
In-Reply-To: <0924B0BC-BFA7-40E5-8ED9-1AF27533F401@cisco.com>
References: <AANLkTinkPwS1mr-0PXi_gNcnDbSDBPWqdwpR0Fg8taO2@mail.gmail.com> <0924B0BC-BFA7-40E5-8ED9-1AF27533F401@cisco.com>
Date: Thu, 27 May 2010 09:14:08 -0500
Message-ID: <AANLkTinrM-xcmDM02kM1KyB4JvSeEUgORLZkRmLK9PQA@mail.gmail.com>
From: Peter Bigot <pab@peoplepowerco.com>
To: Cullen Jennings <fluffy@cisco.com>
Content-Type: multipart/alternative; boundary=00163646b9c802eb2e0487940160
Cc: core@ietf.org
Subject: Re: [core] Date option in draft-shelby-core-coap-01
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, 27 May 2010 14:14:28 -0000

--00163646b9c802eb2e0487940160
Content-Type: text/plain; charset=ISO-8859-1

I doubt relative times would work, since every device would have its own
zero, making coordination difficult.

I agree with your assessment of what can be asked of COAP nodes with respect
to time.  Any requirement that the nodes operate with civil time (or UTC)
would require something like 1, 2, or 4.
If the phrasing I suggested were adopted, it would be the responsibility of
whatever bridges between COAP and less constrained environments to make the
necessary adjustments.

3 is more of an issue, as it implies the times on COAP nodes may drift so
much leap days (let alone seconds) would be in the noise.  But we have to
draw the line somewhere.

I recommend retaining the POSIX epoch of 1970.  Moving to 2010 would not
help much, as there are 86400 seconds in a day and 31536000 in a year,
meaning neither 16 nor 24 bits are adequate for measuring reasonable time
periods.  Once we're at 32 bits, we might as well keep a standard epoch
rather than create a new one.  (We could move to GPS time, which has a
different epoch and a different UTC offset, but I suspect most developers of
COAP applications will be more familiar with POSIX.)

Peter

On Wed, May 26, 2010 at 10:05 PM, Cullen Jennings <fluffy@cisco.com> wrote:

>
> Peter,
>
> These are all excellent points and I think I (not Zach) am partial to blame
> for the current text... I just pointed him towards some cut and pasted text
> from some other RFC - I figured we needed something in the draft as a
> starting point to get this conversation going. Dealing with time is always
> complicated and even more so in this constrained environment. If we start by
> looking at our constraints, I suspect we come to the conclusions you
> suggested below.
>
> My guess is that if we asked everyone, most people would say that we could
> not require a COAP node to do any of the following. Some nodes might do
> these but it would not be required
>
> 1) run NTP
> 2) have a table of when leap seconds were going to happened and way to keep
> that table up to date
> 3) have a time source was more accurate than a simple non temperature
> compensated crystal
> 4) have any clue about timezones
>
> I really have no idea how some of these devices are even going to set their
> time when they first get turned on other than perhaps looking at the time of
> some other node.
>
> All this leads me to wonder if we could get away with only having relative
> times in CoAP.
>
> On May 13, 2010, at 8:35 AM, Peter Bigot wrote:
>
> > Section 3.3.6 introduces a Date option that can be used to timestamp a
> measurement.  The description specifies that leap seconds are excluded.
>  It's not crystal clear to me what "excluded" means in this situation.  I
> don't see any discussion in the list archive.
> >
> > Pretending leap seconds don't exist (one sense of exclude) makes sense as
> it trivializes the translation between POSIX- time representations (seconds
> since 1970-01-01T00:00:00Z) and UTC-aligned wall clock times that people
> normally deal with: this becomes simple division and modulus operations with
> a little hassle imposed by leap years.  On the other hand, the
> representation can express times that do not exist (23:59:59 when a negative
> leap second takes effect), and can be ambiguous (23:59:60 or a repeated
> 23:59:59 when a positive leap second takes effect).  More importantly,
> simple subtraction of two event times does not necessarily result in the
> duration of the event.
> >
> > For an in-development system to which CoAP could apply, my recommendation
> was to use times expressed as atomic seconds since the POSIX epoch (thereby
> excluding leap second adjustments from the value).  This does mean that
> translation to civil time requires knowledge of the number of leap seconds
> in effect at that time (currently UTC is 24 seconds behind TAI relative to
> the POSIX epoch).  In return, devices that maintain an internal clock used
> to timestamp events do not need to be updated to take into account leap
> second adjustments, which can take a fair amount of code and support
> infrastructure to handle a very rare event.  It also trivializes calculation
> of event durations, even when the duration spans application of a leap
> second.
> >
> > My feeling is that any software component that needs to translate between
> between device time and civil time can be expected to account for leap
> seconds, while those that are operating in a constrained environment would
> best be isolated from their effects.  Note that GPS time is similarly
> measured in atomic seconds since an epoch (1980-01-06T00:00:00Z).
> >
> > So, do Date values in the proposed COAP match what you get from running
> "date +%s" on a Linux system synchronized to UTC, or are they that value
> plus 24?  I read the draft as specifying the latter, which is my preference,
> but anticipate great confusion from people who haven't had to deal with leap
> seconds before.
> >
> > Recommend changing "number of seconds, excluding leap seconds, after" to
> "number of (atomic) seconds since".
>
> I suspect that using a EPOCH of 2010 instead of 1970 would reduce the bits
> we need and also, more importantly, encourage people not to confuse these
> times with "date +%s"  times.
>
> >
> > Peter
> > _______________________________________________
> > core mailing list
> > core@ietf.org
> > https://www.ietf.org/mailman/listinfo/core
>
>
> Cullen Jennings
> For corporate legal information go to:
> http://www.cisco.com/web/about/doing_business/legal/cri/index.html
>
>
>
>

--00163646b9c802eb2e0487940160
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

I doubt relative times would work, since every device would have its own ze=
ro, making coordination difficult.<br><br>I agree with your assessment of w=
hat can be asked of COAP nodes with respect to time.=A0 Any requirement tha=
t the nodes operate with civil time (or UTC) would require something like 1=
, 2, or 4.<br>
If the phrasing I suggested were adopted, it would be the responsibility of=
 whatever bridges between COAP and less constrained environments to make th=
e necessary adjustments.<br><br>3 is more of an issue, as it implies the ti=
mes on COAP nodes may drift so much leap days (let alone seconds) would be =
in the noise.=A0 But we have to draw the line somewhere.<br>
<br>I recommend retaining the POSIX epoch of 1970.=A0 Moving to 2010 would =
not help much, as there are 86400 seconds in a day and 31536000 in a year, =
meaning neither 16 nor 24 bits are adequate for measuring reasonable time p=
eriods.=A0 Once we&#39;re at 32 bits, we might as well keep a standard epoc=
h rather than create a new one.=A0 (We could move to GPS time, which has a =
different epoch and a different UTC offset, but I suspect most developers o=
f COAP applications will be more familiar with POSIX.)<br>
<br>Peter<br><br><div class=3D"gmail_quote">On Wed, May 26, 2010 at 10:05 P=
M, Cullen Jennings <span dir=3D"ltr">&lt;<a href=3D"mailto:fluffy@cisco.com=
">fluffy@cisco.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quot=
e" style=3D"margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204,=
 204); padding-left: 1ex;">
<br>
Peter,<br>
<br>
These are all excellent points and I think I (not Zach) am partial to blame=
 for the current text... I just pointed him towards some cut and pasted tex=
t from some other RFC - I figured we needed something in the draft as a sta=
rting point to get this conversation going. Dealing with time is always com=
plicated and even more so in this constrained environment. If we start by l=
ooking at our constraints, I suspect we come to the conclusions you suggest=
ed below.<br>

<br>
My guess is that if we asked everyone, most people would say that we could =
not require a COAP node to do any of the following. Some nodes might do the=
se but it would not be required<br>
<br>
1) run NTP<br>
2) have a table of when leap seconds were going to happened and way to keep=
 that table up to date<br>
3) have a time source was more accurate than a simple non temperature compe=
nsated crystal<br>
4) have any clue about timezones<br>
<br>
I really have no idea how some of these devices are even going to set their=
 time when they first get turned on other than perhaps looking at the time =
of some other node.<br>
<br>
All this leads me to wonder if we could get away with only having relative =
times in CoAP.<br>
<div><div></div><div class=3D"h5"><br>
On May 13, 2010, at 8:35 AM, Peter Bigot wrote:<br>
<br>
&gt; Section 3.3.6 introduces a Date option that can be used to timestamp a=
 measurement. =A0The description specifies that leap seconds are excluded. =
=A0It&#39;s not crystal clear to me what &quot;excluded&quot; means in this=
 situation. =A0I don&#39;t see any discussion in the list archive.<br>

&gt;<br>
&gt; Pretending leap seconds don&#39;t exist (one sense of exclude) makes s=
ense as it trivializes the translation between POSIX- time representations =
(seconds since 1970-01-01T00:00:00Z) and UTC-aligned wall clock times that =
people normally deal with: this becomes simple division and modulus operati=
ons with a little hassle imposed by leap years. =A0On the other hand, the r=
epresentation can express times that do not exist (23:59:59 when a negative=
 leap second takes effect), and can be ambiguous (23:59:60 or a repeated 23=
:59:59 when a positive leap second takes effect). =A0More importantly, simp=
le subtraction of two event times does not necessarily result in the durati=
on of the event.<br>

&gt;<br>
&gt; For an in-development system to which CoAP could apply, my recommendat=
ion was to use times expressed as atomic seconds since the POSIX epoch (the=
reby excluding leap second adjustments from the value). =A0This does mean t=
hat translation to civil time requires knowledge of the number of leap seco=
nds in effect at that time (currently UTC is 24 seconds behind TAI relative=
 to the POSIX epoch). =A0In return, devices that maintain an internal clock=
 used to timestamp events do not need to be updated to take into account le=
ap second adjustments, which can take a fair amount of code and support inf=
rastructure to handle a very rare event. =A0It also trivializes calculation=
 of event durations, even when the duration spans application of a leap sec=
ond.<br>

&gt;<br>
&gt; My feeling is that any software component that needs to translate betw=
een between device time and civil time can be expected to account for leap =
seconds, while those that are operating in a constrained environment would =
best be isolated from their effects. =A0Note that GPS time is similarly mea=
sured in atomic seconds since an epoch (1980-01-06T00:00:00Z).<br>

&gt;<br>
&gt; So, do Date values in the proposed COAP match what you get from runnin=
g &quot;date +%s&quot; on a Linux system synchronized to UTC, or are they t=
hat value plus 24? =A0I read the draft as specifying the latter, which is m=
y preference, but anticipate great confusion from people who haven&#39;t ha=
d to deal with leap seconds before.<br>

&gt;<br>
&gt; Recommend changing &quot;number of seconds, excluding leap seconds, af=
ter&quot; to &quot;number of (atomic) seconds since&quot;.<br>
<br>
</div></div>I suspect that using a EPOCH of 2010 instead of 1970 would redu=
ce the bits we need and also, more importantly, encourage people not to con=
fuse these times with &quot;date +%s&quot; =A0times.<br>
<br>
&gt;<br>
&gt; Peter<br>
&gt; _______________________________________________<br>
&gt; core mailing list<br>
&gt; <a href=3D"mailto:core@ietf.org">core@ietf.org</a><br>
&gt; <a href=3D"https://www.ietf.org/mailman/listinfo/core" target=3D"_blan=
k">https://www.ietf.org/mailman/listinfo/core</a><br>
<font color=3D"#888888"><br>
<br>
Cullen Jennings<br>
For corporate legal information go to:<br>
<a href=3D"http://www.cisco.com/web/about/doing_business/legal/cri/index.ht=
ml" target=3D"_blank">http://www.cisco.com/web/about/doing_business/legal/c=
ri/index.html</a><br>
<br>
<br>
<br>
</font></blockquote></div><br>

--00163646b9c802eb2e0487940160--

From apezzuto@cisco.com  Thu May 27 11:09:20 2010
Return-Path: <apezzuto@cisco.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 856703A6BB9 for <core@core3.amsl.com>; Thu, 27 May 2010 11:09:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.001
X-Spam-Level: *
X-Spam-Status: No, score=1.001 tagged_above=-999 required=5 tests=[AWL=-1.300,  BAYES_50=0.001, HTML_MESSAGE=0.001, MANGLED_TOOL=2.3]
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 raV8MhbeNbp2 for <core@core3.amsl.com>; Thu, 27 May 2010 11:09:17 -0700 (PDT)
Received: from ams-iport-2.cisco.com (ams-iport-2.cisco.com [144.254.224.141]) by core3.amsl.com (Postfix) with ESMTP id E3EF43A68BB for <core@ietf.org>; Thu, 27 May 2010 11:08:46 -0700 (PDT)
Authentication-Results: ams-iport-2.cisco.com; dkim=neutral (message not signed) header.i=none
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AuQBAOtR/kuQ/uCWe2dsb2JhbACBP4RMmBcVAQEWIgYcqEKaLwKCc4IeBA
X-IronPort-AV: E=Sophos;i="4.53,312,1272844800"; d="scan'208,217";a="7918001"
Received: from ams-core-1.cisco.com ([144.254.224.150]) by ams-iport-2.cisco.com with ESMTP; 27 May 2010 17:29:27 +0000
Received: from xbh-ams-201.cisco.com (xbh-ams-201.cisco.com [144.254.75.7]) by ams-core-1.cisco.com (8.13.8/8.14.3) with ESMTP id o4RI8ZwJ013693; Thu, 27 May 2010 18:08:35 GMT
Received: from xmb-ams-106.cisco.com ([144.254.74.81]) by xbh-ams-201.cisco.com with Microsoft SMTPSVC(6.0.3790.3959);  Thu, 27 May 2010 20:08:35 +0200
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01CAFDC7.9FD53178"
Date: Thu, 27 May 2010 20:08:34 +0200
Message-ID: <0D212BD466921646B58854FB79092CEC021F4C22@XMB-AMS-106.cisco.com>
In-Reply-To: <4BFD63D3.3040207@gridmerge.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [core] Subscribe/Notify for CoAP
Thread-Index: Acr8/rNvbeGmOPYGQ42yb5K4ZXtbngAxbdrQ
References: <OF97EC852F.8A85DCEB-ONC1257726.0051887E-C1257726.005677A7@schneider-electric.com><3602E0C6-1E2E-4164-A208-A874128325AF@sensinode.com><4BFB3A66.5080700@cisco.com><E4DBD8AB11D2E54F89B23D7CD1065D8C0105621D@onzosbs2k3.ONZO.local><324781C3-5548-474D-8995-EC327ED08209@sensinode.com>	<4BFC5368.2010602@cisco.com> <0D212BD466921646B58854FB79092CEC0216121C@XMB-AMS-106.cisco.com> <4BFD63D3.3040207@gridmerge.com>
From: "Adriano Pezzuto (apezzuto)" <apezzuto@cisco.com>
To: <robert.cragie@gridmerge.com>
X-OriginalArrivalTime: 27 May 2010 18:08:35.0825 (UTC) FILETIME=[A0017610:01CAFDC7]
Cc: core <core@ietf.org>
Subject: Re: [core] Subscribe/Notify for CoAP
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, 27 May 2010 18:09:20 -0000

This is a multi-part message in MIME format.

------_=_NextPart_001_01CAFDC7.9FD53178
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hi Robert,

=20

in my personal opinion, the option 1a) brings some sort of ambiguity to =
CoAP specs.

=20

My be my understatement of new CoAP specs is not so deep,  but now we =
have 5 methods and 3 message types: request, response and notify. Which =
methods are allowed with which messages types?

I suppose you have to use PUT/POST method with notify message for asynch =
data notification. How to make a subscribe? I suppose you would use a =
SUBSCRIBE method with request/response message or SUBSCRIBE with notify =
message? Also what about POST/DELETE methods in a notify message? They =
not make any sense..

=20

I think the choice is between: option 1) -> only CRUD methods and option =
1b) -> CRUD + SUB/NOTIFY methods, keeping in mind cost/benefits of both =
solutions.

=20

Adriano

=20

From: Robert Cragie [mailto:robert.cragie@gridmerge.com]=20
Sent: mercoled=EC 26 maggio 2010 20.09
To: Adriano Pezzuto (apezzuto)
Cc: Paul Duffy (paduffy); Zach Shelby; core
Subject: Re: [core] Subscribe/Notify for CoAP

=20

Hi Adrian,

I would also prefer to keep the protocol in CoAP asynchronous. You can =
always map an asynchronous protocol to a synchronous one but, as we see =
in HTTP, it always ends up as a kludge to do it the other way round. The =
efforts which have been gone to to make HTTP quasi-asynchronous via all =
the schemes mentioned below and many more besides (all non-interoperable =
of course) is testament to how important this is for M2M communication.

So, back to Zach's list, I favor 1a) for the following reasons:

Foundation level of messages:

1.	request/response can be asynchronous or synchronous messages (as =
there is a transaction ID in there)
2.	notify is an asynchronous message

Derived methods:

I think it makes sense to add a pub/sub model as a useful mechanism for =
M2M.

So, looking at it the other way round: It will be entirely possible to =
translate whatever is currently built on HTTP to CoAP based on the =
above, with all its restrictions regarding synchronous and client/server =
transactions. What may be harder is to translate directly is a =
CoAP-based application to HTTP. So I guess the question is: Do we want =
to be hamstrung to synchronous client/server transactions as dictated by =
HTTP and provide a direct mapping to HTTP, then have to come up with =
similar kludges for asynchronous peer-to-peer transactions as has been =
done in numerous ways for HTTP, or do we want to define the protocol =
cleanly to start with and accept that some sort of transaction =
relaying/conversion would have to take place at a mapping node?

Robert

Robert Cragie (Pacific Gas & Electric)

Gridmerge Ltd.
89 Greenfield Crescent,
Wakefield, WF4 4WA, UK
+44 1924 910888
+1 415 513 0064
http://www.gridmerge.com <http://www.gridmerge.com/>=20


On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote:=20

Hi,
it looks to me that CoAP should use an explicit sub/notify mechanism =
since this is the core of the machine-to-machine interaction model.
HTTP suffers of this lack and we have seen a plethora of solutions to =
give an asynch taste to it. Webhooks and websockets are only the lasts =
of the list.
As someone has already pointed out on this list, it is theoretically =
possible to describe sub/notify using only CRUD methods but it looks a =
little bit tricky and verbose.
=20
Now we have a chance to build from scratch a new protocol with and I =
think using explicit sub/notify methods with a clear and well defined =
semantic is the best option. It is easily understanding from every =
developer and will prevent to build other fanny solutions on top of the =
CoAP. HTTP does not have this well defined semantic and (for hundreds of =
other reasons also) it is not used as wide protocol for =
machine-to-machine communication.
=20
CoAP - as binary protocol - and with an explicit asynch model has a =
chance to be a really wide protocol for M2M communication not only for =
constrained environments.
=20
my 2 cents
=20
- adriano
=20
-----Original Message-----
From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of =
Paul Duffy (paduffy)
Sent: mercoled=EC 26 maggio 2010 0.47
To: Zach Shelby
Cc: core
Subject: Re: [core] Subscribe/Notify for CoAP
=20
On 5/25/2010 6:41 PM, Zach Shelby wrote:
 =20

	Hi,
	=20
	On May 26, 2010, at 12:23 AM, Charles Palmer wrote:
	=20
	  =20
	   =20

		Hi folks
		=20
		It occurs to me that CoRE should be keeping a close eye on ZigBee =
SE2.0 work, so that it is as easy as possible for ZigBee SE to use CoRE =
when ready. That suggests to me that we should align with their =
subscribe/notify process.
		=20
		    =20
		     =20

	I am not sure I understand that. I mean, ZigBee SE2.0 is defining an =
application specific subscribe/notify mechanism for that purpose so far =
for HTTP. This uses standard HTTP methods and some custom payload and =
REST interfaces. CoAP Req/Res is already totally compatible with SE2.0 =
in that respect, so alignment is already OK there. Nothing stopping =
someone from using SE2.0 over CoAP.
	=20
	Specifying a native susbcription/notify into CoAP is another matter. We =
can't adopt a solution specific to one application as that won't solve =
the problems of other applications nor general HTTP mapping at all =
(probably would make it worse). It seems that for the near future there =
will be a bunch of HTTP push mechanisms in use without any clear =
standard appearing - or am I wrong there?
	  =20
	   =20

=20
=20
=20
If COAP extends HTTP semantics with new subscription methods, it will=20
not be possible to easily interchange HTTP/COAP, and translation=20
gateways will become more complex to implement.
=20
=20
=20
 =20

	Zach
	=20
	  =20
	   =20

		Regards - Charles
		=20
		=20
		-----Original Message-----
		From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of Paul Duffy
		Sent: 25 May 2010 03:48
		To: Zach Shelby
		Cc: core
		Subject: Re: [core] Subscribe/Notify for CoAP
		=20
		Recommend something like #2, primarily to avoid introducing non HTTP
		method semantics, simplifying HTTP/COAP translation.gateways, etc.
		=20
		=20
		On 5/24/2010 11:49 AM, Zach Shelby wrote:
		    =20
		     =20

			(thread renamed)
			=20
			We have two different paths with regard to a subscribe/notify =
mechanism for CoAP:
			=20
			1. Use specific Subscription and Notify mechanisms for CoAP as HTTP =
really does not include this concept.
			1a) Notify as a message and SUBSCRIBE as a method. This is currently =
used in coap-01.
			1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but we =
had a good list discussion about this leading to a. In practice it =
doesn't make a big difference if notification is a message or method.
			=20
			2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0 =
proposal or GENA.
			=20
			So far we have focused on 1 in the WG, and every now and again 2 =
comes up. At least I am not convinced that we need to suffer the =
drawbacks of HTTP here. Anyways 2 does not help our mapping to HTTP in =
reality very much as there is no standard way of doing this over HTTP. =
Thus a CoAP-HTTP proxy may end up anyways translating between multiple =
HTTP frameworks depending on the application. So instead of doing a CoAP =
Notify/Subscribe to Webhooks mapping, you will could end up having to do =
a CoAP Webhooks to HTTP GENA mapping.
			=20
			      =20
			       =20

		=20
		I don't understand this last para.  If CoAP sticks to the semantics of
		the current HTTP methods, would this not offer a fairly =
straightforward
		translation to/from HTTP?
		=20
		=20
		    =20
		     =20

				 From what I have heard so far 1 still seems like a wise choice, =
although I need to look at Webhooks more deeply. In reality many =
applications specify their own way of doing a push interface using REST =
methods and specific payloads (ZigBee SE2.0 is such an example). That is =
just fine, and might be used instead of a specific CoAP notify/subscribe =
in that case. So 1 doesn't prevent the application using its own =
mechanism, it just provides a native way for doing push.
				        =20
				         =20

			What do people think?
			=20
			Zach
			=20
			On May 17, 2010, at 6:44 PM, =
matthieu.vial@fr.non.schneider-electric.com wrote:
			=20
			=20
			      =20
			       =20

				Hi,
				=20
				My comments about the subscribe/notify mechanism of Zigbee IP.
				=20
				Pros:
				- Derived from the webhooks concept
				- If used by CORE it will be easier to map to HTTP because it uses =
only CRUD verbs.
				- The subscription message is extendable and could support advanced =
options (delays, increment, ...)
				- Only one listening port whatever the transport binding is.
				=20
				Cons:
				- No interoperability without well known URIs and a well defined =
subscription message format (Not sure CoAP draft is the right place to =
specify this).
				- XML/EXI is too complex to be the required format for the default =
subscription/notification mechanism.
				- The notification should not require a subsequent GET to retrieve =
the content.
				- Subresource subscription is redundant.
				=20
				Hope this could help,
				Matthieu
				=20
				=20
				<graycol.gif>"Charles Palmer"<charles.palmer@onzo.com> =
<mailto:charles.palmer@onzo.com>=20
				=20
				=20
				=20
				=20
				"Charles Palmer"<charles.palmer@onzo.com> =
<mailto:charles.palmer@onzo.com>=20
				Envoy=E9 par : core-bounces@ietf.org
				15/05/2010 14:06
				=20
				<ecblank.gif>
				A
				<ecblank.gif>
				"core"<core@ietf.org> <mailto:core@ietf.org>=20
				<ecblank.gif>
				cc
				<ecblank.gif>
				<ecblank.gif>
				Objet
				<ecblank.gif>
				Re: [core] Selecting a WG document for CoAP
				<ecblank.gif> <ecblank.gif>
				=20
				Dear all
				=20
				Those interested in the subscribe/notify discussion might like to =
look
				at the draft Smart Energy Profile 2.0 Application Protocol
				Specification. It is available here:
				=
http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicApp
				licationProfile.aspx
				=20
				It manages subscribe/notify by using POST. This seems to remove the =
need
				for SUBSCRIBE and notify.
				=20
				"Imagine a host A, which exposes a resource at http{s}://A/resource =
and
				a second host B, which wishes to learn of changes to this resource. =
To
				facilitate a subscription/ notification mechanism, A would expose a
				resource http{s}://A/sub and B would expose a resource =
http{s}://B/ntfy.
				To subscribe to notifications regarding http{s}://A/resource, B =
would
				send a POST to the address http{s}://A/sub/B containing the URI of =
the
				resource of interest (http{s}://A/resource) and the URI of B's
				notification resource (http{s}://B/ntfy). Following this =
subscription
				step, should A wish to notify B of a change to the resource =
addressed at
				http{s}://A/resource, A would send a POST to the address
				http{s}://B/ntfy containing the URI of the resource changed
				(http{s}://A/resource) and the URI of A's subscription resource
				(http{s}://A/sub/B), should A wish to change its subscription. The =
host
				B can then query the resource (or not) at its leisure."
				=20
				Sleepy nodes are not allowed to subscribe, and must poll.
				=20
				Regards - Charles Palmer
				=20
				-----Original Message-----
				From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of
				Angelo P. Castellani
				Sent: 14 May 2010 13:14
				To: Zach Shelby
				Cc: core
				Subject: Re: [core] Selecting a WG document for CoAP
				=20
				Zach,
				=20
				thanks for the comments, but please refer to my most recent e-mail =
for
				a more specific list of technical issues I'm pointing to.
				=20
				I want to do only a little integration to what I've written there.
				=20
				In my very personal opinion, to maximize adherence with the REST =
model
				and minimize implementation effort SUBSCRIBE and NOTIFY should be
				mapped to methods (as discussed many times together...).
				=20
				Uniform interface principle (Fielding PhD dissertation Section =
5.1.5,
				"The central feature that distinguishes the REST architectural style
				[...]") states that to simplify the software architecture, resource
				interfaces/interfaces should be as general as possible.
				=20
				I agree with this principle in this specific case, mainly because
				handling a special message type for notify leads node software =
design
				to a more complex architecture.
				=20
				The reason is that this new message type requires special handling =
and
				introduces a complexity in the software modularization.
				=20
				Best,
				Angelo
				=20
				On Fri, May 14, 2010 at 13:06, Zach Shelby<zach@sensinode.com> =
<mailto:zach@sensinode.com>    wrote:
				=20
				        =20
				         =20

					Hi Angelo,
					=20
					On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:
					=20
					=20
					          =20
					           =20

					Dear C. Bormann, all,
					=20
					before deciding for the final direction, I've the following
					observations about draft-shelby-core-coap-01
					=20
					While I mostly share Zach's view of the protocol approach, and
					appreciate many aspects of the proposal, there are in my opinion
					=20
					            =20
					             =20

				still
				=20
				        =20
				         =20

					some open issues that need to be at least discussed before the
					=20
					            =20
					             =20

				current
				=20
				        =20
				         =20

					document can be selected.
					=20
					            =20
					             =20

					Of course there are plenty of open issues. Remember that working =
group
					=20
					          =20
					           =20

				documents still undertake as much change and improvement as the WG
				wants, so by no means is coap-01 set in stone. I would expect at =
least
				5-10 more revisions still along the way.  Already several of your =
ideas
				have been integrated into coap-01, and several more are under
				consideration, so it is coming along. Patience ;-)
				=20
				        =20
				         =20

					          =20
					           =20

					In particular, I would like to highlight the following:
					=20
					a) As it is now, it is not possible to have a straightforward
					translation of HTTP ->   CoAP and viceversa: see
					http://www.ietf.org/mail-archive/web/core/current/msg00133.html =
(this
					impacts the scalability of the web service model too)
					=20
					            =20
					             =20

					In coap-01 the Method names are now identical to HTTP methods. The
					=20
					          =20
					           =20

				Req/Res interaction is a direct translation. The URI hierarchy is
				compatible, and the URI binary code format we are still working on
				obviously. The only thing that takes some state to translate is
				Subscribe/Notify. But note, Subscribe/Notify takes some state no =
matter
				how you do it, even with HTTP-HTTP there is no clean and easy way to
				handle subscriptions.
				=20
				        =20
				         =20

					          =20
					           =20

					b) Moreover, CoAP's implementation is not as simple as it should =
be.
					I've investigated the implementation and some design choices (as
					Options) are leading to very high program complexity (ROM) on a
					MSP430-based device.
					=20
					            =20
					             =20

					This we can definitely improve, and already made several =
optimizations
					=20
					          =20
					           =20

				from -00 to -01. Here I need some very concrete proposals though. =
Also
				remember that many things are optional, for example subscribe/notify =
is
				not required if you don't need it.
				=20
				        =20
				         =20

					          =20
					           =20

					c) Finally when comparing HTTP message size with CoAP message size,
					the resulting compression isn't as good as you may expect.
					=20
					Example:
					HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
					CoAP: 24 B with options parsing procedure requiring an added
					implementation complexity
					=20
					            =20
					             =20

					Right, that is not how it will work in practice. Working with a =
real
					=20
					          =20
					           =20

				HTTP server that HTTP header will be more complex, and on the CoAP =
side
				you would chose shorter URLs. The biggest improvement possible here =
is
				from using binary coded URLs of course. We need to look at a wider =
range
				of interactions and real HTTP headers as well to check that we are
				efficient enough.
				=20
				        =20
				         =20

					          =20
					           =20

					Addressing all these points potentially leads to major technical
					modifications (especially point a) on the current draft, hence it =
is
					appropriate in my opinion to discuss these points before making the
					final decision.
					=20
					            =20
					             =20

					I am not sure what else you have in mind for a). If we just forget
					=20
					          =20
					           =20

				about Subscribe/Notify then you are good to go. But then you are =
also
				not fulfilling the charter or the industry needs in that respect.
				=20
				        =20
				         =20

					Thanks,
					Zach
					=20
					=20
					          =20
					           =20

					Best regards,
					=20
					Angelo P. Castellani
					=20
					=20
					On Mon, May 10, 2010 at 18:51, Carsten Bormann<cabo@tzi.org> =
<mailto:cabo@tzi.org>    wrote:
					=20
					            =20
					             =20

					The CORE WG has a milestone to select a WG document for CoAP in
					=20
					              =20
					               =20

				April:
				=20
				        =20
				         =20

					http://datatracker.ietf.org/wg/core/charter/
					...
					Apr 2010        Select WG document for basis of the CoAP protocol
					=20
					Of the various documents that have been contributed,
					=20
					              =20
					               =20

				draft-shelby-core-coap has significant discussion, as well as the
				largest number of updates (including a previous version that was =
still
				called -6lowapp-coap).
				=20
				        =20
				         =20

					Today, another updated version of that draft was announced.  See
					http://www.ietf.org/mail-archive/web/core/current/msg00138.html
					for the announcement and
					http://tools.ietf.org/html/draft-shelby-core-coap-01
					for the draft itself.
					=20
					However, as the authors say, there are still significant TODOs.
					=20
					Are we in a state yet where we can say whether this is the right
					=20
					              =20
					               =20

				direction for the WG to take?
				=20
				        =20
				         =20

					If yes, is it the right direction?  Should we adopt it as a WG
					=20
					              =20
					               =20

				document?
				=20
				        =20
				         =20

					If you don't think we can say yet, is there a set of technical
					=20
					              =20
					               =20

				decisions you would like the authors to take with priority?
				=20
				        =20
				         =20

					Note that once a document has become a WG document, the authors act
					=20
					              =20
					               =20

				as editors for the working group, making (and usually fleshing out =
the
				details of) any change that the WG decides it needs.
				=20
				        =20
				         =20

					If you think we can still improve the draft, this is not an =
obstacle
					=20
					              =20
					               =20

				to making it a WG document.
				=20
				        =20
				         =20

					But of course we shouldn't do that if we intend to reverse its
					=20
					              =20
					               =20

				fundamental technical direction.
				=20
				        =20
				         =20

					In order to stay roughly in sync with our milestones, we should
					=20
					              =20
					               =20

				reach at a decision on how to go forward this week.
				=20
				        =20
				         =20

					Gruesse, Carsten
					=20
					_______________________________________________
					core mailing list
					core@ietf.org
					https://www.ietf.org/mailman/listinfo/core
					=20
					=20
					              =20
					               =20

					_______________________________________________
					core mailing list
					core@ietf.org
					https://www.ietf.org/mailman/listinfo/core
					=20
					            =20
					             =20

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

				_______________________________________________
				core mailing list
				core@ietf.org
				https://www.ietf.org/mailman/listinfo/core
				=20
				--------------------------------
				Onzo is a limited company number 06097997 registered in England&   =
Wales. The
				registered office is 6 Great Newport Street, London, WC2H 7JB, =
United Kingdom.
				=20
				This email message may contain confidential and/or privileged =
information, and
				is intended solely for the addressee(s). If you have received this =
email in
				error, please notify Onzo immediately. Unauthorised copying, =
disclosure or
				distribution of the material in this email is forbidden.
				--------------------------------
				=20
				_______________________________________________
				core mailing list
				core@ietf.org
				https://www.ietf.org/mailman/listinfo/core
				=20
				=
______________________________________________________________________
				This email has been scanned by the MessageLabs Email Security =
System.
				=
______________________________________________________________________
				=20
				_______________________________________________
				core mailing list
				core@ietf.org
				https://www.ietf.org/mailman/listinfo/core
				=20
				        =20
				         =20

			      =20
			       =20

		_______________________________________________
		core mailing list
		core@ietf.org
		https://www.ietf.org/mailman/listinfo/core
		=20
		--------------------------------
		Onzo is a limited company number 06097997 registered in England&  =
Wales. The
		registered office is 6 Great Newport Street, London, WC2H 7JB, United =
Kingdom.
		=20
		This email message may contain confidential and/or privileged =
information, and
		is intended solely for the addressee(s). If you have received this =
email in
		error, please notify Onzo immediately. Unauthorised copying, =
disclosure or
		distribution of the material in this email is forbidden.
		--------------------------------
		=20
		    =20
		     =20

	  =20
	   =20

=20
_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core
_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core
=20
 =20

------_=_NextPart_001_01CAFDC7.9FD53178
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<meta name=3DGenerator content=3D"Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:Verdana;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";
	color:black;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p
	{mso-style-priority:99;
	mso-margin-top-alt:auto;
	margin-right:0cm;
	mso-margin-bottom-alt:auto;
	margin-left:0cm;
	font-size:8.0pt;
	font-family:"Verdana","sans-serif";
	color:black;}
pre
	{mso-style-priority:99;
	mso-style-link:"HTML Preformatted Char";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New";
	color:black;}
p.name, li.name, div.name
	{mso-style-name:name;
	mso-margin-top-alt:auto;
	margin-right:0cm;
	mso-margin-bottom-alt:auto;
	margin-left:0cm;
	font-size:12.0pt;
	font-family:"Verdana","sans-serif";
	color:black;}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:"Consolas","serif";
	color:black;}
span.EmailStyle21
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page Section1
	{size:612.0pt 792.0pt;
	margin:70.85pt 2.0cm 2.0cm 2.0cm;}
div.Section1
	{page:Section1;}
 /* List Definitions */
 @list l0
	{mso-list-id:741752703;
	mso-list-template-ids:1576030616;}
ol
	{margin-bottom:0cm;}
ul
	{margin-bottom:0cm;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body bgcolor=3Dwhite lang=3DEN-US link=3Dblue vlink=3Dpurple>

<div class=3DSection1>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Hi Robert,<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>in my personal opinion, the option 1a) brings some sort =
of ambiguity
to CoAP specs.<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>My be my understatement of new CoAP specs is not so deep, =
=A0but now
we have 5 methods and 3 message types: request, response and notify. =
Which
methods are allowed with which messages types?<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>I suppose you have to use PUT/POST method with notify =
message
for asynch data notification. How to make a subscribe? I suppose you =
would use
a SUBSCRIBE method with request/response message or SUBSCRIBE with =
notify
message? Also what about POST/DELETE methods in a notify message? They =
not make
any sense..<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>I think the choice is between: option 1) -&gt; only CRUD =
methods
and option 1b) -&gt; CRUD + SUB/NOTIFY methods, keeping in mind =
cost/benefits
of both solutions.<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Adriano<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div>

<div style=3D'border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt =
0cm 0cm 0cm'>

<p class=3DMsoNormal><b><span =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";
color:windowtext'>From:</span></b><span =
style=3D'font-size:10.0pt;font-family:
"Tahoma","sans-serif";color:windowtext'> Robert Cragie
[mailto:robert.cragie@gridmerge.com] <br>
<b>Sent:</b> mercoled=EC 26 maggio 2010 20.09<br>
<b>To:</b> Adriano Pezzuto (apezzuto)<br>
<b>Cc:</b> Paul Duffy (paduffy); Zach Shelby; core<br>
<b>Subject:</b> Re: [core] Subscribe/Notify for =
CoAP<o:p></o:p></span></p>

</div>

</div>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal>Hi Adrian,<br>
<br>
I would also prefer to keep the protocol in CoAP asynchronous. You can =
always
map an asynchronous protocol to a synchronous one but, as we see in =
HTTP, it
always ends up as a kludge to do it the other way round. The efforts =
which have
been gone to to make HTTP quasi-asynchronous via all the schemes =
mentioned
below and many more besides (all non-interoperable of course) is =
testament to
how important this is for M2M communication.<br>
<br>
So, back to Zach's list, I favor 1a) for the following reasons:<br>
<br>
Foundation level of messages:<o:p></o:p></p>

<ol start=3D1 type=3D1>
 <li class=3DMsoNormal =
style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo1'>request/response can be asynchronous or
     synchronous messages (as there is a transaction ID in =
there)<o:p></o:p></li>
 <li class=3DMsoNormal =
style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo1'>notify is an asynchronous =
message<o:p></o:p></li>
</ol>

<p class=3DMsoNormal>Derived methods:<br>
<br>
I think it makes sense to add a pub/sub model as a useful mechanism for =
M2M.<br>
<br>
So, looking at it the other way round: It will be entirely possible to
translate whatever is currently built on HTTP to CoAP based on the =
above, with
all its restrictions regarding synchronous and client/server =
transactions. What
may be harder is to translate directly is a CoAP-based application to =
HTTP. So
I guess the question is: Do we want to be hamstrung to synchronous
client/server transactions as dictated by HTTP and provide a direct =
mapping to
HTTP, then have to come up with similar kludges for asynchronous =
peer-to-peer
transactions as has been done in numerous ways for HTTP, or do we want =
to
define the protocol cleanly to start with and accept that some sort of
transaction relaying/conversion would have to take place at a mapping =
node?<br>
<br>
Robert<o:p></o:p></p>

<div>

<p class=3Dname>Robert Cragie (Pacific Gas &amp; =
Electric)<o:p></o:p></p>

<p>Gridmerge Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 1924 910888<br>
+1 415 513 0064<br>
<a =
href=3D"http://www.gridmerge.com/">http://www.gridmerge.com</a><o:p></o:p=
></p>

</div>

<p class=3DMsoNormal><br>
On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote: <o:p></o:p></p>

<pre>Hi,<o:p></o:p></pre><pre>it looks to me that CoAP should use an =
explicit sub/notify mechanism since this is the core of the =
machine-to-machine interaction model.<o:p></o:p></pre><pre>HTTP suffers =
of this lack and we have seen a plethora of solutions to give an asynch =
taste to it. Webhooks and websockets are only the lasts of the =
list.<o:p></o:p></pre><pre>As someone has already pointed out on this =
list, it is theoretically possible to describe sub/notify using only =
CRUD methods but it looks a little bit tricky and =
verbose.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Now we have a =
chance to build from scratch a new protocol with and I think using =
explicit sub/notify methods with a clear and well defined semantic is =
the best option. It is easily understanding from every developer and =
will prevent to build other fanny solutions on top of the CoAP. HTTP =
does not have this well defined semantic and (for hundreds of other =
reasons also) it is not used as wide protocol for machine-to-machine =
communication.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>CoAP - =
as binary protocol - and with an explicit asynch model has a chance to =
be a really wide protocol for M2M communication not only for constrained =
environments.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>my 2 =
cents<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>- =
adriano<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>-----Original =
Message-----<o:p></o:p></pre><pre>From: <a
href=3D"mailto:core-bounces@ietf.org">core-bounces@ietf.org</a> [<a
href=3D"mailto:core-bounces@ietf.org">mailto:core-bounces@ietf.org</a>] =
On Behalf Of Paul Duffy (paduffy)<o:p></o:p></pre><pre>Sent: mercoled=EC =
26 maggio 2010 0.47<o:p></o:p></pre><pre>To: Zach =
Shelby<o:p></o:p></pre><pre>Cc: core<o:p></o:p></pre><pre>Subject: Re: =
[core] Subscribe/Notify for =
CoAP<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>On 5/25/2010 6:41 =
PM, Zach Shelby wrote:<o:p></o:p></pre><pre>=A0 <o:p></o:p></pre>

<blockquote =
style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Hi,<o:p></o:p></pre><=
pre><o:p>&nbsp;</o:p></pre><pre>On May 26, 2010, at 12:23 AM, Charles =
Palmer wrote:<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Hi =
folks<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>It occurs to me =
that CoRE should be keeping a close eye on ZigBee SE2.0 work, so that it =
is as easy as possible for ZigBee SE to use CoRE when ready. That =
suggests to me that we should align with their subscribe/notify =
process.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0<o:p></o:p></pre></blockquote>

<pre>I am not sure I understand that. I mean, ZigBee SE2.0 is defining =
an application specific subscribe/notify mechanism for that purpose so =
far for HTTP. This uses standard HTTP methods and some custom payload =
and REST interfaces. CoAP Req/Res is already totally compatible with =
SE2.0 in that respect, so alignment is already OK there. Nothing =
stopping someone from using SE2.0 over =
CoAP.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Specifying a =
native susbcription/notify into CoAP is another matter. We can't adopt a =
solution specific to one application as that won't solve the problems of =
other applications nor general HTTP mapping at all (probably would make =
it worse). It seems that for the near future there will be a bunch of =
HTTP push mechanisms in use without any clear standard appearing - or am =
I wrong there?<o:p></o:p></pre><pre>=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0<o:p></o:p></pre></blockquote>

<pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;<=
/o:p></pre><pre>If COAP extends HTTP semantics with new subscription =
methods, it will <o:p></o:p></pre><pre>not be possible to easily =
interchange HTTP/COAP, and translation <o:p></o:p></pre><pre>gateways =
will become more complex to =
implement.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</=
o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0 <o:p></o:p></pre>

<blockquote =
style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Zach<o:p></o:p></pre>=
<pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Regards =
- =
Charles<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p=
></pre><pre>-----Original Message-----<o:p></o:p></pre><pre>From: <a
href=3D"mailto:core-bounces@ietf.org">core-bounces@ietf.org</a> [<a
href=3D"mailto:core-bounces@ietf.org">mailto:core-bounces@ietf.org</a>] =
On Behalf Of Paul Duffy<o:p></o:p></pre><pre>Sent: 25 May 2010 =
03:48<o:p></o:p></pre><pre>To: Zach Shelby<o:p></o:p></pre><pre>Cc: =
core<o:p></o:p></pre><pre>Subject: Re: [core] Subscribe/Notify for =
CoAP<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Recommend =
something like #2, primarily to avoid introducing non =
HTTP<o:p></o:p></pre><pre>method semantics, simplifying HTTP/COAP =
translation.gateways, =
etc.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></=
pre><pre>On 5/24/2010 11:49 AM, Zach Shelby =
wrote:<o:p></o:p></pre><pre>=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>(thread =
renamed)<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>We have two =
different paths with regard to a subscribe/notify mechanism for =
CoAP:<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>1. Use specific =
Subscription and Notify mechanisms for CoAP as HTTP really does not =
include this concept.<o:p></o:p></pre><pre>1a) Notify as a message and =
SUBSCRIBE as a method. This is currently used in =
coap-01.<o:p></o:p></pre><pre>1b) NOTIFY and SUBSCRIBE as methods. This =
was used in coap-00, but we had a good list discussion about this =
leading to a. In practice it doesn't make a big difference if =
notification is a message or =
method.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>2. Use an HTTP =
specific framework such as Webhooks, the ZigBee SE2.0 proposal or =
GENA.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>So far we have =
focused on 1 in the WG, and every now and again 2 comes up. At least I =
am not convinced that we need to suffer the drawbacks of HTTP here. =
Anyways 2 does not help our mapping to HTTP in reality very much as =
there is no standard way of doing this over HTTP. Thus a CoAP-HTTP proxy =
may end up anyways translating between multiple HTTP frameworks =
depending on the application. So instead of doing a CoAP =
Notify/Subscribe to Webhooks mapping, you will could end up having to do =
a CoAP Webhooks to HTTP GENA =
mapping.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=
=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pre></blockquo=
te>

<pre><o:p>&nbsp;</o:p></pre><pre>I don't understand this last para.=A0 =
If CoAP sticks to the semantics of<o:p></o:p></pre><pre>the current HTTP =
methods, would this not offer a fairly =
straightforward<o:p></o:p></pre><pre>translation to/from =
HTTP?<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p><=
/pre><pre>=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>=A0From =
what I have heard so far 1 still seems like a wise choice, although I =
need to look at Webhooks more deeply. In reality many applications =
specify their own way of doing a push interface using REST methods and =
specific payloads (ZigBee SE2.0 is such an example). That is just fine, =
and might be used instead of a specific CoAP notify/subscribe in that =
case. So 1 doesn't prevent the application using its own mechanism, it =
just provides a native way for doing =
push.<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pre></bl=
ockquote>

<pre>What do people =
think?<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Zach<o:p></o:p></=
pre><pre><o:p>&nbsp;</o:p></pre><pre>On May 17, 2010, at 6:44 PM, <a
href=3D"mailto:matthieu.vial@fr.non.schneider-electric.com">matthieu.vial=
@fr.non.schneider-electric.com</a> =
wrote:<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p>=
</pre><pre>=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pre>

<blockquote =
style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Hi,<o:p></o:p></pre><=
pre><o:p>&nbsp;</o:p></pre><pre>My comments about the subscribe/notify =
mechanism of Zigbee =
IP.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Pros:<o:p></o:p></pr=
e><pre>- Derived from the webhooks concept<o:p></o:p></pre><pre>- If =
used by CORE it will be easier to map to HTTP because it uses only CRUD =
verbs.<o:p></o:p></pre><pre>- The subscription message is extendable and =
could support advanced options (delays, increment, =
...)<o:p></o:p></pre><pre>- Only one listening port whatever the =
transport binding =
is.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Cons:<o:p></o:p></pr=
e><pre>- No interoperability without well known URIs and a well defined =
subscription message format (Not sure CoAP draft is the right place to =
specify this).<o:p></o:p></pre><pre>- XML/EXI is too complex to be the =
required format for the default subscription/notification =
mechanism.<o:p></o:p></pre><pre>- The notification should not require a =
subsequent GET to retrieve the content.<o:p></o:p></pre><pre>- =
Subresource subscription is =
redundant.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Hope this =
could =
help,<o:p></o:p></pre><pre>Matthieu<o:p></o:p></pre><pre><o:p>&nbsp;</o:p=
></pre><pre><o:p>&nbsp;</o:p></pre><pre>&lt;graycol.gif&gt;&quot;Charles =
Palmer&quot;<a
href=3D"mailto:charles.palmer@onzo.com">&lt;charles.palmer@onzo.com&gt;</=
a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pr=
e><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>&quot;Char=
les Palmer&quot;<a
href=3D"mailto:charles.palmer@onzo.com">&lt;charles.palmer@onzo.com&gt;</=
a><o:p></o:p></pre><pre>Envoy=E9 par : <a
href=3D"mailto:core-bounces@ietf.org">core-bounces@ietf.org</a><o:p></o:p=
></pre><pre>15/05/2010 =
14:06<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>&lt;ecblank.gif&gt=
;<o:p></o:p></pre><pre>A<o:p></o:p></pre><pre>&lt;ecblank.gif&gt;<o:p></o=
:p></pre><pre>&quot;core&quot;<a
href=3D"mailto:core@ietf.org">&lt;core@ietf.org&gt;</a><o:p></o:p></pre><=
pre>&lt;ecblank.gif&gt;<o:p></o:p></pre><pre>cc<o:p></o:p></pre><pre>&lt;=
ecblank.gif&gt;<o:p></o:p></pre><pre>&lt;ecblank.gif&gt;<o:p></o:p></pre>=
<pre>Objet<o:p></o:p></pre><pre>&lt;ecblank.gif&gt;<o:p></o:p></pre><pre>=
Re: [core] Selecting a WG document for =
CoAP<o:p></o:p></pre><pre>&lt;ecblank.gif&gt; =
&lt;ecblank.gif&gt;<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Dear=
 all<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Those interested =
in the subscribe/notify discussion might like to =
look<o:p></o:p></pre><pre>at the draft Smart Energy Profile 2.0 =
Application Protocol<o:p></o:p></pre><pre>Specification. It is available =
here:<o:p></o:p></pre><pre><a
href=3D"http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20Pu=
blicApp">http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20P=
ublicApp</a><o:p></o:p></pre><pre>licationProfile.aspx<o:p></o:p></pre><p=
re><o:p>&nbsp;</o:p></pre><pre>It manages subscribe/notify by using =
POST. This seems to remove the need<o:p></o:p></pre><pre>for SUBSCRIBE =
and =
notify.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>&quot;Imagine a =
host A, which exposes a resource at http{s}://A/resource =
and<o:p></o:p></pre><pre>a second host B, which wishes to learn of =
changes to this resource. To<o:p></o:p></pre><pre>facilitate a =
subscription/ notification mechanism, A would expose =
a<o:p></o:p></pre><pre>resource http{s}://A/sub and B would expose a =
resource http{s}://B/ntfy.<o:p></o:p></pre><pre>To subscribe to =
notifications regarding http{s}://A/resource, B =
would<o:p></o:p></pre><pre>send a POST to the address http{s}://A/sub/B =
containing the URI of the<o:p></o:p></pre><pre>resource of interest =
(http{s}://A/resource) and the URI of =
B's<o:p></o:p></pre><pre>notification resource (http{s}://B/ntfy). =
Following this subscription<o:p></o:p></pre><pre>step, should A wish to =
notify B of a change to the resource addressed =
at<o:p></o:p></pre><pre>http{s}://A/resource, A would send a POST to the =
address<o:p></o:p></pre><pre>http{s}://B/ntfy containing the URI of the =
resource changed<o:p></o:p></pre><pre>(http{s}://A/resource) and the URI =
of A's subscription resource<o:p></o:p></pre><pre>(http{s}://A/sub/B), =
should A wish to change its subscription. The =
host<o:p></o:p></pre><pre>B can then query the resource (or not) at its =
leisure.&quot;<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Sleepy =
nodes are not allowed to subscribe, and must =
poll.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Regards - Charles =
Palmer<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>-----Original =
Message-----<o:p></o:p></pre><pre>From: <a
href=3D"mailto:core-bounces@ietf.org">core-bounces@ietf.org</a> [<a
href=3D"mailto:core-bounces@ietf.org">mailto:core-bounces@ietf.org</a>] =
On Behalf Of<o:p></o:p></pre><pre>Angelo P. =
Castellani<o:p></o:p></pre><pre>Sent: 14 May 2010 =
13:14<o:p></o:p></pre><pre>To: Zach Shelby<o:p></o:p></pre><pre>Cc: =
core<o:p></o:p></pre><pre>Subject: Re: [core] Selecting a WG document =
for =
CoAP<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Zach,<o:p></o:p></p=
re><pre><o:p>&nbsp;</o:p></pre><pre>thanks for the comments, but please =
refer to my most recent e-mail for<o:p></o:p></pre><pre>a more specific =
list of technical issues I'm pointing =
to.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>I want to do only a =
little integration to what I've written =
there.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>In my very =
personal opinion, to maximize adherence with the REST =
model<o:p></o:p></pre><pre>and minimize implementation effort SUBSCRIBE =
and NOTIFY should be<o:p></o:p></pre><pre>mapped to methods (as =
discussed many times =
together...).<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Uniform =
interface principle (Fielding PhD dissertation Section =
5.1.5,<o:p></o:p></pre><pre>&quot;The central feature that distinguishes =
the REST architectural style<o:p></o:p></pre><pre>[...]&quot;) states =
that to simplify the software architecture, =
resource<o:p></o:p></pre><pre>interfaces/interfaces should be as general =
as possible.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>I agree =
with this principle in this specific case, mainly =
because<o:p></o:p></pre><pre>handling a special message type for notify =
leads node software design<o:p></o:p></pre><pre>to a more complex =
architecture.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>The =
reason is that this new message type requires special handling =
and<o:p></o:p></pre><pre>introduces a complexity in the software =
modularization.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Best,<o:=
p></o:p></pre><pre>Angelo<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pr=
e>On Fri, May 14, 2010 at 13:06, Zach Shelby<a
href=3D"mailto:zach@sensinode.com">&lt;zach@sensinode.com&gt;</a>=A0=A0 =
wrote:<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=
=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Hi =
Angelo,<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>On May 13, =
2010, at 14:24 , Angelo P. Castellani =
wrote:<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p>=
</pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pr=
e>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Dear C. =
Bormann, all,<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>before =
deciding for the final direction, I've the =
following<o:p></o:p></pre><pre>observations about =
draft-shelby-core-coap-01<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pr=
e>While I mostly share Zach's view of the protocol approach, =
and<o:p></o:p></pre><pre>appreciate many aspects of the proposal, there =
are in my =
opinion<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:=
p></pre></blockquote>

</blockquote>

<pre>still<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=
=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>some =
open issues that need to be at least discussed before =
the<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:=
p></pre></blockquote>

</blockquote>

<pre>current<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=
=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>document =
can be =
selected.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:=
p></pre></blockquote>

<pre>Of course there are plenty of open issues. Remember that working =
group<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pr=
e></blockquote>

<pre>documents still undertake as much change and improvement as the =
WG<o:p></o:p></pre><pre>wants, so by no means is coap-01 set in stone. I =
would expect at least<o:p></o:p></pre><pre>5-10 more revisions still =
along the way.=A0 Already several of your =
ideas<o:p></o:p></pre><pre>have been integrated into coap-01, and =
several more are under<o:p></o:p></pre><pre>consideration, so it is =
coming along. Patience =
;-)<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=
=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pre>

<blockquote =
style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pr=
e>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>In =
particular, I would like to highlight the =
following:<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>a) As it is =
now, it is not possible to have a =
straightforward<o:p></o:p></pre><pre>translation of HTTP -&gt;=A0=A0 =
CoAP and viceversa: see<o:p></o:p></pre><pre><a
href=3D"http://www.ietf.org/mail-archive/web/core/current/msg00133.html">=
http://www.ietf.org/mail-archive/web/core/current/msg00133.html</a> =
(this<o:p></o:p></pre><pre>impacts the scalability of the web service =
model =
too)<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:=
p></pre></blockquote>

<pre>In coap-01 the Method names are now identical to HTTP methods. =
The<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pr=
e></blockquote>

<pre>Req/Res interaction is a direct translation. The URI hierarchy =
is<o:p></o:p></pre><pre>compatible, and the URI binary code format we =
are still working on<o:p></o:p></pre><pre>obviously. The only thing that =
takes some state to translate is<o:p></o:p></pre><pre>Subscribe/Notify. =
But note, Subscribe/Notify takes some state no =
matter<o:p></o:p></pre><pre>how you do it, even with HTTP-HTTP there is =
no clean and easy way to<o:p></o:p></pre><pre>handle =
subscriptions.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=
=A0=A0=A0=A0 =
=A0<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pre>

<blockquote =
style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pr=
e>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>b) =
Moreover, CoAP's implementation is not as simple as it should =
be.<o:p></o:p></pre><pre>I've investigated the implementation and some =
design choices (as<o:p></o:p></pre><pre>Options) are leading to very =
high program complexity (ROM) on a<o:p></o:p></pre><pre>MSP430-based =
device.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:=
p></pre></blockquote>

<pre>This we can definitely improve, and already made several =
optimizations<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pr=
e></blockquote>

<pre>from -00 to -01. Here I need some very concrete proposals though. =
Also<o:p></o:p></pre><pre>remember that many things are optional, for =
example subscribe/notify is<o:p></o:p></pre><pre>not required if you =
don't need =
it.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=
=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pre>

<blockquote =
style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pr=
e>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>c) =
Finally when comparing HTTP message size with CoAP message =
size,<o:p></o:p></pre><pre>the resulting compression isn't as good as =
you may =
expect.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Example:<o:p></o=
:p></pre><pre>HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 =
B<o:p></o:p></pre><pre>CoAP: 24 B with options parsing procedure =
requiring an added<o:p></o:p></pre><pre>implementation =
complexity<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:=
p></pre></blockquote>

<pre>Right, that is not how it will work in practice. Working with a =
real<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pr=
e></blockquote>

<pre>HTTP server that HTTP header will be more complex, and on the CoAP =
side<o:p></o:p></pre><pre>you would chose shorter URLs. The biggest =
improvement possible here is<o:p></o:p></pre><pre>from using binary =
coded URLs of course. We need to look at a wider =
range<o:p></o:p></pre><pre>of interactions and real HTTP headers as well =
to check that we are<o:p></o:p></pre><pre>efficient =
enough.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=
=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pre>

<blockquote =
style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pr=
e>

<blockquote =
style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Addressing all these =
points potentially leads to major =
technical<o:p></o:p></pre><pre>modifications (especially point a) on the =
current draft, hence it is<o:p></o:p></pre><pre>appropriate in my =
opinion to discuss these points before making =
the<o:p></o:p></pre><pre>final =
decision.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:=
p></pre></blockquote>

<pre>I am not sure what else you have in mind for a). If we just =
forget<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pr=
e></blockquote>

<pre>about Subscribe/Notify then you are good to go. But then you are =
also<o:p></o:p></pre><pre>not fulfilling the charter or the industry =
needs in that =
respect.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=
=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pre>

<blockquote =
style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Thanks,<o:p></o:p></p=
re><pre>Zach<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;=
</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pr=
e>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Best =
regards,<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Angelo P. =
Castellani<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</=
o:p></pre><pre>On Mon, May 10, 2010 at 18:51, Carsten Bormann<a
href=3D"mailto:cabo@tzi.org">&lt;cabo@tzi.org&gt;</a>=A0=A0 =
wrote:<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:=
p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>The CORE =
WG has a milestone to select a WG document for CoAP =
in<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:=
p></o:p></pre></blockquote>

</blockquote>

</blockquote>

<pre>April:<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=
=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre><a
href=3D"http://datatracker.ietf.org/wg/core/charter/">http://datatracker.=
ietf.org/wg/core/charter/</a><o:p></o:p></pre><pre>...<o:p></o:p></pre><p=
re>Apr 2010=A0=A0=A0=A0=A0=A0=A0 Select WG document for basis of the =
CoAP protocol<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Of the =
various documents that have been =
contributed,<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:=
p></o:p></pre></blockquote>

</blockquote>

</blockquote>

<pre>draft-shelby-core-coap has significant discussion, as well as =
the<o:p></o:p></pre><pre>largest number of updates (including a previous =
version that was still<o:p></o:p></pre><pre>called =
-6lowapp-coap).<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=
=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Today, =
another updated version of that draft was announced.=A0 =
See<o:p></o:p></pre><pre><a
href=3D"http://www.ietf.org/mail-archive/web/core/current/msg00138.html">=
http://www.ietf.org/mail-archive/web/core/current/msg00138.html</a><o:p><=
/o:p></pre><pre>for the announcement and<o:p></o:p></pre><pre><a
href=3D"http://tools.ietf.org/html/draft-shelby-core-coap-01">http://tool=
s.ietf.org/html/draft-shelby-core-coap-01</a><o:p></o:p></pre><pre>for =
the draft =
itself.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>However, as the =
authors say, there are still significant =
TODOs.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Are we in a =
state yet where we can say whether this is the =
right<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:=
p></o:p></pre></blockquote>

</blockquote>

</blockquote>

<pre>direction for the WG to =
take?<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=
=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>If yes, =
is it the right direction?=A0 Should we adopt it as a =
WG<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:=
p></o:p></pre></blockquote>

</blockquote>

</blockquote>

<pre>document?<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=
=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>If you =
don't think we can say yet, is there a set of =
technical<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:=
p></o:p></pre></blockquote>

</blockquote>

</blockquote>

<pre>decisions you would like the authors to take with =
priority?<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=
=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Note =
that once a document has become a WG document, the authors =
act<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:=
p></o:p></pre></blockquote>

</blockquote>

</blockquote>

<pre>as editors for the working group, making (and usually fleshing out =
the<o:p></o:p></pre><pre>details of) any change that the WG decides it =
needs.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=
=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>If you =
think we can still improve the draft, this is not an =
obstacle<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:=
p></o:p></pre></blockquote>

</blockquote>

</blockquote>

<pre>to making it a WG =
document.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=
=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>But of =
course we shouldn't do that if we intend to reverse =
its<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:=
p></o:p></pre></blockquote>

</blockquote>

</blockquote>

<pre>fundamental technical =
direction.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=
=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>In order =
to stay roughly in sync with our milestones, we =
should<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:=
p></o:p></pre></blockquote>

</blockquote>

</blockquote>

<pre>reach at a decision on how to go forward this =
week.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=
=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Gruesse, =
Carsten<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>________________=
_______________________________<o:p></o:p></pre><pre>core mailing =
list<o:p></o:p></pre><pre><a
href=3D"mailto:core@ietf.org">core@ietf.org</a><o:p></o:p></pre><pre><a
href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pr=
e><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:=
p></o:p></pre></blockquote>

<pre>_______________________________________________<o:p></o:p></pre><pre=
>core mailing list<o:p></o:p></pre><pre><a
href=3D"mailto:core@ietf.org">core@ietf.org</a><o:p></o:p></pre><pre><a
href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pr=
e>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:=
p></pre></blockquote>

<pre>--<o:p></o:p></pre><pre>Zach Shelby, Chief Nerd, Sensinode =
Ltd.<o:p></o:p></pre><pre><a
href=3D"http://zachshelby.org">http://zachshelby.org</a>=A0 - My blog =
&quot;On the Internet of Things<a
href=3D"http://6lowpan.net-Mybook">&quot;<o:p></o:p></a></pre><pre><span
class=3DMsoHyperlink><a =
href=3D"http://6lowpan.net-Mybook">http://6lowpan.net - My book =
&quot;</a></span>6LoWPAN: The Wireless Embedded =
Internet&quot;<o:p></o:p></pre><pre>Mobile: +358 40 =
7796297<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p=
></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pr=
e></blockquote>

<pre>_______________________________________________<o:p></o:p></pre><pre=
>core mailing list<o:p></o:p></pre><pre><a
href=3D"mailto:core@ietf.org">core@ietf.org</a><o:p></o:p></pre><pre><a
href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pr=
e>--------------------------------<o:p></o:p></pre><pre>Onzo is a =
limited company number 06097997 registered in England&amp;=A0=A0 Wales. =
The<o:p></o:p></pre><pre>registered office is 6 Great Newport Street, =
London, WC2H 7JB, United =
Kingdom.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>This email =
message may contain confidential and/or privileged information, =
and<o:p></o:p></pre><pre>is intended solely for the addressee(s). If you =
have received this email in<o:p></o:p></pre><pre>error, please notify =
Onzo immediately. Unauthorised copying, disclosure =
or<o:p></o:p></pre><pre>distribution of the material in this email is =
forbidden.<o:p></o:p></pre><pre>--------------------------------<o:p></o:=
p></pre><pre><o:p>&nbsp;</o:p></pre><pre>________________________________=
_______________<o:p></o:p></pre><pre>core mailing =
list<o:p></o:p></pre><pre><a
href=3D"mailto:core@ietf.org">core@ietf.org</a><o:p></o:p></pre><pre><a
href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pr=
e>______________________________________________________________________<=
o:p></o:p></pre><pre>This email has been scanned by the MessageLabs =
Email Security =
System.<o:p></o:p></pre><pre>____________________________________________=
__________________________<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><p=
re>_______________________________________________<o:p></o:p></pre><pre>c=
ore mailing list<o:p></o:p></pre><pre><a
href=3D"mailto:core@ietf.org">core@ietf.org</a><o:p></o:p></pre><pre><a
href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pr=
e>=A0=A0=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pre></bl=
ockquote>

<pre>=A0=A0=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0=A0=A0<o:p></o:p></pre></blockquo=
te>

<pre>_______________________________________________<o:p></o:p></pre><pre=
>core mailing list<o:p></o:p></pre><pre><a
href=3D"mailto:core@ietf.org">core@ietf.org</a><o:p></o:p></pre><pre><a
href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pr=
e>--------------------------------<o:p></o:p></pre><pre>Onzo is a =
limited company number 06097997 registered in England&amp;=A0 Wales. =
The<o:p></o:p></pre><pre>registered office is 6 Great Newport Street, =
London, WC2H 7JB, United =
Kingdom.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>This email =
message may contain confidential and/or privileged information, =
and<o:p></o:p></pre><pre>is intended solely for the addressee(s). If you =
have received this email in<o:p></o:p></pre><pre>error, please notify =
Onzo immediately. Unauthorised copying, disclosure =
or<o:p></o:p></pre><pre>distribution of the material in this email is =
forbidden.<o:p></o:p></pre><pre>--------------------------------<o:p></o:=
p></pre><pre><o:p>&nbsp;</o:p></pre><pre>=A0=A0=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0=A0=A0<o:p></o:p></pre></blockquote>

<pre>=A0=A0 =
<o:p></o:p></pre><pre>=A0=A0=A0=A0<o:p></o:p></pre></blockquote>

<pre><o:p>&nbsp;</o:p></pre><pre>________________________________________=
_______<o:p></o:p></pre><pre>core mailing list<o:p></o:p></pre><pre><a
href=3D"mailto:core@ietf.org">core@ietf.org</a><o:p></o:p></pre><pre><a
href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</a><o:p></o:p></pre><pre>__________________________=
_____________________<o:p></o:p></pre><pre>core mailing =
list<o:p></o:p></pre><pre><a
href=3D"mailto:core@ietf.org">core@ietf.org</a><o:p></o:p></pre><pre><a
href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</a><o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pr=
e>=A0 <o:p></o:p></pre></div>

</body>

</html>

------_=_NextPart_001_01CAFDC7.9FD53178--

From zach@sensinode.com  Fri May 28 02:24:54 2010
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 4386D28C129 for <core@core3.amsl.com>; Fri, 28 May 2010 02:24:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.301
X-Spam-Level: *
X-Spam-Status: No, score=1.301 tagged_above=-999 required=5 tests=[BAYES_50=0.001, MANGLED_TOOL=2.3, 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 o7dyqRVQHLg8 for <core@core3.amsl.com>; Fri, 28 May 2010 02:24:50 -0700 (PDT)
Received: from auth-smtp.nebula.fi (auth-smtp.nebula.fi [217.30.180.105]) by core3.amsl.com (Postfix) with ESMTP id 434F628C0E6 for <core@ietf.org>; Fri, 28 May 2010 02:19:43 -0700 (PDT)
Received: from [62.145.172.52] ([62.145.172.52]) (authenticated bits=0) by auth-smtp.nebula.fi (8.13.4/8.13.4) with ESMTP id o4S9HrRb010436 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Fri, 28 May 2010 12:17:53 +0300
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: text/plain; charset=windows-1252
From: Zach Shelby <zach@sensinode.com>
In-Reply-To: <0D212BD466921646B58854FB79092CEC021F4C22@XMB-AMS-106.cisco.com>
Date: Fri, 28 May 2010 11:17:54 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <1E96A4CF-F98A-4934-BBB6-1F201FCF85F2@sensinode.com>
References: <OF97EC852F.8A85DCEB-ONC1257726.0051887E-C1257726.005677A7@schneider-electric.com><3602E0C6-1E2E-4164-A208-A874128325AF@sensinode.com><4BFB3A66.5080700@cisco.com><E4DBD8AB11D2E54F89B23D7CD1065D8C0105621D@onzosbs2k3.ONZO.local><324781C3-5548-474D-8995-EC327ED08209@sensinode.com>	<4BFC5368.2010602@cisco.com> <0D212BD466921646B58854FB79092CEC0216121C@XMB-AMS-106.cisco.com> <4BFD63D3.3040207@gridmerge.com> <0D212BD466921646B58854FB79092CEC021F4C22@XMB-AMS-106.cisco.com>
To: Adriano Pezzuto (apezzuto) <apezzuto@cisco.com>
X-Mailer: Apple Mail (2.1078)
Cc: core <core@ietf.org>
Subject: Re: [core] Subscribe/Notify for CoAP
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, 28 May 2010 09:24:54 -0000

Hi,

On May 27, 2010, at 8:08 PM, Adriano Pezzuto (apezzuto) wrote:

> Hi Robert,
> =20
> in my personal opinion, the option 1a) brings some sort of ambiguity =
to CoAP specs.
> =20
> My be my understatement of new CoAP specs is not so deep,  but now we =
have 5 methods and 3 message types: request, response and notify. Which =
methods are allowed with which messages types?
> I suppose you have to use PUT/POST method with notify message for =
asynch data notification. How to make a subscribe? I suppose you would =
use a SUBSCRIBE method with request/response message or SUBSCRIBE with =
notify message? Also what about POST/DELETE methods in a notify message? =
They not make any sense..

Just for clarification, in coap-01 the Notify message has no method at =
all. Correct, subscription is done with a Request using the SUBSCRIBE =
method. Personally I have no problem with doing notify also as a method =
(as in coap-00) if that is what we want as a working group. Robert had a =
nice point that Notify does belong as a message type but functionally it =
works well also as a method.

Zach

> I think the choice is between: option 1) -> only CRUD methods and =
option 1b) -> CRUD + SUB/NOTIFY methods, keeping in mind cost/benefits =
of both solutions.
> =20
> Adriano
> =20
> From: Robert Cragie [mailto:robert.cragie@gridmerge.com]=20
> Sent: mercoled=EC 26 maggio 2010 20.09
> To: Adriano Pezzuto (apezzuto)
> Cc: Paul Duffy (paduffy); Zach Shelby; core
> Subject: Re: [core] Subscribe/Notify for CoAP
> =20
> Hi Adrian,
>=20
> I would also prefer to keep the protocol in CoAP asynchronous. You can =
always map an asynchronous protocol to a synchronous one but, as we see =
in HTTP, it always ends up as a kludge to do it the other way round. The =
efforts which have been gone to to make HTTP quasi-asynchronous via all =
the schemes mentioned below and many more besides (all non-interoperable =
of course) is testament to how important this is for M2M communication.
>=20
> So, back to Zach's list, I favor 1a) for the following reasons:
>=20
> Foundation level of messages:
> 	=95 request/response can be asynchronous or synchronous messages =
(as there is a transaction ID in there)
> 	=95 notify is an asynchronous message
> Derived methods:
>=20
> I think it makes sense to add a pub/sub model as a useful mechanism =
for M2M.
>=20
> So, looking at it the other way round: It will be entirely possible to =
translate whatever is currently built on HTTP to CoAP based on the =
above, with all its restrictions regarding synchronous and client/server =
transactions. What may be harder is to translate directly is a =
CoAP-based application to HTTP. So I guess the question is: Do we want =
to be hamstrung to synchronous client/server transactions as dictated by =
HTTP and provide a direct mapping to HTTP, then have to come up with =
similar kludges for asynchronous peer-to-peer transactions as has been =
done in numerous ways for HTTP, or do we want to define the protocol =
cleanly to start with and accept that some sort of transaction =
relaying/conversion would have to take place at a mapping node?
>=20
> Robert
> Robert Cragie (Pacific Gas & Electric)
>=20
> Gridmerge Ltd.
> 89 Greenfield Crescent,
> Wakefield, WF4 4WA, UK
> +44 1924 910888
> +1 415 513 0064
> http://www.gridmerge.com
>=20
>=20
> On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote:
> Hi,
> it looks to me that CoAP should use an explicit sub/notify mechanism =
since this is the core of the machine-to-machine interaction model.
> HTTP suffers of this lack and we have seen a plethora of solutions to =
give an asynch taste to it. Webhooks and websockets are only the lasts =
of the list.
> As someone has already pointed out on this list, it is theoretically =
possible to describe sub/notify using only CRUD methods but it looks a =
little bit tricky and verbose.
> =20
> Now we have a chance to build from scratch a new protocol with and I =
think using explicit sub/notify methods with a clear and well defined =
semantic is the best option. It is easily understanding from every =
developer and will prevent to build other fanny solutions on top of the =
CoAP. HTTP does not have this well defined semantic and (for hundreds of =
other reasons also) it is not used as wide protocol for =
machine-to-machine communication.
> =20
> CoAP - as binary protocol - and with an explicit asynch model has a =
chance to be a really wide protocol for M2M communication not only for =
constrained environments.
> =20
> my 2 cents
> =20
> - adriano
> =20
> -----Original Message-----
> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of Paul Duffy (paduffy)
> Sent: mercoled=EC 26 maggio 2010 0.47
> To: Zach Shelby
> Cc: core
> Subject: Re: [core] Subscribe/Notify for CoAP
> =20
> On 5/25/2010 6:41 PM, Zach Shelby wrote:
>  =20
> Hi,
> =20
> On May 26, 2010, at 12:23 AM, Charles Palmer wrote:
> =20
>   =20
>    =20
> Hi folks
> =20
> It occurs to me that CoRE should be keeping a close eye on ZigBee =
SE2.0 work, so that it is as easy as possible for ZigBee SE to use CoRE =
when ready. That suggests to me that we should align with their =
subscribe/notify process.
> =20
>     =20
>      =20
> I am not sure I understand that. I mean, ZigBee SE2.0 is defining an =
application specific subscribe/notify mechanism for that purpose so far =
for HTTP. This uses standard HTTP methods and some custom payload and =
REST interfaces. CoAP Req/Res is already totally compatible with SE2.0 =
in that respect, so alignment is already OK there. Nothing stopping =
someone from using SE2.0 over CoAP.
> =20
> Specifying a native susbcription/notify into CoAP is another matter. =
We can't adopt a solution specific to one application as that won't =
solve the problems of other applications nor general HTTP mapping at all =
(probably would make it worse). It seems that for the near future there =
will be a bunch of HTTP push mechanisms in use without any clear =
standard appearing - or am I wrong there?
>   =20
>    =20
> =20
> =20
> =20
> If COAP extends HTTP semantics with new subscription methods, it will=20=

> not be possible to easily interchange HTTP/COAP, and translation=20
> gateways will become more complex to implement.
> =20
> =20
> =20
>  =20
> Zach
> =20
>   =20
>    =20
> Regards - Charles
> =20
> =20
> -----Original Message-----
> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of Paul Duffy
> Sent: 25 May 2010 03:48
> To: Zach Shelby
> Cc: core
> Subject: Re: [core] Subscribe/Notify for CoAP
> =20
> Recommend something like #2, primarily to avoid introducing non HTTP
> method semantics, simplifying HTTP/COAP translation.gateways, etc.
> =20
> =20
> On 5/24/2010 11:49 AM, Zach Shelby wrote:
>     =20
>      =20
> (thread renamed)
> =20
> We have two different paths with regard to a subscribe/notify =
mechanism for CoAP:
> =20
> 1. Use specific Subscription and Notify mechanisms for CoAP as HTTP =
really does not include this concept.
> 1a) Notify as a message and SUBSCRIBE as a method. This is currently =
used in coap-01.
> 1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but we =
had a good list discussion about this leading to a. In practice it =
doesn't make a big difference if notification is a message or method.
> =20
> 2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0 =
proposal or GENA.
> =20
> So far we have focused on 1 in the WG, and every now and again 2 comes =
up. At least I am not convinced that we need to suffer the drawbacks of =
HTTP here. Anyways 2 does not help our mapping to HTTP in reality very =
much as there is no standard way of doing this over HTTP. Thus a =
CoAP-HTTP proxy may end up anyways translating between multiple HTTP =
frameworks depending on the application. So instead of doing a CoAP =
Notify/Subscribe to Webhooks mapping, you will could end up having to do =
a CoAP Webhooks to HTTP GENA mapping.
> =20
>       =20
>        =20
> =20
> I don't understand this last para.  If CoAP sticks to the semantics of
> the current HTTP methods, would this not offer a fairly =
straightforward
> translation to/from HTTP?
> =20
> =20
>     =20
>      =20
>  =46rom what I have heard so far 1 still seems like a wise choice, =
although I need to look at Webhooks more deeply. In reality many =
applications specify their own way of doing a push interface using REST =
methods and specific payloads (ZigBee SE2.0 is such an example). That is =
just fine, and might be used instead of a specific CoAP notify/subscribe =
in that case. So 1 doesn't prevent the application using its own =
mechanism, it just provides a native way for doing push.
>         =20
>          =20
> What do people think?
> =20
> Zach
> =20
> On May 17, 2010, at 6:44 PM, =
matthieu.vial@fr.non.schneider-electric.com wrote:
> =20
> =20
>       =20
>        =20
> Hi,
> =20
> My comments about the subscribe/notify mechanism of Zigbee IP.
> =20
> Pros:
> - Derived from the webhooks concept
> - If used by CORE it will be easier to map to HTTP because it uses =
only CRUD verbs.
> - The subscription message is extendable and could support advanced =
options (delays, increment, ...)
> - Only one listening port whatever the transport binding is.
> =20
> Cons:
> - No interoperability without well known URIs and a well defined =
subscription message format (Not sure CoAP draft is the right place to =
specify this).
> - XML/EXI is too complex to be the required format for the default =
subscription/notification mechanism.
> - The notification should not require a subsequent GET to retrieve the =
content.
> - Subresource subscription is redundant.
> =20
> Hope this could help,
> Matthieu
> =20
> =20
> <graycol.gif>"Charles Palmer"<charles.palmer@onzo.com>
> =20
> =20
> =20
> =20
> "Charles Palmer"<charles.palmer@onzo.com>
> Envoy=E9 par : core-bounces@ietf.org
> 15/05/2010 14:06
> =20
> <ecblank.gif>
> A
> <ecblank.gif>
> "core"<core@ietf.org>
> <ecblank.gif>
> cc
> <ecblank.gif>
> <ecblank.gif>
> Objet
> <ecblank.gif>
> Re: [core] Selecting a WG document for CoAP
> <ecblank.gif> <ecblank.gif>
> =20
> Dear all
> =20
> Those interested in the subscribe/notify discussion might like to look
> at the draft Smart Energy Profile 2.0 Application Protocol
> Specification. It is available here:
> =
http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicApp
> licationProfile.aspx
> =20
> It manages subscribe/notify by using POST. This seems to remove the =
need
> for SUBSCRIBE and notify.
> =20
> "Imagine a host A, which exposes a resource at http{s}://A/resource =
and
> a second host B, which wishes to learn of changes to this resource. To
> facilitate a subscription/ notification mechanism, A would expose a
> resource http{s}://A/sub and B would expose a resource =
http{s}://B/ntfy.
> To subscribe to notifications regarding http{s}://A/resource, B would
> send a POST to the address http{s}://A/sub/B containing the URI of the
> resource of interest (http{s}://A/resource) and the URI of B's
> notification resource (http{s}://B/ntfy). Following this subscription
> step, should A wish to notify B of a change to the resource addressed =
at
> http{s}://A/resource, A would send a POST to the address
> http{s}://B/ntfy containing the URI of the resource changed
> (http{s}://A/resource) and the URI of A's subscription resource
> (http{s}://A/sub/B), should A wish to change its subscription. The =
host
> B can then query the resource (or not) at its leisure."
> =20
> Sleepy nodes are not allowed to subscribe, and must poll.
> =20
> Regards - Charles Palmer
> =20
> -----Original Message-----
> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of
> Angelo P. Castellani
> Sent: 14 May 2010 13:14
> To: Zach Shelby
> Cc: core
> Subject: Re: [core] Selecting a WG document for CoAP
> =20
> Zach,
> =20
> thanks for the comments, but please refer to my most recent e-mail for
> a more specific list of technical issues I'm pointing to.
> =20
> I want to do only a little integration to what I've written there.
> =20
> In my very personal opinion, to maximize adherence with the REST model
> and minimize implementation effort SUBSCRIBE and NOTIFY should be
> mapped to methods (as discussed many times together...).
> =20
> Uniform interface principle (Fielding PhD dissertation Section 5.1.5,
> "The central feature that distinguishes the REST architectural style
> [...]") states that to simplify the software architecture, resource
> interfaces/interfaces should be as general as possible.
> =20
> I agree with this principle in this specific case, mainly because
> handling a special message type for notify leads node software design
> to a more complex architecture.
> =20
> The reason is that this new message type requires special handling and
> introduces a complexity in the software modularization.
> =20
> Best,
> Angelo
> =20
> On Fri, May 14, 2010 at 13:06, Zach Shelby<zach@sensinode.com>   =
wrote:
> =20
>         =20
>          =20
> Hi Angelo,
> =20
> On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:
> =20
> =20
>           =20
>            =20
> Dear C. Bormann, all,
> =20
> before deciding for the final direction, I've the following
> observations about draft-shelby-core-coap-01
> =20
> While I mostly share Zach's view of the protocol approach, and
> appreciate many aspects of the proposal, there are in my opinion
> =20
>             =20
>              =20
> still
> =20
>         =20
>          =20
> some open issues that need to be at least discussed before the
> =20
>             =20
>              =20
> current
> =20
>         =20
>          =20
> document can be selected.
> =20
>             =20
>              =20
> Of course there are plenty of open issues. Remember that working group
> =20
>           =20
>            =20
> documents still undertake as much change and improvement as the WG
> wants, so by no means is coap-01 set in stone. I would expect at least
> 5-10 more revisions still along the way.  Already several of your =
ideas
> have been integrated into coap-01, and several more are under
> consideration, so it is coming along. Patience ;-)
> =20
>         =20
>          =20
>           =20
>            =20
> In particular, I would like to highlight the following:
> =20
> a) As it is now, it is not possible to have a straightforward
> translation of HTTP ->   CoAP and viceversa: see
> http://www.ietf.org/mail-archive/web/core/current/msg00133.html (this
> impacts the scalability of the web service model too)
> =20
>             =20
>              =20
> In coap-01 the Method names are now identical to HTTP methods. The
> =20
>           =20
>            =20
> Req/Res interaction is a direct translation. The URI hierarchy is
> compatible, and the URI binary code format we are still working on
> obviously. The only thing that takes some state to translate is
> Subscribe/Notify. But note, Subscribe/Notify takes some state no =
matter
> how you do it, even with HTTP-HTTP there is no clean and easy way to
> handle subscriptions.
> =20
>         =20
>          =20
>           =20
>            =20
> b) Moreover, CoAP's implementation is not as simple as it should be.
> I've investigated the implementation and some design choices (as
> Options) are leading to very high program complexity (ROM) on a
> MSP430-based device.
> =20
>             =20
>              =20
> This we can definitely improve, and already made several optimizations
> =20
>           =20
>            =20
> from -00 to -01. Here I need some very concrete proposals though. Also
> remember that many things are optional, for example subscribe/notify =
is
> not required if you don't need it.
> =20
>         =20
>          =20
>           =20
>            =20
> c) Finally when comparing HTTP message size with CoAP message size,
> the resulting compression isn't as good as you may expect.
> =20
> Example:
> HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
> CoAP: 24 B with options parsing procedure requiring an added
> implementation complexity
> =20
>             =20
>              =20
> Right, that is not how it will work in practice. Working with a real
> =20
>           =20
>            =20
> HTTP server that HTTP header will be more complex, and on the CoAP =
side
> you would chose shorter URLs. The biggest improvement possible here is
> from using binary coded URLs of course. We need to look at a wider =
range
> of interactions and real HTTP headers as well to check that we are
> efficient enough.
> =20
>         =20
>          =20
>           =20
>            =20
> Addressing all these points potentially leads to major technical
> modifications (especially point a) on the current draft, hence it is
> appropriate in my opinion to discuss these points before making the
> final decision.
> =20
>             =20
>              =20
> I am not sure what else you have in mind for a). If we just forget
> =20
>           =20
>            =20
> about Subscribe/Notify then you are good to go. But then you are also
> not fulfilling the charter or the industry needs in that respect.
> =20
>         =20
>          =20
> Thanks,
> Zach
> =20
> =20
>           =20
>            =20
> Best regards,
> =20
> Angelo P. Castellani
> =20
> =20
> On Mon, May 10, 2010 at 18:51, Carsten Bormann<cabo@tzi.org>   wrote:
> =20
>             =20
>              =20
> The CORE WG has a milestone to select a WG document for CoAP in
> =20
>               =20
>                =20
> April:
> =20
>         =20
>          =20
> http://datatracker.ietf.org/wg/core/charter/
> ...
> Apr 2010        Select WG document for basis of the CoAP protocol
> =20
> Of the various documents that have been contributed,
> =20
>               =20
>                =20
> draft-shelby-core-coap has significant discussion, as well as the
> largest number of updates (including a previous version that was still
> called -6lowapp-coap).
> =20
>         =20
>          =20
> Today, another updated version of that draft was announced.  See
> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
> for the announcement and
> http://tools.ietf.org/html/draft-shelby-core-coap-01
> for the draft itself.
> =20
> However, as the authors say, there are still significant TODOs.
> =20
> Are we in a state yet where we can say whether this is the right
> =20
>               =20
>                =20
> direction for the WG to take?
> =20
>         =20
>          =20
> If yes, is it the right direction?  Should we adopt it as a WG
> =20
>               =20
>                =20
> document?
> =20
>         =20
>          =20
> If you don't think we can say yet, is there a set of technical
> =20
>               =20
>                =20
> decisions you would like the authors to take with priority?
> =20
>         =20
>          =20
> Note that once a document has become a WG document, the authors act
> =20
>               =20
>                =20
> as editors for the working group, making (and usually fleshing out the
> details of) any change that the WG decides it needs.
> =20
>         =20
>          =20
> If you think we can still improve the draft, this is not an obstacle
> =20
>               =20
>                =20
> to making it a WG document.
> =20
>         =20
>          =20
> But of course we shouldn't do that if we intend to reverse its
> =20
>               =20
>                =20
> fundamental technical direction.
> =20
>         =20
>          =20
> In order to stay roughly in sync with our milestones, we should
> =20
>               =20
>                =20
> reach at a decision on how to go forward this week.
> =20
>         =20
>          =20
> Gruesse, Carsten
> =20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
> =20
> =20
>               =20
>                =20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
> =20
>             =20
>              =20
> --
> 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
> =20
> =20
> =20
>           =20
>            =20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
> =20
> --------------------------------
> Onzo is a limited company number 06097997 registered in England&   =
Wales. The
> registered office is 6 Great Newport Street, London, WC2H 7JB, United =
Kingdom.
> =20
> This email message may contain confidential and/or privileged =
information, and
> is intended solely for the addressee(s). If you have received this =
email in
> error, please notify Onzo immediately. Unauthorised copying, =
disclosure or
> distribution of the material in this email is forbidden.
> --------------------------------
> =20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
> =20
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> ______________________________________________________________________
> =20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
> =20
>         =20
>          =20
>       =20
>        =20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
> =20
> --------------------------------
> Onzo is a limited company number 06097997 registered in England&  =
Wales. The
> registered office is 6 Great Newport Street, London, WC2H 7JB, United =
Kingdom.
> =20
> This email message may contain confidential and/or privileged =
information, and
> is intended solely for the addressee(s). If you have received this =
email in
> error, please notify Onzo immediately. Unauthorised copying, =
disclosure or
> distribution of the material in this email is forbidden.
> --------------------------------
> =20
>     =20
>      =20
>   =20
>    =20
> =20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
> =20
>  =20

--=20
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


From robert.cragie@gridmerge.com  Fri May 28 02:53:28 2010
Return-Path: <robert.cragie@gridmerge.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 1E1043A68C6 for <core@core3.amsl.com>; Fri, 28 May 2010 02:53:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.302
X-Spam-Level: *
X-Spam-Status: No, score=1.302 tagged_above=-999 required=5 tests=[BAYES_50=0.001, HTML_MESSAGE=0.001, MANGLED_TOOL=2.3, 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 gM3rO3tdrKME for <core@core3.amsl.com>; Fri, 28 May 2010 02:53:24 -0700 (PDT)
Received: from mail78.extendcp.co.uk (mail78.extendcp.co.uk [79.170.40.78]) by core3.amsl.com (Postfix) with ESMTP id 973F63A68D6 for <core@ietf.org>; Fri, 28 May 2010 02:53:22 -0700 (PDT)
Received: from client-82-26-176-40.pete.adsl.virginmedia.com ([82.26.176.40] helo=[192.168.1.70]) by mail78.extendcp.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.71) id 1OHwFX-0007ki-SC; Fri, 28 May 2010 10:53:10 +0100
Message-ID: <4BFF927F.1090208@gridmerge.com>
Date: Fri, 28 May 2010 10:53:03 +0100
From: Robert Cragie <robert.cragie@gridmerge.com>
Organization: Gridmerge Ltd.
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.9) Gecko/20100317 Lightning/1.0b1 Thunderbird/3.0.4
MIME-Version: 1.0
To: "Adriano Pezzuto (apezzuto)" <apezzuto@cisco.com>
References: <OF97EC852F.8A85DCEB-ONC1257726.0051887E-C1257726.005677A7@schneider-electric.com><3602E0C6-1E2E-4164-A208-A874128325AF@sensinode.com><4BFB3A66.5080700@cisco.com><E4DBD8AB11D2E54F89B23D7CD1065D8C0105621D@onzosbs2k3.ONZO.local><324781C3-5548-474D-8995-EC327ED08209@sensinode.com>	<4BFC5368.2010602@cisco.com> <0D212BD466921646B58854FB79092CEC0216121C@XMB-AMS-106.cisco.com> <4BFD63D3.3040207@gridmerge.com> <0D212BD466921646B58854FB79092CEC021F4C22@XMB-AMS-106.cisco.com>
In-Reply-To: <0D212BD466921646B58854FB79092CEC021F4C22@XMB-AMS-106.cisco.com>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="------------ms050308070407020607000203"
Cc: core <core@ietf.org>
Subject: Re: [core] Subscribe/Notify for CoAP
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: robert.cragie@gridmerge.com
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, 28 May 2010 09:53:28 -0000

This is a cryptographically signed message in MIME format.

--------------ms050308070407020607000203
Content-Type: multipart/alternative;
 boundary="------------070107090206070909090407"

This is a multi-part message in MIME format.
--------------070107090206070909090407
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable

I think the point here is that there are two levels we are considering.

At the lowest (foundation) level, there are the transaction messages as=20
described below. This provides a flexible mechanism for the application=20
with regard to synchronicity and threading. This is important for the=20
types of devices CoAP is being aimed at.

Above that, the methods can be used according to the architectural=20
style. So in this case, it is RESTful (COnstrained Restful=20
Environments), which will naturally limit the number of methods and how=20
transactions occur.

The actual architecture using a combination of the methods and messages=20
also depends on what is required at the application layer. Consider a=20
typical client which wants to subscribe to a resource. That client=20
controls the feed of data but needs a component which is capable of=20
handling (possibly buffering) the data it receives through=20
notifications. Is this a separate server? Or would we want to consider=20
it part of an enhanced client model which is able to process feeds of=20
data? These are the sort of models which have led to the myriad of=20
solutions (GENA, Webhooks, long polling, pubsubhubbub, RESTMS etc.)=20
based around HTTP which are all essentially ingenious ways of getting=20
around the limitations imposed by HTTP and how it is processed for=20
anything which deviates from the classic web page access model.

I think the aim of CoAP should be clean from the word go with regard to=20
supporting these more peer-to-peer transactions, where the client can=20
exist on either entity and both entities can feed data to each other;=20
typical in M2M applications.

Robert

Robert Cragie (Pacific Gas & Electric)

Gridmerge Ltd.
89 Greenfield Crescent,
Wakefield, WF4 4WA, UK
+44 1924 910888
+1 415 513 0064
http://www.gridmerge.com <http://www.gridmerge.com/>


On 27/05/2010 7:08 PM, Adriano Pezzuto (apezzuto) wrote:
>
> Hi Robert,
>
> in my personal opinion, the option 1a) brings some sort of ambiguity=20
> to CoAP specs.
>
> My be my understatement of new CoAP specs is not so deep,  but now we=20
> have 5 methods and 3 message types: request, response and notify.=20
> Which methods are allowed with which messages types?
>
> I suppose you have to use PUT/POST method with notify message for=20
> asynch data notification. How to make a subscribe? I suppose you would =

> use a SUBSCRIBE method with request/response message or SUBSCRIBE with =

> notify message? Also what about POST/DELETE methods in a notify=20
> message? They not make any sense..
>
> I think the choice is between: option 1) -> only CRUD methods and=20
> option 1b) -> CRUD + SUB/NOTIFY methods, keeping in mind cost/benefits =

> of both solutions.
>
> Adriano
>
> *From:* Robert Cragie [mailto:robert.cragie@gridmerge.com]
> *Sent:* mercoled=EC 26 maggio 2010 20.09
> *To:* Adriano Pezzuto (apezzuto)
> *Cc:* Paul Duffy (paduffy); Zach Shelby; core
> *Subject:* Re: [core] Subscribe/Notify for CoAP
>
> Hi Adrian,
>
> I would also prefer to keep the protocol in CoAP asynchronous. You can =

> always map an asynchronous protocol to a synchronous one but, as we=20
> see in HTTP, it always ends up as a kludge to do it the other way=20
> round. The efforts which have been gone to to make HTTP=20
> quasi-asynchronous via all the schemes mentioned below and many more=20
> besides (all non-interoperable of course) is testament to how=20
> important this is for M2M communication.
>
> So, back to Zach's list, I favor 1a) for the following reasons:
>
> Foundation level of messages:
>
>    1. request/response can be asynchronous or synchronous messages (as
>       there is a transaction ID in there)
>    2. notify is an asynchronous message
>
> Derived methods:
>
> I think it makes sense to add a pub/sub model as a useful mechanism=20
> for M2M.
>
> So, looking at it the other way round: It will be entirely possible to =

> translate whatever is currently built on HTTP to CoAP based on the=20
> above, with all its restrictions regarding synchronous and=20
> client/server transactions. What may be harder is to translate=20
> directly is a CoAP-based application to HTTP. So I guess the question=20
> is: Do we want to be hamstrung to synchronous client/server=20
> transactions as dictated by HTTP and provide a direct mapping to HTTP, =

> then have to come up with similar kludges for asynchronous=20
> peer-to-peer transactions as has been done in numerous ways for HTTP,=20
> or do we want to define the protocol cleanly to start with and accept=20
> that some sort of transaction relaying/conversion would have to take=20
> place at a mapping node?
>
> Robert
>
> Robert Cragie (Pacific Gas & Electric)
>
> Gridmerge Ltd.
> 89 Greenfield Crescent,
> Wakefield, WF4 4WA, UK
> +44 1924 910888
> +1 415 513 0064
> http://www.gridmerge.com <http://www.gridmerge.com/>
>
>
> On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote:
>
> Hi,
> it looks to me that CoAP should use an explicit sub/notify mechanism si=
nce this is the core of the machine-to-machine interaction model.
> HTTP suffers of this lack and we have seen a plethora of solutions to g=
ive an asynch taste to it. Webhooks and websockets are only the lasts of =
the list.
> As someone has already pointed out on this list, it is theoretically po=
ssible to describe sub/notify using only CRUD methods but it looks a litt=
le bit tricky and verbose.
>  =20
> Now we have a chance to build from scratch a new protocol with and I th=
ink using explicit sub/notify methods with a clear and well defined seman=
tic is the best option. It is easily understanding from every developer a=
nd will prevent to build other fanny solutions on top of the CoAP. HTTP d=
oes not have this well defined semantic and (for hundreds of other reason=
s also) it is not used as wide protocol for machine-to-machine communicat=
ion.
>  =20
> CoAP - as binary protocol - and with an explicit asynch model has a cha=
nce to be a really wide protocol for M2M communication not only for const=
rained environments.
>  =20
> my 2 cents
>  =20
> - adriano
>  =20
> -----Original Message-----
> From:core-bounces@ietf.org  <mailto:core-bounces@ietf.org>  [mailto:cor=
e-bounces@ietf.org] On Behalf Of Paul Duffy (paduffy)
> Sent: mercoled=EC 26 maggio 2010 0.47
> To: Zach Shelby
> Cc: core
> Subject: Re: [core] Subscribe/Notify for CoAP
>  =20
> On 5/25/2010 6:41 PM, Zach Shelby wrote:
>   =20
>
>     Hi,
>
>      =20
>
>     On May 26, 2010, at 12:23 AM, Charles Palmer wrote:
>
>      =20
>
>        =20
>
>         =20
>
>         Hi folks
>
>          =20
>
>         It occurs to me that CoRE should be keeping a close eye on ZigB=
ee SE2.0 work, so that it is as easy as possible for ZigBee SE to use CoR=
E when ready. That suggests to me that we should align with their subscri=
be/notify process.
>
>          =20
>
>              =20
>
>               =20
>
>     I am not sure I understand that. I mean, ZigBee SE2.0 is defining a=
n application specific subscribe/notify mechanism for that purpose so far=
 for HTTP. This uses standard HTTP methods and some custom payload and RE=
ST interfaces. CoAP Req/Res is already totally compatible with SE2.0 in t=
hat respect, so alignment is already OK there. Nothing stopping someone f=
rom using SE2.0 over CoAP.
>
>      =20
>
>     Specifying a native susbcription/notify into CoAP is another matter=
=2E We can't adopt a solution specific to one application as that won't s=
olve the problems of other applications nor general HTTP mapping at all (=
probably would make it worse). It seems that for the near future there wi=
ll be a bunch of HTTP push mechanisms in use without any clear standard a=
ppearing - or am I wrong there?
>
>        =20
>
>         =20
>
>  =20
>  =20
>  =20
> If COAP extends HTTP semantics with new subscription methods, it will
> not be possible to easily interchange HTTP/COAP, and translation
> gateways will become more complex to implement.
>  =20
>  =20
>  =20
>   =20
>
>     Zach
>
>      =20
>
>        =20
>
>         =20
>
>         Regards - Charles
>
>          =20
>
>          =20
>
>         -----Original Message-----
>
>         From:core-bounces@ietf.org  <mailto:core-bounces@ietf.org>  [ma=
ilto:core-bounces@ietf.org] On Behalf Of Paul Duffy
>
>         Sent: 25 May 2010 03:48
>
>         To: Zach Shelby
>
>         Cc: core
>
>         Subject: Re: [core] Subscribe/Notify for CoAP
>
>          =20
>
>         Recommend something like #2, primarily to avoid introducing non=
 HTTP
>
>         method semantics, simplifying HTTP/COAP translation.gateways, e=
tc.
>
>          =20
>
>          =20
>
>         On 5/24/2010 11:49 AM, Zach Shelby wrote:
>
>              =20
>
>               =20
>
>             (thread renamed)
>
>              =20
>
>             We have two different paths with regard to a subscribe/noti=
fy mechanism for CoAP:
>
>              =20
>
>             1. Use specific Subscription and Notify mechanisms for CoAP=
 as HTTP really does not include this concept.
>
>             1a) Notify as a message and SUBSCRIBE as a method. This is =
currently used in coap-01.
>
>             1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-=
00, but we had a good list discussion about this leading to a. In practic=
e it doesn't make a big difference if notification is a message or method=
=2E
>
>              =20
>
>             2. Use an HTTP specific framework such as Webhooks, the Zig=
Bee SE2.0 proposal or GENA.
>
>              =20
>
>             So far we have focused on 1 in the WG, and every now and ag=
ain 2 comes up. At least I am not convinced that we need to suffer the dr=
awbacks of HTTP here. Anyways 2 does not help our mapping to HTTP in real=
ity very much as there is no standard way of doing this over HTTP. Thus a=
 CoAP-HTTP proxy may end up anyways translating between multiple HTTP fra=
meworks depending on the application. So instead of doing a CoAP Notify/S=
ubscribe to Webhooks mapping, you will could end up having to do a CoAP W=
ebhooks to HTTP GENA mapping.
>
>              =20
>
>                    =20
>
>                     =20
>
>          =20
>
>         I don't understand this last para.  If CoAP sticks to the seman=
tics of
>
>         the current HTTP methods, would this not offer a fairly straigh=
tforward
>
>         translation to/from HTTP?
>
>          =20
>
>          =20
>
>              =20
>
>               =20
>
>                   From what I have heard so far 1 still seems like a wi=
se choice, although I need to look at Webhooks more deeply. In reality ma=
ny applications specify their own way of doing a push interface using RES=
T methods and specific payloads (ZigBee SE2.0 is such an example). That i=
s just fine, and might be used instead of a specific CoAP notify/subscrib=
e in that case. So 1 doesn't prevent the application using its own mechan=
ism, it just provides a native way for doing push.
>
>                          =20
>
>                           =20
>
>             What do people think?
>
>              =20
>
>             Zach
>
>              =20
>
>             On May 17, 2010, at 6:44 PM,matthieu.vial@fr.non.schneider-=
electric.com  <mailto:matthieu.vial@fr.non.schneider-electric.com>  wrote=
:
>
>              =20
>
>              =20
>
>                    =20
>
>                     =20
>
>                 Hi,
>
>                  =20
>
>                 My comments about the subscribe/notify mechanism of Zig=
bee IP.
>
>                  =20
>
>                 Pros:
>
>                 - Derived from the webhooks concept
>
>                 - If used by CORE it will be easier to map to HTTP beca=
use it uses only CRUD verbs.
>
>                 - The subscription message is extendable and could supp=
ort advanced options (delays, increment, ...)
>
>                 - Only one listening port whatever the transport bindin=
g is.
>
>                  =20
>
>                 Cons:
>
>                 - No interoperability without well known URIs and a wel=
l defined subscription message format (Not sure CoAP draft is the right p=
lace to specify this).
>
>                 - XML/EXI is too complex to be the required format for =
the default subscription/notification mechanism.
>
>                 - The notification should not require a subsequent GET =
to retrieve the content.
>
>                 - Subresource subscription is redundant.
>
>                  =20
>
>                 Hope this could help,
>
>                 Matthieu
>
>                  =20
>
>                  =20
>
>                 <graycol.gif>"Charles Palmer"<charles.palmer@onzo.com> =
 <mailto:charles.palmer@onzo.com>
>
>                  =20
>
>                  =20
>
>                  =20
>
>                  =20
>
>                 "Charles Palmer"<charles.palmer@onzo.com>  <mailto:char=
les.palmer@onzo.com>
>
>                 Envoy=E9 par :core-bounces@ietf.org  <mailto:core-bounc=
es@ietf.org>
>
>                 15/05/2010 14:06
>
>                  =20
>
>                 <ecblank.gif>
>
>                 A
>
>                 <ecblank.gif>
>
>                 "core"<core@ietf.org>  <mailto:core@ietf.org>
>
>                 <ecblank.gif>
>
>                 cc
>
>                 <ecblank.gif>
>
>                 <ecblank.gif>
>
>                 Objet
>
>                 <ecblank.gif>
>
>                 Re: [core] Selecting a WG document for CoAP
>
>                 <ecblank.gif>  <ecblank.gif>
>
>                  =20
>
>                 Dear all
>
>                  =20
>
>                 Those interested in the subscribe/notify discussion mig=
ht like to look
>
>                 at the draft Smart Energy Profile 2.0 Application Proto=
col
>
>                 Specification. It is available here:
>
>                 http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmart=
Energy20PublicApp
>
>                 licationProfile.aspx
>
>                  =20
>
>                 It manages subscribe/notify by using POST. This seems t=
o remove the need
>
>                 for SUBSCRIBE and notify.
>
>                  =20
>
>                 "Imagine a host A, which exposes a resource at http{s}:=
//A/resource and
>
>                 a second host B, which wishes to learn of changes to th=
is resource. To
>
>                 facilitate a subscription/ notification mechanism, A wo=
uld expose a
>
>                 resource http{s}://A/sub and B would expose a resource =
http{s}://B/ntfy.
>
>                 To subscribe to notifications regarding http{s}://A/res=
ource, B would
>
>                 send a POST to the address http{s}://A/sub/B containing=
 the URI of the
>
>                 resource of interest (http{s}://A/resource) and the URI=
 of B's
>
>                 notification resource (http{s}://B/ntfy). Following thi=
s subscription
>
>                 step, should A wish to notify B of a change to the reso=
urce addressed at
>
>                 http{s}://A/resource, A would send a POST to the addres=
s
>
>                 http{s}://B/ntfy containing the URI of the resource cha=
nged
>
>                 (http{s}://A/resource) and the URI of A's subscription =
resource
>
>                 (http{s}://A/sub/B), should A wish to change its subscr=
iption. The host
>
>                 B can then query the resource (or not) at its leisure."=

>
>                  =20
>
>                 Sleepy nodes are not allowed to subscribe, and must pol=
l.
>
>                  =20
>
>                 Regards - Charles Palmer
>
>                  =20
>
>                 -----Original Message-----
>
>                 From:core-bounces@ietf.org  <mailto:core-bounces@ietf.o=
rg>  [mailto:core-bounces@ietf.org] On Behalf Of
>
>                 Angelo P. Castellani
>
>                 Sent: 14 May 2010 13:14
>
>                 To: Zach Shelby
>
>                 Cc: core
>
>                 Subject: Re: [core] Selecting a WG document for CoAP
>
>                  =20
>
>                 Zach,
>
>                  =20
>
>                 thanks for the comments, but please refer to my most re=
cent e-mail for
>
>                 a more specific list of technical issues I'm pointing t=
o.
>
>                  =20
>
>                 I want to do only a little integration to what I've wri=
tten there.
>
>                  =20
>
>                 In my very personal opinion, to maximize adherence with=
 the REST model
>
>                 and minimize implementation effort SUBSCRIBE and NOTIFY=
 should be
>
>                 mapped to methods (as discussed many times together...)=
=2E
>
>                  =20
>
>                 Uniform interface principle (Fielding PhD dissertation =
Section 5.1.5,
>
>                 "The central feature that distinguishes the REST archit=
ectural style
>
>                 [...]") states that to simplify the software architectu=
re, resource
>
>                 interfaces/interfaces should be as general as possible.=

>
>                  =20
>
>                 I agree with this principle in this specific case, main=
ly because
>
>                 handling a special message type for notify leads node s=
oftware design
>
>                 to a more complex architecture.
>
>                  =20
>
>                 The reason is that this new message type requires speci=
al handling and
>
>                 introduces a complexity in the software modularization.=

>
>                  =20
>
>                 Best,
>
>                 Angelo
>
>                  =20
>
>                 On Fri, May 14, 2010 at 13:06, Zach Shelby<zach@sensino=
de.com>  <mailto:zach@sensinode.com>    wrote:
>
>                  =20
>
>                          =20
>
>                           =20
>
>                     Hi Angelo,
>
>                      =20
>
>                     On May 13, 2010, at 14:24 , Angelo P. Castellani wr=
ote:
>
>                      =20
>
>                      =20
>
>                                =20
>
>                                 =20
>
>                         Dear C. Bormann, all,
>
>                          =20
>
>                         before deciding for the final direction, I've t=
he following
>
>                         observations about draft-shelby-core-coap-01
>
>                          =20
>
>                         While I mostly share Zach's view of the protoco=
l approach, and
>
>                         appreciate many aspects of the proposal, there =
are in my opinion
>
>                          =20
>
>                                      =20
>
>                                       =20
>
>                 still
>
>                  =20
>
>                          =20
>
>                           =20
>
>                         some open issues that need to be at least discu=
ssed before the
>
>                          =20
>
>                                      =20
>
>                                       =20
>
>                 current
>
>                  =20
>
>                          =20
>
>                           =20
>
>                         document can be selected.
>
>                          =20
>
>                                      =20
>
>                                       =20
>
>                     Of course there are plenty of open issues. Remember=
 that working group
>
>                      =20
>
>                                =20
>
>                                 =20
>
>                 documents still undertake as much change and improvemen=
t as the WG
>
>                 wants, so by no means is coap-01 set in stone. I would =
expect at least
>
>                 5-10 more revisions still along the way.  Already sever=
al of your ideas
>
>                 have been integrated into coap-01, and several more are=
 under
>
>                 consideration, so it is coming along. Patience ;-)
>
>                  =20
>
>                          =20
>
>                           =20
>
>                                =20
>
>                                 =20
>
>                         In particular, I would like to highlight the fo=
llowing:
>
>                          =20
>
>                         a) As it is now, it is not possible to have a s=
traightforward
>
>                         translation of HTTP ->    CoAP and viceversa: s=
ee
>
>                         http://www.ietf.org/mail-archive/web/core/curre=
nt/msg00133.html  (this
>
>                         impacts the scalability of the web service mode=
l too)
>
>                          =20
>
>                                      =20
>
>                                       =20
>
>                     In coap-01 the Method names are now identical to HT=
TP methods. The
>
>                      =20
>
>                                =20
>
>                                 =20
>
>                 Req/Res interaction is a direct translation. The URI hi=
erarchy is
>
>                 compatible, and the URI binary code format we are still=
 working on
>
>                 obviously. The only thing that takes some state to tran=
slate is
>
>                 Subscribe/Notify. But note, Subscribe/Notify takes some=
 state no matter
>
>                 how you do it, even with HTTP-HTTP there is no clean an=
d easy way to
>
>                 handle subscriptions.
>
>                  =20
>
>                          =20
>
>                           =20
>
>                                =20
>
>                                 =20
>
>                         b) Moreover, CoAP's implementation is not as si=
mple as it should be.
>
>                         I've investigated the implementation and some d=
esign choices (as
>
>                         Options) are leading to very high program compl=
exity (ROM) on a
>
>                         MSP430-based device.
>
>                          =20
>
>                                      =20
>
>                                       =20
>
>                     This we can definitely improve, and already made se=
veral optimizations
>
>                      =20
>
>                                =20
>
>                                 =20
>
>                 from -00 to -01. Here I need some very concrete proposa=
ls though. Also
>
>                 remember that many things are optional, for example sub=
scribe/notify is
>
>                 not required if you don't need it.
>
>                  =20
>
>                          =20
>
>                           =20
>
>                                =20
>
>                                 =20
>
>                         c) Finally when comparing HTTP message size wit=
h CoAP message size,
>
>                         the resulting compression isn't as good as you =
may expect.
>
>                          =20
>
>                         Example:
>
>                         HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
>
>                         CoAP: 24 B with options parsing procedure requi=
ring an added
>
>                         implementation complexity
>
>                          =20
>
>                                      =20
>
>                                       =20
>
>                     Right, that is not how it will work in practice. Wo=
rking with a real
>
>                      =20
>
>                                =20
>
>                                 =20
>
>                 HTTP server that HTTP header will be more complex, and =
on the CoAP side
>
>                 you would chose shorter URLs. The biggest improvement p=
ossible here is
>
>                 from using binary coded URLs of course. We need to look=
 at a wider range
>
>                 of interactions and real HTTP headers as well to check =
that we are
>
>                 efficient enough.
>
>                  =20
>
>                          =20
>
>                           =20
>
>                                =20
>
>                                 =20
>
>                         Addressing all these points potentially leads t=
o major technical
>
>                         modifications (especially point a) on the curre=
nt draft, hence it is
>
>                         appropriate in my opinion to discuss these poin=
ts before making the
>
>                         final decision.
>
>                          =20
>
>                                      =20
>
>                                       =20
>
>                     I am not sure what else you have in mind for a). If=
 we just forget
>
>                      =20
>
>                                =20
>
>                                 =20
>
>                 about Subscribe/Notify then you are good to go. But the=
n you are also
>
>                 not fulfilling the charter or the industry needs in tha=
t respect.
>
>                  =20
>
>                          =20
>
>                           =20
>
>                     Thanks,
>
>                     Zach
>
>                      =20
>
>                      =20
>
>                                =20
>
>                                 =20
>
>                         Best regards,
>
>                          =20
>
>                         Angelo P. Castellani
>
>                          =20
>
>                          =20
>
>                         On Mon, May 10, 2010 at 18:51, Carsten Bormann<=
cabo@tzi.org>  <mailto:cabo@tzi.org>    wrote:
>
>                          =20
>
>                                      =20
>
>                                       =20
>
>                             The CORE WG has a milestone to select a WG =
document for CoAP in
>
>                              =20
>
>                                            =20
>
>                                             =20
>
>                 April:
>
>                  =20
>
>                          =20
>
>                           =20
>
>                             http://datatracker.ietf.org/wg/core/charter=
/
>
>                             ...
>
>                             Apr 2010        Select WG document for basi=
s of the CoAP protocol
>
>                              =20
>
>                             Of the various documents that have been con=
tributed,
>
>                              =20
>
>                                            =20
>
>                                             =20
>
>                 draft-shelby-core-coap has significant discussion, as w=
ell as the
>
>                 largest number of updates (including a previous version=
 that was still
>
>                 called -6lowapp-coap).
>
>                  =20
>
>                          =20
>
>                           =20
>
>                             Today, another updated version of that draf=
t was announced.  See
>
>                             http://www.ietf.org/mail-archive/web/core/c=
urrent/msg00138.html
>
>                             for the announcement and
>
>                             http://tools.ietf.org/html/draft-shelby-cor=
e-coap-01
>
>                             for the draft itself.
>
>                              =20
>
>                             However, as the authors say, there are stil=
l significant TODOs.
>
>                              =20
>
>                             Are we in a state yet where we can say whet=
her this is the right
>
>                              =20
>
>                                            =20
>
>                                             =20
>
>                 direction for the WG to take?
>
>                  =20
>
>                          =20
>
>                           =20
>
>                             If yes, is it the right direction?  Should =
we adopt it as a WG
>
>                              =20
>
>                                            =20
>
>                                             =20
>
>                 document?
>
>                  =20
>
>                          =20
>
>                           =20
>
>                             If you don't think we can say yet, is there=
 a set of technical
>
>                              =20
>
>                                            =20
>
>                                             =20
>
>                 decisions you would like the authors to take with prior=
ity?
>
>                  =20
>
>                          =20
>
>                           =20
>
>                             Note that once a document has become a WG d=
ocument, the authors act
>
>                              =20
>
>                                            =20
>
>                                             =20
>
>                 as editors for the working group, making (and usually f=
leshing out the
>
>                 details of) any change that the WG decides it needs.
>
>                  =20
>
>                          =20
>
>                           =20
>
>                             If you think we can still improve the draft=
, this is not an obstacle
>
>                              =20
>
>                                            =20
>
>                                             =20
>
>                 to making it a WG document.
>
>                  =20
>
>                          =20
>
>                           =20
>
>                             But of course we shouldn't do that if we in=
tend to reverse its
>
>                              =20
>
>                                            =20
>
>                                             =20
>
>                 fundamental technical direction.
>
>                  =20
>
>                          =20
>
>                           =20
>
>                             In order to stay roughly in sync with our m=
ilestones, we should
>
>                              =20
>
>                                            =20
>
>                                             =20
>
>                 reach at a decision on how to go forward this week.
>
>                  =20
>
>                          =20
>
>                           =20
>
>                             Gruesse, Carsten
>
>                              =20
>
>                             ___________________________________________=
____
>
>                             core mailing list
>
>                             core@ietf.org  <mailto:core@ietf.org>
>
>                             https://www.ietf.org/mailman/listinfo/core
>
>                              =20
>
>                              =20
>
>                                            =20
>
>                                             =20
>
>                         _______________________________________________=

>
>                         core mailing list
>
>                         core@ietf.org  <mailto:core@ietf.org>
>
>                         https://www.ietf.org/mailman/listinfo/core
>
>                          =20
>
>                                      =20
>
>                                       =20
>
>                     --
>
>                     Zach Shelby, Chief Nerd, Sensinode Ltd.
>
>                     http://zachshelby.org   - My blog "On the Internet =
of Things"  <http://6lowpan.net-Mybook>
>
>                     http://6lowpan.net - My book "  <http://6lowpan.net=
-Mybook>6LoWPAN: The Wireless Embedded Internet"
>
>                     Mobile: +358 40 7796297
>
>                      =20
>
>                      =20
>
>                      =20
>
>                                =20
>
>                                 =20
>
>                 _______________________________________________
>
>                 core mailing list
>
>                 core@ietf.org  <mailto:core@ietf.org>
>
>                 https://www.ietf.org/mailman/listinfo/core
>
>                  =20
>
>                 --------------------------------
>
>                 Onzo is a limited company number 06097997 registered in=
 England&    Wales. The
>
>                 registered office is 6 Great Newport Street, London, WC=
2H 7JB, United Kingdom.
>
>                  =20
>
>                 This email message may contain confidential and/or priv=
ileged information, and
>
>                 is intended solely for the addressee(s). If you have re=
ceived this email in
>
>                 error, please notify Onzo immediately. Unauthorised cop=
ying, disclosure or
>
>                 distribution of the material in this email is forbidden=
=2E
>
>                 --------------------------------
>
>                  =20
>
>                 _______________________________________________
>
>                 core mailing list
>
>                 core@ietf.org  <mailto:core@ietf.org>
>
>                 https://www.ietf.org/mailman/listinfo/core
>
>                  =20
>
>                 _______________________________________________________=
_______________
>
>                 This email has been scanned by the MessageLabs Email Se=
curity System.
>
>                 _______________________________________________________=
_______________
>
>                  =20
>
>                 _______________________________________________
>
>                 core mailing list
>
>                 core@ietf.org  <mailto:core@ietf.org>
>
>                 https://www.ietf.org/mailman/listinfo/core
>
>                  =20
>
>                          =20
>
>                           =20
>
>                    =20
>
>                     =20
>
>         _______________________________________________
>
>         core mailing list
>
>         core@ietf.org  <mailto:core@ietf.org>
>
>         https://www.ietf.org/mailman/listinfo/core
>
>          =20
>
>         --------------------------------
>
>         Onzo is a limited company number 06097997 registered in England=
&   Wales. The
>
>         registered office is 6 Great Newport Street, London, WC2H 7JB, =
United Kingdom.
>
>          =20
>
>         This email message may contain confidential and/or privileged i=
nformation, and
>
>         is intended solely for the addressee(s). If you have received t=
his email in
>
>         error, please notify Onzo immediately. Unauthorised copying, di=
sclosure or
>
>         distribution of the material in this email is forbidden.
>
>         --------------------------------
>
>          =20
>
>              =20
>
>               =20
>
>        =20
>
>         =20
>
>  =20
> _______________________________________________
> core mailing list
> core@ietf.org  <mailto:core@ietf.org>
> https://www.ietf.org/mailman/listinfo/core
> _______________________________________________
> core mailing list
> core@ietf.org  <mailto:core@ietf.org>
> https://www.ietf.org/mailman/listinfo/core
>  =20
>   =20

--------------070107090206070909090407
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content=3D"text/html; charset=3DISO-8859-1"
 http-equiv=3D"Content-Type">
</head>
<body bgcolor=3D"#ffffff" text=3D"#000000">
I think the point here is that there are two levels we are considering.<b=
r>
<br>
At the lowest (foundation) level, there are the transaction messages as
described below. This provides a flexible mechanism for the application
with regard to synchronicity and threading. This is important for the
types of devices CoAP is being aimed at.<br>
<br>
Above that, the methods can be used according to the architectural
style. So in this case, it is RESTful (COnstrained Restful
Environments), which will naturally limit the number of methods and how
transactions occur.<br>
<br>
The actual architecture using a combination of the methods and messages
also depends on what is required at the application layer. Consider a
typical client which wants to subscribe to a resource. That client
controls the feed of data but needs a component which is capable of
handling (possibly buffering) the data it receives through
notifications. Is this a separate server? Or would we want to consider
it part of an enhanced client model which is able to process feeds of
data? These are the sort of models which have led to the myriad of
solutions (GENA, Webhooks, long polling, pubsubhubbub, RESTMS etc.)
based around HTTP which are all essentially ingenious ways of getting
around the limitations imposed by HTTP and how it is processed for
anything which deviates from the classic web page access model.<br>
<br>
I think the aim of CoAP should be clean from the word go with regard to
supporting these more peer-to-peer transactions, where the client can
exist on either entity and both entities can feed data to each other;
typical in M2M applications.<br>
<br>
Robert<br>
<div class=3D"moz-signature">
<style type=3D"text/css">
p
{
font-family:Verdana,Arial,sans-serif;
font-size:8pt;
}
=2Ename
{
font-size:12pt;
}
</style>
<p class=3D"name">Robert Cragie (Pacific Gas &amp; Electric)</p>
<p>Gridmerge Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 1924 910888<br>
+1 415 513 0064<br>
<a href=3D"http://www.gridmerge.com/">http://www.gridmerge.com</a></p>
</div>
<br>
On 27/05/2010 7:08 PM, Adriano Pezzuto (apezzuto) wrote:
<blockquote
 cite=3D"mid:0D212BD466921646B58854FB79092CEC021F4C22@XMB-AMS-106.cisco.c=
om"
 type=3D"cite">
  <meta http-equiv=3D"Content-Type"
 content=3D"text/html; charset=3DISO-8859-1">
  <meta name=3D"Generator" content=3D"Microsoft Word 12 (filtered medium)=
">
  <style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:Verdana;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";
	color:black;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p
	{mso-style-priority:99;
	mso-margin-top-alt:auto;
	margin-right:0cm;
	mso-margin-bottom-alt:auto;
	margin-left:0cm;
	font-size:8.0pt;
	font-family:"Verdana","sans-serif";
	color:black;}
pre
	{mso-style-priority:99;
	mso-style-link:"HTML Preformatted Char";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New";
	color:black;}
p.name, li.name, div.name
	{mso-style-name:name;
	mso-margin-top-alt:auto;
	margin-right:0cm;
	mso-margin-bottom-alt:auto;
	margin-left:0cm;
	font-size:12.0pt;
	font-family:"Verdana","sans-serif";
	color:black;}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:"Consolas","serif";
	color:black;}
span.EmailStyle21
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
=2EMsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page Section1
	{size:612.0pt 792.0pt;
	margin:70.85pt 2.0cm 2.0cm 2.0cm;}
div.Section1
	{page:Section1;}
 /* List Definitions */
 @list l0
	{mso-list-id:741752703;
	mso-list-template-ids:1576030616;}
ol
	{margin-bottom:0cm;}
ul
	{margin-bottom:0cm;}
-->
  </style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1" />
 </o:shapelayout></xml><![endif]-->
  <div class=3D"Section1">
  <p class=3D"MsoNormal"><span
 style=3D"font-size: 10pt; font-family: &quot;Calibri&quot;,&quot;sans-se=
rif&quot;; color: rgb(31, 73, 125);">Hi
Robert,<o:p></o:p></span></p>
  <p class=3D"MsoNormal"><span
 style=3D"font-size: 10pt; font-family: &quot;Calibri&quot;,&quot;sans-se=
rif&quot;; color: rgb(31, 73, 125);"><o:p>&nbsp;</o:p></span></p>
  <p class=3D"MsoNormal"><span
 style=3D"font-size: 10pt; font-family: &quot;Calibri&quot;,&quot;sans-se=
rif&quot;; color: rgb(31, 73, 125);">in
my personal opinion, the option 1a) brings some sort of ambiguity
to CoAP specs.<o:p></o:p></span></p>
  <p class=3D"MsoNormal"><span
 style=3D"font-size: 10pt; font-family: &quot;Calibri&quot;,&quot;sans-se=
rif&quot;; color: rgb(31, 73, 125);"><o:p>&nbsp;</o:p></span></p>
  <p class=3D"MsoNormal"><span
 style=3D"font-size: 10pt; font-family: &quot;Calibri&quot;,&quot;sans-se=
rif&quot;; color: rgb(31, 73, 125);">My
be my understatement of new CoAP specs is not so deep, &nbsp;but now
we have 5 methods and 3 message types: request, response and notify.
Which
methods are allowed with which messages types?<o:p></o:p></span></p>
  <p class=3D"MsoNormal"><span
 style=3D"font-size: 10pt; font-family: &quot;Calibri&quot;,&quot;sans-se=
rif&quot;; color: rgb(31, 73, 125);">I
suppose you have to use PUT/POST method with notify message
for asynch data notification. How to make a subscribe? I suppose you
would use
a SUBSCRIBE method with request/response message or SUBSCRIBE with
notify
message? Also what about POST/DELETE methods in a notify message? They
not make
any sense..<o:p></o:p></span></p>
  <p class=3D"MsoNormal"><span
 style=3D"font-size: 10pt; font-family: &quot;Calibri&quot;,&quot;sans-se=
rif&quot;; color: rgb(31, 73, 125);"><o:p>&nbsp;</o:p></span></p>
  <p class=3D"MsoNormal"><span
 style=3D"font-size: 10pt; font-family: &quot;Calibri&quot;,&quot;sans-se=
rif&quot;; color: rgb(31, 73, 125);">I
think the choice is between: option 1) -&gt; only CRUD methods
and option 1b) -&gt; CRUD + SUB/NOTIFY methods, keeping in mind
cost/benefits
of both solutions.<o:p></o:p></span></p>
  <p class=3D"MsoNormal"><span
 style=3D"font-size: 10pt; font-family: &quot;Calibri&quot;,&quot;sans-se=
rif&quot;; color: rgb(31, 73, 125);"><o:p>&nbsp;</o:p></span></p>
  <p class=3D"MsoNormal"><span
 style=3D"font-size: 10pt; font-family: &quot;Calibri&quot;,&quot;sans-se=
rif&quot;; color: rgb(31, 73, 125);">Adriano<o:p></o:p></span></p>
  <p class=3D"MsoNormal"><span
 style=3D"font-size: 10pt; font-family: &quot;Calibri&quot;,&quot;sans-se=
rif&quot;; color: rgb(31, 73, 125);"><o:p>&nbsp;</o:p></span></p>
  <div>
  <div
 style=3D"border-style: solid none none; border-color: rgb(181, 196, 223)=
 -moz-use-text-color -moz-use-text-color; border-width: 1pt medium medium=
; padding: 3pt 0cm 0cm;">
  <p class=3D"MsoNormal"><b><span
 style=3D"font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-ser=
if&quot;; color: windowtext;">From:</span></b><span
 style=3D"font-size: 10pt; font-family: &quot;Tahoma&quot;,&quot;sans-ser=
if&quot;; color: windowtext;">
Robert Cragie
[<a class=3D"moz-txt-link-freetext" href=3D"mailto:robert.cragie@gridmerg=
e.com">mailto:robert.cragie@gridmerge.com</a>] <br>
  <b>Sent:</b> mercoled&igrave; 26 maggio 2010 20.09<br>
  <b>To:</b> Adriano Pezzuto (apezzuto)<br>
  <b>Cc:</b> Paul Duffy (paduffy); Zach Shelby; core<br>
  <b>Subject:</b> Re: [core] Subscribe/Notify for CoAP<o:p></o:p></span><=
/p>
  </div>
  </div>
  <p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
  <p class=3D"MsoNormal">Hi Adrian,<br>
  <br>
I would also prefer to keep the protocol in CoAP asynchronous. You can
always
map an asynchronous protocol to a synchronous one but, as we see in
HTTP, it
always ends up as a kludge to do it the other way round. The efforts
which have
been gone to to make HTTP quasi-asynchronous via all the schemes
mentioned
below and many more besides (all non-interoperable of course) is
testament to
how important this is for M2M communication.<br>
  <br>
So, back to Zach's list, I favor 1a) for the following reasons:<br>
  <br>
Foundation level of messages:<o:p></o:p></p>
  <ol start=3D"1" type=3D"1">
    <li class=3D"MsoNormal" style=3D"">request/response can be asynchrono=
us
or synchronous messages (as there is a transaction ID in there)<o:p></o:p=
></li>
    <li class=3D"MsoNormal" style=3D"">notify is an asynchronous message<=
o:p></o:p></li>
  </ol>
  <p class=3D"MsoNormal">Derived methods:<br>
  <br>
I think it makes sense to add a pub/sub model as a useful mechanism for
M2M.<br>
  <br>
So, looking at it the other way round: It will be entirely possible to
translate whatever is currently built on HTTP to CoAP based on the
above, with
all its restrictions regarding synchronous and client/server
transactions. What
may be harder is to translate directly is a CoAP-based application to
HTTP. So
I guess the question is: Do we want to be hamstrung to synchronous
client/server transactions as dictated by HTTP and provide a direct
mapping to
HTTP, then have to come up with similar kludges for asynchronous
peer-to-peer
transactions as has been done in numerous ways for HTTP, or do we want
to
define the protocol cleanly to start with and accept that some sort of
transaction relaying/conversion would have to take place at a mapping
node?<br>
  <br>
Robert<o:p></o:p></p>
  <div>
  <p class=3D"name">Robert Cragie (Pacific Gas &amp; Electric)<o:p></o:p>=
</p>
  <p>Gridmerge Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 1924 910888<br>
+1 415 513 0064<br>
  <a moz-do-not-send=3D"true" href=3D"http://www.gridmerge.com/">http://w=
ww.gridmerge.com</a><o:p></o:p></p>
  </div>
  <p class=3D"MsoNormal"><br>
On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote: <o:p></o:p></p>
  <pre>Hi,<o:p></o:p></pre>
  <pre>it looks to me that CoAP should use an explicit sub/notify mechani=
sm since this is the core of the machine-to-machine interaction model.<o:=
p></o:p></pre>
  <pre>HTTP suffers of this lack and we have seen a plethora of solutions=
 to give an asynch taste to it. Webhooks and websockets are only the last=
s of the list.<o:p></o:p></pre>
  <pre>As someone has already pointed out on this list, it is theoretical=
ly possible to describe sub/notify using only CRUD methods but it looks a=
 little bit tricky and verbose.<o:p></o:p></pre>
  <pre><o:p>&nbsp;</o:p></pre>
  <pre>Now we have a chance to build from scratch a new protocol with and=
 I think using explicit sub/notify methods with a clear and well defined =
semantic is the best option. It is easily understanding from every develo=
per and will prevent to build other fanny solutions on top of the CoAP. H=
TTP does not have this well defined semantic and (for hundreds of other r=
easons also) it is not used as wide protocol for machine-to-machine commu=
nication.<o:p></o:p></pre>
  <pre><o:p>&nbsp;</o:p></pre>
  <pre>CoAP - as binary protocol - and with an explicit asynch model has =
a chance to be a really wide protocol for M2M communication not only for =
constrained environments.<o:p></o:p></pre>
  <pre><o:p>&nbsp;</o:p></pre>
  <pre>my 2 cents<o:p></o:p></pre>
  <pre><o:p>&nbsp;</o:p></pre>
  <pre>- adriano<o:p></o:p></pre>
  <pre><o:p>&nbsp;</o:p></pre>
  <pre>-----Original Message-----<o:p></o:p></pre>
  <pre>From: <a moz-do-not-send=3D"true"
 href=3D"mailto:core-bounces@ietf.org">core-bounces@ietf.org</a> [<a
 moz-do-not-send=3D"true" href=3D"mailto:core-bounces@ietf.org">mailto:co=
re-bounces@ietf.org</a>] On Behalf Of Paul Duffy (paduffy)<o:p></o:p></pr=
e>
  <pre>Sent: mercoled&igrave; 26 maggio 2010 0.47<o:p></o:p></pre>
  <pre>To: Zach Shelby<o:p></o:p></pre>
  <pre>Cc: core<o:p></o:p></pre>
  <pre>Subject: Re: [core] Subscribe/Notify for CoAP<o:p></o:p></pre>
  <pre><o:p>&nbsp;</o:p></pre>
  <pre>On 5/25/2010 6:41 PM, Zach Shelby wrote:<o:p></o:p></pre>
  <pre>&nbsp; <o:p></o:p></pre>
  <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
    <pre>Hi,<o:p></o:p></pre>
    <pre><o:p>&nbsp;</o:p></pre>
    <pre>On May 26, 2010, at 12:23 AM, Charles Palmer wrote:<o:p></o:p></=
pre>
    <pre><o:p>&nbsp;</o:p></pre>
    <pre>&nbsp;&nbsp; <o:p></o:p></pre>
    <pre>&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
    <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
      <pre>Hi folks<o:p></o:p></pre>
      <pre><o:p>&nbsp;</o:p></pre>
      <pre>It occurs to me that CoRE should be keeping a close eye on Zig=
Bee SE2.0 work, so that it is as easy as possible for ZigBee SE to use Co=
RE when ready. That suggests to me that we should align with their subscr=
ibe/notify process.<o:p></o:p></pre>
      <pre><o:p>&nbsp;</o:p></pre>
      <pre>&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
      <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
    </blockquote>
    <pre>I am not sure I understand that. I mean, ZigBee SE2.0 is definin=
g an application specific subscribe/notify mechanism for that purpose so =
far for HTTP. This uses standard HTTP methods and some custom payload and=
 REST interfaces. CoAP Req/Res is already totally compatible with SE2.0 i=
n that respect, so alignment is already OK there. Nothing stopping someon=
e from using SE2.0 over CoAP.<o:p></o:p></pre>
    <pre><o:p>&nbsp;</o:p></pre>
    <pre>Specifying a native susbcription/notify into CoAP is another mat=
ter. We can't adopt a solution specific to one application as that won't =
solve the problems of other applications nor general HTTP mapping at all =
(probably would make it worse). It seems that for the near future there w=
ill be a bunch of HTTP push mechanisms in use without any clear standard =
appearing - or am I wrong there?<o:p></o:p></pre>
    <pre>&nbsp;&nbsp; <o:p></o:p></pre>
    <pre>&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
  </blockquote>
  <pre><o:p>&nbsp;</o:p></pre>
  <pre><o:p>&nbsp;</o:p></pre>
  <pre><o:p>&nbsp;</o:p></pre>
  <pre>If COAP extends HTTP semantics with new subscription methods, it w=
ill <o:p></o:p></pre>
  <pre>not be possible to easily interchange HTTP/COAP, and translation <=
o:p></o:p></pre>
  <pre>gateways will become more complex to implement.<o:p></o:p></pre>
  <pre><o:p>&nbsp;</o:p></pre>
  <pre><o:p>&nbsp;</o:p></pre>
  <pre><o:p>&nbsp;</o:p></pre>
  <pre>&nbsp; <o:p></o:p></pre>
  <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
    <pre>Zach<o:p></o:p></pre>
    <pre><o:p>&nbsp;</o:p></pre>
    <pre>&nbsp;&nbsp; <o:p></o:p></pre>
    <pre>&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
    <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
      <pre>Regards - Charles<o:p></o:p></pre>
      <pre><o:p>&nbsp;</o:p></pre>
      <pre><o:p>&nbsp;</o:p></pre>
      <pre>-----Original Message-----<o:p></o:p></pre>
      <pre>From: <a moz-do-not-send=3D"true"
 href=3D"mailto:core-bounces@ietf.org">core-bounces@ietf.org</a> [<a
 moz-do-not-send=3D"true" href=3D"mailto:core-bounces@ietf.org">mailto:co=
re-bounces@ietf.org</a>] On Behalf Of Paul Duffy<o:p></o:p></pre>
      <pre>Sent: 25 May 2010 03:48<o:p></o:p></pre>
      <pre>To: Zach Shelby<o:p></o:p></pre>
      <pre>Cc: core<o:p></o:p></pre>
      <pre>Subject: Re: [core] Subscribe/Notify for CoAP<o:p></o:p></pre>=

      <pre><o:p>&nbsp;</o:p></pre>
      <pre>Recommend something like #2, primarily to avoid introducing no=
n HTTP<o:p></o:p></pre>
      <pre>method semantics, simplifying HTTP/COAP translation.gateways, =
etc.<o:p></o:p></pre>
      <pre><o:p>&nbsp;</o:p></pre>
      <pre><o:p>&nbsp;</o:p></pre>
      <pre>On 5/24/2010 11:49 AM, Zach Shelby wrote:<o:p></o:p></pre>
      <pre>&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
      <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
      <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
        <pre>(thread renamed)<o:p></o:p></pre>
        <pre><o:p>&nbsp;</o:p></pre>
        <pre>We have two different paths with regard to a subscribe/notif=
y mechanism for CoAP:<o:p></o:p></pre>
        <pre><o:p>&nbsp;</o:p></pre>
        <pre>1. Use specific Subscription and Notify mechanisms for CoAP =
as HTTP really does not include this concept.<o:p></o:p></pre>
        <pre>1a) Notify as a message and SUBSCRIBE as a method. This is c=
urrently used in coap-01.<o:p></o:p></pre>
        <pre>1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-0=
0, but we had a good list discussion about this leading to a. In practice=
 it doesn't make a big difference if notification is a message or method.=
<o:p></o:p></pre>
        <pre><o:p>&nbsp;</o:p></pre>
        <pre>2. Use an HTTP specific framework such as Webhooks, the ZigB=
ee SE2.0 proposal or GENA.<o:p></o:p></pre>
        <pre><o:p>&nbsp;</o:p></pre>
        <pre>So far we have focused on 1 in the WG, and every now and aga=
in 2 comes up. At least I am not convinced that we need to suffer the dra=
wbacks of HTTP here. Anyways 2 does not help our mapping to HTTP in reali=
ty very much as there is no standard way of doing this over HTTP. Thus a =
CoAP-HTTP proxy may end up anyways translating between multiple HTTP fram=
eworks depending on the application. So instead of doing a CoAP Notify/Su=
bscribe to Webhooks mapping, you will could end up having to do a CoAP We=
bhooks to HTTP GENA mapping.<o:p></o:p></pre>
        <pre><o:p>&nbsp;</o:p></pre>
        <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
        <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p><=
/pre>
      </blockquote>
      <pre><o:p>&nbsp;</o:p></pre>
      <pre>I don't understand this last para.&nbsp; If CoAP sticks to the=
 semantics of<o:p></o:p></pre>
      <pre>the current HTTP methods, would this not offer a fairly straig=
htforward<o:p></o:p></pre>
      <pre>translation to/from HTTP?<o:p></o:p></pre>
      <pre><o:p>&nbsp;</o:p></pre>
      <pre><o:p>&nbsp;</o:p></pre>
      <pre>&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
      <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
      <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
        <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
          <pre>&nbsp;From what I have heard so far 1 still seems like a w=
ise choice, although I need to look at Webhooks more deeply. In reality m=
any applications specify their own way of doing a push interface using RE=
ST methods and specific payloads (ZigBee SE2.0 is such an example). That =
is just fine, and might be used instead of a specific CoAP notify/subscri=
be in that case. So 1 doesn't prevent the application using its own mecha=
nism, it just provides a native way for doing push.<o:p></o:p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:=
p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;<o:p></o:p></pre>
        </blockquote>
        <pre>What do people think?<o:p></o:p></pre>
        <pre><o:p>&nbsp;</o:p></pre>
        <pre>Zach<o:p></o:p></pre>
        <pre><o:p>&nbsp;</o:p></pre>
        <pre>On May 17, 2010, at 6:44 PM, <a moz-do-not-send=3D"true"
 href=3D"mailto:matthieu.vial@fr.non.schneider-electric.com">matthieu.via=
l@fr.non.schneider-electric.com</a> wrote:<o:p></o:p></pre>
        <pre><o:p>&nbsp;</o:p></pre>
        <pre><o:p>&nbsp;</o:p></pre>
        <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
        <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p><=
/pre>
        <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
          <pre>Hi,<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>My comments about the subscribe/notify mechanism of Zigbee=
 IP.<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>Pros:<o:p></o:p></pre>
          <pre>- Derived from the webhooks concept<o:p></o:p></pre>
          <pre>- If used by CORE it will be easier to map to HTTP because=
 it uses only CRUD verbs.<o:p></o:p></pre>
          <pre>- The subscription message is extendable and could support=
 advanced options (delays, increment, ...)<o:p></o:p></pre>
          <pre>- Only one listening port whatever the transport binding i=
s.<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>Cons:<o:p></o:p></pre>
          <pre>- No interoperability without well known URIs and a well d=
efined subscription message format (Not sure CoAP draft is the right plac=
e to specify this).<o:p></o:p></pre>
          <pre>- XML/EXI is too complex to be the required format for the=
 default subscription/notification mechanism.<o:p></o:p></pre>
          <pre>- The notification should not require a subsequent GET to =
retrieve the content.<o:p></o:p></pre>
          <pre>- Subresource subscription is redundant.<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>Hope this could help,<o:p></o:p></pre>
          <pre>Matthieu<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>&lt;graycol.gif&gt;"Charles Palmer"<a
 moz-do-not-send=3D"true" href=3D"mailto:charles.palmer@onzo.com">&lt;cha=
rles.palmer@onzo.com&gt;</a><o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>"Charles Palmer"<a moz-do-not-send=3D"true"
 href=3D"mailto:charles.palmer@onzo.com">&lt;charles.palmer@onzo.com&gt;<=
/a><o:p></o:p></pre>
          <pre>Envoy&eacute; par : <a moz-do-not-send=3D"true"
 href=3D"mailto:core-bounces@ietf.org">core-bounces@ietf.org</a><o:p></o:=
p></pre>
          <pre>15/05/2010 14:06<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>&lt;ecblank.gif&gt;<o:p></o:p></pre>
          <pre>A<o:p></o:p></pre>
          <pre>&lt;ecblank.gif&gt;<o:p></o:p></pre>
          <pre>"core"<a moz-do-not-send=3D"true"
 href=3D"mailto:core@ietf.org">&lt;core@ietf.org&gt;</a><o:p></o:p></pre>=

          <pre>&lt;ecblank.gif&gt;<o:p></o:p></pre>
          <pre>cc<o:p></o:p></pre>
          <pre>&lt;ecblank.gif&gt;<o:p></o:p></pre>
          <pre>&lt;ecblank.gif&gt;<o:p></o:p></pre>
          <pre>Objet<o:p></o:p></pre>
          <pre>&lt;ecblank.gif&gt;<o:p></o:p></pre>
          <pre>Re: [core] Selecting a WG document for CoAP<o:p></o:p></pr=
e>
          <pre>&lt;ecblank.gif&gt; &lt;ecblank.gif&gt;<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>Dear all<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>Those interested in the subscribe/notify discussion might =
like to look<o:p></o:p></pre>
          <pre>at the draft Smart Energy Profile 2.0 Application Protocol=
<o:p></o:p></pre>
          <pre>Specification. It is available here:<o:p></o:p></pre>
          <pre><a moz-do-not-send=3D"true"
 href=3D"http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20P=
ublicApp">http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20=
PublicApp</a><o:p></o:p></pre>
          <pre>licationProfile.aspx<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>It manages subscribe/notify by using POST. This seems to r=
emove the need<o:p></o:p></pre>
          <pre>for SUBSCRIBE and notify.<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>"Imagine a host A, which exposes a resource at http{s}://A=
/resource and<o:p></o:p></pre>
          <pre>a second host B, which wishes to learn of changes to this =
resource. To<o:p></o:p></pre>
          <pre>facilitate a subscription/ notification mechanism, A would=
 expose a<o:p></o:p></pre>
          <pre>resource http{s}://A/sub and B would expose a resource htt=
p{s}://B/ntfy.<o:p></o:p></pre>
          <pre>To subscribe to notifications regarding http{s}://A/resour=
ce, B would<o:p></o:p></pre>
          <pre>send a POST to the address http{s}://A/sub/B containing th=
e URI of the<o:p></o:p></pre>
          <pre>resource of interest (http{s}://A/resource) and the URI of=
 B's<o:p></o:p></pre>
          <pre>notification resource (http{s}://B/ntfy). Following this s=
ubscription<o:p></o:p></pre>
          <pre>step, should A wish to notify B of a change to the resourc=
e addressed at<o:p></o:p></pre>
          <pre>http{s}://A/resource, A would send a POST to the address<o=
:p></o:p></pre>
          <pre>http{s}://B/ntfy containing the URI of the resource change=
d<o:p></o:p></pre>
          <pre>(http{s}://A/resource) and the URI of A's subscription res=
ource<o:p></o:p></pre>
          <pre>(http{s}://A/sub/B), should A wish to change its subscript=
ion. The host<o:p></o:p></pre>
          <pre>B can then query the resource (or not) at its leisure."<o:=
p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>Sleepy nodes are not allowed to subscribe, and must poll.<=
o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>Regards - Charles Palmer<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>-----Original Message-----<o:p></o:p></pre>
          <pre>From: <a moz-do-not-send=3D"true"
 href=3D"mailto:core-bounces@ietf.org">core-bounces@ietf.org</a> [<a
 moz-do-not-send=3D"true" href=3D"mailto:core-bounces@ietf.org">mailto:co=
re-bounces@ietf.org</a>] On Behalf Of<o:p></o:p></pre>
          <pre>Angelo P. Castellani<o:p></o:p></pre>
          <pre>Sent: 14 May 2010 13:14<o:p></o:p></pre>
          <pre>To: Zach Shelby<o:p></o:p></pre>
          <pre>Cc: core<o:p></o:p></pre>
          <pre>Subject: Re: [core] Selecting a WG document for CoAP<o:p><=
/o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>Zach,<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>thanks for the comments, but please refer to my most recen=
t e-mail for<o:p></o:p></pre>
          <pre>a more specific list of technical issues I'm pointing to.<=
o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>I want to do only a little integration to what I've writte=
n there.<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>In my very personal opinion, to maximize adherence with th=
e REST model<o:p></o:p></pre>
          <pre>and minimize implementation effort SUBSCRIBE and NOTIFY sh=
ould be<o:p></o:p></pre>
          <pre>mapped to methods (as discussed many times together...).<o=
:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>Uniform interface principle (Fielding PhD dissertation Sec=
tion 5.1.5,<o:p></o:p></pre>
          <pre>"The central feature that distinguishes the REST architect=
ural style<o:p></o:p></pre>
          <pre>[...]") states that to simplify the software architecture,=
 resource<o:p></o:p></pre>
          <pre>interfaces/interfaces should be as general as possible.<o:=
p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>I agree with this principle in this specific case, mainly =
because<o:p></o:p></pre>
          <pre>handling a special message type for notify leads node soft=
ware design<o:p></o:p></pre>
          <pre>to a more complex architecture.<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>The reason is that this new message type requires special =
handling and<o:p></o:p></pre>
          <pre>introduces a complexity in the software modularization.<o:=
p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>Best,<o:p></o:p></pre>
          <pre>Angelo<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>On Fri, May 14, 2010 at 13:06, Zach Shelby<a
 moz-do-not-send=3D"true" href=3D"mailto:zach@sensinode.com">&lt;zach@sen=
sinode.com&gt;</a>&nbsp;&nbsp; wrote:<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:=
p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;<o:p></o:p></pre>
          <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
            <pre>Hi Angelo,<o:p></o:p></pre>
            <pre><o:p>&nbsp;</o:p></pre>
            <pre>On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:<=
o:p></o:p></pre>
            <pre><o:p>&nbsp;</o:p></pre>
            <pre><o:p>&nbsp;</o:p></pre>
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp; <o:p></o:p></pre>
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;<o:p></o:p></pre>
            <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
              <pre>Dear C. Bormann, all,<o:p></o:p></pre>
              <pre><o:p>&nbsp;</o:p></pre>
              <pre>before deciding for the final direction, I've the foll=
owing<o:p></o:p></pre>
              <pre>observations about draft-shelby-core-coap-01<o:p></o:p=
></pre>
              <pre><o:p>&nbsp;</o:p></pre>
              <pre>While I mostly share Zach's view of the protocol appro=
ach, and<o:p></o:p></pre>
              <pre>appreciate many aspects of the proposal, there are in =
my opinion<o:p></o:p></pre>
              <pre><o:p>&nbsp;</o:p></pre>
              <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
              <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
            </blockquote>
          </blockquote>
          <pre>still<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:=
p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;<o:p></o:p></pre>
          <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
            <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
              <pre>some open issues that need to be at least discussed be=
fore the<o:p></o:p></pre>
              <pre><o:p>&nbsp;</o:p></pre>
              <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
              <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
            </blockquote>
          </blockquote>
          <pre>current<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:=
p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;<o:p></o:p></pre>
          <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
            <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
              <pre>document can be selected.<o:p></o:p></pre>
              <pre><o:p>&nbsp;</o:p></pre>
              <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
              <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
            </blockquote>
            <pre>Of course there are plenty of open issues. Remember that=
 working group<o:p></o:p></pre>
            <pre><o:p>&nbsp;</o:p></pre>
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp; <o:p></o:p></pre>
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;<o:p></o:p></pre>
          </blockquote>
          <pre>documents still undertake as much change and improvement a=
s the WG<o:p></o:p></pre>
          <pre>wants, so by no means is coap-01 set in stone. I would exp=
ect at least<o:p></o:p></pre>
          <pre>5-10 more revisions still along the way.&nbsp; Already sev=
eral of your ideas<o:p></o:p></pre>
          <pre>have been integrated into coap-01, and several more are un=
der<o:p></o:p></pre>
          <pre>consideration, so it is coming along. Patience ;-)<o:p></o=
:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:=
p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;<o:p></o:p></pre>
          <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp; <o:p></o:p></pre>
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;<o:p></o:p></pre>
            <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
              <pre>In particular, I would like to highlight the following=
:<o:p></o:p></pre>
              <pre><o:p>&nbsp;</o:p></pre>
              <pre>a) As it is now, it is not possible to have a straight=
forward<o:p></o:p></pre>
              <pre>translation of HTTP -&gt;&nbsp;&nbsp; CoAP and vicever=
sa: see<o:p></o:p></pre>
              <pre><a moz-do-not-send=3D"true"
 href=3D"http://www.ietf.org/mail-archive/web/core/current/msg00133.html"=
>http://www.ietf.org/mail-archive/web/core/current/msg00133.html</a> (thi=
s<o:p></o:p></pre>
              <pre>impacts the scalability of the web service model too)<=
o:p></o:p></pre>
              <pre><o:p>&nbsp;</o:p></pre>
              <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
              <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
            </blockquote>
            <pre>In coap-01 the Method names are now identical to HTTP me=
thods. The<o:p></o:p></pre>
            <pre><o:p>&nbsp;</o:p></pre>
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp; <o:p></o:p></pre>
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;<o:p></o:p></pre>
          </blockquote>
          <pre>Req/Res interaction is a direct translation. The URI hiera=
rchy is<o:p></o:p></pre>
          <pre>compatible, and the URI binary code format we are still wo=
rking on<o:p></o:p></pre>
          <pre>obviously. The only thing that takes some state to transla=
te is<o:p></o:p></pre>
          <pre>Subscribe/Notify. But note, Subscribe/Notify takes some st=
ate no matter<o:p></o:p></pre>
          <pre>how you do it, even with HTTP-HTTP there is no clean and e=
asy way to<o:p></o:p></pre>
          <pre>handle subscriptions.<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<o:p></o:=
p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;<o:p></o:p></pre>
          <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp; <o:p></o:p></pre>
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;<o:p></o:p></pre>
            <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
              <pre>b) Moreover, CoAP's implementation is not as simple as=
 it should be.<o:p></o:p></pre>
              <pre>I've investigated the implementation and some design c=
hoices (as<o:p></o:p></pre>
              <pre>Options) are leading to very high program complexity (=
ROM) on a<o:p></o:p></pre>
              <pre>MSP430-based device.<o:p></o:p></pre>
              <pre><o:p>&nbsp;</o:p></pre>
              <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
              <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
            </blockquote>
            <pre>This we can definitely improve, and already made several=
 optimizations<o:p></o:p></pre>
            <pre><o:p>&nbsp;</o:p></pre>
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp; <o:p></o:p></pre>
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;<o:p></o:p></pre>
          </blockquote>
          <pre>from -00 to -01. Here I need some very concrete proposals =
though. Also<o:p></o:p></pre>
          <pre>remember that many things are optional, for example subscr=
ibe/notify is<o:p></o:p></pre>
          <pre>not required if you don't need it.<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:=
p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;<o:p></o:p></pre>
          <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp; <o:p></o:p></pre>
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;<o:p></o:p></pre>
            <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
              <pre>c) Finally when comparing HTTP message size with CoAP =
message size,<o:p></o:p></pre>
              <pre>the resulting compression isn't as good as you may exp=
ect.<o:p></o:p></pre>
              <pre><o:p>&nbsp;</o:p></pre>
              <pre>Example:<o:p></o:p></pre>
              <pre>HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B<o:p></o:p=
></pre>
              <pre>CoAP: 24 B with options parsing procedure requiring an=
 added<o:p></o:p></pre>
              <pre>implementation complexity<o:p></o:p></pre>
              <pre><o:p>&nbsp;</o:p></pre>
              <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
              <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
            </blockquote>
            <pre>Right, that is not how it will work in practice. Working=
 with a real<o:p></o:p></pre>
            <pre><o:p>&nbsp;</o:p></pre>
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp; <o:p></o:p></pre>
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;<o:p></o:p></pre>
          </blockquote>
          <pre>HTTP server that HTTP header will be more complex, and on =
the CoAP side<o:p></o:p></pre>
          <pre>you would chose shorter URLs. The biggest improvement poss=
ible here is<o:p></o:p></pre>
          <pre>from using binary coded URLs of course. We need to look at=
 a wider range<o:p></o:p></pre>
          <pre>of interactions and real HTTP headers as well to check tha=
t we are<o:p></o:p></pre>
          <pre>efficient enough.<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:=
p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;<o:p></o:p></pre>
          <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp; <o:p></o:p></pre>
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;<o:p></o:p></pre>
            <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
              <pre>Addressing all these points potentially leads to major=
 technical<o:p></o:p></pre>
              <pre>modifications (especially point a) on the current draf=
t, hence it is<o:p></o:p></pre>
              <pre>appropriate in my opinion to discuss these points befo=
re making the<o:p></o:p></pre>
              <pre>final decision.<o:p></o:p></pre>
              <pre><o:p>&nbsp;</o:p></pre>
              <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
              <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
            </blockquote>
            <pre>I am not sure what else you have in mind for a). If we j=
ust forget<o:p></o:p></pre>
            <pre><o:p>&nbsp;</o:p></pre>
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp; <o:p></o:p></pre>
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;<o:p></o:p></pre>
          </blockquote>
          <pre>about Subscribe/Notify then you are good to go. But then y=
ou are also<o:p></o:p></pre>
          <pre>not fulfilling the charter or the industry needs in that r=
espect.<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:=
p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;<o:p></o:p></pre>
          <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
            <pre>Thanks,<o:p></o:p></pre>
            <pre>Zach<o:p></o:p></pre>
            <pre><o:p>&nbsp;</o:p></pre>
            <pre><o:p>&nbsp;</o:p></pre>
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp; <o:p></o:p></pre>
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;<o:p></o:p></pre>
            <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
              <pre>Best regards,<o:p></o:p></pre>
              <pre><o:p>&nbsp;</o:p></pre>
              <pre>Angelo P. Castellani<o:p></o:p></pre>
              <pre><o:p>&nbsp;</o:p></pre>
              <pre><o:p>&nbsp;</o:p></pre>
              <pre>On Mon, May 10, 2010 at 18:51, Carsten Bormann<a
 moz-do-not-send=3D"true" href=3D"mailto:cabo@tzi.org">&lt;cabo@tzi.org&g=
t;</a>&nbsp;&nbsp; wrote:<o:p></o:p></pre>
              <pre><o:p>&nbsp;</o:p></pre>
              <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
              <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
              <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">=

                <pre>The CORE WG has a milestone to select a WG document =
for CoAP in<o:p></o:p></pre>
                <pre><o:p>&nbsp;</o:p></pre>
                <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
                <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
              </blockquote>
            </blockquote>
          </blockquote>
          <pre>April:<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:=
p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;<o:p></o:p></pre>
          <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
            <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
              <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">=

                <pre><a moz-do-not-send=3D"true"
 href=3D"http://datatracker.ietf.org/wg/core/charter/">http://datatracker=
=2Eietf.org/wg/core/charter/</a><o:p></o:p></pre>
                <pre>...<o:p></o:p></pre>
                <pre>Apr 2010&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; S=
elect WG document for basis of the CoAP protocol<o:p></o:p></pre>
                <pre><o:p>&nbsp;</o:p></pre>
                <pre>Of the various documents that have been contributed,=
<o:p></o:p></pre>
                <pre><o:p>&nbsp;</o:p></pre>
                <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
                <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
              </blockquote>
            </blockquote>
          </blockquote>
          <pre>draft-shelby-core-coap has significant discussion, as well=
 as the<o:p></o:p></pre>
          <pre>largest number of updates (including a previous version th=
at was still<o:p></o:p></pre>
          <pre>called -6lowapp-coap).<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:=
p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;<o:p></o:p></pre>
          <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
            <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
              <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">=

                <pre>Today, another updated version of that draft was ann=
ounced.&nbsp; See<o:p></o:p></pre>
                <pre><a moz-do-not-send=3D"true"
 href=3D"http://www.ietf.org/mail-archive/web/core/current/msg00138.html"=
>http://www.ietf.org/mail-archive/web/core/current/msg00138.html</a><o:p>=
</o:p></pre>
                <pre>for the announcement and<o:p></o:p></pre>
                <pre><a moz-do-not-send=3D"true"
 href=3D"http://tools.ietf.org/html/draft-shelby-core-coap-01">http://too=
ls.ietf.org/html/draft-shelby-core-coap-01</a><o:p></o:p></pre>
                <pre>for the draft itself.<o:p></o:p></pre>
                <pre><o:p>&nbsp;</o:p></pre>
                <pre>However, as the authors say, there are still signifi=
cant TODOs.<o:p></o:p></pre>
                <pre><o:p>&nbsp;</o:p></pre>
                <pre>Are we in a state yet where we can say whether this =
is the right<o:p></o:p></pre>
                <pre><o:p>&nbsp;</o:p></pre>
                <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
                <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
              </blockquote>
            </blockquote>
          </blockquote>
          <pre>direction for the WG to take?<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:=
p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;<o:p></o:p></pre>
          <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
            <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
              <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">=

                <pre>If yes, is it the right direction?&nbsp; Should we a=
dopt it as a WG<o:p></o:p></pre>
                <pre><o:p>&nbsp;</o:p></pre>
                <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
                <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
              </blockquote>
            </blockquote>
          </blockquote>
          <pre>document?<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:=
p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;<o:p></o:p></pre>
          <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
            <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
              <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">=

                <pre>If you don't think we can say yet, is there a set of=
 technical<o:p></o:p></pre>
                <pre><o:p>&nbsp;</o:p></pre>
                <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
                <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
              </blockquote>
            </blockquote>
          </blockquote>
          <pre>decisions you would like the authors to take with priority=
?<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:=
p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;<o:p></o:p></pre>
          <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
            <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
              <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">=

                <pre>Note that once a document has become a WG document, =
the authors act<o:p></o:p></pre>
                <pre><o:p>&nbsp;</o:p></pre>
                <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
                <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
              </blockquote>
            </blockquote>
          </blockquote>
          <pre>as editors for the working group, making (and usually fles=
hing out the<o:p></o:p></pre>
          <pre>details of) any change that the WG decides it needs.<o:p><=
/o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:=
p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;<o:p></o:p></pre>
          <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
            <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
              <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">=

                <pre>If you think we can still improve the draft, this is=
 not an obstacle<o:p></o:p></pre>
                <pre><o:p>&nbsp;</o:p></pre>
                <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
                <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
              </blockquote>
            </blockquote>
          </blockquote>
          <pre>to making it a WG document.<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:=
p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;<o:p></o:p></pre>
          <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
            <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
              <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">=

                <pre>But of course we shouldn't do that if we intend to r=
everse its<o:p></o:p></pre>
                <pre><o:p>&nbsp;</o:p></pre>
                <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
                <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
              </blockquote>
            </blockquote>
          </blockquote>
          <pre>fundamental technical direction.<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:=
p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;<o:p></o:p></pre>
          <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
            <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
              <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">=

                <pre>In order to stay roughly in sync with our milestones=
, we should<o:p></o:p></pre>
                <pre><o:p>&nbsp;</o:p></pre>
                <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
                <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
              </blockquote>
            </blockquote>
          </blockquote>
          <pre>reach at a decision on how to go forward this week.<o:p></=
o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:=
p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;<o:p></o:p></pre>
          <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
            <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">
              <blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt;">=

                <pre>Gruesse, Carsten<o:p></o:p></pre>
                <pre><o:p>&nbsp;</o:p></pre>
                <pre>_______________________________________________<o:p>=
</o:p></pre>
                <pre>core mailing list<o:p></o:p></pre>
                <pre><a moz-do-not-send=3D"true"
 href=3D"mailto:core@ietf.org">core@ietf.org</a><o:p></o:p></pre>
                <pre><a moz-do-not-send=3D"true"
 href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org=
/mailman/listinfo/core</a><o:p></o:p></pre>
                <pre><o:p>&nbsp;</o:p></pre>
                <pre><o:p>&nbsp;</o:p></pre>
                <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
                <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
              </blockquote>
              <pre>_______________________________________________<o:p></=
o:p></pre>
              <pre>core mailing list<o:p></o:p></pre>
              <pre><a moz-do-not-send=3D"true" href=3D"mailto:core@ietf.o=
rg">core@ietf.org</a><o:p></o:p></pre>
              <pre><a moz-do-not-send=3D"true"
 href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org=
/mailman/listinfo/core</a><o:p></o:p></pre>
              <pre><o:p>&nbsp;</o:p></pre>
              <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
              <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
            </blockquote>
            <pre>--<o:p></o:p></pre>
            <pre>Zach Shelby, Chief Nerd, Sensinode Ltd.<o:p></o:p></pre>=

            <pre><a moz-do-not-send=3D"true" href=3D"http://zachshelby.or=
g">http://zachshelby.org</a>&nbsp; - My blog "On the Internet of Things<a=

 moz-do-not-send=3D"true" href=3D"http://6lowpan.net-Mybook">"<o:p></o:p>=
</a></pre>
            <pre><span class=3D"MsoHyperlink"><a moz-do-not-send=3D"true"=

 href=3D"http://6lowpan.net-Mybook">http://6lowpan.net - My book "</a></s=
pan>6LoWPAN: The Wireless Embedded Internet"<o:p></o:p></pre>
            <pre>Mobile: +358 40 7796297<o:p></o:p></pre>
            <pre><o:p>&nbsp;</o:p></pre>
            <pre><o:p>&nbsp;</o:p></pre>
            <pre><o:p>&nbsp;</o:p></pre>
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp; <o:p></o:p></pre>
            <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;<o:p></o:p></pre>
          </blockquote>
          <pre>_______________________________________________<o:p></o:p>=
</pre>
          <pre>core mailing list<o:p></o:p></pre>
          <pre><a moz-do-not-send=3D"true" href=3D"mailto:core@ietf.org">=
core@ietf.org</a><o:p></o:p></pre>
          <pre><a moz-do-not-send=3D"true"
 href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org=
/mailman/listinfo/core</a><o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>--------------------------------<o:p></o:p></pre>
          <pre>Onzo is a limited company number 06097997 registered in En=
gland&amp;&nbsp;&nbsp; Wales. The<o:p></o:p></pre>
          <pre>registered office is 6 Great Newport Street, London, WC2H =
7JB, United Kingdom.<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>This email message may contain confidential and/or privile=
ged information, and<o:p></o:p></pre>
          <pre>is intended solely for the addressee(s). If you have recei=
ved this email in<o:p></o:p></pre>
          <pre>error, please notify Onzo immediately. Unauthorised copyin=
g, disclosure or<o:p></o:p></pre>
          <pre>distribution of the material in this email is forbidden.<o=
:p></o:p></pre>
          <pre>--------------------------------<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>_______________________________________________<o:p></o:p>=
</pre>
          <pre>core mailing list<o:p></o:p></pre>
          <pre><a moz-do-not-send=3D"true" href=3D"mailto:core@ietf.org">=
core@ietf.org</a><o:p></o:p></pre>
          <pre><a moz-do-not-send=3D"true"
 href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org=
/mailman/listinfo/core</a><o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>__________________________________________________________=
____________<o:p></o:p></pre>
          <pre>This email has been scanned by the MessageLabs Email Secur=
ity System.<o:p></o:p></pre>
          <pre>__________________________________________________________=
____________<o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>_______________________________________________<o:p></o:p>=
</pre>
          <pre>core mailing list<o:p></o:p></pre>
          <pre><a moz-do-not-send=3D"true" href=3D"mailto:core@ietf.org">=
core@ietf.org</a><o:p></o:p></pre>
          <pre><a moz-do-not-send=3D"true"
 href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org=
/mailman/listinfo/core</a><o:p></o:p></pre>
          <pre><o:p>&nbsp;</o:p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:=
p></pre>
          <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;<o:p></o:p></pre>
        </blockquote>
        <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
        <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p><=
/pre>
      </blockquote>
      <pre>_______________________________________________<o:p></o:p></pr=
e>
      <pre>core mailing list<o:p></o:p></pre>
      <pre><a moz-do-not-send=3D"true" href=3D"mailto:core@ietf.org">core=
@ietf.org</a><o:p></o:p></pre>
      <pre><a moz-do-not-send=3D"true"
 href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org=
/mailman/listinfo/core</a><o:p></o:p></pre>
      <pre><o:p>&nbsp;</o:p></pre>
      <pre>--------------------------------<o:p></o:p></pre>
      <pre>Onzo is a limited company number 06097997 registered in Englan=
d&amp;&nbsp; Wales. The<o:p></o:p></pre>
      <pre>registered office is 6 Great Newport Street, London, WC2H 7JB,=
 United Kingdom.<o:p></o:p></pre>
      <pre><o:p>&nbsp;</o:p></pre>
      <pre>This email message may contain confidential and/or privileged =
information, and<o:p></o:p></pre>
      <pre>is intended solely for the addressee(s). If you have received =
this email in<o:p></o:p></pre>
      <pre>error, please notify Onzo immediately. Unauthorised copying, d=
isclosure or<o:p></o:p></pre>
      <pre>distribution of the material in this email is forbidden.<o:p><=
/o:p></pre>
      <pre>--------------------------------<o:p></o:p></pre>
      <pre><o:p>&nbsp;</o:p></pre>
      <pre>&nbsp;&nbsp;&nbsp;&nbsp; <o:p></o:p></pre>
      <pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
    </blockquote>
    <pre>&nbsp;&nbsp; <o:p></o:p></pre>
    <pre>&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>
  </blockquote>
  <pre><o:p>&nbsp;</o:p></pre>
  <pre>_______________________________________________<o:p></o:p></pre>
  <pre>core mailing list<o:p></o:p></pre>
  <pre><a moz-do-not-send=3D"true" href=3D"mailto:core@ietf.org">core@iet=
f.org</a><o:p></o:p></pre>
  <pre><a moz-do-not-send=3D"true"
 href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org=
/mailman/listinfo/core</a><o:p></o:p></pre>
  <pre>_______________________________________________<o:p></o:p></pre>
  <pre>core mailing list<o:p></o:p></pre>
  <pre><a moz-do-not-send=3D"true" href=3D"mailto:core@ietf.org">core@iet=
f.org</a><o:p></o:p></pre>
  <pre><a moz-do-not-send=3D"true"
 href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org=
/mailman/listinfo/core</a><o:p></o:p></pre>
  <pre><o:p>&nbsp;</o:p></pre>
  <pre>&nbsp; <o:p></o:p></pre>
  </div>
</blockquote>
</body>
</html>

--------------070107090206070909090407--

--------------ms050308070407020607000203
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIJKzCC
AvAwggJZoAMCAQICEHQVhhxGmCATv+IPne+OkB8wDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UE
BhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMT
I1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA5MDgyOTE2NTcwM1oX
DTEwMDgyOTE2NTcwM1owTTEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEqMCgG
CSqGSIb3DQEJARYbcm9iZXJ0LmNyYWdpZUBncmlkbWVyZ2UuY29tMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAtuQTYz8HUA37wa1PMyVnREeRwT3jtzGO6epyiCCaVeJkP76G
KdnNapg0jyuzDfRqSMW0n570toMF9FTpD34hDvtHcnMDboU7MSKFV2VyOOlTB3eHJfRn2Jtl
o9mSeW1qIIOwRReV6v50OxmijmeGFAn82Y1QrtyKDQxhl0HhEmY4jonziMyQ5gKlO5TM+CxY
hV0zXCLHfp9QjLG7bwZx6F0ChSHvRaf5ZlLKQSI2BGAx/GtP5l4ME7+kq4icmbV0g6m1AH9Y
LYYKV9rOx9SilPpTJdwn7GY/Qop4VSmdsaDBlXieBbjKqPN/CEqFmlxjjPFihorkeyC1T2R5
CqB41QIDAQABozgwNjAmBgNVHREEHzAdgRtyb2JlcnQuY3JhZ2llQGdyaWRtZXJnZS5jb20w
DAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQUFAAOBgQCTQ5bjbW8th9Yy/xbAgmc070Y/DLPR
RwOu51zamGFNffSpiPDJsLg4Bu9QZqhDylPm3AriHGp9MVL8Ei4h5krygmgHLE0mNYFsJt35
90wdK7z3dXtV/nOD0+rFR6Y9oUGf916rO0madex0KbosqrUuZ1NGVh/Q5/7H0mAEg+1EWzCC
AvAwggJZoAMCAQICEHQVhhxGmCATv+IPne+OkB8wDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UE
BhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMT
I1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA5MDgyOTE2NTcwM1oX
DTEwMDgyOTE2NTcwM1owTTEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEqMCgG
CSqGSIb3DQEJARYbcm9iZXJ0LmNyYWdpZUBncmlkbWVyZ2UuY29tMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAtuQTYz8HUA37wa1PMyVnREeRwT3jtzGO6epyiCCaVeJkP76G
KdnNapg0jyuzDfRqSMW0n570toMF9FTpD34hDvtHcnMDboU7MSKFV2VyOOlTB3eHJfRn2Jtl
o9mSeW1qIIOwRReV6v50OxmijmeGFAn82Y1QrtyKDQxhl0HhEmY4jonziMyQ5gKlO5TM+CxY
hV0zXCLHfp9QjLG7bwZx6F0ChSHvRaf5ZlLKQSI2BGAx/GtP5l4ME7+kq4icmbV0g6m1AH9Y
LYYKV9rOx9SilPpTJdwn7GY/Qop4VSmdsaDBlXieBbjKqPN/CEqFmlxjjPFihorkeyC1T2R5
CqB41QIDAQABozgwNjAmBgNVHREEHzAdgRtyb2JlcnQuY3JhZ2llQGdyaWRtZXJnZS5jb20w
DAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQUFAAOBgQCTQ5bjbW8th9Yy/xbAgmc070Y/DLPR
RwOu51zamGFNffSpiPDJsLg4Bu9QZqhDylPm3AriHGp9MVL8Ei4h5krygmgHLE0mNYFsJt35
90wdK7z3dXtV/nOD0+rFR6Y9oUGf916rO0madex0KbosqrUuZ1NGVh/Q5/7H0mAEg+1EWzCC
Az8wggKooAMCAQICAQ0wDQYJKoZIhvcNAQEFBQAwgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQI
EwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENv
bnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xJDAi
BgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVy
c29uYWwtZnJlZW1haWxAdGhhd3RlLmNvbTAeFw0wMzA3MTcwMDAwMDBaFw0xMzA3MTYyMzU5
NTlaMGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBM
dGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQTCBnzAN
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxKY8VXNV+065yplaHmjAdQRwnd/p/6Me7L3N9Vvy
Gna9fww6YfK/Uc4B1OVQCjDXAmNaLIkVcI7dyfArhVqqP3FWy688Cwfn8R+RNiQqE88r1fOC
dz0Dviv+uxg+B79AgAJk16emu59l0cUqVIUPSAR/p7bRPGEEQB5kGXJgt/sCAwEAAaOBlDCB
kTASBgNVHRMBAf8ECDAGAQH/AgEAMEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwudGhh
d3RlLmNvbS9UaGF3dGVQZXJzb25hbEZyZWVtYWlsQ0EuY3JsMAsGA1UdDwQEAwIBBjApBgNV
HREEIjAgpB4wHDEaMBgGA1UEAxMRUHJpdmF0ZUxhYmVsMi0xMzgwDQYJKoZIhvcNAQEFBQAD
gYEASIzRUIPqCy7MDaNmrGcPf6+svsIXoUOWlJ1/TCG4+DYfqi2fNi/A9BxQIJNwPP2t4WFi
w9k6GX6EsZkbAMUaC4J0niVQlGLH2ydxVyWN3amcOY6MIE9lX5Xa9/eH1sYITq726jTlEBpb
NU1341YheILcIRk13iSx0x1G/11fZU8xggNxMIIDbQIBATB2MGIxCzAJBgNVBAYTAlpBMSUw
IwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUg
UGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQQIQdBWGHEaYIBO/4g+d746QHzAJBgUrDgMC
GgUAoIIB0DAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xMDA1
MjgwOTUzMDNaMCMGCSqGSIb3DQEJBDEWBBSAQpTQUfi9uZ0yJpflfr8c2hhjHzBfBgkqhkiG
9w0BCQ8xUjBQMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAOBggqhkiG9w0DAgICAIAwDQYI
KoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgwgYUGCSsGAQQBgjcQBDF4MHYw
YjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4x
LDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBAhB0FYYcRpgg
E7/iD53vjpAfMIGHBgsqhkiG9w0BCRACCzF4oHYwYjELMAkGA1UEBhMCWkExJTAjBgNVBAoT
HFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25h
bCBGcmVlbWFpbCBJc3N1aW5nIENBAhB0FYYcRpggE7/iD53vjpAfMA0GCSqGSIb3DQEBAQUA
BIIBABZjCLew3mo5SDn63kPSZAIXqiH4drBcAjK0WCVhZT45H3La19kUV7fMfCwZ8jXe+tcj
lbbqIdDGQBZkRR1hIwdQpef4egD9WmgWVpBBZoezGHhquBjT2WI+w4Rv+mZLFu9LnpLRwf1g
txlhyGvwTnsNlNtE8SSF552vs4Ov+kgCHcyBbEESMc9Ez1pKzcD4TxqUGata4adqJ7xEXuN2
SgfU9yT2F2z4veWrjnFxrl1xAS/7T0xZIrJPz4LqQcjZgcfW0KDg4y+Q6xX4ZVd/04k63+7R
vsyFWU4OrfGzlc7yv7ad2Au+x3CTlCKWThNjg29bBknmIop7DiqebsbhkZsAAAAAAAA=
--------------ms050308070407020607000203--

From apezzuto@cisco.com  Fri May 28 03:51:10 2010
Return-Path: <apezzuto@cisco.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 5A8533A67FF for <core@core3.amsl.com>; Fri, 28 May 2010 03:51:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.348
X-Spam-Level: 
X-Spam-Status: No, score=-2.348 tagged_above=-999 required=5 tests=[AWL=3.350,  BAYES_50=0.001, HTML_MESSAGE=0.001, MANGLED_TOOL=2.3, 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 a+wXL8PzIrS1 for <core@core3.amsl.com>; Fri, 28 May 2010 03:51:04 -0700 (PDT)
Received: from sj-iport-6.cisco.com (sj-iport-6.cisco.com [171.71.176.117]) by core3.amsl.com (Postfix) with ESMTP id 0263D3A67E5 for <core@ietf.org>; Fri, 28 May 2010 03:51:04 -0700 (PDT)
Authentication-Results: sj-iport-6.cisco.com; dkim=neutral (message not signed) header.i=none
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AuIFAGs9/0urR7Hu/2dsb2JhbACBP4RNmBpxo32aLQKCc4IfBA
X-IronPort-AV: E=Sophos;i="4.53,317,1272844800";  d="scan'208,217";a="536584788"
Received: from sj-core-5.cisco.com ([171.71.177.238]) by sj-iport-6.cisco.com with ESMTP; 28 May 2010 10:50:40 +0000
Received: from xbh-ams-101.cisco.com (xbh-ams-101.cisco.com [144.254.74.71]) by sj-core-5.cisco.com (8.13.8/8.14.3) with ESMTP id o4SAodaG029249; Fri, 28 May 2010 10:50:39 GMT
Received: from xmb-ams-106.cisco.com ([144.254.74.81]) by xbh-ams-101.cisco.com with Microsoft SMTPSVC(6.0.3790.3959);  Fri, 28 May 2010 12:50:21 +0200
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01CAFE53.915C6D66"
Date: Fri, 28 May 2010 12:50:20 +0200
Message-ID: <0D212BD466921646B58854FB79092CEC021F4E91@XMB-AMS-106.cisco.com>
In-Reply-To: <4BFF927F.1090208@gridmerge.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [core] Subscribe/Notify for CoAP
Thread-Index: Acr+S5xOmLTNS4vzSsOAs3nxsuLG8QABNXgA
References: <OF97EC852F.8A85DCEB-ONC1257726.0051887E-C1257726.005677A7@schneider-electric.com><3602E0C6-1E2E-4164-A208-A874128325AF@sensinode.com><4BFB3A66.5080700@cisco.com><E4DBD8AB11D2E54F89B23D7CD1065D8C0105621D@onzosbs2k3.ONZO.local><324781C3-5548-474D-8995-EC327ED08209@sensinode.com>	<4BFC5368.2010602@cisco.com> <0D212BD466921646B58854FB79092CEC0216121C@XMB-AMS-106.cisco.com> <4BFD63D3.3040207@gridmerge.com> <0D212BD466921646B58854FB79092CEC021F4C22@XMB-AMS-106.cisco.com> <4BFF927F.1090208@gridmerge.com>
From: "Adriano Pezzuto (apezzuto)" <apezzuto@cisco.com>
To: <robert.cragie@gridmerge.com>
X-OriginalArrivalTime: 28 May 2010 10:50:21.0334 (UTC) FILETIME=[91AE4B60:01CAFE53]
Cc: core <core@ietf.org>
Subject: Re: [core] Subscribe/Notify for CoAP
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, 28 May 2010 10:51:10 -0000

This is a multi-part message in MIME format.

------_=_NextPart_001_01CAFE53.915C6D66
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hi Roberto,

I understand your point and personally agree on M2M is quite different =
from web page model. On the architectural RESTful style, the method =
information tells the server what to do with data kept in the URI =
information.

=20

So strictly speaking, both NOTIFY and SUBSCRIBE are message types not  =
methods!

=20

Adriano=20

=20

From: Robert Cragie [mailto:robert.cragie@gridmerge.com]=20
Sent: venerd=EC 28 maggio 2010 11.53
To: Adriano Pezzuto (apezzuto)
Cc: Paul Duffy (paduffy); Zach Shelby; core
Subject: Re: [core] Subscribe/Notify for CoAP

=20

I think the point here is that there are two levels we are considering.

At the lowest (foundation) level, there are the transaction messages as =
described below. This provides a flexible mechanism for the application =
with regard to synchronicity and threading. This is important for the =
types of devices CoAP is being aimed at.

Above that, the methods can be used according to the architectural =
style. So in this case, it is RESTful (COnstrained Restful =
Environments), which will naturally limit the number of methods and how =
transactions occur.

The actual architecture using a combination of the methods and messages =
also depends on what is required at the application layer. Consider a =
typical client which wants to subscribe to a resource. That client =
controls the feed of data but needs a component which is capable of =
handling (possibly buffering) the data it receives through =
notifications. Is this a separate server? Or would we want to consider =
it part of an enhanced client model which is able to process feeds of =
data? These are the sort of models which have led to the myriad of =
solutions (GENA, Webhooks, long polling, pubsubhubbub, RESTMS etc.) =
based around HTTP which are all essentially ingenious ways of getting =
around the limitations imposed by HTTP and how it is processed for =
anything which deviates from the classic web page access model.

I think the aim of CoAP should be clean from the word go with regard to =
supporting these more peer-to-peer transactions, where the client can =
exist on either entity and both entities can feed data to each other; =
typical in M2M applications.

Robert

Robert Cragie (Pacific Gas & Electric)

Gridmerge Ltd.
89 Greenfield Crescent,
Wakefield, WF4 4WA, UK
+44 1924 910888
+1 415 513 0064
http://www.gridmerge.com <http://www.gridmerge.com/>=20


On 27/05/2010 7:08 PM, Adriano Pezzuto (apezzuto) wrote:=20

Hi Robert,

=20

in my personal opinion, the option 1a) brings some sort of ambiguity to =
CoAP specs.

=20

My be my understatement of new CoAP specs is not so deep,  but now we =
have 5 methods and 3 message types: request, response and notify. Which =
methods are allowed with which messages types?

I suppose you have to use PUT/POST method with notify message for asynch =
data notification. How to make a subscribe? I suppose you would use a =
SUBSCRIBE method with request/response message or SUBSCRIBE with notify =
message? Also what about POST/DELETE methods in a notify message? They =
not make any sense..

=20

I think the choice is between: option 1) -> only CRUD methods and option =
1b) -> CRUD + SUB/NOTIFY methods, keeping in mind cost/benefits of both =
solutions.

=20

Adriano

=20

From: Robert Cragie [mailto:robert.cragie@gridmerge.com]=20
Sent: mercoled=EC 26 maggio 2010 20.09
To: Adriano Pezzuto (apezzuto)
Cc: Paul Duffy (paduffy); Zach Shelby; core
Subject: Re: [core] Subscribe/Notify for CoAP

=20

Hi Adrian,

I would also prefer to keep the protocol in CoAP asynchronous. You can =
always map an asynchronous protocol to a synchronous one but, as we see =
in HTTP, it always ends up as a kludge to do it the other way round. The =
efforts which have been gone to to make HTTP quasi-asynchronous via all =
the schemes mentioned below and many more besides (all non-interoperable =
of course) is testament to how important this is for M2M communication.

So, back to Zach's list, I favor 1a) for the following reasons:

Foundation level of messages:

1.	request/response can be asynchronous or synchronous messages (as =
there is a transaction ID in there)
2.	notify is an asynchronous message

Derived methods:

I think it makes sense to add a pub/sub model as a useful mechanism for =
M2M.

So, looking at it the other way round: It will be entirely possible to =
translate whatever is currently built on HTTP to CoAP based on the =
above, with all its restrictions regarding synchronous and client/server =
transactions. What may be harder is to translate directly is a =
CoAP-based application to HTTP. So I guess the question is: Do we want =
to be hamstrung to synchronous client/server transactions as dictated by =
HTTP and provide a direct mapping to HTTP, then have to come up with =
similar kludges for asynchronous peer-to-peer transactions as has been =
done in numerous ways for HTTP, or do we want to define the protocol =
cleanly to start with and accept that some sort of transaction =
relaying/conversion would have to take place at a mapping node?

Robert

Robert Cragie (Pacific Gas & Electric)

Gridmerge Ltd.
89 Greenfield Crescent,
Wakefield, WF4 4WA, UK
+44 1924 910888
+1 415 513 0064
http://www.gridmerge.com <http://www.gridmerge.com/>=20


On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote:=20

Hi,
it looks to me that CoAP should use an explicit sub/notify mechanism =
since this is the core of the machine-to-machine interaction model.
HTTP suffers of this lack and we have seen a plethora of solutions to =
give an asynch taste to it. Webhooks and websockets are only the lasts =
of the list.
As someone has already pointed out on this list, it is theoretically =
possible to describe sub/notify using only CRUD methods but it looks a =
little bit tricky and verbose.
=20
Now we have a chance to build from scratch a new protocol with and I =
think using explicit sub/notify methods with a clear and well defined =
semantic is the best option. It is easily understanding from every =
developer and will prevent to build other fanny solutions on top of the =
CoAP. HTTP does not have this well defined semantic and (for hundreds of =
other reasons also) it is not used as wide protocol for =
machine-to-machine communication.
=20
CoAP - as binary protocol - and with an explicit asynch model has a =
chance to be a really wide protocol for M2M communication not only for =
constrained environments.
=20
my 2 cents
=20
- adriano
=20
-----Original Message-----
From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of =
Paul Duffy (paduffy)
Sent: mercoled=EC 26 maggio 2010 0.47
To: Zach Shelby
Cc: core
Subject: Re: [core] Subscribe/Notify for CoAP
=20
On 5/25/2010 6:41 PM, Zach Shelby wrote:
 =20

	Hi,
	=20
	On May 26, 2010, at 12:23 AM, Charles Palmer wrote:
	=20
	  =20
	   =20

		Hi folks
		=20
		It occurs to me that CoRE should be keeping a close eye on ZigBee =
SE2.0 work, so that it is as easy as possible for ZigBee SE to use CoRE =
when ready. That suggests to me that we should align with their =
subscribe/notify process.
		=20
		    =20
		     =20

	I am not sure I understand that. I mean, ZigBee SE2.0 is defining an =
application specific subscribe/notify mechanism for that purpose so far =
for HTTP. This uses standard HTTP methods and some custom payload and =
REST interfaces. CoAP Req/Res is already totally compatible with SE2.0 =
in that respect, so alignment is already OK there. Nothing stopping =
someone from using SE2.0 over CoAP.
	=20
	Specifying a native susbcription/notify into CoAP is another matter. We =
can't adopt a solution specific to one application as that won't solve =
the problems of other applications nor general HTTP mapping at all =
(probably would make it worse). It seems that for the near future there =
will be a bunch of HTTP push mechanisms in use without any clear =
standard appearing - or am I wrong there?
	  =20
	   =20

=20
=20
=20
If COAP extends HTTP semantics with new subscription methods, it will=20
not be possible to easily interchange HTTP/COAP, and translation=20
gateways will become more complex to implement.
=20
=20
=20
 =20

	Zach
	=20
	  =20
	   =20

		Regards - Charles
		=20
		=20
		-----Original Message-----
		From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of Paul Duffy
		Sent: 25 May 2010 03:48
		To: Zach Shelby
		Cc: core
		Subject: Re: [core] Subscribe/Notify for CoAP
		=20
		Recommend something like #2, primarily to avoid introducing non HTTP
		method semantics, simplifying HTTP/COAP translation.gateways, etc.
		=20
		=20
		On 5/24/2010 11:49 AM, Zach Shelby wrote:
		    =20
		     =20

			(thread renamed)
			=20
			We have two different paths with regard to a subscribe/notify =
mechanism for CoAP:
			=20
			1. Use specific Subscription and Notify mechanisms for CoAP as HTTP =
really does not include this concept.
			1a) Notify as a message and SUBSCRIBE as a method. This is currently =
used in coap-01.
			1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but we =
had a good list discussion about this leading to a. In practice it =
doesn't make a big difference if notification is a message or method.
			=20
			2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0 =
proposal or GENA.
			=20
			So far we have focused on 1 in the WG, and every now and again 2 =
comes up. At least I am not convinced that we need to suffer the =
drawbacks of HTTP here. Anyways 2 does not help our mapping to HTTP in =
reality very much as there is no standard way of doing this over HTTP. =
Thus a CoAP-HTTP proxy may end up anyways translating between multiple =
HTTP frameworks depending on the application. So instead of doing a CoAP =
Notify/Subscribe to Webhooks mapping, you will could end up having to do =
a CoAP Webhooks to HTTP GENA mapping.
			=20
			      =20
			       =20

		=20
		I don't understand this last para.  If CoAP sticks to the semantics of
		the current HTTP methods, would this not offer a fairly =
straightforward
		translation to/from HTTP?
		=20
		=20
		    =20
		     =20

				 From what I have heard so far 1 still seems like a wise choice, =
although I need to look at Webhooks more deeply. In reality many =
applications specify their own way of doing a push interface using REST =
methods and specific payloads (ZigBee SE2.0 is such an example). That is =
just fine, and might be used instead of a specific CoAP notify/subscribe =
in that case. So 1 doesn't prevent the application using its own =
mechanism, it just provides a native way for doing push.
				        =20
				         =20

			What do people think?
			=20
			Zach
			=20
			On May 17, 2010, at 6:44 PM, =
matthieu.vial@fr.non.schneider-electric.com wrote:
			=20
			=20
			      =20
			       =20

				Hi,
				=20
				My comments about the subscribe/notify mechanism of Zigbee IP.
				=20
				Pros:
				- Derived from the webhooks concept
				- If used by CORE it will be easier to map to HTTP because it uses =
only CRUD verbs.
				- The subscription message is extendable and could support advanced =
options (delays, increment, ...)
				- Only one listening port whatever the transport binding is.
				=20
				Cons:
				- No interoperability without well known URIs and a well defined =
subscription message format (Not sure CoAP draft is the right place to =
specify this).
				- XML/EXI is too complex to be the required format for the default =
subscription/notification mechanism.
				- The notification should not require a subsequent GET to retrieve =
the content.
				- Subresource subscription is redundant.
				=20
				Hope this could help,
				Matthieu
				=20
				=20
				<graycol.gif>"Charles Palmer"<charles.palmer@onzo.com> =
<mailto:charles.palmer@onzo.com>=20
				=20
				=20
				=20
				=20
				"Charles Palmer"<charles.palmer@onzo.com> =
<mailto:charles.palmer@onzo.com>=20
				Envoy=E9 par : core-bounces@ietf.org
				15/05/2010 14:06
				=20
				<ecblank.gif>
				A
				<ecblank.gif>
				"core"<core@ietf.org> <mailto:core@ietf.org>=20
				<ecblank.gif>
				cc
				<ecblank.gif>
				<ecblank.gif>
				Objet
				<ecblank.gif>
				Re: [core] Selecting a WG document for CoAP
				<ecblank.gif> <ecblank.gif>
				=20
				Dear all
				=20
				Those interested in the subscribe/notify discussion might like to =
look
				at the draft Smart Energy Profile 2.0 Application Protocol
				Specification. It is available here:
				=
http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicApp
				licationProfile.aspx
				=20
				It manages subscribe/notify by using POST. This seems to remove the =
need
				for SUBSCRIBE and notify.
				=20
				"Imagine a host A, which exposes a resource at http{s}://A/resource =
and
				a second host B, which wishes to learn of changes to this resource. =
To
				facilitate a subscription/ notification mechanism, A would expose a
				resource http{s}://A/sub and B would expose a resource =
http{s}://B/ntfy.
				To subscribe to notifications regarding http{s}://A/resource, B =
would
				send a POST to the address http{s}://A/sub/B containing the URI of =
the
				resource of interest (http{s}://A/resource) and the URI of B's
				notification resource (http{s}://B/ntfy). Following this =
subscription
				step, should A wish to notify B of a change to the resource =
addressed at
				http{s}://A/resource, A would send a POST to the address
				http{s}://B/ntfy containing the URI of the resource changed
				(http{s}://A/resource) and the URI of A's subscription resource
				(http{s}://A/sub/B), should A wish to change its subscription. The =
host
				B can then query the resource (or not) at its leisure."
				=20
				Sleepy nodes are not allowed to subscribe, and must poll.
				=20
				Regards - Charles Palmer
				=20
				-----Original Message-----
				From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of
				Angelo P. Castellani
				Sent: 14 May 2010 13:14
				To: Zach Shelby
				Cc: core
				Subject: Re: [core] Selecting a WG document for CoAP
				=20
				Zach,
				=20
				thanks for the comments, but please refer to my most recent e-mail =
for
				a more specific list of technical issues I'm pointing to.
				=20
				I want to do only a little integration to what I've written there.
				=20
				In my very personal opinion, to maximize adherence with the REST =
model
				and minimize implementation effort SUBSCRIBE and NOTIFY should be
				mapped to methods (as discussed many times together...).
				=20
				Uniform interface principle (Fielding PhD dissertation Section =
5.1.5,
				"The central feature that distinguishes the REST architectural style
				[...]") states that to simplify the software architecture, resource
				interfaces/interfaces should be as general as possible.
				=20
				I agree with this principle in this specific case, mainly because
				handling a special message type for notify leads node software =
design
				to a more complex architecture.
				=20
				The reason is that this new message type requires special handling =
and
				introduces a complexity in the software modularization.
				=20
				Best,
				Angelo
				=20
				On Fri, May 14, 2010 at 13:06, Zach Shelby<zach@sensinode.com> =
<mailto:zach@sensinode.com>    wrote:
				=20
				        =20
				         =20

					Hi Angelo,
					=20
					On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:
					=20
					=20
					          =20
					           =20

					Dear C. Bormann, all,
					=20
					before deciding for the final direction, I've the following
					observations about draft-shelby-core-coap-01
					=20
					While I mostly share Zach's view of the protocol approach, and
					appreciate many aspects of the proposal, there are in my opinion
					=20
					            =20
					             =20

				still
				=20
				        =20
				         =20

					some open issues that need to be at least discussed before the
					=20
					            =20
					             =20

				current
				=20
				        =20
				         =20

					document can be selected.
					=20
					            =20
					             =20

					Of course there are plenty of open issues. Remember that working =
group
					=20
					          =20
					           =20

				documents still undertake as much change and improvement as the WG
				wants, so by no means is coap-01 set in stone. I would expect at =
least
				5-10 more revisions still along the way.  Already several of your =
ideas
				have been integrated into coap-01, and several more are under
				consideration, so it is coming along. Patience ;-)
				=20
				        =20
				         =20

					          =20
					           =20

					In particular, I would like to highlight the following:
					=20
					a) As it is now, it is not possible to have a straightforward
					translation of HTTP ->   CoAP and viceversa: see
					http://www.ietf.org/mail-archive/web/core/current/msg00133.html =
(this
					impacts the scalability of the web service model too)
					=20
					            =20
					             =20

					In coap-01 the Method names are now identical to HTTP methods. The
					=20
					          =20
					           =20

				Req/Res interaction is a direct translation. The URI hierarchy is
				compatible, and the URI binary code format we are still working on
				obviously. The only thing that takes some state to translate is
				Subscribe/Notify. But note, Subscribe/Notify takes some state no =
matter
				how you do it, even with HTTP-HTTP there is no clean and easy way to
				handle subscriptions.
				=20
				        =20
				         =20

					          =20
					           =20

					b) Moreover, CoAP's implementation is not as simple as it should =
be.
					I've investigated the implementation and some design choices (as
					Options) are leading to very high program complexity (ROM) on a
					MSP430-based device.
					=20
					            =20
					             =20

					This we can definitely improve, and already made several =
optimizations
					=20
					          =20
					           =20

				from -00 to -01. Here I need some very concrete proposals though. =
Also
				remember that many things are optional, for example subscribe/notify =
is
				not required if you don't need it.
				=20
				        =20
				         =20

					          =20
					           =20

					c) Finally when comparing HTTP message size with CoAP message size,
					the resulting compression isn't as good as you may expect.
					=20
					Example:
					HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
					CoAP: 24 B with options parsing procedure requiring an added
					implementation complexity
					=20
					            =20
					             =20

					Right, that is not how it will work in practice. Working with a =
real
					=20
					          =20
					           =20

				HTTP server that HTTP header will be more complex, and on the CoAP =
side
				you would chose shorter URLs. The biggest improvement possible here =
is
				from using binary coded URLs of course. We need to look at a wider =
range
				of interactions and real HTTP headers as well to check that we are
				efficient enough.
				=20
				        =20
				         =20

					          =20
					           =20

					Addressing all these points potentially leads to major technical
					modifications (especially point a) on the current draft, hence it =
is
					appropriate in my opinion to discuss these points before making the
					final decision.
					=20
					            =20
					             =20

					I am not sure what else you have in mind for a). If we just forget
					=20
					          =20
					           =20

				about Subscribe/Notify then you are good to go. But then you are =
also
				not fulfilling the charter or the industry needs in that respect.
				=20
				        =20
				         =20

					Thanks,
					Zach
					=20
					=20
					          =20
					           =20

					Best regards,
					=20
					Angelo P. Castellani
					=20
					=20
					On Mon, May 10, 2010 at 18:51, Carsten Bormann<cabo@tzi.org> =
<mailto:cabo@tzi.org>    wrote:
					=20
					            =20
					             =20

					The CORE WG has a milestone to select a WG document for CoAP in
					=20
					              =20
					               =20

				April:
				=20
				        =20
				         =20

					http://datatracker.ietf.org/wg/core/charter/
					...
					Apr 2010        Select WG document for basis of the CoAP protocol
					=20
					Of the various documents that have been contributed,
					=20
					              =20
					               =20

				draft-shelby-core-coap has significant discussion, as well as the
				largest number of updates (including a previous version that was =
still
				called -6lowapp-coap).
				=20
				        =20
				         =20

					Today, another updated version of that draft was announced.  See
					http://www.ietf.org/mail-archive/web/core/current/msg00138.html
					for the announcement and
					http://tools.ietf.org/html/draft-shelby-core-coap-01
					for the draft itself.
					=20
					However, as the authors say, there are still significant TODOs.
					=20
					Are we in a state yet where we can say whether this is the right
					=20
					              =20
					               =20

				direction for the WG to take?
				=20
				        =20
				         =20

					If yes, is it the right direction?  Should we adopt it as a WG
					=20
					              =20
					               =20

				document?
				=20
				        =20
				         =20

					If you don't think we can say yet, is there a set of technical
					=20
					              =20
					               =20

				decisions you would like the authors to take with priority?
				=20
				        =20
				         =20

					Note that once a document has become a WG document, the authors act
					=20
					              =20
					               =20

				as editors for the working group, making (and usually fleshing out =
the
				details of) any change that the WG decides it needs.
				=20
				        =20
				         =20

					If you think we can still improve the draft, this is not an =
obstacle
					=20
					              =20
					               =20

				to making it a WG document.
				=20
				        =20
				         =20

					But of course we shouldn't do that if we intend to reverse its
					=20
					              =20
					               =20

				fundamental technical direction.
				=20
				        =20
				         =20

					In order to stay roughly in sync with our milestones, we should
					=20
					              =20
					               =20

				reach at a decision on how to go forward this week.
				=20
				        =20
				         =20

					Gruesse, Carsten
					=20
					_______________________________________________
					core mailing list
					core@ietf.org
					https://www.ietf.org/mailman/listinfo/core
					=20
					=20
					              =20
					               =20

					_______________________________________________
					core mailing list
					core@ietf.org
					https://www.ietf.org/mailman/listinfo/core
					=20
					            =20
					             =20

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

				_______________________________________________
				core mailing list
				core@ietf.org
				https://www.ietf.org/mailman/listinfo/core
				=20
				--------------------------------
				Onzo is a limited company number 06097997 registered in England&   =
Wales. The
				registered office is 6 Great Newport Street, London, WC2H 7JB, =
United Kingdom.
				=20
				This email message may contain confidential and/or privileged =
information, and
				is intended solely for the addressee(s). If you have received this =
email in
				error, please notify Onzo immediately. Unauthorised copying, =
disclosure or
				distribution of the material in this email is forbidden.
				--------------------------------
				=20
				_______________________________________________
				core mailing list
				core@ietf.org
				https://www.ietf.org/mailman/listinfo/core
				=20
				=
______________________________________________________________________
				This email has been scanned by the MessageLabs Email Security =
System.
				=
______________________________________________________________________
				=20
				_______________________________________________
				core mailing list
				core@ietf.org
				https://www.ietf.org/mailman/listinfo/core
				=20
				        =20
				         =20

			      =20
			       =20

		_______________________________________________
		core mailing list
		core@ietf.org
		https://www.ietf.org/mailman/listinfo/core
		=20
		--------------------------------
		Onzo is a limited company number 06097997 registered in England&  =
Wales. The
		registered office is 6 Great Newport Street, London, WC2H 7JB, United =
Kingdom.
		=20
		This email message may contain confidential and/or privileged =
information, and
		is intended solely for the addressee(s). If you have received this =
email in
		error, please notify Onzo immediately. Unauthorised copying, =
disclosure or
		distribution of the material in this email is forbidden.
		--------------------------------
		=20
		    =20
		     =20

	  =20
	   =20

=20
_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core
_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core
=20
 =20

------_=_NextPart_001_01CAFE53.915C6D66
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<meta name=3DGenerator content=3D"Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:Verdana;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";
	color:black;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p
	{mso-style-priority:99;
	mso-margin-top-alt:auto;
	margin-right:0cm;
	mso-margin-bottom-alt:auto;
	margin-left:0cm;
	font-size:8.0pt;
	font-family:"Verdana","sans-serif";
	color:black;}
pre
	{mso-style-priority:99;
	mso-style-link:"HTML Preformatted Char";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New";
	color:black;}
p.name, li.name, div.name
	{mso-style-name:name;
	mso-style-priority:99;
	mso-margin-top-alt:auto;
	margin-right:0cm;
	mso-margin-bottom-alt:auto;
	margin-left:0cm;
	font-size:12.0pt;
	font-family:"Verdana","sans-serif";
	color:black;}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:Consolas;
	color:black;}
span.EmailStyle21
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle22
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page Section1
	{size:612.0pt 792.0pt;
	margin:70.85pt 2.0cm 2.0cm 2.0cm;}
div.Section1
	{page:Section1;}
 /* List Definitions */
 @list l0
	{mso-list-id:1606958670;
	mso-list-template-ids:-89992438;}
ol
	{margin-bottom:0cm;}
ul
	{margin-bottom:0cm;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body bgcolor=3Dwhite lang=3DEN-US link=3Dblue vlink=3Dpurple>

<div class=3DSection1>

<p class=3DMsoNormal><span =
style=3D'font-family:"Calibri","sans-serif";color:#1F497D'>Hi
Roberto,<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-family:"Calibri","sans-serif";color:#1F497D'>I
understand your point and personally agree on M2M is quite different =
from web
page model. On the architectural RESTful style, the method information =
tells
the server what to do with data kept in the URI =
information.<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o=
:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-family:"Calibri","sans-serif";color:#1F497D'>So
strictly speaking, both NOTIFY and SUBSCRIBE are message types not =
=A0methods!<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o=
:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-family:"Calibri","sans-serif";color:#1F497D'>Adriano
<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div>

<div style=3D'border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt =
0cm 0cm 0cm'>

<p class=3DMsoNormal><b><span =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";
color:windowtext'>From:</span></b><span =
style=3D'font-size:10.0pt;font-family:
"Tahoma","sans-serif";color:windowtext'> Robert Cragie
[mailto:robert.cragie@gridmerge.com] <br>
<b>Sent:</b> venerd=EC 28 maggio 2010 11.53<br>
<b>To:</b> Adriano Pezzuto (apezzuto)<br>
<b>Cc:</b> Paul Duffy (paduffy); Zach Shelby; core<br>
<b>Subject:</b> Re: [core] Subscribe/Notify for =
CoAP<o:p></o:p></span></p>

</div>

</div>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal>I think the point here is that there are two levels =
we are
considering.<br>
<br>
At the lowest (foundation) level, there are the transaction messages as
described below. This provides a flexible mechanism for the application =
with
regard to synchronicity and threading. This is important for the types =
of
devices CoAP is being aimed at.<br>
<br>
Above that, the methods can be used according to the architectural =
style. So in
this case, it is RESTful (COnstrained Restful Environments), which will
naturally limit the number of methods and how transactions occur.<br>
<br>
The actual architecture using a combination of the methods and messages =
also
depends on what is required at the application layer. Consider a typical =
client
which wants to subscribe to a resource. That client controls the feed of =
data
but needs a component which is capable of handling (possibly buffering) =
the
data it receives through notifications. Is this a separate server? Or =
would we
want to consider it part of an enhanced client model which is able to =
process
feeds of data? These are the sort of models which have led to the myriad =
of
solutions (GENA, Webhooks, long polling, pubsubhubbub, RESTMS etc.) =
based
around HTTP which are all essentially ingenious ways of getting around =
the
limitations imposed by HTTP and how it is processed for anything which =
deviates
from the classic web page access model.<br>
<br>
I think the aim of CoAP should be clean from the word go with regard to
supporting these more peer-to-peer transactions, where the client can =
exist on
either entity and both entities can feed data to each other; typical in =
M2M
applications.<br>
<br>
Robert<o:p></o:p></p>

<div>

<p class=3Dname>Robert Cragie (Pacific Gas &amp; =
Electric)<o:p></o:p></p>

<p>Gridmerge Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 1924 910888<br>
+1 415 513 0064<br>
<a =
href=3D"http://www.gridmerge.com/">http://www.gridmerge.com</a><o:p></o:p=
></p>

</div>

<p class=3DMsoNormal><br>
On 27/05/2010 7:08 PM, Adriano Pezzuto (apezzuto) wrote: <o:p></o:p></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Hi Robert,</span><o:p></o:p></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>&nbsp;</span><o:p></o:p></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>in my personal opinion, the option 1a) brings some sort =
of
ambiguity to CoAP specs.</span><o:p></o:p></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>&nbsp;</span><o:p></o:p></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>My be my understatement of new CoAP specs is not so deep,
&nbsp;but now we have 5 methods and 3 message types: request, response =
and
notify. Which methods are allowed with which messages =
types?</span><o:p></o:p></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>I suppose you have to use PUT/POST method with notify =
message
for asynch data notification. How to make a subscribe? I suppose you =
would use
a SUBSCRIBE method with request/response message or SUBSCRIBE with =
notify
message? Also what about POST/DELETE methods in a notify message? They =
not make
any sense..</span><o:p></o:p></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>&nbsp;</span><o:p></o:p></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>I think the choice is between: option 1) -&gt; only CRUD =
methods
and option 1b) -&gt; CRUD + SUB/NOTIFY methods, keeping in mind =
cost/benefits
of both solutions.</span><o:p></o:p></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>&nbsp;</span><o:p></o:p></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Adriano</span><o:p></o:p></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>&nbsp;</span><o:p></o:p></p>

<div>

<div style=3D'border:none;border-top:solid windowtext =
1.0pt;padding:3.0pt 0cm 0cm 0cm;
border-color:-moz-use-text-color -moz-use-text-color'>

<p class=3DMsoNormal><b><span =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";
color:windowtext'>From:</span></b><span =
style=3D'font-size:10.0pt;font-family:
"Tahoma","sans-serif";color:windowtext'> Robert Cragie [<a
href=3D"mailto:robert.cragie@gridmerge.com">mailto:robert.cragie@gridmerg=
e.com</a>]
<br>
<b>Sent:</b> mercoled=EC 26 maggio 2010 20.09<br>
<b>To:</b> Adriano Pezzuto (apezzuto)<br>
<b>Cc:</b> Paul Duffy (paduffy); Zach Shelby; core<br>
<b>Subject:</b> Re: [core] Subscribe/Notify for =
CoAP</span><o:p></o:p></p>

</div>

</div>

<p class=3DMsoNormal>&nbsp;<o:p></o:p></p>

<p class=3DMsoNormal>Hi Adrian,<br>
<br>
I would also prefer to keep the protocol in CoAP asynchronous. You can =
always
map an asynchronous protocol to a synchronous one but, as we see in =
HTTP, it
always ends up as a kludge to do it the other way round. The efforts =
which have
been gone to to make HTTP quasi-asynchronous via all the schemes =
mentioned
below and many more besides (all non-interoperable of course) is =
testament to
how important this is for M2M communication.<br>
<br>
So, back to Zach's list, I favor 1a) for the following reasons:<br>
<br>
Foundation level of messages:<o:p></o:p></p>

<ol style=3D'margin-top:0cm' start=3D1 type=3D1>
 <li class=3DMsoNormal style=3D'mso-list:l0 level1 =
lfo1'>request/response can be
     asynchronous or synchronous messages (as there is a transaction ID =
in
     there)<o:p></o:p></li>
 <li class=3DMsoNormal style=3D'mso-list:l0 level1 lfo1'>notify is an =
asynchronous
     message<o:p></o:p></li>
</ol>

<p class=3DMsoNormal>Derived methods:<br>
<br>
I think it makes sense to add a pub/sub model as a useful mechanism for =
M2M.<br>
<br>
So, looking at it the other way round: It will be entirely possible to
translate whatever is currently built on HTTP to CoAP based on the =
above, with
all its restrictions regarding synchronous and client/server =
transactions. What
may be harder is to translate directly is a CoAP-based application to =
HTTP. So
I guess the question is: Do we want to be hamstrung to synchronous
client/server transactions as dictated by HTTP and provide a direct =
mapping to
HTTP, then have to come up with similar kludges for asynchronous =
peer-to-peer
transactions as has been done in numerous ways for HTTP, or do we want =
to
define the protocol cleanly to start with and accept that some sort of
transaction relaying/conversion would have to take place at a mapping =
node?<br>
<br>
Robert<o:p></o:p></p>

<div>

<p class=3Dname>Robert Cragie (Pacific Gas &amp; =
Electric)<o:p></o:p></p>

<p>Gridmerge Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 1924 910888<br>
+1 415 513 0064<br>
<a =
href=3D"http://www.gridmerge.com/">http://www.gridmerge.com</a><o:p></o:p=
></p>

</div>

<p class=3DMsoNormal><br>
On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote: <o:p></o:p></p>

<pre>Hi,<o:p></o:p></pre><pre>it looks to me that CoAP should use an =
explicit sub/notify mechanism since this is the core of the =
machine-to-machine interaction model.<o:p></o:p></pre><pre>HTTP suffers =
of this lack and we have seen a plethora of solutions to give an asynch =
taste to it. Webhooks and websockets are only the lasts of the =
list.<o:p></o:p></pre><pre>As someone has already pointed out on this =
list, it is theoretically possible to describe sub/notify using only =
CRUD methods but it looks a little bit tricky and =
verbose.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>Now we have a =
chance to build from scratch a new protocol with and I think using =
explicit sub/notify methods with a clear and well defined semantic is =
the best option. It is easily understanding from every developer and =
will prevent to build other fanny solutions on top of the CoAP. HTTP =
does not have this well defined semantic and (for hundreds of other =
reasons also) it is not used as wide protocol for machine-to-machine =
communication.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>CoAP - =
as binary protocol - and with an explicit asynch model has a chance to =
be a really wide protocol for M2M communication not only for constrained =
environments.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>my 2 =
cents<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>- =
adriano<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>-----Original =
Message-----<o:p></o:p></pre><pre>From: <a
href=3D"mailto:core-bounces@ietf.org">core-bounces@ietf.org</a> [<a
href=3D"mailto:core-bounces@ietf.org">mailto:core-bounces@ietf.org</a>] =
On Behalf Of Paul Duffy (paduffy)<o:p></o:p></pre><pre>Sent: mercoled=EC =
26 maggio 2010 0.47<o:p></o:p></pre><pre>To: Zach =
Shelby<o:p></o:p></pre><pre>Cc: core<o:p></o:p></pre><pre>Subject: Re: =
[core] Subscribe/Notify for =
CoAP<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>On 5/25/2010 6:41 =
PM, Zach Shelby wrote:<o:p></o:p></pre><pre>&nbsp; <o:p></o:p></pre>

<blockquote =
style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Hi,<o:p></o:p></pre><=
pre>&nbsp;<o:p></o:p></pre><pre>On May 26, 2010, at 12:23 AM, Charles =
Palmer =
wrote:<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Hi =
folks<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>It occurs to me =
that CoRE should be keeping a close eye on ZigBee SE2.0 work, so that it =
is as easy as possible for ZigBee SE to use CoRE when ready. That =
suggests to me that we should align with their subscribe/notify =
process.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nb=
sp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pr=
e></blockquote>

<pre>I am not sure I understand that. I mean, ZigBee SE2.0 is defining =
an application specific subscribe/notify mechanism for that purpose so =
far for HTTP. This uses standard HTTP methods and some custom payload =
and REST interfaces. CoAP Req/Res is already totally compatible with =
SE2.0 in that respect, so alignment is already OK there. Nothing =
stopping someone from using SE2.0 over =
CoAP.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>Specifying a =
native susbcription/notify into CoAP is another matter. We can't adopt a =
solution specific to one application as that won't solve the problems of =
other applications nor general HTTP mapping at all (probably would make =
it worse). It seems that for the near future there will be a bunch of =
HTTP push mechanisms in use without any clear standard appearing - or am =
I wrong there?<o:p></o:p></pre><pre>&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquo=
te>

<pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;<o:p><=
/o:p></pre><pre>If COAP extends HTTP semantics with new subscription =
methods, it will <o:p></o:p></pre><pre>not be possible to easily =
interchange HTTP/COAP, and translation <o:p></o:p></pre><pre>gateways =
will become more complex to =
implement.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;<o:p></=
o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp; <o:p></o:p></pre>

<blockquote =
style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Zach<o:p></o:p></pre>=
<pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Regards =
- =
Charles<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;<o:p></o:p=
></pre><pre>-----Original Message-----<o:p></o:p></pre><pre>From: <a
href=3D"mailto:core-bounces@ietf.org">core-bounces@ietf.org</a> [<a
href=3D"mailto:core-bounces@ietf.org">mailto:core-bounces@ietf.org</a>] =
On Behalf Of Paul Duffy<o:p></o:p></pre><pre>Sent: 25 May 2010 =
03:48<o:p></o:p></pre><pre>To: Zach Shelby<o:p></o:p></pre><pre>Cc: =
core<o:p></o:p></pre><pre>Subject: Re: [core] Subscribe/Notify for =
CoAP<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>Recommend =
something like #2, primarily to avoid introducing non =
HTTP<o:p></o:p></pre><pre>method semantics, simplifying HTTP/COAP =
translation.gateways, =
etc.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></=
pre><pre>On 5/24/2010 11:49 AM, Zach Shelby =
wrote:<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pr=
e>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>(thread =
renamed)<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>We have two =
different paths with regard to a subscribe/notify mechanism for =
CoAP:<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>1. Use specific =
Subscription and Notify mechanisms for CoAP as HTTP really does not =
include this concept.<o:p></o:p></pre><pre>1a) Notify as a message and =
SUBSCRIBE as a method. This is currently used in =
coap-01.<o:p></o:p></pre><pre>1b) NOTIFY and SUBSCRIBE as methods. This =
was used in coap-00, but we had a good list discussion about this =
leading to a. In practice it doesn't make a big difference if =
notification is a message or =
method.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>2. Use an HTTP =
specific framework such as Webhooks, the ZigBee SE2.0 proposal or =
GENA.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>So far we have =
focused on 1 in the WG, and every now and again 2 comes up. At least I =
am not convinced that we need to suffer the drawbacks of HTTP here. =
Anyways 2 does not help our mapping to HTTP in reality very much as =
there is no standard way of doing this over HTTP. Thus a CoAP-HTTP proxy =
may end up anyways translating between multiple HTTP frameworks =
depending on the application. So instead of doing a CoAP =
Notify/Subscribe to Webhooks mapping, you will could end up having to do =
a CoAP Webhooks to HTTP GENA =
mapping.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:=
p></o:p></pre></blockquote>

<pre>&nbsp;<o:p></o:p></pre><pre>I don't understand this last =
para.&nbsp; If CoAP sticks to the semantics of<o:p></o:p></pre><pre>the =
current HTTP methods, would this not offer a fairly =
straightforward<o:p></o:p></pre><pre>translation to/from =
HTTP?<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;<o:p></o:p><=
/pre><pre>&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pr=
e>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote =
style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>&nbsp;From what I =
have heard so far 1 still seems like a wise choice, although I need to =
look at Webhooks more deeply. In reality many applications specify their =
own way of doing a push interface using REST methods and specific =
payloads (ZigBee SE2.0 is such an example). That is just fine, and might =
be used instead of a specific CoAP notify/subscribe in that case. So 1 =
doesn't prevent the application using its own mechanism, it just =
provides a native way for doing =
push.<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;<o:p></o:p></pre></blockquote>

<pre>What do people =
think?<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>Zach<o:p></o:p></=
pre><pre>&nbsp;<o:p></o:p></pre><pre>On May 17, 2010, at 6:44 PM, <a
href=3D"mailto:matthieu.vial@fr.non.schneider-electric.com">matthieu.vial=
@fr.non.schneider-electric.com</a> =
wrote:<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;<o:p></o:p>=
</pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:=
p></o:p></pre>

<blockquote =
style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Hi,<o:p></o:p></pre><=
pre>&nbsp;<o:p></o:p></pre><pre>My comments about the subscribe/notify =
mechanism of Zigbee =
IP.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>Pros:<o:p></o:p></pr=
e><pre>- Derived from the webhooks concept<o:p></o:p></pre><pre>- If =
used by CORE it will be easier to map to HTTP because it uses only CRUD =
verbs.<o:p></o:p></pre><pre>- The subscription message is extendable and =
could support advanced options (delays, increment, =
...)<o:p></o:p></pre><pre>- Only one listening port whatever the =
transport binding =
is.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>Cons:<o:p></o:p></pr=
e><pre>- No interoperability without well known URIs and a well defined =
subscription message format (Not sure CoAP draft is the right place to =
specify this).<o:p></o:p></pre><pre>- XML/EXI is too complex to be the =
required format for the default subscription/notification =
mechanism.<o:p></o:p></pre><pre>- The notification should not require a =
subsequent GET to retrieve the content.<o:p></o:p></pre><pre>- =
Subresource subscription is =
redundant.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>Hope this =
could =
help,<o:p></o:p></pre><pre>Matthieu<o:p></o:p></pre><pre>&nbsp;<o:p></o:p=
></pre><pre>&nbsp;<o:p></o:p></pre><pre>&lt;graycol.gif&gt;&quot;Charles =
Palmer&quot;<a
href=3D"mailto:charles.palmer@onzo.com">&lt;charles.palmer@onzo.com&gt;</=
a><o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pr=
e><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&quot;Char=
les Palmer&quot;<a
href=3D"mailto:charles.palmer@onzo.com">&lt;charles.palmer@onzo.com&gt;</=
a><o:p></o:p></pre><pre>Envoy=E9 par : <a
href=3D"mailto:core-bounces@ietf.org">core-bounces@ietf.org</a><o:p></o:p=
></pre><pre>15/05/2010 =
14:06<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&lt;ecblank.gif&gt=
;<o:p></o:p></pre><pre>A<o:p></o:p></pre><pre>&lt;ecblank.gif&gt;<o:p></o=
:p></pre><pre>&quot;core&quot;<a
href=3D"mailto:core@ietf.org">&lt;core@ietf.org&gt;</a><o:p></o:p></pre><=
pre>&lt;ecblank.gif&gt;<o:p></o:p></pre><pre>cc<o:p></o:p></pre><pre>&lt;=
ecblank.gif&gt;<o:p></o:p></pre><pre>&lt;ecblank.gif&gt;<o:p></o:p></pre>=
<pre>Objet<o:p></o:p></pre><pre>&lt;ecblank.gif&gt;<o:p></o:p></pre><pre>=
Re: [core] Selecting a WG document for =
CoAP<o:p></o:p></pre><pre>&lt;ecblank.gif&gt; =
&lt;ecblank.gif&gt;<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>Dear=
 all<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>Those interested =
in the subscribe/notify discussion might like to =
look<o:p></o:p></pre><pre>at the draft Smart Energy Profile 2.0 =
Application Protocol<o:p></o:p></pre><pre>Specification. It is available =
here:<o:p></o:p></pre><pre><a
href=3D"http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20Pu=
blicApp">http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20P=
ublicApp</a><o:p></o:p></pre><pre>licationProfile.aspx<o:p></o:p></pre><p=
re>&nbsp;<o:p></o:p></pre><pre>It manages subscribe/notify by using =
POST. This seems to remove the need<o:p></o:p></pre><pre>for SUBSCRIBE =
and =
notify.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&quot;Imagine a =
host A, which exposes a resource at http{s}://A/resource =
and<o:p></o:p></pre><pre>a second host B, which wishes to learn of =
changes to this resource. To<o:p></o:p></pre><pre>facilitate a =
subscription/ notification mechanism, A would expose =
a<o:p></o:p></pre><pre>resource http{s}://A/sub and B would expose a =
resource http{s}://B/ntfy.<o:p></o:p></pre><pre>To subscribe to =
notifications regarding http{s}://A/resource, B =
would<o:p></o:p></pre><pre>send a POST to the address http{s}://A/sub/B =
containing the URI of the<o:p></o:p></pre><pre>resource of interest =
(http{s}://A/resource) and the URI of =
B's<o:p></o:p></pre><pre>notification resource (http{s}://B/ntfy). =
Following this subscription<o:p></o:p></pre><pre>step, should A wish to =
notify B of a change to the resource addressed =
at<o:p></o:p></pre><pre>http{s}://A/resource, A would send a POST to the =
address<o:p></o:p></pre><pre>http{s}://B/ntfy containing the URI of the =
resource changed<o:p></o:p></pre><pre>(http{s}://A/resource) and the URI =
of A's subscription resource<o:p></o:p></pre><pre>(http{s}://A/sub/B), =
should A wish to change its subscription. The =
host<o:p></o:p></pre><pre>B can then query the resource (or not) at its =
leisure.&quot;<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>Sleepy =
nodes are not allowed to subscribe, and must =
poll.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>Regards - Charles =
Palmer<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>-----Original =
Message-----<o:p></o:p></pre><pre>From: <a
href=3D"mailto:core-bounces@ietf.org">core-bounces@ietf.org</a> [<a
href=3D"mailto:core-bounces@ietf.org">mailto:core-bounces@ietf.org</a>] =
On Behalf Of<o:p></o:p></pre><pre>Angelo P. =
Castellani<o:p></o:p></pre><pre>Sent: 14 May 2010 =
13:14<o:p></o:p></pre><pre>To: Zach Shelby<o:p></o:p></pre><pre>Cc: =
core<o:p></o:p></pre><pre>Subject: Re: [core] Selecting a WG document =
for =
CoAP<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>Zach,<o:p></o:p></p=
re><pre>&nbsp;<o:p></o:p></pre><pre>thanks for the comments, but please =
refer to my most recent e-mail for<o:p></o:p></pre><pre>a more specific =
list of technical issues I'm pointing =
to.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>I want to do only a =
little integration to what I've written =
there.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>In my very =
personal opinion, to maximize adherence with the REST =
model<o:p></o:p></pre><pre>and minimize implementation effort SUBSCRIBE =
and NOTIFY should be<o:p></o:p></pre><pre>mapped to methods (as =
discussed many times =
together...).<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>Uniform =
interface principle (Fielding PhD dissertation Section =
5.1.5,<o:p></o:p></pre><pre>&quot;The central feature that distinguishes =
the REST architectural style<o:p></o:p></pre><pre>[...]&quot;) states =
that to simplify the software architecture, =
resource<o:p></o:p></pre><pre>interfaces/interfaces should be as general =
as possible.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>I agree =
with this principle in this specific case, mainly =
because<o:p></o:p></pre><pre>handling a special message type for notify =
leads node software design<o:p></o:p></pre><pre>to a more complex =
architecture.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>The =
reason is that this new message type requires special handling =
and<o:p></o:p></pre><pre>introduces a complexity in the software =
modularization.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>Best,<o:=
p></o:p></pre><pre>Angelo<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pr=
e>On Fri, May 14, 2010 at 13:06, Zach Shelby<a
href=3D"mailto:zach@sensinode.com">&lt;zach@sensinode.com&gt;</a>&nbsp;&n=
bsp; =
wrote:<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Hi =
Angelo,<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>On May 13, =
2010, at 14:24 , Angelo P. Castellani =
wrote:<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;<o:p></o:p>=
</pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Dear C. =
Bormann, all,<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>before =
deciding for the final direction, I've the =
following<o:p></o:p></pre><pre>observations about =
draft-shelby-core-coap-01<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pr=
e>While I mostly share Zach's view of the protocol approach, =
and<o:p></o:p></pre><pre>appreciate many aspects of the proposal, there =
are in my =
opinion<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquote>

</blockquote>

<pre>still<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>some =
open issues that need to be at least discussed before =
the<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquote>

</blockquote>

<pre>current<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>document =
can be =
selected.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquote>

<pre>Of course there are plenty of open issues. Remember that working =
group<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquote>

<pre>documents still undertake as much change and improvement as the =
WG<o:p></o:p></pre><pre>wants, so by no means is coap-01 set in stone. I =
would expect at least<o:p></o:p></pre><pre>5-10 more revisions still =
along the way.&nbsp; Already several of your =
ideas<o:p></o:p></pre><pre>have been integrated into coap-01, and =
several more are under<o:p></o:p></pre><pre>consideration, so it is =
coming along. Patience =
;-)<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;<o:p></o:p></pre>

<blockquote =
style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>In =
particular, I would like to highlight the =
following:<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>a) As it is =
now, it is not possible to have a =
straightforward<o:p></o:p></pre><pre>translation of HTTP =
-&gt;&nbsp;&nbsp; CoAP and viceversa: see<o:p></o:p></pre><pre><a
href=3D"http://www.ietf.org/mail-archive/web/core/current/msg00133.html">=
http://www.ietf.org/mail-archive/web/core/current/msg00133.html</a> =
(this<o:p></o:p></pre><pre>impacts the scalability of the web service =
model =
too)<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquote>

<pre>In coap-01 the Method names are now identical to HTTP methods. =
The<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquote>

<pre>Req/Res interaction is a direct translation. The URI hierarchy =
is<o:p></o:p></pre><pre>compatible, and the URI binary code format we =
are still working on<o:p></o:p></pre><pre>obviously. The only thing that =
takes some state to translate is<o:p></o:p></pre><pre>Subscribe/Notify. =
But note, Subscribe/Notify takes some state no =
matter<o:p></o:p></pre><pre>how you do it, even with HTTP-HTTP there is =
no clean and easy way to<o:p></o:p></pre><pre>handle =
subscriptions.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;<o:p></o:p></pre>

<blockquote =
style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>b) =
Moreover, CoAP's implementation is not as simple as it should =
be.<o:p></o:p></pre><pre>I've investigated the implementation and some =
design choices (as<o:p></o:p></pre><pre>Options) are leading to very =
high program complexity (ROM) on a<o:p></o:p></pre><pre>MSP430-based =
device.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquote>

<pre>This we can definitely improve, and already made several =
optimizations<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquote>

<pre>from -00 to -01. Here I need some very concrete proposals though. =
Also<o:p></o:p></pre><pre>remember that many things are optional, for =
example subscribe/notify is<o:p></o:p></pre><pre>not required if you =
don't need =
it.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;<o:p></o:p></pre>

<blockquote =
style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>c) =
Finally when comparing HTTP message size with CoAP message =
size,<o:p></o:p></pre><pre>the resulting compression isn't as good as =
you may =
expect.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>Example:<o:p></o=
:p></pre><pre>HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 =
B<o:p></o:p></pre><pre>CoAP: 24 B with options parsing procedure =
requiring an added<o:p></o:p></pre><pre>implementation =
complexity<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquote>

<pre>Right, that is not how it will work in practice. Working with a =
real<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquote>

<pre>HTTP server that HTTP header will be more complex, and on the CoAP =
side<o:p></o:p></pre><pre>you would chose shorter URLs. The biggest =
improvement possible here is<o:p></o:p></pre><pre>from using binary =
coded URLs of course. We need to look at a wider =
range<o:p></o:p></pre><pre>of interactions and real HTTP headers as well =
to check that we are<o:p></o:p></pre><pre>efficient =
enough.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;<o:p></o:p></pre>

<blockquote =
style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>

<blockquote =
style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Addressing all these =
points potentially leads to major =
technical<o:p></o:p></pre><pre>modifications (especially point a) on the =
current draft, hence it is<o:p></o:p></pre><pre>appropriate in my =
opinion to discuss these points before making =
the<o:p></o:p></pre><pre>final =
decision.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquote>

<pre>I am not sure what else you have in mind for a). If we just =
forget<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquote>

<pre>about Subscribe/Notify then you are good to go. But then you are =
also<o:p></o:p></pre><pre>not fulfilling the charter or the industry =
needs in that =
respect.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;<o:p></o:p></pre>

<blockquote =
style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Thanks,<o:p></o:p></p=
re><pre>Zach<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;<o:p>=
</o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Best =
regards,<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>Angelo P. =
Castellani<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;<o:p></=
o:p></pre><pre>On Mon, May 10, 2010 at 18:51, Carsten Bormann<a
href=3D"mailto:cabo@tzi.org">&lt;cabo@tzi.org&gt;</a>&nbsp;&nbsp; =
wrote:<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>The CORE =
WG has a milestone to select a WG document for CoAP =
in<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquot=
e>

</blockquote>

</blockquote>

<pre>April:<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre><a
href=3D"http://datatracker.ietf.org/wg/core/charter/">http://datatracker.=
ietf.org/wg/core/charter/</a><o:p></o:p></pre><pre>...<o:p></o:p></pre><p=
re>Apr 2010&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Select WG document =
for basis of the CoAP =
protocol<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>Of the various =
documents that have been =
contributed,<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
 =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquot=
e>

</blockquote>

</blockquote>

<pre>draft-shelby-core-coap has significant discussion, as well as =
the<o:p></o:p></pre><pre>largest number of updates (including a previous =
version that was still<o:p></o:p></pre><pre>called =
-6lowapp-coap).<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Today, =
another updated version of that draft was announced.&nbsp; =
See<o:p></o:p></pre><pre><a
href=3D"http://www.ietf.org/mail-archive/web/core/current/msg00138.html">=
http://www.ietf.org/mail-archive/web/core/current/msg00138.html</a><o:p><=
/o:p></pre><pre>for the announcement and<o:p></o:p></pre><pre><a
href=3D"http://tools.ietf.org/html/draft-shelby-core-coap-01">http://tool=
s.ietf.org/html/draft-shelby-core-coap-01</a><o:p></o:p></pre><pre>for =
the draft =
itself.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>However, as the =
authors say, there are still significant =
TODOs.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>Are we in a =
state yet where we can say whether this is the =
right<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquot=
e>

</blockquote>

</blockquote>

<pre>direction for the WG to =
take?<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>If yes, =
is it the right direction?&nbsp; Should we adopt it as a =
WG<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquot=
e>

</blockquote>

</blockquote>

<pre>document?<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>If you =
don't think we can say yet, is there a set of =
technical<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquot=
e>

</blockquote>

</blockquote>

<pre>decisions you would like the authors to take with =
priority?<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Note =
that once a document has become a WG document, the authors =
act<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquot=
e>

</blockquote>

</blockquote>

<pre>as editors for the working group, making (and usually fleshing out =
the<o:p></o:p></pre><pre>details of) any change that the WG decides it =
needs.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>If you =
think we can still improve the draft, this is not an =
obstacle<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquot=
e>

</blockquote>

</blockquote>

<pre>to making it a WG =
document.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>But of =
course we shouldn't do that if we intend to reverse =
its<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquot=
e>

</blockquote>

</blockquote>

<pre>fundamental technical =
direction.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>In order =
to stay roughly in sync with our milestones, we =
should<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquot=
e>

</blockquote>

</blockquote>

<pre>reach at a decision on how to go forward this =
week.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;<o:p></o:p></pre>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'>

<blockquote style=3D'margin-top:5.0pt;margin-bottom:5.0pt'><pre>Gruesse, =
Carsten<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>________________=
_______________________________<o:p></o:p></pre><pre>core mailing =
list<o:p></o:p></pre><pre><a
href=3D"mailto:core@ietf.org">core@ietf.org</a><o:p></o:p></pre><pre><a
href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</a><o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pr=
e>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquot=
e>

<pre>_______________________________________________<o:p></o:p></pre><pre=
>core mailing list<o:p></o:p></pre><pre><a
href=3D"mailto:core@ietf.org">core@ietf.org</a><o:p></o:p></pre><pre><a
href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</a><o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pr=
e>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquote>

<pre>--<o:p></o:p></pre><pre>Zach Shelby, Chief Nerd, Sensinode =
Ltd.<o:p></o:p></pre><pre><a
href=3D"http://zachshelby.org">http://zachshelby.org</a>&nbsp; - My blog =
&quot;On the Internet of Things<a
href=3D"http://6lowpan.net-Mybook">&quot;</a><o:p></o:p></pre><pre><span
class=3DMsoHyperlink><a =
href=3D"http://6lowpan.net-Mybook">http://6lowpan.net - My book =
&quot;</a></span>6LoWPAN: The Wireless Embedded =
Internet&quot;<o:p></o:p></pre><pre>Mobile: +358 40 =
7796297<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;<o:p></o:p=
></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquote>

<pre>_______________________________________________<o:p></o:p></pre><pre=
>core mailing list<o:p></o:p></pre><pre><a
href=3D"mailto:core@ietf.org">core@ietf.org</a><o:p></o:p></pre><pre><a
href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</a><o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pr=
e>--------------------------------<o:p></o:p></pre><pre>Onzo is a =
limited company number 06097997 registered in England&amp;&nbsp;&nbsp; =
Wales. The<o:p></o:p></pre><pre>registered office is 6 Great Newport =
Street, London, WC2H 7JB, United =
Kingdom.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>This email =
message may contain confidential and/or privileged information, =
and<o:p></o:p></pre><pre>is intended solely for the addressee(s). If you =
have received this email in<o:p></o:p></pre><pre>error, please notify =
Onzo immediately. Unauthorised copying, disclosure =
or<o:p></o:p></pre><pre>distribution of the material in this email is =
forbidden.<o:p></o:p></pre><pre>--------------------------------<o:p></o:=
p></pre><pre>&nbsp;<o:p></o:p></pre><pre>________________________________=
_______________<o:p></o:p></pre><pre>core mailing =
list<o:p></o:p></pre><pre><a
href=3D"mailto:core@ietf.org">core@ietf.org</a><o:p></o:p></pre><pre><a
href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</a><o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pr=
e>______________________________________________________________________<=
o:p></o:p></pre><pre>This email has been scanned by the MessageLabs =
Email Security =
System.<o:p></o:p></pre><pre>____________________________________________=
__________________________<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><p=
re>_______________________________________________<o:p></o:p></pre><pre>c=
ore mailing list<o:p></o:p></pre><pre><a
href=3D"mailto:core@ietf.org">core@ietf.org</a><o:p></o:p></pre><pre><a
href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</a><o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pr=
e>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;<o:p></o:p></pre></blockquote>

<pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:=
p></o:p></pre></blockquote>

<pre>_______________________________________________<o:p></o:p></pre><pre=
>core mailing list<o:p></o:p></pre><pre><a
href=3D"mailto:core@ietf.org">core@ietf.org</a><o:p></o:p></pre><pre><a
href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</a><o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pr=
e>--------------------------------<o:p></o:p></pre><pre>Onzo is a =
limited company number 06097997 registered in England&amp;&nbsp; Wales. =
The<o:p></o:p></pre><pre>registered office is 6 Great Newport Street, =
London, WC2H 7JB, United =
Kingdom.<o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pre>This email =
message may contain confidential and/or privileged information, =
and<o:p></o:p></pre><pre>is intended solely for the addressee(s). If you =
have received this email in<o:p></o:p></pre><pre>error, please notify =
Onzo immediately. Unauthorised copying, disclosure =
or<o:p></o:p></pre><pre>distribution of the material in this email is =
forbidden.<o:p></o:p></pre><pre>--------------------------------<o:p></o:=
p></pre><pre>&nbsp;<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pr=
e></blockquote>

<pre>&nbsp;&nbsp; =
<o:p></o:p></pre><pre>&nbsp;&nbsp;&nbsp;&nbsp;<o:p></o:p></pre></blockquo=
te>

<pre>&nbsp;<o:p></o:p></pre><pre>________________________________________=
_______<o:p></o:p></pre><pre>core mailing list<o:p></o:p></pre><pre><a
href=3D"mailto:core@ietf.org">core@ietf.org</a><o:p></o:p></pre><pre><a
href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</a><o:p></o:p></pre><pre>__________________________=
_____________________<o:p></o:p></pre><pre>core mailing =
list<o:p></o:p></pre><pre><a
href=3D"mailto:core@ietf.org">core@ietf.org</a><o:p></o:p></pre><pre><a
href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</a><o:p></o:p></pre><pre>&nbsp;<o:p></o:p></pre><pr=
e>&nbsp; <o:p></o:p></pre></div>

</body>

</html>

------_=_NextPart_001_01CAFE53.915C6D66--

From matthieu.vial@fr.non.schneider-electric.com  Fri May 28 04:52:01 2010
Return-Path: <matthieu.vial@fr.non.schneider-electric.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 9775B3A689E; Fri, 28 May 2010 04:52:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.407
X-Spam-Level: **
X-Spam-Status: No, score=2.407 tagged_above=-999 required=5 tests=[AWL=-1.742,  BAYES_50=0.001, HTML_FONT_FACE_BAD=0.884, HTML_MESSAGE=0.001, MANGLED_TOOL=2.3, RCVD_IN_DNSWL_LOW=-1, SARE_GIF_ATTACH=1.42, TVD_FW_GRAPHIC_NAME_MID=0.543]
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 c30m-vPD3sVg; Fri, 28 May 2010 04:51:57 -0700 (PDT)
Received: from mailX03.eud.schneider-electric.com (mailx03.eud.schneider-electric.com [205.167.7.41]) by core3.amsl.com (Postfix) with ESMTP id AAB3C3A6836; Fri, 28 May 2010 04:51:55 -0700 (PDT)
Received: from ATEUI01.schneider-electric.com ([10.198.14.9]) by mailX03.eud.schneider-electric.com with ESMTP id 2010052813415060-56535 ; Fri, 28 May 2010 13:41:50 +0200 
In-Reply-To: <0D212BD466921646B58854FB79092CEC021F4E91@XMB-AMS-106.cisco.com>
To: "Adriano Pezzuto (apezzuto)" <apezzuto@cisco.com>
X-Mailer: Lotus Notes Release 6.5.6 March 06, 2007
Message-ID: <OF54E90C1C.C8997A73-ONC1257731.003EAAE3-C1257731.004127C6@schneider-electric.com>
From: matthieu.vial@fr.non.schneider-electric.com
Date: Fri, 28 May 2010 13:51:40 +0200
MIME-Version: 1.0
X-MIMETrack: Serialize by Router on ATEUI01.Schneider-Electric.com/T/SVR/Schneider at 28/05/2010 13:51:45, Itemize by SMTP Server on AXEU3OUT.schneider-electric.com/X/SVR/SEIxtra at 28/05/2010 13:41:50, Serialize by Router on AXEU3OUT.schneider-electric.com/X/SVR/SEIxtra at 28/05/2010 13:41:51
Content-type: multipart/related;  Boundary="0__=4EBBFDA2DFAD2C738f9e8a93df938690918c4EBBFDA2DFAD2C73"
Cc: core-bounces@ietf.org, core <core@ietf.org>
Subject: Re: [core] Subscribe/Notify for CoAP
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, 28 May 2010 11:52:01 -0000

--0__=4EBBFDA2DFAD2C738f9e8a93df938690918c4EBBFDA2DFAD2C73
Content-type: multipart/alternative; 
	Boundary="1__=4EBBFDA2DFAD2C738f9e8a93df938690918c4EBBFDA2DFAD2C73"

--1__=4EBBFDA2DFAD2C738f9e8a93df938690918c4EBBFDA2DFAD2C73
Content-transfer-encoding: quoted-printable
Content-type: text/plain; charset=ISO-8859-1


> So strictly speaking, both NOTIFY and SUBSCRIBE are message types not=

methods!

SUBSCRIBE can be just an asynchronous GET on update  then I think it is=
 a
method and NOTIFY is an asynchronous response so a message.
But if we want to have selective notifications when a resource is creat=
ed,
updated or deleted then I think you're right NOTIFY and SUBSCRIBE are
messages.

Does that make sense ?

Matthieu





                                                                       =
    
             "Adriano Pezzuto                                          =
    
             (apezzuto)"                                               =
    
             <apezzuto@cisco.c                                         =
  A 
             om>                       <robert.cragie@gridmerge.com>   =
    
             Envoy=E9 par :                                            =
   cc 
             core-bounces@ietf         core <core@ietf.org>            =
    
             .org                                                    Ob=
jet 
                                       Re: [core] Subscribe/Notify for =
    
                                       CoAP                            =
    
             28/05/2010 12:50                                          =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    




Hi Roberto,
I understand your point and personally agree on M2M is quite different =
from
web page model. On the architectural RESTful style, the method informat=
ion
tells the server what to do with data kept in the URI information.

So strictly speaking, both NOTIFY and SUBSCRIBE are message types not
methods!

Adriano

From: Robert Cragie [mailto:robert.cragie@gridmerge.com]
Sent: venerd=EC 28 maggio 2010 11.53
To: Adriano Pezzuto (apezzuto)
Cc: Paul Duffy (paduffy); Zach Shelby; core
Subject: Re: [core] Subscribe/Notify for CoAP

I think the point here is that there are two levels we are considering.=


At the lowest (foundation) level, there are the transaction messages as=

described below. This provides a flexible mechanism for the application=

with regard to synchronicity and threading. This is important for the t=
ypes
of devices CoAP is being aimed at.

Above that, the methods can be used according to the architectural styl=
e.
So in this case, it is RESTful (COnstrained Restful Environments), whic=
h
will naturally limit the number of methods and how transactions occur.

The actual architecture using a combination of the methods and messages=

also depends on what is required at the application layer. Consider a
typical client which wants to subscribe to a resource. That client cont=
rols
the feed of data but needs a component which is capable of handling
(possibly buffering) the data it receives through notifications. Is thi=
s a
separate server? Or would we want to consider it part of an enhanced cl=
ient
model which is able to process feeds of data? These are the sort of mod=
els
which have led to the myriad of solutions (GENA, Webhooks, long polling=
,
pubsubhubbub, RESTMS etc.) based around HTTP which are all essentially
ingenious ways of getting around the limitations imposed by HTTP and ho=
w it
is processed for anything which deviates from the classic web page acce=
ss
model.

I think the aim of CoAP should be clean from the word go with regard to=

supporting these more peer-to-peer transactions, where the client can e=
xist
on either entity and both entities can feed data to each other; typical=
 in
M2M applications.

Robert


Robert Cragie (Pacific Gas & Electric)


Gridmerge Ltd.
89 Greenfield Crescent,
Wakefield, WF4 4WA, UK
+44 1924 910888
+1 415 513 0064
http://www.gridmerge.com

On 27/05/2010 7:08 PM, Adriano Pezzuto (apezzuto) wrote:
Hi Robert,

in my personal opinion, the option 1a) brings some sort of ambiguity to=

CoAP specs.

My be my understatement of new CoAP specs is not so deep,  but now we h=
ave
5 methods and 3 message types: request, response and notify. Which meth=
ods
are allowed with which messages types?
I suppose you have to use PUT/POST method with notify message for async=
h
data notification. How to make a subscribe? I suppose you would use a
SUBSCRIBE method with request/response message or SUBSCRIBE with notify=

message? Also what about POST/DELETE methods in a notify message? They =
not
make any sense..

I think the choice is between: option 1) -> only CRUD methods and optio=
n
1b) -> CRUD + SUB/NOTIFY methods, keeping in mind cost/benefits of both=

solutions.

Adriano

From: Robert Cragie [mailto:robert.cragie@gridmerge.com]
Sent: mercoled=EC 26 maggio 2010 20.09
To: Adriano Pezzuto (apezzuto)
Cc: Paul Duffy (paduffy); Zach Shelby; core
Subject: Re: [core] Subscribe/Notify for CoAP

Hi Adrian,

I would also prefer to keep the protocol in CoAP asynchronous. You can
always map an asynchronous protocol to a synchronous one but, as we see=
 in
HTTP, it always ends up as a kludge to do it the other way round. The
efforts which have been gone to to make HTTP quasi-asynchronous via all=
 the
schemes mentioned below and many more besides (all non-interoperable of=

course) is testament to how important this is for M2M communication.

So, back to Zach's list, I favor 1a) for the following reasons:

Foundation level of messages:
   1. request/response can be asynchronous or synchronous messages (as
      there is a transaction ID in there)
   2. notify is an asynchronous message
Derived methods:

I think it makes sense to add a pub/sub model as a useful mechanism for=

M2M.

So, looking at it the other way round: It will be entirely possible to
translate whatever is currently built on HTTP to CoAP based on the abov=
e,
with all its restrictions regarding synchronous and client/server
transactions. What may be harder is to translate directly is a CoAP-bas=
ed
application to HTTP. So I guess the question is: Do we want to be hamst=
rung
to synchronous client/server transactions as dictated by HTTP and provi=
de a
direct mapping to HTTP, then have to come up with similar kludges for
asynchronous peer-to-peer transactions as has been done in numerous way=
s
for HTTP, or do we want to define the protocol cleanly to start with an=
d
accept that some sort of transaction relaying/conversion would have to =
take
place at a mapping node?

Robert


Robert Cragie (Pacific Gas & Electric)


Gridmerge Ltd.
89 Greenfield Crescent,
Wakefield, WF4 4WA, UK
+44 1924 910888
+1 415 513 0064
http://www.gridmerge.com

On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote:
Hi,
it looks to me that CoAP should use an explicit sub/notify mechanism si=
nce
this is the core of the machine-to-machine interaction model.
HTTP suffers of this lack and we have seen a plethora of solutions to g=
ive
an asynch taste to it. Webhooks and websockets are only the lasts of th=
e
list.
As someone has already pointed out on this list, it is theoretically
possible to describe sub/notify using only CRUD methods but it looks a
little bit tricky and verbose.

Now we have a chance to build from scratch a new protocol with and I th=
ink
using explicit sub/notify methods with a clear and well defined semanti=
c is
the best option. It is easily understanding from every developer and wi=
ll
prevent to build other fanny solutions on top of the CoAP. HTTP does no=
t
have this well defined semantic and (for hundreds of other reasons also=
) it
is not used as wide protocol for machine-to-machine communication.

CoAP - as binary protocol - and with an explicit asynch model has a cha=
nce
to be a really wide protocol for M2M communication not only for constra=
ined
environments.

my 2 cents

- adriano

-----Original Message-----
From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of=

Paul Duffy (paduffy)
Sent: mercoled=EC 26 maggio 2010 0.47
To: Zach Shelby
Cc: core
Subject: Re: [core] Subscribe/Notify for CoAP

On 5/25/2010 6:41 PM, Zach Shelby wrote:

      Hi,

      On May 26, 2010, at 12:23 AM, Charles Palmer wrote:



            Hi folks

            It occurs to me that CoRE should be keeping a close eye on
            ZigBee SE2.0 work, so that it is as easy as possible for Zi=
gBee
            SE to use CoRE when ready. That suggests to me that we shou=
ld
            align with their subscribe/notify process.



      I am not sure I understand that. I mean, ZigBee SE2.0 is defining=
 an
      application specific subscribe/notify mechanism for that purpose =
so
      far for HTTP. This uses standard HTTP methods and some custom pay=
load
      and REST interfaces. CoAP Req/Res is already totally compatible w=
ith
      SE2.0 in that respect, so alignment is already OK there. Nothing
      stopping someone from using SE2.0 over CoAP.

      Specifying a native susbcription/notify into CoAP is another matt=
er.
      We can't adopt a solution specific to one application as that won=
't
      solve the problems of other applications nor general HTTP mapping=
 at
      all (probably would make it worse). It seems that for the near fu=
ture
      there will be a bunch of HTTP push mechanisms in use without any
      clear standard appearing - or am I wrong there?





If COAP extends HTTP semantics with new subscription methods, it will
not be possible to easily interchange HTTP/COAP, and translation
gateways will become more complex to implement.




      Zach



            Regards - Charles


            -----Original Message-----
            From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] =
On
            Behalf Of Paul Duffy
            Sent: 25 May 2010 03:48
            To: Zach Shelby
            Cc: core
            Subject: Re: [core] Subscribe/Notify for CoAP

            Recommend something like #2, primarily to avoid introducing=
 non
            HTTP
            method semantics, simplifying HTTP/COAP translation.gateway=
s,
            etc.


            On 5/24/2010 11:49 AM, Zach Shelby wrote:


                  (thread renamed)

                  We have two different paths with regard to a
                  subscribe/notify mechanism for CoAP:

                  1. Use specific Subscription and Notify mechanisms fo=
r
                  CoAP as HTTP really does not include this concept.
                  1a) Notify as a message and SUBSCRIBE as a method. Th=
is
                  is currently used in coap-01.
                  1b) NOTIFY and SUBSCRIBE as methods. This was used in=

                  coap-00, but we had a good list discussion about this=

                  leading to a. In practice it doesn't make a big
                  difference if notification is a message or method.

                  2. Use an HTTP specific framework such as Webhooks, t=
he
                  ZigBee SE2.0 proposal or GENA.

                  So far we have focused on 1 in the WG, and every now =
and
                  again 2 comes up. At least I am not convinced that we=

                  need to suffer the drawbacks of HTTP here. Anyways 2 =
does
                  not help our mapping to HTTP in reality very much as
                  there is no standard way of doing this over HTTP. Thu=
s a
                  CoAP-HTTP proxy may end up anyways translating betwee=
n
                  multiple HTTP frameworks depending on the application=
. So
                  instead of doing a CoAP Notify/Subscribe to Webhooks
                  mapping, you will could end up having to do a CoAP
                  Webhooks to HTTP GENA mapping.




            I don't understand this last para.  If CoAP sticks to the
            semantics of
            the current HTTP methods, would this not offer a fairly
            straightforward
            translation to/from HTTP?




                         From what I have heard so far 1 still seems li=
ke a
                        wise choice, although I need to look at Webhook=
s
                        more deeply. In reality many applications speci=
fy
                        their own way of doing a push interface using R=
EST
                        methods and specific payloads (ZigBee SE2.0 is =
such
                        an example). That is just fine, and might be us=
ed
                        instead of a specific CoAP notify/subscribe in =
that
                        case. So 1 doesn't prevent the application usin=
g
                        its own mechanism, it just provides a native wa=
y
                        for doing push.


                  What do people think?

                  Zach

                  On May 17, 2010, at 6:44 PM,
                  matthieu.vial@fr.non.schneider-electric.com wrote:




                        Hi,

                        My comments about the subscribe/notify mechanis=
m of
                        Zigbee IP.

                        Pros:
                        - Derived from the webhooks concept
                        - If used by CORE it will be easier to map to H=
TTP
                        because it uses only CRUD verbs.
                        - The subscription message is extendable and co=
uld
                        support advanced options (delays, increment, ..=
.)
                        - Only one listening port whatever the transpor=
t
                        binding is.

                        Cons:
                        - No interoperability without well known URIs a=
nd a
                        well defined subscription message format (Not s=
ure
                        CoAP draft is the right place to specify this).=

                        - XML/EXI is too complex to be the required for=
mat
                        for the default subscription/notification
                        mechanism.
                        - The notification should not require a subsequ=
ent
                        GET to retrieve the content.
                        - Subresource subscription is redundant.

                        Hope this could help,
                        Matthieu


                        <graycol.gif>"Charles Palmer"
                        <charles.palmer@onzo.com>




                        "Charles Palmer"<charles.palmer@onzo.com>
                        Envoy=E9 par : core-bounces@ietf.org
                        15/05/2010 14:06

                        <ecblank.gif>
                        A
                        <ecblank.gif>
                        "core"<core@ietf.org>
                        <ecblank.gif>
                        cc
                        <ecblank.gif>
                        <ecblank.gif>
                        Objet
                        <ecblank.gif>
                        Re: [core] Selecting a WG document for CoAP
                        <ecblank.gif> <ecblank.gif>

                        Dear all

                        Those interested in the subscribe/notify discus=
sion
                        might like to look
                        at the draft Smart Energy Profile 2.0 Applicati=
on
                        Protocol
                        Specification. It is available here:
                        http://zigbee.org/Markets/ZigBeeSmartEnergy/Zig=
BeeSmartEnergy20PublicApp
                        licationProfile.aspx

                        It manages subscribe/notify by using POST. This=

                        seems to remove the need
                        for SUBSCRIBE and notify.

                        "Imagine a host A, which exposes a resource at =
http
                        {s}://A/resource and
                        a second host B, which wishes to learn of chang=
es
                        to this resource. To
                        facilitate a subscription/ notification mechani=
sm,
                        A would expose a
                        resource http{s}://A/sub and B would expose a
                        resource http{s}://B/ntfy.
                        To subscribe to notifications regarding http
                        {s}://A/resource, B would
                        send a POST to the address http{s}://A/sub/B
                        containing the URI of the
                        resource of interest (http{s}://A/resource) and=
 the
                        URI of B's
                        notification resource (http{s}://B/ntfy). Follo=
wing
                        this subscription
                        step, should A wish to notify B of a change to =
the
                        resource addressed at
                        http{s}://A/resource, A would send a POST to th=
e
                        address
                        http{s}://B/ntfy containing the URI of the reso=
urce
                        changed
                        (http{s}://A/resource) and the URI of A's
                        subscription resource
                        (http{s}://A/sub/B), should A wish to change it=
s
                        subscription. The host
                        B can then query the resource (or not) at its
                        leisure."

                        Sleepy nodes are not allowed to subscribe, and =
must
                        poll.

                        Regards - Charles Palmer

                        -----Original Message-----
                        From: core-bounces@ietf.org [
                        mailto:core-bounces@ietf.org] On Behalf Of
                        Angelo P. Castellani
                        Sent: 14 May 2010 13:14
                        To: Zach Shelby
                        Cc: core
                        Subject: Re: [core] Selecting a WG document for=

                        CoAP

                        Zach,

                        thanks for the comments, but please refer to my=

                        most recent e-mail for
                        a more specific list of technical issues I'm
                        pointing to.

                        I want to do only a little integration to what =
I've
                        written there.

                        In my very personal opinion, to maximize adhere=
nce
                        with the REST model
                        and minimize implementation effort SUBSCRIBE an=
d
                        NOTIFY should be
                        mapped to methods (as discussed many times
                        together...).

                        Uniform interface principle (Fielding PhD
                        dissertation Section 5.1.5,
                        "The central feature that distinguishes the RES=
T
                        architectural style
                        [...]") states that to simplify the software
                        architecture, resource
                        interfaces/interfaces should be as general as
                        possible.

                        I agree with this principle in this specific ca=
se,
                        mainly because
                        handling a special message type for notify lead=
s
                        node software design
                        to a more complex architecture.

                        The reason is that this new message type requir=
es
                        special handling and
                        introduces a complexity in the software
                        modularization.

                        Best,
                        Angelo

                        On Fri, May 14, 2010 at 13:06, Zach Shelby
                        <zach@sensinode.com>   wrote:



                              Hi Angelo,

                              On May 13, 2010, at 14:24 , Angelo P.
                              Castellani wrote:




                                    Dear C. Bormann, all,

                                    before deciding for the final
                                    direction, I've the following
                                    observations about
                                    draft-shelby-core-coap-01

                                    While I mostly share Zach's view of=
 the
                                    protocol approach, and
                                    appreciate many aspects of the
                                    proposal, there are in my opinion



                        still



                                    some open issues that need to be at=

                                    least discussed before the



                        current



                                    document can be selected.



                              Of course there are plenty of open issues=
.
                              Remember that working group



                        documents still undertake as much change and
                        improvement as the WG
                        wants, so by no means is coap-01 set in stone. =
I
                        would expect at least
                        5-10 more revisions still along the way.  Alrea=
dy
                        several of your ideas
                        have been integrated into coap-01, and several =
more
                        are under
                        consideration, so it is coming along. Patience =
;-)





                                    In particular, I would like to
                                    highlight the following:

                                    a) As it is now, it is not possible=
 to
                                    have a straightforward
                                    translation of HTTP ->   CoAP and
                                    viceversa: see
                                    http://www.ietf.org/mail-archive/we=
b/core/current/msg00133.html
                                     (this
                                    impacts the scalability of the web
                                    service model too)



                              In coap-01 the Method names are now ident=
ical
                              to HTTP methods. The



                        Req/Res interaction is a direct translation. Th=
e
                        URI hierarchy is
                        compatible, and the URI binary code format we a=
re
                        still working on
                        obviously. The only thing that takes some state=
 to
                        translate is
                        Subscribe/Notify. But note, Subscribe/Notify ta=
kes
                        some state no matter
                        how you do it, even with HTTP-HTTP there is no
                        clean and easy way to
                        handle subscriptions.





                                    b) Moreover, CoAP's implementation =
is
                                    not as simple as it should be.
                                    I've investigated the implementatio=
n
                                    and some design choices (as
                                    Options) are leading to very high
                                    program complexity (ROM) on a
                                    MSP430-based device.



                              This we can definitely improve, and alrea=
dy
                              made several optimizations



                        from -00 to -01. Here I need some very concrete=

                        proposals though. Also
                        remember that many things are optional, for exa=
mple
                        subscribe/notify is
                        not required if you don't need it.





                                    c) Finally when comparing HTTP mess=
age
                                    size with CoAP message size,
                                    the resulting compression isn't as =
good
                                    as you may expect.

                                    Example:
                                    HTTP: GET /sensor/temp.xml HTTP/1.0=
 =3D
                                    32 B
                                    CoAP: 24 B with options parsing
                                    procedure requiring an added
                                    implementation complexity



                              Right, that is not how it will work in
                              practice. Working with a real



                        HTTP server that HTTP header will be more compl=
ex,
                        and on the CoAP side
                        you would chose shorter URLs. The biggest
                        improvement possible here is
                        from using binary coded URLs of course. We need=
 to
                        look at a wider range
                        of interactions and real HTTP headers as well t=
o
                        check that we are
                        efficient enough.





                                    Addressing all these points potenti=
ally
                                    leads to major technical
                                    modifications (especially point a) =
on
                                    the current draft, hence it is
                                    appropriate in my opinion to discus=
s
                                    these points before making the
                                    final decision.



                              I am not sure what else you have in mind =
for
                              a). If we just forget



                        about Subscribe/Notify then you are good to go.=
 But
                        then you are also
                        not fulfilling the charter or the industry need=
s in
                        that respect.



                              Thanks,
                              Zach




                                    Best regards,

                                    Angelo P. Castellani


                                    On Mon, May 10, 2010 at 18:51, Cars=
ten
                                    Bormann<cabo@tzi.org>   wrote:



                                          The CORE WG has a milestone t=
o
                                          select a WG document for CoAP=
 in



                        April:



                                          http://datatracker.ietf.org/w=
g/core/charter/
                                          ...
                                          Apr 2010        Select WG
                                          document for basis of the CoA=
P
                                          protocol

                                          Of the various documents that=

                                          have been contributed,



                        draft-shelby-core-coap has significant discussi=
on,
                        as well as the
                        largest number of updates (including a previous=

                        version that was still
                        called -6lowapp-coap).



                                          Today, another updated versio=
n of
                                          that draft was announced.  Se=
e
                                          http://www.ietf.org/mail-arch=
ive/web/core/current/msg00138.html
                                          for the announcement and
                                          http://tools.ietf.org/html/dr=
aft-shelby-core-coap-01
                                          for the draft itself.

                                          However, as the authors say,
                                          there are still significant
                                          TODOs.

                                          Are we in a state yet where w=
e
                                          can say whether this is the r=
ight



                        direction for the WG to take?



                                          If yes, is it the right
                                          direction?  Should we adopt i=
t as
                                          a WG



                        document?



                                          If you don't think we can say=

                                          yet, is there a set of techni=
cal



                        decisions you would like the authors to take wi=
th
                        priority?



                                          Note that once a document has=

                                          become a WG document, the aut=
hors
                                          act



                        as editors for the working group, making (and
                        usually fleshing out the
                        details of) any change that the WG decides it
                        needs.



                                          If you think we can still imp=
rove
                                          the draft, this is not an
                                          obstacle



                        to making it a WG document.



                                          But of course we shouldn't do=

                                          that if we intend to reverse =
its



                        fundamental technical direction.



                                          In order to stay roughly in s=
ync
                                          with our milestones, we shoul=
d



                        reach at a decision on how to go forward this w=
eek.



                                          Gruesse, Carsten

                                          _____________________________=
__________________
                                          core mailing list
                                          core@ietf.org
                                          https://www.ietf.org/mailman/=
listinfo/core




                                    ___________________________________=
____________
                                    core mailing list
                                    core@ietf.org
                                    https://www.ietf.org/mailman/listin=
fo/core



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





                        _______________________________________________=

                        core mailing list
                        core@ietf.org
                        https://www.ietf.org/mailman/listinfo/core

                        --------------------------------
                        Onzo is a limited company number 06097997
                        registered in England&   Wales. The
                        registered office is 6 Great Newport Street,
                        London, WC2H 7JB, United Kingdom.

                        This email message may contain confidential and=
/or
                        privileged information, and
                        is intended solely for the addressee(s). If you=

                        have received this email in
                        error, please notify Onzo immediately. Unauthor=
ised
                        copying, disclosure or
                        distribution of the material in this email is
                        forbidden.
                        --------------------------------

                        _______________________________________________=

                        core mailing list
                        core@ietf.org
                        https://www.ietf.org/mailman/listinfo/core

                        _______________________________________________=
_______________________=

                        This email has been scanned by the MessageLabs
                        Email Security System.
                        _______________________________________________=
_______________________

                        _______________________________________________=

                        core mailing list
                        core@ietf.org
                        https://www.ietf.org/mailman/listinfo/core





            _______________________________________________
            core mailing list
            core@ietf.org
            https://www.ietf.org/mailman/listinfo/core

            --------------------------------
            Onzo is a limited company number 06097997 registered in
            England&  Wales. The
            registered office is 6 Great Newport Street, London, WC2H 7=
JB,
            United Kingdom.

            This email message may contain confidential and/or privileg=
ed
            information, and
            is intended solely for the addressee(s). If you have receiv=
ed
            this email in
            error, please notify Onzo immediately. Unauthorised copying=
,
            disclosure or
            distribution of the material in this email is forbidden.
            --------------------------------






_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core
_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core



______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
______________________________________________________________________
_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core
=

--1__=4EBBFDA2DFAD2C738f9e8a93df938690918c4EBBFDA2DFAD2C73
Content-type: text/html; charset=ISO-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

<html><body bgcolor=3D"#FFFFFF">
<p><font size=3D"4" color=3D"#1F497D" face=3D"Calibri">&gt; So strictly spe=
aking, both NOTIFY and SUBSCRIBE are message types not =A0methods!</font><b=
r>
<br>
SUBSCRIBE can be just an asynchronous GET on update  then I think it is a m=
ethod and NOTIFY is an asynchronous response so a message.<br>
But if we want to have selective notifications when a resource is created, =
updated or deleted then I think you're right NOTIFY and SUBSCRIBE are messa=
ges.<br>
<br>
Does that make sense ?<br>
<br>
Matthieu<br>
<br>
<img width=3D"16" height=3D"16" src=3D"cid:2=5F=5F=3D4EBBFDA2DFAD2C738@schn=
eider-electric.com" border=3D"0" alt=3D"Inactive hide details for &quot;Adr=
iano Pezzuto (apezzuto)&quot; &lt;apezzuto@cisco.com&gt;">&quot;Adriano Pez=
zuto (apezzuto)&quot; &lt;apezzuto@cisco.com&gt;<br>
<br>
<br>
<br>
<br>

<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">
<tr valign=3D"top"><td style=3D"background-image:url(cid:3=5F=5F=3D4EBBFDA2=
DFAD2C738@schneider-electric.com); background-repeat: no-repeat; " width=3D=
"40%">
<ul>
<ul>
<ul>
<ul><b><font size=3D"2">&quot;Adriano Pezzuto (apezzuto)&quot; &lt;apezzuto=
@cisco.com&gt;</font></b><font size=3D"2"> </font><br>
<font size=3D"2">Envoy=E9 par : core-bounces@ietf.org</font>
<p><font size=3D"2">28/05/2010 12:50</font></ul>
</ul>
</ul>
</ul>
</td><td width=3D"60%">
<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">
<tr valign=3D"top"><td width=3D"1%"><img width=3D"58" height=3D"1" src=3D"c=
id:4=5F=5F=3D4EBBFDA2DFAD2C738@schneider-electric.com" border=3D"0" alt=3D"=
"><br>
<div align=3D"right"><font size=3D"2">A</font></div></td><td width=3D"100%"=
><img width=3D"1" height=3D"1" src=3D"cid:4=5F=5F=3D4EBBFDA2DFAD2C738@schne=
ider-electric.com" border=3D"0" alt=3D""><br>
<font size=3D"2">&lt;robert.cragie@gridmerge.com&gt;</font></td></tr>

<tr valign=3D"top"><td width=3D"1%"><img width=3D"58" height=3D"1" src=3D"c=
id:4=5F=5F=3D4EBBFDA2DFAD2C738@schneider-electric.com" border=3D"0" alt=3D"=
"><br>
<div align=3D"right"><font size=3D"2">cc</font></div></td><td width=3D"100%=
"><img width=3D"1" height=3D"1" src=3D"cid:4=5F=5F=3D4EBBFDA2DFAD2C738@schn=
eider-electric.com" border=3D"0" alt=3D""><br>
<font size=3D"2">core &lt;core@ietf.org&gt;</font></td></tr>

<tr valign=3D"top"><td width=3D"1%"><img width=3D"58" height=3D"1" src=3D"c=
id:4=5F=5F=3D4EBBFDA2DFAD2C738@schneider-electric.com" border=3D"0" alt=3D"=
"><br>
<div align=3D"right"><font size=3D"2">Objet</font></div></td><td width=3D"1=
00%"><img width=3D"1" height=3D"1" src=3D"cid:4=5F=5F=3D4EBBFDA2DFAD2C738@s=
chneider-electric.com" border=3D"0" alt=3D""><br>
<font size=3D"2">Re: [core] Subscribe/Notify for CoAP</font></td></tr>
</table>

<table border=3D"0" cellspacing=3D"0" cellpadding=3D"0">
<tr valign=3D"top"><td width=3D"58"><img width=3D"1" height=3D"1" src=3D"ci=
d:4=5F=5F=3D4EBBFDA2DFAD2C738@schneider-electric.com" border=3D"0" alt=3D""=
></td><td width=3D"336"><img width=3D"1" height=3D"1" src=3D"cid:4=5F=5F=3D=
4EBBFDA2DFAD2C738@schneider-electric.com" border=3D"0" alt=3D""></td></tr>
</table>
</td></tr>
</table>
<br>
<font size=3D"4" color=3D"#1F497D" face=3D"Calibri">Hi Roberto,</font><br>
<font size=3D"4" color=3D"#1F497D" face=3D"Calibri">I understand your point=
 and personally agree on M2M is quite different from web page model. On the=
 architectural RESTful style, the method information tells the server what =
to do with data kept in the URI information.</font><br>
<font size=3D"4" color=3D"#1F497D" face=3D"Calibri"> </font><br>
<font size=3D"4" color=3D"#1F497D" face=3D"Calibri">So strictly speaking, b=
oth NOTIFY and SUBSCRIBE are message types not =A0methods!</font><br>
<font size=3D"4" color=3D"#1F497D" face=3D"Calibri"> </font><br>
<font size=3D"4" color=3D"#1F497D" face=3D"Calibri">Adriano </font><br>
<font size=3D"4" color=3D"#1F497D" face=3D"Calibri"> </font><br>
<b><font size=3D"4" face=3D"Tahoma">From:</font></b><font size=3D"4" face=
=3D"Tahoma"> Robert Cragie [<a href=3D"mailto:robert.cragie@gridmerge.com">=
mailto:robert.cragie@gridmerge.com</a>] </font><b><font size=3D"4" face=3D"=
Tahoma"><br>
Sent:</font></b><font size=3D"4" face=3D"Tahoma"> venerd=EC 28 maggio 2010 =
11.53</font><b><font size=3D"4" face=3D"Tahoma"><br>
To:</font></b><font size=3D"4" face=3D"Tahoma"> Adriano Pezzuto (apezzuto)<=
/font><b><font size=3D"4" face=3D"Tahoma"><br>
Cc:</font></b><font size=3D"4" face=3D"Tahoma"> Paul Duffy (paduffy); Zach =
Shelby; core</font><b><font size=3D"4" face=3D"Tahoma"><br>
Subject:</font></b><font size=3D"4" face=3D"Tahoma"> Re: [core] Subscribe/N=
otify for CoAP</font><br>
<font size=3D"4" face=3D"Times New Roman"> </font><br>
<font size=3D"4" face=3D"Times New Roman">I think the point here is that th=
ere are two levels we are considering.<br>
<br>
At the lowest (foundation) level, there are the transaction messages as des=
cribed below. This provides a flexible mechanism for the application with r=
egard to synchronicity and threading. This is important for the types of de=
vices CoAP is being aimed at.<br>
<br>
Above that, the methods can be used according to the architectural style. S=
o in this case, it is RESTful (COnstrained Restful Environments), which wil=
l naturally limit the number of methods and how transactions occur.<br>
<br>
The actual architecture using a combination of the methods and messages als=
o depends on what is required at the application layer. Consider a typical =
client which wants to subscribe to a resource. That client controls the fee=
d of data but needs a component which is capable of handling (possibly buff=
ering) the data it receives through notifications. Is this a separate serve=
r? Or would we want to consider it part of an enhanced client model which i=
s able to process feeds of data? These are the sort of models which have le=
d to the myriad of solutions (GENA, Webhooks, long polling, pubsubhubbub, R=
ESTMS etc.) based around HTTP which are all essentially ingenious ways of g=
etting around the limitations imposed by HTTP and how it is processed for a=
nything which deviates from the classic web page access model.<br>
<br>
I think the aim of CoAP should be clean from the word go with regard to sup=
porting these more peer-to-peer transactions, where the client can exist on=
 either entity and both entities can feed data to each other; typical in M2=
M applications.<br>
<br>
Robert</font>
<p><font size=3D"4" face=3D"Verdana">Robert Cragie (Pacific Gas &amp; Elect=
ric)</font>
<p><font size=3D"4" face=3D"Verdana">Gridmerge Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 1924 910888<br>
+1 415 513 0064</font><u><font size=3D"4" color=3D"#0000FF" face=3D"Verdana=
"><br>
</font></u><a href=3D"http://www.gridmerge.com/"><u><font size=3D"4" color=
=3D"#0000FF" face=3D"Verdana">http://www.gridmerge.com</font></u></a><br>
<font size=3D"4" face=3D"Times New Roman"><br>
On 27/05/2010 7:08 PM, Adriano Pezzuto (apezzuto) wrote: </font><br>
<font size=3D"4" color=3D"#1F497D" face=3D"Calibri">Hi Robert,</font><br>
<font size=3D"4" color=3D"#1F497D" face=3D"Calibri"> </font><br>
<font size=3D"4" color=3D"#1F497D" face=3D"Calibri">in my personal opinion,=
 the option 1a) brings some sort of ambiguity to CoAP specs.</font><br>
<font size=3D"4" color=3D"#1F497D" face=3D"Calibri"> </font><br>
<font size=3D"4" color=3D"#1F497D" face=3D"Calibri">My be my understatement=
 of new CoAP specs is not so deep,  but now we have 5 methods and 3 message=
 types: request, response and notify. Which methods are allowed with which =
messages types?</font><br>
<font size=3D"4" color=3D"#1F497D" face=3D"Calibri">I suppose you have to u=
se PUT/POST method with notify message for asynch data notification. How to=
 make a subscribe? I suppose you would use a SUBSCRIBE method with request/=
response message or SUBSCRIBE with notify message? Also what about POST/DEL=
ETE methods in a notify message? They not make any sense..</font><br>
<font size=3D"4" color=3D"#1F497D" face=3D"Calibri"> </font><br>
<font size=3D"4" color=3D"#1F497D" face=3D"Calibri">I think the choice is b=
etween: option 1) -&gt; only CRUD methods and option 1b) -&gt; CRUD + SUB/N=
OTIFY methods, keeping in mind cost/benefits of both solutions.</font><br>
<font size=3D"4" color=3D"#1F497D" face=3D"Calibri"> </font><br>
<font size=3D"4" color=3D"#1F497D" face=3D"Calibri">Adriano</font><br>
<font size=3D"4" color=3D"#1F497D" face=3D"Calibri"> </font><br>
<b><font size=3D"4" face=3D"Tahoma">From:</font></b><font size=3D"4" face=
=3D"Tahoma"> Robert Cragie [</font><a href=3D"mailto:robert.cragie@gridmerg=
e.com"><u><font size=3D"4" color=3D"#0000FF" face=3D"Tahoma">mailto:robert.=
cragie@gridmerge.com</font></u></a><font size=3D"4" face=3D"Tahoma">] </fon=
t><b><font size=3D"4" face=3D"Tahoma"><br>
Sent:</font></b><font size=3D"4" face=3D"Tahoma"> mercoled=EC 26 maggio 201=
0 20.09</font><b><font size=3D"4" face=3D"Tahoma"><br>
To:</font></b><font size=3D"4" face=3D"Tahoma"> Adriano Pezzuto (apezzuto)<=
/font><b><font size=3D"4" face=3D"Tahoma"><br>
Cc:</font></b><font size=3D"4" face=3D"Tahoma"> Paul Duffy (paduffy); Zach =
Shelby; core</font><b><font size=3D"4" face=3D"Tahoma"><br>
Subject:</font></b><font size=3D"4" face=3D"Tahoma"> Re: [core] Subscribe/N=
otify for CoAP</font><br>
<font size=3D"4" face=3D"Times New Roman"> </font><br>
<font size=3D"4" face=3D"Times New Roman">Hi Adrian,<br>
<br>
I would also prefer to keep the protocol in CoAP asynchronous. You can alwa=
ys map an asynchronous protocol to a synchronous one but, as we see in HTTP=
, it always ends up as a kludge to do it the other way round. The efforts w=
hich have been gone to to make HTTP quasi-asynchronous via all the schemes =
mentioned below and many more besides (all non-interoperable of course) is =
testament to how important this is for M2M communication.<br>
<br>
So, back to Zach's list, I favor 1a) for the following reasons:<br>
<br>
Foundation level of messages:</font>
<ul>1.	<font size=3D"4" face=3D"Times New Roman">request/response can be as=
ynchronous or synchronous messages (as there is a transaction ID in there)<=
/font><br>
2.	<font size=3D"4" face=3D"Times New Roman">notify is an asynchronous mess=
age</font></ul>
<font size=3D"4" face=3D"Times New Roman">Derived methods:<br>
<br>
I think it makes sense to add a pub/sub model as a useful mechanism for M2M=
.<br>
<br>
So, looking at it the other way round: It will be entirely possible to tran=
slate whatever is currently built on HTTP to CoAP based on the above, with =
all its restrictions regarding synchronous and client/server transactions. =
What may be harder is to translate directly is a CoAP-based application to =
HTTP. So I guess the question is: Do we want to be hamstrung to synchronous=
 client/server transactions as dictated by HTTP and provide a direct mappin=
g to HTTP, then have to come up with similar kludges for asynchronous peer-=
to-peer transactions as has been done in numerous ways for HTTP, or do we w=
ant to define the protocol cleanly to start with and accept that some sort =
of transaction relaying/conversion would have to take place at a mapping no=
de?<br>
<br>
Robert</font>
<p><font size=3D"4" face=3D"Verdana">Robert Cragie (Pacific Gas &amp; Elect=
ric)</font>
<p><font size=3D"4" face=3D"Verdana">Gridmerge Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 1924 910888<br>
+1 415 513 0064</font><u><font size=3D"4" color=3D"#0000FF" face=3D"Verdana=
"><br>
</font></u><a href=3D"http://www.gridmerge.com/"><u><font size=3D"4" color=
=3D"#0000FF" face=3D"Verdana">http://www.gridmerge.com</font></u></a><br>
<font size=3D"4" face=3D"Times New Roman"><br>
On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote: </font><br>
<font size=3D"4" face=3D"Courier New">Hi,</font><br>
<font size=3D"4" face=3D"Courier New">it looks to me that CoAP should use a=
n explicit sub/notify mechanism since this is the core of the machine-to-ma=
chine interaction model.</font><br>
<font size=3D"4" face=3D"Courier New">HTTP suffers of this lack and we have=
 seen a plethora of solutions to give an asynch taste to it. Webhooks and w=
ebsockets are only the lasts of the list.</font><br>
<font size=3D"4" face=3D"Courier New">As someone has already pointed out on=
 this list, it is theoretically possible to describe sub/notify using only =
CRUD methods but it looks a little bit tricky and verbose.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">Now we have a chance to build from sc=
ratch a new protocol with and I think using explicit sub/notify methods wit=
h a clear and well defined semantic is the best option. It is easily unders=
tanding from every developer and will prevent to build other fanny solution=
s on top of the CoAP. HTTP does not have this well defined semantic and (fo=
r hundreds of other reasons also) it is not used as wide protocol for machi=
ne-to-machine communication.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">CoAP - as binary protocol - and with =
an explicit asynch model has a chance to be a really wide protocol for M2M =
communication not only for constrained environments.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">my 2 cents</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">- adriano</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">-----Original Message-----</font><br>
<font size=3D"4" face=3D"Courier New">From: </font><a href=3D"mailto:core-b=
ounces@ietf.org"><u><font size=3D"4" color=3D"#0000FF" face=3D"Courier New"=
>core-bounces@ietf.org</font></u></a><font size=3D"4" face=3D"Courier New">=
 [</font><a href=3D"mailto:core-bounces@ietf.org"><u><font size=3D"4" color=
=3D"#0000FF" face=3D"Courier New">mailto:core-bounces@ietf.org</font></u></=
a><font size=3D"4" face=3D"Courier New">] On Behalf Of Paul Duffy (paduffy)=
</font><br>
<font size=3D"4" face=3D"Courier New">Sent: mercoled=EC 26 maggio 2010 0.47=
</font><br>
<font size=3D"4" face=3D"Courier New">To: Zach Shelby</font><br>
<font size=3D"4" face=3D"Courier New">Cc: core</font><br>
<font size=3D"4" face=3D"Courier New">Subject: Re: [core] Subscribe/Notify =
for CoAP</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">On 5/25/2010 6:41 PM, Zach Shelby wro=
te:</font><br>
<font size=3D"4" face=3D"Courier New">  </font>
<ul>
<ul><font size=3D"4" face=3D"Courier New">Hi,</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">On May 26, 2010, at 12:23 AM, Charles=
 Palmer wrote:</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">   </font><br>
<font size=3D"4" face=3D"Courier New">    </font>
<ul>
<ul><font size=3D"4" face=3D"Courier New">Hi folks</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">It occurs to me that CoRE should be k=
eeping a close eye on ZigBee SE2.0 work, so that it is as easy as possible =
for ZigBee SE to use CoRE when ready. That suggests to me that we should al=
ign with their subscribe/notify process.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">     </font><br>
<font size=3D"4" face=3D"Courier New">      </font></ul>
</ul>
<font size=3D"4" face=3D"Courier New">I am not sure I understand that. I me=
an, ZigBee SE2.0 is defining an application specific subscribe/notify mecha=
nism for that purpose so far for HTTP. This uses standard HTTP methods and =
some custom payload and REST interfaces. CoAP Req/Res is already totally co=
mpatible with SE2.0 in that respect, so alignment is already OK there. Noth=
ing stopping someone from using SE2.0 over CoAP.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">Specifying a native susbcription/noti=
fy into CoAP is another matter. We can't adopt a solution specific to one a=
pplication as that won't solve the problems of other applications nor gener=
al HTTP mapping at all (probably would make it worse). It seems that for th=
e near future there will be a bunch of HTTP push mechanisms in use without =
any clear standard appearing - or am I wrong there?</font><br>
<font size=3D"4" face=3D"Courier New">   </font><br>
<font size=3D"4" face=3D"Courier New">    </font></ul>
</ul>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">If COAP extends HTTP semantics with n=
ew subscription methods, it will </font><br>
<font size=3D"4" face=3D"Courier New">not be possible to easily interchange=
 HTTP/COAP, and translation </font><br>
<font size=3D"4" face=3D"Courier New">gateways will become more complex to =
implement.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">  </font>
<ul>
<ul><font size=3D"4" face=3D"Courier New">Zach</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">   </font><br>
<font size=3D"4" face=3D"Courier New">    </font>
<ul>
<ul><font size=3D"4" face=3D"Courier New">Regards - Charles</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">-----Original Message-----</font><br>
<font size=3D"4" face=3D"Courier New">From: </font><a href=3D"mailto:core-b=
ounces@ietf.org"><u><font size=3D"4" color=3D"#0000FF" face=3D"Courier New"=
>core-bounces@ietf.org</font></u></a><font size=3D"4" face=3D"Courier New">=
 [</font><a href=3D"mailto:core-bounces@ietf.org"><u><font size=3D"4" color=
=3D"#0000FF" face=3D"Courier New">mailto:core-bounces@ietf.org</font></u></=
a><font size=3D"4" face=3D"Courier New">] On Behalf Of Paul Duffy</font><br>
<font size=3D"4" face=3D"Courier New">Sent: 25 May 2010 03:48</font><br>
<font size=3D"4" face=3D"Courier New">To: Zach Shelby</font><br>
<font size=3D"4" face=3D"Courier New">Cc: core</font><br>
<font size=3D"4" face=3D"Courier New">Subject: Re: [core] Subscribe/Notify =
for CoAP</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">Recommend something like #2, primaril=
y to avoid introducing non HTTP</font><br>
<font size=3D"4" face=3D"Courier New">method semantics, simplifying HTTP/CO=
AP translation.gateways, etc.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">On 5/24/2010 11:49 AM, Zach Shelby wr=
ote:</font><br>
<font size=3D"4" face=3D"Courier New">     </font><br>
<font size=3D"4" face=3D"Courier New">      </font>
<ul>
<ul><font size=3D"4" face=3D"Courier New">(thread renamed)</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">We have two different paths with rega=
rd to a subscribe/notify mechanism for CoAP:</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">1. Use specific Subscription and Noti=
fy mechanisms for CoAP as HTTP really does not include this concept.</font>=
<br>
<font size=3D"4" face=3D"Courier New">1a) Notify as a message and SUBSCRIBE=
 as a method. This is currently used in coap-01.</font><br>
<font size=3D"4" face=3D"Courier New">1b) NOTIFY and SUBSCRIBE as methods. =
This was used in coap-00, but we had a good list discussion about this lead=
ing to a. In practice it doesn't make a big difference if notification is a=
 message or method.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">2. Use an HTTP specific framework suc=
h as Webhooks, the ZigBee SE2.0 proposal or GENA.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">So far we have focused on 1 in the WG=
, and every now and again 2 comes up. At least I am not convinced that we n=
eed to suffer the drawbacks of HTTP here. Anyways 2 does not help our mappi=
ng to HTTP in reality very much as there is no standard way of doing this o=
ver HTTP. Thus a CoAP-HTTP proxy may end up anyways translating between mul=
tiple HTTP frameworks depending on the application. So instead of doing a C=
oAP Notify/Subscribe to Webhooks mapping, you will could end up having to d=
o a CoAP Webhooks to HTTP GENA mapping.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">       </font><br>
<font size=3D"4" face=3D"Courier New">        </font></ul>
</ul>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">I don't understand this last para.  I=
f CoAP sticks to the semantics of</font><br>
<font size=3D"4" face=3D"Courier New">the current HTTP methods, would this =
not offer a fairly straightforward</font><br>
<font size=3D"4" face=3D"Courier New">translation to/from HTTP?</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">     </font><br>
<font size=3D"4" face=3D"Courier New">      </font>
<ul>
<ul>
<ul>
<ul><font size=3D"4" face=3D"Courier New"> From what I have heard so far 1 =
still seems like a wise choice, although I need to look at Webhooks more de=
eply. In reality many applications specify their own way of doing a push in=
terface using REST methods and specific payloads (ZigBee SE2.0 is such an e=
xample). That is just fine, and might be used instead of a specific CoAP no=
tify/subscribe in that case. So 1 doesn't prevent the application using its=
 own mechanism, it just provides a native way for doing push.</font><br>
<font size=3D"4" face=3D"Courier New">         </font><br>
<font size=3D"4" face=3D"Courier New">          </font></ul>
</ul>
<font size=3D"4" face=3D"Courier New">What do people think?</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">Zach</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">On May 17, 2010, at 6:44 PM, </font><=
a href=3D"mailto:matthieu.vial@fr.non.schneider-electric.com"><u><font size=
=3D"4" color=3D"#0000FF" face=3D"Courier New">matthieu.vial@fr.non.schneide=
r-electric.com</font></u></a><font size=3D"4" face=3D"Courier New"> wrote:<=
/font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">       </font><br>
<font size=3D"4" face=3D"Courier New">        </font>
<ul>
<ul><font size=3D"4" face=3D"Courier New">Hi,</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">My comments about the subscribe/notif=
y mechanism of Zigbee IP.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">Pros:</font><br>
<font size=3D"4" face=3D"Courier New">- Derived from the webhooks concept</=
font><br>
<font size=3D"4" face=3D"Courier New">- If used by CORE it will be easier t=
o map to HTTP because it uses only CRUD verbs.</font><br>
<font size=3D"4" face=3D"Courier New">- The subscription message is extenda=
ble and could support advanced options (delays, increment, ...)</font><br>
<font size=3D"4" face=3D"Courier New">- Only one listening port whatever th=
e transport binding is.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">Cons:</font><br>
<font size=3D"4" face=3D"Courier New">- No interoperability without well kn=
own URIs and a well defined subscription message format (Not sure CoAP draf=
t is the right place to specify this).</font><br>
<font size=3D"4" face=3D"Courier New">- XML/EXI is too complex to be the re=
quired format for the default subscription/notification mechanism.</font><b=
r>
<font size=3D"4" face=3D"Courier New">- The notification should not require=
 a subsequent GET to retrieve the content.</font><br>
<font size=3D"4" face=3D"Courier New">- Subresource subscription is redunda=
nt.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">Hope this could help,</font><br>
<font size=3D"4" face=3D"Courier New">Matthieu</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">&lt;graycol.gif&gt;&quot;Charles Palm=
er&quot;</font><a href=3D"mailto:charles.palmer@onzo.com"><u><font size=3D"=
4" color=3D"#0000FF" face=3D"Courier New">&lt;charles.palmer@onzo.com&gt;</=
font></u></a><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">&quot;Charles Palmer&quot;</font><a h=
ref=3D"mailto:charles.palmer@onzo.com"><u><font size=3D"4" color=3D"#0000FF=
" face=3D"Courier New">&lt;charles.palmer@onzo.com&gt;</font></u></a><br>
<font size=3D"4" face=3D"Courier New">Envoy=E9 par : </font><a href=3D"mail=
to:core-bounces@ietf.org"><u><font size=3D"4" color=3D"#0000FF" face=3D"Cou=
rier New">core-bounces@ietf.org</font></u></a><br>
<font size=3D"4" face=3D"Courier New">15/05/2010 14:06</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">&lt;ecblank.gif&gt;</font><br>
<font size=3D"4" face=3D"Courier New">A</font><br>
<font size=3D"4" face=3D"Courier New">&lt;ecblank.gif&gt;</font><br>
<font size=3D"4" face=3D"Courier New">&quot;core&quot;</font><a href=3D"mai=
lto:core@ietf.org"><u><font size=3D"4" color=3D"#0000FF" face=3D"Courier Ne=
w">&lt;core@ietf.org&gt;</font></u></a><br>
<font size=3D"4" face=3D"Courier New">&lt;ecblank.gif&gt;</font><br>
<font size=3D"4" face=3D"Courier New">cc</font><br>
<font size=3D"4" face=3D"Courier New">&lt;ecblank.gif&gt;</font><br>
<font size=3D"4" face=3D"Courier New">&lt;ecblank.gif&gt;</font><br>
<font size=3D"4" face=3D"Courier New">Objet</font><br>
<font size=3D"4" face=3D"Courier New">&lt;ecblank.gif&gt;</font><br>
<font size=3D"4" face=3D"Courier New">Re: [core] Selecting a WG document fo=
r CoAP</font><br>
<font size=3D"4" face=3D"Courier New">&lt;ecblank.gif&gt; &lt;ecblank.gif&g=
t;</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">Dear all</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">Those interested in the subscribe/not=
ify discussion might like to look</font><br>
<font size=3D"4" face=3D"Courier New">at the draft Smart Energy Profile 2.0=
 Application Protocol</font><br>
<font size=3D"4" face=3D"Courier New">Specification. It is available here:<=
/font><br>
<a href=3D"http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20P=
ublicApp"><u><font size=3D"4" color=3D"#0000FF" face=3D"Courier New">http:/=
/zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicApp</font></=
u></a><br>
<font size=3D"4" face=3D"Courier New">licationProfile.aspx</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">It manages subscribe/notify by using =
POST. This seems to remove the need</font><br>
<font size=3D"4" face=3D"Courier New">for SUBSCRIBE and notify.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">&quot;Imagine a host A, which exposes=
 a resource at http{s}://A/resource and</font><br>
<font size=3D"4" face=3D"Courier New">a second host B, which wishes to lear=
n of changes to this resource. To</font><br>
<font size=3D"4" face=3D"Courier New">facilitate a subscription/ notificati=
on mechanism, A would expose a</font><br>
<font size=3D"4" face=3D"Courier New">resource http{s}://A/sub and B would =
expose a resource http{s}://B/ntfy.</font><br>
<font size=3D"4" face=3D"Courier New">To subscribe to notifications regardi=
ng http{s}://A/resource, B would</font><br>
<font size=3D"4" face=3D"Courier New">send a POST to the address http{s}://=
A/sub/B containing the URI of the</font><br>
<font size=3D"4" face=3D"Courier New">resource of interest (http{s}://A/res=
ource) and the URI of B's</font><br>
<font size=3D"4" face=3D"Courier New">notification resource (http{s}://B/nt=
fy). Following this subscription</font><br>
<font size=3D"4" face=3D"Courier New">step, should A wish to notify B of a =
change to the resource addressed at</font><br>
<font size=3D"4" face=3D"Courier New">http{s}://A/resource, A would send a =
POST to the address</font><br>
<font size=3D"4" face=3D"Courier New">http{s}://B/ntfy containing the URI o=
f the resource changed</font><br>
<font size=3D"4" face=3D"Courier New">(http{s}://A/resource) and the URI of=
 A's subscription resource</font><br>
<font size=3D"4" face=3D"Courier New">(http{s}://A/sub/B), should A wish to=
 change its subscription. The host</font><br>
<font size=3D"4" face=3D"Courier New">B can then query the resource (or not=
) at its leisure.&quot;</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">Sleepy nodes are not allowed to subsc=
ribe, and must poll.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">Regards - Charles Palmer</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">-----Original Message-----</font><br>
<font size=3D"4" face=3D"Courier New">From: </font><a href=3D"mailto:core-b=
ounces@ietf.org"><u><font size=3D"4" color=3D"#0000FF" face=3D"Courier New"=
>core-bounces@ietf.org</font></u></a><font size=3D"4" face=3D"Courier New">=
 [</font><a href=3D"mailto:core-bounces@ietf.org"><u><font size=3D"4" color=
=3D"#0000FF" face=3D"Courier New">mailto:core-bounces@ietf.org</font></u></=
a><font size=3D"4" face=3D"Courier New">] On Behalf Of</font><br>
<font size=3D"4" face=3D"Courier New">Angelo P. Castellani</font><br>
<font size=3D"4" face=3D"Courier New">Sent: 14 May 2010 13:14</font><br>
<font size=3D"4" face=3D"Courier New">To: Zach Shelby</font><br>
<font size=3D"4" face=3D"Courier New">Cc: core</font><br>
<font size=3D"4" face=3D"Courier New">Subject: Re: [core] Selecting a WG do=
cument for CoAP</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">Zach,</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">thanks for the comments, but please r=
efer to my most recent e-mail for</font><br>
<font size=3D"4" face=3D"Courier New">a more specific list of technical iss=
ues I'm pointing to.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">I want to do only a little integratio=
n to what I've written there.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">In my very personal opinion, to maxim=
ize adherence with the REST model</font><br>
<font size=3D"4" face=3D"Courier New">and minimize implementation effort SU=
BSCRIBE and NOTIFY should be</font><br>
<font size=3D"4" face=3D"Courier New">mapped to methods (as discussed many =
times together...).</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">Uniform interface principle (Fielding=
 PhD dissertation Section 5.1.5,</font><br>
<font size=3D"4" face=3D"Courier New">&quot;The central feature that distin=
guishes the REST architectural style</font><br>
<font size=3D"4" face=3D"Courier New">[...]&quot;) states that to simplify =
the software architecture, resource</font><br>
<font size=3D"4" face=3D"Courier New">interfaces/interfaces should be as ge=
neral as possible.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">I agree with this principle in this s=
pecific case, mainly because</font><br>
<font size=3D"4" face=3D"Courier New">handling a special message type for n=
otify leads node software design</font><br>
<font size=3D"4" face=3D"Courier New">to a more complex architecture.</font=
><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">The reason is that this new message t=
ype requires special handling and</font><br>
<font size=3D"4" face=3D"Courier New">introduces a complexity in the softwa=
re modularization.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">Best,</font><br>
<font size=3D"4" face=3D"Courier New">Angelo</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">On Fri, May 14, 2010 at 13:06, Zach S=
helby</font><a href=3D"mailto:zach@sensinode.com"><u><font size=3D"4" color=
=3D"#0000FF" face=3D"Courier New">&lt;zach@sensinode.com&gt;</font></u></a>=
<font size=3D"4" face=3D"Courier New">   wrote:</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">         </font><br>
<font size=3D"4" face=3D"Courier New">          </font>
<ul>
<ul><font size=3D"4" face=3D"Courier New">Hi Angelo,</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">On May 13, 2010, at 14:24 , Angelo P.=
 Castellani wrote:</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">           </font><br>
<font size=3D"4" face=3D"Courier New">            </font>
<ul>
<ul><font size=3D"4" face=3D"Courier New">Dear C. Bormann, all,</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">before deciding for the final directi=
on, I've the following</font><br>
<font size=3D"4" face=3D"Courier New">observations about draft-shelby-core-=
coap-01</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">While I mostly share Zach's view of t=
he protocol approach, and</font><br>
<font size=3D"4" face=3D"Courier New">appreciate many aspects of the propos=
al, there are in my opinion</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">             </font><br>
<font size=3D"4" face=3D"Courier New">              </font></ul>
</ul>
</ul>
</ul>
<font size=3D"4" face=3D"Courier New">still</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">         </font><br>
<font size=3D"4" face=3D"Courier New">          </font>
<ul>
<ul>
<ul>
<ul><font size=3D"4" face=3D"Courier New">some open issues that need to be =
at least discussed before the</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">             </font><br>
<font size=3D"4" face=3D"Courier New">              </font></ul>
</ul>
</ul>
</ul>
<font size=3D"4" face=3D"Courier New">current</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">         </font><br>
<font size=3D"4" face=3D"Courier New">          </font>
<ul>
<ul>
<ul>
<ul><font size=3D"4" face=3D"Courier New">document can be selected.</font><=
br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">             </font><br>
<font size=3D"4" face=3D"Courier New">              </font></ul>
</ul>
<font size=3D"4" face=3D"Courier New">Of course there are plenty of open is=
sues. Remember that working group</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">           </font><br>
<font size=3D"4" face=3D"Courier New">            </font></ul>
</ul>
<font size=3D"4" face=3D"Courier New">documents still undertake as much cha=
nge and improvement as the WG</font><br>
<font size=3D"4" face=3D"Courier New">wants, so by no means is coap-01 set =
in stone. I would expect at least</font><br>
<font size=3D"4" face=3D"Courier New">5-10 more revisions still along the w=
ay.  Already several of your ideas</font><br>
<font size=3D"4" face=3D"Courier New">have been integrated into coap-01, an=
d several more are under</font><br>
<font size=3D"4" face=3D"Courier New">consideration, so it is coming along.=
 Patience ;-)</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">         </font><br>
<font size=3D"4" face=3D"Courier New">          </font>
<ul>
<ul><font size=3D"4" face=3D"Courier New">           </font><br>
<font size=3D"4" face=3D"Courier New">            </font>
<ul>
<ul><font size=3D"4" face=3D"Courier New">In particular, I would like to hi=
ghlight the following:</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">a) As it is now, it is not possible t=
o have a straightforward</font><br>
<font size=3D"4" face=3D"Courier New">translation of HTTP -&gt;   CoAP and =
viceversa: see</font><br>
<a href=3D"http://www.ietf.org/mail-archive/web/core/current/msg00133.html"=
><u><font size=3D"4" color=3D"#0000FF" face=3D"Courier New">http://www.ietf=
.org/mail-archive/web/core/current/msg00133.html</font></u></a><font size=
=3D"4" face=3D"Courier New"> (this</font><br>
<font size=3D"4" face=3D"Courier New">impacts the scalability of the web se=
rvice model too)</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">             </font><br>
<font size=3D"4" face=3D"Courier New">              </font></ul>
</ul>
<font size=3D"4" face=3D"Courier New">In coap-01 the Method names are now i=
dentical to HTTP methods. The</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">           </font><br>
<font size=3D"4" face=3D"Courier New">            </font></ul>
</ul>
<font size=3D"4" face=3D"Courier New">Req/Res interaction is a direct trans=
lation. The URI hierarchy is</font><br>
<font size=3D"4" face=3D"Courier New">compatible, and the URI binary code f=
ormat we are still working on</font><br>
<font size=3D"4" face=3D"Courier New">obviously. The only thing that takes =
some state to translate is</font><br>
<font size=3D"4" face=3D"Courier New">Subscribe/Notify. But note, Subscribe=
/Notify takes some state no matter</font><br>
<font size=3D"4" face=3D"Courier New">how you do it, even with HTTP-HTTP th=
ere is no clean and easy way to</font><br>
<font size=3D"4" face=3D"Courier New">handle subscriptions.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">         </font><br>
<font size=3D"4" face=3D"Courier New">          </font>
<ul>
<ul><font size=3D"4" face=3D"Courier New">           </font><br>
<font size=3D"4" face=3D"Courier New">            </font>
<ul>
<ul><font size=3D"4" face=3D"Courier New">b) Moreover, CoAP's implementatio=
n is not as simple as it should be.</font><br>
<font size=3D"4" face=3D"Courier New">I've investigated the implementation =
and some design choices (as</font><br>
<font size=3D"4" face=3D"Courier New">Options) are leading to very high pro=
gram complexity (ROM) on a</font><br>
<font size=3D"4" face=3D"Courier New">MSP430-based device.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">             </font><br>
<font size=3D"4" face=3D"Courier New">              </font></ul>
</ul>
<font size=3D"4" face=3D"Courier New">This we can definitely improve, and a=
lready made several optimizations</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">           </font><br>
<font size=3D"4" face=3D"Courier New">            </font></ul>
</ul>
<font size=3D"4" face=3D"Courier New">from -00 to -01. Here I need some ver=
y concrete proposals though. Also</font><br>
<font size=3D"4" face=3D"Courier New">remember that many things are optiona=
l, for example subscribe/notify is</font><br>
<font size=3D"4" face=3D"Courier New">not required if you don't need it.</f=
ont><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">         </font><br>
<font size=3D"4" face=3D"Courier New">          </font>
<ul>
<ul><font size=3D"4" face=3D"Courier New">           </font><br>
<font size=3D"4" face=3D"Courier New">            </font>
<ul>
<ul><font size=3D"4" face=3D"Courier New">c) Finally when comparing HTTP me=
ssage size with CoAP message size,</font><br>
<font size=3D"4" face=3D"Courier New">the resulting compression isn't as go=
od as you may expect.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">Example:</font><br>
<font size=3D"4" face=3D"Courier New">HTTP: GET /sensor/temp.xml HTTP/1.0 =
=3D 32 B</font><br>
<font size=3D"4" face=3D"Courier New">CoAP: 24 B with options parsing proce=
dure requiring an added</font><br>
<font size=3D"4" face=3D"Courier New">implementation complexity</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">             </font><br>
<font size=3D"4" face=3D"Courier New">              </font></ul>
</ul>
<font size=3D"4" face=3D"Courier New">Right, that is not how it will work i=
n practice. Working with a real</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">           </font><br>
<font size=3D"4" face=3D"Courier New">            </font></ul>
</ul>
<font size=3D"4" face=3D"Courier New">HTTP server that HTTP header will be =
more complex, and on the CoAP side</font><br>
<font size=3D"4" face=3D"Courier New">you would chose shorter URLs. The big=
gest improvement possible here is</font><br>
<font size=3D"4" face=3D"Courier New">from using binary coded URLs of cours=
e. We need to look at a wider range</font><br>
<font size=3D"4" face=3D"Courier New">of interactions and real HTTP headers=
 as well to check that we are</font><br>
<font size=3D"4" face=3D"Courier New">efficient enough.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">         </font><br>
<font size=3D"4" face=3D"Courier New">          </font>
<ul>
<ul><font size=3D"4" face=3D"Courier New">           </font><br>
<font size=3D"4" face=3D"Courier New">            </font>
<ul>
<ul><font size=3D"4" face=3D"Courier New">Addressing all these points poten=
tially leads to major technical</font><br>
<font size=3D"4" face=3D"Courier New">modifications (especially point a) on=
 the current draft, hence it is</font><br>
<font size=3D"4" face=3D"Courier New">appropriate in my opinion to discuss =
these points before making the</font><br>
<font size=3D"4" face=3D"Courier New">final decision.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">             </font><br>
<font size=3D"4" face=3D"Courier New">              </font></ul>
</ul>
<font size=3D"4" face=3D"Courier New">I am not sure what else you have in m=
ind for a). If we just forget</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">           </font><br>
<font size=3D"4" face=3D"Courier New">            </font></ul>
</ul>
<font size=3D"4" face=3D"Courier New">about Subscribe/Notify then you are g=
ood to go. But then you are also</font><br>
<font size=3D"4" face=3D"Courier New">not fulfilling the charter or the ind=
ustry needs in that respect.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">         </font><br>
<font size=3D"4" face=3D"Courier New">          </font>
<ul>
<ul><font size=3D"4" face=3D"Courier New">Thanks,</font><br>
<font size=3D"4" face=3D"Courier New">Zach</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">           </font><br>
<font size=3D"4" face=3D"Courier New">            </font>
<ul>
<ul><font size=3D"4" face=3D"Courier New">Best regards,</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">Angelo P. Castellani</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">On Mon, May 10, 2010 at 18:51, Carste=
n Bormann</font><a href=3D"mailto:cabo@tzi.org"><u><font size=3D"4" color=
=3D"#0000FF" face=3D"Courier New">&lt;cabo@tzi.org&gt;</font></u></a><font =
size=3D"4" face=3D"Courier New">   wrote:</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">             </font><br>
<font size=3D"4" face=3D"Courier New">              </font>
<ul>
<ul><font size=3D"4" face=3D"Courier New">The CORE WG has a milestone to se=
lect a WG document for CoAP in</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">               </font><br>
<font size=3D"4" face=3D"Courier New">                </font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"4" face=3D"Courier New">April:</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">         </font><br>
<font size=3D"4" face=3D"Courier New">          </font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><a href=3D"http://datatracker.ietf.org/wg/core/charter/"><u><font size=
=3D"4" color=3D"#0000FF" face=3D"Courier Ne
w">http://datatracker.ietf.org/wg/core/charter/</font></u></a><br>
<font size=3D"4" face=3D"Courier New">...</font><br>
<font size=3D"4" face=3D"Courier New">Apr 2010        Select WG document fo=
r basis of the CoAP protocol</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">Of the various documents that have be=
en contributed,</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">               </font><br>
<font size=3D"4" face=3D"Courier New">                </font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"4" face=3D"Courier New">draft-shelby-core-coap has significan=
t discussion, as well as the</font><br>
<font size=3D"4" face=3D"Courier New">largest number of updates (including =
a previous version that was still</font><br>
<font size=3D"4" face=3D"Courier New">called -6lowapp-coap).</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">         </font><br>
<font size=3D"4" face=3D"Courier New">          </font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"4" face=3D"Courier New">Today, another updated version of=
 that draft was announced.  See</font><br>
<a href=3D"http://www.ietf.org/mail-archive/web/core/current/msg00138.html"=
><u><font size=3D"4" color=3D"#0000FF" face=3D"Courier New">http://www.ietf=
.org/mail-archive/web/core/current/msg00138.html</font></u></a><br>
<font size=3D"4" face=3D"Courier New">for the announcement and</font><br>
<a href=3D"http://tools.ietf.org/html/draft-shelby-core-coap-01"><u><font s=
ize=3D"4" color=3D"#0000FF" face=3D"Courier New">http://tools.ietf.org/html=
/draft-shelby-core-coap-01</font></u></a><br>
<font size=3D"4" face=3D"Courier New">for the draft itself.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">However, as the authors say, there ar=
e still significant TODOs.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">Are we in a state yet where we can sa=
y whether this is the right</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">               </font><br>
<font size=3D"4" face=3D"Courier New">                </font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"4" face=3D"Courier New">direction for the WG to take?</font><=
br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">         </font><br>
<font size=3D"4" face=3D"Courier New">          </font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"4" face=3D"Courier New">If yes, is it the right direction=
?  Should we adopt it as a WG</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">               </font><br>
<font size=3D"4" face=3D"Courier New">                </font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"4" face=3D"Courier New">document?</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">         </font><br>
<font size=3D"4" face=3D"Courier New">          </font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"4" face=3D"Courier New">If you don't think we can say yet=
, is there a set of technical</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">               </font><br>
<font size=3D"4" face=3D"Courier New">                </font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"4" face=3D"Courier New">decisions you would like the authors =
to take with priority?</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">         </font><br>
<font size=3D"4" face=3D"Courier New">          </font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"4" face=3D"Courier New">Note that once a document has bec=
ome a WG document, the authors act</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">               </font><br>
<font size=3D"4" face=3D"Courier New">                </font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"4" face=3D"Courier New">as editors for the working group, mak=
ing (and usually fleshing out the</font><br>
<font size=3D"4" face=3D"Courier New">details of) any change that the WG de=
cides it needs.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">         </font><br>
<font size=3D"4" face=3D"Courier New">          </font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"4" face=3D"Courier New">If you think we can still improve=
 the draft, this is not an obstacle</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">               </font><br>
<font size=3D"4" face=3D"Courier New">                </font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"4" face=3D"Courier New">to making it a WG document.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">         </font><br>
<font size=3D"4" face=3D"Courier New">          </font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"4" face=3D"Courier New">But of course we shouldn't do tha=
t if we intend to reverse its</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">               </font><br>
<font size=3D"4" face=3D"Courier New">                </font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"4" face=3D"Courier New">fundamental technical direction.</fon=
t><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">         </font><br>
<font size=3D"4" face=3D"Courier New">          </font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"4" face=3D"Courier New">In order to stay roughly in sync =
with our milestones, we should</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">               </font><br>
<font size=3D"4" face=3D"Courier New">                </font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"4" face=3D"Courier New">reach at a decision on how to go forw=
ard this week.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">         </font><br>
<font size=3D"4" face=3D"Courier New">          </font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"4" face=3D"Courier New">Gruesse, Carsten</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F</font><br>
<font size=3D"4" face=3D"Courier New">core mailing list</font><br>
<a href=3D"mailto:core@ietf.org"><u><font size=3D"4" color=3D"#0000FF" face=
=3D"Courier New">core@ietf.org</font></u></a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font size=3D"4" =
color=3D"#0000FF" face=3D"Courier New">https://www.ietf.org/mailman/listinf=
o/core</font></u></a><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">               </font><br>
<font size=3D"4" face=3D"Courier New">                </font></ul>
</ul>
<font size=3D"4" face=3D"Courier New">=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F</font><br>
<font size=3D"4" face=3D"Courier New">core mailing list</font><br>
<a href=3D"mailto:core@ietf.org"><u><font size=3D"4" color=3D"#0000FF" face=
=3D"Courier New">core@ietf.org</font></u></a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font size=3D"4" =
color=3D"#0000FF" face=3D"Courier New">https://www.ietf.org/mailman/listinf=
o/core</font></u></a><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">             </font><br>
<font size=3D"4" face=3D"Courier New">              </font></ul>
</ul>
<font size=3D"4" face=3D"Courier New">--</font><br>
<font size=3D"4" face=3D"Courier New">Zach Shelby, Chief Nerd, Sensinode Lt=
d.</font><br>
<a href=3D"http://zachshelby.org/"><u><font size=3D"4" color=3D"#0000FF" fa=
ce=3D"Courier New">http://zachshelby.org</font></u></a><font size=3D"4" fac=
e=3D"Courier New">  - My blog &quot;On the Internet of Things</font><a href=
=3D"http://6lowpan.net-mybook/"><u><font size=3D"4" color=3D"#0000FF" face=
=3D"Courier New">&quot;</font></u></a><br>
<a href=3D"http://6lowpan.net-mybook/"><u><font size=3D"4" color=3D"#0000FF=
" face=3D"Courier New">http://6lowpan.net - My book &quot;</font></u></a><f=
ont size=3D"4" face=3D"Courier New">6LoWPAN: The Wireless Embedded Internet=
&quot;</font><br>
<font size=3D"4" face=3D"Courier New">Mobile: +358 40 7796297</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">           </font><br>
<font size=3D"4" face=3D"Courier New">            </font></ul>
</ul>
<font size=3D"4" face=3D"Courier New">=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F</font><br>
<font size=3D"4" face=3D"Courier New">core mailing list</font><br>
<a href=3D"mailto:core@ietf.org"><u><font size=3D"4" color=3D"#0000FF" face=
=3D"Courier New">core@ietf.org</font></u></a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font size=3D"4" =
color=3D"#0000FF" face=3D"Courier New">https://www.ietf.org/mailman/listinf=
o/core</font></u></a><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">--------------------------------</fon=
t><br>
<font size=3D"4" face=3D"Courier New">Onzo is a limited company number 0609=
7997 registered in England&amp;   Wales. The</font><br>
<font size=3D"4" face=3D"Courier New">registered office is 6 Great Newport =
Street, London, WC2H 7JB, United Kingdom.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">This email message may contain confid=
ential and/or privileged information, and</font><br>
<font size=3D"4" face=3D"Courier New">is intended solely for the addressee(=
s). If you have received this email in</font><br>
<font size=3D"4" face=3D"Courier New">error, please notify Onzo immediately=
. Unauthorised copying, disclosure or</font><br>
<font size=3D"4" face=3D"Courier New">distribution of the material in this =
email is forbidden.</font><br>
<font size=3D"4" face=3D"Courier New">--------------------------------</fon=
t><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F</font><br>
<font size=3D"4" face=3D"Courier New">core mailing list</font><br>
<a href=3D"mailto:core@ietf.org"><u><font size=3D"4" color=3D"#0000FF" face=
=3D"Courier New">core@ietf.org</font></u></a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font size=3D"4" =
color=3D"#0000FF" face=3D"Courier New">https://www.ietf.org/mailman/listinf=
o/core</font></u></a><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F</font><br>
<font size=3D"4" face=3D"Courier New">This email has been scanned by the Me=
ssageLabs Email Security System.</font><br>
<font size=3D"4" face=3D"Courier New">=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F</font><br>
<font size=3D"4" face=3D"Courier New">core mailing list</font><br>
<a href=3D"mailto:core@ietf.org"><u><font size=3D"4" color=3D"#0000FF" face=
=3D"Courier New">core@ietf.org</font></u></a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font size=3D"4" =
color=3D"#0000FF" face=3D"Courier New">https://www.ietf.org/mailman/listinf=
o/core</font></u></a><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">         </font><br>
<font size=3D"4" face=3D"Courier New">          </font></ul>
</ul>
<font size=3D"4" face=3D"Courier New">       </font><br>
<font size=3D"4" face=3D"Courier New">        </font></ul>
</ul>
<font size=3D"4" face=3D"Courier New">=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F</font><br>
<font size=3D"4" face=3D"Courier New">core mailing list</font><br>
<a href=3D"mailto:core@ietf.org"><u><font size=3D"4" color=3D"#0000FF" face=
=3D"Courier New">core@ietf.org</font></u></a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font size=3D"4" =
color=3D"#0000FF" face=3D"Courier New">https://www.ietf.org/mailman/listinf=
o/core</font></u></a><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">--------------------------------</fon=
t><br>
<font size=3D"4" face=3D"Courier New">Onzo is a limited company number 0609=
7997 registered in England&amp;  Wales. The</font><br>
<font size=3D"4" face=3D"Courier New">registered office is 6 Great Newport =
Street, London, WC2H 7JB, United Kingdom.</font><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">This email message may contain confid=
ential and/or privileged information, and</font><br>
<font size=3D"4" face=3D"Courier New">is intended solely for the addressee(=
s). If you have received this email in</font><br>
<font size=3D"4" face=3D"Courier New">error, please notify Onzo immediately=
. Unauthorised copying, disclosure or</font><br>
<font size=3D"4" face=3D"Courier New">distribution of the material in this =
email is forbidden.</font><br>
<font size=3D"4" face=3D"Courier New">--------------------------------</fon=
t><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">     </font><br>
<font size=3D"4" face=3D"Courier New">      </font></ul>
</ul>
<font size=3D"4" face=3D"Courier New">   </font><br>
<font size=3D"4" face=3D"Courier New">    </font></ul>
</ul>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F</font><br>
<font size=3D"4" face=3D"Courier New">core mailing list</font><br>
<a href=3D"mailto:core@ietf.org"><u><font size=3D"4" color=3D"#0000FF" face=
=3D"Courier New">core@ietf.org</font></u></a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font size=3D"4" =
color=3D"#0000FF" face=3D"Courier New">https://www.ietf.org/mailman/listinf=
o/core</font></u></a><br>
<font size=3D"4" face=3D"Courier New">=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F</font><br>
<font size=3D"4" face=3D"Courier New">core mailing list</font><br>
<a href=3D"mailto:core@ietf.org"><u><font size=3D"4" color=3D"#0000FF" face=
=3D"Courier New">core@ietf.org</font></u></a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font size=3D"4" =
color=3D"#0000FF" face=3D"Courier New">https://www.ietf.org/mailman/listinf=
o/core</font></u></a><br>
<font size=3D"4" face=3D"Courier New"> </font><br>
<font size=3D"4" face=3D"Courier New">  </font><br>
<font size=3D"4"><br>
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F<br>
This email has been scanned by the MessageLabs Email Security System.<br>
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F</font><tt>=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F<br>
core mailing list<br>
core@ietf.org<br>
</tt><tt><a href=3D"https://www.ietf.org/mailman/listinfo/core">https://www=
.ietf.org/mailman/listinfo/core</a></tt><tt><br>
</tt><br>
</body></html>

--1__=4EBBFDA2DFAD2C738f9e8a93df938690918c4EBBFDA2DFAD2C73--


--0__=4EBBFDA2DFAD2C738f9e8a93df938690918c4EBBFDA2DFAD2C73
Content-type: image/gif; 
	name="graycol.gif"
Content-Disposition: inline; filename="graycol.gif"
Content-ID: <2__=4EBBFDA2DFAD2C738@schneider-electric.com>
Content-Transfer-Encoding: base64

R0lGODlhEAAQAKECAMzMzAAAAP///wAAACH5BAEAAAIALAAAAAAQABAAAAIXlI+py+0PopwxUbpu
ZRfKZ2zgSJbmSRYAIf4fT3B0aW1pemVkIGJ5IFVsZWFkIFNtYXJ0U2F2ZXIhAAA7


--0__=4EBBFDA2DFAD2C738f9e8a93df938690918c4EBBFDA2DFAD2C73
Content-type: image/gif; 
	name="pic01723.gif"
Content-Disposition: inline; filename="pic01723.gif"
Content-ID: <3__=4EBBFDA2DFAD2C738@schneider-electric.com>
Content-Transfer-Encoding: base64

R0lGODlhWABDALP/AAAAAK04Qf79/o+Gm7WuwlNObwoJFCsoSMDAwGFsmIuezf///wAAAAAAAAAA
AAAAACH5BAEAAAgALAAAAABYAEMAQAT/EMlJq704682770RiFMRinqggEUNSHIchG0BCfHhOjAuh
EDeUqTASLCbBhQrhG7xis2j0lssNDopE4jfIJhDaggI8YB1sZeZgLVA9YVCpnGagVjV171aRVrYR
RghXcAGFhoUETwYxcXNyADJ3GlcSKGAwLwllVC1vjIUHBWsFilKQdI8GA5IcpApeJQt8L09lmgkH
LZikoU5wjqcyAMMFrJIDPAKvCFletKSev1HBw8KrxtjZ2tvc3d5VyKtCKW3jfz4uMKmq3xu4N0nK
BVoJQmx2LGVOmrqNjjJf2hHAQo/eDwJGTKhQMcgQEEAnEjFS98+RnW3smGkZU6ncCWav/4wYOnAI
TihRL/4FEwbp28BXMMcoscQCVxlepL4IGDSCyJyVQOu0o7CjmLN50OZlqWmyFy5/6yBBuji0AxFR
M00oQAqNIstqI6qKHUsWRAEAvagsmfUEAImyxgbmUpJk3IklNUtJOUAVLoUr1+wqDGTE4zk+T6FG
uQb3SizBCwatiiUgCBN8vrz+zFjVyQ8FWkOlg4NQiZMB5QS8QO3mpOaKnL0Z2EKvNMSILEThKhCg
zMKPVxYJh23qm9KNW7pArPynMqZDiErsTMqI+LRi3QAgkFUbXpuFKhSYZALd0O5RKa2z9EYKBbpb
qxIKsjUPRgD7I2XYV6wyrOw92ykExP8NW4URhknC5dKGE4v4NENQj2jXjmfNgOZDaXb5glRmXQ33
YEWQYNcZFnrYcIQLNzyTFDQNkXIff0ExVlY4srziQk43inZgL4rwxxINMvpFFAz1KOODHiu+4aEw
NEjFl5B3JIKWKF3k6I9bfUGp5ZZcdunll5IA4cuHvQQJ5gcsoCWOOUwgltIwAKRxJgbIkJAQZEq0
2YliZnpZZ4BH3CnYOXldOUOfQoYDqF1LFHbXCrO8xmRsfoXDXJ6ChjCAH3QlhJcT6VWE6FCkfCco
CgrMFsROrIEX3o2whVjWDjoJccN3LdggSGXLCdLEgHr1lyU3O3QxhgohNKXJCWv8JQr/PDdaqd6w
2rj1inLiGeiCJoDspAoQlYE6QWLSECehcWIYxIQES6zhbn1iImTHEQyqJ4eIxJJoUBc+3CbBuwZE
V5cJPPkIjFDdeEabQbd6WgICTxiiz0f5dBKquXF6k4senwEhYGnKEFJeGrxUZy8dB8gmAXI/sPvH
ESfCwVt5hTgYiqQqtdRNHQIU1PJ33ZqmzgE90OwLaoJcnMop1WiMmgkPHQRIrwgFuNV90A3doNKT
mrKIN07AnGcI9BQjhCBN4RfA1qIZnMqorJCogKfGQnxSCDilTVIA0yl5ciTovgLuBDKFUDE9aQcw
9SA+rjSNf9/M1gxrj6VwDTS0IUSElMzBfsj0NFXR2kwsV1A5IF1grLgLL/r1R40BZEnuBWgmQEyb
jqRwSAt6bqMCOFkvKFN2GPPkUzIm/SCF8z8pVzpbjVnMsy0vOr1hw3SaSRUhpY09v0z0J1FnwzPl
fmh+xl4WtR0zGu24I4KbMQm3lnVu2oNWxI9W/lcyzA+mCKF4DBikxb/+UWtOGRiFP8qEwAayIgIA
Ow==


--0__=4EBBFDA2DFAD2C738f9e8a93df938690918c4EBBFDA2DFAD2C73
Content-type: image/gif; 
	name="ecblank.gif"
Content-Disposition: inline; filename="ecblank.gif"
Content-ID: <4__=4EBBFDA2DFAD2C738@schneider-electric.com>
Content-Transfer-Encoding: base64

R0lGODlhEAABAIAAAAAAAP///yH5BAEAAAEALAAAAAAQAAEAAAIEjI8ZBQA7


--0__=4EBBFDA2DFAD2C738f9e8a93df938690918c4EBBFDA2DFAD2C73--


From robert.cragie@gridmerge.com  Fri May 28 05:09:05 2010
Return-Path: <robert.cragie@gridmerge.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 C1FE83A6822; Fri, 28 May 2010 05:09:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.744
X-Spam-Level: *
X-Spam-Status: No, score=1.744 tagged_above=-999 required=5 tests=[AWL=-0.442,  BAYES_50=0.001, HTML_FONT_FACE_BAD=0.884, HTML_MESSAGE=0.001, MANGLED_TOOL=2.3, 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 AlWmt14Uo9tU; Fri, 28 May 2010 05:09:00 -0700 (PDT)
Received: from mail78.extendcp.co.uk (mail78.extendcp.co.uk [79.170.40.78]) by core3.amsl.com (Postfix) with ESMTP id 81CC63A659B; Fri, 28 May 2010 05:08:59 -0700 (PDT)
Received: from client-82-26-176-40.pete.adsl.virginmedia.com ([82.26.176.40] helo=[192.168.1.70]) by mail78.extendcp.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.71) id 1OHyMl-00031S-Oi; Fri, 28 May 2010 13:08:47 +0100
Message-ID: <4BFFB246.4010600@gridmerge.com>
Date: Fri, 28 May 2010 13:08:38 +0100
From: Robert Cragie <robert.cragie@gridmerge.com>
Organization: Gridmerge Ltd.
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.9) Gecko/20100317 Lightning/1.0b1 Thunderbird/3.0.4
MIME-Version: 1.0
To: matthieu.vial@fr.non.schneider-electric.com
References: <OF54E90C1C.C8997A73-ONC1257731.003EAAE3-C1257731.004127C6@schneider-electric.com>
In-Reply-To: <OF54E90C1C.C8997A73-ONC1257731.003EAAE3-C1257731.004127C6@schneider-electric.com>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="------------ms070209000403000202080409"
Cc: core-bounces@ietf.org, core <core@ietf.org>
Subject: Re: [core] Subscribe/Notify for CoAP
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: robert.cragie@gridmerge.com
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, 28 May 2010 12:09:05 -0000

This is a cryptographically signed message in MIME format.

--------------ms070209000403000202080409
Content-Type: multipart/alternative;
 boundary="------------050101090105090201020407"

This is a multi-part message in MIME format.
--------------050101090105090201020407
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable

Hi Matthieu,

I am not sure what you mean here. Do you mean that some other client can =

subscribe to be notified whenever some method is acted upon for a=20
particular resource? Can you describe the transaction model?

Robert

Robert Cragie (Pacific Gas & Electric)

Gridmerge Ltd.
89 Greenfield Crescent,
Wakefield, WF4 4WA, UK
+44 1924 910888
+1 415 513 0064
http://www.gridmerge.com <http://www.gridmerge.com/>


On 28/05/2010 12:51 PM, matthieu.vial@fr.non.schneider-electric.com wrote=
:
>
> > So strictly speaking, both NOTIFY and SUBSCRIBE are message types=20
> not  methods!
>
> SUBSCRIBE can be just an asynchronous GET on update then I think it is =

> a method and NOTIFY is an asynchronous response so a message.
> But if we want to have selective notifications when a resource is=20
> created, updated or deleted then I think you're right NOTIFY and=20
> SUBSCRIBE are messages.
>
> Does that make sense ?
>
> Matthieu
>
> Inactive hide details for "Adriano Pezzuto (apezzuto)"=20
> <apezzuto@cisco.com>"Adriano Pezzuto (apezzuto)" <apezzuto@cisco.com>
>
>
>
>
>                         *"Adriano Pezzuto (apezzuto)"
>                         <apezzuto@cisco.com>*
>                         Envoy=E9 par : core-bounces@ietf.org
>
>                         28/05/2010 12:50
>
> =09
>
> A
> =09
> <robert.cragie@gridmerge.com>
>
> cc
> =09
> core <core@ietf.org>
>
> Objet
> =09
> Re: [core] Subscribe/Notify for CoAP
>
> =09
>
>
> Hi Roberto,
> I understand your point and personally agree on M2M is quite different =

> from web page model. On the architectural RESTful style, the method=20
> information tells the server what to do with data kept in the URI=20
> information.
>
> So strictly speaking, both NOTIFY and SUBSCRIBE are message types not=20
>  methods!
>
> Adriano
>
> *From:* Robert Cragie [mailto:robert.cragie@gridmerge.com] *
> Sent:* venerd=EC 28 maggio 2010 11.53*
> To:* Adriano Pezzuto (apezzuto)*
> Cc:* Paul Duffy (paduffy); Zach Shelby; core*
> Subject:* Re: [core] Subscribe/Notify for CoAP
>
> I think the point here is that there are two levels we are considering.=

>
> At the lowest (foundation) level, there are the transaction messages=20
> as described below. This provides a flexible mechanism for the=20
> application with regard to synchronicity and threading. This is=20
> important for the types of devices CoAP is being aimed at.
>
> Above that, the methods can be used according to the architectural=20
> style. So in this case, it is RESTful (COnstrained Restful=20
> Environments), which will naturally limit the number of methods and=20
> how transactions occur.
>
> The actual architecture using a combination of the methods and=20
> messages also depends on what is required at the application layer.=20
> Consider a typical client which wants to subscribe to a resource. That =

> client controls the feed of data but needs a component which is=20
> capable of handling (possibly buffering) the data it receives through=20
> notifications. Is this a separate server? Or would we want to consider =

> it part of an enhanced client model which is able to process feeds of=20
> data? These are the sort of models which have led to the myriad of=20
> solutions (GENA, Webhooks, long polling, pubsubhubbub, RESTMS etc.)=20
> based around HTTP which are all essentially ingenious ways of getting=20
> around the limitations imposed by HTTP and how it is processed for=20
> anything which deviates from the classic web page access model.
>
> I think the aim of CoAP should be clean from the word go with regard=20
> to supporting these more peer-to-peer transactions, where the client=20
> can exist on either entity and both entities can feed data to each=20
> other; typical in M2M applications.
>
> Robert
>
> Robert Cragie (Pacific Gas & Electric)
>
> Gridmerge Ltd.
> 89 Greenfield Crescent,
> Wakefield, WF4 4WA, UK
> +44 1924 910888
> +1 415 513 0064_
> __http://www.gridmerge.com_ <http://www.gridmerge.com/>
>
> On 27/05/2010 7:08 PM, Adriano Pezzuto (apezzuto) wrote:
> Hi Robert,
>
> in my personal opinion, the option 1a) brings some sort of ambiguity=20
> to CoAP specs.
>
> My be my understatement of new CoAP specs is not so deep, but now we=20
> have 5 methods and 3 message types: request, response and notify.=20
> Which methods are allowed with which messages types?
> I suppose you have to use PUT/POST method with notify message for=20
> asynch data notification. How to make a subscribe? I suppose you would =

> use a SUBSCRIBE method with request/response message or SUBSCRIBE with =

> notify message? Also what about POST/DELETE methods in a notify=20
> message? They not make any sense..
>
> I think the choice is between: option 1) -> only CRUD methods and=20
> option 1b) -> CRUD + SUB/NOTIFY methods, keeping in mind cost/benefits =

> of both solutions.
>
> Adriano
>
> *From:* Robert Cragie [_mailto:robert.cragie@gridmerge.com_] *
> Sent:* mercoled=EC 26 maggio 2010 20.09*
> To:* Adriano Pezzuto (apezzuto)*
> Cc:* Paul Duffy (paduffy); Zach Shelby; core*
> Subject:* Re: [core] Subscribe/Notify for CoAP
>
> Hi Adrian,
>
> I would also prefer to keep the protocol in CoAP asynchronous. You can =

> always map an asynchronous protocol to a synchronous one but, as we=20
> see in HTTP, it always ends up as a kludge to do it the other way=20
> round. The efforts which have been gone to to make HTTP=20
> quasi-asynchronous via all the schemes mentioned below and many more=20
> besides (all non-interoperable of course) is testament to how=20
> important this is for M2M communication.
>
> So, back to Zach's list, I favor 1a) for the following reasons:
>
> Foundation level of messages:
>
>       1. request/response can be asynchronous or synchronous messages
>       (as there is a transaction ID in there)
>       2. notify is an asynchronous message=20
>
> Derived methods:
>
> I think it makes sense to add a pub/sub model as a useful mechanism=20
> for M2M.
>
> So, looking at it the other way round: It will be entirely possible to =

> translate whatever is currently built on HTTP to CoAP based on the=20
> above, with all its restrictions regarding synchronous and=20
> client/server transactions. What may be harder is to translate=20
> directly is a CoAP-based application to HTTP. So I guess the question=20
> is: Do we want to be hamstrung to synchronous client/server=20
> transactions as dictated by HTTP and provide a direct mapping to HTTP, =

> then have to come up with similar kludges for asynchronous=20
> peer-to-peer transactions as has been done in numerous ways for HTTP,=20
> or do we want to define the protocol cleanly to start with and accept=20
> that some sort of transaction relaying/conversion would have to take=20
> place at a mapping node?
>
> Robert
>
> Robert Cragie (Pacific Gas & Electric)
>
> Gridmerge Ltd.
> 89 Greenfield Crescent,
> Wakefield, WF4 4WA, UK
> +44 1924 910888
> +1 415 513 0064_
> __http://www.gridmerge.com_ <http://www.gridmerge.com/>
>
> On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote:
> Hi,
> it looks to me that CoAP should use an explicit sub/notify mechanism=20
> since this is the core of the machine-to-machine interaction model.
> HTTP suffers of this lack and we have seen a plethora of solutions to=20
> give an asynch taste to it. Webhooks and websockets are only the lasts =

> of the list.
> As someone has already pointed out on this list, it is theoretically=20
> possible to describe sub/notify using only CRUD methods but it looks a =

> little bit tricky and verbose.
>
> Now we have a chance to build from scratch a new protocol with and I=20
> think using explicit sub/notify methods with a clear and well defined=20
> semantic is the best option. It is easily understanding from every=20
> developer and will prevent to build other fanny solutions on top of=20
> the CoAP. HTTP does not have this well defined semantic and (for=20
> hundreds of other reasons also) it is not used as wide protocol for=20
> machine-to-machine communication.
>
> CoAP - as binary protocol - and with an explicit asynch model has a=20
> chance to be a really wide protocol for M2M communication not only for =

> constrained environments.
>
> my 2 cents
>
> - adriano
>
> -----Original Message-----
> From: _core-bounces@ietf.org_ <mailto:core-bounces@ietf.org>=20
> [_mailto:core-bounces@ietf.org_] On Behalf Of Paul Duffy (paduffy)
> Sent: mercoled=EC 26 maggio 2010 0.47
> To: Zach Shelby
> Cc: core
> Subject: Re: [core] Subscribe/Notify for CoAP
>
> On 5/25/2010 6:41 PM, Zach Shelby wrote:
>
>             Hi,
>
>             On May 26, 2010, at 12:23 AM, Charles Palmer wrote:
>
>
>                         Hi folks
>
>                         It occurs to me that CoRE should be keeping a
>                         close eye on ZigBee SE2.0 work, so that it is
>                         as easy as possible for ZigBee SE to use CoRE
>                         when ready. That suggests to me that we should
>                         align with their subscribe/notify process.
>
>
>             I am not sure I understand that. I mean, ZigBee SE2.0 is
>             defining an application specific subscribe/notify
>             mechanism for that purpose so far for HTTP. This uses
>             standard HTTP methods and some custom payload and REST
>             interfaces. CoAP Req/Res is already totally compatible
>             with SE2.0 in that respect, so alignment is already OK
>             there. Nothing stopping someone from using SE2.0 over CoAP.=

>
>             Specifying a native susbcription/notify into CoAP is
>             another matter. We can't adopt a solution specific to one
>             application as that won't solve the problems of other
>             applications nor general HTTP mapping at all (probably
>             would make it worse). It seems that for the near future
>             there will be a bunch of HTTP push mechanisms in use
>             without any clear standard appearing - or am I wrong there?=

>
>
>
>
> If COAP extends HTTP semantics with new subscription methods, it will
> not be possible to easily interchange HTTP/COAP, and translation
> gateways will become more complex to implement.
>
>
>
>             Zach
>
>
>                         Regards - Charles
>
>
>                         -----Original Message-----
>                         From: _core-bounces@ietf.org_
>                         <mailto:core-bounces@ietf.org>
>                         [_mailto:core-bounces@ietf.org_] On Behalf Of
>                         Paul Duffy
>                         Sent: 25 May 2010 03:48
>                         To: Zach Shelby
>                         Cc: core
>                         Subject: Re: [core] Subscribe/Notify for CoAP
>
>                         Recommend something like #2, primarily to
>                         avoid introducing non HTTP
>                         method semantics, simplifying HTTP/COAP
>                         translation.gateways, etc.
>
>
>                         On 5/24/2010 11:49 AM, Zach Shelby wrote:
>
>                                     (thread renamed)
>
>                                     We have two different paths with
>                                     regard to a subscribe/notify
>                                     mechanism for CoAP:
>
>                                     1. Use specific Subscription and
>                                     Notify mechanisms for CoAP as HTTP
>                                     really does not include this concep=
t.
>                                     1a) Notify as a message and
>                                     SUBSCRIBE as a method. This is
>                                     currently used in coap-01.
>                                     1b) NOTIFY and SUBSCRIBE as
>                                     methods. This was used in coap-00,
>                                     but we had a good list discussion
>                                     about this leading to a. In
>                                     practice it doesn't make a big
>                                     difference if notification is a
>                                     message or method.
>
>                                     2. Use an HTTP specific framework
>                                     such as Webhooks, the ZigBee SE2.0
>                                     proposal or GENA.
>
>                                     So far we have focused on 1 in the
>                                     WG, and every now and again 2
>                                     comes up. At least I am not
>                                     convinced that we need to suffer
>                                     the drawbacks of HTTP here.
>                                     Anyways 2 does not help our
>                                     mapping to HTTP in reality very
>                                     much as there is no standard way
>                                     of doing this over HTTP. Thus a
>                                     CoAP-HTTP proxy may end up anyways
>                                     translating between multiple HTTP
>                                     frameworks depending on the
>                                     application. So instead of doing a
>                                     CoAP Notify/Subscribe to Webhooks
>                                     mapping, you will could end up
>                                     having to do a CoAP Webhooks to
>                                     HTTP GENA mapping.
>
>
>
>                         I don't understand this last para. If CoAP
>                         sticks to the semantics of
>                         the current HTTP methods, would this not offer
>                         a fairly straightforward
>                         translation to/from HTTP?
>
>
>
>                                                 From what I have heard
>                                                 so far 1 still seems
>                                                 like a wise choice,
>                                                 although I need to
>                                                 look at Webhooks more
>                                                 deeply. In reality
>                                                 many applications
>                                                 specify their own way
>                                                 of doing a push
>                                                 interface using REST
>                                                 methods and specific
>                                                 payloads (ZigBee SE2.0
>                                                 is such an example).
>                                                 That is just fine, and
>                                                 might be used instead
>                                                 of a specific CoAP
>                                                 notify/subscribe in
>                                                 that case. So 1
>                                                 doesn't prevent the
>                                                 application using its
>                                                 own mechanism, it just
>                                                 provides a native way
>                                                 for doing push.
>
>                                     What do people think?
>
>                                     Zach
>
>                                     On May 17, 2010, at 6:44 PM,
>                                     _matthieu.vial@fr.non.schneider-ele=
ctric.com_
>                                     <mailto:matthieu.vial@fr.non.schnei=
der-electric.com>
>                                     wrote:
>
>
>
>                                                 Hi,
>
>                                                 My comments about the
>                                                 subscribe/notify
>                                                 mechanism of Zigbee IP.=

>
>                                                 Pros:
>                                                 - Derived from the
>                                                 webhooks concept
>                                                 - If used by CORE it
>                                                 will be easier to map
>                                                 to HTTP because it
>                                                 uses only CRUD verbs.
>                                                 - The subscription
>                                                 message is extendable
>                                                 and could support
>                                                 advanced options
>                                                 (delays, increment, ...=
)
>                                                 - Only one listening
>                                                 port whatever the
>                                                 transport binding is.
>
>                                                 Cons:
>                                                 - No interoperability
>                                                 without well known
>                                                 URIs and a well
>                                                 defined subscription
>                                                 message format (Not
>                                                 sure CoAP draft is the
>                                                 right place to specify
>                                                 this).
>                                                 - XML/EXI is too
>                                                 complex to be the
>                                                 required format for
>                                                 the default
>                                                 subscription/notificati=
on
>                                                 mechanism.
>                                                 - The notification
>                                                 should not require a
>                                                 subsequent GET to
>                                                 retrieve the content.
>                                                 - Subresource
>                                                 subscription is redunda=
nt.
>
>                                                 Hope this could help,
>                                                 Matthieu
>
>
>                                                 <graycol.gif>"Charles
>                                                 Palmer"_<charles.palmer=
@onzo.com>_
>                                                 <mailto:charles.palmer@=
onzo.com>
>
>
>
>
>                                                 "Charles
>                                                 Palmer"_<charles.palmer=
@onzo.com>_
>                                                 <mailto:charles.palmer@=
onzo.com>
>                                                 Envoy=E9 par :
>                                                 _core-bounces@ietf.org_=
 <mailto:core-bounces@ietf.org>
>                                                 15/05/2010 14:06
>
>                                                 <ecblank.gif>
>                                                 A
>                                                 <ecblank.gif>
>                                                 "core"_<core@ietf.org>_=
 <mailto:core@ietf.org>
>                                                 <ecblank.gif>
>                                                 cc
>                                                 <ecblank.gif>
>                                                 <ecblank.gif>
>                                                 Objet
>                                                 <ecblank.gif>
>                                                 Re: [core] Selecting a
>                                                 WG document for CoAP
>                                                 <ecblank.gif>
>                                                 <ecblank.gif>
>
>                                                 Dear all
>
>                                                 Those interested in
>                                                 the subscribe/notify
>                                                 discussion might like
>                                                 to look
>                                                 at the draft Smart
>                                                 Energy Profile 2.0
>                                                 Application Protocol
>                                                 Specification. It is
>                                                 available here:
>                                                 _http://zigbee.org/Mark=
ets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicApp_
>                                                 licationProfile.aspx
>
>                                                 It manages
>                                                 subscribe/notify by
>                                                 using POST. This seems
>                                                 to remove the need
>                                                 for SUBSCRIBE and notif=
y.
>
>                                                 "Imagine a host A,
>                                                 which exposes a
>                                                 resource at
>                                                 http{s}://A/resource an=
d
>                                                 a second host B, which
>                                                 wishes to learn of
>                                                 changes to this
>                                                 resource. To
>                                                 facilitate a
>                                                 subscription/
>                                                 notification
>                                                 mechanism, A would
>                                                 expose a
>                                                 resource
>                                                 http{s}://A/sub and B
>                                                 would expose a
>                                                 resource http{s}://B/nt=
fy.
>                                                 To subscribe to
>                                                 notifications
>                                                 regarding
>                                                 http{s}://A/resource,
>                                                 B would
>                                                 send a POST to the
>                                                 address
>                                                 http{s}://A/sub/B
>                                                 containing the URI of t=
he
>                                                 resource of interest
>                                                 (http{s}://A/resource)
>                                                 and the URI of B's
>                                                 notification resource
>                                                 (http{s}://B/ntfy).
>                                                 Following this
>                                                 subscription
>                                                 step, should A wish to
>                                                 notify B of a change
>                                                 to the resource
>                                                 addressed at
>                                                 http{s}://A/resource,
>                                                 A would send a POST to
>                                                 the address
>                                                 http{s}://B/ntfy
>                                                 containing the URI of
>                                                 the resource changed
>                                                 (http{s}://A/resource)
>                                                 and the URI of A's
>                                                 subscription resource
>                                                 (http{s}://A/sub/B),
>                                                 should A wish to
>                                                 change its
>                                                 subscription. The host
>                                                 B can then query the
>                                                 resource (or not) at
>                                                 its leisure."
>
>                                                 Sleepy nodes are not
>                                                 allowed to subscribe,
>                                                 and must poll.
>
>                                                 Regards - Charles Palme=
r
>
>                                                 -----Original Message--=
---
>                                                 From:
>                                                 _core-bounces@ietf.org_=
 <mailto:core-bounces@ietf.org>
>                                                 [_mailto:core-bounces@i=
etf.org_]
>                                                 On Behalf Of
>                                                 Angelo P. Castellani
>                                                 Sent: 14 May 2010 13:14=

>                                                 To: Zach Shelby
>                                                 Cc: core
>                                                 Subject: Re: [core]
>                                                 Selecting a WG
>                                                 document for CoAP
>
>                                                 Zach,
>
>                                                 thanks for the
>                                                 comments, but please
>                                                 refer to my most
>                                                 recent e-mail for
>                                                 a more specific list
>                                                 of technical issues
>                                                 I'm pointing to.
>
>                                                 I want to do only a
>                                                 little integration to
>                                                 what I've written there=
=2E
>
>                                                 In my very personal
>                                                 opinion, to maximize
>                                                 adherence with the
>                                                 REST model
>                                                 and minimize
>                                                 implementation effort
>                                                 SUBSCRIBE and NOTIFY
>                                                 should be
>                                                 mapped to methods (as
>                                                 discussed many times
>                                                 together...).
>
>                                                 Uniform interface
>                                                 principle (Fielding
>                                                 PhD dissertation
>                                                 Section 5.1.5,
>                                                 "The central feature
>                                                 that distinguishes the
>                                                 REST architectural styl=
e
>                                                 [...]") states that to
>                                                 simplify the software
>                                                 architecture, resource
>                                                 interfaces/interfaces
>                                                 should be as general
>                                                 as possible.
>
>                                                 I agree with this
>                                                 principle in this
>                                                 specific case, mainly
>                                                 because
>                                                 handling a special
>                                                 message type for
>                                                 notify leads node
>                                                 software design
>                                                 to a more complex
>                                                 architecture.
>
>                                                 The reason is that
>                                                 this new message type
>                                                 requires special
>                                                 handling and
>                                                 introduces a
>                                                 complexity in the
>                                                 software modularization=
=2E
>
>                                                 Best,
>                                                 Angelo
>
>                                                 On Fri, May 14, 2010
>                                                 at 13:06, Zach
>                                                 Shelby_<zach@sensinode.=
com>_
>                                                 <mailto:zach@sensinode.=
com>
>                                                 wrote:
>
>
>                                                             Hi Angelo,
>
>                                                             On May 13,
>                                                             2010, at
>                                                             14:24 ,
>                                                             Angelo P.
>                                                             Castellani
>                                                             wrote:
>
>
>
>                                                                        =
 Dear
>                                                                        =
 C.
>                                                                        =
 Bormann,
>                                                                        =
 all,
>
>                                                                        =
 before
>                                                                        =
 deciding
>                                                                        =
 for
>                                                                        =
 the
>                                                                        =
 final
>                                                                        =
 direction,
>                                                                        =
 I've
>                                                                        =
 the
>                                                                        =
 following
>                                                                        =
 observations
>                                                                        =
 about
>                                                                        =
 draft-shelby-core-coap-01
>
>                                                                        =
 While
>                                                                        =
 I mostly
>                                                                        =
 share
>                                                                        =
 Zach's
>                                                                        =
 view
>                                                                        =
 of
>                                                                        =
 the
>                                                                        =
 protocol
>                                                                        =
 approach,
>                                                                        =
 and
>                                                                        =
 appreciate
>                                                                        =
 many
>                                                                        =
 aspects
>                                                                        =
 of
>                                                                        =
 the
>                                                                        =
 proposal,
>                                                                        =
 there
>                                                                        =
 are
>                                                                        =
 in
>                                                                        =
 my
>                                                                        =
 opinion
>
>
>                                                 still
>
>
>                                                                        =
 some
>                                                                        =
 open
>                                                                        =
 issues
>                                                                        =
 that
>                                                                        =
 need
>                                                                        =
 to
>                                                                        =
 be
>                                                                        =
 at
>                                                                        =
 least
>                                                                        =
 discussed
>                                                                        =
 before
>                                                                        =
 the
>
>
>                                                 current
>
>
>                                                                        =
 document
>                                                                        =
 can
>                                                                        =
 be
>                                                                        =
 selected.
>
>
>                                                             Of course
>                                                             there are
>                                                             plenty of
>                                                             open
>                                                             issues.
>                                                             Remember
>                                                             that
>                                                             working gro=
up
>
>
>                                                 documents still
>                                                 undertake as much
>                                                 change and improvement
>                                                 as the WG
>                                                 wants, so by no means
>                                                 is coap-01 set in
>                                                 stone. I would expect
>                                                 at least
>                                                 5-10 more revisions
>                                                 still along the way.
>                                                 Already several of
>                                                 your ideas
>                                                 have been integrated
>                                                 into coap-01, and
>                                                 several more are under
>                                                 consideration, so it
>                                                 is coming along.
>                                                 Patience ;-)
>
>
>
>                                                                        =
 In
>                                                                        =
 particular,
>                                                                        =
 I would
>                                                                        =
 like
>                                                                        =
 to
>                                                                        =
 highlight
>                                                                        =
 the
>                                                                        =
 following:
>
>                                                                        =
 a)
>                                                                        =
 As
>                                                                        =
 it
>                                                                        =
 is
>                                                                        =
 now,
>                                                                        =
 it
>                                                                        =
 is
>                                                                        =
 not
>                                                                        =
 possible
>                                                                        =
 to
>                                                                        =
 have
>                                                                        =
 a straightforward
>                                                                        =
 translation
>                                                                        =
 of
>                                                                        =
 HTTP
>                                                                        =
 ->
>                                                                        =
 CoAP
>                                                                        =
 and
>                                                                        =
 viceversa:
>                                                                        =
 see
>                                                                        =
 _http://www.ietf.org/mail-archive/web/core/current/msg00133.html_
>                                                                        =
 (this
>                                                                        =
 impacts
>                                                                        =
 the
>                                                                        =
 scalability
>                                                                        =
 of
>                                                                        =
 the
>                                                                        =
 web
>                                                                        =
 service
>                                                                        =
 model
>                                                                        =
 too)
>
>
>                                                             In coap-01
>                                                             the Method
>                                                             names are
>                                                             now
>                                                             identical
>                                                             to HTTP
>                                                             methods. Th=
e
>
>
>                                                 Req/Res interaction is
>                                                 a direct translation.
>                                                 The URI hierarchy is
>                                                 compatible, and the
>                                                 URI binary code format
>                                                 we are still working on=

>                                                 obviously. The only
>                                                 thing that takes some
>                                                 state to translate is
>                                                 Subscribe/Notify. But
>                                                 note, Subscribe/Notify
>                                                 takes some state no mat=
ter
>                                                 how you do it, even
>                                                 with HTTP-HTTP there
>                                                 is no clean and easy
>                                                 way to
>                                                 handle subscriptions.
>
>
>
>                                                                        =
 b)
>                                                                        =
 Moreover,
>                                                                        =
 CoAP's
>                                                                        =
 implementation
>                                                                        =
 is
>                                                                        =
 not
>                                                                        =
 as
>                                                                        =
 simple
>                                                                        =
 as
>                                                                        =
 it
>                                                                        =
 should
>                                                                        =
 be.
>                                                                        =
 I've
>                                                                        =
 investigated
>                                                                        =
 the
>                                                                        =
 implementation
>                                                                        =
 and
>                                                                        =
 some
>                                                                        =
 design
>                                                                        =
 choices
>                                                                        =
 (as
>                                                                        =
 Options)
>                                                                        =
 are
>                                                                        =
 leading
>                                                                        =
 to
>                                                                        =
 very
>                                                                        =
 high
>                                                                        =
 program
>                                                                        =
 complexity
>                                                                        =
 (ROM)
>                                                                        =
 on
>                                                                        =
 a
>                                                                        =
 MSP430-based
>                                                                        =
 device.
>
>
>                                                             This we
>                                                             can
>                                                             definitely
>                                                             improve,
>                                                             and
>                                                             already
>                                                             made
>                                                             several
>                                                             optimizatio=
ns
>
>
>                                                 from -00 to -01. Here
>                                                 I need some very
>                                                 concrete proposals
>                                                 though. Also
>                                                 remember that many
>                                                 things are optional,
>                                                 for example
>                                                 subscribe/notify is
>                                                 not required if you
>                                                 don't need it.
>
>
>
>                                                                        =
 c)
>                                                                        =
 Finally
>                                                                        =
 when
>                                                                        =
 comparing
>                                                                        =
 HTTP
>                                                                        =
 message
>                                                                        =
 size
>                                                                        =
 with
>                                                                        =
 CoAP
>                                                                        =
 message
>                                                                        =
 size,
>                                                                        =
 the
>                                                                        =
 resulting
>                                                                        =
 compression
>                                                                        =
 isn't
>                                                                        =
 as
>                                                                        =
 good
>                                                                        =
 as
>                                                                        =
 you
>                                                                        =
 may
>                                                                        =
 expect.
>
>                                                                        =
 Example:
>                                                                        =
 HTTP:
>                                                                        =
 GET
>                                                                        =
 /sensor/temp.xml
>                                                                        =
 HTTP/1.0
>                                                                        =
 =3D 32
>                                                                        =
 B
>                                                                        =
 CoAP:
>                                                                        =
 24
>                                                                        =
 B with
>                                                                        =
 options
>                                                                        =
 parsing
>                                                                        =
 procedure
>                                                                        =
 requiring
>                                                                        =
 an
>                                                                        =
 added
>                                                                        =
 implementation
>                                                                        =
 complexity
>
>
>                                                             Right,
>                                                             that is
>                                                             not how it
>                                                             will work
>                                                             in
>                                                             practice.
>                                                             Working
>                                                             with a real=

>
>
>                                                 HTTP server that HTTP
>                                                 header will be more
>                                                 complex, and on the
>                                                 CoAP side
>                                                 you would chose
>                                                 shorter URLs. The
>                                                 biggest improvement
>                                                 possible here is
>                                                 from using binary
>                                                 coded URLs of course.
>                                                 We need to look at a
>                                                 wider range
>                                                 of interactions and
>                                                 real HTTP headers as
>                                                 well to check that we a=
re
>                                                 efficient enough.
>
>
>
>                                                                        =
 Addressing
>                                                                        =
 all
>                                                                        =
 these
>                                                                        =
 points
>                                                                        =
 potentially
>                                                                        =
 leads
>                                                                        =
 to
>                                                                        =
 major
>                                                                        =
 technical
>                                                                        =
 modifications
>                                                                        =
 (especially
>                                                                        =
 point
>                                                                        =
 a)
>                                                                        =
 on
>                                                                        =
 the
>                                                                        =
 current
>                                                                        =
 draft,
>                                                                        =
 hence
>                                                                        =
 it
>                                                                        =
 is
>                                                                        =
 appropriate
>                                                                        =
 in
>                                                                        =
 my
>                                                                        =
 opinion
>                                                                        =
 to
>                                                                        =
 discuss
>                                                                        =
 these
>                                                                        =
 points
>                                                                        =
 before
>                                                                        =
 making
>                                                                        =
 the
>                                                                        =
 final
>                                                                        =
 decision.
>
>
>                                                             I am not
>                                                             sure what
>                                                             else you
>                                                             have in
>                                                             mind for
>                                                             a). If we
>                                                             just forget=

>
>
>                                                 about Subscribe/Notify
>                                                 then you are good to
>                                                 go. But then you are al=
so
>                                                 not fulfilling the
>                                                 charter or the
>                                                 industry needs in that
>                                                 respect.
>
>
>                                                             Thanks,
>                                                             Zach
>
>
>
>                                                                        =
 Best
>                                                                        =
 regards,
>
>                                                                        =
 Angelo
>                                                                        =
 P.
>                                                                        =
 Castellani
>
>
>                                                                        =
 On
>                                                                        =
 Mon,
>                                                                        =
 May
>                                                                        =
 10,
>                                                                        =
 2010
>                                                                        =
 at
>                                                                        =
 18:51,
>                                                                        =
 Carsten
>                                                                        =
 Bormann_<cabo@tzi.org>_
>                                                                        =
 <mailto:cabo@tzi.org>
>                                                                        =
 wrote:
>
>
>                                                                        =
             The
>                                                                        =
             CORE
>                                                                        =
             WG
>                                                                        =
             has
>                                                                        =
             a milestone
>                                                                        =
             to
>                                                                        =
             select
>                                                                        =
             a WG
>                                                                        =
             document
>                                                                        =
             for
>                                                                        =
             CoAP
>                                                                        =
             in
>
>
>                                                 April:
>
>
>                                                                        =
             _http://datatracker.ietf.org/wg/core/charter/_
>                                                                        =
             ...
>                                                                        =
             Apr
>                                                                        =
             2010
>                                                                        =
             Select
>                                                                        =
             WG
>                                                                        =
             document
>                                                                        =
             for
>                                                                        =
             basis
>                                                                        =
             of
>                                                                        =
             the
>                                                                        =
             CoAP
>                                                                        =
             protocol
>
>                                                                        =
             Of
>                                                                        =
             the
>                                                                        =
             various
>                                                                        =
             documents
>                                                                        =
             that
>                                                                        =
             have
>                                                                        =
             been
>                                                                        =
             contributed,
>
>
>                                                 draft-shelby-core-coap
>                                                 has significant
>                                                 discussion, as well as =
the
>                                                 largest number of
>                                                 updates (including a
>                                                 previous version that
>                                                 was still
>                                                 called -6lowapp-coap).
>
>
>                                                                        =
             Today,
>                                                                        =
             another
>                                                                        =
             updated
>                                                                        =
             version
>                                                                        =
             of
>                                                                        =
             that
>                                                                        =
             draft
>                                                                        =
             was
>                                                                        =
             announced.
>                                                                        =
             See
>                                                                        =
             _http://www.ietf.org/mail-archive/web/core/current/msg00138.=
html_
>                                                                        =
             for
>                                                                        =
             the
>                                                                        =
             announcement
>                                                                        =
             and
>                                                                        =
             _http://tools.ietf.org/html/draft-shelby-core-coap-01_
>                                                                        =
             for
>                                                                        =
             the
>                                                                        =
             draft
>                                                                        =
             itself.
>
>                                                                        =
             However,
>                                                                        =
             as
>                                                                        =
             the
>                                                                        =
             authors
>                                                                        =
             say,
>                                                                        =
             there
>                                                                        =
             are
>                                                                        =
             still
>                                                                        =
             significant
>                                                                        =
             TODOs.
>
>                                                                        =
             Are
>                                                                        =
             we
>                                                                        =
             in
>                                                                        =
             a state
>                                                                        =
             yet
>                                                                        =
             where
>                                                                        =
             we
>                                                                        =
             can
>                                                                        =
             say
>                                                                        =
             whether
>                                                                        =
             this
>                                                                        =
             is
>                                                                        =
             the
>                                                                        =
             right
>
>
>                                                 direction for the WG
>                                                 to take?
>
>
>                                                                        =
             If
>                                                                        =
             yes,
>                                                                        =
             is
>                                                                        =
             it
>                                                                        =
             the
>                                                                        =
             right
>                                                                        =
             direction?
>                                                                        =
             Should
>                                                                        =
             we
>                                                                        =
             adopt
>                                                                        =
             it
>                                                                        =
             as
>                                                                        =
             a WG
>
>
>                                                 document?
>
>
>                                                                        =
             If
>                                                                        =
             you
>                                                                        =
             don't
>                                                                        =
             think
>                                                                        =
             we
>                                                                        =
             can
>                                                                        =
             say
>                                                                        =
             yet,
>                                                                        =
             is
>                                                                        =
             there
>                                                                        =
             a set
>                                                                        =
             of
>                                                                        =
             technical
>
>
>                                                 decisions you would
>                                                 like the authors to
>                                                 take with priority?
>
>
>                                                                        =
             Note
>                                                                        =
             that
>                                                                        =
             once
>                                                                        =
             a document
>                                                                        =
             has
>                                                                        =
             become
>                                                                        =
             a WG
>                                                                        =
             document,
>                                                                        =
             the
>                                                                        =
             authors
>                                                                        =
             act
>
>
>                                                 as editors for the
>                                                 working group, making
>                                                 (and usually fleshing
>                                                 out the
>                                                 details of) any change
>                                                 that the WG decides it
>                                                 needs.
>
>
>                                                                        =
             If
>                                                                        =
             you
>                                                                        =
             think
>                                                                        =
             we
>                                                                        =
             can
>                                                                        =
             still
>                                                                        =
             improve
>                                                                        =
             the
>                                                                        =
             draft,
>                                                                        =
             this
>                                                                        =
             is
>                                                                        =
             not
>                                                                        =
             an
>                                                                        =
             obstacle
>
>
>                                                 to making it a WG
>                                                 document.
>
>
>                                                                        =
             But
>                                                                        =
             of
>                                                                        =
             course
>                                                                        =
             we
>                                                                        =
             shouldn't
>                                                                        =
             do
>                                                                        =
             that
>                                                                        =
             if
>                                                                        =
             we
>                                                                        =
             intend
>                                                                        =
             to
>                                                                        =
             reverse
>                                                                        =
             its
>
>
>                                                 fundamental technical
>                                                 direction.
>
>
>                                                                        =
             In
>                                                                        =
             order
>                                                                        =
             to
>                                                                        =
             stay
>                                                                        =
             roughly
>                                                                        =
             in
>                                                                        =
             sync
>                                                                        =
             with
>                                                                        =
             our
>                                                                        =
             milestones,
>                                                                        =
             we
>                                                                        =
             should
>
>
>                                                 reach at a decision on
>                                                 how to go forward this
>                                                 week.
>
>
>                                                                        =
             Gruesse,
>                                                                        =
             Carsten
>
>                                                                        =
             _______________________________________________
>                                                                        =
             core
>                                                                        =
             mailing
>                                                                        =
             list
>                                                                        =
             _core@ietf.org_
>                                                                        =
             <mailto:core@ietf.org>
>                                                                        =
             _https://www.ietf.org/mailman/listinfo/core_
>
>
>
>                                                                        =
 _______________________________________________
>                                                                        =
 core
>                                                                        =
 mailing
>                                                                        =
 list
>                                                                        =
 _core@ietf.org_
>                                                                        =
 <mailto:core@ietf.org>
>                                                                        =
 _https://www.ietf.org/mailman/listinfo/core_
>
>
>                                                             --
>                                                             Zach
>                                                             Shelby,
>                                                             Chief
>                                                             Nerd,
>                                                             Sensinode L=
td.
>                                                             _http://zac=
hshelby.org_
>                                                             <http://zac=
hshelby.org/>
>                                                             - My blog
>                                                             "On the
>                                                             Internet
>                                                             of
>                                                             Things_"_
>                                                             <http://6lo=
wpan.net-mybook/>
>                                                             _http://6lo=
wpan.net
>                                                             - My book
>                                                             "_
>                                                             <http://6lo=
wpan.net-mybook/>6LoWPAN:
>                                                             The
>                                                             Wireless
>                                                             Embedded
>                                                             Internet"
>                                                             Mobile:
>                                                             +358 40
>                                                             7796297
>
>
>
>
>                                                 _______________________=
________________________
>                                                 core mailing list
>                                                 _core@ietf.org_
>                                                 <mailto:core@ietf.org>
>                                                 _https://www.ietf.org/m=
ailman/listinfo/core_
>
>                                                 -----------------------=
---------
>                                                 Onzo is a limited
>                                                 company number
>                                                 06097997 registered in
>                                                 England& Wales. The
>                                                 registered office is 6
>                                                 Great Newport Street,
>                                                 London, WC2H 7JB,
>                                                 United Kingdom.
>
>                                                 This email message may
>                                                 contain confidential
>                                                 and/or privileged
>                                                 information, and
>                                                 is intended solely for
>                                                 the addressee(s). If
>                                                 you have received this
>                                                 email in
>                                                 error, please notify
>                                                 Onzo immediately.
>                                                 Unauthorised copying,
>                                                 disclosure or
>                                                 distribution of the
>                                                 material in this email
>                                                 is forbidden.
>                                                 -----------------------=
---------
>
>                                                 _______________________=
________________________
>                                                 core mailing list
>                                                 _core@ietf.org_
>                                                 <mailto:core@ietf.org>
>                                                 _https://www.ietf.org/m=
ailman/listinfo/core_
>
>                                                 _______________________=
_______________________________________________
>                                                 This email has been
>                                                 scanned by the
>                                                 MessageLabs Email
>                                                 Security System.
>                                                 _______________________=
_______________________________________________
>
>                                                 _______________________=
________________________
>                                                 core mailing list
>                                                 _core@ietf.org_
>                                                 <mailto:core@ietf.org>
>                                                 _https://www.ietf.org/m=
ailman/listinfo/core_
>
>
>
>                         _______________________________________________=

>                         core mailing list
>                         _core@ietf.org_ <mailto:core@ietf.org>
>                         _https://www.ietf.org/mailman/listinfo/core_
>
>                         --------------------------------
>                         Onzo is a limited company number 06097997
>                         registered in England& Wales. The
>                         registered office is 6 Great Newport Street,
>                         London, WC2H 7JB, United Kingdom.
>
>                         This email message may contain confidential
>                         and/or privileged information, and
>                         is intended solely for the addressee(s). If
>                         you have received this email in
>                         error, please notify Onzo immediately.
>                         Unauthorised copying, disclosure or
>                         distribution of the material in this email is
>                         forbidden.
>                         --------------------------------
>
>
>
>
> _______________________________________________
> core mailing list
> _core@ietf.org_ <mailto:core@ietf.org>
> _https://www.ietf.org/mailman/listinfo/core_
> _______________________________________________
> core mailing list
> _core@ietf.org_ <mailto:core@ietf.org>
> _https://www.ietf.org/mailman/listinfo/core_
>
>
>
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> _______________________________________________________________________=
______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>

--------------050101090105090201020407
Content-Type: multipart/related;
 boundary="------------040709040507000808040401"


--------------040709040507000808040401
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content=3D"text/html; charset=3DISO-8859-1"
 http-equiv=3D"Content-Type">
</head>
<body bgcolor=3D"#ffffff" text=3D"#000000">
Hi Matthieu,<br>
<br>
I am not sure what you mean here. Do you mean that some other client
can subscribe to be notified whenever some method is acted upon for a
particular resource? Can you describe the transaction model?<br>
<br>
Robert<br>
<div class=3D"moz-signature">
<style type=3D"text/css">
p
{
font-family:Verdana,Arial,sans-serif;
font-size:8pt;
}
=2Ename
{
font-size:12pt;
}
</style>
<p class=3D"name">Robert Cragie (Pacific Gas &amp; Electric)</p>
<p>Gridmerge Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 1924 910888<br>
+1 415 513 0064<br>
<a href=3D"http://www.gridmerge.com/">http://www.gridmerge.com</a></p>
</div>
<br>
On 28/05/2010 12:51 PM, <a class=3D"moz-txt-link-abbreviated" href=3D"mai=
lto:matthieu.vial@fr.non.schneider-electric.com">matthieu.vial@fr.non.sch=
neider-electric.com</a>
wrote:
<blockquote
 cite=3D"mid:OF54E90C1C.C8997A73-ONC1257731.003EAAE3-C1257731.004127C6@sc=
hneider-electric.com"
 type=3D"cite">
  <p><font size=3D"4" color=3D"#1f497d" face=3D"Calibri">&gt; So strictly=

speaking, both NOTIFY and SUBSCRIBE are message types not &nbsp;methods!<=
/font><br>
  <br>
SUBSCRIBE can be just an asynchronous GET on update then I think it is
a method and NOTIFY is an asynchronous response so a message.<br>
But if we want to have selective notifications when a resource is
created, updated or deleted then I think you're right NOTIFY and
SUBSCRIBE are messages.<br>
  <br>
Does that make sense ?<br>
  <br>
Matthieu<br>
  <br>
  <img src=3D"cid:part1.07030401.03040405@gridmerge.com"
 alt=3D"Inactive hide details for &quot;Adriano Pezzuto (apezzuto)&quot; =
&lt;apezzuto@cisco.com&gt;"
 border=3D"0" height=3D"16" width=3D"16">"Adriano Pezzuto (apezzuto)"
<a class=3D"moz-txt-link-rfc2396E" href=3D"mailto:apezzuto@cisco.com">&lt=
;apezzuto@cisco.com&gt;</a><br>
  <br>
  <br>
  <br>
  <br>
  <table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" width=3D"100%">=

    <tbody>
      <tr valign=3D"top">
        <td
 style=3D"background-image: url(cid:3__=3D4EBBFDA2DFAD2C738@schneider-ele=
ctric.com); background-repeat: no-repeat;"
 width=3D"40%">
        <ul>
          <ul>
            <ul>
              <ul>
                <b><font size=3D"2">"Adriano Pezzuto (apezzuto)"
<a class=3D"moz-txt-link-rfc2396E" href=3D"mailto:apezzuto@cisco.com">&lt=
;apezzuto@cisco.com&gt;</a></font></b><font size=3D"2"> </font><br>
                <font size=3D"2">Envoy&eacute; par : <a class=3D"moz-txt-=
link-abbreviated" href=3D"mailto:core-bounces@ietf.org">core-bounces@ietf=
=2Eorg</a></font>
                <p><font size=3D"2">28/05/2010 12:50</font></p>
              </ul>
            </ul>
          </ul>
        </ul>
        </td>
        <td width=3D"60%">
        <table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" width=3D"=
100%">
          <tbody>
            <tr valign=3D"top">
              <td width=3D"1%"><img
 src=3D"cid:part2.06040404.02020703@gridmerge.com" alt=3D"" border=3D"0"
 height=3D"1" width=3D"58"><br>
              <div align=3D"right"><font size=3D"2">A</font></div>
              </td>
              <td width=3D"100%"><img
 src=3D"cid:part2.06040404.02020703@gridmerge.com" alt=3D"" border=3D"0"
 height=3D"1" width=3D"1"><br>
              <font size=3D"2"><a class=3D"moz-txt-link-rfc2396E" href=3D=
"mailto:robert.cragie@gridmerge.com">&lt;robert.cragie@gridmerge.com&gt;<=
/a></font></td>
            </tr>
            <tr valign=3D"top">
              <td width=3D"1%"><img
 src=3D"cid:part2.06040404.02020703@gridmerge.com" alt=3D"" border=3D"0"
 height=3D"1" width=3D"58"><br>
              <div align=3D"right"><font size=3D"2">cc</font></div>
              </td>
              <td width=3D"100%"><img
 src=3D"cid:part2.06040404.02020703@gridmerge.com" alt=3D"" border=3D"0"
 height=3D"1" width=3D"1"><br>
              <font size=3D"2">core <a class=3D"moz-txt-link-rfc2396E" hr=
ef=3D"mailto:core@ietf.org">&lt;core@ietf.org&gt;</a></font></td>
            </tr>
            <tr valign=3D"top">
              <td width=3D"1%"><img
 src=3D"cid:part2.06040404.02020703@gridmerge.com" alt=3D"" border=3D"0"
 height=3D"1" width=3D"58"><br>
              <div align=3D"right"><font size=3D"2">Objet</font></div>
              </td>
              <td width=3D"100%"><img
 src=3D"cid:part2.06040404.02020703@gridmerge.com" alt=3D"" border=3D"0"
 height=3D"1" width=3D"1"><br>
              <font size=3D"2">Re: [core] Subscribe/Notify for CoAP</font=
></td>
            </tr>
          </tbody>
        </table>
        <table border=3D"0" cellpadding=3D"0" cellspacing=3D"0">
          <tbody>
            <tr valign=3D"top">
              <td width=3D"58"><img
 src=3D"cid:part2.06040404.02020703@gridmerge.com" alt=3D"" border=3D"0"
 height=3D"1" width=3D"1"></td>
              <td width=3D"336"><img
 src=3D"cid:part2.06040404.02020703@gridmerge.com" alt=3D"" border=3D"0"
 height=3D"1" width=3D"1"></td>
            </tr>
          </tbody>
        </table>
        </td>
      </tr>
    </tbody>
  </table>
  <br>
  <font size=3D"4" color=3D"#1f497d" face=3D"Calibri">Hi Roberto,</font><=
br>
  <font size=3D"4" color=3D"#1f497d" face=3D"Calibri">I understand your p=
oint
and personally agree on M2M is quite different from web page model. On
the architectural RESTful style, the method information tells the
server what to do with data kept in the URI information.</font><br>
  <font size=3D"4" color=3D"#1f497d" face=3D"Calibri"> </font><br>
  <font size=3D"4" color=3D"#1f497d" face=3D"Calibri">So strictly speakin=
g,
both NOTIFY and SUBSCRIBE are message types not &nbsp;methods!</font><br>=

  <font size=3D"4" color=3D"#1f497d" face=3D"Calibri"> </font><br>
  <font size=3D"4" color=3D"#1f497d" face=3D"Calibri">Adriano </font><br>=

  <font size=3D"4" color=3D"#1f497d" face=3D"Calibri"> </font><br>
  <b><font size=3D"4" face=3D"Tahoma">From:</font></b><font size=3D"4"
 face=3D"Tahoma"> Robert Cragie [<a moz-do-not-send=3D"true"
 href=3D"mailto:robert.cragie@gridmerge.com">mailto:robert.cragie@gridmer=
ge.com</a>]
  </font><b><font size=3D"4" face=3D"Tahoma"><br>
Sent:</font></b><font size=3D"4" face=3D"Tahoma"> venerd&igrave; 28 maggi=
o 2010
11.53</font><b><font size=3D"4" face=3D"Tahoma"><br>
To:</font></b><font size=3D"4" face=3D"Tahoma"> Adriano Pezzuto (apezzuto=
)</font><b><font
 size=3D"4" face=3D"Tahoma"><br>
Cc:</font></b><font size=3D"4" face=3D"Tahoma"> Paul Duffy (paduffy); Zac=
h
Shelby; core</font><b><font size=3D"4" face=3D"Tahoma"><br>
Subject:</font></b><font size=3D"4" face=3D"Tahoma"> Re: [core]
Subscribe/Notify for CoAP</font><br>
  <font size=3D"4" face=3D"Times New Roman"> </font><br>
  <font size=3D"4" face=3D"Times New Roman">I think the point here is tha=
t
there are two levels we are considering.<br>
  <br>
At the lowest (foundation) level, there are the transaction messages as
described below. This provides a flexible mechanism for the application
with regard to synchronicity and threading. This is important for the
types of devices CoAP is being aimed at.<br>
  <br>
Above that, the methods can be used according to the architectural
style. So in this case, it is RESTful (COnstrained Restful
Environments), which will naturally limit the number of methods and how
transactions occur.<br>
  <br>
The actual architecture using a combination of the methods and messages
also depends on what is required at the application layer. Consider a
typical client which wants to subscribe to a resource. That client
controls the feed of data but needs a component which is capable of
handling (possibly buffering) the data it receives through
notifications. Is this a separate server? Or would we want to consider
it part of an enhanced client model which is able to process feeds of
data? These are the sort of models which have led to the myriad of
solutions (GENA, Webhooks, long polling, pubsubhubbub, RESTMS etc.)
based around HTTP which are all essentially ingenious ways of getting
around the limitations imposed by HTTP and how it is processed for
anything which deviates from the classic web page access model.<br>
  <br>
I think the aim of CoAP should be clean from the word go with regard to
supporting these more peer-to-peer transactions, where the client can
exist on either entity and both entities can feed data to each other;
typical in M2M applications.<br>
  <br>
Robert</font>
  </p>
  <p><font size=3D"4" face=3D"Verdana">Robert Cragie (Pacific Gas &amp;
Electric)</font>
  </p>
  <p><font size=3D"4" face=3D"Verdana">Gridmerge Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 1924 910888<br>
+1 415 513 0064</font><u><font size=3D"4" color=3D"#0000ff" face=3D"Verda=
na"><br>
  </font></u><a moz-do-not-send=3D"true" href=3D"http://www.gridmerge.com=
/"><u><font
 size=3D"4" color=3D"#0000ff" face=3D"Verdana">http://www.gridmerge.com</=
font></u></a><br>
  <font size=3D"4" face=3D"Times New Roman"><br>
On 27/05/2010 7:08 PM, Adriano Pezzuto (apezzuto) wrote: </font><br>
  <font size=3D"4" color=3D"#1f497d" face=3D"Calibri">Hi Robert,</font><b=
r>
  <font size=3D"4" color=3D"#1f497d" face=3D"Calibri"> </font><br>
  <font size=3D"4" color=3D"#1f497d" face=3D"Calibri">in my personal opin=
ion,
the option 1a) brings some sort of ambiguity to CoAP specs.</font><br>
  <font size=3D"4" color=3D"#1f497d" face=3D"Calibri"> </font><br>
  <font size=3D"4" color=3D"#1f497d" face=3D"Calibri">My be my understate=
ment
of new CoAP specs is not so deep, but now we have 5 methods and 3
message types: request, response and notify. Which methods are allowed
with which messages types?</font><br>
  <font size=3D"4" color=3D"#1f497d" face=3D"Calibri">I suppose you have =
to
use PUT/POST method with notify message for asynch data notification.
How to make a subscribe? I suppose you would use a SUBSCRIBE method
with request/response message or SUBSCRIBE with notify message? Also
what about POST/DELETE methods in a notify message? They not make any
sense..</font><br>
  <font size=3D"4" color=3D"#1f497d" face=3D"Calibri"> </font><br>
  <font size=3D"4" color=3D"#1f497d" face=3D"Calibri">I think the choice =
is
between: option 1) -&gt; only CRUD methods and option 1b) -&gt; CRUD +
SUB/NOTIFY methods, keeping in mind cost/benefits of both solutions.</fon=
t><br>
  <font size=3D"4" color=3D"#1f497d" face=3D"Calibri"> </font><br>
  <font size=3D"4" color=3D"#1f497d" face=3D"Calibri">Adriano</font><br>
  <font size=3D"4" color=3D"#1f497d" face=3D"Calibri"> </font><br>
  <b><font size=3D"4" face=3D"Tahoma">From:</font></b><font size=3D"4"
 face=3D"Tahoma"> Robert Cragie [</font><a moz-do-not-send=3D"true"
 href=3D"mailto:robert.cragie@gridmerge.com"><u><font size=3D"4"
 color=3D"#0000ff" face=3D"Tahoma">mailto:robert.cragie@gridmerge.com</fo=
nt></u></a><font
 size=3D"4" face=3D"Tahoma">] </font><b><font size=3D"4" face=3D"Tahoma">=
<br>
Sent:</font></b><font size=3D"4" face=3D"Tahoma"> mercoled&igrave; 26 mag=
gio 2010
20.09</font><b><font size=3D"4" face=3D"Tahoma"><br>
To:</font></b><font size=3D"4" face=3D"Tahoma"> Adriano Pezzuto (apezzuto=
)</font><b><font
 size=3D"4" face=3D"Tahoma"><br>
Cc:</font></b><font size=3D"4" face=3D"Tahoma"> Paul Duffy (paduffy); Zac=
h
Shelby; core</font><b><font size=3D"4" face=3D"Tahoma"><br>
Subject:</font></b><font size=3D"4" face=3D"Tahoma"> Re: [core]
Subscribe/Notify for CoAP</font><br>
  <font size=3D"4" face=3D"Times New Roman"> </font><br>
  <font size=3D"4" face=3D"Times New Roman">Hi Adrian,<br>
  <br>
I would also prefer to keep the protocol in CoAP asynchronous. You can
always map an asynchronous protocol to a synchronous one but, as we see
in HTTP, it always ends up as a kludge to do it the other way round.
The efforts which have been gone to to make HTTP quasi-asynchronous via
all the schemes mentioned below and many more besides (all
non-interoperable of course) is testament to how important this is for
M2M communication.<br>
  <br>
So, back to Zach's list, I favor 1a) for the following reasons:<br>
  <br>
Foundation level of messages:</font>
  </p>
  <ul>
1. <font size=3D"4" face=3D"Times New Roman">request/response can be
asynchronous or synchronous messages (as there is a transaction ID in
there)</font><br>
2. <font size=3D"4" face=3D"Times New Roman">notify is an asynchronous
message</font>
  </ul>
  <font size=3D"4" face=3D"Times New Roman">Derived methods:<br>
  <br>
I think it makes sense to add a pub/sub model as a useful mechanism for
M2M.<br>
  <br>
So, looking at it the other way round: It will be entirely possible to
translate whatever is currently built on HTTP to CoAP based on the
above, with all its restrictions regarding synchronous and
client/server transactions. What may be harder is to translate directly
is a CoAP-based application to HTTP. So I guess the question is: Do we
want to be hamstrung to synchronous client/server transactions as
dictated by HTTP and provide a direct mapping to HTTP, then have to
come up with similar kludges for asynchronous peer-to-peer transactions
as has been done in numerous ways for HTTP, or do we want to define the
protocol cleanly to start with and accept that some sort of transaction
relaying/conversion would have to take place at a mapping node?<br>
  <br>
Robert</font>
  <p><font size=3D"4" face=3D"Verdana">Robert Cragie (Pacific Gas &amp;
Electric)</font>
  </p>
  <p><font size=3D"4" face=3D"Verdana">Gridmerge Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 1924 910888<br>
+1 415 513 0064</font><u><font size=3D"4" color=3D"#0000ff" face=3D"Verda=
na"><br>
  </font></u><a moz-do-not-send=3D"true" href=3D"http://www.gridmerge.com=
/"><u><font
 size=3D"4" color=3D"#0000ff" face=3D"Verdana">http://www.gridmerge.com</=
font></u></a><br>
  <font size=3D"4" face=3D"Times New Roman"><br>
On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote: </font><br>
  <font size=3D"4" face=3D"Courier New">Hi,</font><br>
  <font size=3D"4" face=3D"Courier New">it looks to me that CoAP should u=
se
an explicit sub/notify mechanism since this is the core of the
machine-to-machine interaction model.</font><br>
  <font size=3D"4" face=3D"Courier New">HTTP suffers of this lack and we
have seen a plethora of solutions to give an asynch taste to it.
Webhooks and websockets are only the lasts of the list.</font><br>
  <font size=3D"4" face=3D"Courier New">As someone has already pointed ou=
t
on this list, it is theoretically possible to describe sub/notify using
only CRUD methods but it looks a little bit tricky and verbose.</font><br=
>
  <font size=3D"4" face=3D"Courier New"> </font><br>
  <font size=3D"4" face=3D"Courier New">Now we have a chance to build fro=
m
scratch a new protocol with and I think using explicit sub/notify
methods with a clear and well defined semantic is the best option. It
is easily understanding from every developer and will prevent to build
other fanny solutions on top of the CoAP. HTTP does not have this well
defined semantic and (for hundreds of other reasons also) it is not
used as wide protocol for machine-to-machine communication.</font><br>
  <font size=3D"4" face=3D"Courier New"> </font><br>
  <font size=3D"4" face=3D"Courier New">CoAP - as binary protocol - and
with an explicit asynch model has a chance to be a really wide protocol
for M2M communication not only for constrained environments.</font><br>
  <font size=3D"4" face=3D"Courier New"> </font><br>
  <font size=3D"4" face=3D"Courier New">my 2 cents</font><br>
  <font size=3D"4" face=3D"Courier New"> </font><br>
  <font size=3D"4" face=3D"Courier New">- adriano</font><br>
  <font size=3D"4" face=3D"Courier New"> </font><br>
  <font size=3D"4" face=3D"Courier New">-----Original Message-----</font>=
<br>
  <font size=3D"4" face=3D"Courier New">From: </font><a
 moz-do-not-send=3D"true" href=3D"mailto:core-bounces@ietf.org"><u><font
 size=3D"4" color=3D"#0000ff" face=3D"Courier New">core-bounces@ietf.org<=
/font></u></a><font
 size=3D"4" face=3D"Courier New"> [</font><a moz-do-not-send=3D"true"
 href=3D"mailto:core-bounces@ietf.org"><u><font size=3D"4" color=3D"#0000=
ff"
 face=3D"Courier New">mailto:core-bounces@ietf.org</font></u></a><font
 size=3D"4" face=3D"Courier New">] On Behalf Of Paul Duffy (paduffy)</fon=
t><br>
  <font size=3D"4" face=3D"Courier New">Sent: mercoled&igrave; 26 maggio =
2010 0.47</font><br>
  <font size=3D"4" face=3D"Courier New">To: Zach Shelby</font><br>
  <font size=3D"4" face=3D"Courier New">Cc: core</font><br>
  <font size=3D"4" face=3D"Courier New">Subject: Re: [core]
Subscribe/Notify for CoAP</font><br>
  <font size=3D"4" face=3D"Courier New"> </font><br>
  <font size=3D"4" face=3D"Courier New">On 5/25/2010 6:41 PM, Zach Shelby=

wrote:</font><br>
  <font size=3D"4" face=3D"Courier New"> </font>
  </p>
  <ul>
    <ul>
      <font size=3D"4" face=3D"Courier New">Hi,</font><br>
      <font size=3D"4" face=3D"Courier New"> </font><br>
      <font size=3D"4" face=3D"Courier New">On May 26, 2010, at 12:23 AM,=

Charles Palmer wrote:</font><br>
      <font size=3D"4" face=3D"Courier New"> </font><br>
      <font size=3D"4" face=3D"Courier New"> </font><br>
      <font size=3D"4" face=3D"Courier New"> </font>
      <ul>
        <ul>
          <font size=3D"4" face=3D"Courier New">Hi folks</font><br>
          <font size=3D"4" face=3D"Courier New"> </font><br>
          <font size=3D"4" face=3D"Courier New">It occurs to me that CoRE=

should be keeping a close eye on ZigBee SE2.0 work, so that it is as
easy as possible for ZigBee SE to use CoRE when ready. That suggests to
me that we should align with their subscribe/notify process.</font><br>
          <font size=3D"4" face=3D"Courier New"> </font><br>
          <font size=3D"4" face=3D"Courier New"> </font><br>
          <font size=3D"4" face=3D"Courier New"> </font>
        </ul>
      </ul>
      <font size=3D"4" face=3D"Courier New">I am not sure I understand
that. I mean, ZigBee SE2.0 is defining an application specific
subscribe/notify mechanism for that purpose so far for HTTP. This uses
standard HTTP methods and some custom payload and REST interfaces. CoAP
Req/Res is already totally compatible with SE2.0 in that respect, so
alignment is already OK there. Nothing stopping someone from using
SE2.0 over CoAP.</font><br>
      <font size=3D"4" face=3D"Courier New"> </font><br>
      <font size=3D"4" face=3D"Courier New">Specifying a native
susbcription/notify into CoAP is another matter. We can't adopt a
solution specific to one application as that won't solve the problems
of other applications nor general HTTP mapping at all (probably would
make it worse). It seems that for the near future there will be a bunch
of HTTP push mechanisms in use without any clear standard appearing -
or am I wrong there?</font><br>
      <font size=3D"4" face=3D"Courier New"> </font><br>
      <font size=3D"4" face=3D"Courier New"> </font>
    </ul>
  </ul>
  <font size=3D"4" face=3D"Courier New"> </font><br>
  <font size=3D"4" face=3D"Courier New"> </font><br>
  <font size=3D"4" face=3D"Courier New"> </font><br>
  <font size=3D"4" face=3D"Courier New">If COAP extends HTTP semantics wi=
th
new subscription methods, it will </font><br>
  <font size=3D"4" face=3D"Courier New">not be possible to easily
interchange HTTP/COAP, and translation </font><br>
  <font size=3D"4" face=3D"Courier New">gateways will become more complex=

to implement.</font><br>
  <font size=3D"4" face=3D"Courier New"> </font><br>
  <font size=3D"4" face=3D"Courier New"> </font><br>
  <font size=3D"4" face=3D"Courier New"> </font><br>
  <font size=3D"4" face=3D"Courier New"> </font>
  <ul>
    <ul>
      <font size=3D"4" face=3D"Courier New">Zach</font><br>
      <font size=3D"4" face=3D"Courier New"> </font><br>
      <font size=3D"4" face=3D"Courier New"> </font><br>
      <font size=3D"4" face=3D"Courier New"> </font>
      <ul>
        <ul>
          <font size=3D"4" face=3D"Courier New">Regards - Charles</font><=
br>
          <font size=3D"4" face=3D"Courier New"> </font><br>
          <font size=3D"4" face=3D"Courier New"> </font><br>
          <font size=3D"4" face=3D"Courier New">-----Original Message----=
-</font><br>
          <font size=3D"4" face=3D"Courier New">From: </font><a
 moz-do-not-send=3D"true" href=3D"mailto:core-bounces@ietf.org"><u><font
 size=3D"4" color=3D"#0000ff" face=3D"Courier New">core-bounces@ietf.org<=
/font></u></a><font
 size=3D"4" face=3D"Courier New"> [</font><a moz-do-not-send=3D"true"
 href=3D"mailto:core-bounces@ietf.org"><u><font size=3D"4" color=3D"#0000=
ff"
 face=3D"Courier New">mailto:core-bounces@ietf.org</font></u></a><font
 size=3D"4" face=3D"Courier New">] On Behalf Of Paul Duffy</font><br>
          <font size=3D"4" face=3D"Courier New">Sent: 25 May 2010 03:48</=
font><br>
          <font size=3D"4" face=3D"Courier New">To: Zach Shelby</font><br=
>
          <font size=3D"4" face=3D"Courier New">Cc: core</font><br>
          <font size=3D"4" face=3D"Courier New">Subject: Re: [core]
Subscribe/Notify for CoAP</font><br>
          <font size=3D"4" face=3D"Courier New"> </font><br>
          <font size=3D"4" face=3D"Courier New">Recommend something like
#2, primarily to avoid introducing non HTTP</font><br>
          <font size=3D"4" face=3D"Courier New">method semantics,
simplifying HTTP/COAP translation.gateways, etc.</font><br>
          <font size=3D"4" face=3D"Courier New"> </font><br>
          <font size=3D"4" face=3D"Courier New"> </font><br>
          <font size=3D"4" face=3D"Courier New">On 5/24/2010 11:49 AM, Za=
ch
Shelby wrote:</font><br>
          <font size=3D"4" face=3D"Courier New"> </font><br>
          <font size=3D"4" face=3D"Courier New"> </font>
          <ul>
            <ul>
              <font size=3D"4" face=3D"Courier New">(thread renamed)</fon=
t><br>
              <font size=3D"4" face=3D"Courier New"> </font><br>
              <font size=3D"4" face=3D"Courier New">We have two different=

paths with regard to a subscribe/notify mechanism for CoAP:</font><br>
              <font size=3D"4" face=3D"Courier New"> </font><br>
              <font size=3D"4" face=3D"Courier New">1. Use specific
Subscription and Notify mechanisms for CoAP as HTTP really does not
include this concept.</font><br>
              <font size=3D"4" face=3D"Courier New">1a) Notify as a messa=
ge
and SUBSCRIBE as a method. This is currently used in coap-01.</font><br>
              <font size=3D"4" face=3D"Courier New">1b) NOTIFY and
SUBSCRIBE as methods. This was used in coap-00, but we had a good list
discussion about this leading to a. In practice it doesn't make a big
difference if notification is a message or method.</font><br>
              <font size=3D"4" face=3D"Courier New"> </font><br>
              <font size=3D"4" face=3D"Courier New">2. Use an HTTP specif=
ic
framework such as Webhooks, the ZigBee SE2.0 proposal or GENA.</font><br>=

              <font size=3D"4" face=3D"Courier New"> </font><br>
              <font size=3D"4" face=3D"Courier New">So far we have focuse=
d
on 1 in the WG, and every now and again 2 comes up. At least I am not
convinced that we need to suffer the drawbacks of HTTP here. Anyways 2
does not help our mapping to HTTP in reality very much as there is no
standard way of doing this over HTTP. Thus a CoAP-HTTP proxy may end up
anyways translating between multiple HTTP frameworks depending on the
application. So instead of doing a CoAP Notify/Subscribe to Webhooks
mapping, you will could end up having to do a CoAP Webhooks to HTTP
GENA mapping.</font><br>
              <font size=3D"4" face=3D"Courier New"> </font><br>
              <font size=3D"4" face=3D"Courier New"> </font><br>
              <font size=3D"4" face=3D"Courier New"> </font>
            </ul>
          </ul>
          <font size=3D"4" face=3D"Courier New"> </font><br>
          <font size=3D"4" face=3D"Courier New">I don't understand this
last para. If CoAP sticks to the semantics of</font><br>
          <font size=3D"4" face=3D"Courier New">the current HTTP methods,=

would this not offer a fairly straightforward</font><br>
          <font size=3D"4" face=3D"Courier New">translation to/from HTTP?=
</font><br>
          <font size=3D"4" face=3D"Courier New"> </font><br>
          <font size=3D"4" face=3D"Courier New"> </font><br>
          <font size=3D"4" face=3D"Courier New"> </font><br>
          <font size=3D"4" face=3D"Courier New"> </font>
          <ul>
            <ul>
              <ul>
                <ul>
                  <font size=3D"4" face=3D"Courier New"> From what I have=

heard so far 1 still seems like a wise choice, although I need to look
at Webhooks more deeply. In reality many applications specify their own
way of doing a push interface using REST methods and specific payloads
(ZigBee SE2.0 is such an example). That is just fine, and might be used
instead of a specific CoAP notify/subscribe in that case. So 1 doesn't
prevent the application using its own mechanism, it just provides a
native way for doing push.</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font>
                </ul>
              </ul>
              <font size=3D"4" face=3D"Courier New">What do people think?=
</font><br>
              <font size=3D"4" face=3D"Courier New"> </font><br>
              <font size=3D"4" face=3D"Courier New">Zach</font><br>
              <font size=3D"4" face=3D"Courier New"> </font><br>
              <font size=3D"4" face=3D"Courier New">On May 17, 2010, at
6:44 PM, </font><a moz-do-not-send=3D"true"
 href=3D"mailto:matthieu.vial@fr.non.schneider-electric.com"><u><font
 size=3D"4" color=3D"#0000ff" face=3D"Courier New">matthieu.vial@fr.non.s=
chneider-electric.com</font></u></a><font
 size=3D"4" face=3D"Courier New"> wrote:</font><br>
              <font size=3D"4" face=3D"Courier New"> </font><br>
              <font size=3D"4" face=3D"Courier New"> </font><br>
              <font size=3D"4" face=3D"Courier New"> </font><br>
              <font size=3D"4" face=3D"Courier New"> </font>
              <ul>
                <ul>
                  <font size=3D"4" face=3D"Courier New">Hi,</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">My comments about=

the subscribe/notify mechanism of Zigbee IP.</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">Pros:</font><br>
                  <font size=3D"4" face=3D"Courier New">- Derived from th=
e
webhooks concept</font><br>
                  <font size=3D"4" face=3D"Courier New">- If used by CORE=

it will be easier to map to HTTP because it uses only CRUD verbs.</font><=
br>
                  <font size=3D"4" face=3D"Courier New">- The subscriptio=
n
message is extendable and could support advanced options (delays,
increment, ...)</font><br>
                  <font size=3D"4" face=3D"Courier New">- Only one
listening port whatever the transport binding is.</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">Cons:</font><br>
                  <font size=3D"4" face=3D"Courier New">- No
interoperability without well known URIs and a well defined
subscription message format (Not sure CoAP draft is the right place to
specify this).</font><br>
                  <font size=3D"4" face=3D"Courier New">- XML/EXI is too
complex to be the required format for the default
subscription/notification mechanism.</font><br>
                  <font size=3D"4" face=3D"Courier New">- The notificatio=
n
should not require a subsequent GET to retrieve the content.</font><br>
                  <font size=3D"4" face=3D"Courier New">- Subresource
subscription is redundant.</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">Hope this could
help,</font><br>
                  <font size=3D"4" face=3D"Courier New">Matthieu</font><b=
r>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">&lt;graycol.gif&g=
t;"Charles
Palmer"</font><a moz-do-not-send=3D"true"
 href=3D"mailto:charles.palmer@onzo.com"><u><font size=3D"4" color=3D"#00=
00ff"
 face=3D"Courier New">&lt;charles.palmer@onzo.com&gt;</font></u></a><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">"Charles Palmer"<=
/font><a
 moz-do-not-send=3D"true" href=3D"mailto:charles.palmer@onzo.com"><u><fon=
t
 size=3D"4" color=3D"#0000ff" face=3D"Courier New">&lt;charles.palmer@onz=
o.com&gt;</font></u></a><br>
                  <font size=3D"4" face=3D"Courier New">Envoy&eacute; par=
 : </font><a
 moz-do-not-send=3D"true" href=3D"mailto:core-bounces@ietf.org"><u><font
 size=3D"4" color=3D"#0000ff" face=3D"Courier New">core-bounces@ietf.org<=
/font></u></a><br>
                  <font size=3D"4" face=3D"Courier New">15/05/2010 14:06<=
/font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">&lt;ecblank.gif&g=
t;</font><br>
                  <font size=3D"4" face=3D"Courier New">A</font><br>
                  <font size=3D"4" face=3D"Courier New">&lt;ecblank.gif&g=
t;</font><br>
                  <font size=3D"4" face=3D"Courier New">"core"</font><a
 moz-do-not-send=3D"true" href=3D"mailto:core@ietf.org"><u><font size=3D"=
4"
 color=3D"#0000ff" face=3D"Courier New">&lt;core@ietf.org&gt;</font></u><=
/a><br>
                  <font size=3D"4" face=3D"Courier New">&lt;ecblank.gif&g=
t;</font><br>
                  <font size=3D"4" face=3D"Courier New">cc</font><br>
                  <font size=3D"4" face=3D"Courier New">&lt;ecblank.gif&g=
t;</font><br>
                  <font size=3D"4" face=3D"Courier New">&lt;ecblank.gif&g=
t;</font><br>
                  <font size=3D"4" face=3D"Courier New">Objet</font><br>
                  <font size=3D"4" face=3D"Courier New">&lt;ecblank.gif&g=
t;</font><br>
                  <font size=3D"4" face=3D"Courier New">Re: [core]
Selecting a WG document for CoAP</font><br>
                  <font size=3D"4" face=3D"Courier New">&lt;ecblank.gif&g=
t;
&lt;ecblank.gif&gt;</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">Dear all</font><b=
r>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">Those interested =
in
the subscribe/notify discussion might like to look</font><br>
                  <font size=3D"4" face=3D"Courier New">at the draft Smar=
t
Energy Profile 2.0 Application Protocol</font><br>
                  <font size=3D"4" face=3D"Courier New">Specification. It=

is available here:</font><br>
                  <a moz-do-not-send=3D"true"
 href=3D"http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20P=
ublicApp"><u><font
 size=3D"4" color=3D"#0000ff" face=3D"Courier New">http://zigbee.org/Mark=
ets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicApp</font></u></a><br>
                  <font size=3D"4" face=3D"Courier New">licationProfile.a=
spx</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">It manages
subscribe/notify by using POST. This seems to remove the need</font><br>
                  <font size=3D"4" face=3D"Courier New">for SUBSCRIBE and=

notify.</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">"Imagine a host A=
,
which exposes a resource at http{s}://A/resource and</font><br>
                  <font size=3D"4" face=3D"Courier New">a second host B,
which wishes to learn of changes to this resource. To</font><br>
                  <font size=3D"4" face=3D"Courier New">facilitate a
subscription/ notification mechanism, A would expose a</font><br>
                  <font size=3D"4" face=3D"Courier New">resource
http{s}://A/sub and B would expose a resource http{s}://B/ntfy.</font><br=
>
                  <font size=3D"4" face=3D"Courier New">To subscribe to
notifications regarding http{s}://A/resource, B would</font><br>
                  <font size=3D"4" face=3D"Courier New">send a POST to th=
e
address http{s}://A/sub/B containing the URI of the</font><br>
                  <font size=3D"4" face=3D"Courier New">resource of
interest (http{s}://A/resource) and the URI of B's</font><br>
                  <font size=3D"4" face=3D"Courier New">notification
resource (http{s}://B/ntfy). Following this subscription</font><br>
                  <font size=3D"4" face=3D"Courier New">step, should A wi=
sh
to notify B of a change to the resource addressed at</font><br>
                  <font size=3D"4" face=3D"Courier New">http{s}://A/resou=
rce,
A would send a POST to the address</font><br>
                  <font size=3D"4" face=3D"Courier New">http{s}://B/ntfy
containing the URI of the resource changed</font><br>
                  <font size=3D"4" face=3D"Courier New">(http{s}://A/reso=
urce)
and the URI of A's subscription resource</font><br>
                  <font size=3D"4" face=3D"Courier New">(http{s}://A/sub/=
B),
should A wish to change its subscription. The host</font><br>
                  <font size=3D"4" face=3D"Courier New">B can then query
the resource (or not) at its leisure."</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">Sleepy nodes are
not allowed to subscribe, and must poll.</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">Regards - Charles=

Palmer</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">-----Original
Message-----</font><br>
                  <font size=3D"4" face=3D"Courier New">From: </font><a
 moz-do-not-send=3D"true" href=3D"mailto:core-bounces@ietf.org"><u><font
 size=3D"4" color=3D"#0000ff" face=3D"Courier New">core-bounces@ietf.org<=
/font></u></a><font
 size=3D"4" face=3D"Courier New"> [</font><a moz-do-not-send=3D"true"
 href=3D"mailto:core-bounces@ietf.org"><u><font size=3D"4" color=3D"#0000=
ff"
 face=3D"Courier New">mailto:core-bounces@ietf.org</font></u></a><font
 size=3D"4" face=3D"Courier New">] On Behalf Of</font><br>
                  <font size=3D"4" face=3D"Courier New">Angelo P. Castell=
ani</font><br>
                  <font size=3D"4" face=3D"Courier New">Sent: 14 May 2010=

13:14</font><br>
                  <font size=3D"4" face=3D"Courier New">To: Zach Shelby</=
font><br>
                  <font size=3D"4" face=3D"Courier New">Cc: core</font><b=
r>
                  <font size=3D"4" face=3D"Courier New">Subject: Re: [cor=
e]
Selecting a WG document for CoAP</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">Zach,</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">thanks for the
comments, but please refer to my most recent e-mail for</font><br>
                  <font size=3D"4" face=3D"Courier New">a more specific
list of technical issues I'm pointing to.</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">I want to do only=
 a
little integration to what I've written there.</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">In my very person=
al
opinion, to maximize adherence with the REST model</font><br>
                  <font size=3D"4" face=3D"Courier New">and minimize
implementation effort SUBSCRIBE and NOTIFY should be</font><br>
                  <font size=3D"4" face=3D"Courier New">mapped to methods=

(as discussed many times together...).</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">Uniform interface=

principle (Fielding PhD dissertation Section 5.1.5,</font><br>
                  <font size=3D"4" face=3D"Courier New">"The central
feature that distinguishes the REST architectural style</font><br>
                  <font size=3D"4" face=3D"Courier New">[...]") states th=
at
to simplify the software architecture, resource</font><br>
                  <font size=3D"4" face=3D"Courier New">interfaces/interf=
aces
should be as general as possible.</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">I agree with this=

principle in this specific case, mainly because</font><br>
                  <font size=3D"4" face=3D"Courier New">handling a specia=
l
message type for notify leads node software design</font><br>
                  <font size=3D"4" face=3D"Courier New">to a more complex=

architecture.</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">The reason is tha=
t
this new message type requires special handling and</font><br>
                  <font size=3D"4" face=3D"Courier New">introduces a
complexity in the software modularization.</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">Best,</font><br>
                  <font size=3D"4" face=3D"Courier New">Angelo</font><br>=

                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">On Fri, May 14,
2010 at 13:06, Zach Shelby</font><a moz-do-not-send=3D"true"
 href=3D"mailto:zach@sensinode.com"><u><font size=3D"4" color=3D"#0000ff"=

 face=3D"Courier New">&lt;zach@sensinode.com&gt;</font></u></a><font
 size=3D"4" face=3D"Courier New"> wrote:</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font>
                  <ul>
                    <ul>
                      <font size=3D"4" face=3D"Courier New">Hi Angelo,</f=
ont><br>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New">On May 13,
2010, at 14:24 , Angelo P. Castellani wrote:</font><br>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New"> </font>
                      <ul>
                        <ul>
                          <font size=3D"4" face=3D"Courier New">Dear C.
Bormann, all,</font><br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New">before
deciding for the final direction, I've the following</font><br>
                          <font size=3D"4" face=3D"Courier New">observati=
ons
about draft-shelby-core-coap-01</font><br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New">While I
mostly share Zach's view of the protocol approach, and</font><br>
                          <font size=3D"4" face=3D"Courier New">appreciat=
e
many aspects of the proposal, there are in my opinion</font><br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New"> </font>
                        </ul>
                      </ul>
                    </ul>
                  </ul>
                  <font size=3D"4" face=3D"Courier New">still</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font>
                  <ul>
                    <ul>
                      <ul>
                        <ul>
                          <font size=3D"4" face=3D"Courier New">some open=

issues that need to be at least discussed before the</font><br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New"> </font>
                        </ul>
                      </ul>
                    </ul>
                  </ul>
                  <font size=3D"4" face=3D"Courier New">current</font><br=
>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font>
                  <ul>
                    <ul>
                      <ul>
                        <ul>
                          <font size=3D"4" face=3D"Courier New">document
can be selected.</font><br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New"> </font>
                        </ul>
                      </ul>
                      <font size=3D"4" face=3D"Courier New">Of course the=
re
are plenty of open issues. Remember that working group</font><br>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New"> </font>
                    </ul>
                  </ul>
                  <font size=3D"4" face=3D"Courier New">documents still
undertake as much change and improvement as the WG</font><br>
                  <font size=3D"4" face=3D"Courier New">wants, so by no
means is coap-01 set in stone. I would expect at least</font><br>
                  <font size=3D"4" face=3D"Courier New">5-10 more revisio=
ns
still along the way. Already several of your ideas</font><br>
                  <font size=3D"4" face=3D"Courier New">have been
integrated into coap-01, and several more are under</font><br>
                  <font size=3D"4" face=3D"Courier New">consideration, so=

it is coming along. Patience ;-)</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font>
                  <ul>
                    <ul>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New"> </font>
                      <ul>
                        <ul>
                          <font size=3D"4" face=3D"Courier New">In
particular, I would like to highlight the following:</font><br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New">a) As it =
is
now, it is not possible to have a straightforward</font><br>
                          <font size=3D"4" face=3D"Courier New">translati=
on
of HTTP -&gt; CoAP and viceversa: see</font><br>
                          <a moz-do-not-send=3D"true"
 href=3D"http://www.ietf.org/mail-archive/web/core/current/msg00133.html"=
><u><font
 size=3D"4" color=3D"#0000ff" face=3D"Courier New">http://www.ietf.org/ma=
il-archive/web/core/current/msg00133.html</font></u></a><font
 size=3D"4" face=3D"Courier New"> (this</font><br>
                          <font size=3D"4" face=3D"Courier New">impacts t=
he
scalability of the web service model too)</font><br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New"> </font>
                        </ul>
                      </ul>
                      <font size=3D"4" face=3D"Courier New">In coap-01 th=
e
Method names are now identical to HTTP methods. The</font><br>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New"> </font>
                    </ul>
                  </ul>
                  <font size=3D"4" face=3D"Courier New">Req/Res interacti=
on
is a direct translation. The URI hierarchy is</font><br>
                  <font size=3D"4" face=3D"Courier New">compatible, and t=
he
URI binary code format we are still working on</font><br>
                  <font size=3D"4" face=3D"Courier New">obviously. The on=
ly
thing that takes some state to translate is</font><br>
                  <font size=3D"4" face=3D"Courier New">Subscribe/Notify.=

But note, Subscribe/Notify takes some state no matter</font><br>
                  <font size=3D"4" face=3D"Courier New">how you do it, ev=
en
with HTTP-HTTP there is no clean and easy way to</font><br>
                  <font size=3D"4" face=3D"Courier New">handle
subscriptions.</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font>
                  <ul>
                    <ul>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New"> </font>
                      <ul>
                        <ul>
                          <font size=3D"4" face=3D"Courier New">b)
Moreover, CoAP's implementation is not as simple as it should be.</font><=
br>
                          <font size=3D"4" face=3D"Courier New">I've
investigated the implementation and some design choices (as</font><br>
                          <font size=3D"4" face=3D"Courier New">Options)
are leading to very high program complexity (ROM) on a</font><br>
                          <font size=3D"4" face=3D"Courier New">MSP430-ba=
sed
device.</font><br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New"> </font>
                        </ul>
                      </ul>
                      <font size=3D"4" face=3D"Courier New">This we can
definitely improve, and already made several optimizations</font><br>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New"> </font>
                    </ul>
                  </ul>
                  <font size=3D"4" face=3D"Courier New">from -00 to -01.
Here I need some very concrete proposals though. Also</font><br>
                  <font size=3D"4" face=3D"Courier New">remember that man=
y
things are optional, for example subscribe/notify is</font><br>
                  <font size=3D"4" face=3D"Courier New">not required if y=
ou
don't need it.</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font>
                  <ul>
                    <ul>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New"> </font>
                      <ul>
                        <ul>
                          <font size=3D"4" face=3D"Courier New">c) Finall=
y
when comparing HTTP message size with CoAP message size,</font><br>
                          <font size=3D"4" face=3D"Courier New">the
resulting compression isn't as good as you may expect.</font><br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New">Example:<=
/font><br>
                          <font size=3D"4" face=3D"Courier New">HTTP: GET=

/sensor/temp.xml HTTP/1.0 =3D 32 B</font><br>
                          <font size=3D"4" face=3D"Courier New">CoAP: 24 =
B
with options parsing procedure requiring an added</font><br>
                          <font size=3D"4" face=3D"Courier New">implement=
ation
complexity</font><br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New"> </font>
                        </ul>
                      </ul>
                      <font size=3D"4" face=3D"Courier New">Right, that i=
s
not how it will work in practice. Working with a real</font><br>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New"> </font>
                    </ul>
                  </ul>
                  <font size=3D"4" face=3D"Courier New">HTTP server that
HTTP header will be more complex, and on the CoAP side</font><br>
                  <font size=3D"4" face=3D"Courier New">you would chose
shorter URLs. The biggest improvement possible here is</font><br>
                  <font size=3D"4" face=3D"Courier New">from using binary=

coded URLs of course. We need to look at a wider range</font><br>
                  <font size=3D"4" face=3D"Courier New">of interactions a=
nd
real HTTP headers as well to check that we are</font><br>
                  <font size=3D"4" face=3D"Courier New">efficient enough.=
</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font>
                  <ul>
                    <ul>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New"> </font>
                      <ul>
                        <ul>
                          <font size=3D"4" face=3D"Courier New">Addressin=
g
all these points potentially leads to major technical</font><br>
                          <font size=3D"4" face=3D"Courier New">modificat=
ions
(especially point a) on the current draft, hence it is</font><br>
                          <font size=3D"4" face=3D"Courier New">appropria=
te
in my opinion to discuss these points before making the</font><br>
                          <font size=3D"4" face=3D"Courier New">final
decision.</font><br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New"> </font>
                        </ul>
                      </ul>
                      <font size=3D"4" face=3D"Courier New">I am not sure=

what else you have in mind for a). If we just forget</font><br>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New"> </font>
                    </ul>
                  </ul>
                  <font size=3D"4" face=3D"Courier New">about
Subscribe/Notify then you are good to go. But then you are also</font><br=
>
                  <font size=3D"4" face=3D"Courier New">not fulfilling th=
e
charter or the industry needs in that respect.</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font>
                  <ul>
                    <ul>
                      <font size=3D"4" face=3D"Courier New">Thanks,</font=
><br>
                      <font size=3D"4" face=3D"Courier New">Zach</font><b=
r>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New"> </font>
                      <ul>
                        <ul>
                          <font size=3D"4" face=3D"Courier New">Best
regards,</font><br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New">Angelo P.=

Castellani</font><br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New">On Mon, M=
ay
10, 2010 at 18:51, Carsten Bormann</font><a moz-do-not-send=3D"true"
 href=3D"mailto:cabo@tzi.org"><u><font size=3D"4" color=3D"#0000ff"
 face=3D"Courier New">&lt;cabo@tzi.org&gt;</font></u></a><font size=3D"4"=

 face=3D"Courier New"> wrote:</font><br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New"> </font>
                          <ul>
                            <ul>
                              <font size=3D"4" face=3D"Courier New">The
CORE WG has a milestone to select a WG document for CoAP in</font><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt>
                            </ul>
                          </ul>
                        </ul>
                      </ul>
                    </ul>
                  </ul>
                  <font size=3D"4" face=3D"Courier New">April:</font><br>=

                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font>
                  <ul>
                    <ul>
                      <ul>
                        <ul>
                          <ul>
                            <ul>
                              <a moz-do-not-send=3D"true"
 href=3D"http://datatracker.ietf.org/wg/core/charter/"><u><font size=3D"4=
"
 color=3D"#0000ff" face=3D"Courier Ne
w">http://datatracker.ietf.org/wg/core/charter/</font></u></a><br>
                              <font size=3D"4" face=3D"Courier New">...</=
font><br>
                              <font size=3D"4" face=3D"Courier New">Apr
2010 Select WG document for basis of the CoAP protocol</font><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New">Of th=
e
various documents that have been contributed,</font><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt>
                            </ul>
                          </ul>
                        </ul>
                      </ul>
                    </ul>
                  </ul>
                  <font size=3D"4" face=3D"Courier New">draft-shelby-core=
-coap
has significant discussion, as well as the</font><br>
                  <font size=3D"4" face=3D"Courier New">largest number of=

updates (including a previous version that was still</font><br>
                  <font size=3D"4" face=3D"Courier New">called
-6lowapp-coap).</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font>
                  <ul>
                    <ul>
                      <ul>
                        <ul>
                          <ul>
                            <ul>
                              <font size=3D"4" face=3D"Courier New">Today=
,
another updated version of that draft was announced. See</font><br>
                              <a moz-do-not-send=3D"true"
 href=3D"http://www.ietf.org/mail-archive/web/core/current/msg00138.html"=
><u><font
 size=3D"4" color=3D"#0000ff" face=3D"Courier New">http://www.ietf.org/ma=
il-archive/web/core/current/msg00138.html</font></u></a><br>
                              <font size=3D"4" face=3D"Courier New">for t=
he
announcement and</font><br>
                              <a moz-do-not-send=3D"true"
 href=3D"http://tools.ietf.org/html/draft-shelby-core-coap-01"><u><font
 size=3D"4" color=3D"#0000ff" face=3D"Courier New">http://tools.ietf.org/=
html/draft-shelby-core-coap-01</font></u></a><br>
                              <font size=3D"4" face=3D"Courier New">for t=
he
draft itself.</font><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New">Howev=
er,
as the authors say, there are still significant TODOs.</font><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New">Are w=
e
in a state yet where we can say whether this is the right</font><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt>
                            </ul>
                          </ul>
                        </ul>
                      </ul>
                    </ul>
                  </ul>
                  <font size=3D"4" face=3D"Courier New">direction for the=

WG to take?</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font>
                  <ul>
                    <ul>
                      <ul>
                        <ul>
                          <ul>
                            <ul>
                              <font size=3D"4" face=3D"Courier New">If ye=
s,
is it the right direction? Should we adopt it as a WG</font><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt>
                            </ul>
                          </ul>
                        </ul>
                      </ul>
                    </ul>
                  </ul>
                  <font size=3D"4" face=3D"Courier New">document?</font><=
br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font>
                  <ul>
                    <ul>
                      <ul>
                        <ul>
                          <ul>
                            <ul>
                              <font size=3D"4" face=3D"Courier New">If yo=
u
don't think we can say yet, is there a set of technical</font><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt>
                            </ul>
                          </ul>
                        </ul>
                      </ul>
                    </ul>
                  </ul>
                  <font size=3D"4" face=3D"Courier New">decisions you wou=
ld
like the authors to take with priority?</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font>
                  <ul>
                    <ul>
                      <ul>
                        <ul>
                          <ul>
                            <ul>
                              <font size=3D"4" face=3D"Courier New">Note
that once a document has become a WG document, the authors act</font><br>=

                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt>
                            </ul>
                          </ul>
                        </ul>
                      </ul>
                    </ul>
                  </ul>
                  <font size=3D"4" face=3D"Courier New">as editors for th=
e
working group, making (and usually fleshing out the</font><br>
                  <font size=3D"4" face=3D"Courier New">details of) any
change that the WG decides it needs.</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font>
                  <ul>
                    <ul>
                      <ul>
                        <ul>
                          <ul>
                            <ul>
                              <font size=3D"4" face=3D"Courier New">If yo=
u
think we can still improve the draft, this is not an obstacle</font><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt>
                            </ul>
                          </ul>
                        </ul>
                      </ul>
                    </ul>
                  </ul>
                  <font size=3D"4" face=3D"Courier New">to making it a WG=

document.</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font>
                  <ul>
                    <ul>
                      <ul>
                        <ul>
                          <ul>
                            <ul>
                              <font size=3D"4" face=3D"Courier New">But o=
f
course we shouldn't do that if we intend to reverse its</font><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt>
                            </ul>
                          </ul>
                        </ul>
                      </ul>
                    </ul>
                  </ul>
                  <font size=3D"4" face=3D"Courier New">fundamental
technical direction.</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font>
                  <ul>
                    <ul>
                      <ul>
                        <ul>
                          <ul>
                            <ul>
                              <font size=3D"4" face=3D"Courier New">In
order to stay roughly in sync with our milestones, we should</font><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt>
                            </ul>
                          </ul>
                        </ul>
                      </ul>
                    </ul>
                  </ul>
                  <font size=3D"4" face=3D"Courier New">reach at a decisi=
on
on how to go forward this week.</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font>
                  <ul>
                    <ul>
                      <ul>
                        <ul>
                          <ul>
                            <ul>
                              <font size=3D"4" face=3D"Courier New">Grues=
se,
Carsten</font><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New">_____=
__________________________________________</font><br>
                              <font size=3D"4" face=3D"Courier New">core
mailing list</font><br>
                              <a moz-do-not-send=3D"true"
 href=3D"mailto:core@ietf.org"><u><font size=3D"4" color=3D"#0000ff"
 face=3D"Courier New">core@ietf.org</font></u></a><br>
                              <a moz-do-not-send=3D"true"
 href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font size=3D"4"
 color=3D"#0000ff" face=3D"Courier New">https://www.ietf.org/mailman/list=
info/core</font></u></a><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt><br>
                              <font size=3D"4" face=3D"Courier New"> </fo=
nt>
                            </ul>
                          </ul>
                          <font size=3D"4" face=3D"Courier New">_________=
______________________________________</font><br>
                          <font size=3D"4" face=3D"Courier New">core
mailing list</font><br>
                          <a moz-do-not-send=3D"true"
 href=3D"mailto:core@ietf.org"><u><font size=3D"4" color=3D"#0000ff"
 face=3D"Courier New">core@ietf.org</font></u></a><br>
                          <a moz-do-not-send=3D"true"
 href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font size=3D"4"
 color=3D"#0000ff" face=3D"Courier New">https://www.ietf.org/mailman/list=
info/core</font></u></a><br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New"> </font><=
br>
                          <font size=3D"4" face=3D"Courier New"> </font>
                        </ul>
                      </ul>
                      <font size=3D"4" face=3D"Courier New">--</font><br>=

                      <font size=3D"4" face=3D"Courier New">Zach Shelby,
Chief Nerd, Sensinode Ltd.</font><br>
                      <a moz-do-not-send=3D"true"
 href=3D"http://zachshelby.org/"><u><font size=3D"4" color=3D"#0000ff"
 face=3D"Courier New">http://zachshelby.org</font></u></a><font size=3D"4=
"
 face=3D"Courier New"> - My blog "On the Internet of Things</font><a
 moz-do-not-send=3D"true" href=3D"http://6lowpan.net-mybook/"><u><font
 size=3D"4" color=3D"#0000ff" face=3D"Courier New">"</font></u></a><br>
                      <a moz-do-not-send=3D"true"
 href=3D"http://6lowpan.net-mybook/"><u><font size=3D"4" color=3D"#0000ff=
"
 face=3D"Courier New">http://6lowpan.net - My book "</font></u></a><font
 size=3D"4" face=3D"Courier New">6LoWPAN: The Wireless Embedded Internet"=
</font><br>
                      <font size=3D"4" face=3D"Courier New">Mobile: +358 =
40
7796297</font><br>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New"> </font><br>
                      <font size=3D"4" face=3D"Courier New"> </font>
                    </ul>
                  </ul>
                  <font size=3D"4" face=3D"Courier New">_________________=
______________________________</font><br>
                  <font size=3D"4" face=3D"Courier New">core mailing list=
</font><br>
                  <a moz-do-not-send=3D"true" href=3D"mailto:core@ietf.or=
g"><u><font
 size=3D"4" color=3D"#0000ff" face=3D"Courier New">core@ietf.org</font></=
u></a><br>
                  <a moz-do-not-send=3D"true"
 href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font size=3D"4"
 color=3D"#0000ff" face=3D"Courier New">https://www.ietf.org/mailman/list=
info/core</font></u></a><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">-----------------=
---------------</font><br>
                  <font size=3D"4" face=3D"Courier New">Onzo is a limited=

company number 06097997 registered in England&amp; Wales. The</font><br>
                  <font size=3D"4" face=3D"Courier New">registered office=

is 6 Great Newport Street, London, WC2H 7JB, United Kingdom.</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">This email messag=
e
may contain confidential and/or privileged information, and</font><br>
                  <font size=3D"4" face=3D"Courier New">is intended solel=
y
for the addressee(s). If you have received this email in</font><br>
                  <font size=3D"4" face=3D"Courier New">error, please
notify Onzo immediately. Unauthorised copying, disclosure or</font><br>
                  <font size=3D"4" face=3D"Courier New">distribution of t=
he
material in this email is forbidden.</font><br>
                  <font size=3D"4" face=3D"Courier New">-----------------=
---------------</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">_________________=
______________________________</font><br>
                  <font size=3D"4" face=3D"Courier New">core mailing list=
</font><br>
                  <a moz-do-not-send=3D"true" href=3D"mailto:core@ietf.or=
g"><u><font
 size=3D"4" color=3D"#0000ff" face=3D"Courier New">core@ietf.org</font></=
u></a><br>
                  <a moz-do-not-send=3D"true"
 href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font size=3D"4"
 color=3D"#0000ff" face=3D"Courier New">https://www.ietf.org/mailman/list=
info/core</font></u></a><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">_________________=
_____________________________________________________</font><br>
                  <font size=3D"4" face=3D"Courier New">This email has be=
en
scanned by the MessageLabs Email Security System.</font><br>
                  <font size=3D"4" face=3D"Courier New">_________________=
_____________________________________________________</font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New">_________________=
______________________________</font><br>
                  <font size=3D"4" face=3D"Courier New">core mailing list=
</font><br>
                  <a moz-do-not-send=3D"true" href=3D"mailto:core@ietf.or=
g"><u><font
 size=3D"4" color=3D"#0000ff" face=3D"Courier New">core@ietf.org</font></=
u></a><br>
                  <a moz-do-not-send=3D"true"
 href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font size=3D"4"
 color=3D"#0000ff" face=3D"Courier New">https://www.ietf.org/mailman/list=
info/core</font></u></a><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font><br>
                  <font size=3D"4" face=3D"Courier New"> </font>
                </ul>
              </ul>
              <font size=3D"4" face=3D"Courier New"> </font><br>
              <font size=3D"4" face=3D"Courier New"> </font>
            </ul>
          </ul>
          <font size=3D"4" face=3D"Courier New">_________________________=
______________________</font><br>
          <font size=3D"4" face=3D"Courier New">core mailing list</font><=
br>
          <a moz-do-not-send=3D"true" href=3D"mailto:core@ietf.org"><u><f=
ont
 size=3D"4" color=3D"#0000ff" face=3D"Courier New">core@ietf.org</font></=
u></a><br>
          <a moz-do-not-send=3D"true"
 href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font size=3D"4"
 color=3D"#0000ff" face=3D"Courier New">https://www.ietf.org/mailman/list=
info/core</font></u></a><br>
          <font size=3D"4" face=3D"Courier New"> </font><br>
          <font size=3D"4" face=3D"Courier New">-------------------------=
-------</font><br>
          <font size=3D"4" face=3D"Courier New">Onzo is a limited company=

number 06097997 registered in England&amp; Wales. The</font><br>
          <font size=3D"4" face=3D"Courier New">registered office is 6
Great Newport Street, London, WC2H 7JB, United Kingdom.</font><br>
          <font size=3D"4" face=3D"Courier New"> </font><br>
          <font size=3D"4" face=3D"Courier New">This email message may
contain confidential and/or privileged information, and</font><br>
          <font size=3D"4" face=3D"Courier New">is intended solely for th=
e
addressee(s). If you have received this email in</font><br>
          <font size=3D"4" face=3D"Courier New">error, please notify Onzo=

immediately. Unauthorised copying, disclosure or</font><br>
          <font size=3D"4" face=3D"Courier New">distribution of the
material in this email is forbidden.</font><br>
          <font size=3D"4" face=3D"Courier New">-------------------------=
-------</font><br>
          <font size=3D"4" face=3D"Courier New"> </font><br>
          <font size=3D"4" face=3D"Courier New"> </font><br>
          <font size=3D"4" face=3D"Courier New"> </font>
        </ul>
      </ul>
      <font size=3D"4" face=3D"Courier New"> </font><br>
      <font size=3D"4" face=3D"Courier New"> </font>
    </ul>
  </ul>
  <font size=3D"4" face=3D"Courier New"> </font><br>
  <font size=3D"4" face=3D"Courier New">_________________________________=
______________</font><br>
  <font size=3D"4" face=3D"Courier New">core mailing list</font><br>
  <a moz-do-not-send=3D"true" href=3D"mailto:core@ietf.org"><u><font
 size=3D"4" color=3D"#0000ff" face=3D"Courier New">core@ietf.org</font></=
u></a><br>
  <a moz-do-not-send=3D"true"
 href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font size=3D"4"
 color=3D"#0000ff" face=3D"Courier New">https://www.ietf.org/mailman/list=
info/core</font></u></a><br>
  <font size=3D"4" face=3D"Courier New">_________________________________=
______________</font><br>
  <font size=3D"4" face=3D"Courier New">core mailing list</font><br>
  <a moz-do-not-send=3D"true" href=3D"mailto:core@ietf.org"><u><font
 size=3D"4" color=3D"#0000ff" face=3D"Courier New">core@ietf.org</font></=
u></a><br>
  <a moz-do-not-send=3D"true"
 href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font size=3D"4"
 color=3D"#0000ff" face=3D"Courier New">https://www.ietf.org/mailman/list=
info/core</font></u></a><br>
  <font size=3D"4" face=3D"Courier New"> </font><br>
  <font size=3D"4" face=3D"Courier New"> </font><br>
  <font size=3D"4"><br>
______________________________________________________________________<br=
>
This email has been scanned by the MessageLabs Email Security System.<br>=

______________________________________________________________________</f=
ont><tt>_______________________________________________<br>
core mailing list<br>
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a><br>
  </tt><tt><a moz-do-not-send=3D"true"
 href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org=
/mailman/listinfo/core</a></tt><tt><br>
  </tt><br>
</blockquote>
</body>
</html>

--------------040709040507000808040401
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-ID: <part1.07030401.03040405@gridmerge.com>

R0lGODlhEAAQAKECAMzMzAAAAP///wAAACH5BAEAAAIALAAAAAAQABAAAAIXlI+py+0Popwx
UbpuZRfKZ2zgSJbmSRYAIf4fT3B0aW1pemVkIGJ5IFVsZWFkIFNtYXJ0U2F2ZXIhAAA7
--------------040709040507000808040401
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-ID: <part2.06040404.02020703@gridmerge.com>

R0lGODlhEAABAIAAAAAAAP///yH5BAEAAAEALAAAAAAQAAEAAAIEjI8ZBQA7
--------------040709040507000808040401--

--------------050101090105090201020407--

--------------ms070209000403000202080409
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIJKzCC
AvAwggJZoAMCAQICEHQVhhxGmCATv+IPne+OkB8wDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UE
BhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMT
I1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA5MDgyOTE2NTcwM1oX
DTEwMDgyOTE2NTcwM1owTTEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEqMCgG
CSqGSIb3DQEJARYbcm9iZXJ0LmNyYWdpZUBncmlkbWVyZ2UuY29tMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAtuQTYz8HUA37wa1PMyVnREeRwT3jtzGO6epyiCCaVeJkP76G
KdnNapg0jyuzDfRqSMW0n570toMF9FTpD34hDvtHcnMDboU7MSKFV2VyOOlTB3eHJfRn2Jtl
o9mSeW1qIIOwRReV6v50OxmijmeGFAn82Y1QrtyKDQxhl0HhEmY4jonziMyQ5gKlO5TM+CxY
hV0zXCLHfp9QjLG7bwZx6F0ChSHvRaf5ZlLKQSI2BGAx/GtP5l4ME7+kq4icmbV0g6m1AH9Y
LYYKV9rOx9SilPpTJdwn7GY/Qop4VSmdsaDBlXieBbjKqPN/CEqFmlxjjPFihorkeyC1T2R5
CqB41QIDAQABozgwNjAmBgNVHREEHzAdgRtyb2JlcnQuY3JhZ2llQGdyaWRtZXJnZS5jb20w
DAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQUFAAOBgQCTQ5bjbW8th9Yy/xbAgmc070Y/DLPR
RwOu51zamGFNffSpiPDJsLg4Bu9QZqhDylPm3AriHGp9MVL8Ei4h5krygmgHLE0mNYFsJt35
90wdK7z3dXtV/nOD0+rFR6Y9oUGf916rO0madex0KbosqrUuZ1NGVh/Q5/7H0mAEg+1EWzCC
AvAwggJZoAMCAQICEHQVhhxGmCATv+IPne+OkB8wDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UE
BhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMT
I1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA5MDgyOTE2NTcwM1oX
DTEwMDgyOTE2NTcwM1owTTEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEqMCgG
CSqGSIb3DQEJARYbcm9iZXJ0LmNyYWdpZUBncmlkbWVyZ2UuY29tMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAtuQTYz8HUA37wa1PMyVnREeRwT3jtzGO6epyiCCaVeJkP76G
KdnNapg0jyuzDfRqSMW0n570toMF9FTpD34hDvtHcnMDboU7MSKFV2VyOOlTB3eHJfRn2Jtl
o9mSeW1qIIOwRReV6v50OxmijmeGFAn82Y1QrtyKDQxhl0HhEmY4jonziMyQ5gKlO5TM+CxY
hV0zXCLHfp9QjLG7bwZx6F0ChSHvRaf5ZlLKQSI2BGAx/GtP5l4ME7+kq4icmbV0g6m1AH9Y
LYYKV9rOx9SilPpTJdwn7GY/Qop4VSmdsaDBlXieBbjKqPN/CEqFmlxjjPFihorkeyC1T2R5
CqB41QIDAQABozgwNjAmBgNVHREEHzAdgRtyb2JlcnQuY3JhZ2llQGdyaWRtZXJnZS5jb20w
DAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQUFAAOBgQCTQ5bjbW8th9Yy/xbAgmc070Y/DLPR
RwOu51zamGFNffSpiPDJsLg4Bu9QZqhDylPm3AriHGp9MVL8Ei4h5krygmgHLE0mNYFsJt35
90wdK7z3dXtV/nOD0+rFR6Y9oUGf916rO0madex0KbosqrUuZ1NGVh/Q5/7H0mAEg+1EWzCC
Az8wggKooAMCAQICAQ0wDQYJKoZIhvcNAQEFBQAwgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQI
EwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENv
bnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xJDAi
BgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVy
c29uYWwtZnJlZW1haWxAdGhhd3RlLmNvbTAeFw0wMzA3MTcwMDAwMDBaFw0xMzA3MTYyMzU5
NTlaMGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBM
dGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQTCBnzAN
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxKY8VXNV+065yplaHmjAdQRwnd/p/6Me7L3N9Vvy
Gna9fww6YfK/Uc4B1OVQCjDXAmNaLIkVcI7dyfArhVqqP3FWy688Cwfn8R+RNiQqE88r1fOC
dz0Dviv+uxg+B79AgAJk16emu59l0cUqVIUPSAR/p7bRPGEEQB5kGXJgt/sCAwEAAaOBlDCB
kTASBgNVHRMBAf8ECDAGAQH/AgEAMEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwudGhh
d3RlLmNvbS9UaGF3dGVQZXJzb25hbEZyZWVtYWlsQ0EuY3JsMAsGA1UdDwQEAwIBBjApBgNV
HREEIjAgpB4wHDEaMBgGA1UEAxMRUHJpdmF0ZUxhYmVsMi0xMzgwDQYJKoZIhvcNAQEFBQAD
gYEASIzRUIPqCy7MDaNmrGcPf6+svsIXoUOWlJ1/TCG4+DYfqi2fNi/A9BxQIJNwPP2t4WFi
w9k6GX6EsZkbAMUaC4J0niVQlGLH2ydxVyWN3amcOY6MIE9lX5Xa9/eH1sYITq726jTlEBpb
NU1341YheILcIRk13iSx0x1G/11fZU8xggNxMIIDbQIBATB2MGIxCzAJBgNVBAYTAlpBMSUw
IwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUg
UGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQQIQdBWGHEaYIBO/4g+d746QHzAJBgUrDgMC
GgUAoIIB0DAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xMDA1
MjgxMjA4MzhaMCMGCSqGSIb3DQEJBDEWBBSMS89KEUViwxTjLqQSZyx8dKKWwzBfBgkqhkiG
9w0BCQ8xUjBQMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAOBggqhkiG9w0DAgICAIAwDQYI
KoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgwgYUGCSsGAQQBgjcQBDF4MHYw
YjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4x
LDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBAhB0FYYcRpgg
E7/iD53vjpAfMIGHBgsqhkiG9w0BCRACCzF4oHYwYjELMAkGA1UEBhMCWkExJTAjBgNVBAoT
HFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25h
bCBGcmVlbWFpbCBJc3N1aW5nIENBAhB0FYYcRpggE7/iD53vjpAfMA0GCSqGSIb3DQEBAQUA
BIIBAIfdKZDLLn9AuO0zwUoemcVXGjcZbblFYfy9b0aQOUdEg700CvUzH8U4dckgmpskjMaT
dU8mM+YqYs+y3RDZo6oE1aZGotcCEEZfrG7jmYFn8NXJwwfNZrGmATrGG/qY0Vayfh2/Kd1D
XQlSCmaF4MiIbcUOsYX4TQL15a0R+jXp+nidtaiNoRr3uNdmoCAq/BhXNux86CiS+NbKHiYV
Y2mndbu09nZOM7uk+UwTCMoqPCwpWv0DTk6Zeki3gmzFNSqIGXHC79P5AYUv2NzhJetOuWOn
+pvGraYWG7IQDDn07nvyvIbLPyX8VG2fLPVUNdcHM1WeR+YH8WbRYg7Lb8sAAAAAAAA=
--------------ms070209000403000202080409--

From apezzuto@cisco.com  Fri May 28 05:09:54 2010
Return-Path: <apezzuto@cisco.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 324A03A689E for <core@core3.amsl.com>; Fri, 28 May 2010 05:09:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.555
X-Spam-Level: 
X-Spam-Status: No, score=-3.555 tagged_above=-999 required=5 tests=[AWL=2.323,  BAYES_00=-2.599, EXTRA_MPART_TYPE=1, HTML_MESSAGE=0.001, MANGLED_TOOL=2.3, RCVD_IN_DNSWL_HI=-8, SARE_GIF_ATTACH=1.42]
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 4c92i0lHYQ8D for <core@core3.amsl.com>; Fri, 28 May 2010 05:09:50 -0700 (PDT)
Received: from sj-iport-4.cisco.com (sj-iport-4.cisco.com [171.68.10.86]) by core3.amsl.com (Postfix) with ESMTP id 59E513A659B for <core@ietf.org>; Fri, 28 May 2010 05:09:49 -0700 (PDT)
Authentication-Results: sj-iport-4.cisco.com; dkim=neutral (message not signed) header.i=none
X-Files: image001.gif, image003.png, image004.png : 105, 168, 166
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AhELAP9O/0urR7Ht/2dsb2JhbABwT5BgjAdxpAeaKwKCc4IfBA
X-IronPort-AV: E=Sophos;i="4.53,318,1272844800";  d="gif'147?png'147,150?scan'147,150,208,217,147,150";a="136465840"
Received: from sj-core-1.cisco.com ([171.71.177.237]) by sj-iport-4.cisco.com with ESMTP; 28 May 2010 12:09:35 +0000
Received: from xbh-ams-101.cisco.com (xbh-ams-101.cisco.com [144.254.74.71]) by sj-core-1.cisco.com (8.13.8/8.14.3) with ESMTP id o4SC9UuV027578; Fri, 28 May 2010 12:09:34 GMT
Received: from xmb-ams-106.cisco.com ([144.254.74.81]) by xbh-ams-101.cisco.com with Microsoft SMTPSVC(6.0.3790.3959);  Fri, 28 May 2010 14:08:38 +0200
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/related; type="multipart/alternative"; boundary="----_=_NextPart_001_01CAFE5E.8144BB5E"
Date: Fri, 28 May 2010 14:08:37 +0200
Message-ID: <0D212BD466921646B58854FB79092CEC021F4EF2@XMB-AMS-106.cisco.com>
In-Reply-To: <OF54E90C1C.C8997A73-ONC1257731.003EAAE3-C1257731.004127C6@schneider-electric.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [core] Subscribe/Notify for CoAP
Thread-Index: Acr+XDNu32OEwOJKRd2ckxfl2g5YaAAAPlZw
References: <0D212BD466921646B58854FB79092CEC021F4E91@XMB-AMS-106.cisco.com> <OF54E90C1C.C8997A73-ONC1257731.003EAAE3-C1257731.004127C6@schneider-electric.com>
From: "Adriano Pezzuto (apezzuto)" <apezzuto@cisco.com>
To: <matthieu.vial@fr.non.schneider-electric.com>
X-OriginalArrivalTime: 28 May 2010 12:08:38.0727 (UTC) FILETIME=[818B9570:01CAFE5E]
Cc: core <core@ietf.org>
Subject: Re: [core] Subscribe/Notify for CoAP
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, 28 May 2010 12:09:54 -0000

This is a multi-part message in MIME format.

------_=_NextPart_001_01CAFE5E.8144BB5E
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_002_01CAFE5E.8144BB5E"


------_=_NextPart_002_01CAFE5E.8144BB5E
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hello,

with this flavor, the SUBSCRIBE may be replaced by a simple POST. So no =
needs to have an explicit SUBSCRIBE method.

If we want support a more oriented peer-to-peer transaction on CoAP, it =
looks to me both SUB and NOTIFY should be treated as messages.

=20

Adriano

=20

From: matthieu.vial@fr.non.schneider-electric.com =
[mailto:matthieu.vial@fr.non.schneider-electric.com]=20
Sent: venerd=EC 28 maggio 2010 13.52
To: Adriano Pezzuto (apezzuto)
Cc: core; core-bounces@ietf.org; robert.cragie@gridmerge.com
Subject: Re: [core] Subscribe/Notify for CoAP

=20

> So strictly speaking, both NOTIFY and SUBSCRIBE are message types not  =
methods!

SUBSCRIBE can be just an asynchronous GET on update then I think it is a =
method and NOTIFY is an asynchronous response so a message.
But if we want to have selective notifications when a resource is =
created, updated or deleted then I think you're right NOTIFY and =
SUBSCRIBE are messages.

Does that make sense ?

Matthieu

 "Adriano Pezzuto (apezzuto)" <apezzuto@cisco.com>





"Adriano Pezzuto (apezzuto)" <apezzuto@cisco.com>=20
Envoy=E9 par : core-bounces@ietf.org=20

28/05/2010 12:50

=20

A

=20
<robert.cragie@gridmerge.com>



cc


core <core@ietf.org>



Objet


Re: [core] Subscribe/Notify for CoAP

=20






Hi Roberto,
I understand your point and personally agree on M2M is quite different =
from web page model. On the architectural RESTful style, the method =
information tells the server what to do with data kept in the URI =
information.

So strictly speaking, both NOTIFY and SUBSCRIBE are message types not  =
methods!

Adriano=20

From: Robert Cragie [mailto:robert.cragie@gridmerge.com]=20
Sent: venerd=EC 28 maggio 2010 11.53
To: Adriano Pezzuto (apezzuto)
Cc: Paul Duffy (paduffy); Zach Shelby; core
Subject: Re: [core] Subscribe/Notify for CoAP

I think the point here is that there are two levels we are considering.

At the lowest (foundation) level, there are the transaction messages as =
described below. This provides a flexible mechanism for the application =
with regard to synchronicity and threading. This is important for the =
types of devices CoAP is being aimed at.

Above that, the methods can be used according to the architectural =
style. So in this case, it is RESTful (COnstrained Restful =
Environments), which will naturally limit the number of methods and how =
transactions occur.

The actual architecture using a combination of the methods and messages =
also depends on what is required at the application layer. Consider a =
typical client which wants to subscribe to a resource. That client =
controls the feed of data but needs a component which is capable of =
handling (possibly buffering) the data it receives through =
notifications. Is this a separate server? Or would we want to consider =
it part of an enhanced client model which is able to process feeds of =
data? These are the sort of models which have led to the myriad of =
solutions (GENA, Webhooks, long polling, pubsubhubbub, RESTMS etc.) =
based around HTTP which are all essentially ingenious ways of getting =
around the limitations imposed by HTTP and how it is processed for =
anything which deviates from the classic web page access model.

I think the aim of CoAP should be clean from the word go with regard to =
supporting these more peer-to-peer transactions, where the client can =
exist on either entity and both entities can feed data to each other; =
typical in M2M applications.

Robert=20

Robert Cragie (Pacific Gas & Electric)=20

Gridmerge Ltd.
89 Greenfield Crescent,
Wakefield, WF4 4WA, UK
+44 1924 910888
+1 415 513 0064
http://www.gridmerge.com <http://www.gridmerge.com/>=20

On 27/05/2010 7:08 PM, Adriano Pezzuto (apezzuto) wrote:=20
Hi Robert,

in my personal opinion, the option 1a) brings some sort of ambiguity to =
CoAP specs.

My be my understatement of new CoAP specs is not so deep, but now we =
have 5 methods and 3 message types: request, response and notify. Which =
methods are allowed with which messages types?
I suppose you have to use PUT/POST method with notify message for asynch =
data notification. How to make a subscribe? I suppose you would use a =
SUBSCRIBE method with request/response message or SUBSCRIBE with notify =
message? Also what about POST/DELETE methods in a notify message? They =
not make any sense..

I think the choice is between: option 1) -> only CRUD methods and option =
1b) -> CRUD + SUB/NOTIFY methods, keeping in mind cost/benefits of both =
solutions.

Adriano

From: Robert Cragie [mailto:robert.cragie@gridmerge.com =
<mailto:robert.cragie@gridmerge.com> ]=20
Sent: mercoled=EC 26 maggio 2010 20.09
To: Adriano Pezzuto (apezzuto)
Cc: Paul Duffy (paduffy); Zach Shelby; core
Subject: Re: [core] Subscribe/Notify for CoAP

Hi Adrian,

I would also prefer to keep the protocol in CoAP asynchronous. You can =
always map an asynchronous protocol to a synchronous one but, as we see =
in HTTP, it always ends up as a kludge to do it the other way round. The =
efforts which have been gone to to make HTTP quasi-asynchronous via all =
the schemes mentioned below and many more besides (all non-interoperable =
of course) is testament to how important this is for M2M communication.

So, back to Zach's list, I favor 1a) for the following reasons:

Foundation level of messages:=20

1. request/response can be asynchronous or synchronous messages (as =
there is a transaction ID in there)
2. notify is an asynchronous message

Derived methods:

I think it makes sense to add a pub/sub model as a useful mechanism for =
M2M.

So, looking at it the other way round: It will be entirely possible to =
translate whatever is currently built on HTTP to CoAP based on the =
above, with all its restrictions regarding synchronous and client/server =
transactions. What may be harder is to translate directly is a =
CoAP-based application to HTTP. So I guess the question is: Do we want =
to be hamstrung to synchronous client/server transactions as dictated by =
HTTP and provide a direct mapping to HTTP, then have to come up with =
similar kludges for asynchronous peer-to-peer transactions as has been =
done in numerous ways for HTTP, or do we want to define the protocol =
cleanly to start with and accept that some sort of transaction =
relaying/conversion would have to take place at a mapping node?

Robert=20

Robert Cragie (Pacific Gas & Electric)=20

Gridmerge Ltd.
89 Greenfield Crescent,
Wakefield, WF4 4WA, UK
+44 1924 910888
+1 415 513 0064
http://www.gridmerge.com <http://www.gridmerge.com/>=20

On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote:=20
Hi,
it looks to me that CoAP should use an explicit sub/notify mechanism =
since this is the core of the machine-to-machine interaction model.
HTTP suffers of this lack and we have seen a plethora of solutions to =
give an asynch taste to it. Webhooks and websockets are only the lasts =
of the list.
As someone has already pointed out on this list, it is theoretically =
possible to describe sub/notify using only CRUD methods but it looks a =
little bit tricky and verbose.

Now we have a chance to build from scratch a new protocol with and I =
think using explicit sub/notify methods with a clear and well defined =
semantic is the best option. It is easily understanding from every =
developer and will prevent to build other fanny solutions on top of the =
CoAP. HTTP does not have this well defined semantic and (for hundreds of =
other reasons also) it is not used as wide protocol for =
machine-to-machine communication.

CoAP - as binary protocol - and with an explicit asynch model has a =
chance to be a really wide protocol for M2M communication not only for =
constrained environments.

my 2 cents

- adriano

-----Original Message-----
From: core-bounces@ietf.org <mailto:core-bounces@ietf.org>  =
[mailto:core-bounces@ietf.org <mailto:core-bounces@ietf.org> ] On Behalf =
Of Paul Duffy (paduffy)
Sent: mercoled=EC 26 maggio 2010 0.47
To: Zach Shelby
Cc: core
Subject: Re: [core] Subscribe/Notify for CoAP

On 5/25/2010 6:41 PM, Zach Shelby wrote:

Hi,

On May 26, 2010, at 12:23 AM, Charles Palmer wrote:



Hi folks

It occurs to me that CoRE should be keeping a close eye on ZigBee SE2.0 =
work, so that it is as easy as possible for ZigBee SE to use CoRE when =
ready. That suggests to me that we should align with their =
subscribe/notify process.



I am not sure I understand that. I mean, ZigBee SE2.0 is defining an =
application specific subscribe/notify mechanism for that purpose so far =
for HTTP. This uses standard HTTP methods and some custom payload and =
REST interfaces. CoAP Req/Res is already totally compatible with SE2.0 =
in that respect, so alignment is already OK there. Nothing stopping =
someone from using SE2.0 over CoAP.

Specifying a native susbcription/notify into CoAP is another matter. We =
can't adopt a solution specific to one application as that won't solve =
the problems of other applications nor general HTTP mapping at all =
(probably would make it worse). It seems that for the near future there =
will be a bunch of HTTP push mechanisms in use without any clear =
standard appearing - or am I wrong there?




If COAP extends HTTP semantics with new subscription methods, it will=20
not be possible to easily interchange HTTP/COAP, and translation=20
gateways will become more complex to implement.




Zach



Regards - Charles


-----Original Message-----
From: core-bounces@ietf.org <mailto:core-bounces@ietf.org>  =
[mailto:core-bounces@ietf.org <mailto:core-bounces@ietf.org> ] On Behalf =
Of Paul Duffy
Sent: 25 May 2010 03:48
To: Zach Shelby
Cc: core
Subject: Re: [core] Subscribe/Notify for CoAP

Recommend something like #2, primarily to avoid introducing non HTTP
method semantics, simplifying HTTP/COAP translation.gateways, etc.


On 5/24/2010 11:49 AM, Zach Shelby wrote:

(thread renamed)

We have two different paths with regard to a subscribe/notify mechanism =
for CoAP:

1. Use specific Subscription and Notify mechanisms for CoAP as HTTP =
really does not include this concept.
1a) Notify as a message and SUBSCRIBE as a method. This is currently =
used in coap-01.
1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but we =
had a good list discussion about this leading to a. In practice it =
doesn't make a big difference if notification is a message or method.

2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0 =
proposal or GENA.

So far we have focused on 1 in the WG, and every now and again 2 comes =
up. At least I am not convinced that we need to suffer the drawbacks of =
HTTP here. Anyways 2 does not help our mapping to HTTP in reality very =
much as there is no standard way of doing this over HTTP. Thus a =
CoAP-HTTP proxy may end up anyways translating between multiple HTTP =
frameworks depending on the application. So instead of doing a CoAP =
Notify/Subscribe to Webhooks mapping, you will could end up having to do =
a CoAP Webhooks to HTTP GENA mapping.




I don't understand this last para. If CoAP sticks to the semantics of
the current HTTP methods, would this not offer a fairly straightforward
translation to/from HTTP?




>From what I have heard so far 1 still seems like a wise choice, although =
I need to look at Webhooks more deeply. In reality many applications =
specify their own way of doing a push interface using REST methods and =
specific payloads (ZigBee SE2.0 is such an example). That is just fine, =
and might be used instead of a specific CoAP notify/subscribe in that =
case. So 1 doesn't prevent the application using its own mechanism, it =
just provides a native way for doing push.

What do people think?

Zach

On May 17, 2010, at 6:44 PM, matthieu.vial@fr.non.schneider-electric.com =
<mailto:matthieu.vial@fr.non.schneider-electric.com>  wrote:




Hi,

My comments about the subscribe/notify mechanism of Zigbee IP.

Pros:
- Derived from the webhooks concept
- If used by CORE it will be easier to map to HTTP because it uses only =
CRUD verbs.
- The subscription message is extendable and could support advanced =
options (delays, increment, ...)
- Only one listening port whatever the transport binding is.

Cons:
- No interoperability without well known URIs and a well defined =
subscription message format (Not sure CoAP draft is the right place to =
specify this).
- XML/EXI is too complex to be the required format for the default =
subscription/notification mechanism.
- The notification should not require a subsequent GET to retrieve the =
content.
- Subresource subscription is redundant.

Hope this could help,
Matthieu


<graycol.gif>"Charles Palmer"<charles.palmer@onzo.com> =
<mailto:charles.palmer@onzo.com>=20




"Charles Palmer"<charles.palmer@onzo.com> =
<mailto:charles.palmer@onzo.com>=20
Envoy=E9 par : core-bounces@ietf.org <mailto:core-bounces@ietf.org>=20
15/05/2010 14:06

<ecblank.gif>
A
<ecblank.gif>
"core"<core@ietf.org> <mailto:core@ietf.org>=20
<ecblank.gif>
cc
<ecblank.gif>
<ecblank.gif>
Objet
<ecblank.gif>
Re: [core] Selecting a WG document for CoAP
<ecblank.gif> <ecblank.gif>

Dear all

Those interested in the subscribe/notify discussion might like to look
at the draft Smart Energy Profile 2.0 Application Protocol
Specification. It is available here:
http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicApp =
<http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicApp=
>=20
licationProfile.aspx

It manages subscribe/notify by using POST. This seems to remove the need
for SUBSCRIBE and notify.

"Imagine a host A, which exposes a resource at http{s}://A/resource and
a second host B, which wishes to learn of changes to this resource. To
facilitate a subscription/ notification mechanism, A would expose a
resource http{s}://A/sub and B would expose a resource http{s}://B/ntfy.
To subscribe to notifications regarding http{s}://A/resource, B would
send a POST to the address http{s}://A/sub/B containing the URI of the
resource of interest (http{s}://A/resource) and the URI of B's
notification resource (http{s}://B/ntfy). Following this subscription
step, should A wish to notify B of a change to the resource addressed at
http{s}://A/resource, A would send a POST to the address
http{s}://B/ntfy containing the URI of the resource changed
(http{s}://A/resource) and the URI of A's subscription resource
(http{s}://A/sub/B), should A wish to change its subscription. The host
B can then query the resource (or not) at its leisure."

Sleepy nodes are not allowed to subscribe, and must poll.

Regards - Charles Palmer

-----Original Message-----
From: core-bounces@ietf.org <mailto:core-bounces@ietf.org>  =
[mailto:core-bounces@ietf.org <mailto:core-bounces@ietf.org> ] On Behalf =
Of
Angelo P. Castellani
Sent: 14 May 2010 13:14
To: Zach Shelby
Cc: core
Subject: Re: [core] Selecting a WG document for CoAP

Zach,

thanks for the comments, but please refer to my most recent e-mail for
a more specific list of technical issues I'm pointing to.

I want to do only a little integration to what I've written there.

In my very personal opinion, to maximize adherence with the REST model
and minimize implementation effort SUBSCRIBE and NOTIFY should be
mapped to methods (as discussed many times together...).

Uniform interface principle (Fielding PhD dissertation Section 5.1.5,
"The central feature that distinguishes the REST architectural style
[...]") states that to simplify the software architecture, resource
interfaces/interfaces should be as general as possible.

I agree with this principle in this specific case, mainly because
handling a special message type for notify leads node software design
to a more complex architecture.

The reason is that this new message type requires special handling and
introduces a complexity in the software modularization.

Best,
Angelo

On Fri, May 14, 2010 at 13:06, Zach Shelby<zach@sensinode.com> =
<mailto:zach@sensinode.com>  wrote:



Hi Angelo,

On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:




Dear C. Bormann, all,

before deciding for the final direction, I've the following
observations about draft-shelby-core-coap-01

While I mostly share Zach's view of the protocol approach, and
appreciate many aspects of the proposal, there are in my opinion



still



some open issues that need to be at least discussed before the



current



document can be selected.



Of course there are plenty of open issues. Remember that working group



documents still undertake as much change and improvement as the WG
wants, so by no means is coap-01 set in stone. I would expect at least
5-10 more revisions still along the way. Already several of your ideas
have been integrated into coap-01, and several more are under
consideration, so it is coming along. Patience ;-)



=20

In particular, I would like to highlight the following:

a) As it is now, it is not possible to have a straightforward
translation of HTTP -> CoAP and viceversa: see
http://www.ietf.org/mail-archive/web/core/current/msg00133.html =
<http://www.ietf.org/mail-archive/web/core/current/msg00133.html>  (this
impacts the scalability of the web service model too)



In coap-01 the Method names are now identical to HTTP methods. The



Req/Res interaction is a direct translation. The URI hierarchy is
compatible, and the URI binary code format we are still working on
obviously. The only thing that takes some state to translate is
Subscribe/Notify. But note, Subscribe/Notify takes some state no matter
how you do it, even with HTTP-HTTP there is no clean and easy way to
handle subscriptions.



=20

b) Moreover, CoAP's implementation is not as simple as it should be.
I've investigated the implementation and some design choices (as
Options) are leading to very high program complexity (ROM) on a
MSP430-based device.



This we can definitely improve, and already made several optimizations



from -00 to -01. Here I need some very concrete proposals though. Also
remember that many things are optional, for example subscribe/notify is
not required if you don't need it.



=20

c) Finally when comparing HTTP message size with CoAP message size,
the resulting compression isn't as good as you may expect.

Example:
HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
CoAP: 24 B with options parsing procedure requiring an added
implementation complexity



Right, that is not how it will work in practice. Working with a real



HTTP server that HTTP header will be more complex, and on the CoAP side
you would chose shorter URLs. The biggest improvement possible here is
from using binary coded URLs of course. We need to look at a wider range
of interactions and real HTTP headers as well to check that we are
efficient enough.



=20

Addressing all these points potentially leads to major technical
modifications (especially point a) on the current draft, hence it is
appropriate in my opinion to discuss these points before making the
final decision.



I am not sure what else you have in mind for a). If we just forget



about Subscribe/Notify then you are good to go. But then you are also
not fulfilling the charter or the industry needs in that respect.



Thanks,
Zach




Best regards,

Angelo P. Castellani


On Mon, May 10, 2010 at 18:51, Carsten Bormann<cabo@tzi.org> =
<mailto:cabo@tzi.org>  wrote:



The CORE WG has a milestone to select a WG document for CoAP in



April:



http://datatracker.ietf.org/wg/core/charter/ =
<http://datatracker.ietf.org/wg/core/charter/>=20
...
Apr 2010 Select WG document for basis of the CoAP protocol

Of the various documents that have been contributed,



draft-shelby-core-coap has significant discussion, as well as the
largest number of updates (including a previous version that was still
called -6lowapp-coap).



Today, another updated version of that draft was announced. See
http://www.ietf.org/mail-archive/web/core/current/msg00138.html =
<http://www.ietf.org/mail-archive/web/core/current/msg00138.html>=20
for the announcement and
http://tools.ietf.org/html/draft-shelby-core-coap-01 =
<http://tools.ietf.org/html/draft-shelby-core-coap-01>=20
for the draft itself.

However, as the authors say, there are still significant TODOs.

Are we in a state yet where we can say whether this is the right



direction for the WG to take?



If yes, is it the right direction? Should we adopt it as a WG



document?



If you don't think we can say yet, is there a set of technical



decisions you would like the authors to take with priority?



Note that once a document has become a WG document, the authors act



as editors for the working group, making (and usually fleshing out the
details of) any change that the WG decides it needs.



If you think we can still improve the draft, this is not an obstacle



to making it a WG document.



But of course we shouldn't do that if we intend to reverse its



fundamental technical direction.



In order to stay roughly in sync with our milestones, we should



reach at a decision on how to go forward this week.



Gruesse, Carsten

_______________________________________________
core mailing list
core@ietf.org <mailto:core@ietf.org>=20
https://www.ietf.org/mailman/listinfo/core =
<https://www.ietf.org/mailman/listinfo/core>=20




_______________________________________________
core mailing list
core@ietf.org <mailto:core@ietf.org>=20
https://www.ietf.org/mailman/listinfo/core =
<https://www.ietf.org/mailman/listinfo/core>=20



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





_______________________________________________
core mailing list
core@ietf.org <mailto:core@ietf.org>=20
https://www.ietf.org/mailman/listinfo/core =
<https://www.ietf.org/mailman/listinfo/core>=20

--------------------------------
Onzo is a limited company number 06097997 registered in England& Wales. =
The
registered office is 6 Great Newport Street, London, WC2H 7JB, United =
Kingdom.

This email message may contain confidential and/or privileged =
information, and
is intended solely for the addressee(s). If you have received this email =
in
error, please notify Onzo immediately. Unauthorised copying, disclosure =
or
distribution of the material in this email is forbidden.
--------------------------------

_______________________________________________
core mailing list
core@ietf.org <mailto:core@ietf.org>=20
https://www.ietf.org/mailman/listinfo/core =
<https://www.ietf.org/mailman/listinfo/core>=20

______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
______________________________________________________________________

_______________________________________________
core mailing list
core@ietf.org <mailto:core@ietf.org>=20
https://www.ietf.org/mailman/listinfo/core =
<https://www.ietf.org/mailman/listinfo/core>=20



=20

_______________________________________________
core mailing list
core@ietf.org <mailto:core@ietf.org>=20
https://www.ietf.org/mailman/listinfo/core =
<https://www.ietf.org/mailman/listinfo/core>=20

--------------------------------
Onzo is a limited company number 06097997 registered in England& Wales. =
The
registered office is 6 Great Newport Street, London, WC2H 7JB, United =
Kingdom.

This email message may contain confidential and/or privileged =
information, and
is intended solely for the addressee(s). If you have received this email =
in
error, please notify Onzo immediately. Unauthorised copying, disclosure =
or
distribution of the material in this email is forbidden.
--------------------------------



=20


_______________________________________________
core mailing list
core@ietf.org <mailto:core@ietf.org>=20
https://www.ietf.org/mailman/listinfo/core =
<https://www.ietf.org/mailman/listinfo/core>=20
_______________________________________________
core mailing list
core@ietf.org <mailto:core@ietf.org>=20
https://www.ietf.org/mailman/listinfo/core =
<https://www.ietf.org/mailman/listinfo/core>=20



______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
_________________________________________________________________________=
____________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core


------_=_NextPart_002_01CAFE5E.8144BB5E
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:x=3D"urn:schemas-microsoft-com:office:excel" =
xmlns:p=3D"urn:schemas-microsoft-com:office:powerpoint" =
xmlns:a=3D"urn:schemas-microsoft-com:office:access" =
xmlns:dt=3D"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" =
xmlns:s=3D"uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" =
xmlns:rs=3D"urn:schemas-microsoft-com:rowset" xmlns:z=3D"#RowsetSchema" =
xmlns:b=3D"urn:schemas-microsoft-com:office:publisher" =
xmlns:ss=3D"urn:schemas-microsoft-com:office:spreadsheet" =
xmlns:c=3D"urn:schemas-microsoft-com:office:component:spreadsheet" =
xmlns:odc=3D"urn:schemas-microsoft-com:office:odc" =
xmlns:oa=3D"urn:schemas-microsoft-com:office:activation" =
xmlns:html=3D"http://www.w3.org/TR/REC-html40" =
xmlns:q=3D"http://schemas.xmlsoap.org/soap/envelope/" =
xmlns:rtc=3D"http://microsoft.com/officenet/conferencing" =
xmlns:D=3D"DAV:" xmlns:Repl=3D"http://schemas.microsoft.com/repl/" =
xmlns:mt=3D"http://schemas.microsoft.com/sharepoint/soap/meetings/" =
xmlns:x2=3D"http://schemas.microsoft.com/office/excel/2003/xml" =
xmlns:ppda=3D"http://www.passport.com/NameSpace.xsd" =
xmlns:ois=3D"http://schemas.microsoft.com/sharepoint/soap/ois/" =
xmlns:dir=3D"http://schemas.microsoft.com/sharepoint/soap/directory/" =
xmlns:ds=3D"http://www.w3.org/2000/09/xmldsig#" =
xmlns:dsp=3D"http://schemas.microsoft.com/sharepoint/dsp" =
xmlns:udc=3D"http://schemas.microsoft.com/data/udc" =
xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema" =
xmlns:sub=3D"http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/"=
 xmlns:ec=3D"http://www.w3.org/2001/04/xmlenc#" =
xmlns:sp=3D"http://schemas.microsoft.com/sharepoint/" =
xmlns:sps=3D"http://schemas.microsoft.com/sharepoint/soap/" =
xmlns:xsi=3D"http://www.w3.org/2001/XMLSchema-instance" =
xmlns:udcs=3D"http://schemas.microsoft.com/data/udc/soap" =
xmlns:udcxf=3D"http://schemas.microsoft.com/data/udc/xmlfile" =
xmlns:udcp2p=3D"http://schemas.microsoft.com/data/udc/parttopart" =
xmlns:wf=3D"http://schemas.microsoft.com/sharepoint/soap/workflow/" =
xmlns:dsss=3D"http://schemas.microsoft.com/office/2006/digsig-setup" =
xmlns:dssi=3D"http://schemas.microsoft.com/office/2006/digsig" =
xmlns:mdssi=3D"http://schemas.openxmlformats.org/package/2006/digital-sig=
nature" =
xmlns:mver=3D"http://schemas.openxmlformats.org/markup-compatibility/2006=
" xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns:mrels=3D"http://schemas.openxmlformats.org/package/2006/relationshi=
ps" xmlns:spwp=3D"http://microsoft.com/sharepoint/webpartpages" =
xmlns:ex12t=3D"http://schemas.microsoft.com/exchange/services/2006/types"=
 =
xmlns:ex12m=3D"http://schemas.microsoft.com/exchange/services/2006/messag=
es" =
xmlns:pptsl=3D"http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/=
" =
xmlns:spsl=3D"http://microsoft.com/webservices/SharePointPortalServer/Pub=
lishedLinksService" xmlns:Z=3D"urn:schemas-microsoft-com:" =
xmlns:st=3D"&#1;" xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<meta name=3DGenerator content=3D"Microsoft Word 12 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:Verdana;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:"Courier Ne\000D\000Aw";
	panose-1:0 0 0 0 0 0 0 0 0 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p
	{mso-style-priority:99;
	mso-margin-top-alt:auto;
	margin-right:0cm;
	mso-margin-bottom-alt:auto;
	margin-left:0cm;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";}
tt
	{mso-style-priority:99;
	font-family:"Courier New";}
span.EmailStyle19
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page Section1
	{size:612.0pt 792.0pt;
	margin:70.85pt 2.0cm 2.0cm 2.0cm;}
div.Section1
	{page:Section1;}
 /* List Definitions */
 ol
	{margin-bottom:0cm;}
ul
	{margin-bottom:0cm;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body bgcolor=3Dwhite lang=3DEN-US link=3Dblue vlink=3Dpurple>

<div class=3DSection1>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Hello,<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>with this flavor, the SUBSCRIBE may be replaced by a =
simple POST.
So no needs to have an explicit SUBSCRIBE method.<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>If we want support a more oriented peer-to-peer =
transaction on
CoAP, it looks to me both SUB and NOTIFY should be treated as =
messages.<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Adriano<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div>

<div style=3D'border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt =
0cm 0cm 0cm'>

<p class=3DMsoNormal><b><span =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span>=
</b><span
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
matthieu.vial@fr.non.schneider-electric.com
[mailto:matthieu.vial@fr.non.schneider-electric.com] <br>
<b>Sent:</b> venerd=EC 28 maggio 2010 13.52<br>
<b>To:</b> Adriano Pezzuto (apezzuto)<br>
<b>Cc:</b> core; core-bounces@ietf.org; robert.cragie@gridmerge.com<br>
<b>Subject:</b> Re: [core] Subscribe/Notify for =
CoAP<o:p></o:p></span></p>

</div>

</div>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<p style=3D'margin-bottom:12.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Calibri","sans-serif";
color:#1F497D'>&gt; So strictly speaking, both NOTIFY and SUBSCRIBE are =
message
types not &nbsp;methods!</span><br>
<br>
SUBSCRIBE can be just an asynchronous GET on update then I think it is a =
method
and NOTIFY is an asynchronous response so a message.<br>
But if we want to have selective notifications when a resource is =
created,
updated or deleted then I think you're right NOTIFY and SUBSCRIBE are =
messages.<br>
<br>
Does that make sense ?<br>
<br>
Matthieu<br>
<br>
<img width=3D16 height=3D16 id=3D"_x0000_i1025"
src=3D"cid:image001.gif@01CAFE6E.92D2D9F0"
alt=3D"Inactive hide details for &quot;Adriano Pezzuto (apezzuto)&quot; =
&lt;apezzuto@cisco.com&gt;">&quot;Adriano
Pezzuto (apezzuto)&quot; &lt;apezzuto@cisco.com&gt;<br>
<br>
<br>
<br>
<o:p></o:p></p>

<table class=3DMsoNormalTable border=3D0 cellspacing=3D0 cellpadding=3D0 =
width=3D"100%"
 style=3D'width:100.0%'>
 <tr>
  <td width=3D"40%" valign=3Dtop style=3D'width:40.0%;padding:0cm 0cm =
0cm 0cm'>
  <p class=3DMsoNormal style=3D'margin-left:144.0pt'><b><span =
style=3D'font-size:
  10.0pt'>&quot;Adriano Pezzuto (apezzuto)&quot; =
&lt;apezzuto@cisco.com&gt;</span></b><span
  style=3D'font-size:10.0pt'> </span><br>
  <span style=3D'font-size:10.0pt'>Envoy=E9 par : =
core-bounces@ietf.org</span> <o:p></o:p></p>
  <p style=3D'margin-left:144.0pt'><span =
style=3D'font-size:10.0pt'>28/05/2010
  12:50</span><o:p></o:p></p>
  </td>
  <td width=3D"60%" valign=3Dtop style=3D'width:60.0%;padding:0cm 0cm =
0cm 0cm'>
  <table class=3DMsoNormalTable border=3D0 cellspacing=3D0 =
cellpadding=3D0 width=3D"100%"
   style=3D'width:100.0%'>
   <tr>
    <td width=3D"1%" valign=3Dtop style=3D'width:1.0%;padding:0cm 0cm =
0cm 0cm'>
    <p class=3DMsoNormal><img width=3D58 height=3D1 id=3D"_x0000_i1026"
    src=3D"cid:image003.png@01CAFE6E.92D2D9F0"><o:p></o:p></p>
    <p class=3DMsoNormal align=3Dright style=3D'text-align:right'><span
    style=3D'font-size:10.0pt'>A</span><o:p></o:p></p>
    </td>
    <td width=3D"100%" valign=3Dtop style=3D'width:100.0%;padding:0cm =
0cm 0cm 0cm'>
    <p class=3DMsoNormal><img width=3D1 height=3D1 id=3D"_x0000_i1027"
    src=3D"cid:image004.png@01CAFE6E.92D2D9F0"><br>
    <span =
style=3D'font-size:10.0pt'>&lt;robert.cragie@gridmerge.com&gt;</span><o:p=
></o:p></p>
    </td>
   </tr>
   <tr>
    <td width=3D"1%" valign=3Dtop style=3D'width:1.0%;padding:0cm 0cm =
0cm 0cm'>
    <p class=3DMsoNormal><img width=3D58 height=3D1 id=3D"_x0000_i1028"
    src=3D"cid:image003.png@01CAFE6E.92D2D9F0"><o:p></o:p></p>
    <p class=3DMsoNormal align=3Dright style=3D'text-align:right'><span
    style=3D'font-size:10.0pt'>cc</span><o:p></o:p></p>
    </td>
    <td width=3D"100%" valign=3Dtop style=3D'width:100.0%;padding:0cm =
0cm 0cm 0cm'>
    <p class=3DMsoNormal><img width=3D1 height=3D1 id=3D"_x0000_i1029"
    src=3D"cid:image004.png@01CAFE6E.92D2D9F0"><br>
    <span style=3D'font-size:10.0pt'>core =
&lt;core@ietf.org&gt;</span><o:p></o:p></p>
    </td>
   </tr>
   <tr>
    <td width=3D"1%" valign=3Dtop style=3D'width:1.0%;padding:0cm 0cm =
0cm 0cm'>
    <p class=3DMsoNormal><img width=3D58 height=3D1 id=3D"_x0000_i1030"
    src=3D"cid:image003.png@01CAFE6E.92D2D9F0"><o:p></o:p></p>
    <p class=3DMsoNormal align=3Dright style=3D'text-align:right'><span
    style=3D'font-size:10.0pt'>Objet</span><o:p></o:p></p>
    </td>
    <td width=3D"100%" valign=3Dtop style=3D'width:100.0%;padding:0cm =
0cm 0cm 0cm'>
    <p class=3DMsoNormal><img width=3D1 height=3D1 id=3D"_x0000_i1031"
    src=3D"cid:image004.png@01CAFE6E.92D2D9F0"><br>
    <span style=3D'font-size:10.0pt'>Re: [core] Subscribe/Notify for =
CoAP</span><o:p></o:p></p>
    </td>
   </tr>
  </table>
  <p class=3DMsoNormal><span =
style=3D'display:none'><o:p>&nbsp;</o:p></span></p>
  <table class=3DMsoNormalTable border=3D0 cellspacing=3D0 =
cellpadding=3D0>
   <tr>
    <td width=3D58 valign=3Dtop style=3D'width:43.5pt;padding:0cm 0cm =
0cm 0cm'>
    <p class=3DMsoNormal><img width=3D1 height=3D1 id=3D"_x0000_i1032"
    src=3D"cid:image004.png@01CAFE6E.92D2D9F0"><o:p></o:p></p>
    </td>
    <td width=3D336 valign=3Dtop style=3D'width:252.0pt;padding:0cm 0cm =
0cm 0cm'>
    <p class=3DMsoNormal><img width=3D1 height=3D1 id=3D"_x0000_i1033"
    src=3D"cid:image004.png@01CAFE6E.92D2D9F0"><o:p></o:p></p>
    </td>
   </tr>
  </table>
  </td>
 </tr>
</table>

<p><br>
<span =
style=3D'font-size:13.5pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>Hi
Roberto,</span><br>
<span =
style=3D'font-size:13.5pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>I
understand your point and personally agree on M2M is quite different =
from web
page model. On the architectural RESTful style, the method information =
tells
the server what to do with data kept in the URI information.</span><br>
<br>
<span =
style=3D'font-size:13.5pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>So
strictly speaking, both NOTIFY and SUBSCRIBE are message types not
&nbsp;methods!</span><br>
<br>
<span =
style=3D'font-size:13.5pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>Adriano
</span><br>
<br>
<b><span =
style=3D'font-size:13.5pt;font-family:"Tahoma","sans-serif"'>From:</span>=
</b><span
style=3D'font-size:13.5pt;font-family:"Tahoma","sans-serif"'> Robert =
Cragie [<a
href=3D"mailto:robert.cragie@gridmerge.com">mailto:robert.cragie@gridmerg=
e.com</a>]
<b><br>
Sent:</b> venerd=EC 28 maggio 2010 11.53<b><br>
To:</b> Adriano Pezzuto (apezzuto)<b><br>
Cc:</b> Paul Duffy (paduffy); Zach Shelby; core<b><br>
Subject:</b> Re: [core] Subscribe/Notify for CoAP</span><br>
<br>
<span style=3D'font-size:13.5pt'>I think the point here is that there =
are two
levels we are considering.<br>
<br>
At the lowest (foundation) level, there are the transaction messages as
described below. This provides a flexible mechanism for the application =
with
regard to synchronicity and threading. This is important for the types =
of
devices CoAP is being aimed at.<br>
<br>
Above that, the methods can be used according to the architectural =
style. So in
this case, it is RESTful (COnstrained Restful Environments), which will
naturally limit the number of methods and how transactions occur.<br>
<br>
The actual architecture using a combination of the methods and messages =
also
depends on what is required at the application layer. Consider a typical =
client
which wants to subscribe to a resource. That client controls the feed of =
data
but needs a component which is capable of handling (possibly buffering) =
the
data it receives through notifications. Is this a separate server? Or =
would we
want to consider it part of an enhanced client model which is able to =
process
feeds of data? These are the sort of models which have led to the myriad =
of
solutions (GENA, Webhooks, long polling, pubsubhubbub, RESTMS etc.) =
based
around HTTP which are all essentially ingenious ways of getting around =
the
limitations imposed by HTTP and how it is processed for anything which =
deviates
from the classic web page access model.<br>
<br>
I think the aim of CoAP should be clean from the word go with regard to
supporting these more peer-to-peer transactions, where the client can =
exist on
either entity and both entities can feed data to each other; typical in =
M2M
applications.<br>
<br>
Robert</span> <o:p></o:p></p>

<p><span =
style=3D'font-size:13.5pt;font-family:"Verdana","sans-serif"'>Robert
Cragie (Pacific Gas &amp; Electric)</span> <o:p></o:p></p>

<p><span =
style=3D'font-size:13.5pt;font-family:"Verdana","sans-serif"'>Gridmerge
Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 1924 910888<br>
+1 415 513 0064<u><span style=3D'color:blue'><br>
</span></u></span><a href=3D"http://www.gridmerge.com/"><span =
style=3D'font-size:
13.5pt;font-family:"Verdana","sans-serif"'>http://www.gridmerge.com</span=
></a><br>
<span style=3D'font-size:13.5pt'><br>
On 27/05/2010 7:08 PM, Adriano Pezzuto (apezzuto) wrote: </span><br>
<span =
style=3D'font-size:13.5pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>Hi
Robert,</span><br>
<br>
<span =
style=3D'font-size:13.5pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>in
my personal opinion, the option 1a) brings some sort of ambiguity to =
CoAP
specs.</span><br>
<br>
<span =
style=3D'font-size:13.5pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>My
be my understatement of new CoAP specs is not so deep, but now we have 5
methods and 3 message types: request, response and notify. Which methods =
are
allowed with which messages types?</span><br>
<span =
style=3D'font-size:13.5pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>I
suppose you have to use PUT/POST method with notify message for asynch =
data
notification. How to make a subscribe? I suppose you would use a =
SUBSCRIBE
method with request/response message or SUBSCRIBE with notify message? =
Also
what about POST/DELETE methods in a notify message? They not make any =
sense..</span><br>
<br>
<span =
style=3D'font-size:13.5pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>I
think the choice is between: option 1) -&gt; only CRUD methods and =
option 1b)
-&gt; CRUD + SUB/NOTIFY methods, keeping in mind cost/benefits of both
solutions.</span><br>
<br>
<span =
style=3D'font-size:13.5pt;font-family:"Calibri","sans-serif";color:#1F497=
D'>Adriano</span><br>
<br>
<b><span =
style=3D'font-size:13.5pt;font-family:"Tahoma","sans-serif"'>From:</span>=
</b><span
style=3D'font-size:13.5pt;font-family:"Tahoma","sans-serif"'> Robert =
Cragie [</span><a
href=3D"mailto:robert.cragie@gridmerge.com"><span =
style=3D'font-size:13.5pt;
font-family:"Tahoma","sans-serif"'>mailto:robert.cragie@gridmerge.com</sp=
an></a><span
style=3D'font-size:13.5pt;font-family:"Tahoma","sans-serif"'>] <b><br>
Sent:</b> mercoled=EC 26 maggio 2010 20.09<b><br>
To:</b> Adriano Pezzuto (apezzuto)<b><br>
Cc:</b> Paul Duffy (paduffy); Zach Shelby; core<b><br>
Subject:</b> Re: [core] Subscribe/Notify for CoAP</span><br>
<br>
<span style=3D'font-size:13.5pt'>Hi Adrian,<br>
<br>
I would also prefer to keep the protocol in CoAP asynchronous. You can =
always
map an asynchronous protocol to a synchronous one but, as we see in =
HTTP, it
always ends up as a kludge to do it the other way round. The efforts =
which have
been gone to to make HTTP quasi-asynchronous via all the schemes =
mentioned
below and many more besides (all non-interoperable of course) is =
testament to
how important this is for M2M communication.<br>
<br>
So, back to Zach's list, I favor 1a) for the following reasons:<br>
<br>
Foundation level of messages:</span> <o:p></o:p></p>

<p class=3DMsoNormal style=3D'margin-left:36.0pt'>1. <span =
style=3D'font-size:13.5pt'>request/response
can be asynchronous or synchronous messages (as there is a transaction =
ID in
there)</span><br>
2. <span style=3D'font-size:13.5pt'>notify is an asynchronous =
message</span><o:p></o:p></p>

<p class=3DMsoNormal><span style=3D'font-size:13.5pt'>Derived =
methods:<br>
<br>
I think it makes sense to add a pub/sub model as a useful mechanism for =
M2M.<br>
<br>
So, looking at it the other way round: It will be entirely possible to
translate whatever is currently built on HTTP to CoAP based on the =
above, with
all its restrictions regarding synchronous and client/server =
transactions. What
may be harder is to translate directly is a CoAP-based application to =
HTTP. So
I guess the question is: Do we want to be hamstrung to synchronous
client/server transactions as dictated by HTTP and provide a direct =
mapping to
HTTP, then have to come up with similar kludges for asynchronous =
peer-to-peer
transactions as has been done in numerous ways for HTTP, or do we want =
to
define the protocol cleanly to start with and accept that some sort of
transaction relaying/conversion would have to take place at a mapping =
node?<br>
<br>
Robert</span> <o:p></o:p></p>

<p><span =
style=3D'font-size:13.5pt;font-family:"Verdana","sans-serif"'>Robert
Cragie (Pacific Gas &amp; Electric)</span> <o:p></o:p></p>

<p><span =
style=3D'font-size:13.5pt;font-family:"Verdana","sans-serif"'>Gridmerge
Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 1924 910888<br>
+1 415 513 0064<u><span style=3D'color:blue'><br>
</span></u></span><a href=3D"http://www.gridmerge.com/"><span =
style=3D'font-size:
13.5pt;font-family:"Verdana","sans-serif"'>http://www.gridmerge.com</span=
></a><br>
<span style=3D'font-size:13.5pt'><br>
On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote: </span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>Hi,</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>it looks to =
me that
CoAP should use an explicit sub/notify mechanism since this is the core =
of the
machine-to-machine interaction model.</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>HTTP suffers =
of this
lack and we have seen a plethora of solutions to give an asynch taste to =
it.
Webhooks and websockets are only the lasts of the list.</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>As someone =
has already
pointed out on this list, it is theoretically possible to describe =
sub/notify
using only CRUD methods but it looks a little bit tricky and =
verbose.</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Now we have a =
chance
to build from scratch a new protocol with and I think using explicit =
sub/notify
methods with a clear and well defined semantic is the best option. It is =
easily
understanding from every developer and will prevent to build other fanny =
solutions
on top of the CoAP. HTTP does not have this well defined semantic and =
(for
hundreds of other reasons also) it is not used as wide protocol for
machine-to-machine communication.</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>CoAP - as =
binary
protocol - and with an explicit asynch model has a chance to be a really =
wide
protocol for M2M communication not only for constrained =
environments.</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>my 2 =
cents</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>- =
adriano</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>-----Original
Message-----</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>From: =
</span><a
href=3D"mailto:core-bounces@ietf.org"><span =
style=3D'font-size:13.5pt;font-family:
"Courier New"'>core-bounces@ietf.org</span></a><span =
style=3D'font-size:13.5pt;
font-family:"Courier New"'> [</span><a =
href=3D"mailto:core-bounces@ietf.org"><span
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>mailto:core-bounces@ietf.org</span></a><span
style=3D'font-size:13.5pt;font-family:"Courier New"'>] On Behalf Of Paul =
Duffy
(paduffy)</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Sent: =
mercoled=EC 26
maggio 2010 0.47</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>To: Zach =
Shelby</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Cc: =
core</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Subject: Re: =
[core]
Subscribe/Notify for CoAP</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>On 5/25/2010 =
6:41 PM,
Zach Shelby wrote:</span><o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:72.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>Hi,</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>On May 26, =
2010, at
12:23 AM, Charles Palmer wrote:</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:144.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>Hi
folks</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>It occurs to =
me that
CoRE should be keeping a close eye on ZigBee SE2.0 work, so that it is =
as easy
as possible for ZigBee SE to use CoRE when ready. That suggests to me =
that we
should align with their subscribe/notify process.</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:72.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>I
am not sure I understand that. I mean, ZigBee SE2.0 is defining an =
application
specific subscribe/notify mechanism for that purpose so far for HTTP. =
This uses
standard HTTP methods and some custom payload and REST interfaces. CoAP =
Req/Res
is already totally compatible with SE2.0 in that respect, so alignment =
is
already OK there. Nothing stopping someone from using SE2.0 over =
CoAP.</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Specifying a =
native
susbcription/notify into CoAP is another matter. We can't adopt a =
solution
specific to one application as that won't solve the problems of other
applications nor general HTTP mapping at all (probably would make it =
worse). It
seems that for the near future there will be a bunch of HTTP push =
mechanisms in
use without any clear standard appearing - or am I wrong =
there?</span><o:p></o:p></p>

<p class=3DMsoNormal style=3D'margin-bottom:12.0pt'><br>
<br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>If COAP =
extends HTTP
semantics with new subscription methods, it will </span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>not be =
possible to
easily interchange HTTP/COAP, and translation </span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>gateways will =
become
more complex to implement.</span><br>
<br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:72.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>Zach</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:144.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>Regards
- Charles</span><br>
<br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>-----Original =
Message-----</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>From: =
</span><a
href=3D"mailto:core-bounces@ietf.org"><span =
style=3D'font-size:13.5pt;font-family:
"Courier New"'>core-bounces@ietf.org</span></a><span =
style=3D'font-size:13.5pt;
font-family:"Courier New"'> [</span><a =
href=3D"mailto:core-bounces@ietf.org"><span
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>mailto:core-bounces@ietf.org</span></a><span
style=3D'font-size:13.5pt;font-family:"Courier New"'>] On Behalf Of Paul =
Duffy</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Sent: 25 May =
2010
03:48</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>To: Zach =
Shelby</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Cc: =
core</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Subject: Re: =
[core]
Subscribe/Notify for CoAP</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Recommend =
something
like #2, primarily to avoid introducing non HTTP</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>method =
semantics,
simplifying HTTP/COAP translation.gateways, etc.</span><br>
<br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>On 5/24/2010 =
11:49 AM,
Zach Shelby wrote:</span><o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:216.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>(thread
renamed)</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>We have two =
different
paths with regard to a subscribe/notify mechanism for CoAP:</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>1. Use =
specific
Subscription and Notify mechanisms for CoAP as HTTP really does not =
include
this concept.</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>1a) Notify as =
a
message and SUBSCRIBE as a method. This is currently used in =
coap-01.</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>1b) NOTIFY =
and
SUBSCRIBE as methods. This was used in coap-00, but we had a good list
discussion about this leading to a. In practice it doesn't make a big
difference if notification is a message or method.</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>2. Use an =
HTTP
specific framework such as Webhooks, the ZigBee SE2.0 proposal or =
GENA.</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>So far we =
have focused
on 1 in the WG, and every now and again 2 comes up. At least I am not =
convinced
that we need to suffer the drawbacks of HTTP here. Anyways 2 does not =
help our
mapping to HTTP in reality very much as there is no standard way of =
doing this
over HTTP. Thus a CoAP-HTTP proxy may end up anyways translating between
multiple HTTP frameworks depending on the application. So instead of =
doing a
CoAP Notify/Subscribe to Webhooks mapping, you will could end up having =
to do a
CoAP Webhooks to HTTP GENA mapping.</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:144.0pt'><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>I don't =
understand
this last para. If CoAP sticks to the semantics of</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>the current =
HTTP
methods, would this not offer a fairly straightforward</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>translation =
to/from
HTTP?</span><br>
<br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:288.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>From
what I have heard so far 1 still seems like a wise choice, although I =
need to
look at Webhooks more deeply. In reality many applications specify their =
own
way of doing a push interface using REST methods and specific payloads =
(ZigBee
SE2.0 is such an example). That is just fine, and might be used instead =
of a
specific CoAP notify/subscribe in that case. So 1 doesn't prevent the
application using its own mechanism, it just provides a native way for =
doing
push.</span><o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:216.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>What
do people think?</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>Zach</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>On May 17, =
2010, at
6:44 PM, </span><a =
href=3D"mailto:matthieu.vial@fr.non.schneider-electric.com"><span
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>matthieu.vial@fr.non.schneider-electric.com</span></a><span
style=3D'font-size:13.5pt;font-family:"Courier New"'> wrote:</span><br>
<br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:288.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>Hi,</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>My comments =
about the
subscribe/notify mechanism of Zigbee IP.</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>Pros:</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>- Derived =
from the
webhooks concept</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>- If used by =
CORE it will
be easier to map to HTTP because it uses only CRUD verbs.</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>- The =
subscription
message is extendable and could support advanced options (delays, =
increment,
...)</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>- Only one =
listening
port whatever the transport binding is.</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>Cons:</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>- No =
interoperability
without well known URIs and a well defined subscription message format =
(Not
sure CoAP draft is the right place to specify this).</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>- XML/EXI is =
too
complex to be the required format for the default =
subscription/notification
mechanism.</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>- The =
notification
should not require a subsequent GET to retrieve the content.</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>- Subresource
subscription is redundant.</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Hope this =
could help,</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>Matthieu</span><br>
<br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>&lt;graycol.gif&gt;&quot;Charles
Palmer&quot;</span><a href=3D"mailto:charles.palmer@onzo.com"><span
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>&lt;charles.palmer@onzo.com&gt;</span></a><br>
<br>
<br>
<br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>&quot;Charles
Palmer&quot;</span><a href=3D"mailto:charles.palmer@onzo.com"><span
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>&lt;charles.palmer@onzo.com&gt;</span></a><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Envoy=E9 par =
: </span><a
href=3D"mailto:core-bounces@ietf.org"><span =
style=3D'font-size:13.5pt;font-family:
"Courier New"'>core-bounces@ietf.org</span></a><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>15/05/2010 =
14:06</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>&lt;ecblank.gif&gt;</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>A</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>&lt;ecblank.gif&gt;</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>&quot;core&quot;</span><a
href=3D"mailto:core@ietf.org"><span =
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>&lt;core@ietf.org&gt;</span></a><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>&lt;ecblank.gif&gt;</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>cc</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>&lt;ecblank.gif&gt;</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>&lt;ecblank.gif&gt;</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>Objet</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>&lt;ecblank.gif&gt;</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Re: [core] =
Selecting a
WG document for CoAP</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>&lt;ecblank.gif&gt;
&lt;ecblank.gif&gt;</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Dear =
all</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Those =
interested in
the subscribe/notify discussion might like to look</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>at the draft =
Smart
Energy Profile 2.0 Application Protocol</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>Specification. It is
available here:</span><br>
<a
href=3D"http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20Pu=
blicApp"><span
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20Publ=
icApp</span></a><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>licationProfile.aspx</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>It manages =
subscribe/notify
by using POST. This seems to remove the need</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>for SUBSCRIBE =
and
notify.</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>&quot;Imagine =
a host
A, which exposes a resource at http{s}://A/resource and</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>a second host =
B, which
wishes to learn of changes to this resource. To</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>facilitate a
subscription/ notification mechanism, A would expose a</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>resource
http{s}://A/sub and B would expose a resource =
http{s}://B/ntfy.</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>To subscribe =
to
notifications regarding http{s}://A/resource, B would</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>send a POST =
to the
address http{s}://A/sub/B containing the URI of the</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>resource of =
interest
(http{s}://A/resource) and the URI of B's</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>notification =
resource
(http{s}://B/ntfy). Following this subscription</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>step, should =
A wish to
notify B of a change to the resource addressed at</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>http{s}://A/resource,
A would send a POST to the address</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>http{s}://B/ntfy
containing the URI of the resource changed</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>(http{s}://A/resource)
and the URI of A's subscription resource</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>(http{s}://A/sub/B),
should A wish to change its subscription. The host</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>B can then =
query the
resource (or not) at its leisure.&quot;</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Sleepy nodes =
are not
allowed to subscribe, and must poll.</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Regards - =
Charles
Palmer</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>-----Original
Message-----</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>From: =
</span><a
href=3D"mailto:core-bounces@ietf.org"><span =
style=3D'font-size:13.5pt;font-family:
"Courier New"'>core-bounces@ietf.org</span></a><span =
style=3D'font-size:13.5pt;
font-family:"Courier New"'> [</span><a =
href=3D"mailto:core-bounces@ietf.org"><span
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>mailto:core-bounces@ietf.org</span></a><span
style=3D'font-size:13.5pt;font-family:"Courier New"'>] On Behalf =
Of</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Angelo P. =
Castellani</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Sent: 14 May =
2010
13:14</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>To: Zach =
Shelby</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Cc: =
core</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Subject: Re: =
[core]
Selecting a WG document for CoAP</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>Zach,</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>thanks for =
the
comments, but please refer to my most recent e-mail for</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>a more =
specific list
of technical issues I'm pointing to.</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>I want to do =
only a
little integration to what I've written there.</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>In my very =
personal
opinion, to maximize adherence with the REST model</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>and minimize
implementation effort SUBSCRIBE and NOTIFY should be</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>mapped to =
methods (as
discussed many times together...).</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Uniform =
interface
principle (Fielding PhD dissertation Section 5.1.5,</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>&quot;The =
central
feature that distinguishes the REST architectural style</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>[...]&quot;) =
states
that to simplify the software architecture, resource</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>interfaces/interfaces
should be as general as possible.</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>I agree with =
this
principle in this specific case, mainly because</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>handling a =
special
message type for notify leads node software design</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>to a more =
complex
architecture.</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>The reason is =
that
this new message type requires special handling and</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>introduces a
complexity in the software modularization.</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>Best,</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>Angelo</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>On Fri, May =
14, 2010
at 13:06, Zach Shelby</span><a href=3D"mailto:zach@sensinode.com"><span
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>&lt;zach@sensinode.com&gt;</span></a><span
style=3D'font-size:13.5pt;font-family:"Courier New"'> wrote:</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:360.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>Hi
Angelo,</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>On May 13, =
2010, at
14:24 , Angelo P. Castellani wrote:</span><br>
<br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:432.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>Dear
C. Bormann, all,</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>before =
deciding for
the final direction, I've the following</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>observations =
about
draft-shelby-core-coap-01</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>While I =
mostly share
Zach's view of the protocol approach, and</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>appreciate =
many
aspects of the proposal, there are in my opinion</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:288.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>still</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:432.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>some
open issues that need to be at least discussed before the</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:288.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>current</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:432.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>document
can be selected.</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:360.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>Of
course there are plenty of open issues. Remember that working =
group</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:288.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>documents
still undertake as much change and improvement as the WG</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>wants, so by =
no means
is coap-01 set in stone. I would expect at least</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>5-10 more =
revisions
still along the way. Already several of your ideas</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>have been =
integrated
into coap-01, and several more are under</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>consideration, so it
is coming along. Patience ;-)</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal style=3D'margin-left:360.0pt'><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:432.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>In
particular, I would like to highlight the following:</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>a) As it is =
now, it is
not possible to have a straightforward</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>translation =
of HTTP
-&gt; CoAP and viceversa: see</span><br>
<a =
href=3D"http://www.ietf.org/mail-archive/web/core/current/msg00133.html">=
<span
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>http://www.ietf.org/mail-archive/web/core/current/msg00133.html</sp=
an></a><span
style=3D'font-size:13.5pt;font-family:"Courier New"'> (this</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>impacts the
scalability of the web service model too)</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:360.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>In
coap-01 the Method names are now identical to HTTP methods. =
The</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:288.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>Req/Res
interaction is a direct translation. The URI hierarchy is</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>compatible, =
and the
URI binary code format we are still working on</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>obviously. =
The only
thing that takes some state to translate is</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>Subscribe/Notify. But
note, Subscribe/Notify takes some state no matter</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>how you do =
it, even
with HTTP-HTTP there is no clean and easy way to</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>handle =
subscriptions.</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal style=3D'margin-left:360.0pt'><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:432.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>b)
Moreover, CoAP's implementation is not as simple as it should =
be.</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>I've =
investigated the
implementation and some design choices (as</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Options) are =
leading
to very high program complexity (ROM) on a</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>MSP430-based =
device.</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:360.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>This
we can definitely improve, and already made several =
optimizations</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:288.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>from
-00 to -01. Here I need some very concrete proposals though. =
Also</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>remember that =
many
things are optional, for example subscribe/notify is</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>not required =
if you
don't need it.</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal style=3D'margin-left:360.0pt'><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:432.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>c)
Finally when comparing HTTP message size with CoAP message =
size,</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>the resulting
compression isn't as good as you may expect.</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>Example:</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>HTTP: GET
/sensor/temp.xml HTTP/1.0 =3D 32 B</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>CoAP: 24 B =
with
options parsing procedure requiring an added</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>implementation
complexity</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:360.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>Right,
that is not how it will work in practice. Working with a real</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:288.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>HTTP
server that HTTP header will be more complex, and on the CoAP =
side</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>you would =
chose
shorter URLs. The biggest improvement possible here is</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>from using =
binary
coded URLs of course. We need to look at a wider range</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>of =
interactions and
real HTTP headers as well to check that we are</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>efficient =
enough.</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal style=3D'margin-left:360.0pt'><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:432.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>Addressing
all these points potentially leads to major technical</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>modifications
(especially point a) on the current draft, hence it is</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>appropriate =
in my
opinion to discuss these points before making the</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>final =
decision.</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:360.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>I
am not sure what else you have in mind for a). If we just =
forget</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:288.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>about
Subscribe/Notify then you are good to go. But then you are =
also</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>not =
fulfilling the
charter or the industry needs in that respect.</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:360.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>Thanks,</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>Zach</span><br>
<br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:432.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>Best
regards,</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Angelo P. =
Castellani</span><br>
<br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>On Mon, May =
10, 2010
at 18:51, Carsten Bormann</span><a href=3D"mailto:cabo@tzi.org"><span
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>&lt;cabo@tzi.org&gt;</span></a><span
style=3D'font-size:13.5pt;font-family:"Courier New"'> wrote:</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:504.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>The
CORE WG has a milestone to select a WG document for CoAP in</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:288.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>April:</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:504.0pt'><a
href=3D"http://datatracker.ietf.org/wg/core/charter/"><span =
style=3D'font-size:
13.5pt;font-family:"Courier =
Ne&#13;&#10;w","serif"'>http://datatracker.ietf.org/wg/core/charter/</spa=
n></a><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>...</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Apr 2010 =
Select WG
document for basis of the CoAP protocol</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Of the =
various
documents that have been contributed,</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:288.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>draft-shelby-core-coap
has significant discussion, as well as the</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>largest =
number of
updates (including a previous version that was still</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>called =
-6lowapp-coap).</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:504.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>Today,
another updated version of that draft was announced. See</span><br>
<a =
href=3D"http://www.ietf.org/mail-archive/web/core/current/msg00138.html">=
<span
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>http://www.ietf.org/mail-archive/web/core/current/msg00138.html</sp=
an></a><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>for the =
announcement
and</span><br>
<a href=3D"http://tools.ietf.org/html/draft-shelby-core-coap-01"><span
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>http://tools.ietf.org/html/draft-shelby-core-coap-01</span></a><br>=

<span style=3D'font-size:13.5pt;font-family:"Courier New"'>for the draft =
itself.</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>However, as =
the
authors say, there are still significant TODOs.</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Are we in a =
state yet
where we can say whether this is the right</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:288.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>direction
for the WG to take?</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:504.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>If
yes, is it the right direction? Should we adopt it as a WG</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:288.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>document?</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:504.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>If
you don't think we can say yet, is there a set of technical</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:288.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>decisions
you would like the authors to take with priority?</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:504.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>Note
that once a document has become a WG document, the authors =
act</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:288.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>as
editors for the working group, making (and usually fleshing out =
the</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>details of) =
any change
that the WG decides it needs.</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:504.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>If
you think we can still improve the draft, this is not an =
obstacle</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:288.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>to
making it a WG document.</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:504.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>But
of course we shouldn't do that if we intend to reverse its</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:288.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>fundamental
technical direction.</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:504.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>In
order to stay roughly in sync with our milestones, we should</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:288.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>reach
at a decision on how to go forward this week.</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:504.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>Gruesse,
Carsten</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>_______________________________________________</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>core mailing =
list</span><br>
<a href=3D"mailto:core@ietf.org"><span =
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>core@ietf.org</span></a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/core"><span =
style=3D'font-size:
13.5pt;font-family:"Courier =
New"'>https://www.ietf.org/mailman/listinfo/core</span></a><br>
<br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:432.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>_______________________________________________</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>core mailing =
list</span><br>
<a href=3D"mailto:core@ietf.org"><span =
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>core@ietf.org</span></a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/core"><span =
style=3D'font-size:
13.5pt;font-family:"Courier =
New"'>https://www.ietf.org/mailman/listinfo/core</span></a><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:360.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier New"'>--</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Zach Shelby, =
Chief
Nerd, Sensinode Ltd.</span><br>
<a href=3D"http://zachshelby.org/"><span =
style=3D'font-size:13.5pt;font-family:
"Courier New"'>http://zachshelby.org</span></a><span =
style=3D'font-size:13.5pt;
font-family:"Courier New"'> - My blog &quot;On the Internet of =
Things</span><a
href=3D"http://6lowpan.net-mybook/"><span =
style=3D'font-size:13.5pt;font-family:
"Courier New"'>&quot;</span></a><br>
<a href=3D"http://6lowpan.net-mybook/"><span =
style=3D'font-size:13.5pt;font-family:
"Courier New"'>http://6lowpan.net - My book &quot;</span></a><span
style=3D'font-size:13.5pt;font-family:"Courier New"'>6LoWPAN: The =
Wireless
Embedded Internet&quot;</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Mobile: +358 =
40
7796297</span><br>
<br>
<br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:288.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>_______________________________________________</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>core mailing =
list</span><br>
<a href=3D"mailto:core@ietf.org"><span =
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>core@ietf.org</span></a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/core"><span =
style=3D'font-size:
13.5pt;font-family:"Courier =
New"'>https://www.ietf.org/mailman/listinfo/core</span></a><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>--------------------------------</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Onzo is a =
limited
company number 06097997 registered in England&amp; Wales. The</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>registered =
office is 6
Great Newport Street, London, WC2H 7JB, United Kingdom.</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>This email =
message may
contain confidential and/or privileged information, and</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>is intended =
solely for
the addressee(s). If you have received this email in</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>error, please =
notify Onzo
immediately. Unauthorised copying, disclosure or</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>distribution =
of the
material in this email is forbidden.</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>--------------------------------</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>_______________________________________________</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>core mailing =
list</span><br>
<a href=3D"mailto:core@ietf.org"><span =
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>core@ietf.org</span></a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/core"><span =
style=3D'font-size:
13.5pt;font-family:"Courier =
New"'>https://www.ietf.org/mailman/listinfo/core</span></a><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>___________________________________________________________________=
___</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>This email =
has been
scanned by the MessageLabs Email Security System.</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>___________________________________________________________________=
___</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>_______________________________________________</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>core mailing =
list</span><br>
<a href=3D"mailto:core@ietf.org"><span =
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>core@ietf.org</span></a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/core"><span =
style=3D'font-size:
13.5pt;font-family:"Courier =
New"'>https://www.ietf.org/mailman/listinfo/core</span></a><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal style=3D'margin-left:216.0pt'><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal =
style=3D'mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:144.0pt'><span =
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>_______________________________________________</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>core mailing =
list</span><br>
<a href=3D"mailto:core@ietf.org"><span =
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>core@ietf.org</span></a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/core"><span =
style=3D'font-size:
13.5pt;font-family:"Courier =
New"'>https://www.ietf.org/mailman/listinfo/core</span></a><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>--------------------------------</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>Onzo is a =
limited
company number 06097997 registered in England&amp; Wales. The</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>registered =
office is 6
Great Newport Street, London, WC2H 7JB, United Kingdom.</span><br>
<br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>This email =
message may
contain confidential and/or privileged information, and</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>is intended =
solely for
the addressee(s). If you have received this email in</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>error, please =
notify
Onzo immediately. Unauthorised copying, disclosure or</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>distribution =
of the
material in this email is forbidden.</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>--------------------------------</span><br>
<br>
<o:p></o:p></p>

<p class=3DMsoNormal style=3D'margin-left:72.0pt'><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal style=3D'margin-bottom:12.0pt'><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>_______________________________________________</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>core mailing =
list</span><br>
<a href=3D"mailto:core@ietf.org"><span =
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>core@ietf.org</span></a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/core"><span =
style=3D'font-size:
13.5pt;font-family:"Courier =
New"'>https://www.ietf.org/mailman/listinfo/core</span></a><br>
<span style=3D'font-size:13.5pt;font-family:"Courier =
New"'>_______________________________________________</span><br>
<span style=3D'font-size:13.5pt;font-family:"Courier New"'>core mailing =
list</span><br>
<a href=3D"mailto:core@ietf.org"><span =
style=3D'font-size:13.5pt;font-family:"Courier =
New"'>core@ietf.org</span></a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/core"><span =
style=3D'font-size:
13.5pt;font-family:"Courier =
New"'>https://www.ietf.org/mailman/listinfo/core</span></a><br>
<br>
<br>
<span style=3D'font-size:13.5pt'><br>
______________________________________________________________________<br=
>
This email has been scanned by the MessageLabs Email Security =
System.<br>
______________________________________________________________________</s=
pan><tt><span
style=3D'font-size:10.0pt'>______________________________________________=
_</span></tt><span
style=3D'font-size:10.0pt;font-family:"Courier New"'><br>
<tt>core mailing list</tt><br>
<tt>core@ietf.org</tt><br>
<tt><a =
href=3D"https://www.ietf.org/mailman/listinfo/core">https://www.ietf.org/=
mailman/listinfo/core</a></tt></span><o:p></o:p></p>

</div>

</body>

</html>

------_=_NextPart_002_01CAFE5E.8144BB5E--

------_=_NextPart_001_01CAFE5E.8144BB5E
Content-Type: image/gif;
	name="image001.gif"
Content-Transfer-Encoding: base64
Content-ID: <image001.gif@01CAFE6E.92D2D9F0>
Content-Description: image001.gif
Content-Location: image001.gif

R0lGODlhEAAQAKECAMzMzAAAAP///wAAACH5BAEAAAIALAAAAAAQABAAAAIXlI+py+0PopwxUbpu
ZRfKZ2zgSJbmSRYAIf4fT3B0aW1pemVkIGJ5IFVsZWFkIFNtYXJ0U2F2ZXIhAAA7

------_=_NextPart_001_01CAFE5E.8144BB5E
Content-Type: image/png;
	name="image003.png"
Content-Transfer-Encoding: base64
Content-ID: <image003.png@01CAFE6E.92D2D9F0>
Content-Description: image003.png
Content-Location: image003.png

iVBORw0KGgoAAAANSUhEUgAAADoAAAABCAMAAAC42E10AAAAAXNSR0ICQMB9xQAAAANQTFRFAAAA
p3o92gAAAAF0Uk5TAEDm2GYAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAZdEVYdFNvZnR3YXJlAE1p
Y3Jvc29mdCBPZmZpY2V/7TVxAAAADElEQVQY02NgIBsAAAA7AAFzMF3lAAAAAElFTkSuQmCC

------_=_NextPart_001_01CAFE5E.8144BB5E
Content-Type: image/png;
	name="image004.png"
Content-Transfer-Encoding: base64
Content-ID: <image004.png@01CAFE6E.92D2D9F0>
Content-Description: image004.png
Content-Location: image004.png

iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAMAAAAoyzS7AAAAAXNSR0ICQMB9xQAAAANQTFRFAAAA
p3o92gAAAAF0Uk5TAEDm2GYAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAZdEVYdFNvZnR3YXJlAE1p
Y3Jvc29mdCBPZmZpY2V/7TVxAAAACklEQVQY02NgAAAAAgABmGNs1wAAAABJRU5ErkJggg==

------_=_NextPart_001_01CAFE5E.8144BB5E--

From matthieu.vial@fr.non.schneider-electric.com  Fri May 28 05:39:52 2010
Return-Path: <matthieu.vial@fr.non.schneider-electric.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 78EEF3A6781; Fri, 28 May 2010 05:39:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.836
X-Spam-Level: *
X-Spam-Status: No, score=1.836 tagged_above=-999 required=5 tests=[AWL=0.571,  BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_12=0.6, MANGLED_TOOL=2.3, RCVD_IN_DNSWL_LOW=-1, SARE_GIF_ATTACH=1.42, TVD_FW_GRAPHIC_NAME_MID=0.543]
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 raPUvMSL1nKI; Fri, 28 May 2010 05:39:48 -0700 (PDT)
Received: from mailX02.eud.schneider-electric.com (mailx02.eud.schneider-electric.com [205.167.7.38]) by core3.amsl.com (Postfix) with ESMTP id 8FCA83A6820; Fri, 28 May 2010 05:39:45 -0700 (PDT)
Received: from ATEUI01.schneider-electric.com ([10.198.14.9]) by mailX02.eud.schneider-electric.com with ESMTP id 2010052814320649-89143 ; Fri, 28 May 2010 14:32:06 +0200 
In-Reply-To: <4BFFB246.4010600@gridmerge.com>
To: robert.cragie@gridmerge.com
X-Mailer: Lotus Notes Release 6.5.6 March 06, 2007
Message-ID: <OFC8ED601B.007AD8EA-ONC1257731.0043F265-C1257731.0045828E@schneider-electric.com>
From: matthieu.vial@fr.non.schneider-electric.com
Date: Fri, 28 May 2010 14:39:14 +0200
MIME-Version: 1.0
X-MIMETrack: Serialize by Router on ATEUI01.Schneider-Electric.com/T/SVR/Schneider at 28/05/2010 14:39:19, Itemize by SMTP Server on AXEU2OUT.schneider-electric.com/X/SVR/SEIxtra at 28/05/2010 14:32:06, Serialize by Router on AXEU2OUT.schneider-electric.com/X/SVR/SEIxtra at 28/05/2010 14:32:23
Content-type: multipart/related;  Boundary="0__=4EBBFDA2DFD074F58f9e8a93df938690918c4EBBFDA2DFD074F5"
Cc: core-bounces@ietf.org, core <core@ietf.org>
Subject: Re: [core] Subscribe/Notify for CoAP
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, 28 May 2010 12:39:52 -0000

--0__=4EBBFDA2DFD074F58f9e8a93df938690918c4EBBFDA2DFD074F5
Content-type: multipart/alternative; 
	Boundary="1__=4EBBFDA2DFD074F58f9e8a93df938690918c4EBBFDA2DFD074F5"

--1__=4EBBFDA2DFD074F58f9e8a93df938690918c4EBBFDA2DFD074F5
Content-type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable


Hi Robert,

>I am not sure what you mean here. Do you mean that some other client can
subscribe to be notified whenever some method is acted upon for a
particular resource? Can you describe the transaction model?
Excatly I want to be notified when a resource is deleted but not just
updated for example. So I send a subscribe message and the method of that
message is delete.

But the main usage of subscribe will be notifications upon modification of
a resource, so I'am fine with subscribe as method and notify as message.
Dynamic resources will probably be part of a collection, so we can still
monitor the modifications of the collection instead of an individual item.

Matthieu

Robert





                                                                           =

             Robert Cragie                                                 =

             <robert.cragie@gr                                             =

             idmerge.com>                                                A =

                                       Matthieu                            =

             28/05/2010 14:08          Vial/FR/Non/Schneider@Europe        =

                                                                        cc =

                                       "Adriano Pezzuto (apezzuto)"        =

             Veuillez r=E9pondre         <apezzuto@cisco.com>, core        =
 =20
                     =E0                 <core@ietf.org>,                  =
 =20
             robert.cragie@gri         core-bounces@ietf.org               =

                dmerge.com                                           Objet =

                                       Re: [core] Subscribe/Notify for     =

                                       CoAP                                =

                                                                           =

                                                                           =

                                                                           =

                                                                           =

                                                                           =

                                                                           =





Hi Matthieu,

I am not sure what you mean here. Do you mean that some other client can
subscribe to be notified whenever some method is acted upon for a
particular resource? Can you describe the transaction model?

Robert


Robert Cragie (Pacific Gas & Electric)


Gridmerge Ltd.
89 Greenfield Crescent,
Wakefield, WF4 4WA, UK
+44 1924 910888
+1 415 513 0064
http://www.gridmerge.com



On 28/05/2010 12:51 PM, matthieu.vial@fr.non.schneider-electric.com wrote:


      > So strictly speaking, both NOTIFY and SUBSCRIBE are message types
      not  methods!

      SUBSCRIBE can be just an asynchronous GET on update then I think it
      is a method and NOTIFY is an asynchronous response so a message.
      But if we want to have selective notifications when a resource is
      created, updated or deleted then I think you're right NOTIFY and
      SUBSCRIBE are messages.

      Does that make sense ?

      Matthieu

      Inactive hide details for "Adriano Pezzuto (apezzuto)"
      <apezzuto@cisco.com>"Adriano Pezzuto (apezzuto)" <apezzuto@cisco.com>



                                                                           =

                         "Adriano Pezzuto                                  =

                         (apezzuto)"                                       =

                         <apezzuto@cisco.                                  =

                         com>                                              =

                         Envoy=E9 par :                                    =
A=20
                         core-bounces@iet                                  =

                         f.org                           <robert.cragie@gr =

                                                         idmerge.com>      =

                                                                           =

                         28/05/2010 12:50                               cc =

                                                                           =

                                                         core              =

                                                         <core@ietf.org>   =

                                                                           =

                                                                     Objet =

                                                                           =

                                                         Re: [core]        =

                                                         Subscribe/Notify  =

                                                         for CoAP          =

                                                                           =

                                                                           =

                                                                           =

                                                                           =

                                                                           =

                                                                           =




      Hi Roberto,
      I understand your point and personally agree on M2M is quite
      different from web page model. On the architectural RESTful style,
      the method information tells the server what to do with data kept in
      the URI information.

      So strictly speaking, both NOTIFY and SUBSCRIBE are message types not
      methods!

      Adriano

      From: Robert Cragie [mailto:robert.cragie@gridmerge.com]
      Sent: venerd=EC 28 maggio 2010 11.53
      To: Adriano Pezzuto (apezzuto)
      Cc: Paul Duffy (paduffy); Zach Shelby; core
      Subject: Re: [core] Subscribe/Notify for CoAP

      I think the point here is that there are two levels we are
      considering.

      At the lowest (foundation) level, there are the transaction messages
      as described below. This provides a flexible mechanism for the
      application with regard to synchronicity and threading. This is
      important for the types of devices CoAP is being aimed at.

      Above that, the methods can be used according to the architectural
      style. So in this case, it is RESTful (COnstrained Restful
      Environments), which will naturally limit the number of methods and
      how transactions occur.

      The actual architecture using a combination of the methods and
      messages also depends on what is required at the application layer.
      Consider a typical client which wants to subscribe to a resource.
      That client controls the feed of data but needs a component which is
      capable of handling (possibly buffering) the data it receives through
      notifications. Is this a separate server? Or would we want to
      consider it part of an enhanced client model which is able to process
      feeds of data? These are the sort of models which have led to the
      myriad of solutions (GENA, Webhooks, long polling, pubsubhubbub,
      RESTMS etc.) based around HTTP which are all essentially ingenious
      ways of getting around the limitations imposed by HTTP and how it is
      processed for anything which deviates from the classic web page
      access model.

      I think the aim of CoAP should be clean from the word go with regard
      to supporting these more peer-to-peer transactions, where the client
      can exist on either entity and both entities can feed data to each
      other; typical in M2M applications.

      Robert


      Robert Cragie (Pacific Gas & Electric)


      Gridmerge Ltd.
      89 Greenfield Crescent,
      Wakefield, WF4 4WA, UK
      +44 1924 910888
      +1 415 513 0064
      http://www.gridmerge.com

      On 27/05/2010 7:08 PM, Adriano Pezzuto (apezzuto) wrote:
      Hi Robert,

      in my personal opinion, the option 1a) brings some sort of ambiguity
      to CoAP specs.

      My be my understatement of new CoAP specs is not so deep, but now we
      have 5 methods and 3 message types: request, response and notify.
      Which methods are allowed with which messages types?
      I suppose you have to use PUT/POST method with notify message for
      asynch data notification. How to make a subscribe? I suppose you
      would use a SUBSCRIBE method with request/response message or
      SUBSCRIBE with notify message? Also what about POST/DELETE methods in
      a notify message? They not make any sense..

      I think the choice is between: option 1) -> only CRUD methods and
      option 1b) -> CRUD + SUB/NOTIFY methods, keeping in mind
      cost/benefits of both solutions.

      Adriano

      From: Robert Cragie [mailto:robert.cragie@gridmerge.com]
      Sent: mercoled=EC 26 maggio 2010 20.09
      To: Adriano Pezzuto (apezzuto)
      Cc: Paul Duffy (paduffy); Zach Shelby; core
      Subject: Re: [core] Subscribe/Notify for CoAP

      Hi Adrian,

      I would also prefer to keep the protocol in CoAP asynchronous. You
      can always map an asynchronous protocol to a synchronous one but, as
      we see in HTTP, it always ends up as a kludge to do it the other way
      round. The efforts which have been gone to to make HTTP
      quasi-asynchronous via all the schemes mentioned below and many more
      besides (all non-interoperable of course) is testament to how
      important this is for M2M communication.

      So, back to Zach's list, I favor 1a) for the following reasons:

      Foundation level of messages:


            1. request/response can be asynchronous or synchronous messages
            (as there is a transaction ID in there)
            2. notify is an asynchronous message
      Derived methods:

      I think it makes sense to add a pub/sub model as a useful mechanism
      for M2M.

      So, looking at it the other way round: It will be entirely possible
      to translate whatever is currently built on HTTP to CoAP based on the
      above, with all its restrictions regarding synchronous and
      client/server transactions. What may be harder is to translate
      directly is a CoAP-based application to HTTP. So I guess the question
      is: Do we want to be hamstrung to synchronous client/server
      transactions as dictated by HTTP and provide a direct mapping to
      HTTP, then have to come up with similar kludges for asynchronous
      peer-to-peer transactions as has been done in numerous ways for HTTP,
      or do we want to define the protocol cleanly to start with and accept
      that some sort of transaction relaying/conversion would have to take
      place at a mapping node?

      Robert


      Robert Cragie (Pacific Gas & Electric)


      Gridmerge Ltd.
      89 Greenfield Crescent,
      Wakefield, WF4 4WA, UK
      +44 1924 910888
      +1 415 513 0064
      http://www.gridmerge.com

      On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote:
      Hi,
      it looks to me that CoAP should use an explicit sub/notify mechanism
      since this is the core of the machine-to-machine interaction model.
      HTTP suffers of this lack and we have seen a plethora of solutions to
      give an asynch taste to it. Webhooks and websockets are only the
      lasts of the list.
      As someone has already pointed out on this list, it is theoretically
      possible to describe sub/notify using only CRUD methods but it looks
      a little bit tricky and verbose.

      Now we have a chance to build from scratch a new protocol with and I
      think using explicit sub/notify methods with a clear and well defined
      semantic is the best option. It is easily understanding from every
      developer and will prevent to build other fanny solutions on top of
      the CoAP. HTTP does not have this well defined semantic and (for
      hundreds of other reasons also) it is not used as wide protocol for
      machine-to-machine communication.

      CoAP - as binary protocol - and with an explicit asynch model has a
      chance to be a really wide protocol for M2M communication not only
      for constrained environments.

      my 2 cents

      - adriano

      -----Original Message-----
      From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf
      Of Paul Duffy (paduffy)
      Sent: mercoled=EC 26 maggio 2010 0.47
      To: Zach Shelby
      Cc: core
      Subject: Re: [core] Subscribe/Notify for CoAP

      On 5/25/2010 6:41 PM, Zach Shelby wrote:


                  Hi,

                  On May 26, 2010, at 12:23 AM, Charles Palmer wrote:


                              Hi folks

                              It occurs to me that CoRE should be keeping a
                              close eye on ZigBee SE2.0 work, so that it is
                              as easy as possible for ZigBee SE to use CoRE
                              when ready. That suggests to me that we
                              should align with their subscribe/notify
                              process.


                  I am not sure I understand that. I mean, ZigBee SE2.0 is
                  defining an application specific subscribe/notify
                  mechanism for that purpose so far for HTTP. This uses
                  standard HTTP methods and some custom payload and REST
                  interfaces. CoAP Req/Res is already totally compatible
                  with SE2.0 in that respect, so alignment is already OK
                  there. Nothing stopping someone from using SE2.0 over
                  CoAP.

                  Specifying a native susbcription/notify into CoAP is
                  another matter. We can't adopt a solution specific to one
                  application as that won't solve the problems of other
                  applications nor general HTTP mapping at all (probably
                  would make it worse). It seems that for the near future
                  there will be a bunch of HTTP push mechanisms in use
                  without any clear standard appearing - or am I wrong
                  there?




      If COAP extends HTTP semantics with new subscription methods, it will

      not be possible to easily interchange HTTP/COAP, and translation
      gateways will become more complex to implement.



                  Zach


                              Regards - Charles


                              -----Original Message-----
                              From: core-bounces@ietf.org [
                              mailto:core-bounces@ietf.org] On Behalf Of
                              Paul Duffy
                              Sent: 25 May 2010 03:48
                              To: Zach Shelby
                              Cc: core
                              Subject: Re: [core] Subscribe/Notify for CoAP

                              Recommend something like #2, primarily to
                              avoid introducing non HTTP
                              method semantics, simplifying HTTP/COAP
                              translation.gateways, etc.


                              On 5/24/2010 11:49 AM, Zach Shelby wrote:

                                          (thread renamed)

                                          We have two different paths with
                                          regard to a subscribe/notify
                                          mechanism for CoAP:

                                          1. Use specific Subscription and
                                          Notify mechanisms for CoAP as
                                          HTTP really does not include this
                                          concept.
                                          1a) Notify as a message and
                                          SUBSCRIBE as a method. This is
                                          currently used in coap-01.
                                          1b) NOTIFY and SUBSCRIBE as
                                          methods. This was used in
                                          coap-00, but we had a good list
                                          discussion about this leading to
                                          a. In practice it doesn't make a
                                          big difference if notification is
                                          a message or method.

                                          2. Use an HTTP specific framework
                                          such as Webhooks, the ZigBee
                                          SE2.0 proposal or GENA.

                                          So far we have focused on 1 in
                                          the WG, and every now and again 2
                                          comes up. At least I am not
                                          convinced that we need to suffer
                                          the drawbacks of HTTP here.
                                          Anyways 2 does not help our
                                          mapping to HTTP in reality very
                                          much as there is no standard way
                                          of doing this over HTTP. Thus a
                                          CoAP-HTTP proxy may end up
                                          anyways translating between
                                          multiple HTTP frameworks
                                          depending on the application. So
                                          instead of doing a CoAP
                                          Notify/Subscribe to Webhooks
                                          mapping, you will could end up
                                          having to do a CoAP Webhooks to
                                          HTTP GENA mapping.



                              I don't understand this last para. If CoAP
                              sticks to the semantics of
                              the current HTTP methods, would this not
                              offer a fairly straightforward
                              translation to/from HTTP?



                                                      From what I have
                                                      heard so far 1 still
                                                      seems like a wise
                                                      choice, although I
                                                      need to look at
                                                      Webhooks more deeply.
                                                      In reality many
                                                      applications specify
                                                      their own way of
                                                      doing a push
                                                      interface using REST
                                                      methods and specific
                                                      payloads (ZigBee
                                                      SE2.0 is such an
                                                      example). That is
                                                      just fine, and might
                                                      be used instead of a
                                                      specific CoAP
                                                      notify/subscribe in
                                                      that case. So 1
                                                      doesn't prevent the
                                                      application using its
                                                      own mechanism, it
                                                      just provides a
                                                      native way for doing
                                                      push.

                                          What do people think?

                                          Zach

                                          On May 17, 2010, at 6:44 PM,
                                          matthieu.vial@fr.non.schneider-el=
ectric.com
                                           wrote:



                                                      Hi,

                                                      My comments about the
                                                      subscribe/notify
                                                      mechanism of Zigbee
                                                      IP.

                                                      Pros:
                                                      - Derived from the
                                                      webhooks concept
                                                      - If used by CORE it
                                                      will be easier to map
                                                      to HTTP because it
                                                      uses only CRUD verbs.
                                                      - The subscription
                                                      message is extendable
                                                      and could support
                                                      advanced options
                                                      (delays,
                                                      increment, ...)
                                                      - Only one listening
                                                      port whatever the
                                                      transport binding is.

                                                      Cons:
                                                      - No interoperability
                                                      without well known
                                                      URIs and a well
                                                      defined subscription
                                                      message format (Not
                                                      sure CoAP draft is
                                                      the right place to
                                                      specify this).
                                                      - XML/EXI is too
                                                      complex to be the
                                                      required format for
                                                      the default
                                                      subscription/notifica=
tion
 mechanism.
                                                      - The notification
                                                      should not require a
                                                      subsequent GET to
                                                      retrieve the content.
                                                      - Subresource
                                                      subscription is
                                                      redundant.

                                                      Hope this could help,
                                                      Matthieu


                                                      <graycol.gif>"Charles
                                                      Palmer"
                                                      <charles.palmer@onzo.=
com>





                                                      "Charles Palmer"
                                                      <charles.palmer@onzo.=
com>

                                                      Envoy=E9 par :
                                                      core-bounces@ietf.org
                                                      15/05/2010 14:06

                                                      <ecblank.gif>
                                                      A
                                                      <ecblank.gif>
                                                      "core"<core@ietf.org>
                                                      <ecblank.gif>
                                                      cc
                                                      <ecblank.gif>
                                                      <ecblank.gif>
                                                      Objet
                                                      <ecblank.gif>
                                                      Re: [core] Selecting
                                                      a WG document for
                                                      CoAP
                                                      <ecblank.gif>
                                                      <ecblank.gif>

                                                      Dear all

                                                      Those interested in
                                                      the subscribe/notify
                                                      discussion might like
                                                      to look
                                                      at the draft Smart
                                                      Energy Profile 2.0
                                                      Application Protocol
                                                      Specification. It is
                                                      available here:
                                                      http://zigbee.org/Mar=
kets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicApp

                                                      licationProfile.aspx

                                                      It manages
                                                      subscribe/notify by
                                                      using POST. This
                                                      seems to remove the
                                                      need
                                                      for SUBSCRIBE and
                                                      notify.

                                                      "Imagine a host A,
                                                      which exposes a
                                                      resource at http
                                                      {s}://A/resource and
                                                      a second host B,
                                                      which wishes to learn
                                                      of changes to this
                                                      resource. To
                                                      facilitate a
                                                      subscription/
                                                      notification
                                                      mechanism, A would
                                                      expose a
                                                      resource http
                                                      {s}://A/sub and B
                                                      would expose a
                                                      resource http
                                                      {s}://B/ntfy.
                                                      To subscribe to
                                                      notifications
                                                      regarding http
                                                      {s}://A/resource, B
                                                      would
                                                      send a POST to the
                                                      address http
                                                      {s}://A/sub/B
                                                      containing the URI of
                                                      the
                                                      resource of interest
                                                      (http
                                                      {s}://A/resource) and
                                                      the URI of B's
                                                      notification resource
                                                      (http{s}://B/ntfy).
                                                      Following this
                                                      subscription
                                                      step, should A wish
                                                      to notify B of a
                                                      change to the
                                                      resource addressed at
                                                      http{s}://A/resource,
                                                      A would send a POST
                                                      to the address
                                                      http{s}://B/ntfy
                                                      containing the URI of
                                                      the resource changed
                                                      (http
                                                      {s}://A/resource) and
                                                      the URI of A's
                                                      subscription resource
                                                      (http{s}://A/sub/B),
                                                      should A wish to
                                                      change its
                                                      subscription. The
                                                      host
                                                      B can then query the
                                                      resource (or not) at
                                                      its leisure."

                                                      Sleepy nodes are not
                                                      allowed to subscribe,
                                                      and must poll.

                                                      Regards - Charles
                                                      Palmer

                                                      -----Original
                                                      Message-----
                                                      From:
                                                      core-bounces@ietf.org
                                                      [
                                                      mailto:core-bounces@i=
etf.org
                                                      ] On Behalf Of
                                                      Angelo P. Castellani
                                                      Sent: 14 May 2010
                                                      13:14
                                                      To: Zach Shelby
                                                      Cc: core
                                                      Subject: Re: [core]
                                                      Selecting a WG
                                                      document for CoAP

                                                      Zach,

                                                      thanks for the
                                                      comments, but please
                                                      refer to my most
                                                      recent e-mail for
                                                      a more specific list
                                                      of technical issues
                                                      I'm pointing to.

                                                      I want to do only a
                                                      little integration to
                                                      what I've written
                                                      there.

                                                      In my very personal
                                                      opinion, to maximize
                                                      adherence with the
                                                      REST model
                                                      and minimize
                                                      implementation effort
                                                      SUBSCRIBE and NOTIFY
                                                      should be
                                                      mapped to methods (as
                                                      discussed many times
                                                      together...).

                                                      Uniform interface
                                                      principle (Fielding
                                                      PhD dissertation
                                                      Section 5.1.5,
                                                      "The central feature
                                                      that distinguishes
                                                      the REST
                                                      architectural style
                                                      [...]") states that
                                                      to simplify the
                                                      software
                                                      architecture,
                                                      resource
                                                      interfaces/interfaces
                                                      should be as general
                                                      as possible.

                                                      I agree with this
                                                      principle in this
                                                      specific case, mainly
                                                      because
                                                      handling a special
                                                      message type for
                                                      notify leads node
                                                      software design
                                                      to a more complex
                                                      architecture.

                                                      The reason is that
                                                      this new message type
                                                      requires special
                                                      handling and
                                                      introduces a
                                                      complexity in the
                                                      software
                                                      modularization.

                                                      Best,
                                                      Angelo

                                                      On Fri, May 14, 2010
                                                      at 13:06, Zach Shelby
                                                      <zach@sensinode.com>
                                                      wrote:


                                                                  Hi
                                                                  Angelo,

                                                                  On May
                                                                  13, 2010,
                                                                  at
                                                                  14:24 ,
                                                                  Angelo P.
                                                                  Castellani
 wrote:




   Dear C. Bormann, all,

   before deciding for the final direction, I've the following
   observations about draft-shelby-core-coap-01

   While I mostly share Zach's view of the protocol approach, and
   appreciate many aspects of the proposal, there are in my opinion


                                                      still


   some open issues that need to be at least discussed before the


                                                      current


   document can be selected.


                                                                  Of course
                                                                  there are
                                                                  plenty of
                                                                  open
                                                                  issues.
                                                                  Remember
                                                                  that
                                                                  working
                                                                  group


                                                      documents still
                                                      undertake as much
                                                      change and
                                                      improvement as the WG
                                                      wants, so by no means
                                                      is coap-01 set in
                                                      stone. I would expect
                                                      at least
                                                      5-10 more revisions
                                                      still along the way.
                                                      Already several of
                                                      your ideas
                                                      have been integrated
                                                      into coap-01, and
                                                      several more are
                                                      under
                                                      consideration, so it
                                                      is coming along.
                                                      Patience ;-)



   In particular, I would like to highlight the following:

   a) As it is now, it is not possible to have a straightforward
   translation of HTTP -> CoAP and viceversa: see
   http://www.ietf.org/mail-archive/web/core/current/msg00133.html (this
   impacts the scalability of the web service model too)


                                                                  In
                                                                  coap-01
                                                                  the
                                                                  Method
                                                                  names are
                                                                  now
                                                                  identical
                                                                  to HTTP
                                                                  methods.
                                                                  The


                                                      Req/Res interaction
                                                      is a direct
                                                      translation. The URI
                                                      hierarchy is
                                                      compatible, and the
                                                      URI binary code
                                                      format we are still
                                                      working on
                                                      obviously. The only
                                                      thing that takes some
                                                      state to translate is
                                                      Subscribe/Notify. But
                                                      note,
                                                      Subscribe/Notify
                                                      takes some state no
                                                      matter
                                                      how you do it, even
                                                      with HTTP-HTTP there
                                                      is no clean and easy
                                                      way to
                                                      handle subscriptions.



   b) Moreover, CoAP's implementation is not as simple as it should be.
   I've investigated the implementation and some design choices (as
   Options) are leading to very high program complexity (ROM) on a
   MSP430-based device.


                                                                  This we
                                                                  can
                                                                  definitely
 improve, and already made several optimizations



                                                      from -00 to -01. Here
                                                      I need some very
                                                      concrete proposals
                                                      though. Also
                                                      remember that many
                                                      things are optional,
                                                      for example
                                                      subscribe/notify is
                                                      not required if you
                                                      don't need it.



   c) Finally when comparing HTTP message size with CoAP message size,
   the resulting compression isn't as good as you may expect.

   Example:
   HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
   CoAP: 24 B with options parsing procedure requiring an added
   implementation complexity


                                                                  Right,
                                                                  that is
                                                                  not how
                                                                  it will
                                                                  work in
                                                                  practice.
                                                                  Working
                                                                  with a
                                                                  real


                                                      HTTP server that HTTP
                                                      header will be more
                                                      complex, and on the
                                                      CoAP side
                                                      you would chose
                                                      shorter URLs. The
                                                      biggest improvement
                                                      possible here is
                                                      from using binary
                                                      coded URLs of course.
                                                      We need to look at a
                                                      wider range
                                                      of interactions and
                                                      real HTTP headers as
                                                      well to check that we
                                                      are
                                                      efficient enough.



   Addressing all these points potentially leads to major technical
   modifications (especially point a) on the current draft, hence it is
   appropriate in my opinion to discuss these points before making the
   final decision.


                                                                  I am not
                                                                  sure what
                                                                  else you
                                                                  have in
                                                                  mind for
                                                                  a). If we
                                                                  just
                                                                  forget


                                                      about
                                                      Subscribe/Notify then
                                                      you are good to go.
                                                      But then you are also
                                                      not fulfilling the
                                                      charter or the
                                                      industry needs in
                                                      that respect.


                                                                  Thanks,
                                                                  Zach



   Best regards,

   Angelo P. Castellani


   On Mon, May 10, 2010 at 18:51, Carsten Bormann<cabo@tzi.org> wrote:


               The CORE WG has a milestone to select a WG document for CoAP
               in


                                                      April:


               http://datatracker.ietf.org/wg/core/charter/
               ...
               Apr 2010 Select WG document for basis of the CoAP protocol

               Of the various documents that have been contributed,


                                                      draft-shelby-core-coap
 has significant discussion, as well as the
                                                      largest number of
                                                      updates (including a
                                                      previous version that
                                                      was still
                                                      called
                                                      -6lowapp-coap).


               Today, another updated version of that draft was announced.
               See
               http://www.ietf.org/mail-archive/web/core/current/msg00138.h=
tml

               for the announcement and
               http://tools.ietf.org/html/draft-shelby-core-coap-01
               for the draft itself.

               However, as the authors say, there are still significant
               TODOs.

               Are we in a state yet where we can say whether this is the
               right


                                                      direction for the WG
                                                      to take?


               If yes, is it the right direction? Should we adopt it as a
               WG


                                                      document?


               If you don't think we can say yet, is there a set of
               technical


                                                      decisions you would
                                                      like the authors to
                                                      take with priority?


               Note that once a document has become a WG document, the
               authors act


                                                      as editors for the
                                                      working group, making
                                                      (and usually fleshing
                                                      out the
                                                      details of) any
                                                      change that the WG
                                                      decides it needs.


               If you think we can still improve the draft, this is not an
               obstacle


                                                      to making it a WG
                                                      document.


               But of course we shouldn't do that if we intend to reverse
               its


                                                      fundamental technical
                                                      direction.


               In order to stay roughly in sync with our milestones, we
               should


                                                      reach at a decision
                                                      on how to go forward
                                                      this week.


               Gruesse, Carsten

               =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F
               core mailing list
               core@ietf.org
               https://www.ietf.org/mailman/listinfo/core



   =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F
   core mailing list
   core@ietf.org
   https://www.ietf.org/mailman/listinfo/core


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




                                                      =5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F

                                                      core mailing list
                                                      core@ietf.org
                                                      https://www.ietf.org/=
mailman/listinfo/core


                                                      ---------------------=
-----------

                                                      Onzo is a limited
                                                      company number
                                                      06097997 registered
                                                      in England& Wales.
                                                      The
                                                      registered office is
                                                      6 Great Newport
                                                      Street, London, WC2H
                                                      7JB, United Kingdom.

                                                      This email message
                                                      may contain
                                                      confidential and/or
                                                      privileged
                                                      information, and
                                                      is intended solely
                                                      for the addressee(s).
                                                      If you have received
                                                      this email in
                                                      error, please notify
                                                      Onzo immediately.
                                                      Unauthorised copying,
                                                      disclosure or
                                                      distribution of the
                                                      material in this
                                                      email is forbidden.
                                                      ---------------------=
-----------


                                                      =5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F

                                                      core mailing list
                                                      core@ietf.org
                                                      https://www.ietf.org/=
mailman/listinfo/core


                                                      =5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F

                                                      This email has been
                                                      scanned by the
                                                      MessageLabs Email
                                                      Security System.
                                                      =5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F


                                                      =5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F

                                                      core mailing list
                                                      core@ietf.org
                                                      https://www.ietf.org/=
mailman/listinfo/core




                              =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F

                              core mailing list
                              core@ietf.org
                              https://www.ietf.org/mailman/listinfo/core

                              --------------------------------
                              Onzo is a limited company number 06097997
                              registered in England& Wales. The
                              registered office is 6 Great Newport Street,
                              London, WC2H 7JB, United Kingdom.

                              This email message may contain confidential
                              and/or privileged information, and
                              is intended solely for the addressee(s). If
                              you have received this email in
                              error, please notify Onzo immediately.
                              Unauthorised copying, disclosure or
                              distribution of the material in this email is
                              forbidden.
                              --------------------------------




      =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F
      core mailing list
      core@ietf.org
      https://www.ietf.org/mailman/listinfo/core
      =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F
      core mailing list
      core@ietf.org
      https://www.ietf.org/mailman/listinfo/core



      =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F

      This email has been scanned by the MessageLabs Email Security System.
      =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F
      =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F
      core mailing list
      core@ietf.org
      https://www.ietf.org/mailman/listinfo/core

--1__=4EBBFDA2DFD074F58f9e8a93df938690918c4EBBFDA2DFD074F5
Content-type: text/html; charset=ISO-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

<html><body bgcolor=3D"#FFFFFF">
<p><font size=3D"4">Hi Robert,<br>
<br>
&gt;I am not sure what you mean here. Do you mean that some other client ca=
n subscribe to be notified whenever some method is acted upon for a particu=
lar resource? Can you describe the transaction model?</font><br>
<font size=3D"4">Excatly I want to be notified when a resource is deleted b=
ut not just updated for example. So I send a subscribe message and the meth=
od of that message is delete.</font><br>
<br>
<font size=3D"4">But the main usage of subscribe will be notifications upon=
 modification of a resource, so I'am fine with subscribe as method and noti=
fy as message. Dynamic resources will probably be part of a collection, so =
we can still monitor the modifications of the collection instead of an indi=
vidual item.</font><br>
<br>
<font size=3D"4">Matthieu<br>
<br>
Robert</font><br>
<br>
<img width=3D"16" height=3D"16" src=3D"cid:2=5F=5F=3D4EBBFDA2DFD074F58@schn=
eider-electric.com" border=3D"0" alt=3D"Inactive hide details for Robert Cr=
agie &lt;robert.cragie@gridmerge.com&gt;">Robert Cragie &lt;robert.cragie@g=
ridmerge.com&gt;<br>
<br>
<br>
<br>
<br>

<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">
<tr valign=3D"top"><td style=3D"background-image:url(cid:3=5F=5F=3D4EBBFDA2=
DFD074F58@schneider-electric.com); background-repeat: no-repeat; " width=3D=
"40%">
<ul>
<ul>
<ul>
<ul><b><font size=3D"2">Robert Cragie &lt;robert.cragie@gridmerge.com&gt;</=
font></b><font size=3D"2"> </font>
<p><font size=3D"2">28/05/2010 14:08</font>
<table border=3D"1">
<tr valign=3D"top"><td width=3D"168" bgcolor=3D"#FFFFFF"><div align=3D"cent=
er"><font size=3D"2">Veuillez r=E9pondre =E0<br>
robert.cragie@gridmerge.com</font></div></td></tr>
</table>
</ul>
</ul>
</ul>
</ul>
</td><td width=3D"60%">
<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">
<tr valign=3D"top"><td width=3D"1%"><img width=3D"58" height=3D"1" src=3D"c=
id:4=5F=5F=3D4EBBFDA2DFD074F58@schneider-electric.com" border=3D"0" alt=3D"=
"><br>
<div align=3D"right"><font size=3D"2">A</font></div></td><td width=3D"100%"=
><img width=3D"1" height=3D"1" src=3D"cid:4=5F=5F=3D4EBBFDA2DFD074F58@schne=
ider-electric.com" border=3D"0" alt=3D""><br>
<font size=3D"2">Matthieu Vial/FR/Non/Schneider@Europe</font></td></tr>

<tr valign=3D"top"><td width=3D"1%"><img width=3D"58" height=3D"1" src=3D"c=
id:4=5F=5F=3D4EBBFDA2DFD074F58@schneider-electric.com" border=3D"0" alt=3D"=
"><br>
<div align=3D"right"><font size=3D"2">cc</font></div></td><td width=3D"100%=
"><img width=3D"1" height=3D"1" src=3D"cid:4=5F=5F=3D4EBBFDA2DFD074F58@schn=
eider-electric.com" border=3D"0" alt=3D""><br>
<font size=3D"2">&quot;Adriano Pezzuto (apezzuto)&quot; &lt;apezzuto@cisco.=
com&gt;, core &lt;core@ietf.org&gt;, core-bounces@ietf.org</font></td></tr>

<tr valign=3D"top"><td width=3D"1%"><img width=3D"58" height=3D"1" src=3D"c=
id:4=5F=5F=3D4EBBFDA2DFD074F58@schneider-electric.com" border=3D"0" alt=3D"=
"><br>
<div align=3D"right"><font size=3D"2">Objet</font></div></td><td width=3D"1=
00%"><img width=3D"1" height=3D"1" src=3D"cid:4=5F=5F=3D4EBBFDA2DFD074F58@s=
chneider-electric.com" border=3D"0" alt=3D""><br>
<font size=3D"2">Re: [core] Subscribe/Notify for CoAP</font></td></tr>
</table>

<table border=3D"0" cellspacing=3D"0" cellpadding=3D"0">
<tr valign=3D"top"><td width=3D"58"><img width=3D"1" height=3D"1" src=3D"ci=
d:4=5F=5F=3D4EBBFDA2DFD074F58@schneider-electric.com" border=3D"0" alt=3D""=
></td><td width=3D"336"><img width=3D"1" height=3D"1" src=3D"cid:4=5F=5F=3D=
4EBBFDA2DFD074F58@schneider-electric.com" border=3D"0" alt=3D""></td></tr>
</table>
</td></tr>
</table>
<br>
<font size=3D"4">Hi Matthieu,<br>
<br>
I am not sure what you mean here. Do you mean that some other client can su=
bscribe to be notified whenever some method is acted upon for a particular =
resource? Can you describe the transaction model?<br>
<br>
Robert</font>
<p><font size=3D"4" face=3D"Verdana">Robert Cragie (Pacific Gas &amp; Elect=
ric)</font>
<p><font size=3D"2" face=3D"Verdana">Gridmerge Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 1924 910888<br>
+1 415 513 0064</font><u><font size=3D"2" color=3D"#0000FF" face=3D"Verdana=
"><br>
</font></u><a href=3D"http://www.gridmerge.com/"><u><font size=3D"2" color=
=3D"#0000FF" face=3D"Verdana">http://www.gridmerge.com</font></u></a>
<p><font size=3D"4"><br>
On 28/05/2010 12:51 PM, </font><a href=3D"mailto:matthieu.vial@fr.non.schne=
ider-electric.com"><u><font size=3D"4" color=3D"#0000FF">matthieu.vial@fr.n=
on.schneider-electric.com</font></u></a><font size=3D"4"> wrote: </font>
<ul>
<ul><font size=3D"5" color=3D"#1F497D" face=3D"Calibri">&gt; So strictly sp=
eaking, both NOTIFY and SUBSCRIBE are message types not  methods!</font><fo=
nt size=3D"2" face=3D"Verdana"><br>
<br>
SUBSCRIBE can be just an asynchronous GET on update then I think it is a me=
thod and NOTIFY is an asynchronous response so a message.<br>
But if we want to have selective notifications when a resource is created, =
updated or deleted then I think you're right NOTIFY and SUBSCRIBE are messa=
ges.<br>
<br>
Does that make sense ?<br>
<br>
Matthieu<br>
<br>
</font><img src=3D"cid:2=5F=5F=3D4EBBFDA2DFD074F58@schneider-electric.com" =
width=3D"16" height=3D"16" alt=3D"Inactive hide details for &quot;Adriano P=
ezzuto (apezzuto)&quot; &lt;apezzuto@cisco.com&gt;"><font size=3D"2" face=
=3D"Verdana">&quot;Adriano Pezzuto (apezzuto)&quot; </font><a href=3D"mailt=
o:apezzuto@cisco.com"><u><font size=3D"2" color=3D"#0000FF" face=3D"Verdana=
">&lt;apezzuto@cisco.com&gt;</font></u></a><font size=3D"2" face=3D"Verdana=
"><br>
<br>
<br>
<br>
</font>
<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">
<tr valign=3D"top"><td width=3D"55%">
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><b>&quot;Adriano Pezzuto (apezzuto)&quot; </b><a href=3D"mailto:apezzut=
o@cisco.com"><b><u><font color=3D"#0000FF">&lt;apezzuto@cisco.com&gt;</font=
></u></b></a> <br>
Envoy=E9 par : <a href=3D"mailto:core-bounces@ietf.org"><u><font color=3D"#=
0000FF">core-bounces@ietf.org</font></u></a><font size=3D"4"> </font>
<p><font face=3D"Verdana">28/05/2010 12:50</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</td><td width=3D"45%">
<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">
<tr valign=3D"top"><td width=3D"23%"><img src=3D"cid:4=5F=5F=3D4EBBFDA2DFD0=
74F58@schneider-electric.com" width=3D"58" height=3D"1"><div align=3D"right=
">A</div></td><td width=3D"77%"><img src=3D"cid:4=5F=5F=3D4EBBFDA2DFD074F58=
@schneider-electric.com" width=3D"1" height=3D"1"><u><font color=3D"#0000FF=
"><br>
</font></u><a href=3D"mailto:robert.cragie@gridmerge.com"><u><font color=3D=
"#0000FF">&lt;robert.cragie@gridmerge.com&gt;</font></u></a></td></tr>

<tr valign=3D"top"><td width=3D"23%"><img src=3D"cid:4=5F=5F=3D4EBBFDA2DFD0=
74F58@schneider-electric.com" width=3D"58" height=3D"1"><div align=3D"right=
">cc</div></td><td width=3D"77%"><img src=3D"cid:4=5F=5F=3D4EBBFDA2DFD074F5=
8@schneider-electric.com" width=3D"1" height=3D"1"><br>
core <a href=3D"mailto:core@ietf.org"><u><font color=3D"#0000FF">&lt;core@i=
etf.org&gt;</font></u></a></td></tr>

<tr valign=3D"top"><td width=3D"23%"><img src=3D"cid:4=5F=5F=3D4EBBFDA2DFD0=
74F58@schneider-electric.com" width=3D"58" height=3D"1"><div align=3D"right=
">Objet</div></td><td width=3D"77%"><img src=3D"cid:4=5F=5F=3D4EBBFDA2DFD07=
4F58@schneider-electric.com" width=3D"1" height=3D"1"><br>
Re: [core] Subscribe/Notify for CoAP</td></tr>
</table>

<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">
<tr valign=3D"top"><td width=3D"15%"><img src=3D"cid:4=5F=5F=3D4EBBFDA2DFD0=
74F58@schneider-electric.com" width=3D"1" height=3D"1"></td><td width=3D"85=
%"><img src=3D"cid:4=5F=5F=3D4EBBFDA2DFD074F58@schneider-electric.com" widt=
h=3D"1" height=3D"1"></td></tr>
</table>
</td></tr>
</table>
<font size=3D"5" color=3D"#1F497D" face=3D"Calibri"><br>
Hi Roberto,<br>
I understand your point and personally agree on M2M is quite different from=
 web page model. On the architectural RESTful style, the method information=
 tells the server what to do with data kept in the URI information.</font><=
font size=3D"4"><br>
</font><font size=3D"5" color=3D"#1F497D" face=3D"Calibri"><br>
So strictly speaking, both NOTIFY and SUBSCRIBE are message types not  meth=
ods!</font><font size=3D"4"><br>
</font><font size=3D"5" color=3D"#1F497D" face=3D"Calibri"><br>
Adriano </font><font size=3D"4"><br>
</font><b><font size=3D"5" face=3D"Tahoma"><br>
From:</font></b><font size=3D"5" face=3D"Tahoma"> Robert Cragie [</font><a =
href=3D"mailto:robert.cragie@gridmerge.com"><u><font size=3D"5" color=3D"#0=
000FF" face=3D"Tahoma">mailto:robert.cragie@gridmerge.com</font></u></a><fo=
nt size=3D"5" face=3D"Tahoma">] </font><b><font size=3D"5" face=3D"Tahoma">=
<br>
Sent:</font></b><font size=3D"5" face=3D"Tahoma"> venerd=EC 28 maggio 2010 =
11.53</font><b><font size=3D"5" face=3D"Tahoma"><br>
To:</font></b><font size=3D"5" face=3D"Tahoma"> Adriano Pezzuto (apezzuto)<=
/font><b><font size=3D"5" face=3D"Tahoma"><br>
Cc:</font></b><font size=3D"5" face=3D"Tahoma"> Paul Duffy (paduffy); Zach =
Shelby; core</font><b><font size=3D"5" face=3D"Tahoma"><br>
Subject:</font></b><font size=3D"5" face=3D"Tahoma"> Re: [core] Subscribe/N=
otify for CoAP</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Times New Roman"><br>
I think the point here is that there are two levels we are considering.<br>
<br>
At the lowest (foundation) level, there are the transaction messages as des=
cribed below. This provides a flexible mechanism for the application with r=
egard to synchronicity and threading. This is important for the types of de=
vices CoAP is being aimed at.<br>
<br>
Above that, the methods can be used according to the architectural style. S=
o in this case, it is RESTful (COnstrained Restful Environments), which wil=
l naturally limit the number of methods and how transactions occur.<br>
<br>
The actual architecture using a combination of the methods and messages als=
o depends on what is required at the application layer. Consider a typical =
client which wants to subscribe to a resource. That client controls the fee=
d of data but needs a component which is capable of handling (possibly buff=
ering) the data it receives through notifications. Is this a separate serve=
r? Or would we want to consider it part of an enhanced client model which i=
s able to process feeds of data? These are the sort of models which have le=
d to the myriad of solutions (GENA, Webhooks, long polling, pubsubhubbub, R=
ESTMS etc.) based around HTTP which are all essentially ingenious ways of g=
etting around the limitations imposed by HTTP and how it is processed for a=
nything which deviates from the classic web page access model.<br>
<br>
I think the aim of CoAP should be clean from the word go with regard to sup=
porting these more peer-to-peer transactions, where the client can exist on=
 either entity and both entities can feed data to each other; typical in M2=
M applications.<br>
<br>
Robert</font><font size=3D"4"> </font>
<p><font size=3D"5" face=3D"Verdana">Robert Cragie (Pacific Gas &amp; Elect=
ric)</font><font size=3D"2" face=3D"Verdana"> </font>
<p><font size=3D"5" face=3D"Verdana">Gridmerge Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 1924 910888<br>
+1 415 513 0064</font><u><font size=3D"2" color=3D"#0000FF" face=3D"Verdana=
"><br>
</font></u><a href=3D"http://www.gridmerge.com/"><u><font size=3D"5" color=
=3D"#0000FF" face=3D"Verdana">http://www.gridmerge.com</font></u></a><font =
size=3D"5" face=3D"Times New Roman"><br>
<br>
On 27/05/2010 7:08 PM, Adriano Pezzuto (apezzuto) wrote: </font><font size=
=3D"5" color=3D"#1F497D" face=3D"Calibri"><br>
Hi Robert,</font><font size=3D"2" face=3D"Verdana"><br>
</font><font size=3D"5" color=3D"#1F497D" face=3D"Calibri"><br>
in my personal opinion, the option 1a) brings some sort of ambiguity to CoA=
P specs.</font><font size=3D"2" face=3D"Verdana"><br>
</font><font size=3D"5" color=3D"#1F497D" face=3D"Calibri"><br>
My be my understatement of new CoAP specs is not so deep, but now we have 5=
 methods and 3 message types: request, response and notify. Which methods a=
re allowed with which messages types?<br>
I suppose you have to use PUT/POST method with notify message for asynch da=
ta notification. How to make a subscribe? I suppose you would use a SUBSCRI=
BE method with request/response message or SUBSCRIBE with notify message? A=
lso what about POST/DELETE methods in a notify message? They not make any s=
ense..</font><font size=3D"2" face=3D"Verdana"><br>
</font><font size=3D"5" color=3D"#1F497D" face=3D"Calibri"><br>
I think the choice is between: option 1) -&gt; only CRUD methods and option=
 1b) -&gt; CRUD + SUB/NOTIFY methods, keeping in mind cost/benefits of both=
 solutions.</font><font size=3D"2" face=3D"Verdana"><br>
</font><font size=3D"5" color=3D"#1F497D" face=3D"Calibri"><br>
Adriano</font><font size=3D"2" face=3D"Verdana"><br>
</font><b><font size=3D"5" face=3D"Tahoma"><br>
From:</font></b><font size=3D"5" face=3D"Tahoma"> Robert Cragie [</font><a =
href=3D"mailto:robert.cragie@gridmerge.com"><u><font size=3D"5" color=3D"#0=
000FF" face=3D"Tahoma">mailto:robert.cragie@gridmerge.com</font></u></a><fo=
nt size=3D"5" face=3D"Tahoma">] </font><b><font size=3D"5" face=3D"Tahoma">=
<br>
Sent:</font></b><font size=3D"5" face=3D"Tahoma"> mercoled=EC 26 maggio 201=
0 20.09</font><b><font size=3D"5" face=3D"Tahoma"><br>
To:</font></b><font size=3D"5" face=3D"Tahoma"> Adriano Pezzuto (apezzuto)<=
/font><b><font size=3D"5" face=3D"Tahoma"><br>
Cc:</font></b><font size=3D"5" face=3D"Tahoma"> Paul Duffy (paduffy); Zach =
Shelby; core</font><b><font size=3D"5" face=3D"Tahoma"><br>
Subject:</font></b><font size=3D"5" face=3D"Tahoma"> Re: [core] Subscribe/N=
otify for CoAP</font><font size=3D"2" face=3D"Verdana"><br>
</font><font size=3D"5" face=3D"Times New Roman"><br>
Hi Adrian,<br>
<br>
I would also prefer to keep the protocol in CoAP asynchronous. You can alwa=
ys map an asynchronous protocol to a synchronous one but, as we see in HTTP=
, it always ends up as a kludge to do it the other way round. The efforts w=
hich have been gone to to make HTTP quasi-asynchronous via all the schemes =
mentioned below and many more besides (all non-interoperable of course) is =
testament to how important this is for M2M communication.<br>
<br>
So, back to Zach's list, I favor 1a) for the following reasons:<br>
<br>
Foundation level of messages:</font><font size=3D"2" face=3D"Verdana"> </fo=
nt>
<ul>
<ul><font size=3D"4">1. </font><font size=3D"5" face=3D"Times New Roman">re=
quest/response can be asynchronous or synchronous messages (as there is a t=
ransaction ID in there)</font><font size=3D"4"><br>
2. </font><font size=3D"5" face=3D"Times New Roman">notify is an asynchrono=
us message</font><font size=3D"4"> </font></ul>
</ul>
<font size=3D"5" face=3D"Times New Roman">Derived methods:<br>
<br>
I think it makes sense to add a pub/sub model as a useful mechanism for M2M=
.<br>
<br>
So, looking at it the other way round: It will be entirely possible to tran=
slate whatever is currently built on HTTP to CoAP based on the above, with =
all its restrictions regarding synchronous and client/server transactions. =
What may be harder is to translate directly is a CoAP-based application to =
HTTP. So I guess the question is: Do we want to be hamstrung to synchronous=
 client/server transactions as dictated by HTTP and provide a direct mappin=
g to HTTP, then have to come up with similar kludges for asynchronous peer-=
to-peer transactions as has been done in numerous ways for HTTP, or do we w=
ant to define the protocol cleanly to start with and accept that some sort =
of transaction relaying/conversion would have to take place at a mapping no=
de?<br>
<br>
Robert</font><font size=3D"4"> </font>
<p><font size=3D"5" face=3D"Verdana">Robert Cragie (Pacific Gas &amp; Elect=
ric)</font><font size=3D"2" face=3D"Verdana"> </font>
<p><font size=3D"5" face=3D"Verdana">Gridmerge Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 1924 910888<br>
+1 415 513 0064</font><u><font size=3D"2" color=3D"#0000FF" face=3D"Verdana=
"><br>
</font></u><a href=3D"http://www.gridmerge.com/"><u><font size=3D"5" color=
=3D"#0000FF" face=3D"Verdana">http://www.gridmerge.com</font></u></a><font =
size=3D"5" face=3D"Times New Roman"><br>
<br>
On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote: </font><font size=
=3D"5" face=3D"Courier New"><br>
Hi,<br>
it looks to me that CoAP should use an explicit sub/notify mechanism since =
this is the core of the machine-to-machine interaction model.<br>
HTTP suffers of this lack and we have seen a plethora of solutions to give =
an asynch taste to it. Webhooks and websockets are only the lasts of the li=
st.<br>
As someone has already pointed out on this list, it is theoretically possib=
le to describe sub/notify using only CRUD methods but it looks a little bit=
 tricky and verbose.</font><font size=3D"2" face=3D"Verdana"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Now we have a chance to build from scratch a new protocol with and I think =
using explicit sub/notify methods with a clear and well defined semantic is=
 the best option. It is easily understanding from every developer and will =
prevent to build other fanny solutions on top of the CoAP. HTTP does not ha=
ve this well defined semantic and (for hundreds of other reasons also) it i=
s not used as wide protocol for machine-to-machine communication.</font><fo=
nt size=3D"2" face=3D"Verdana"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
CoAP - as binary protocol - and with an explicit asynch model has a chance =
to be a really wide protocol for M2M communication not only for constrained=
 environments.</font><font size=3D"2" face=3D"Verdana"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
my 2 cents</font><font size=3D"2" face=3D"Verdana"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
- adriano</font><font size=3D"2" face=3D"Verdana"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
-----Original Message-----<br>
From: </font><a href=3D"mailto:core-bounces@ietf.org"><u><font size=3D"5" c=
olor=3D"#0000FF" face=3D"Courier New">core-bounces@ietf.org</font></u></a><=
font size=3D"5" face=3D"Courier New"> [</font><a href=3D"mailto:core-bounce=
s@ietf.org"><u><font size=3D"5" color=3D"#0000FF" face=3D"Courier New">mail=
to:core-bounces@ietf.org</font></u></a><font size=3D"5" face=3D"Courier New=
">] On Behalf Of Paul Duffy (paduffy)<br>
Sent: mercoled=EC 26 maggio 2010 0.47<br>
To: Zach Shelby<br>
Cc: core<br>
Subject: Re: [core] Subscribe/Notify for CoAP</font><font size=3D"2" face=
=3D"Verdana"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
On 5/25/2010 6:41 PM, Zach Shelby wrote:</font>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Hi,</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
On May 26, 2010, at 12:23 AM, Charles Palmer wrote:</font><font size=3D"4">=
<br>
<br>
</font>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Hi folks</font><font size=3D"4"><=
br>
</font><font size=3D"5" face=3D"Courier New"><br>
It occurs to me that CoRE should be keeping a close eye on ZigBee SE2.0 wor=
k, so that it is as easy as possible for ZigBee SE to use CoRE when ready. =
That suggests to me that we should align with their subscribe/notify proces=
s.</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">I am not sure I understand that. I me=
an, ZigBee SE2.0 is defining an application specific subscribe/notify mecha=
nism for that purpose so far for HTTP. This uses standard HTTP methods and =
some custom payload and REST interfaces. CoAP Req/Res is already totally co=
mpatible with SE2.0 in that respect, so alignment is already OK there. Noth=
ing stopping someone from using SE2.0 over CoAP.</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Specifying a native susbcription/notify into CoAP is another matter. We can=
't adopt a solution specific to one application as that won't solve the pro=
blems of other applications nor general HTTP mapping at all (probably would=
 make it worse). It seems that for the near future there will be a bunch of=
 HTTP push mechanisms in use without any clear standard appearing - or am I=
 wrong there?</font><font size=3D"4"><br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"4"><br>
<br>
</font><font size=3D"5" face=3D"Courier New"><br>
If COAP extends HTTP semantics with new subscription methods, it will <br>
not be possible to easily interchange HTTP/COAP, and translation <br>
gateways will become more complex to implement.</font><font size=3D"4"><br>
<br>
<br>
</font>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Zach</font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Regards - Charles</font><font siz=
e=3D"4"><br>
<br>
</font><font size=3D"5" face=3D"Courier New"><br>
-----Original Message-----<br>
From: </font><a href=3D"mailto:core-bounces@ietf.org"><u><font size=3D"5" c=
olor=3D"#0000FF" face=3D"Courier New">core-bounces@ietf.org</font></u></a><=
font size=3D"5" face=3D"Courier New"> [</font><a href=3D"mailto:core-bounce=
s@ietf.org"><u><font size=3D"5" color=3D"#0000FF" face=3D"Courier New">mail=
to:core-bounces@ietf.org</font></u></a><font size=3D"5" face=3D"Courier New=
">] On Behalf Of Paul Duffy<br>
Sent: 25 May 2010 03:48<br>
To: Zach Shelby<br>
Cc: core<br>
Subject: Re: [core] Subscribe/Notify for CoAP</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Recommend something like #2, primarily to avoid introducing non HTTP<br>
method semantics, simplifying HTTP/COAP translation.gateways, etc.</font><f=
ont size=3D"4"><br>
<br>
</font><font size=3D"5" face=3D"Courier New"><br>
On 5/24/2010 11:49 AM, Zach Shelby wrote:</font><font size=3D"4"><br>
</font>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">(thread renamed)</font><font size=
=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
We have two different paths with regard to a subscribe/notify mechanism for=
 CoAP:</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
1. Use specific Subscription and Notify mechanisms for CoAP as HTTP really =
does not include this concept.<br>
1a) Notify as a message and SUBSCRIBE as a method. This is currently used i=
n coap-01.<br>
1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but we had a=
 good list discussion about this leading to a. In practice it doesn't make =
a big difference if notification is a message or method.</font><font size=
=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0 propos=
al or GENA.</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
So far we have focused on 1 in the WG, and every now and again 2 comes up. =
At least I am not convinced that we need to suffer the drawbacks of HTTP he=
re. Anyways 2 does not help our mapping to HTTP in reality very much as the=
re is no standard way of doing this over HTTP. Thus a CoAP-HTTP proxy may e=
nd up anyways translating between multiple HTTP frameworks depending on the=
 application. So instead of doing a CoAP Notify/Subscribe to Webhooks mappi=
ng, you will could end up having to do a CoAP Webhooks to HTTP GENA mapping=
.</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New"><br>
I don't understand this last para. If CoAP sticks to the semantics of<br>
the current HTTP methods, would this not offer a fairly straightforward<br>
translation to/from HTTP?</font><font size=3D"4"><br>
<br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">From what I have heard so far 1 s=
till seems like a wise choice, although I need to look at Webhooks more dee=
ply. In reality many applications specify their own way of doing a push int=
erface using REST methods and specific payloads (ZigBee SE2.0 is such an ex=
ample). That is just fine, and might be used instead of a specific CoAP not=
ify/subscribe in that case. So 1 doesn't prevent the application using its =
own mechanism, it just provides a native way for doing push.</font><font si=
ze=3D"4"><br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">What do people think?</font><font siz=
e=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Zach</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
On May 17, 2010, at 6:44 PM, </font><a href=3D"mailto:matthieu.vial@fr.non.=
schneider-electric.com"><u><font size=3D"5" color=3D"#0000FF" face=3D"Couri=
er New">matthieu.vial@fr.non.schneider-electric.com</font></u></a><font siz=
e=3D"5" face=3D"Courier New"> wrote:</font><font size=3D"4"><br>
<br>
<br>
</font>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Hi,</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
My comments about the subscribe/notify mechanism of Zigbee IP.</font><font =
size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Pros:<br>
- Derived from the webhooks concept<br>
- If used by CORE it will be easier to map to HTTP because it uses only CRU=
D verbs.<br>
- The subscription message is extendable and could support advanced options=
 (delays, increment, ...)<br>
- Only one listening port whatever the transport binding is.</font><font si=
ze=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Cons:<br>
- No interoperability without well known URIs and a well defined subscripti=
on message format (Not sure CoAP draft is the right place to specify this).=
<br>
- XML/EXI is too complex to be the required format for the default subscrip=
tion/notification mechanism.<br>
- The notification should not require a subsequent GET to retrieve the cont=
ent.<br>
- Subresource subscription is redundant.</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Hope this could help,<br>
Matthieu</font><font size=3D"4"><br>
<br>
</font><font size=3D"5" face=3D"Courier New"><br>
&lt;graycol.gif&gt;&quot;Charles Palmer&quot;</font><a href=3D"mailto:charl=
es.palmer@onzo.com"><u><font size=3D"5" color=3D"#0000FF" face=3D"Courier N=
ew">&lt;charles.palmer@onzo.com&gt;</font></u></a><font size=3D"4"><br>
<br>
<br>
<br>
</font><font size=3D"5" face=3D"Courier New"><br>
&quot;Charles Palmer&quot;</font><a href=3D"mailto:charles.palmer@onzo.com"=
><u><font size=3D"5" color=3D"#0000FF" face=3D"Courier New">&lt;charles.pal=
mer@onzo.com&gt;</font></u></a><font size=3D"5" face=3D"Courier New"><br>
Envoy=E9 par : </font><a href=3D"mailto:core-bounces@ietf.org"><u><font siz=
e=3D"5" color=3D"#0000FF" face=3D"Courier New">core-bounces@ietf.org</font>=
</u></a><font size=3D"5" face=3D"Courier New"><br>
15/05/2010 14:06</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
&lt;ecblank.gif&gt;<br>
A<br>
&lt;ecblank.gif&gt;<br>
&quot;core&quot;</font><a href=3D"mailto:core@ietf.org"><u><font size=3D"5"=
 color=3D"#0000FF" face=3D"Courier New">&lt;core@ietf.org&gt;</font></u></a=
><font size=3D"5" face=3D"Courier New"><br>
&lt;ecblank.gif&gt;<br>
cc<br>
&lt;ecblank.gif&gt;<br>
&lt;ecblank.gif&gt;<br>
Objet<br>
&lt;ecblank.gif&gt;<br>
Re: [core] Selecting a WG document for CoAP<br>
&lt;ecblank.gif&gt; &lt;ecblank.gif&gt;</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Dear all</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Those interested in the subscribe/notify discussion might like to look<br>
at the draft Smart Energy Profile 2.0 Application Protocol<br>
Specification. It is available here:</font><u><font size=3D"4" color=3D"#00=
00FF"><br>
</font></u><a href=3D"http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSma=
rtEnergy20PublicApp"><u><font size=3D"5" color=3D"#0000FF" face=3D"Courier =
New">http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicA=
pp</font></u></a><font size=3D"5" face=3D"Courier New"><br>
licationProfile.aspx</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
It manages subscribe/notify by using POST. This seems to remove the need<br>
for SUBSCRIBE and notify.</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
&quot;Imagine a host A, which exposes a resource at http{s}://A/resource an=
d<br>
a second host B, which wishes to learn of changes to this resource. To<br>
facilitate a subscription/ notification mechanism, A would expose a<br>
resource http{s}://A/sub and B would expose a resource http{s}://B/ntfy.<br>
To subscribe to notifications regarding http{s}://A/resource, B would<br>
send a POST to the address http{s}://A/sub/B containing the URI of the<br>
resource of interest (http{s}://A/resource) and the URI of B's<br>
notification resource (http{s}://B/ntfy). Following this subscription<br>
step, should A wish to notify B of a change to the resource addressed at<br>
http{s}://A/resource, A would send a POST to the address<br>
http{s}://B/ntfy containing the URI of the resource changed<br>
(http{s}://A/resource) and the URI of A's subscription resource<br>
(http{s}://A/sub/B), should A wish to change its subscription. The host<br>
B can then query the resource (or not) at its leisure.&quot;</font><font si=
ze=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Sleepy nodes are not allowed to subscribe, and must poll.</font><font size=
=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Regards - Charles Palmer</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
-----Original Message-----<br>
From: </font><a href=3D"mailto:core-bounces@ietf.org"><u><font size=3D"5" c=
olor=3D"#0000FF" face=3D"Courier New">core-bounces@ietf.org</font></u></a><=
font size=3D"5" face=3D"Courier New"> [</font><a href=3D"mailto:core-bounce=
s@ietf.org"><u><font size=3D"5" color=3D"#0000FF" face=3D"Courier New">mail=
to:core-bounces@ietf.org</font></u></a><font size=3D"5" face=3D"Courier New=
">] On Behalf Of<br>
Angelo P. Castellani<br>
Sent: 14 May 2010 13:14<br>
To: Zach Shelby<br>
Cc: core<br>
Subject: Re: [core] Selecting a WG document for CoAP</font><font size=3D"4"=
><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Zach,</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
thanks for the comments, but please refer to my most recent e-mail for<br>
a more specific list of technical issues I'm pointing to.</font><font size=
=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
I want to do only a little integration to what I've written there.</font><f=
ont size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
In my very personal opinion, to maximize adherence with the REST model<br>
and minimize implementation effort SUBSCRIBE and NOTIFY should be<br>
mapped to methods (as discussed many times together...).</font><font size=
=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Uniform interface principle (Fielding PhD dissertation Section 5.1.5,<br>
&quot;The central feature that distinguishes the REST architectural style<b=
r>
[...]&quot;) states that to simplify the software architecture, resource<br>
interfaces/interfaces should be as general as possible.</font><font size=3D=
"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
I agree with this principle in this specific case, mainly because<br>
handling a special message type for notify leads node software design<br>
to a more complex architecture.</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
The reason is that this new message type requires special handling and<br>
introduces a complexity in the software modularization.</font><font size=3D=
"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Best,<br>
Angelo</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
On Fri, May 14, 2010 at 13:06, Zach Shelby</font><a href=3D"mailto:zach@sen=
sinode.com"><u><font size=3D"5" color=3D"#0000FF" face=3D"Courier New">&lt;=
zach@sensinode.com&gt;</font></u></a><font size=3D"5" face=3D"Courier New">=
 wrote:</font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Hi Angelo,</font><font size=3D"4"=
><br>
</font><font size=3D"5" face=3D"Courier New"><br>
On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:</font><font size=3D=
"4"><br>
<br>
<br>
</font>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Dear C. Bormann, all,</font><font=
 size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
before deciding for the final direction, I've the following<br>
observations about draft-shelby-core-coap-01</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
While I mostly share Zach's view of the protocol approach, and<br>
appreciate many aspects of the proposal, there are in my opinion</font><fon=
t size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">still</font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">some open issues that need to be =
at least discussed before the</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">current</font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">document can be selected.</font><=
font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">Of course there are plenty of open is=
sues. Remember that working group</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">documents still undertake as much cha=
nge and improvement as the WG<br>
wants, so by no means is coap-01 set in stone. I would expect at least<br>
5-10 more revisions still along the way. Already several of your ideas<br>
have been integrated into coap-01, and several more are under<br>
consideration, so it is coming along. Patience ;-)</font><font size=3D"4"><=
br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">In particular, I would like to hi=
ghlight the following:</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
a) As it is now, it is not possible to have a straightforward<br>
translation of HTTP -&gt; CoAP and viceversa: see</font><u><font size=3D"4"=
 color=3D"#0000FF"><br>
</font></u><a href=3D"http://www.ietf.org/mail-archive/web/core/current/msg=
00133.html"><u><font size=3D"5" color=3D"#0000FF" face=3D"Courier New">http=
://www.ietf.org/mail-archive/web/core/current/msg00133.html</font></u></a><=
font size=3D"5" face=3D"Courier New"> (this<br>
impacts the scalability of the web service model too)</font><font size=3D"4=
"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">In coap-01 the Method names are now i=
dentical to HTTP methods. The</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">Req/Res interaction is a direct trans=
lation. The URI hierarchy is<br>
compatible, and the URI binary code format we are still working on<br>
obviously. The only thing that takes some state to translate is<br>
Subscribe/Notify. But note, Subscribe/Notify takes some state no matter<br>
how you do it, even with HTTP-HTTP there is no clean and easy way to<br>
handle subscriptions.</font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">b) Moreover, CoAP's implementatio=
n is not as simple as it should be.<br>
I've investigated the implementation and some design choices (as<br>
Options) are leading to very high program complexity (ROM) on a<br>
MSP430-based device.</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">This we can definitely improve, and a=
lready made several optimizations</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">from -00 to -01. Here I need some ver=
y concrete proposals though. Also<br>
remember that many things are optional, for example subscribe/notify is<br>
not required if you don't need it.</font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">c) Finally when comparing HTTP me=
ssage size with CoAP message size,<br>
the resulting compression isn't as good as you may expect.</font><font size=
=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Example:<br>
HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B<br>
CoAP: 24 B with options parsing procedure requiring an added<br>
implementation complexity</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">Right, that is not how it will work i=
n practice. Working with a real</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">HTTP server that HTTP header will be =
more complex, and on the CoAP side<br>
you would chose shorter URLs. The biggest improvement possible here is<br>
from using binary coded URLs of course. We need to look at a wider range<br>
of interactions and real HTTP headers as well to check that we are<br>
efficient enough.</font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Addressing all these points poten=
tially leads to major technical<br>
modifications (especially point a) on the current draft, hence it is<br>
appropriate in my opinion to discuss these points before making the<br>
final decision.</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">I am not sure what else you have in m=
ind for a). If we just forget</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">about Subscribe/Notify then you are g=
ood to go. But then you are also<br>
not fulfilling the charter or the industry needs in that respect.</font><fo=
nt size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Thanks,<br>
Zach</font><font size=3D"4"><br>
<br>
<br>
</font>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Best regards,</font><font size=3D=
"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Angelo P. Castellani</font><font size=3D"4"><br>
<br>
</font><font size=3D"5" face=3D"Courier New"><br>
On Mon, May 10, 2010 at 18:51, Carsten Bormann</font><a href=3D"mailto:cabo=
@tzi.org"><u><font size=3D"5" color=3D"#0000FF" face=3D"Courier New">&lt;ca=
bo@tzi.org&gt;</font></u></a><font size=3D"5" face=3D"Courier New"> wrote:<=
/font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">The CORE WG has a milestone to se=
lect a WG document for CoAP in</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">April:</font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><a href=3D"http://datatracker.ietf.org/wg/core/charter/"><u><font size=
=3D"5" color=3D"#0000FF">http://datatracker.ietf.org/wg/core/charter/</font=
></u></a><font size=3D"5" face=3D"Courier New"><br>
...<br>
Apr 2010 Select WG document for basis of the CoAP protocol</font><font size=
=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Of the various documents that have been contributed,</font><font size=3D"4"=
><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">draft-shelby-core-coap has significan=
t discussion, as well as the<br>
largest number of updates (including a previous version that was still<br>
called -6lowapp-coap).</font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Today, another updated version of=
 that draft was announced. See</font><u><font size=3D"4" color=3D"#0000FF">=
<br>
</font></u><a href=3D"http://www.ietf.org/mail-archive/web/core/current/msg=
00138.html"><u><font size=3D"5" color=3D"#0000FF" face=3D"Courier New">http=
://www.ietf.org/mail-archive/web/core/current/msg00138.html</font></u></a><=
font size=3D"5" face=3D"Courier New"><br>
for the announcement and</font><u><font size=3D"4" color=3D"#0000FF"><br>
</font></u><a href=3D"http://tools.ietf.org/html/draft-shelby-core-coap-01"=
><u><font size=3D"5" color=3D"#0000FF" face=3D"Courier New">http://tools.ie=
tf.org/html/draft-shelby-core-coap-01</font></u></a><font size=3D"5" face=
=3D"Courier New"><br>
for the draft itself.</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
However, as the authors say, there are still significant TODOs.</font><font=
 size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Are we in a state yet where we can say whether this is the right</font><fon=
t size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">direction for the WG to take?</font><=
font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">If yes, is it the right direction=
? Should we adopt it as a WG</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">document?</font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">If you don't think we can say yet=
, is there a set of technical</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">decisions you would like the authors =
to take with priority?</font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Note that once a document has bec=
ome a WG document, the authors act</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">as editors for the working group, mak=
ing (and usually fleshing out the<br>
details of) any change that the WG decides it needs.</font><font size=3D"4"=
><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">If you think we can still improve=
 the draft, this is not an obstacle</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">to making it a WG document.</font><fo=
nt size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">But of course we shouldn't do tha=
t if we intend to reverse its</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">fundamental technical direction.</fon=
t><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">In order to stay roughly in sync =
with our milestones, we should</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">reach at a decision on how to go forw=
ard this week.</font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Gruesse, Carsten</font><font size=
=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F<br>
core mailing list</font><u><font size=3D"4" color=3D"#0000FF"><br>
</font></u><a href=3D"mailto:core@ietf.org"><u><font size=3D"5" color=3D"#0=
000FF" face=3D"Courier New">core@ietf.org</font></u></a><u><font size=3D"4"=
 color=3D"#0000FF"><br>
</font></u><a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font =
size=3D"5" color=3D"#0000FF" face=3D"Courier New">https://www.ietf.org/mail=
man/listinfo/core</font></u></a><font size=3D"4"><br>
<br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F<br>
core mailing list</font><u
><font size=3D"4" color=3D"#0000FF"><br>
</font></u><a href=3D"mailto:core@ietf.org"><u><font size=3D"5" color=3D"#0=
000FF" face=3D"Courier New">core@ietf.org</font></u></a><u><font size=3D"4"=
 color=3D"#0000FF"><br>
</font></u><a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font =
size=3D"5" color=3D"#0000FF" face=3D"Courier New">https://www.ietf.org/mail=
man/listinfo/core</font></u></a><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">--<br>
Zach Shelby, Chief Nerd, Sensinode Ltd.</font><u><font size=3D"4" color=3D"=
#0000FF"><br>
</font></u><a href=3D"http://zachshelby.org/"><u><font size=3D"5" color=3D"=
#0000FF" face=3D"Courier New">http://zachshelby.org</font></u></a><font siz=
e=3D"5" face=3D"Courier New"> - My blog &quot;On the Internet of Things</fo=
nt><a href=3D"http://6lowpan.net-mybook/"><u><font size=3D"5" color=3D"#000=
0FF" face=3D"Courier New">&quot;</font></u></a><u><font size=3D"4" color=3D=
"#0000FF"><br>
</font></u><a href=3D"http://6lowpan.net-mybook/"><u><font size=3D"5" color=
=3D"#0000FF" face=3D"Courier New">http://6lowpan.net - My book &quot;</font=
></u></a><font size=3D"5" face=3D"Courier New">6LoWPAN: The Wireless Embedd=
ed Internet&quot;<br>
Mobile: +358 40 7796297</font><font size=3D"4"><br>
<br>
<br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F<br>
core mailing list</font><u><font size=3D"4" color=3D"#0000FF"><br>
</font></u><a href=3D"mailto:core@ietf.org"><u><font size=3D"5" color=3D"#0=
000FF" face=3D"Courier New">core@ietf.org</font></u></a><u><font size=3D"4"=
 color=3D"#0000FF"><br>
</font></u><a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font =
size=3D"5" color=3D"#0000FF" face=3D"Courier New">https://www.ietf.org/mail=
man/listinfo/core</font></u></a><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
--------------------------------<br>
Onzo is a limited company number 06097997 registered in England&amp; Wales.=
 The<br>
registered office is 6 Great Newport Street, London, WC2H 7JB, United Kingd=
om.</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
This email message may contain confidential and/or privileged information, =
and<br>
is intended solely for the addressee(s). If you have received this email in=
<br>
error, please notify Onzo immediately. Unauthorised copying, disclosure or<=
br>
distribution of the material in this email is forbidden.<br>
--------------------------------</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F<br>
core mailing list</font><u><font size=3D"4" color=3D"#0000FF"><br>
</font></u><a href=3D"mailto:core@ietf.org"><u><font size=3D"5" color=3D"#0=
000FF" face=3D"Courier New">core@ietf.org</font></u></a><u><font size=3D"4"=
 color=3D"#0000FF"><br>
</font></u><a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font =
size=3D"5" color=3D"#0000FF" face=3D"Courier New">https://www.ietf.org/mail=
man/listinfo/core</font></u></a><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F<br>
This email has been scanned by the MessageLabs Email Security System.<br>
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F</font><font si=
ze=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F<br>
core mailing list</font><u><font size=3D"4" color=3D"#0000FF"><br>
</font></u><a href=3D"mailto:core@ietf.org"><u><font size=3D"5" color=3D"#0=
000FF" face=3D"Courier New">core@ietf.org</font></u></a><u><font size=3D"4"=
 color=3D"#0000FF"><br>
</font></u><a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font =
size=3D"5" color=3D"#0000FF" face=3D"Courier New">https://www.ietf.org/mail=
man/listinfo/core</font></u></a><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F<br>
core mailing list</font><u><font size=3D"4" color=3D"#0000FF"><br>
</font></u><a href=3D"mailto:core@ietf.org"><u><font size=3D"5" color=3D"#0=
000FF" face=3D"Courier New">core@ietf.org</font></u></a><u><font size=3D"4"=
 color=3D"#0000FF"><br>
</font></u><a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font =
size=3D"5" color=3D"#0000FF" face=3D"Courier New">https://www.ietf.org/mail=
man/listinfo/core</font></u></a><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
--------------------------------<br>
Onzo is a limited company number 06097997 registered in England&amp; Wales.=
 The<br>
registered office is 6 Great Newport Street, London, WC2H 7JB, United Kingd=
om.</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
This email message may contain confidential and/or privileged information, =
and<br>
is intended solely for the addressee(s). If you have received this email in=
<br>
error, please notify Onzo immediately. Unauthorised copying, disclosure or<=
br>
distribution of the material in this email is forbidden.<br>
--------------------------------</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New"><br>
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F<br>
core mailing list</font><u><font size=3D"4" color=3D"#0000FF"><br>
</font></u><a href=3D"mailto:core@ietf.org"><u><font size=3D"5" color=3D"#0=
000FF" face=3D"Courier New">core@ietf.org</font></u></a><u><font size=3D"4"=
 color=3D"#0000FF"><br>
</font></u><a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font =
size=3D"5" color=3D"#0000FF" face=3D"Courier New">https://www.ietf.org/mail=
man/listinfo/core</font></u></a><font size=3D"5" face=3D"Courier New"><br>
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F<br>
core mailing list</font><u><font size=3D"4" color=3D"#0000FF"><br>
</font></u><a href=3D"mailto:core@ietf.org"><u><font size=3D"5" color=3D"#0=
000FF" face=3D"Courier New">core@ietf.org</font></u></a><u><font size=3D"4"=
 color=3D"#0000FF"><br>
</font></u><a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font =
size=3D"5" color=3D"#0000FF" face=3D"Courier New">https://www.ietf.org/mail=
man/listinfo/core</font></u></a><font size=3D"4"><br>
<br>
</font><font size=3D"5"><br>
<br>
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F<br>
This email has been scanned by the MessageLabs Email Security System.<br>
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F</font><tt><fon=
t size=3D"4">=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F<br>
core mailing list</font></tt><tt><u><font size=3D"4" color=3D"#0000FF"><br>
</font></u></tt><a href=3D"mailto:core@ietf.org"><tt><u><font size=3D"4" co=
lor=3D"#0000FF">core@ietf.org</font></u></tt></a><tt><u><font size=3D"4" co=
lor=3D"#0000FF"><br>
</font></u></tt><a href=3D"https://www.ietf.org/mailman/listinfo/core"><tt>=
<u><font size=3D"4" color=3D"#0000FF">https://www.ietf.org/mailman/listinfo=
/core</font></u></tt></a><font size=3D"4"><br>
</font><br>
</ul>
</ul>
</body></html>

--1__=4EBBFDA2DFD074F58f9e8a93df938690918c4EBBFDA2DFD074F5--


--0__=4EBBFDA2DFD074F58f9e8a93df938690918c4EBBFDA2DFD074F5
Content-type: image/gif; 
	name="graycol.gif"
Content-Disposition: inline; filename="graycol.gif"
Content-ID: <2__=4EBBFDA2DFD074F58@schneider-electric.com>
Content-Transfer-Encoding: base64

R0lGODlhEAAQAKECAMzMzAAAAP///wAAACH5BAEAAAIALAAAAAAQABAAAAIXlI+py+0PopwxUbpu
ZRfKZ2zgSJbmSRYAIf4fT3B0aW1pemVkIGJ5IFVsZWFkIFNtYXJ0U2F2ZXIhAAA7


--0__=4EBBFDA2DFD074F58f9e8a93df938690918c4EBBFDA2DFD074F5
Content-type: image/gif; 
	name="pic29309.gif"
Content-Disposition: inline; filename="pic29309.gif"
Content-ID: <3__=4EBBFDA2DFD074F58@schneider-electric.com>
Content-Transfer-Encoding: base64

R0lGODlhWABDALP/AAAAAK04Qf79/o+Gm7WuwlNObwoJFCsoSMDAwGFsmIuezf///wAAAAAAAAAA
AAAAACH5BAEAAAgALAAAAABYAEMAQAT/EMlJq704682770RiFMRinqggEUNSHIchG0BCfHhOjAuh
EDeUqTASLCbBhQrhG7xis2j0lssNDopE4jfIJhDaggI8YB1sZeZgLVA9YVCpnGagVjV171aRVrYR
RghXcAGFhoUETwYxcXNyADJ3GlcSKGAwLwllVC1vjIUHBWsFilKQdI8GA5IcpApeJQt8L09lmgkH
LZikoU5wjqcyAMMFrJIDPAKvCFletKSev1HBw8KrxtjZ2tvc3d5VyKtCKW3jfz4uMKmq3xu4N0nK
BVoJQmx2LGVOmrqNjjJf2hHAQo/eDwJGTKhQMcgQEEAnEjFS98+RnW3smGkZU6ncCWav/4wYOnAI
TihRL/4FEwbp28BXMMcoscQCVxlepL4IGDSCyJyVQOu0o7CjmLN50OZlqWmyFy5/6yBBuji0AxFR
M00oQAqNIstqI6qKHUsWRAEAvagsmfUEAImyxgbmUpJk3IklNUtJOUAVLoUr1+wqDGTE4zk+T6FG
uQb3SizBCwatiiUgCBN8vrz+zFjVyQ8FWkOlg4NQiZMB5QS8QO3mpOaKnL0Z2EKvNMSILEThKhCg
zMKPVxYJh23qm9KNW7pArPynMqZDiErsTMqI+LRi3QAgkFUbXpuFKhSYZALd0O5RKa2z9EYKBbpb
qxIKsjUPRgD7I2XYV6wyrOw92ykExP8NW4URhknC5dKGE4v4NENQj2jXjmfNgOZDaXb5glRmXQ33
YEWQYNcZFnrYcIQLNzyTFDQNkXIff0ExVlY4srziQk43inZgL4rwxxINMvpFFAz1KOODHiu+4aEw
NEjFl5B3JIKWKF3k6I9bfUGp5ZZcdunll5IA4cuHvQQJ5gcsoCWOOUwgltIwAKRxJgbIkJAQZEq0
2YliZnpZZ4BH3CnYOXldOUOfQoYDqF1LFHbXCrO8xmRsfoXDXJ6ChjCAH3QlhJcT6VWE6FCkfCco
CgrMFsROrIEX3o2whVjWDjoJccN3LdggSGXLCdLEgHr1lyU3O3QxhgohNKXJCWv8JQr/PDdaqd6w
2rj1inLiGeiCJoDspAoQlYE6QWLSECehcWIYxIQES6zhbn1iImTHEQyqJ4eIxJJoUBc+3CbBuwZE
V5cJPPkIjFDdeEabQbd6WgICTxiiz0f5dBKquXF6k4senwEhYGnKEFJeGrxUZy8dB8gmAXI/sPvH
ESfCwVt5hTgYiqQqtdRNHQIU1PJ33ZqmzgE90OwLaoJcnMop1WiMmgkPHQRIrwgFuNV90A3doNKT
mrKIN07AnGcI9BQjhCBN4RfA1qIZnMqorJCogKfGQnxSCDilTVIA0yl5ciTovgLuBDKFUDE9aQcw
9SA+rjSNf9/M1gxrj6VwDTS0IUSElMzBfsj0NFXR2kwsV1A5IF1grLgLL/r1R40BZEnuBWgmQEyb
jqRwSAt6bqMCOFkvKFN2GPPkUzIm/SCF8z8pVzpbjVnMsy0vOr1hw3SaSRUhpY09v0z0J1FnwzPl
fmh+xl4WtR0zGu24I4KbMQm3lnVu2oNWxI9W/lcyzA+mCKF4DBikxb/+UWtOGRiFP8qEwAayIgIA
Ow==


--0__=4EBBFDA2DFD074F58f9e8a93df938690918c4EBBFDA2DFD074F5
Content-type: image/gif; 
	name="ecblank.gif"
Content-Disposition: inline; filename="ecblank.gif"
Content-ID: <4__=4EBBFDA2DFD074F58@schneider-electric.com>
Content-Transfer-Encoding: base64

R0lGODlhEAABAIAAAAAAAP///yH5BAEAAAEALAAAAAAQAAEAAAIEjI8ZBQA7


--0__=4EBBFDA2DFD074F58f9e8a93df938690918c4EBBFDA2DFD074F5--


From zach@sensinode.com  Fri May 28 05:50:33 2010
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 533BC3A6802 for <core@core3.amsl.com>; Fri, 28 May 2010 05:50:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.001
X-Spam-Level: 
X-Spam-Status: No, score=0.001 tagged_above=-999 required=5 tests=[AWL=1.300,  BAYES_00=-2.599, MANGLED_TOOL=2.3, 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 7+qPqroHL24k for <core@core3.amsl.com>; Fri, 28 May 2010 05:50:30 -0700 (PDT)
Received: from auth-smtp.nebula.fi (auth-smtp.nebula.fi [217.30.180.105]) by core3.amsl.com (Postfix) with ESMTP id 059613A6781 for <core@ietf.org>; Fri, 28 May 2010 05:50:29 -0700 (PDT)
Received: from [62.145.172.52] ([62.145.172.52]) (authenticated bits=0) by auth-smtp.nebula.fi (8.13.4/8.13.4) with ESMTP id o4SCoAHT016048 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Fri, 28 May 2010 15:50:10 +0300
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: text/plain; charset=iso-8859-1
From: Zach Shelby <zach@sensinode.com>
In-Reply-To: <0D212BD466921646B58854FB79092CEC021F4EF2@XMB-AMS-106.cisco.com>
Date: Fri, 28 May 2010 15:50:12 +0300
Content-Transfer-Encoding: quoted-printable
Message-Id: <6A9FCAC7-E2FA-482D-ABFF-DB6B111A9EA2@sensinode.com>
References: <0D212BD466921646B58854FB79092CEC021F4E91@XMB-AMS-106.cisco.com> <OF54E90C1C.C8997A73-ONC1257731.003EAAE3-C1257731.004127C6@schneider-electric.com> <0D212BD466921646B58854FB79092CEC021F4EF2@XMB-AMS-106.cisco.com>
To: Adriano Pezzuto (apezzuto) <apezzuto@cisco.com>
X-Mailer: Apple Mail (2.1078)
Cc: core <core@ietf.org>
Subject: Re: [core] Subscribe/Notify for CoAP
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, 28 May 2010 12:50:33 -0000

Hi,

This is a really good conversation. One thing we need to do is remember =
what our minimum requirements are for subscribe/notify and not try to =
solve something more than we should. =46rom what I know it is sufficient =
to be able to receive notifications when a URI changes or periodically. =
You might consider new URIs under this URI path to be changes to a URI =
though...=20

On May 28, 2010, at 3:08 PM, Adriano Pezzuto (apezzuto) wrote:

> Hello,
> with this flavor, the SUBSCRIBE may be replaced by a simple POST. So =
no needs to have an explicit SUBSCRIBE method.

This is what coap-01 assumes.=20

> If we want support a more oriented peer-to-peer transaction on CoAP, =
it looks to me both SUB and NOTIFY should be treated as messages.

The Request/Response model can be used peer-to-peer, and in CoAP you can =
even use a Request asynchronously. Additionally, we want a native =
RESTful subscribe/notify technique, that is, we want to subscribe to =
resources and be susequently notified about those resources when they =
change.

In that sense, you can think of a subscription as a request to receive =
asynchronous notifications about a resource (about a URI). This can be =
achieved by:

1.  as a SUBSCRIBE Request on the URI with some option indicating the =
lifetime as in coap-01,
2.  as a Subcsribe message (no methods) on the URI with some option,=20
3.  or as a POST Request on the URI with options indicating that this is =
actually a subscription and the lifetime.  This bends the meaning of =
POST quite a bit and might be prone to mistakes?

The asynchronous response is a harder one. Can we bend the meaning of a =
Request for making asynchronous notifications? Also a notification =
includes a URI about a resource on the requestor, which is inverse from =
normal Requests in REST. So the options here are:

1. as a Notify message about a URI (no methods) as in coap-01,
2. as a NOTIFY Request about a URI as was in coap-00,
3. hmmm... reusing CRUD methods really doesn't work for this one at =
all...=20

I wonder what the HTTP designers would have done if this would have been =
a requirement back then? Maybe we should ask them...

Zach

> =20
> Adriano
> =20
> From: matthieu.vial@fr.non.schneider-electric.com =
[mailto:matthieu.vial@fr.non.schneider-electric.com]=20
> Sent: venerd=EC 28 maggio 2010 13.52
> To: Adriano Pezzuto (apezzuto)
> Cc: core; core-bounces@ietf.org; robert.cragie@gridmerge.com
> Subject: Re: [core] Subscribe/Notify for CoAP
> =20
> > So strictly speaking, both NOTIFY and SUBSCRIBE are message types =
not  methods!
>=20
> SUBSCRIBE can be just an asynchronous GET on update then I think it is =
a method and NOTIFY is an asynchronous response so a message.
> But if we want to have selective notifications when a resource is =
created, updated or deleted then I think you're right NOTIFY and =
SUBSCRIBE are messages.
>=20
> Does that make sense ?
>=20
> Matthieu
>=20
> <image001.gif>"Adriano Pezzuto (apezzuto)" <apezzuto@cisco.com>
>=20
>=20
>=20
>=20
> "Adriano Pezzuto (apezzuto)" <apezzuto@cisco.com>=20
> Envoy=E9 par : core-bounces@ietf.org
> 28/05/2010 12:50
>=20
> <image003.png>
> A
> <image004.png>
> <robert.cragie@gridmerge.com>
> <image003.png>
> cc
> <image004.png>
> core <core@ietf.org>
> <image003.png>
> Objet
> <image004.png>
> Re: [core] Subscribe/Notify for CoAP
> <image004.png>
> <image004.png>
>=20
> Hi Roberto,
> I understand your point and personally agree on M2M is quite different =
from web page model. On the architectural RESTful style, the method =
information tells the server what to do with data kept in the URI =
information.
>=20
> So strictly speaking, both NOTIFY and SUBSCRIBE are message types not  =
methods!
>=20
> Adriano=20
>=20
> From: Robert Cragie [mailto:robert.cragie@gridmerge.com]=20
> Sent: venerd=EC 28 maggio 2010 11.53
> To: Adriano Pezzuto (apezzuto)
> Cc: Paul Duffy (paduffy); Zach Shelby; core
> Subject: Re: [core] Subscribe/Notify for CoAP
>=20
> I think the point here is that there are two levels we are =
considering.
>=20
> At the lowest (foundation) level, there are the transaction messages =
as described below. This provides a flexible mechanism for the =
application with regard to synchronicity and threading. This is =
important for the types of devices CoAP is being aimed at.
>=20
> Above that, the methods can be used according to the architectural =
style. So in this case, it is RESTful (COnstrained Restful =
Environments), which will naturally limit the number of methods and how =
transactions occur.
>=20
> The actual architecture using a combination of the methods and =
messages also depends on what is required at the application layer. =
Consider a typical client which wants to subscribe to a resource. That =
client controls the feed of data but needs a component which is capable =
of handling (possibly buffering) the data it receives through =
notifications. Is this a separate server? Or would we want to consider =
it part of an enhanced client model which is able to process feeds of =
data? These are the sort of models which have led to the myriad of =
solutions (GENA, Webhooks, long polling, pubsubhubbub, RESTMS etc.) =
based around HTTP which are all essentially ingenious ways of getting =
around the limitations imposed by HTTP and how it is processed for =
anything which deviates from the classic web page access model.
>=20
> I think the aim of CoAP should be clean from the word go with regard =
to supporting these more peer-to-peer transactions, where the client can =
exist on either entity and both entities can feed data to each other; =
typical in M2M applications.
>=20
> Robert
>=20
> Robert Cragie (Pacific Gas & Electric)
>=20
> Gridmerge Ltd.
> 89 Greenfield Crescent,
> Wakefield, WF4 4WA, UK
> +44 1924 910888
> +1 415 513 0064
> http://www.gridmerge.com
>=20
> On 27/05/2010 7:08 PM, Adriano Pezzuto (apezzuto) wrote:=20
> Hi Robert,
>=20
> in my personal opinion, the option 1a) brings some sort of ambiguity =
to CoAP specs.
>=20
> My be my understatement of new CoAP specs is not so deep, but now we =
have 5 methods and 3 message types: request, response and notify. Which =
methods are allowed with which messages types?
> I suppose you have to use PUT/POST method with notify message for =
asynch data notification. How to make a subscribe? I suppose you would =
use a SUBSCRIBE method with request/response message or SUBSCRIBE with =
notify message? Also what about POST/DELETE methods in a notify message? =
They not make any sense..
>=20
> I think the choice is between: option 1) -> only CRUD methods and =
option 1b) -> CRUD + SUB/NOTIFY methods, keeping in mind cost/benefits =
of both solutions.
>=20
> Adriano
>=20
> From: Robert Cragie [mailto:robert.cragie@gridmerge.com]=20
> Sent: mercoled=EC 26 maggio 2010 20.09
> To: Adriano Pezzuto (apezzuto)
> Cc: Paul Duffy (paduffy); Zach Shelby; core
> Subject: Re: [core] Subscribe/Notify for CoAP
>=20
> Hi Adrian,
>=20
> I would also prefer to keep the protocol in CoAP asynchronous. You can =
always map an asynchronous protocol to a synchronous one but, as we see =
in HTTP, it always ends up as a kludge to do it the other way round. The =
efforts which have been gone to to make HTTP quasi-asynchronous via all =
the schemes mentioned below and many more besides (all non-interoperable =
of course) is testament to how important this is for M2M communication.
>=20
> So, back to Zach's list, I favor 1a) for the following reasons:
>=20
> Foundation level of messages:
>=20
> 1. request/response can be asynchronous or synchronous messages (as =
there is a transaction ID in there)
> 2. notify is an asynchronous message
> Derived methods:
>=20
> I think it makes sense to add a pub/sub model as a useful mechanism =
for M2M.
>=20
> So, looking at it the other way round: It will be entirely possible to =
translate whatever is currently built on HTTP to CoAP based on the =
above, with all its restrictions regarding synchronous and client/server =
transactions. What may be harder is to translate directly is a =
CoAP-based application to HTTP. So I guess the question is: Do we want =
to be hamstrung to synchronous client/server transactions as dictated by =
HTTP and provide a direct mapping to HTTP, then have to come up with =
similar kludges for asynchronous peer-to-peer transactions as has been =
done in numerous ways for HTTP, or do we want to define the protocol =
cleanly to start with and accept that some sort of transaction =
relaying/conversion would have to take place at a mapping node?
>=20
> Robert
> Robert Cragie (Pacific Gas & Electric)
>=20
> Gridmerge Ltd.
> 89 Greenfield Crescent,
> Wakefield, WF4 4WA, UK
> +44 1924 910888
> +1 415 513 0064
> http://www.gridmerge.com
>=20
> On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote:=20
> Hi,
> it looks to me that CoAP should use an explicit sub/notify mechanism =
since this is the core of the machine-to-machine interaction model.
> HTTP suffers of this lack and we have seen a plethora of solutions to =
give an asynch taste to it. Webhooks and websockets are only the lasts =
of the list.
> As someone has already pointed out on this list, it is theoretically =
possible to describe sub/notify using only CRUD methods but it looks a =
little bit tricky and verbose.
>=20
> Now we have a chance to build from scratch a new protocol with and I =
think using explicit sub/notify methods with a clear and well defined =
semantic is the best option. It is easily understanding from every =
developer and will prevent to build other fanny solutions on top of the =
CoAP. HTTP does not have this well defined semantic and (for hundreds of =
other reasons also) it is not used as wide protocol for =
machine-to-machine communication.
>=20
> CoAP - as binary protocol - and with an explicit asynch model has a =
chance to be a really wide protocol for M2M communication not only for =
constrained environments.
>=20
> my 2 cents
>=20
> - adriano
>=20
> -----Original Message-----
> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of Paul Duffy (paduffy)
> Sent: mercoled=EC 26 maggio 2010 0.47
> To: Zach Shelby
> Cc: core
> Subject: Re: [core] Subscribe/Notify for CoAP
>=20
> On 5/25/2010 6:41 PM, Zach Shelby wrote:
>=20
> Hi,
>=20
> On May 26, 2010, at 12:23 AM, Charles Palmer wrote:
>=20
>=20
> Hi folks
>=20
> It occurs to me that CoRE should be keeping a close eye on ZigBee =
SE2.0 work, so that it is as easy as possible for ZigBee SE to use CoRE =
when ready. That suggests to me that we should align with their =
subscribe/notify process.
>=20
>=20
> I am not sure I understand that. I mean, ZigBee SE2.0 is defining an =
application specific subscribe/notify mechanism for that purpose so far =
for HTTP. This uses standard HTTP methods and some custom payload and =
REST interfaces. CoAP Req/Res is already totally compatible with SE2.0 =
in that respect, so alignment is already OK there. Nothing stopping =
someone from using SE2.0 over CoAP.
>=20
> Specifying a native susbcription/notify into CoAP is another matter. =
We can't adopt a solution specific to one application as that won't =
solve the problems of other applications nor general HTTP mapping at all =
(probably would make it worse). It seems that for the near future there =
will be a bunch of HTTP push mechanisms in use without any clear =
standard appearing - or am I wrong there?
>=20
>=20
>=20
>=20
> If COAP extends HTTP semantics with new subscription methods, it will=20=

> not be possible to easily interchange HTTP/COAP, and translation=20
> gateways will become more complex to implement.
>=20
>=20
>=20
> Zach
>=20
>=20
> Regards - Charles
>=20
>=20
> -----Original Message-----
> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of Paul Duffy
> Sent: 25 May 2010 03:48
> To: Zach Shelby
> Cc: core
> Subject: Re: [core] Subscribe/Notify for CoAP
>=20
> Recommend something like #2, primarily to avoid introducing non HTTP
> method semantics, simplifying HTTP/COAP translation.gateways, etc.
>=20
>=20
> On 5/24/2010 11:49 AM, Zach Shelby wrote:
>=20
> (thread renamed)
>=20
> We have two different paths with regard to a subscribe/notify =
mechanism for CoAP:
>=20
> 1. Use specific Subscription and Notify mechanisms for CoAP as HTTP =
really does not include this concept.
> 1a) Notify as a message and SUBSCRIBE as a method. This is currently =
used in coap-01.
> 1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but we =
had a good list discussion about this leading to a. In practice it =
doesn't make a big difference if notification is a message or method.
>=20
> 2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0 =
proposal or GENA.
>=20
> So far we have focused on 1 in the WG, and every now and again 2 comes =
up. At least I am not convinced that we need to suffer the drawbacks of =
HTTP here. Anyways 2 does not help our mapping to HTTP in reality very =
much as there is no standard way of doing this over HTTP. Thus a =
CoAP-HTTP proxy may end up anyways translating between multiple HTTP =
frameworks depending on the application. So instead of doing a CoAP =
Notify/Subscribe to Webhooks mapping, you will could end up having to do =
a CoAP Webhooks to HTTP GENA mapping.
>=20
>=20
>=20
> I don't understand this last para. If CoAP sticks to the semantics of
> the current HTTP methods, would this not offer a fairly =
straightforward
> translation to/from HTTP?
>=20
>=20
>=20
> =46rom what I have heard so far 1 still seems like a wise choice, =
although I need to look at Webhooks more deeply. In reality many =
applications specify their own way of doing a push interface using REST =
methods and specific payloads (ZigBee SE2.0 is such an example). That is =
just fine, and might be used instead of a specific CoAP notify/subscribe =
in that case. So 1 doesn't prevent the application using its own =
mechanism, it just provides a native way for doing push.
>=20
> What do people think?
>=20
> Zach
>=20
> On May 17, 2010, at 6:44 =
PM,matthieu.vial@fr.non.schneider-electric.com wrote:
>=20
>=20
>=20
> Hi,
>=20
> My comments about the subscribe/notify mechanism of Zigbee IP.
>=20
> Pros:
> - Derived from the webhooks concept
> - If used by CORE it will be easier to map to HTTP because it uses =
only CRUD verbs.
> - The subscription message is extendable and could support advanced =
options (delays, increment, ...)
> - Only one listening port whatever the transport binding is.
>=20
> Cons:
> - No interoperability without well known URIs and a well defined =
subscription message format (Not sure CoAP draft is the right place to =
specify this).
> - XML/EXI is too complex to be the required format for the default =
subscription/notification mechanism.
> - The notification should not require a subsequent GET to retrieve the =
content.
> - Subresource subscription is redundant.
>=20
> Hope this could help,
> Matthieu
>=20
>=20
> <graycol.gif>"Charles Palmer"<charles.palmer@onzo.com>
>=20
>=20
>=20
>=20
> "Charles Palmer"<charles.palmer@onzo.com>
> Envoy=E9 par : core-bounces@ietf.org
> 15/05/2010 14:06
>=20
> <ecblank.gif>
> A
> <ecblank.gif>
> "core"<core@ietf.org>
> <ecblank.gif>
> cc
> <ecblank.gif>
> <ecblank.gif>
> Objet
> <ecblank.gif>
> Re: [core] Selecting a WG document for CoAP
> <ecblank.gif> <ecblank.gif>
>=20
> Dear all
>=20
> Those interested in the subscribe/notify discussion might like to look
> at the draft Smart Energy Profile 2.0 Application Protocol
> Specification. It is available here:
> =
http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicApp
> licationProfile.aspx
>=20
> It manages subscribe/notify by using POST. This seems to remove the =
need
> for SUBSCRIBE and notify.
>=20
> "Imagine a host A, which exposes a resource at http{s}://A/resource =
and
> a second host B, which wishes to learn of changes to this resource. To
> facilitate a subscription/ notification mechanism, A would expose a
> resource http{s}://A/sub and B would expose a resource =
http{s}://B/ntfy.
> To subscribe to notifications regarding http{s}://A/resource, B would
> send a POST to the address http{s}://A/sub/B containing the URI of the
> resource of interest (http{s}://A/resource) and the URI of B's
> notification resource (http{s}://B/ntfy). Following this subscription
> step, should A wish to notify B of a change to the resource addressed =
at
> http{s}://A/resource, A would send a POST to the address
> http{s}://B/ntfy containing the URI of the resource changed
> (http{s}://A/resource) and the URI of A's subscription resource
> (http{s}://A/sub/B), should A wish to change its subscription. The =
host
> B can then query the resource (or not) at its leisure."
>=20
> Sleepy nodes are not allowed to subscribe, and must poll.
>=20
> Regards - Charles Palmer
>=20
> -----Original Message-----
> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of
> Angelo P. Castellani
> Sent: 14 May 2010 13:14
> To: Zach Shelby
> Cc: core
> Subject: Re: [core] Selecting a WG document for CoAP
>=20
> Zach,
>=20
> thanks for the comments, but please refer to my most recent e-mail for
> a more specific list of technical issues I'm pointing to.
>=20
> I want to do only a little integration to what I've written there.
>=20
> In my very personal opinion, to maximize adherence with the REST model
> and minimize implementation effort SUBSCRIBE and NOTIFY should be
> mapped to methods (as discussed many times together...).
>=20
> Uniform interface principle (Fielding PhD dissertation Section 5.1.5,
> "The central feature that distinguishes the REST architectural style
> [...]") states that to simplify the software architecture, resource
> interfaces/interfaces should be as general as possible.
>=20
> I agree with this principle in this specific case, mainly because
> handling a special message type for notify leads node software design
> to a more complex architecture.
>=20
> The reason is that this new message type requires special handling and
> introduces a complexity in the software modularization.
>=20
> Best,
> Angelo
>=20
> On Fri, May 14, 2010 at 13:06, Zach Shelby<zach@sensinode.com> wrote:
>=20
>=20
> Hi Angelo,
>=20
> On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:
>=20
>=20
>=20
> Dear C. Bormann, all,
>=20
> before deciding for the final direction, I've the following
> observations about draft-shelby-core-coap-01
>=20
> While I mostly share Zach's view of the protocol approach, and
> appreciate many aspects of the proposal, there are in my opinion
>=20
>=20
> still
>=20
>=20
> some open issues that need to be at least discussed before the
>=20
>=20
> current
>=20
>=20
> document can be selected.
>=20
>=20
> Of course there are plenty of open issues. Remember that working group
>=20
>=20
> documents still undertake as much change and improvement as the WG
> wants, so by no means is coap-01 set in stone. I would expect at least
> 5-10 more revisions still along the way. Already several of your ideas
> have been integrated into coap-01, and several more are under
> consideration, so it is coming along. Patience ;-)
>=20
>=20
> =20
> In particular, I would like to highlight the following:
>=20
> a) As it is now, it is not possible to have a straightforward
> translation of HTTP -> CoAP and viceversa: see
> http://www.ietf.org/mail-archive/web/core/current/msg00133.html (this
> impacts the scalability of the web service model too)
>=20
>=20
> In coap-01 the Method names are now identical to HTTP methods. The
>=20
>=20
> Req/Res interaction is a direct translation. The URI hierarchy is
> compatible, and the URI binary code format we are still working on
> obviously. The only thing that takes some state to translate is
> Subscribe/Notify. But note, Subscribe/Notify takes some state no =
matter
> how you do it, even with HTTP-HTTP there is no clean and easy way to
> handle subscriptions.
>=20
>=20
> =20
> b) Moreover, CoAP's implementation is not as simple as it should be.
> I've investigated the implementation and some design choices (as
> Options) are leading to very high program complexity (ROM) on a
> MSP430-based device.
>=20
>=20
> This we can definitely improve, and already made several optimizations
>=20
>=20
> from -00 to -01. Here I need some very concrete proposals though. Also
> remember that many things are optional, for example subscribe/notify =
is
> not required if you don't need it.
>=20
>=20
> =20
> c) Finally when comparing HTTP message size with CoAP message size,
> the resulting compression isn't as good as you may expect.
>=20
> Example:
> HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
> CoAP: 24 B with options parsing procedure requiring an added
> implementation complexity
>=20
>=20
> Right, that is not how it will work in practice. Working with a real
>=20
>=20
> HTTP server that HTTP header will be more complex, and on the CoAP =
side
> you would chose shorter URLs. The biggest improvement possible here is
> from using binary coded URLs of course. We need to look at a wider =
range
> of interactions and real HTTP headers as well to check that we are
> efficient enough.
>=20
>=20
> =20
> Addressing all these points potentially leads to major technical
> modifications (especially point a) on the current draft, hence it is
> appropriate in my opinion to discuss these points before making the
> final decision.
>=20
>=20
> I am not sure what else you have in mind for a). If we just forget
>=20
>=20
> about Subscribe/Notify then you are good to go. But then you are also
> not fulfilling the charter or the industry needs in that respect.
>=20
>=20
> Thanks,
> Zach
>=20
>=20
>=20
> Best regards,
>=20
> Angelo P. Castellani
>=20
>=20
> On Mon, May 10, 2010 at 18:51, Carsten Bormann<cabo@tzi.org>wrote:
>=20
>=20
> The CORE WG has a milestone to select a WG document for CoAP in
>=20
>=20
> April:
>=20
>=20
> http://datatracker.ietf.org/wg/core/charter/
> ...
> Apr 2010 Select WG document for basis of the CoAP protocol
>=20
> Of the various documents that have been contributed,
>=20
>=20
> draft-shelby-core-coap has significant discussion, as well as the
> largest number of updates (including a previous version that was still
> called -6lowapp-coap).
>=20
>=20
> Today, another updated version of that draft was announced. See
> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
> for the announcement and
> http://tools.ietf.org/html/draft-shelby-core-coap-01
> for the draft itself.
>=20
> However, as the authors say, there are still significant TODOs.
>=20
> Are we in a state yet where we can say whether this is the right
>=20
>=20
> direction for the WG to take?
>=20
>=20
> If yes, is it the right direction? Should we adopt it as a WG
>=20
>=20
> document?
>=20
>=20
> If you don't think we can say yet, is there a set of technical
>=20
>=20
> decisions you would like the authors to take with priority?
>=20
>=20
> Note that once a document has become a WG document, the authors act
>=20
>=20
> as editors for the working group, making (and usually fleshing out the
> details of) any change that the WG decides it needs.
>=20
>=20
> If you think we can still improve the draft, this is not an obstacle
>=20
>=20
> to making it a WG document.
>=20
>=20
> But of course we shouldn't do that if we intend to reverse its
>=20
>=20
> fundamental technical direction.
>=20
>=20
> In order to stay roughly in sync with our milestones, we should
>=20
>=20
> reach at a decision on how to go forward this week.
>=20
>=20
> Gruesse, Carsten
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>=20
>=20
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>=20
>=20
> --
> 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
>=20
>=20
>=20
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>=20
> --------------------------------
> Onzo is a limited company number 06097997 registered in England& =
Wales. The
> registered office is 6 Great Newport Street, London, WC2H 7JB, United =
Kingdom.
>=20
> This email message may contain confidential and/or privileged =
information, and
> is intended solely for the addressee(s). If you have received this =
email in
> error, please notify Onzo immediately. Unauthorised copying, =
disclosure or
> distribution of the material in this email is forbidden.
> --------------------------------
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>=20
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> ______________________________________________________________________
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>=20
>=20
> =20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>=20
> --------------------------------
> Onzo is a limited company number 06097997 registered in England& =
Wales. The
> registered office is 6 Great Newport Street, London, WC2H 7JB, United =
Kingdom.
>=20
> This email message may contain confidential and/or privileged =
information, and
> is intended solely for the addressee(s). If you have received this =
email in
> error, please notify Onzo immediately. Unauthorised copying, =
disclosure or
> distribution of the material in this email is forbidden.
> --------------------------------
>=20
>=20
> =20
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>=20
>=20
>=20
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> =
__________________________________________________________________________=
___________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>=20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core

--=20
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


From angelo.castellani@gmail.com  Fri May 28 06:13:40 2010
Return-Path: <angelo.castellani@gmail.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 259D23A68B9 for <core@core3.amsl.com>; Fri, 28 May 2010 06:13:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.812
X-Spam-Level: *
X-Spam-Status: No, score=1.812 tagged_above=-999 required=5 tests=[BAYES_05=-1.11, FM_FORGED_GMAIL=0.622, MANGLED_TOOL=2.3]
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 2JDaB7eiC0+G for <core@core3.amsl.com>; Fri, 28 May 2010 06:13:37 -0700 (PDT)
Received: from mail-gw0-f44.google.com (mail-gw0-f44.google.com [74.125.83.44]) by core3.amsl.com (Postfix) with ESMTP id EB9A73A67EF for <core@ietf.org>; Fri, 28 May 2010 06:13:36 -0700 (PDT)
Received: by gwj19 with SMTP id 19so908262gwj.31 for <core@ietf.org>; Fri, 28 May 2010 06:13:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=wwsoxd5YClEdddjO6XelXQpaSXJcHHFAObncrYhG+h0=; b=ggn1BlgB80CkZWgGpcAItSPAMuZKMF5f5P2l3x+YeoBNGx9tE0flo/8Wv7vgksFsHt fdISRWhwui92Yuip3Y3wIsEr10oPd5bBuLvnntmmVD2Lc2q0AoBW5rpaj058MRjyZ/Z4 hLXTX+oSZQQnxb3Tj25Z470xF2Q6J3aP2t5hQ=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=tN601I6eAfjc6DQa9lWC85Rtlm7XSePaIeLfqbKeSKwZ7oPQEq0rgdHiCTxNR7Slys qu18H1XaiCPXVqMIn9cfOQlQ+I8koWFR38jJo0+Lu771dToZAu8uTGgbLSoAbu1vtTap iu9aDujKwuXvt0NdvlulLBEeIIo8qX+YrMblU=
MIME-Version: 1.0
Received: by 10.91.192.14 with SMTP id u14mr696145agp.98.1275052400131; Fri,  28 May 2010 06:13:20 -0700 (PDT)
Sender: angelo.castellani@gmail.com
Received: by 10.90.26.2 with HTTP; Fri, 28 May 2010 06:13:20 -0700 (PDT)
In-Reply-To: <6A9FCAC7-E2FA-482D-ABFF-DB6B111A9EA2@sensinode.com>
References: <0D212BD466921646B58854FB79092CEC021F4E91@XMB-AMS-106.cisco.com> <OF54E90C1C.C8997A73-ONC1257731.003EAAE3-C1257731.004127C6@schneider-electric.com> <0D212BD466921646B58854FB79092CEC021F4EF2@XMB-AMS-106.cisco.com> <6A9FCAC7-E2FA-482D-ABFF-DB6B111A9EA2@sensinode.com>
Date: Fri, 28 May 2010 15:13:20 +0200
X-Google-Sender-Auth: WBw-x1ZoiNOCOnyw7mHyB6BZHJo
Message-ID: <AANLkTil1Vx4fVvrSn5X0LhDcFhDNrXAKNfUBODRkAL3a@mail.gmail.com>
From: "Angelo P. Castellani" <angelo@castellani.net>
To: Zach Shelby <zach@sensinode.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: core <core@ietf.org>
Subject: Re: [core] Subscribe/Notify for CoAP
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, 28 May 2010 13:13:40 -0000

In my opinion Subscribe/Notify are special methods of interaction
between resources.

1) SUBSCRIBE: Any resource A can send a Request to SUBSCRIBE with a
resource B (to the resource B URI).

When B receives the request, B can (should/must?) answer with a
Response to the SUBSCRIBE Request, telling the result of the request
(subscription accepted/denied/unsupported?).

2) NOTIFY: When subscription condition fires the resource B sends a
NOTIFY Request to resource A URI.

When A receives the request, A can (should/must?) answer with a
Response to the NOTIFY Request, telling the result of the request (OK,
cancel subscription, change notify options?).

In each Request must be specified the URI of the resource doing the
Request too (Option? From-URI?).

Angelo

On Fri, May 28, 2010 at 14:50, Zach Shelby <zach@sensinode.com> wrote:
> Hi,
>
> This is a really good conversation. One thing we need to do is remember w=
hat our minimum requirements are for subscribe/notify and not try to solve =
something more than we should. From what I know it is sufficient to be able=
 to receive notifications when a URI changes or periodically. You might con=
sider new URIs under this URI path to be changes to a URI though...
>
> On May 28, 2010, at 3:08 PM, Adriano Pezzuto (apezzuto) wrote:
>
>> Hello,
>> with this flavor, the SUBSCRIBE may be replaced by a simple POST. So no =
needs to have an explicit SUBSCRIBE method.
>
> This is what coap-01 assumes.
>
>> If we want support a more oriented peer-to-peer transaction on CoAP, it =
looks to me both SUB and NOTIFY should be treated as messages.
>
> The Request/Response model can be used peer-to-peer, and in CoAP you can =
even use a Request asynchronously. Additionally, we want a native RESTful s=
ubscribe/notify technique, that is, we want to subscribe to resources and b=
e susequently notified about those resources when they change.
>
> In that sense, you can think of a subscription as a request to receive as=
ynchronous notifications about a resource (about a URI). This can be achiev=
ed by:
>
> 1. =A0as a SUBSCRIBE Request on the URI with some option indicating the l=
ifetime as in coap-01,
> 2. =A0as a Subcsribe message (no methods) on the URI with some option,
> 3. =A0or as a POST Request on the URI with options indicating that this i=
s actually a subscription and the lifetime. =A0This bends the meaning of PO=
ST quite a bit and might be prone to mistakes?
>
> The asynchronous response is a harder one. Can we bend the meaning of a R=
equest for making asynchronous notifications? Also a notification includes =
a URI about a resource on the requestor, which is inverse from normal Reque=
sts in REST. So the options here are:
>
> 1. as a Notify message about a URI (no methods) as in coap-01,
> 2. as a NOTIFY Request about a URI as was in coap-00,
> 3. hmmm... reusing CRUD methods really doesn't work for this one at all..=
.
>
> I wonder what the HTTP designers would have done if this would have been =
a requirement back then? Maybe we should ask them...
>
> Zach
>
>>
>> Adriano
>>
>> From: matthieu.vial@fr.non.schneider-electric.com [mailto:matthieu.vial@=
fr.non.schneider-electric.com]
>> Sent: venerd=EC 28 maggio 2010 13.52
>> To: Adriano Pezzuto (apezzuto)
>> Cc: core; core-bounces@ietf.org; robert.cragie@gridmerge.com
>> Subject: Re: [core] Subscribe/Notify for CoAP
>>
>> > So strictly speaking, both NOTIFY and SUBSCRIBE are message types not =
=A0methods!
>>
>> SUBSCRIBE can be just an asynchronous GET on update then I think it is a=
 method and NOTIFY is an asynchronous response so a message.
>> But if we want to have selective notifications when a resource is create=
d, updated or deleted then I think you're right NOTIFY and SUBSCRIBE are me=
ssages.
>>
>> Does that make sense ?
>>
>> Matthieu
>>
>> <image001.gif>"Adriano Pezzuto (apezzuto)" <apezzuto@cisco.com>
>>
>>
>>
>>
>> "Adriano Pezzuto (apezzuto)" <apezzuto@cisco.com>
>> Envoy=E9 par : core-bounces@ietf.org
>> 28/05/2010 12:50
>>
>> <image003.png>
>> A
>> <image004.png>
>> <robert.cragie@gridmerge.com>
>> <image003.png>
>> cc
>> <image004.png>
>> core <core@ietf.org>
>> <image003.png>
>> Objet
>> <image004.png>
>> Re: [core] Subscribe/Notify for CoAP
>> <image004.png>
>> <image004.png>
>>
>> Hi Roberto,
>> I understand your point and personally agree on M2M is quite different f=
rom web page model. On the architectural RESTful style, the method informat=
ion tells the server what to do with data kept in the URI information.
>>
>> So strictly speaking, both NOTIFY and SUBSCRIBE are message types not =
=A0methods!
>>
>> Adriano
>>
>> From: Robert Cragie [mailto:robert.cragie@gridmerge.com]
>> Sent: venerd=EC 28 maggio 2010 11.53
>> To: Adriano Pezzuto (apezzuto)
>> Cc: Paul Duffy (paduffy); Zach Shelby; core
>> Subject: Re: [core] Subscribe/Notify for CoAP
>>
>> I think the point here is that there are two levels we are considering.
>>
>> At the lowest (foundation) level, there are the transaction messages as =
described below. This provides a flexible mechanism for the application wit=
h regard to synchronicity and threading. This is important for the types of=
 devices CoAP is being aimed at.
>>
>> Above that, the methods can be used according to the architectural style=
. So in this case, it is RESTful (COnstrained Restful Environments), which =
will naturally limit the number of methods and how transactions occur.
>>
>> The actual architecture using a combination of the methods and messages =
also depends on what is required at the application layer. Consider a typic=
al client which wants to subscribe to a resource. That client controls the =
feed of data but needs a component which is capable of handling (possibly b=
uffering) the data it receives through notifications. Is this a separate se=
rver? Or would we want to consider it part of an enhanced client model whic=
h is able to process feeds of data? These are the sort of models which have=
 led to the myriad of solutions (GENA, Webhooks, long polling, pubsubhubbub=
, RESTMS etc.) based around HTTP which are all essentially ingenious ways o=
f getting around the limitations imposed by HTTP and how it is processed fo=
r anything which deviates from the classic web page access model.
>>
>> I think the aim of CoAP should be clean from the word go with regard to =
supporting these more peer-to-peer transactions, where the client can exist=
 on either entity and both entities can feed data to each other; typical in=
 M2M applications.
>>
>> Robert
>>
>> Robert Cragie (Pacific Gas & Electric)
>>
>> Gridmerge Ltd.
>> 89 Greenfield Crescent,
>> Wakefield, WF4 4WA, UK
>> +44 1924 910888
>> +1 415 513 0064
>> http://www.gridmerge.com
>>
>> On 27/05/2010 7:08 PM, Adriano Pezzuto (apezzuto) wrote:
>> Hi Robert,
>>
>> in my personal opinion, the option 1a) brings some sort of ambiguity to =
CoAP specs.
>>
>> My be my understatement of new CoAP specs is not so deep, but now we hav=
e 5 methods and 3 message types: request, response and notify. Which method=
s are allowed with which messages types?
>> I suppose you have to use PUT/POST method with notify message for asynch=
 data notification. How to make a subscribe? I suppose you would use a SUBS=
CRIBE method with request/response message or SUBSCRIBE with notify message=
? Also what about POST/DELETE methods in a notify message? They not make an=
y sense..
>>
>> I think the choice is between: option 1) -> only CRUD methods and option=
 1b) -> CRUD + SUB/NOTIFY methods, keeping in mind cost/benefits of both so=
lutions.
>>
>> Adriano
>>
>> From: Robert Cragie [mailto:robert.cragie@gridmerge.com]
>> Sent: mercoled=EC 26 maggio 2010 20.09
>> To: Adriano Pezzuto (apezzuto)
>> Cc: Paul Duffy (paduffy); Zach Shelby; core
>> Subject: Re: [core] Subscribe/Notify for CoAP
>>
>> Hi Adrian,
>>
>> I would also prefer to keep the protocol in CoAP asynchronous. You can a=
lways map an asynchronous protocol to a synchronous one but, as we see in H=
TTP, it always ends up as a kludge to do it the other way round. The effort=
s which have been gone to to make HTTP quasi-asynchronous via all the schem=
es mentioned below and many more besides (all non-interoperable of course) =
is testament to how important this is for M2M communication.
>>
>> So, back to Zach's list, I favor 1a) for the following reasons:
>>
>> Foundation level of messages:
>>
>> 1. request/response can be asynchronous or synchronous messages (as ther=
e is a transaction ID in there)
>> 2. notify is an asynchronous message
>> Derived methods:
>>
>> I think it makes sense to add a pub/sub model as a useful mechanism for =
M2M.
>>
>> So, looking at it the other way round: It will be entirely possible to t=
ranslate whatever is currently built on HTTP to CoAP based on the above, wi=
th all its restrictions regarding synchronous and client/server transaction=
s. What may be harder is to translate directly is a CoAP-based application =
to HTTP. So I guess the question is: Do we want to be hamstrung to synchron=
ous client/server transactions as dictated by HTTP and provide a direct map=
ping to HTTP, then have to come up with similar kludges for asynchronous pe=
er-to-peer transactions as has been done in numerous ways for HTTP, or do w=
e want to define the protocol cleanly to start with and accept that some so=
rt of transaction relaying/conversion would have to take place at a mapping=
 node?
>>
>> Robert
>> Robert Cragie (Pacific Gas & Electric)
>>
>> Gridmerge Ltd.
>> 89 Greenfield Crescent,
>> Wakefield, WF4 4WA, UK
>> +44 1924 910888
>> +1 415 513 0064
>> http://www.gridmerge.com
>>
>> On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote:
>> Hi,
>> it looks to me that CoAP should use an explicit sub/notify mechanism sin=
ce this is the core of the machine-to-machine interaction model.
>> HTTP suffers of this lack and we have seen a plethora of solutions to gi=
ve an asynch taste to it. Webhooks and websockets are only the lasts of the=
 list.
>> As someone has already pointed out on this list, it is theoretically pos=
sible to describe sub/notify using only CRUD methods but it looks a little =
bit tricky and verbose.
>>
>> Now we have a chance to build from scratch a new protocol with and I thi=
nk using explicit sub/notify methods with a clear and well defined semantic=
 is the best option. It is easily understanding from every developer and wi=
ll prevent to build other fanny solutions on top of the CoAP. HTTP does not=
 have this well defined semantic and (for hundreds of other reasons also) i=
t is not used as wide protocol for machine-to-machine communication.
>>
>> CoAP - as binary protocol - and with an explicit asynch model has a chan=
ce to be a really wide protocol for M2M communication not only for constrai=
ned environments.
>>
>> my 2 cents
>>
>> - adriano
>>
>> -----Original Message-----
>> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of =
Paul Duffy (paduffy)
>> Sent: mercoled=EC 26 maggio 2010 0.47
>> To: Zach Shelby
>> Cc: core
>> Subject: Re: [core] Subscribe/Notify for CoAP
>>
>> On 5/25/2010 6:41 PM, Zach Shelby wrote:
>>
>> Hi,
>>
>> On May 26, 2010, at 12:23 AM, Charles Palmer wrote:
>>
>>
>> Hi folks
>>
>> It occurs to me that CoRE should be keeping a close eye on ZigBee SE2.0 =
work, so that it is as easy as possible for ZigBee SE to use CoRE when read=
y. That suggests to me that we should align with their subscribe/notify pro=
cess.
>>
>>
>> I am not sure I understand that. I mean, ZigBee SE2.0 is defining an app=
lication specific subscribe/notify mechanism for that purpose so far for HT=
TP. This uses standard HTTP methods and some custom payload and REST interf=
aces. CoAP Req/Res is already totally compatible with SE2.0 in that respect=
, so alignment is already OK there. Nothing stopping someone from using SE2=
.0 over CoAP.
>>
>> Specifying a native susbcription/notify into CoAP is another matter. We =
can't adopt a solution specific to one application as that won't solve the =
problems of other applications nor general HTTP mapping at all (probably wo=
uld make it worse). It seems that for the near future there will be a bunch=
 of HTTP push mechanisms in use without any clear standard appearing - or a=
m I wrong there?
>>
>>
>>
>>
>> If COAP extends HTTP semantics with new subscription methods, it will
>> not be possible to easily interchange HTTP/COAP, and translation
>> gateways will become more complex to implement.
>>
>>
>>
>> Zach
>>
>>
>> Regards - Charles
>>
>>
>> -----Original Message-----
>> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of =
Paul Duffy
>> Sent: 25 May 2010 03:48
>> To: Zach Shelby
>> Cc: core
>> Subject: Re: [core] Subscribe/Notify for CoAP
>>
>> Recommend something like #2, primarily to avoid introducing non HTTP
>> method semantics, simplifying HTTP/COAP translation.gateways, etc.
>>
>>
>> On 5/24/2010 11:49 AM, Zach Shelby wrote:
>>
>> (thread renamed)
>>
>> We have two different paths with regard to a subscribe/notify mechanism =
for CoAP:
>>
>> 1. Use specific Subscription and Notify mechanisms for CoAP as HTTP real=
ly does not include this concept.
>> 1a) Notify as a message and SUBSCRIBE as a method. This is currently use=
d in coap-01.
>> 1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but we ha=
d a good list discussion about this leading to a. In practice it doesn't ma=
ke a big difference if notification is a message or method.
>>
>> 2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0 pro=
posal or GENA.
>>
>> So far we have focused on 1 in the WG, and every now and again 2 comes u=
p. At least I am not convinced that we need to suffer the drawbacks of HTTP=
 here. Anyways 2 does not help our mapping to HTTP in reality very much as =
there is no standard way of doing this over HTTP. Thus a CoAP-HTTP proxy ma=
y end up anyways translating between multiple HTTP frameworks depending on =
the application. So instead of doing a CoAP Notify/Subscribe to Webhooks ma=
pping, you will could end up having to do a CoAP Webhooks to HTTP GENA mapp=
ing.
>>
>>
>>
>> I don't understand this last para. If CoAP sticks to the semantics of
>> the current HTTP methods, would this not offer a fairly straightforward
>> translation to/from HTTP?
>>
>>
>>
>> From what I have heard so far 1 still seems like a wise choice, although=
 I need to look at Webhooks more deeply. In reality many applications speci=
fy their own way of doing a push interface using REST methods and specific =
payloads (ZigBee SE2.0 is such an example). That is just fine, and might be=
 used instead of a specific CoAP notify/subscribe in that case. So 1 doesn'=
t prevent the application using its own mechanism, it just provides a nativ=
e way for doing push.
>>
>> What do people think?
>>
>> Zach
>>
>> On May 17, 2010, at 6:44 PM,matthieu.vial@fr.non.schneider-electric.com =
wrote:
>>
>>
>>
>> Hi,
>>
>> My comments about the subscribe/notify mechanism of Zigbee IP.
>>
>> Pros:
>> - Derived from the webhooks concept
>> - If used by CORE it will be easier to map to HTTP because it uses only =
CRUD verbs.
>> - The subscription message is extendable and could support advanced opti=
ons (delays, increment, ...)
>> - Only one listening port whatever the transport binding is.
>>
>> Cons:
>> - No interoperability without well known URIs and a well defined subscri=
ption message format (Not sure CoAP draft is the right place to specify thi=
s).
>> - XML/EXI is too complex to be the required format for the default subsc=
ription/notification mechanism.
>> - The notification should not require a subsequent GET to retrieve the c=
ontent.
>> - Subresource subscription is redundant.
>>
>> Hope this could help,
>> Matthieu
>>
>>
>> <graycol.gif>"Charles Palmer"<charles.palmer@onzo.com>
>>
>>
>>
>>
>> "Charles Palmer"<charles.palmer@onzo.com>
>> Envoy=E9 par : core-bounces@ietf.org
>> 15/05/2010 14:06
>>
>> <ecblank.gif>
>> A
>> <ecblank.gif>
>> "core"<core@ietf.org>
>> <ecblank.gif>
>> cc
>> <ecblank.gif>
>> <ecblank.gif>
>> Objet
>> <ecblank.gif>
>> Re: [core] Selecting a WG document for CoAP
>> <ecblank.gif> <ecblank.gif>
>>
>> Dear all
>>
>> Those interested in the subscribe/notify discussion might like to look
>> at the draft Smart Energy Profile 2.0 Application Protocol
>> Specification. It is available here:
>> http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicApp
>> licationProfile.aspx
>>
>> It manages subscribe/notify by using POST. This seems to remove the need
>> for SUBSCRIBE and notify.
>>
>> "Imagine a host A, which exposes a resource at http{s}://A/resource and
>> a second host B, which wishes to learn of changes to this resource. To
>> facilitate a subscription/ notification mechanism, A would expose a
>> resource http{s}://A/sub and B would expose a resource http{s}://B/ntfy.
>> To subscribe to notifications regarding http{s}://A/resource, B would
>> send a POST to the address http{s}://A/sub/B containing the URI of the
>> resource of interest (http{s}://A/resource) and the URI of B's
>> notification resource (http{s}://B/ntfy). Following this subscription
>> step, should A wish to notify B of a change to the resource addressed at
>> http{s}://A/resource, A would send a POST to the address
>> http{s}://B/ntfy containing the URI of the resource changed
>> (http{s}://A/resource) and the URI of A's subscription resource
>> (http{s}://A/sub/B), should A wish to change its subscription. The host
>> B can then query the resource (or not) at its leisure."
>>
>> Sleepy nodes are not allowed to subscribe, and must poll.
>>
>> Regards - Charles Palmer
>>
>> -----Original Message-----
>> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of
>> Angelo P. Castellani
>> Sent: 14 May 2010 13:14
>> To: Zach Shelby
>> Cc: core
>> Subject: Re: [core] Selecting a WG document for CoAP
>>
>> Zach,
>>
>> thanks for the comments, but please refer to my most recent e-mail for
>> a more specific list of technical issues I'm pointing to.
>>
>> I want to do only a little integration to what I've written there.
>>
>> In my very personal opinion, to maximize adherence with the REST model
>> and minimize implementation effort SUBSCRIBE and NOTIFY should be
>> mapped to methods (as discussed many times together...).
>>
>> Uniform interface principle (Fielding PhD dissertation Section 5.1.5,
>> "The central feature that distinguishes the REST architectural style
>> [...]") states that to simplify the software architecture, resource
>> interfaces/interfaces should be as general as possible.
>>
>> I agree with this principle in this specific case, mainly because
>> handling a special message type for notify leads node software design
>> to a more complex architecture.
>>
>> The reason is that this new message type requires special handling and
>> introduces a complexity in the software modularization.
>>
>> Best,
>> Angelo
>>
>> On Fri, May 14, 2010 at 13:06, Zach Shelby<zach@sensinode.com> wrote:
>>
>>
>> Hi Angelo,
>>
>> On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:
>>
>>
>>
>> Dear C. Bormann, all,
>>
>> before deciding for the final direction, I've the following
>> observations about draft-shelby-core-coap-01
>>
>> While I mostly share Zach's view of the protocol approach, and
>> appreciate many aspects of the proposal, there are in my opinion
>>
>>
>> still
>>
>>
>> some open issues that need to be at least discussed before the
>>
>>
>> current
>>
>>
>> document can be selected.
>>
>>
>> Of course there are plenty of open issues. Remember that working group
>>
>>
>> documents still undertake as much change and improvement as the WG
>> wants, so by no means is coap-01 set in stone. I would expect at least
>> 5-10 more revisions still along the way. Already several of your ideas
>> have been integrated into coap-01, and several more are under
>> consideration, so it is coming along. Patience ;-)
>>
>>
>>
>> In particular, I would like to highlight the following:
>>
>> a) As it is now, it is not possible to have a straightforward
>> translation of HTTP -> CoAP and viceversa: see
>> http://www.ietf.org/mail-archive/web/core/current/msg00133.html (this
>> impacts the scalability of the web service model too)
>>
>>
>> In coap-01 the Method names are now identical to HTTP methods. The
>>
>>
>> Req/Res interaction is a direct translation. The URI hierarchy is
>> compatible, and the URI binary code format we are still working on
>> obviously. The only thing that takes some state to translate is
>> Subscribe/Notify. But note, Subscribe/Notify takes some state no matter
>> how you do it, even with HTTP-HTTP there is no clean and easy way to
>> handle subscriptions.
>>
>>
>>
>> b) Moreover, CoAP's implementation is not as simple as it should be.
>> I've investigated the implementation and some design choices (as
>> Options) are leading to very high program complexity (ROM) on a
>> MSP430-based device.
>>
>>
>> This we can definitely improve, and already made several optimizations
>>
>>
>> from -00 to -01. Here I need some very concrete proposals though. Also
>> remember that many things are optional, for example subscribe/notify is
>> not required if you don't need it.
>>
>>
>>
>> c) Finally when comparing HTTP message size with CoAP message size,
>> the resulting compression isn't as good as you may expect.
>>
>> Example:
>> HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
>> CoAP: 24 B with options parsing procedure requiring an added
>> implementation complexity
>>
>>
>> Right, that is not how it will work in practice. Working with a real
>>
>>
>> HTTP server that HTTP header will be more complex, and on the CoAP side
>> you would chose shorter URLs. The biggest improvement possible here is
>> from using binary coded URLs of course. We need to look at a wider range
>> of interactions and real HTTP headers as well to check that we are
>> efficient enough.
>>
>>
>>
>> Addressing all these points potentially leads to major technical
>> modifications (especially point a) on the current draft, hence it is
>> appropriate in my opinion to discuss these points before making the
>> final decision.
>>
>>
>> I am not sure what else you have in mind for a). If we just forget
>>
>>
>> about Subscribe/Notify then you are good to go. But then you are also
>> not fulfilling the charter or the industry needs in that respect.
>>
>>
>> Thanks,
>> Zach
>>
>>
>>
>> Best regards,
>>
>> Angelo P. Castellani
>>
>>
>> On Mon, May 10, 2010 at 18:51, Carsten Bormann<cabo@tzi.org>wrote:
>>
>>
>> The CORE WG has a milestone to select a WG document for CoAP in
>>
>>
>> April:
>>
>>
>> http://datatracker.ietf.org/wg/core/charter/
>> ...
>> Apr 2010 Select WG document for basis of the CoAP protocol
>>
>> Of the various documents that have been contributed,
>>
>>
>> draft-shelby-core-coap has significant discussion, as well as the
>> largest number of updates (including a previous version that was still
>> called -6lowapp-coap).
>>
>>
>> Today, another updated version of that draft was announced. See
>> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
>> for the announcement and
>> http://tools.ietf.org/html/draft-shelby-core-coap-01
>> for the draft itself.
>>
>> However, as the authors say, there are still significant TODOs.
>>
>> Are we in a state yet where we can say whether this is the right
>>
>>
>> direction for the WG to take?
>>
>>
>> If yes, is it the right direction? Should we adopt it as a WG
>>
>>
>> document?
>>
>>
>> If you don't think we can say yet, is there a set of technical
>>
>>
>> decisions you would like the authors to take with priority?
>>
>>
>> Note that once a document has become a WG document, the authors act
>>
>>
>> as editors for the working group, making (and usually fleshing out the
>> details of) any change that the WG decides it needs.
>>
>>
>> If you think we can still improve the draft, this is not an obstacle
>>
>>
>> to making it a WG document.
>>
>>
>> But of course we shouldn't do that if we intend to reverse its
>>
>>
>> fundamental technical direction.
>>
>>
>> In order to stay roughly in sync with our milestones, we should
>>
>>
>> reach at a decision on how to go forward this week.
>>
>>
>> Gruesse, Carsten
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>>
>>
>> _______________________________________________
>> 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
>>
>>
>>
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>> --------------------------------
>> Onzo is a limited company number 06097997 registered in England& Wales. =
The
>> registered office is 6 Great Newport Street, London, WC2H 7JB, United Ki=
ngdom.
>>
>> This email message may contain confidential and/or privileged informatio=
n, and
>> is intended solely for the addressee(s). If you have received this email=
 in
>> error, please notify Onzo immediately. Unauthorised copying, disclosure =
or
>> distribution of the material in this email is forbidden.
>> --------------------------------
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>> ______________________________________________________________________
>> This email has been scanned by the MessageLabs Email Security System.
>> ______________________________________________________________________
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>>
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>> --------------------------------
>> Onzo is a limited company number 06097997 registered in England& Wales. =
The
>> registered office is 6 Great Newport Street, London, WC2H 7JB, United Ki=
ngdom.
>>
>> This email message may contain confidential and/or privileged informatio=
n, and
>> is intended solely for the addressee(s). If you have received this email=
 in
>> error, please notify Onzo immediately. Unauthorised copying, disclosure =
or
>> distribution of the material in this email is forbidden.
>> --------------------------------
>>
>>
>>
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>>
>>
>> ______________________________________________________________________
>> This email has been scanned by the MessageLabs Email Security System.
>> ________________________________________________________________________=
_____________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>
> --
> Zach Shelby, Chief Nerd, Sensinode Ltd.
> http://zachshelby.org =A0- My blog "On the Internet of Things"
> http://6lowpan.net - My book "6LoWPAN: The Wireless Embedded Internet"
> Mobile: +358 40 7796297
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>

From matthieu.vial@fr.non.schneider-electric.com  Fri May 28 06:29:52 2010
Return-Path: <matthieu.vial@fr.non.schneider-electric.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 4010F3A67EF for <core@core3.amsl.com>; Fri, 28 May 2010 06:29:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.275
X-Spam-Level: **
X-Spam-Status: No, score=2.275 tagged_above=-999 required=5 tests=[AWL=-0.249,  BAYES_20=-0.74, HTML_MESSAGE=0.001, MANGLED_TOOL=2.3, RCVD_IN_DNSWL_LOW=-1, SARE_GIF_ATTACH=1.42, TVD_FW_GRAPHIC_NAME_MID=0.543]
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 MPMzBgoo3z3F for <core@core3.amsl.com>; Fri, 28 May 2010 06:29:47 -0700 (PDT)
Received: from mailX02.eud.schneider-electric.com (mailx02.eud.schneider-electric.com [205.167.7.38]) by core3.amsl.com (Postfix) with ESMTP id 593283A6804 for <core@ietf.org>; Fri, 28 May 2010 06:29:46 -0700 (PDT)
Received: from ATEUI01.schneider-electric.com ([10.198.14.9]) by mailX02.eud.schneider-electric.com with ESMTP id 2010052815171306-90718 ; Fri, 28 May 2010 15:17:13 +0200 
In-Reply-To: <6A9FCAC7-E2FA-482D-ABFF-DB6B111A9EA2@sensinode.com>
To: Zach Shelby <zach@sensinode.com>
X-Mailer: Lotus Notes Release 6.5.6 March 06, 2007
Message-ID: <OF03BDFDE8.D13785F2-ONC1257731.0049771F-C1257731.0049A440@schneider-electric.com>
From: matthieu.vial@fr.non.schneider-electric.com
Date: Fri, 28 May 2010 15:24:21 +0200
MIME-Version: 1.0
X-MIMETrack: Serialize by Router on ATEUI01.Schneider-Electric.com/T/SVR/Schneider at 28/05/2010 15:24:26, Itemize by SMTP Server on AXEU2OUT.schneider-electric.com/X/SVR/SEIxtra at 28/05/2010 15:17:13, Serialize by Router on AXEU2OUT.schneider-electric.com/X/SVR/SEIxtra at 28/05/2010 15:22:23
Content-type: multipart/related;  Boundary="0__=4EBBFDA2DFDAF18F8f9e8a93df938690918c4EBBFDA2DFDAF18F"
Cc: core <core@ietf.org>
Subject: Re: [core] Subscribe/Notify for CoAP
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, 28 May 2010 13:29:52 -0000

--0__=4EBBFDA2DFDAF18F8f9e8a93df938690918c4EBBFDA2DFDAF18F
Content-type: multipart/alternative; 
	Boundary="1__=4EBBFDA2DFDAF18F8f9e8a93df938690918c4EBBFDA2DFDAF18F"

--1__=4EBBFDA2DFDAF18F8f9e8a93df938690918c4EBBFDA2DFDAF18F
Content-transfer-encoding: quoted-printable
Content-type: text/plain; charset=ISO-8859-1




Hi,

The Waka protocol from Roy Fielding has a new monitor verb
http://en.wikipedia.org/wiki/Waka_%28protocol%29

Matthieu





                                                                       =
    
             Zach Shelby                                               =
    
             <zach@sensinode.c                                         =
    
             om>                                                       =
  A 
                                       Adriano Pezzuto (apezzuto)      =
    
             28/05/2010 14:50          <apezzuto@cisco.com>            =
    
                                                                       =
 cc 
                                       Matthieu                        =
    
                                       Vial/FR/Non/Schneider@Europe, co=
re  
                                       <core@ietf.org>                 =
    
                                                                     Ob=
jet 
                                       Re: [core] Subscribe/Notify for =
    
                                       CoAP                            =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    
                                                                       =
    




Hi,

This is a really good conversation. One thing we need to do is remember=

what our minimum requirements are for subscribe/notify and not try to s=
olve
something more than we should. From what I know it is sufficient to be =
able
to receive notifications when a URI changes or periodically. You might
consider new URIs under this URI path to be changes to a URI though...

On May 28, 2010, at 3:08 PM, Adriano Pezzuto (apezzuto) wrote:

> Hello,
> with this flavor, the SUBSCRIBE may be replaced by a simple POST. So =
no
needs to have an explicit SUBSCRIBE method.

This is what coap-01 assumes.

> If we want support a more oriented peer-to-peer transaction on CoAP, =
it
looks to me both SUB and NOTIFY should be treated as messages.

The Request/Response model can be used peer-to-peer, and in CoAP you ca=
n
even use a Request asynchronously. Additionally, we want a native RESTf=
ul
subscribe/notify technique, that is, we want to subscribe to resources =
and
be susequently notified about those resources when they change.

In that sense, you can think of a subscription as a request to receive
asynchronous notifications about a resource (about a URI). This can be
achieved by:

1.  as a SUBSCRIBE Request on the URI with some option indicating the
lifetime as in coap-01,
2.  as a Subcsribe message (no methods) on the URI with some option,
3.  or as a POST Request on the URI with options indicating that this i=
s
actually a subscription and the lifetime.  This bends the meaning of PO=
ST
quite a bit and might be prone to mistakes?

The asynchronous response is a harder one. Can we bend the meaning of a=

Request for making asynchronous notifications? Also a notification incl=
udes
a URI about a resource on the requestor, which is inverse from normal
Requests in REST. So the options here are:

1. as a Notify message about a URI (no methods) as in coap-01,
2. as a NOTIFY Request about a URI as was in coap-00,
3. hmmm... reusing CRUD methods really doesn't work for this one at all=
...

I wonder what the HTTP designers would have done if this would have bee=
n a
requirement back then? Maybe we should ask them...

Zach

>
> Adriano
>
> From: matthieu.vial@fr.non.schneider-electric.com
[mailto:matthieu.vial@fr.non.schneider-electric.com]
> Sent: venerd=EC 28 maggio 2010 13.52
> To: Adriano Pezzuto (apezzuto)
> Cc: core; core-bounces@ietf.org; robert.cragie@gridmerge.com
> Subject: Re: [core] Subscribe/Notify for CoAP
>
> > So strictly speaking, both NOTIFY and SUBSCRIBE are message types n=
ot
methods!
>
> SUBSCRIBE can be just an asynchronous GET on update then I think it i=
s a
method and NOTIFY is an asynchronous response so a message.
> But if we want to have selective notifications when a resource is
created, updated or deleted then I think you're right NOTIFY and SUBSCR=
IBE
are messages.
>
> Does that make sense ?
>
> Matthieu
>
> <image001.gif>"Adriano Pezzuto (apezzuto)" <apezzuto@cisco.com>
>
>
>
>
> "Adriano Pezzuto (apezzuto)" <apezzuto@cisco.com>
> Envoy=E9 par : core-bounces@ietf.org
> 28/05/2010 12:50
>
> <image003.png>
> A
> <image004.png>
> <robert.cragie@gridmerge.com>
> <image003.png>
> cc
> <image004.png>
> core <core@ietf.org>
> <image003.png>
> Objet
> <image004.png>
> Re: [core] Subscribe/Notify for CoAP
> <image004.png>
> <image004.png>
>
> Hi Roberto,
> I understand your point and personally agree on M2M is quite differen=
t
from web page model. On the architectural RESTful style, the method
information tells the server what to do with data kept in the URI
information.
>
> So strictly speaking, both NOTIFY and SUBSCRIBE are message types not=

methods!
>
> Adriano
>
> From: Robert Cragie [mailto:robert.cragie@gridmerge.com]
> Sent: venerd=EC 28 maggio 2010 11.53
> To: Adriano Pezzuto (apezzuto)
> Cc: Paul Duffy (paduffy); Zach Shelby; core
> Subject: Re: [core] Subscribe/Notify for CoAP
>
> I think the point here is that there are two levels we are considerin=
g.
>
> At the lowest (foundation) level, there are the transaction messages =
as
described below. This provides a flexible mechanism for the application=

with regard to synchronicity and threading. This is important for the t=
ypes
of devices CoAP is being aimed at.
>
> Above that, the methods can be used according to the architectural st=
yle.
So in this case, it is RESTful (COnstrained Restful Environments), whic=
h
will naturally limit the number of methods and how transactions occur.
>
> The actual architecture using a combination of the methods and messag=
es
also depends on what is required at the application layer. Consider a
typical client which wants to subscribe to a resource. That client cont=
rols
the feed of data but needs a component which is capable of handling
(possibly buffering) the data it receives through notifications. Is thi=
s a
separate server? Or would we want to consider it part of an enhanced cl=
ient
model which is able to process feeds of data? These are the sort of mod=
els
which have led to the myriad of solutions (GENA, Webhooks, long polling=
,
pubsubhubbub, RESTMS etc.) based around HTTP which are all essentially
ingenious ways of getting around the limitations imposed by HTTP and ho=
w it
is processed for anything which deviates from the classic web page acce=
ss
model.
>
> I think the aim of CoAP should be clean from the word go with regard =
to
supporting these more peer-to-peer transactions, where the client can e=
xist
on either entity and both entities can feed data to each other; typical=
 in
M2M applications.
>
> Robert
>
> Robert Cragie (Pacific Gas & Electric)
>
> Gridmerge Ltd.
> 89 Greenfield Crescent,
> Wakefield, WF4 4WA, UK
> +44 1924 910888
> +1 415 513 0064
> http://www.gridmerge.com
>
> On 27/05/2010 7:08 PM, Adriano Pezzuto (apezzuto) wrote:
> Hi Robert,
>
> in my personal opinion, the option 1a) brings some sort of ambiguity =
to
CoAP specs.
>
> My be my understatement of new CoAP specs is not so deep, but now we =
have
5 methods and 3 message types: request, response and notify. Which meth=
ods
are allowed with which messages types?
> I suppose you have to use PUT/POST method with notify message for asy=
nch
data notification. How to make a subscribe? I suppose you would use a
SUBSCRIBE method with request/response message or SUBSCRIBE with notify=

message? Also what about POST/DELETE methods in a notify message? They =
not
make any sense..
>
> I think the choice is between: option 1) -> only CRUD methods and opt=
ion
1b) -> CRUD + SUB/NOTIFY methods, keeping in mind cost/benefits of both=

solutions.
>
> Adriano
>
> From: Robert Cragie [mailto:robert.cragie@gridmerge.com]
> Sent: mercoled=EC 26 maggio 2010 20.09
> To: Adriano Pezzuto (apezzuto)
> Cc: Paul Duffy (paduffy); Zach Shelby; core
> Subject: Re: [core] Subscribe/Notify for CoAP
>
> Hi Adrian,
>
> I would also prefer to keep the protocol in CoAP asynchronous. You ca=
n
always map an asynchronous protocol to a synchronous one but, as we see=
 in
HTTP, it always ends up as a kludge to do it the other way round. The
efforts which have been gone to to make HTTP quasi-asynchronous via all=
 the
schemes mentioned below and many more besides (all non-interoperable of=

course) is testament to how important this is for M2M communication.
>
> So, back to Zach's list, I favor 1a) for the following reasons:
>
> Foundation level of messages:
>
> 1. request/response can be asynchronous or synchronous messages (as t=
here
is a transaction ID in there)
> 2. notify is an asynchronous message
> Derived methods:
>
> I think it makes sense to add a pub/sub model as a useful mechanism f=
or
M2M.
>
> So, looking at it the other way round: It will be entirely possible t=
o
translate whatever is currently built on HTTP to CoAP based on the abov=
e,
with all its restrictions regarding synchronous and client/server
transactions. What may be harder is to translate directly is a CoAP-bas=
ed
application to HTTP. So I guess the question is: Do we want to be hamst=
rung
to synchronous client/server transactions as dictated by HTTP and provi=
de a
direct mapping to HTTP, then have to come up with similar kludges for
asynchronous peer-to-peer transactions as has been done in numerous way=
s
for HTTP, or do we want to define the protocol cleanly to start with an=
d
accept that some sort of transaction relaying/conversion would have to =
take
place at a mapping node?
>
> Robert
> Robert Cragie (Pacific Gas & Electric)
>
> Gridmerge Ltd.
> 89 Greenfield Crescent,
> Wakefield, WF4 4WA, UK
> +44 1924 910888
> +1 415 513 0064
> http://www.gridmerge.com
>
> On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote:
> Hi,
> it looks to me that CoAP should use an explicit sub/notify mechanism
since this is the core of the machine-to-machine interaction model.
> HTTP suffers of this lack and we have seen a plethora of solutions to=

give an asynch taste to it. Webhooks and websockets are only the lasts =
of
the list.
> As someone has already pointed out on this list, it is theoretically
possible to describe sub/notify using only CRUD methods but it looks a
little bit tricky and verbose.
>
> Now we have a chance to build from scratch a new protocol with and I
think using explicit sub/notify methods with a clear and well defined
semantic is the best option. It is easily understanding from every
developer and will prevent to build other fanny solutions on top of the=

CoAP. HTTP does not have this well defined semantic and (for hundreds o=
f
other reasons also) it is not used as wide protocol for machine-to-mach=
ine
communication.
>
> CoAP - as binary protocol - and with an explicit asynch model has a
chance to be a really wide protocol for M2M communication not only for
constrained environments.
>
> my 2 cents
>
> - adriano
>
> -----Original Message-----
> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of
Paul Duffy (paduffy)
> Sent: mercoled=EC 26 maggio 2010 0.47
> To: Zach Shelby
> Cc: core
> Subject: Re: [core] Subscribe/Notify for CoAP
>
> On 5/25/2010 6:41 PM, Zach Shelby wrote:
>
> Hi,
>
> On May 26, 2010, at 12:23 AM, Charles Palmer wrote:
>
>
> Hi folks
>
> It occurs to me that CoRE should be keeping a close eye on ZigBee SE2=
.0
work, so that it is as easy as possible for ZigBee SE to use CoRE when
ready. That suggests to me that we should align with their subscribe/no=
tify
process.
>
>
> I am not sure I understand that. I mean, ZigBee SE2.0 is defining an
application specific subscribe/notify mechanism for that purpose so far=
 for
HTTP. This uses standard HTTP methods and some custom payload and REST
interfaces. CoAP Req/Res is already totally compatible with SE2.0 in th=
at
respect, so alignment is already OK there. Nothing stopping someone fro=
m
using SE2.0 over CoAP.
>
> Specifying a native susbcription/notify into CoAP is another matter. =
We
can't adopt a solution specific to one application as that won't solve =
the
problems of other applications nor general HTTP mapping at all (probabl=
y
would make it worse). It seems that for the near future there will be a=

bunch of HTTP push mechanisms in use without any clear standard appeari=
ng -
or am I wrong there?
>
>
>
>
> If COAP extends HTTP semantics with new subscription methods, it will=

> not be possible to easily interchange HTTP/COAP, and translation
> gateways will become more complex to implement.
>
>
>
> Zach
>
>
> Regards - Charles
>
>
> -----Original Message-----
> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of
Paul Duffy
> Sent: 25 May 2010 03:48
> To: Zach Shelby
> Cc: core
> Subject: Re: [core] Subscribe/Notify for CoAP
>
> Recommend something like #2, primarily to avoid introducing non HTTP
> method semantics, simplifying HTTP/COAP translation.gateways, etc.
>
>
> On 5/24/2010 11:49 AM, Zach Shelby wrote:
>
> (thread renamed)
>
> We have two different paths with regard to a subscribe/notify mechani=
sm
for CoAP:
>
> 1. Use specific Subscription and Notify mechanisms for CoAP as HTTP
really does not include this concept.
> 1a) Notify as a message and SUBSCRIBE as a method. This is currently =
used
in coap-01.
> 1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but we=
 had
a good list discussion about this leading to a. In practice it doesn't =
make
a big difference if notification is a message or method.
>
> 2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0
proposal or GENA.
>
> So far we have focused on 1 in the WG, and every now and again 2 come=
s
up. At least I am not convinced that we need to suffer the drawbacks of=

HTTP here. Anyways 2 does not help our mapping to HTTP in reality very =
much
as there is no standard way of doing this over HTTP. Thus a CoAP-HTTP p=
roxy
may end up anyways translating between multiple HTTP frameworks dependi=
ng
on the application. So instead of doing a CoAP Notify/Subscribe to Webh=
ooks
mapping, you will could end up having to do a CoAP Webhooks to HTTP GEN=
A
mapping.
>
>
>
> I don't understand this last para. If CoAP sticks to the semantics of=

> the current HTTP methods, would this not offer a fairly straightforwa=
rd
> translation to/from HTTP?
>
>
>
> From what I have heard so far 1 still seems like a wise choice, altho=
ugh
I need to look at Webhooks more deeply. In reality many applications
specify their own way of doing a push interface using REST methods and
specific payloads (ZigBee SE2.0 is such an example). That is just fine,=
 and
might be used instead of a specific CoAP notify/subscribe in that case.=
 So
1 doesn't prevent the application using its own mechanism, it just prov=
ides
a native way for doing push.
>
> What do people think?
>
> Zach
>
> On May 17, 2010, at 6:44 PM,matthieu.vial@fr.non.schneider-electric.c=
om
wrote:
>
>
>
> Hi,
>
> My comments about the subscribe/notify mechanism of Zigbee IP.
>
> Pros:
> - Derived from the webhooks concept
> - If used by CORE it will be easier to map to HTTP because it uses on=
ly
CRUD verbs.
> - The subscription message is extendable and could support advanced
options (delays, increment, ...)
> - Only one listening port whatever the transport binding is.
>
> Cons:
> - No interoperability without well known URIs and a well defined
subscription message format (Not sure CoAP draft is the right place to
specify this).
> - XML/EXI is too complex to be the required format for the default
subscription/notification mechanism.
> - The notification should not require a subsequent GET to retrieve th=
e
content.
> - Subresource subscription is redundant.
>
> Hope this could help,
> Matthieu
>
>
> <graycol.gif>"Charles Palmer"<charles.palmer@onzo.com>
>
>
>
>
> "Charles Palmer"<charles.palmer@onzo.com>
> Envoy=E9 par : core-bounces@ietf.org
> 15/05/2010 14:06
>
> <ecblank.gif>
> A
> <ecblank.gif>
> "core"<core@ietf.org>
> <ecblank.gif>
> cc
> <ecblank.gif>
> <ecblank.gif>
> Objet
> <ecblank.gif>
> Re: [core] Selecting a WG document for CoAP
> <ecblank.gif> <ecblank.gif>
>
> Dear all
>
> Those interested in the subscribe/notify discussion might like to loo=
k
> at the draft Smart Energy Profile 2.0 Application Protocol
> Specification. It is available here:
> http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20Public=
App
> licationProfile.aspx
>
> It manages subscribe/notify by using POST. This seems to remove the n=
eed
> for SUBSCRIBE and notify.
>
> "Imagine a host A, which exposes a resource at http{s}://A/resource a=
nd
> a second host B, which wishes to learn of changes to this resource. T=
o
> facilitate a subscription/ notification mechanism, A would expose a
> resource http{s}://A/sub and B would expose a resource http{s}://B/nt=
fy.
> To subscribe to notifications regarding http{s}://A/resource, B would=

> send a POST to the address http{s}://A/sub/B containing the URI of th=
e
> resource of interest (http{s}://A/resource) and the URI of B's
> notification resource (http{s}://B/ntfy). Following this subscription=

> step, should A wish to notify B of a change to the resource addressed=
 at
> http{s}://A/resource, A would send a POST to the address
> http{s}://B/ntfy containing the URI of the resource changed
> (http{s}://A/resource) and the URI of A's subscription resource
> (http{s}://A/sub/B), should A wish to change its subscription. The ho=
st
> B can then query the resource (or not) at its leisure."
>
> Sleepy nodes are not allowed to subscribe, and must poll.
>
> Regards - Charles Palmer
>
> -----Original Message-----
> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of
> Angelo P. Castellani
> Sent: 14 May 2010 13:14
> To: Zach Shelby
> Cc: core
> Subject: Re: [core] Selecting a WG document for CoAP
>
> Zach,
>
> thanks for the comments, but please refer to my most recent e-mail fo=
r
> a more specific list of technical issues I'm pointing to.
>
> I want to do only a little integration to what I've written there.
>
> In my very personal opinion, to maximize adherence with the REST mode=
l
> and minimize implementation effort SUBSCRIBE and NOTIFY should be
> mapped to methods (as discussed many times together...).
>
> Uniform interface principle (Fielding PhD dissertation Section 5.1.5,=

> "The central feature that distinguishes the REST architectural style
> [...]") states that to simplify the software architecture, resource
> interfaces/interfaces should be as general as possible.
>
> I agree with this principle in this specific case, mainly because
> handling a special message type for notify leads node software design=

> to a more complex architecture.
>
> The reason is that this new message type requires special handling an=
d
> introduces a complexity in the software modularization.
>
> Best,
> Angelo
>
> On Fri, May 14, 2010 at 13:06, Zach Shelby<zach@sensinode.com> wrote:=

>
>
> Hi Angelo,
>
> On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:
>
>
>
> Dear C. Bormann, all,
>
> before deciding for the final direction, I've the following
> observations about draft-shelby-core-coap-01
>
> While I mostly share Zach's view of the protocol approach, and
> appreciate many aspects of the proposal, there are in my opinion
>
>
> still
>
>
> some open issues that need to be at least discussed before the
>
>
> current
>
>
> document can be selected.
>
>
> Of course there are plenty of open issues. Remember that working grou=
p
>
>
> documents still undertake as much change and improvement as the WG
> wants, so by no means is coap-01 set in stone. I would expect at leas=
t
> 5-10 more revisions still along the way. Already several of your idea=
s
> have been integrated into coap-01, and several more are under
> consideration, so it is coming along. Patience ;-)
>
>
>
> In particular, I would like to highlight the following:
>
> a) As it is now, it is not possible to have a straightforward
> translation of HTTP -> CoAP and viceversa: see
> http://www.ietf.org/mail-archive/web/core/current/msg00133.html (this=

> impacts the scalability of the web service model too)
>
>
> In coap-01 the Method names are now identical to HTTP methods. The
>
>
> Req/Res interaction is a direct translation. The URI hierarchy is
> compatible, and the URI binary code format we are still working on
> obviously. The only thing that takes some state to translate is
> Subscribe/Notify. But note, Subscribe/Notify takes some state no matt=
er
> how you do it, even with HTTP-HTTP there is no clean and easy way to
> handle subscriptions.
>
>
>
> b) Moreover, CoAP's implementation is not as simple as it should be.
> I've investigated the implementation and some design choices (as
> Options) are leading to very high program complexity (ROM) on a
> MSP430-based device.
>
>
> This we can definitely improve, and already made several optimization=
s
>
>
> from -00 to -01. Here I need some very concrete proposals though. Als=
o
> remember that many things are optional, for example subscribe/notify =
is
> not required if you don't need it.
>
>
>
> c) Finally when comparing HTTP message size with CoAP message size,
> the resulting compression isn't as good as you may expect.
>
> Example:
> HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
> CoAP: 24 B with options parsing procedure requiring an added
> implementation complexity
>
>
> Right, that is not how it will work in practice. Working with a real
>
>
> HTTP server that HTTP header will be more complex, and on the CoAP si=
de
> you would chose shorter URLs. The biggest improvement possible here i=
s
> from using binary coded URLs of course. We need to look at a wider ra=
nge
> of interactions and real HTTP headers as well to check that we are
> efficient enough.
>
>
>
> Addressing all these points potentially leads to major technical
> modifications (especially point a) on the current draft, hence it is
> appropriate in my opinion to discuss these points before making the
> final decision.
>
>
> I am not sure what else you have in mind for a). If we just forget
>
>
> about Subscribe/Notify then you are good to go. But then you are also=

> not fulfilling the charter or the industry needs in that respect.
>
>
> Thanks,
> Zach
>
>
>
> Best regards,
>
> Angelo P. Castellani
>
>
> On Mon, May 10, 2010 at 18:51, Carsten Bormann<cabo@tzi.org>wrote:
>
>
> The CORE WG has a milestone to select a WG document for CoAP in
>
>
> April:
>
>
> http://datatracker.ietf.org/wg/core/charter/
> ...
> Apr 2010 Select WG document for basis of the CoAP protocol
>
> Of the various documents that have been contributed,
>
>
> draft-shelby-core-coap has significant discussion, as well as the
> largest number of updates (including a previous version that was stil=
l
> called -6lowapp-coap).
>
>
> Today, another updated version of that draft was announced. See
> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
> for the announcement and
> http://tools.ietf.org/html/draft-shelby-core-coap-01
> for the draft itself.
>
> However, as the authors say, there are still significant TODOs.
>
> Are we in a state yet where we can say whether this is the right
>
>
> direction for the WG to take?
>
>
> If yes, is it the right direction? Should we adopt it as a WG
>
>
> document?
>
>
> If you don't think we can say yet, is there a set of technical
>
>
> decisions you would like the authors to take with priority?
>
>
> Note that once a document has become a WG document, the authors act
>
>
> as editors for the working group, making (and usually fleshing out th=
e
> details of) any change that the WG decides it needs.
>
>
> If you think we can still improve the draft, this is not an obstacle
>
>
> to making it a WG document.
>
>
> But of course we shouldn't do that if we intend to reverse its
>
>
> fundamental technical direction.
>
>
> In order to stay roughly in sync with our milestones, we should
>
>
> reach at a decision on how to go forward this week.
>
>
> Gruesse, Carsten
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>
>
>
> _______________________________________________
> 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
>
>
>
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>
> --------------------------------
> Onzo is a limited company number 06097997 registered in England& Wale=
s.
The
> registered office is 6 Great Newport Street, London, WC2H 7JB, United=

Kingdom.
>
> This email message may contain confidential and/or privileged
information, and
> is intended solely for the addressee(s). If you have received this em=
ail
in
> error, please notify Onzo immediately. Unauthorised copying, disclosu=
re
or
> distribution of the material in this email is forbidden.
> --------------------------------
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>
> _____________________________________________________________________=
_
> This email has been scanned by the MessageLabs Email Security System.=

> _____________________________________________________________________=
_
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>
>
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>
> --------------------------------
> Onzo is a limited company number 06097997 registered in England& Wale=
s.
The
> registered office is 6 Great Newport Street, London, WC2H 7JB, United=

Kingdom.
>
> This email message may contain confidential and/or privileged
information, and
> is intended solely for the addressee(s). If you have received this em=
ail
in
> error, please notify Onzo immediately. Unauthorised copying, disclosu=
re
or
> distribution of the material in this email is forbidden.
> --------------------------------
>
>
>
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>
>
>
> _____________________________________________________________________=
_
> This email has been scanned by the MessageLabs Email Security System.=

>
_______________________________________________________________________=
______________________________________________

> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>
> _______________________________________________
> 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


______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
______________________________________________________________________
=

--1__=4EBBFDA2DFDAF18F8f9e8a93df938690918c4EBBFDA2DFDAF18F
Content-transfer-encoding: quoted-printable
Content-type: text/html; charset=ISO-8859-1
Content-Disposition: inline

<html><body>
<p>Hi,<br>
<br>
The Waka protocol from Roy Fielding has a new monitor verb <br>
<a href=3D"http://en.wikipedia.org/wiki/Waka_%28protocol%29">http://en.=
wikipedia.org/wiki/Waka_%28protocol%29</a><br>
<br>
Matthieu<br>
<br>
<img width=3D"16" height=3D"16" src=3D"cid:1__=3D4EBBFDA2DFDAF18F8@schn=
eider-electric.com" border=3D"0" alt=3D"Inactive hide details for Zach =
Shelby &lt;zach@sensinode.com&gt;">Zach Shelby &lt;zach@sensinode.com&g=
t;<br>
<br>
<br>
<br>
<br>

<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">=

<tr valign=3D"top"><td style=3D"background-image:url(cid:2__=3D4EBBFDA2=
DFDAF18F8@schneider-electric.com); background-repeat: no-repeat; " widt=
h=3D"40%">
<ul>
<ul>
<ul>
<ul><b><font size=3D"2">Zach Shelby &lt;zach@sensinode.com&gt;</font></=
b><font size=3D"2"> </font>
<p><font size=3D"2">28/05/2010 14:50</font></ul>
</ul>
</ul>
</ul>
</td><td width=3D"60%">
<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">=

<tr valign=3D"top"><td width=3D"1%"><img width=3D"58" height=3D"1" src=3D=
"cid:3__=3D4EBBFDA2DFDAF18F8@schneider-electric.com" border=3D"0" alt=3D=
""><br>
<div align=3D"right"><font size=3D"2">A</font></div></td><td width=3D"1=
00%"><img width=3D"1" height=3D"1" src=3D"cid:3__=3D4EBBFDA2DFDAF18F8@s=
chneider-electric.com" border=3D"0" alt=3D""><br>
<font size=3D"2">Adriano Pezzuto (apezzuto) &lt;apezzuto@cisco.com&gt;<=
/font></td></tr>

<tr valign=3D"top"><td width=3D"1%"><img width=3D"58" height=3D"1" src=3D=
"cid:3__=3D4EBBFDA2DFDAF18F8@schneider-electric.com" border=3D"0" alt=3D=
""><br>
<div align=3D"right"><font size=3D"2">cc</font></div></td><td width=3D"=
100%"><img width=3D"1" height=3D"1" src=3D"cid:3__=3D4EBBFDA2DFDAF18F8@=
schneider-electric.com" border=3D"0" alt=3D""><br>
<font size=3D"2">Matthieu Vial/FR/Non/Schneider@Europe, core &lt;core@i=
etf.org&gt;</font></td></tr>

<tr valign=3D"top"><td width=3D"1%"><img width=3D"58" height=3D"1" src=3D=
"cid:3__=3D4EBBFDA2DFDAF18F8@schneider-electric.com" border=3D"0" alt=3D=
""><br>
<div align=3D"right"><font size=3D"2">Objet</font></div></td><td width=3D=
"100%"><img width=3D"1" height=3D"1" src=3D"cid:3__=3D4EBBFDA2DFDAF18F8=
@schneider-electric.com" border=3D"0" alt=3D""><br>
<font size=3D"2">Re: [core] Subscribe/Notify for CoAP</font></td></tr>
</table>

<table border=3D"0" cellspacing=3D"0" cellpadding=3D"0">
<tr valign=3D"top"><td width=3D"58"><img width=3D"1" height=3D"1" src=3D=
"cid:3__=3D4EBBFDA2DFDAF18F8@schneider-electric.com" border=3D"0" alt=3D=
""></td><td width=3D"336"><img width=3D"1" height=3D"1" src=3D"cid:3__=3D=
4EBBFDA2DFDAF18F8@schneider-electric.com" border=3D"0" alt=3D""></td></=
tr>
</table>
</td></tr>
</table>
<br>
<tt>Hi,<br>
<br>
This is a really good conversation. One thing we need to do is remember=
 what our minimum requirements are for subscribe/notify and not try to =
solve something more than we should. From what I know it is sufficient =
to be able to receive notifications when a URI changes or periodically.=
 You might consider new URIs under this URI path to be changes to a URI=
 though... <br>
<br>
On May 28, 2010, at 3:08 PM, Adriano Pezzuto (apezzuto) wrote:<br>
<br>
&gt; Hello,<br>
&gt; with this flavor, the SUBSCRIBE may be replaced by a simple POST. =
So no needs to have an explicit SUBSCRIBE method.<br>
<br>
This is what coap-01 assumes. <br>
<br>
&gt; If we want support a more oriented peer-to-peer transaction on CoA=
P, it looks to me both SUB and NOTIFY should be treated as messages.<br=
>
<br>
The Request/Response model can be used peer-to-peer, and in CoAP you ca=
n even use a Request asynchronously. Additionally, we want a native RES=
Tful subscribe/notify technique, that is, we want to subscribe to resou=
rces and be susequently notified about those resources when they change=
.<br>
<br>
In that sense, you can think of a subscription as a request to receive =
asynchronous notifications about a resource (about a URI). This can be =
achieved by:<br>
<br>
1. &nbsp;as a SUBSCRIBE Request on the URI with some option indicating =
the lifetime as in coap-01,<br>
2. &nbsp;as a Subcsribe message (no methods) on the URI with some optio=
n, <br>
3. &nbsp;or as a POST Request on the URI with options indicating that t=
his is actually a subscription and the lifetime. &nbsp;This bends the m=
eaning of POST quite a bit and might be prone to mistakes?<br>
<br>
The asynchronous response is a harder one. Can we bend the meaning of a=
 Request for making asynchronous notifications? Also a notification inc=
ludes a URI about a resource on the requestor, which is inverse from no=
rmal Requests in REST. So the options here are:<br>
<br>
1. as a Notify message about a URI (no methods) as in coap-01,<br>
2. as a NOTIFY Request about a URI as was in coap-00,<br>
3. hmmm... reusing CRUD methods really doesn't work for this one at all=
... <br>
<br>
I wonder what the HTTP designers would have done if this would have bee=
n a requirement back then? Maybe we should ask them...<br>
<br>
Zach<br>
<br>
&gt; &nbsp;<br>
&gt; Adriano<br>
&gt; &nbsp;<br>
&gt; From: matthieu.vial@fr.non.schneider-electric.com [<a href=3D"mail=
to:matthieu.vial@fr.non.schneider-electric.com">mailto:matthieu.vial@fr=
.non.schneider-electric.com</a>] <br>
&gt; Sent: venerd=EC 28 maggio 2010 13.52<br>
&gt; To: Adriano Pezzuto (apezzuto)<br>
&gt; Cc: core; core-bounces@ietf.org; robert.cragie@gridmerge.com<br>
&gt; Subject: Re: [core] Subscribe/Notify for CoAP<br>
&gt; &nbsp;<br>
&gt; &gt; So strictly speaking, both NOTIFY and SUBSCRIBE are message t=
ypes not &nbsp;methods!<br>
&gt; <br>
&gt; SUBSCRIBE can be just an asynchronous GET on update then I think i=
t is a method and NOTIFY is an asynchronous response so a message.<br>
&gt; But if we want to have selective notifications when a resource is =
created, updated or deleted then I think you're right NOTIFY and SUBSCR=
IBE are messages.<br>
&gt; <br>
&gt; Does that make sense ?<br>
&gt; <br>
&gt; Matthieu<br>
&gt; <br>
&gt; &lt;image001.gif&gt;&quot;Adriano Pezzuto (apezzuto)&quot; &lt;ape=
zzuto@cisco.com&gt;<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; &quot;Adriano Pezzuto (apezzuto)&quot; &lt;apezzuto@cisco.com&gt; =
<br>
&gt; Envoy=E9 par : core-bounces@ietf.org<br>
&gt; 28/05/2010 12:50<br>
&gt; <br>
&gt; &lt;image003.png&gt;<br>
&gt; A<br>
&gt; &lt;image004.png&gt;<br>
&gt; &lt;robert.cragie@gridmerge.com&gt;<br>
&gt; &lt;image003.png&gt;<br>
&gt; cc<br>
&gt; &lt;image004.png&gt;<br>
&gt; core &lt;core@ietf.org&gt;<br>
&gt; &lt;image003.png&gt;<br>
&gt; Objet<br>
&gt; &lt;image004.png&gt;<br>
&gt; Re: [core] Subscribe/Notify for CoAP<br>
&gt; &lt;image004.png&gt;<br>
&gt; &lt;image004.png&gt;<br>
&gt; <br>
&gt; Hi Roberto,<br>
&gt; I understand your point and personally agree on M2M is quite diffe=
rent from web page model. On the architectural RESTful style, the metho=
d information tells the server what to do with data kept in the URI inf=
ormation.<br>
&gt; <br>
&gt; So strictly speaking, both NOTIFY and SUBSCRIBE are message types =
not &nbsp;methods!<br>
&gt; <br>
&gt; Adriano <br>
&gt; <br>
&gt; From: Robert Cragie [<a href=3D"mailto:robert.cragie@gridmerge.com=
">mailto:robert.cragie@gridmerge.com</a>] <br>
&gt; Sent: venerd=EC 28 maggio 2010 11.53<br>
&gt; To: Adriano Pezzuto (apezzuto)<br>
&gt; Cc: Paul Duffy (paduffy); Zach Shelby; core<br>
&gt; Subject: Re: [core] Subscribe/Notify for CoAP<br>
&gt; <br>
&gt; I think the point here is that there are two levels we are conside=
ring.<br>
&gt; <br>
&gt; At the lowest (foundation) level, there are the transaction messag=
es as described below. This provides a flexible mechanism for the appli=
cation with regard to synchronicity and threading. This is important fo=
r the types of devices CoAP is being aimed at.<br>
&gt; <br>
&gt; Above that, the methods can be used according to the architectural=
 style. So in this case, it is RESTful (COnstrained Restful Environment=
s), which will naturally limit the number of methods and how transactio=
ns occur.<br>
&gt; <br>
&gt; The actual architecture using a combination of the methods and mes=
sages also depends on what is required at the application layer. Consid=
er a typical client which wants to subscribe to a resource. That client=
 controls the feed of data but needs a component which is capable of ha=
ndling (possibly buffering) the data it receives through notifications.=
 Is this a separate server? Or would we want to consider it part of an =
enhanced client model which is able to process feeds of data? These are=
 the sort of models which have led to the myriad of solutions (GENA, We=
bhooks, long polling, pubsubhubbub, RESTMS etc.) based around HTTP whic=
h are all essentially ingenious ways of getting around the limitations =
imposed by HTTP and how it is processed for anything which deviates fro=
m the classic web page access model.<br>
&gt; <br>
&gt; I think the aim of CoAP should be clean from the word go with rega=
rd to supporting these more peer-to-peer transactions, where the client=
 can exist on either entity and both entities can feed data to each oth=
er; typical in M2M applications.<br>
&gt; <br>
&gt; Robert<br>
&gt; <br>
&gt; Robert Cragie (Pacific Gas &amp; Electric)<br>
&gt; <br>
&gt; Gridmerge Ltd.<br>
&gt; 89 Greenfield Crescent,<br>
&gt; Wakefield, WF4 4WA, UK<br>
&gt; +44 1924 910888<br>
&gt; +1 415 513 0064<br>
&gt; </tt><tt><a href=3D"http://www.gridmerge.com">http://www.gridmerge=
.com</a></tt><tt><br>
&gt; <br>
&gt; On 27/05/2010 7:08 PM, Adriano Pezzuto (apezzuto) wrote: <br>
&gt; Hi Robert,<br>
&gt; <br>
&gt; in my personal opinion, the option 1a) brings some sort of ambigui=
ty to CoAP specs.<br>
&gt; <br>
&gt; My be my understatement of new CoAP specs is not so deep, but now =
we have 5 methods and 3 message types: request, response and notify. Wh=
ich methods are allowed with which messages types?<br>
&gt; I suppose you have to use PUT/POST method with notify message for =
asynch data notification. How to make a subscribe? I suppose you would =
use a SUBSCRIBE method with request/response message or SUBSCRIBE with =
notify message? Also what about POST/DELETE methods in a notify message=
? They not make any sense..<br>
&gt; <br>
&gt; I think the choice is between: option 1) -&gt; only CRUD methods a=
nd option 1b) -&gt; CRUD + SUB/NOTIFY methods, keeping in mind cost/ben=
efits of both solutions.<br>
&gt; <br>
&gt; Adriano<br>
&gt; <br>
&gt; From: Robert Cragie [<a href=3D"mailto:robert.cragie@gridmerge.com=
">mailto:robert.cragie@gridmerge.com</a>] <br>
&gt; Sent: mercoled=EC 26 maggio 2010 20.09<br>
&gt; To: Adriano Pezzuto (apezzuto)<br>
&gt; Cc: Paul Duffy (paduffy); Zach Shelby; core<br>
&gt; Subject: Re: [core] Subscribe/Notify for CoAP<br>
&gt; <br>
&gt; Hi Adrian,<br>
&gt; <br>
&gt; I would also prefer to keep the protocol in CoAP asynchronous. You=
 can always map an asynchronous protocol to a synchronous one but, as w=
e see in HTTP, it always ends up as a kludge to do it the other way rou=
nd. The efforts which have been gone to to make HTTP quasi-asynchronous=
 via all the schemes mentioned below and many more besides (all non-int=
eroperable of course) is testament to how important this is for M2M com=
munication.<br>
&gt; <br>
&gt; So, back to Zach's list, I favor 1a) for the following reasons:<br=
>
&gt; <br>
&gt; Foundation level of messages:<br>
&gt; <br>
&gt; 1. request/response can be asynchronous or synchronous messages (a=
s there is a transaction ID in there)<br>
&gt; 2. notify is an asynchronous message<br>
&gt; Derived methods:<br>
&gt; <br>
&gt; I think it makes sense to add a pub/sub model as a useful mechanis=
m for M2M.<br>
&gt; <br>
&gt; So, looking at it the other way round: It will be entirely possibl=
e to translate whatever is currently built on HTTP to CoAP based on the=
 above, with all its restrictions regarding synchronous and client/serv=
er transactions. What may be harder is to translate directly is a CoAP-=
based application to HTTP. So I guess the question is: Do we want to be=
 hamstrung to synchronous client/server transactions as dictated by HTT=
P and provide a direct mapping to HTTP, then have to come up with simil=
ar kludges for asynchronous peer-to-peer transactions as has been done =
in numerous ways for HTTP, or do we want to define the protocol cleanly=
 to start with and accept that some sort of transaction relaying/conver=
sion would have to take place at a mapping node?<br>
&gt; <br>
&gt; Robert<br>
&gt; Robert Cragie (Pacific Gas &amp; Electric)<br>
&gt; <br>
&gt; Gridmerge Ltd.<br>
&gt; 89 Greenfield Crescent,<br>
&gt; Wakefield, WF4 4WA, UK<br>
&gt; +44 1924 910888<br>
&gt; +1 415 513 0064<br>
&gt; </tt><tt><a href=3D"http://www.gridmerge.com">http://www.gridmerge=
.com</a></tt><tt><br>
&gt; <br>
&gt; On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote: <br>
&gt; Hi,<br>
&gt; it looks to me that CoAP should use an explicit sub/notify mechani=
sm since this is the core of the machine-to-machine interaction model.<=
br>
&gt; HTTP suffers of this lack and we have seen a plethora of solutions=
 to give an asynch taste to it. Webhooks and websockets are only the la=
sts of the list.<br>
&gt; As someone has already pointed out on this list, it is theoretical=
ly possible to describe sub/notify using only CRUD methods but it looks=
 a little bit tricky and verbose.<br>
&gt; <br>
&gt; Now we have a chance to build from scratch a new protocol with and=
 I think using explicit sub/notify methods with a clear and well define=
d semantic is the best option. It is easily understanding from every de=
veloper and will prevent to build other fanny solutions on top of the C=
oAP. HTTP does not have this well defined semantic and (for hundreds of=
 other reasons also) it is not used as wide protocol for machine-to-mac=
hine communication.<br>
&gt; <br>
&gt; CoAP - as binary protocol - and with an explicit asynch model has =
a chance to be a really wide protocol for M2M communication not only fo=
r constrained environments.<br>
&gt; <br>
&gt; my 2 cents<br>
&gt; <br>
&gt; - adriano<br>
&gt; <br>
&gt; -----Original Message-----<br>
&gt; From: core-bounces@ietf.org [<a href=3D"mailto:core-bounces@ietf.o=
rg">mailto:core-bounces@ietf.org</a>] On Behalf Of Paul Duffy (paduffy)=
<br>
&gt; Sent: mercoled=EC 26 maggio 2010 0.47<br>
&gt; To: Zach Shelby<br>
&gt; Cc: core<br>
&gt; Subject: Re: [core] Subscribe/Notify for CoAP<br>
&gt; <br>
&gt; On 5/25/2010 6:41 PM, Zach Shelby wrote:<br>
&gt; <br>
&gt; Hi,<br>
&gt; <br>
&gt; On May 26, 2010, at 12:23 AM, Charles Palmer wrote:<br>
&gt; <br>
&gt; <br>
&gt; Hi folks<br>
&gt; <br>
&gt; It occurs to me that CoRE should be keeping a close eye on ZigBee =
SE2.0 work, so that it is as easy as possible for ZigBee SE to use CoRE=
 when ready. That suggests to me that we should align with their subscr=
ibe/notify process.<br>
&gt; <br>
&gt; <br>
&gt; I am not sure I understand that. I mean, ZigBee SE2.0 is defining =
an application specific subscribe/notify mechanism for that purpose so =
far for HTTP. This uses standard HTTP methods and some custom payload a=
nd REST interfaces. CoAP Req/Res is already totally compatible with SE2=
.0 in that respect, so alignment is already OK there. Nothing stopping =
someone from using SE2.0 over CoAP.<br>
&gt; <br>
&gt; Specifying a native susbcription/notify into CoAP is another matte=
r. We can't adopt a solution specific to one application as that won't =
solve the problems of other applications nor general HTTP mapping at al=
l (probably would make it worse). It seems that for the near future the=
re will be a bunch of HTTP push mechanisms in use without any clear sta=
ndard appearing - or am I wrong there?<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; If COAP extends HTTP semantics with new subscription methods, it w=
ill <br>
&gt; not be possible to easily interchange HTTP/COAP, and translation <=
br>
&gt; gateways will become more complex to implement.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Zach<br>
&gt; <br>
&gt; <br>
&gt; Regards - Charles<br>
&gt; <br>
&gt; <br>
&gt; -----Original Message-----<br>
&gt; From: core-bounces@ietf.org [<a href=3D"mailto:core-bounces@ietf.o=
rg">mailto:core-bounces@ietf.org</a>] On Behalf Of Paul Duffy<br>
&gt; Sent: 25 May 2010 03:48<br>
&gt; To: Zach Shelby<br>
&gt; Cc: core<br>
&gt; Subject: Re: [core] Subscribe/Notify for CoAP<br>
&gt; <br>
&gt; Recommend something like #2, primarily to avoid introducing non HT=
TP<br>
&gt; method semantics, simplifying HTTP/COAP translation.gateways, etc.=
<br>
&gt; <br>
&gt; <br>
&gt; On 5/24/2010 11:49 AM, Zach Shelby wrote:<br>
&gt; <br>
&gt; (thread renamed)<br>
&gt; <br>
&gt; We have two different paths with regard to a subscribe/notify mech=
anism for CoAP:<br>
&gt; <br>
&gt; 1. Use specific Subscription and Notify mechanisms for CoAP as HTT=
P really does not include this concept.<br>
&gt; 1a) Notify as a message and SUBSCRIBE as a method. This is current=
ly used in coap-01.<br>
&gt; 1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but=
 we had a good list discussion about this leading to a. In practice it =
doesn't make a big difference if notification is a message or method.<b=
r>
&gt; <br>
&gt; 2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2=
.0 proposal or GENA.<br>
&gt; <br>
&gt; So far we have focused on 1 in the WG, and every now and again 2 c=
omes up. At least I am not convinced that we need to suffer the drawbac=
ks of HTTP here. Anyways 2 does not help our mapping to HTTP in reality=
 very much as there is no standard way of doing this over HTTP. Thus a =
CoAP-HTTP proxy may end up anyways translating between multiple HTTP fr=
ameworks depending on the application. So instead of doing a CoAP Notif=
y/Subscribe to Webhooks mapping, you will could end up having to do a C=
oAP Webhooks to HTTP GENA mapping.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; I don't understand this last para. If CoAP sticks to the semantics=
 of<br>
&gt; the current HTTP methods, would this not offer a fairly straightfo=
rward<br>
&gt; translation to/from HTTP?<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; From what I have heard so far 1 still seems like a wise choice, al=
though I need to look at Webhooks more deeply. In reality many applicat=
ions specify their own way of doing a push interface using REST methods=
 and specific payloads (ZigBee SE2.0 is such an example). That is just =
fine, and might be used instead of a specific CoAP notify/subscribe in =
that case. So 1 doesn't prevent the application using its own mechanism=
, it just provides a native way for doing push.<br>
&gt; <br>
&gt; What do people think?<br>
&gt; <br>
&gt; Zach<br>
&gt; <br>
&gt; On May 17, 2010, at 6:44 PM,matthieu.vial@fr.non.schneider-electri=
c.com wrote:<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Hi,<br>
&gt; <br>
&gt; My comments about the subscribe/notify mechanism of Zigbee IP.<br>=

&gt; <br>
&gt; Pros:<br>
&gt; - Derived from the webhooks concept<br>
&gt; - If used by CORE it will be easier to map to HTTP because it uses=
 only CRUD verbs.<br>
&gt; - The subscription message is extendable and could support advance=
d options (delays, increment, ...)<br>
&gt; - Only one listening port whatever the transport binding is.<br>
&gt; <br>
&gt; Cons:<br>
&gt; - No interoperability without well known URIs and a well defined s=
ubscription message format (Not sure CoAP draft is the right place to s=
pecify this).<br>
&gt; - XML/EXI is too complex to be the required format for the default=
 subscription/notification mechanism.<br>
&gt; - The notification should not require a subsequent GET to retrieve=
 the content.<br>
&gt; - Subresource subscription is redundant.<br>
&gt; <br>
&gt; Hope this could help,<br>
&gt; Matthieu<br>
&gt; <br>
&gt; <br>
&gt; &lt;graycol.gif&gt;&quot;Charles Palmer&quot;&lt;charles.palmer@on=
zo.com&gt;<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; &quot;Charles Palmer&quot;&lt;charles.palmer@onzo.com&gt;<br>
&gt; Envoy=E9 par : core-bounces@ietf.org<br>
&gt; 15/05/2010 14:06<br>
&gt; <br>
&gt; &lt;ecblank.gif&gt;<br>
&gt; A<br>
&gt; &lt;ecblank.gif&gt;<br>
&gt; &quot;core&quot;&lt;core@ietf.org&gt;<br>
&gt; &lt;ecblank.gif&gt;<br>
&gt; cc<br>
&gt; &lt;ecblank.gif&gt;<br>
&gt; &lt;ecblank.gif&gt;<br>
&gt; Objet<br>
&gt; &lt;ecblank.gif&gt;<br>
&gt; Re: [core] Selecting a WG document for CoAP<br>
&gt; &lt;ecblank.gif&gt; &lt;ecblank.gif&gt;<br>
&gt; <br>
&gt; Dear all<br>
&gt; <br>
&gt; Those interested in the subscribe/notify discussion might like to =
look<br>
&gt; at the draft Smart Energy Profile 2.0 Application Protocol<br>
&gt; Specification. It is available here:<br>
&gt; </tt><tt><a href=3D"http://zigbee.org/Markets/ZigBeeSmartEnergy/Zi=
gBeeSmartEnergy20PublicApp">http://zigbee.org/Markets/ZigBeeSmartEnergy=
/ZigBeeSmartEnergy20PublicApp</a></tt><tt><br>
&gt; licationProfile.aspx<br>
&gt; <br>
&gt; It manages subscribe/notify by using POST. This seems to remove th=
e need<br>
&gt; for SUBSCRIBE and notify.<br>
&gt; <br>
&gt; &quot;Imagine a host A, which exposes a resource at http{s}://A/re=
source and<br>
&gt; a second host B, which wishes to learn of changes to this resource=
. To<br>
&gt; facilitate a subscription/ notification mechanism, A would expose =
a<br>
&gt; resource http{s}://A/sub and B would expose a resource http{s}://B=
/ntfy.<br>
&gt; To subscribe to notifications regarding http{s}://A/resource, B wo=
uld<br>
&gt; send a POST to the address http{s}://A/sub/B containing the URI of=
 the<br>
&gt; resource of interest (http{s}://A/resource) and the URI of B's<br>=

&gt; notification resource (http{s}://B/ntfy). Following this subscript=
ion<br>
&gt; step, should A wish to notify B of a change to the resource addres=
sed at<br>
&gt; http{s}://A/resource, A would send a POST to the address<br>
&gt; http{s}://B/ntfy containing the URI of the resource changed<br>
&gt; (http{s}://A/resource) and the URI of A's subscription resource<br=
>
&gt; (http{s}://A/sub/B), should A wish to change its subscription. The=
 host<br>
&gt; B can then query the resource (or not) at its leisure.&quot;<br>
&gt; <br>
&gt; Sleepy nodes are not allowed to subscribe, and must poll.<br>
&gt; <br>
&gt; Regards - Charles Palmer<br>
&gt; <br>
&gt; -----Original Message-----<br>
&gt; From: core-bounces@ietf.org [<a href=3D"mailto:core-bounces@ietf.o=
rg">mailto:core-bounces@ietf.org</a>] On Behalf Of<br>
&gt; Angelo P. Castellani<br>
&gt; Sent: 14 May 2010 13:14<br>
&gt; To: Zach Shelby<br>
&gt; Cc: core<br>
&gt; Subject: Re: [core] Selecting a WG document for CoAP<br>
&gt; <br>
&gt; Zach,<br>
&gt; <br>
&gt; thanks for the comments, but please refer to my most recent e-mail=
 for<br>
&gt; a more specific list of technical issues I'm pointing to.<br>
&gt; <br>
&gt; I want to do only a little integration to what I've written there.=
<br>
&gt; <br>
&gt; In my very personal opinion, to maximize adherence with the REST m=
odel<br>
&gt; and minimize implementation effort SUBSCRIBE and NOTIFY should be<=
br>
&gt; mapped to methods (as discussed many times together...).<br>
&gt; <br>
&gt; Uniform interface principle (Fielding PhD dissertation Section 5.1=
.5,<br>
&gt; &quot;The central feature that distinguishes the REST architectura=
l style<br>
&gt; [...]&quot;) states that to simplify the software architecture, re=
source<br>
&gt; interfaces/interfaces should be as general as possible.<br>
&gt; <br>
&gt; I agree with this principle in this specific case, mainly because<=
br>
&gt; handling a special message type for notify leads node software des=
ign<br>
&gt; to a more complex architecture.<br>
&gt; <br>
&gt; The reason is that this new message type requires special handling=
 and<br>
&gt; introduces a complexity in the software modularization.<br>
&gt; <br>
&gt; Best,<br>
&gt; Angelo<br>
&gt; <br>
&gt; On Fri, May 14, 2010 at 13:06, Zach Shelby&lt;zach@sensinode.com&g=
t; wrote:<br>
&gt; <br>
&gt; <br>
&gt; Hi Angelo,<br>
&gt; <br>
&gt; On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Dear C. Bormann, all,<br>
&gt; <br>
&gt; before deciding for the final direction, I've the following<br>
&gt; observations about draft-shelby-core-coap-01<br>
&gt; <br>
&gt; While I mostly share Zach's view of the protocol approach, and<br>=

&gt; appreciate many aspects of the proposal, there are in my opinion<b=
r>
&gt; <br>
&gt; <br>
&gt; still<br>
&gt; <br>
&gt; <br>
&gt; some open issues that need to be at least discussed before the<br>=

&gt; <br>
&gt; <br>
&gt; current<br>
&gt; <br>
&gt; <br>
&gt; document can be selected.<br>
&gt; <br>
&gt; <br>
&gt; Of course there are plenty of open issues. Remember that working g=
roup<br>
&gt; <br>
&gt; <br>
&gt; documents still undertake as much change and improvement as the WG=
<br>
&gt; wants, so by no means is coap-01 set in stone. I would expect at l=
east<br>
&gt; 5-10 more revisions still along the way. Already several of your i=
deas<br>
&gt; have been integrated into coap-01, and several more are under<br>
&gt; consideration, so it is coming along. Patience ;-)<br>
&gt; <br>
&gt; <br>
&gt; &nbsp;<br>
&gt; In particular, I would like to highlight the following:<br>
&gt; <br>
&gt; a) As it is now, it is not possible to have a straightforward<br>
&gt; translation of HTTP -&gt; CoAP and viceversa: see<br>
&gt; </tt><tt><a href=3D"http://www.ietf.org/mail-archive/web/core/curr=
ent/msg00133.html">http://www.ietf.org/mail-archive/web/core/current/ms=
g00133.html</a></tt><tt>&nbsp;(this<br>
&gt; impacts the scalability of the web service model too)<br>
&gt; <br>
&gt; <br>
&gt; In coap-01 the Method names are now identical to HTTP methods. The=
<br>
&gt; <br>
&gt; <br>
&gt; Req/Res interaction is a direct translation. The URI hierarchy is<=
br>
&gt; compatible, and the URI binary code format we are still working on=
<br>
&gt; obviously. The only thing that takes some state to translate is<br=
>
&gt; Subscribe/Notify. But note, Subscribe/Notify takes some state no m=
atter<br>
&gt; how you do it, even with HTTP-HTTP there is no clean and easy way =
to<br>
&gt; handle subscriptions.<br>
&gt; <br>
&gt; <br>
&gt; &nbsp;<br>
&gt; b) Moreover, CoAP's implementation is not as simple as it should b=
e.<br>
&gt; I've investigated the implementation and some design choices (as<b=
r>
&gt; Options) are leading to very high program complexity (ROM) on a<br=
>
&gt; MSP430-based device.<br>
&gt; <br>
&gt; <br>
&gt; This we can definitely improve, and already made several optimizat=
ions<br>
&gt; <br>
&gt; <br>
&gt; from -00 to -01. Here I need some very concrete proposals though. =
Also<br>
&gt; remember that many things are optional, for example subscribe/noti=
fy is<br>
&gt; not required if you don't need it.<br>
&gt; <br>
&gt; <br>
&gt; &nbsp;<br>
&gt; c) Finally when comparing HTTP message size with CoAP message size=
,<br>
&gt; the resulting compression isn't as good as you may expect.<br>
&gt; <br>
&gt; Example:<br>
&gt; HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B<br>
&gt; CoAP: 24 B with options parsing procedure requiring an added<br>
&gt; implementation complexity<br>
&gt; <br>
&gt; <br>
&gt; Right, that is not how it will work in practice. Working with a re=
al<br>
&gt; <br>
&gt; <br>
&gt; HTTP server that HTTP header will be more complex, and on the CoAP=
 side<br>
&gt; you would chose shorter URLs. The biggest improvement possible her=
e is<br>
&gt; from using binary coded URLs of course. We need to look at a wider=
 range<br>
&gt; of interactions and real HTTP headers as well to check that we are=
<br>
&gt; efficient enough.<br>
&gt; <br>
&gt; <br>
&gt; &nbsp;<br>
&gt; Addressing all these points potentially leads to major technical<b=
r>
&gt; modifications (especially point a) on the current draft, hence it =
is<br>
&gt; appropriate in my opinion to discuss these points before making th=
e<br>
&gt; final decision.<br>
&gt; <br>
&gt; <br>
&gt; I am not sure what else you have in mind for a). If we just forget=
<br>
&gt; <br>
&gt; <br>
&gt; about Subscribe/Notify then you are good to go. But then you are a=
lso<br>
&gt; not fulfilling the charter or the industry needs in that respect.<=
br>
&gt; <br>
&gt; <br>
&gt; Thanks,<br>
&gt; Zach<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; Best regards,<br>
&gt; <br>
&gt; Angelo P. Castellani<br>
&gt; <br>
&gt; <br>
&gt; On Mon, May 10, 2010 at 18:51, Carsten Bormann&lt;cabo@tzi.org&gt;=
wrote:<br>
&gt; <br>
&gt; <br>
&gt; The CORE WG has a milestone to select a WG document for CoAP in<br=
>
&gt; <br>
&gt; <br>
&gt; April:<br>
&gt; <br>
&gt; <br>
&gt; </tt><tt><a href=3D"http://datatracker.ietf.org/wg/core/charter/">=
http://datatracker.ietf.org/wg/core/charter/</a></tt><tt><br>
&gt; ...<br>
&gt; Apr 2010 Select WG document for basis of the CoAP protocol<br>
&gt; <br>
&gt; Of the various documents that have been contributed,<br>
&gt; <br>
&gt; <br>
&gt; draft-shelby-core-coap has significant discussion, as well as the<=
br>
&gt; largest number of updates (including a previous version that was s=
till<br>
&gt; called -6lowapp-coap).<br>
&gt; <br>
&gt; <br>
&gt; Today, another updated version of that draft was announced. See<br=
>
&gt; </tt><tt><a href=3D"http://www.ietf.org/mail-archive/web/core/curr=
ent/msg00138.html">http://www.ietf.org/mail-archive/web/core/current/ms=
g00138.html</a></tt><tt><br>
&gt; for the announcement and<br>
&gt; </tt><tt><a href=3D"http://tools.ietf.org/html/draft-shelby-core-c=
oap-01">http://tools.ietf.org/html/draft-shelby-core-coap-01</a></tt><t=
t><br>
&gt; for the draft itself.<br>
&gt; <br>
&gt; However, as the authors say, there are still significant TODOs.<br=
>
&gt; <br>
&gt; Are we in a state yet where we can say whether this is the right<b=
r>
&gt; <br>
&gt; <br>
&gt; direction for the WG to take?<br>
&gt; <br>
&gt; <br>
&gt; If yes, is it the right direction? Should we adopt it as a WG<br>
&gt; <br>
&gt; <br>
&gt; document?<br>
&gt; <br>
&gt; <br>
&gt; If you don't think we can say yet, is there a set of technical<br>=

&gt; <br>
&gt; <br>
&gt; decisions you would like the authors to take with priority?<br>
&gt; <br>
&gt; <br>
&gt; Note that once a document has become a WG document, the authors ac=
t<br>
&gt; <br>
&gt; <br>
&gt; as editors for the working group, making (and usually fleshing out=
 the<br>
&gt; details of) any change that the WG decides it needs.<br>
&gt; <br>
&gt; <br>
&gt; If you think we can still improve the draft, this is not an obstac=
le<br>
&gt; <br>
&gt; <br>
&gt; to making it a WG document.<br>
&gt; <br>
&gt; <br>
&gt; But of course we shouldn't do that if we intend to reverse its<br>=

&gt; <br>
&gt; <br>
&gt; fundamental technical direction.<br>
&gt; <br>
&gt; <br>
&gt; In order to stay roughly in sync with our milestones, we should<br=
>
&gt; <br>
&gt; <br>
&gt; reach at a decision on how to go forward this week.<br>
&gt; <br>
&gt; <br>
&gt; Gruesse, Carsten<br>
&gt; <br>
&gt; _______________________________________________<br>
&gt; core mailing list<br>
&gt; core@ietf.org<br>
&gt; </tt><tt><a href=3D"https://www.ietf.org/mailman/listinfo/core">ht=
tps://www.ietf.org/mailman/listinfo/core</a></tt><tt><br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; _______________________________________________<br>
&gt; core mailing list<br>
&gt; core@ietf.org<br>
&gt; </tt><tt><a href=3D"https://www.ietf.org/mailman/listinfo/core">ht=
tps://www.ietf.org/mailman/listinfo/core</a></tt><tt><br>
&gt; <br>
&gt; <br>
&gt; --<br>
&gt; Zach Shelby, Chief Nerd, Sensinode Ltd.<br>
&gt; </tt><tt><a href=3D"http://zachshelby.org">http://zachshelby.org</=
a></tt><tt>&nbsp;- My blog &quot;On the Internet of Things&quot;<br>
&gt; </tt><tt><a href=3D"http://6lowpan.net">http://6lowpan.net</a></tt=
><tt>&nbsp;- My book &quot;6LoWPAN: The Wireless Embedded Internet&quot=
;<br>
&gt; Mobile: +358 40 7796297<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; _______________________________________________<br>
&gt; core mailing list<br>
&gt; core@ietf.org<br>
&gt; </tt><tt><a href=3D"https://www.ietf.org/mailman/listinfo/core">ht=
tps://www.ietf.org/mailman/listinfo/core</a></tt><tt><br>
&gt; <br>
&gt; --------------------------------<br>
&gt; Onzo is a limited company number 06097997 registered in England&am=
p; Wales. The<br>
&gt; registered office is 6 Great Newport Street, London, WC2H 7JB, Uni=
ted Kingdom.<br>
&gt; <br>
&gt; This email message may contain confidential and/or privileged info=
rmation, and<br>
&gt; is intended solely for the addressee(s). If you have received this=
 email in<br>
&gt; error, please notify Onzo immediately. Unauthorised copying, discl=
osure or<br>
&gt; distribution of the material in this email is forbidden.<br>
&gt; --------------------------------<br>
&gt; <br>
&gt; _______________________________________________<br>
&gt; core mailing list<br>
&gt; core@ietf.org<br>
&gt; </tt><tt><a href=3D"https://www.ietf.org/mailman/listinfo/core">ht=
tps://www.ietf.org/mailman/listinfo/core</a></tt><tt><br>
&gt; <br>
&gt; __________________________________________________________________=
____<br>
&gt; This email has been scanned by the MessageLabs Email Security Syst=
em.<br>
&gt; __________________________________________________________________=
____<br>
&gt; <br>
&gt; _______________________________________________<br>
&gt; core mailing list<br>
&gt; core@ietf.org<br>
&gt; </tt><tt><a href=3D"https://www.ietf.org/mailman/listinfo/core">ht=
tps://www.ietf.org/mailman/listinfo/core</a></tt><tt><br>
&gt; <br>
&gt; <br>
&gt; &nbsp;<br>
&gt; _______________________________________________<br>
&gt; core mailing list</tt><br>
<tt>&gt; core@ietf.org<br>
&gt; </tt><tt><a href=3D"https://www.ietf.org/mailman/listinfo/core">ht=
tps://www.ietf.org/mailman/listinfo/core</a></tt><tt><br>
&gt; <br>
&gt; --------------------------------<br>
&gt; Onzo is a limited company number 06097997 registered in England&am=
p; Wales. The<br>
&gt; registered office is 6 Great Newport Street, London, WC2H 7JB, Uni=
ted Kingdom.<br>
&gt; <br>
&gt; This email message may contain confidential and/or privileged info=
rmation, and<br>
&gt; is intended solely for the addressee(s). If you have received this=
 email in<br>
&gt; error, please notify Onzo immediately. Unauthorised copying, discl=
osure or<br>
&gt; distribution of the material in this email is forbidden.<br>
&gt; --------------------------------<br>
&gt; <br>
&gt; <br>
&gt; &nbsp;<br>
&gt; <br>
&gt; _______________________________________________<br>
&gt; core mailing list<br>
&gt; core@ietf.org<br>
&gt; </tt><tt><a href=3D"https://www.ietf.org/mailman/listinfo/core">ht=
tps://www.ietf.org/mailman/listinfo/core</a></tt><tt><br>
&gt; _______________________________________________<br>
&gt; core mailing list<br>
&gt; core@ietf.org<br>
&gt; </tt><tt><a href=3D"https://www.ietf.org/mailman/listinfo/core">ht=
tps://www.ietf.org/mailman/listinfo/core</a></tt><tt><br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; __________________________________________________________________=
____<br>
&gt; This email has been scanned by the MessageLabs Email Security Syst=
em.<br>
&gt; __________________________________________________________________=
___________________________________________________<br>
&gt; core mailing list<br>
&gt; core@ietf.org<br>
&gt; </tt><tt><a href=3D"https://www.ietf.org/mailman/listinfo/core">ht=
tps://www.ietf.org/mailman/listinfo/core</a></tt><tt><br>
&gt; <br>
&gt; _______________________________________________<br>
&gt; core mailing list<br>
&gt; core@ietf.org<br>
&gt; </tt><tt><a href=3D"https://www.ietf.org/mailman/listinfo/core">ht=
tps://www.ietf.org/mailman/listinfo/core</a></tt><tt><br>
<br>
-- <br>
Zach Shelby, Chief Nerd, Sensinode Ltd.<br>
</tt><tt><a href=3D"http://zachshelby.org">http://zachshelby.org</a></t=
t><tt>&nbsp; - My blog &quot;On the Internet of Things&quot;<br>
</tt><tt><a href=3D"http://6lowpan.net">http://6lowpan.net</a></tt><tt>=
&nbsp;- My book &quot;6LoWPAN: The Wireless Embedded Internet&quot;<br>=

Mobile: +358 40 7796297<br>
<br>
<br>
______________________________________________________________________<=
br>
This email has been scanned by the MessageLabs Email Security System.<b=
r>
______________________________________________________________________<=
br>
</tt><br>
</body></html>=


--1__=4EBBFDA2DFDAF18F8f9e8a93df938690918c4EBBFDA2DFDAF18F--


--0__=4EBBFDA2DFDAF18F8f9e8a93df938690918c4EBBFDA2DFDAF18F
Content-type: image/gif; 
	name="graycol.gif"
Content-Disposition: inline; filename="graycol.gif"
Content-ID: <1__=4EBBFDA2DFDAF18F8@schneider-electric.com>
Content-Transfer-Encoding: base64

R0lGODlhEAAQAKECAMzMzAAAAP///wAAACH5BAEAAAIALAAAAAAQABAAAAIXlI+py+0PopwxUbpu
ZRfKZ2zgSJbmSRYAIf4fT3B0aW1pemVkIGJ5IFVsZWFkIFNtYXJ0U2F2ZXIhAAA7


--0__=4EBBFDA2DFDAF18F8f9e8a93df938690918c4EBBFDA2DFDAF18F
Content-type: image/gif; 
	name="pic28315.gif"
Content-Disposition: inline; filename="pic28315.gif"
Content-ID: <2__=4EBBFDA2DFDAF18F8@schneider-electric.com>
Content-Transfer-Encoding: base64

R0lGODlhWABDALP/AAAAAK04Qf79/o+Gm7WuwlNObwoJFCsoSMDAwGFsmIuezf///wAAAAAAAAAA
AAAAACH5BAEAAAgALAAAAABYAEMAQAT/EMlJq704682770RiFMRinqggEUNSHIchG0BCfHhOjAuh
EDeUqTASLCbBhQrhG7xis2j0lssNDopE4jfIJhDaggI8YB1sZeZgLVA9YVCpnGagVjV171aRVrYR
RghXcAGFhoUETwYxcXNyADJ3GlcSKGAwLwllVC1vjIUHBWsFilKQdI8GA5IcpApeJQt8L09lmgkH
LZikoU5wjqcyAMMFrJIDPAKvCFletKSev1HBw8KrxtjZ2tvc3d5VyKtCKW3jfz4uMKmq3xu4N0nK
BVoJQmx2LGVOmrqNjjJf2hHAQo/eDwJGTKhQMcgQEEAnEjFS98+RnW3smGkZU6ncCWav/4wYOnAI
TihRL/4FEwbp28BXMMcoscQCVxlepL4IGDSCyJyVQOu0o7CjmLN50OZlqWmyFy5/6yBBuji0AxFR
M00oQAqNIstqI6qKHUsWRAEAvagsmfUEAImyxgbmUpJk3IklNUtJOUAVLoUr1+wqDGTE4zk+T6FG
uQb3SizBCwatiiUgCBN8vrz+zFjVyQ8FWkOlg4NQiZMB5QS8QO3mpOaKnL0Z2EKvNMSILEThKhCg
zMKPVxYJh23qm9KNW7pArPynMqZDiErsTMqI+LRi3QAgkFUbXpuFKhSYZALd0O5RKa2z9EYKBbpb
qxIKsjUPRgD7I2XYV6wyrOw92ykExP8NW4URhknC5dKGE4v4NENQj2jXjmfNgOZDaXb5glRmXQ33
YEWQYNcZFnrYcIQLNzyTFDQNkXIff0ExVlY4srziQk43inZgL4rwxxINMvpFFAz1KOODHiu+4aEw
NEjFl5B3JIKWKF3k6I9bfUGp5ZZcdunll5IA4cuHvQQJ5gcsoCWOOUwgltIwAKRxJgbIkJAQZEq0
2YliZnpZZ4BH3CnYOXldOUOfQoYDqF1LFHbXCrO8xmRsfoXDXJ6ChjCAH3QlhJcT6VWE6FCkfCco
CgrMFsROrIEX3o2whVjWDjoJccN3LdggSGXLCdLEgHr1lyU3O3QxhgohNKXJCWv8JQr/PDdaqd6w
2rj1inLiGeiCJoDspAoQlYE6QWLSECehcWIYxIQES6zhbn1iImTHEQyqJ4eIxJJoUBc+3CbBuwZE
V5cJPPkIjFDdeEabQbd6WgICTxiiz0f5dBKquXF6k4senwEhYGnKEFJeGrxUZy8dB8gmAXI/sPvH
ESfCwVt5hTgYiqQqtdRNHQIU1PJ33ZqmzgE90OwLaoJcnMop1WiMmgkPHQRIrwgFuNV90A3doNKT
mrKIN07AnGcI9BQjhCBN4RfA1qIZnMqorJCogKfGQnxSCDilTVIA0yl5ciTovgLuBDKFUDE9aQcw
9SA+rjSNf9/M1gxrj6VwDTS0IUSElMzBfsj0NFXR2kwsV1A5IF1grLgLL/r1R40BZEnuBWgmQEyb
jqRwSAt6bqMCOFkvKFN2GPPkUzIm/SCF8z8pVzpbjVnMsy0vOr1hw3SaSRUhpY09v0z0J1FnwzPl
fmh+xl4WtR0zGu24I4KbMQm3lnVu2oNWxI9W/lcyzA+mCKF4DBikxb/+UWtOGRiFP8qEwAayIgIA
Ow==


--0__=4EBBFDA2DFDAF18F8f9e8a93df938690918c4EBBFDA2DFDAF18F
Content-type: image/gif; 
	name="ecblank.gif"
Content-Disposition: inline; filename="ecblank.gif"
Content-ID: <3__=4EBBFDA2DFDAF18F8@schneider-electric.com>
Content-Transfer-Encoding: base64

R0lGODlhEAABAIAAAAAAAP///yH5BAEAAAEALAAAAAAQAAEAAAIEjI8ZBQA7


--0__=4EBBFDA2DFDAF18F8f9e8a93df938690918c4EBBFDA2DFDAF18F--


From angelo.castellani@gmail.com  Fri May 28 06:51:39 2010
Return-Path: <angelo.castellani@gmail.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 3B3FC3A6959 for <core@core3.amsl.com>; Fri, 28 May 2010 06:51:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.218
X-Spam-Level: *
X-Spam-Status: No, score=1.218 tagged_above=-999 required=5 tests=[AWL=0.595,  BAYES_50=0.001, FM_FORGED_GMAIL=0.622]
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 GtYbHl1R9act for <core@core3.amsl.com>; Fri, 28 May 2010 06:51:38 -0700 (PDT)
Received: from mail-gw0-f44.google.com (mail-gw0-f44.google.com [74.125.83.44]) by core3.amsl.com (Postfix) with ESMTP id D17023A68AB for <core@ietf.org>; Fri, 28 May 2010 06:51:37 -0700 (PDT)
Received: by gwj19 with SMTP id 19so948659gwj.31 for <core@ietf.org>; Fri, 28 May 2010 06:51:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=tkjHFovuDW8H2DmeXIv7nXpqucO1MjEA2r3jifLYOxc=; b=XzxmfQArIgaCWa+4h97JGw9XHAzqB+LnrbhgYrlqyAr2QruFvW99LJx3666hSaQVUD tlitcnItR3dL0lvz57UgATfbFW4nNS/GcJCv25r+nI5CWP95/Nm5ZVZSy9wtkf1IUvq1 PQBIIztndlMEbjw+UFV7J8w5JsdXT2Tt23Pl0=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=F7RuzlcS1qUujEvdnFFYKoZbkVg9QZnP5tDVh2CGYKLCsl5Ia6lI5unZG0JaY6BsRC rYEKLko1XkKpwHMpXjH6uHhv2oawNB7ZPFy9wBC1z59C/rVA8sVqzv3ypj3djsVx/Q55 y2eyHFtRby4ggfJ6iMXoyqtAWJE7mY4ETwDQY=
MIME-Version: 1.0
Received: by 10.91.14.8 with SMTP id r8mr763472agi.60.1275052789591; Fri, 28  May 2010 06:19:49 -0700 (PDT)
Sender: angelo.castellani@gmail.com
Received: by 10.90.26.2 with HTTP; Fri, 28 May 2010 06:19:49 -0700 (PDT)
In-Reply-To: <0924B0BC-BFA7-40E5-8ED9-1AF27533F401@cisco.com>
References: <AANLkTinkPwS1mr-0PXi_gNcnDbSDBPWqdwpR0Fg8taO2@mail.gmail.com> <0924B0BC-BFA7-40E5-8ED9-1AF27533F401@cisco.com>
Date: Fri, 28 May 2010 15:19:49 +0200
X-Google-Sender-Auth: j8J8ZFAZPrq66KhLrNHv5RVTBHE
Message-ID: <AANLkTik7W_C9jvMkpjJPwbqBuV9MLkhBsYG625QMQ46a@mail.gmail.com>
From: "Angelo P. Castellani" <angelo@castellani.net>
To: Cullen Jennings <fluffy@cisco.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: core <core@ietf.org>
Subject: Re: [core] Date option in draft-shelby-core-coap-01
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, 28 May 2010 13:51:39 -0000

Cullen,

I agree with you about relative times in CoAP.

Under the assumption that message delay is smaller of the required
accuracy, using a flag we can distinguish between absolute time and
relative time.

In my opinion POSIX format for absolute time is good (we can also
represent events in the past, useful?), relative time can be
represented with a signed integer of a similar size.

Best,
Angelo

On Thu, May 27, 2010 at 05:05, Cullen Jennings <fluffy@cisco.com> wrote:
>
> Peter,
>
> These are all excellent points and I think I (not Zach) am partial to bla=
me for the current text... I just pointed him towards some cut and pasted t=
ext from some other RFC - I figured we needed something in the draft as a s=
tarting point to get this conversation going. Dealing with time is always c=
omplicated and even more so in this constrained environment. If we start by=
 looking at our constraints, I suspect we come to the conclusions you sugge=
sted below.
>
> My guess is that if we asked everyone, most people would say that we coul=
d not require a COAP node to do any of the following. Some nodes might do t=
hese but it would not be required
>
> 1) run NTP
> 2) have a table of when leap seconds were going to happened and way to ke=
ep that table up to date
> 3) have a time source was more accurate than a simple non temperature com=
pensated crystal
> 4) have any clue about timezones
>
> I really have no idea how some of these devices are even going to set the=
ir time when they first get turned on other than perhaps looking at the tim=
e of some other node.
>
> All this leads me to wonder if we could get away with only having relativ=
e times in CoAP.
>
> On May 13, 2010, at 8:35 AM, Peter Bigot wrote:
>
>> Section 3.3.6 introduces a Date option that can be used to timestamp a m=
easurement. =A0The description specifies that leap seconds are excluded. =
=A0It's not crystal clear to me what "excluded" means in this situation. =
=A0I don't see any discussion in the list archive.
>>
>> Pretending leap seconds don't exist (one sense of exclude) makes sense a=
s it trivializes the translation between POSIX- time representations (secon=
ds since 1970-01-01T00:00:00Z) and UTC-aligned wall clock times that people=
 normally deal with: this becomes simple division and modulus operations wi=
th a little hassle imposed by leap years. =A0On the other hand, the represe=
ntation can express times that do not exist (23:59:59 when a negative leap =
second takes effect), and can be ambiguous (23:59:60 or a repeated 23:59:59=
 when a positive leap second takes effect). =A0More importantly, simple sub=
traction of two event times does not necessarily result in the duration of =
the event.
>>
>> For an in-development system to which CoAP could apply, my recommendatio=
n was to use times expressed as atomic seconds since the POSIX epoch (there=
by excluding leap second adjustments from the value). =A0This does mean tha=
t translation to civil time requires knowledge of the number of leap second=
s in effect at that time (currently UTC is 24 seconds behind TAI relative t=
o the POSIX epoch). =A0In return, devices that maintain an internal clock u=
sed to timestamp events do not need to be updated to take into account leap=
 second adjustments, which can take a fair amount of code and support infra=
structure to handle a very rare event. =A0It also trivializes calculation o=
f event durations, even when the duration spans application of a leap secon=
d.
>>
>> My feeling is that any software component that needs to translate betwee=
n between device time and civil time can be expected to account for leap se=
conds, while those that are operating in a constrained environment would be=
st be isolated from their effects. =A0Note that GPS time is similarly measu=
red in atomic seconds since an epoch (1980-01-06T00:00:00Z).
>>
>> So, do Date values in the proposed COAP match what you get from running =
"date +%s" on a Linux system synchronized to UTC, or are they that value pl=
us 24? =A0I read the draft as specifying the latter, which is my preference=
, but anticipate great confusion from people who haven't had to deal with l=
eap seconds before.
>>
>> Recommend changing "number of seconds, excluding leap seconds, after" to=
 "number of (atomic) seconds since".
>
> I suspect that using a EPOCH of 2010 instead of 1970 would reduce the bit=
s we need and also, more importantly, encourage people not to confuse these=
 times with "date +%s" =A0times.
>
>>
>> Peter
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>
>
> Cullen Jennings
> For corporate legal information go to:
> http://www.cisco.com/web/about/doing_business/legal/cri/index.html
>
>
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>

From zach@sensinode.com  Fri May 28 07:31:44 2010
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 28D723A6A6A for <core@core3.amsl.com>; Fri, 28 May 2010 07:31:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.11
X-Spam-Level: 
X-Spam-Status: No, score=-2.11 tagged_above=-999 required=5 tests=[BAYES_05=-1.11, 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 o6eCUDy3j8fz for <core@core3.amsl.com>; Fri, 28 May 2010 07:31:40 -0700 (PDT)
Received: from auth-smtp.nebula.fi (auth-smtp.nebula.fi [217.30.180.105]) by core3.amsl.com (Postfix) with ESMTP id C965D28C16A for <core@ietf.org>; Fri, 28 May 2010 07:30:02 -0700 (PDT)
Received: from [192.168.1.3] (line-5627.dyn.kponet.fi [85.29.68.80]) (authenticated bits=0) by auth-smtp.nebula.fi (8.13.4/8.13.4) with ESMTP id o4SETEGd022299 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Fri, 28 May 2010 17:29:15 +0300
Mime-Version: 1.0 (Apple Message framework v1078)
Content-Type: text/plain; charset=iso-8859-1
From: Zach Shelby <zach@sensinode.com>
In-Reply-To: <AANLkTil1Vx4fVvrSn5X0LhDcFhDNrXAKNfUBODRkAL3a@mail.gmail.com>
Date: Fri, 28 May 2010 17:29:15 +0300
Content-Transfer-Encoding: quoted-printable
Message-Id: <54C0D124-0AD3-4A30-8D98-4FC0FE134134@sensinode.com>
References: <0D212BD466921646B58854FB79092CEC021F4E91@XMB-AMS-106.cisco.com> <OF54E90C1C.C8997A73-ONC1257731.003EAAE3-C1257731.004127C6@schneider-electric.com> <0D212BD466921646B58854FB79092CEC021F4EF2@XMB-AMS-106.cisco.com> <6A9FCAC7-E2FA-482D-ABFF-DB6B111A9EA2@sensinode.com> <AANLkTil1Vx4fVvrSn5X0LhDcFhDNrXAKNfUBODRkAL3a@mail.gmail.com>
To: "Angelo P. Castellani" <angelo@castellani.net>
X-Mailer: Apple Mail (2.1078)
Cc: core <core@ietf.org>
Subject: Re: [core] Subscribe/Notify for CoAP
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, 28 May 2010 14:31:44 -0000

On May 28, 2010, at 4:13 PM, Angelo P. Castellani wrote:

> In my opinion Subscribe/Notify are special methods of interaction
> between resources.

This is definitely one valid way to look at it.

>=20
> 1) SUBSCRIBE: Any resource A can send a Request to SUBSCRIBE with a
> resource B (to the resource B URI).

Small correction, it is not a resource sending the SUBSCRIBE, it is an =
end-point (source address + port) sending it. Correct, it is being sent =
for resource B. So end-point A sends a SUBSCRIBE for resource B.

>=20
> When B receives the request, B can (should/must?) answer with a

MUST I would say (so the A flag must be set).

> Response to the SUBSCRIBE Request, telling the result of the request
> (subscription accepted/denied/unsupported?).

Yep.

>=20
> 2) NOTIFY: When subscription condition fires the resource B sends a
> NOTIFY Request to resource A URI.

The end-point sends a NOTIFY Request about resource B's URI to end-point =
A. So there is not a source and destination "resource", instead there is =
just resource B.=20

> When A receives the request, A can (should/must?) answer with a
> Response to the NOTIFY Request, telling the result of the request (OK,
> cancel subscription, change notify options?).

The A flag would control the need for a response.

> In each Request must be specified the URI of the resource doing the
> Request too (Option? From-URI?).

Actually, this is the URI (resource B) so you only need one URI. This is =
why I say that a notification is like an inverse GET request.=20

Zach

>=20
> Angelo
>=20
> On Fri, May 28, 2010 at 14:50, Zach Shelby <zach@sensinode.com> wrote:
>> Hi,
>>=20
>> This is a really good conversation. One thing we need to do is =
remember what our minimum requirements are for subscribe/notify and not =
try to solve something more than we should. =46rom what I know it is =
sufficient to be able to receive notifications when a URI changes or =
periodically. You might consider new URIs under this URI path to be =
changes to a URI though...
>>=20
>> On May 28, 2010, at 3:08 PM, Adriano Pezzuto (apezzuto) wrote:
>>=20
>>> Hello,
>>> with this flavor, the SUBSCRIBE may be replaced by a simple POST. So =
no needs to have an explicit SUBSCRIBE method.
>>=20
>> This is what coap-01 assumes.
>>=20
>>> If we want support a more oriented peer-to-peer transaction on CoAP, =
it looks to me both SUB and NOTIFY should be treated as messages.
>>=20
>> The Request/Response model can be used peer-to-peer, and in CoAP you =
can even use a Request asynchronously. Additionally, we want a native =
RESTful subscribe/notify technique, that is, we want to subscribe to =
resources and be susequently notified about those resources when they =
change.
>>=20
>> In that sense, you can think of a subscription as a request to =
receive asynchronous notifications about a resource (about a URI). This =
can be achieved by:
>>=20
>> 1.  as a SUBSCRIBE Request on the URI with some option indicating the =
lifetime as in coap-01,
>> 2.  as a Subcsribe message (no methods) on the URI with some option,
>> 3.  or as a POST Request on the URI with options indicating that this =
is actually a subscription and the lifetime.  This bends the meaning of =
POST quite a bit and might be prone to mistakes?
>>=20
>> The asynchronous response is a harder one. Can we bend the meaning of =
a Request for making asynchronous notifications? Also a notification =
includes a URI about a resource on the requestor, which is inverse from =
normal Requests in REST. So the options here are:
>>=20
>> 1. as a Notify message about a URI (no methods) as in coap-01,
>> 2. as a NOTIFY Request about a URI as was in coap-00,
>> 3. hmmm... reusing CRUD methods really doesn't work for this one at =
all...
>>=20
>> I wonder what the HTTP designers would have done if this would have =
been a requirement back then? Maybe we should ask them...
>>=20
>> Zach
>>=20
>>>=20
>>> Adriano
>>>=20
>>> From: matthieu.vial@fr.non.schneider-electric.com =
[mailto:matthieu.vial@fr.non.schneider-electric.com]
>>> Sent: venerd=EC 28 maggio 2010 13.52
>>> To: Adriano Pezzuto (apezzuto)
>>> Cc: core; core-bounces@ietf.org; robert.cragie@gridmerge.com
>>> Subject: Re: [core] Subscribe/Notify for CoAP
>>>=20
>>>> So strictly speaking, both NOTIFY and SUBSCRIBE are message types =
not  methods!
>>>=20
>>> SUBSCRIBE can be just an asynchronous GET on update then I think it =
is a method and NOTIFY is an asynchronous response so a message.
>>> But if we want to have selective notifications when a resource is =
created, updated or deleted then I think you're right NOTIFY and =
SUBSCRIBE are messages.
>>>=20
>>> Does that make sense ?
>>>=20
>>> Matthieu
>>>=20
>>> <image001.gif>"Adriano Pezzuto (apezzuto)" <apezzuto@cisco.com>
>>>=20
>>>=20
>>>=20
>>>=20
>>> "Adriano Pezzuto (apezzuto)" <apezzuto@cisco.com>
>>> Envoy=E9 par : core-bounces@ietf.org
>>> 28/05/2010 12:50
>>>=20
>>> <image003.png>
>>> A
>>> <image004.png>
>>> <robert.cragie@gridmerge.com>
>>> <image003.png>
>>> cc
>>> <image004.png>
>>> core <core@ietf.org>
>>> <image003.png>
>>> Objet
>>> <image004.png>
>>> Re: [core] Subscribe/Notify for CoAP
>>> <image004.png>
>>> <image004.png>
>>>=20
>>> Hi Roberto,
>>> I understand your point and personally agree on M2M is quite =
different from web page model. On the architectural RESTful style, the =
method information tells the server what to do with data kept in the URI =
information.
>>>=20
>>> So strictly speaking, both NOTIFY and SUBSCRIBE are message types =
not  methods!
>>>=20
>>> Adriano
>>>=20
>>> From: Robert Cragie [mailto:robert.cragie@gridmerge.com]
>>> Sent: venerd=EC 28 maggio 2010 11.53
>>> To: Adriano Pezzuto (apezzuto)
>>> Cc: Paul Duffy (paduffy); Zach Shelby; core
>>> Subject: Re: [core] Subscribe/Notify for CoAP
>>>=20
>>> I think the point here is that there are two levels we are =
considering.
>>>=20
>>> At the lowest (foundation) level, there are the transaction messages =
as described below. This provides a flexible mechanism for the =
application with regard to synchronicity and threading. This is =
important for the types of devices CoAP is being aimed at.
>>>=20
>>> Above that, the methods can be used according to the architectural =
style. So in this case, it is RESTful (COnstrained Restful =
Environments), which will naturally limit the number of methods and how =
transactions occur.
>>>=20
>>> The actual architecture using a combination of the methods and =
messages also depends on what is required at the application layer. =
Consider a typical client which wants to subscribe to a resource. That =
client controls the feed of data but needs a component which is capable =
of handling (possibly buffering) the data it receives through =
notifications. Is this a separate server? Or would we want to consider =
it part of an enhanced client model which is able to process feeds of =
data? These are the sort of models which have led to the myriad of =
solutions (GENA, Webhooks, long polling, pubsubhubbub, RESTMS etc.) =
based around HTTP which are all essentially ingenious ways of getting =
around the limitations imposed by HTTP and how it is processed for =
anything which deviates from the classic web page access model.
>>>=20
>>> I think the aim of CoAP should be clean from the word go with regard =
to supporting these more peer-to-peer transactions, where the client can =
exist on either entity and both entities can feed data to each other; =
typical in M2M applications.
>>>=20
>>> Robert
>>>=20
>>> Robert Cragie (Pacific Gas & Electric)
>>>=20
>>> Gridmerge Ltd.
>>> 89 Greenfield Crescent,
>>> Wakefield, WF4 4WA, UK
>>> +44 1924 910888
>>> +1 415 513 0064
>>> http://www.gridmerge.com
>>>=20
>>> On 27/05/2010 7:08 PM, Adriano Pezzuto (apezzuto) wrote:
>>> Hi Robert,
>>>=20
>>> in my personal opinion, the option 1a) brings some sort of ambiguity =
to CoAP specs.
>>>=20
>>> My be my understatement of new CoAP specs is not so deep, but now we =
have 5 methods and 3 message types: request, response and notify. Which =
methods are allowed with which messages types?
>>> I suppose you have to use PUT/POST method with notify message for =
asynch data notification. How to make a subscribe? I suppose you would =
use a SUBSCRIBE method with request/response message or SUBSCRIBE with =
notify message? Also what about POST/DELETE methods in a notify message? =
They not make any sense..
>>>=20
>>> I think the choice is between: option 1) -> only CRUD methods and =
option 1b) -> CRUD + SUB/NOTIFY methods, keeping in mind cost/benefits =
of both solutions.
>>>=20
>>> Adriano
>>>=20
>>> From: Robert Cragie [mailto:robert.cragie@gridmerge.com]
>>> Sent: mercoled=EC 26 maggio 2010 20.09
>>> To: Adriano Pezzuto (apezzuto)
>>> Cc: Paul Duffy (paduffy); Zach Shelby; core
>>> Subject: Re: [core] Subscribe/Notify for CoAP
>>>=20
>>> Hi Adrian,
>>>=20
>>> I would also prefer to keep the protocol in CoAP asynchronous. You =
can always map an asynchronous protocol to a synchronous one but, as we =
see in HTTP, it always ends up as a kludge to do it the other way round. =
The efforts which have been gone to to make HTTP quasi-asynchronous via =
all the schemes mentioned below and many more besides (all =
non-interoperable of course) is testament to how important this is for =
M2M communication.
>>>=20
>>> So, back to Zach's list, I favor 1a) for the following reasons:
>>>=20
>>> Foundation level of messages:
>>>=20
>>> 1. request/response can be asynchronous or synchronous messages (as =
there is a transaction ID in there)
>>> 2. notify is an asynchronous message
>>> Derived methods:
>>>=20
>>> I think it makes sense to add a pub/sub model as a useful mechanism =
for M2M.
>>>=20
>>> So, looking at it the other way round: It will be entirely possible =
to translate whatever is currently built on HTTP to CoAP based on the =
above, with all its restrictions regarding synchronous and client/server =
transactions. What may be harder is to translate directly is a =
CoAP-based application to HTTP. So I guess the question is: Do we want =
to be hamstrung to synchronous client/server transactions as dictated by =
HTTP and provide a direct mapping to HTTP, then have to come up with =
similar kludges for asynchronous peer-to-peer transactions as has been =
done in numerous ways for HTTP, or do we want to define the protocol =
cleanly to start with and accept that some sort of transaction =
relaying/conversion would have to take place at a mapping node?
>>>=20
>>> Robert
>>> Robert Cragie (Pacific Gas & Electric)
>>>=20
>>> Gridmerge Ltd.
>>> 89 Greenfield Crescent,
>>> Wakefield, WF4 4WA, UK
>>> +44 1924 910888
>>> +1 415 513 0064
>>> http://www.gridmerge.com
>>>=20
>>> On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote:
>>> Hi,
>>> it looks to me that CoAP should use an explicit sub/notify mechanism =
since this is the core of the machine-to-machine interaction model.
>>> HTTP suffers of this lack and we have seen a plethora of solutions =
to give an asynch taste to it. Webhooks and websockets are only the =
lasts of the list.
>>> As someone has already pointed out on this list, it is theoretically =
possible to describe sub/notify using only CRUD methods but it looks a =
little bit tricky and verbose.
>>>=20
>>> Now we have a chance to build from scratch a new protocol with and I =
think using explicit sub/notify methods with a clear and well defined =
semantic is the best option. It is easily understanding from every =
developer and will prevent to build other fanny solutions on top of the =
CoAP. HTTP does not have this well defined semantic and (for hundreds of =
other reasons also) it is not used as wide protocol for =
machine-to-machine communication.
>>>=20
>>> CoAP - as binary protocol - and with an explicit asynch model has a =
chance to be a really wide protocol for M2M communication not only for =
constrained environments.
>>>=20
>>> my 2 cents
>>>=20
>>> - adriano
>>>=20
>>> -----Original Message-----
>>> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of Paul Duffy (paduffy)
>>> Sent: mercoled=EC 26 maggio 2010 0.47
>>> To: Zach Shelby
>>> Cc: core
>>> Subject: Re: [core] Subscribe/Notify for CoAP
>>>=20
>>> On 5/25/2010 6:41 PM, Zach Shelby wrote:
>>>=20
>>> Hi,
>>>=20
>>> On May 26, 2010, at 12:23 AM, Charles Palmer wrote:
>>>=20
>>>=20
>>> Hi folks
>>>=20
>>> It occurs to me that CoRE should be keeping a close eye on ZigBee =
SE2.0 work, so that it is as easy as possible for ZigBee SE to use CoRE =
when ready. That suggests to me that we should align with their =
subscribe/notify process.
>>>=20
>>>=20
>>> I am not sure I understand that. I mean, ZigBee SE2.0 is defining an =
application specific subscribe/notify mechanism for that purpose so far =
for HTTP. This uses standard HTTP methods and some custom payload and =
REST interfaces. CoAP Req/Res is already totally compatible with SE2.0 =
in that respect, so alignment is already OK there. Nothing stopping =
someone from using SE2.0 over CoAP.
>>>=20
>>> Specifying a native susbcription/notify into CoAP is another matter. =
We can't adopt a solution specific to one application as that won't =
solve the problems of other applications nor general HTTP mapping at all =
(probably would make it worse). It seems that for the near future there =
will be a bunch of HTTP push mechanisms in use without any clear =
standard appearing - or am I wrong there?
>>>=20
>>>=20
>>>=20
>>>=20
>>> If COAP extends HTTP semantics with new subscription methods, it =
will
>>> not be possible to easily interchange HTTP/COAP, and translation
>>> gateways will become more complex to implement.
>>>=20
>>>=20
>>>=20
>>> Zach
>>>=20
>>>=20
>>> Regards - Charles
>>>=20
>>>=20
>>> -----Original Message-----
>>> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of Paul Duffy
>>> Sent: 25 May 2010 03:48
>>> To: Zach Shelby
>>> Cc: core
>>> Subject: Re: [core] Subscribe/Notify for CoAP
>>>=20
>>> Recommend something like #2, primarily to avoid introducing non HTTP
>>> method semantics, simplifying HTTP/COAP translation.gateways, etc.
>>>=20
>>>=20
>>> On 5/24/2010 11:49 AM, Zach Shelby wrote:
>>>=20
>>> (thread renamed)
>>>=20
>>> We have two different paths with regard to a subscribe/notify =
mechanism for CoAP:
>>>=20
>>> 1. Use specific Subscription and Notify mechanisms for CoAP as HTTP =
really does not include this concept.
>>> 1a) Notify as a message and SUBSCRIBE as a method. This is currently =
used in coap-01.
>>> 1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but =
we had a good list discussion about this leading to a. In practice it =
doesn't make a big difference if notification is a message or method.
>>>=20
>>> 2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0 =
proposal or GENA.
>>>=20
>>> So far we have focused on 1 in the WG, and every now and again 2 =
comes up. At least I am not convinced that we need to suffer the =
drawbacks of HTTP here. Anyways 2 does not help our mapping to HTTP in =
reality very much as there is no standard way of doing this over HTTP. =
Thus a CoAP-HTTP proxy may end up anyways translating between multiple =
HTTP frameworks depending on the application. So instead of doing a CoAP =
Notify/Subscribe to Webhooks mapping, you will could end up having to do =
a CoAP Webhooks to HTTP GENA mapping.
>>>=20
>>>=20
>>>=20
>>> I don't understand this last para. If CoAP sticks to the semantics =
of
>>> the current HTTP methods, would this not offer a fairly =
straightforward
>>> translation to/from HTTP?
>>>=20
>>>=20
>>>=20
>>> =46rom what I have heard so far 1 still seems like a wise choice, =
although I need to look at Webhooks more deeply. In reality many =
applications specify their own way of doing a push interface using REST =
methods and specific payloads (ZigBee SE2.0 is such an example). That is =
just fine, and might be used instead of a specific CoAP notify/subscribe =
in that case. So 1 doesn't prevent the application using its own =
mechanism, it just provides a native way for doing push.
>>>=20
>>> What do people think?
>>>=20
>>> Zach
>>>=20
>>> On May 17, 2010, at 6:44 =
PM,matthieu.vial@fr.non.schneider-electric.com wrote:
>>>=20
>>>=20
>>>=20
>>> Hi,
>>>=20
>>> My comments about the subscribe/notify mechanism of Zigbee IP.
>>>=20
>>> Pros:
>>> - Derived from the webhooks concept
>>> - If used by CORE it will be easier to map to HTTP because it uses =
only CRUD verbs.
>>> - The subscription message is extendable and could support advanced =
options (delays, increment, ...)
>>> - Only one listening port whatever the transport binding is.
>>>=20
>>> Cons:
>>> - No interoperability without well known URIs and a well defined =
subscription message format (Not sure CoAP draft is the right place to =
specify this).
>>> - XML/EXI is too complex to be the required format for the default =
subscription/notification mechanism.
>>> - The notification should not require a subsequent GET to retrieve =
the content.
>>> - Subresource subscription is redundant.
>>>=20
>>> Hope this could help,
>>> Matthieu
>>>=20
>>>=20
>>> <graycol.gif>"Charles Palmer"<charles.palmer@onzo.com>
>>>=20
>>>=20
>>>=20
>>>=20
>>> "Charles Palmer"<charles.palmer@onzo.com>
>>> Envoy=E9 par : core-bounces@ietf.org
>>> 15/05/2010 14:06
>>>=20
>>> <ecblank.gif>
>>> A
>>> <ecblank.gif>
>>> "core"<core@ietf.org>
>>> <ecblank.gif>
>>> cc
>>> <ecblank.gif>
>>> <ecblank.gif>
>>> Objet
>>> <ecblank.gif>
>>> Re: [core] Selecting a WG document for CoAP
>>> <ecblank.gif> <ecblank.gif>
>>>=20
>>> Dear all
>>>=20
>>> Those interested in the subscribe/notify discussion might like to =
look
>>> at the draft Smart Energy Profile 2.0 Application Protocol
>>> Specification. It is available here:
>>> =
http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicApp
>>> licationProfile.aspx
>>>=20
>>> It manages subscribe/notify by using POST. This seems to remove the =
need
>>> for SUBSCRIBE and notify.
>>>=20
>>> "Imagine a host A, which exposes a resource at http{s}://A/resource =
and
>>> a second host B, which wishes to learn of changes to this resource. =
To
>>> facilitate a subscription/ notification mechanism, A would expose a
>>> resource http{s}://A/sub and B would expose a resource =
http{s}://B/ntfy.
>>> To subscribe to notifications regarding http{s}://A/resource, B =
would
>>> send a POST to the address http{s}://A/sub/B containing the URI of =
the
>>> resource of interest (http{s}://A/resource) and the URI of B's
>>> notification resource (http{s}://B/ntfy). Following this =
subscription
>>> step, should A wish to notify B of a change to the resource =
addressed at
>>> http{s}://A/resource, A would send a POST to the address
>>> http{s}://B/ntfy containing the URI of the resource changed
>>> (http{s}://A/resource) and the URI of A's subscription resource
>>> (http{s}://A/sub/B), should A wish to change its subscription. The =
host
>>> B can then query the resource (or not) at its leisure."
>>>=20
>>> Sleepy nodes are not allowed to subscribe, and must poll.
>>>=20
>>> Regards - Charles Palmer
>>>=20
>>> -----Original Message-----
>>> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of
>>> Angelo P. Castellani
>>> Sent: 14 May 2010 13:14
>>> To: Zach Shelby
>>> Cc: core
>>> Subject: Re: [core] Selecting a WG document for CoAP
>>>=20
>>> Zach,
>>>=20
>>> thanks for the comments, but please refer to my most recent e-mail =
for
>>> a more specific list of technical issues I'm pointing to.
>>>=20
>>> I want to do only a little integration to what I've written there.
>>>=20
>>> In my very personal opinion, to maximize adherence with the REST =
model
>>> and minimize implementation effort SUBSCRIBE and NOTIFY should be
>>> mapped to methods (as discussed many times together...).
>>>=20
>>> Uniform interface principle (Fielding PhD dissertation Section =
5.1.5,
>>> "The central feature that distinguishes the REST architectural style
>>> [...]") states that to simplify the software architecture, resource
>>> interfaces/interfaces should be as general as possible.
>>>=20
>>> I agree with this principle in this specific case, mainly because
>>> handling a special message type for notify leads node software =
design
>>> to a more complex architecture.
>>>=20
>>> The reason is that this new message type requires special handling =
and
>>> introduces a complexity in the software modularization.
>>>=20
>>> Best,
>>> Angelo
>>>=20
>>> On Fri, May 14, 2010 at 13:06, Zach Shelby<zach@sensinode.com> =
wrote:
>>>=20
>>>=20
>>> Hi Angelo,
>>>=20
>>> On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:
>>>=20
>>>=20
>>>=20
>>> Dear C. Bormann, all,
>>>=20
>>> before deciding for the final direction, I've the following
>>> observations about draft-shelby-core-coap-01
>>>=20
>>> While I mostly share Zach's view of the protocol approach, and
>>> appreciate many aspects of the proposal, there are in my opinion
>>>=20
>>>=20
>>> still
>>>=20
>>>=20
>>> some open issues that need to be at least discussed before the
>>>=20
>>>=20
>>> current
>>>=20
>>>=20
>>> document can be selected.
>>>=20
>>>=20
>>> Of course there are plenty of open issues. Remember that working =
group
>>>=20
>>>=20
>>> documents still undertake as much change and improvement as the WG
>>> wants, so by no means is coap-01 set in stone. I would expect at =
least
>>> 5-10 more revisions still along the way. Already several of your =
ideas
>>> have been integrated into coap-01, and several more are under
>>> consideration, so it is coming along. Patience ;-)
>>>=20
>>>=20
>>>=20
>>> In particular, I would like to highlight the following:
>>>=20
>>> a) As it is now, it is not possible to have a straightforward
>>> translation of HTTP -> CoAP and viceversa: see
>>> http://www.ietf.org/mail-archive/web/core/current/msg00133.html =
(this
>>> impacts the scalability of the web service model too)
>>>=20
>>>=20
>>> In coap-01 the Method names are now identical to HTTP methods. The
>>>=20
>>>=20
>>> Req/Res interaction is a direct translation. The URI hierarchy is
>>> compatible, and the URI binary code format we are still working on
>>> obviously. The only thing that takes some state to translate is
>>> Subscribe/Notify. But note, Subscribe/Notify takes some state no =
matter
>>> how you do it, even with HTTP-HTTP there is no clean and easy way to
>>> handle subscriptions.
>>>=20
>>>=20
>>>=20
>>> b) Moreover, CoAP's implementation is not as simple as it should be.
>>> I've investigated the implementation and some design choices (as
>>> Options) are leading to very high program complexity (ROM) on a
>>> MSP430-based device.
>>>=20
>>>=20
>>> This we can definitely improve, and already made several =
optimizations
>>>=20
>>>=20
>>> from -00 to -01. Here I need some very concrete proposals though. =
Also
>>> remember that many things are optional, for example subscribe/notify =
is
>>> not required if you don't need it.
>>>=20
>>>=20
>>>=20
>>> c) Finally when comparing HTTP message size with CoAP message size,
>>> the resulting compression isn't as good as you may expect.
>>>=20
>>> Example:
>>> HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
>>> CoAP: 24 B with options parsing procedure requiring an added
>>> implementation complexity
>>>=20
>>>=20
>>> Right, that is not how it will work in practice. Working with a real
>>>=20
>>>=20
>>> HTTP server that HTTP header will be more complex, and on the CoAP =
side
>>> you would chose shorter URLs. The biggest improvement possible here =
is
>>> from using binary coded URLs of course. We need to look at a wider =
range
>>> of interactions and real HTTP headers as well to check that we are
>>> efficient enough.
>>>=20
>>>=20
>>>=20
>>> Addressing all these points potentially leads to major technical
>>> modifications (especially point a) on the current draft, hence it is
>>> appropriate in my opinion to discuss these points before making the
>>> final decision.
>>>=20
>>>=20
>>> I am not sure what else you have in mind for a). If we just forget
>>>=20
>>>=20
>>> about Subscribe/Notify then you are good to go. But then you are =
also
>>> not fulfilling the charter or the industry needs in that respect.
>>>=20
>>>=20
>>> Thanks,
>>> Zach
>>>=20
>>>=20
>>>=20
>>> Best regards,
>>>=20
>>> Angelo P. Castellani
>>>=20
>>>=20
>>> On Mon, May 10, 2010 at 18:51, Carsten Bormann<cabo@tzi.org>wrote:
>>>=20
>>>=20
>>> The CORE WG has a milestone to select a WG document for CoAP in
>>>=20
>>>=20
>>> April:
>>>=20
>>>=20
>>> http://datatracker.ietf.org/wg/core/charter/
>>> ...
>>> Apr 2010 Select WG document for basis of the CoAP protocol
>>>=20
>>> Of the various documents that have been contributed,
>>>=20
>>>=20
>>> draft-shelby-core-coap has significant discussion, as well as the
>>> largest number of updates (including a previous version that was =
still
>>> called -6lowapp-coap).
>>>=20
>>>=20
>>> Today, another updated version of that draft was announced. See
>>> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
>>> for the announcement and
>>> http://tools.ietf.org/html/draft-shelby-core-coap-01
>>> for the draft itself.
>>>=20
>>> However, as the authors say, there are still significant TODOs.
>>>=20
>>> Are we in a state yet where we can say whether this is the right
>>>=20
>>>=20
>>> direction for the WG to take?
>>>=20
>>>=20
>>> If yes, is it the right direction? Should we adopt it as a WG
>>>=20
>>>=20
>>> document?
>>>=20
>>>=20
>>> If you don't think we can say yet, is there a set of technical
>>>=20
>>>=20
>>> decisions you would like the authors to take with priority?
>>>=20
>>>=20
>>> Note that once a document has become a WG document, the authors act
>>>=20
>>>=20
>>> as editors for the working group, making (and usually fleshing out =
the
>>> details of) any change that the WG decides it needs.
>>>=20
>>>=20
>>> If you think we can still improve the draft, this is not an obstacle
>>>=20
>>>=20
>>> to making it a WG document.
>>>=20
>>>=20
>>> But of course we shouldn't do that if we intend to reverse its
>>>=20
>>>=20
>>> fundamental technical direction.
>>>=20
>>>=20
>>> In order to stay roughly in sync with our milestones, we should
>>>=20
>>>=20
>>> reach at a decision on how to go forward this week.
>>>=20
>>>=20
>>> Gruesse, Carsten
>>>=20
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>=20
>>>=20
>>>=20
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>=20
>>>=20
>>> --
>>> 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
>>>=20
>>>=20
>>>=20
>>>=20
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>=20
>>> --------------------------------
>>> Onzo is a limited company number 06097997 registered in England& =
Wales. The
>>> registered office is 6 Great Newport Street, London, WC2H 7JB, =
United Kingdom.
>>>=20
>>> This email message may contain confidential and/or privileged =
information, and
>>> is intended solely for the addressee(s). If you have received this =
email in
>>> error, please notify Onzo immediately. Unauthorised copying, =
disclosure or
>>> distribution of the material in this email is forbidden.
>>> --------------------------------
>>>=20
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>=20
>>> =
______________________________________________________________________
>>> This email has been scanned by the MessageLabs Email Security =
System.
>>> =
______________________________________________________________________
>>>=20
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>=20
>>>=20
>>>=20
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>=20
>>> --------------------------------
>>> Onzo is a limited company number 06097997 registered in England& =
Wales. The
>>> registered office is 6 Great Newport Street, London, WC2H 7JB, =
United Kingdom.
>>>=20
>>> This email message may contain confidential and/or privileged =
information, and
>>> is intended solely for the addressee(s). If you have received this =
email in
>>> error, please notify Onzo immediately. Unauthorised copying, =
disclosure or
>>> distribution of the material in this email is forbidden.
>>> --------------------------------
>>>=20
>>>=20
>>>=20
>>>=20
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>=20
>>>=20
>>>=20
>>> =
______________________________________________________________________
>>> This email has been scanned by the MessageLabs Email Security =
System.
>>> =
__________________________________________________________________________=
___________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>=20
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>=20
>> --
>> 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
>>=20
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>=20

--=20
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


From robert.cragie@gridmerge.com  Fri May 28 10:23:07 2010
Return-Path: <robert.cragie@gridmerge.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 288DE3A67F2 for <core@core3.amsl.com>; Fri, 28 May 2010 10:23:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.233
X-Spam-Level: *
X-Spam-Status: No, score=1.233 tagged_above=-999 required=5 tests=[AWL=-0.069,  BAYES_50=0.001, HTML_MESSAGE=0.001, MANGLED_TOOL=2.3, 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 Z3hipY34pTIK for <core@core3.amsl.com>; Fri, 28 May 2010 10:23:02 -0700 (PDT)
Received: from mail78.extendcp.co.uk (mail78.extendcp.co.uk [79.170.40.78]) by core3.amsl.com (Postfix) with ESMTP id A9AF23A685A for <core@ietf.org>; Fri, 28 May 2010 10:23:01 -0700 (PDT)
Received: from client-82-26-176-40.pete.adsl.virginmedia.com ([82.26.176.40] helo=[192.168.1.70]) by mail78.extendcp.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.71) id 1OI3Gi-0008Hc-2j for core@ietf.org; Fri, 28 May 2010 18:22:49 +0100
Message-ID: <4BFFFBE4.4090108@gridmerge.com>
Date: Fri, 28 May 2010 18:22:44 +0100
From: Robert Cragie <robert.cragie@gridmerge.com>
Organization: Gridmerge Ltd.
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.9) Gecko/20100317 Lightning/1.0b1 Thunderbird/3.0.4
MIME-Version: 1.0
To: core@ietf.org
References: <0D212BD466921646B58854FB79092CEC021F4E91@XMB-AMS-106.cisco.com>	<OF54E90C1C.C8997A73-ONC1257731.003EAAE3-C1257731.004127C6@schneider-electric.com>	<0D212BD466921646B58854FB79092CEC021F4EF2@XMB-AMS-106.cisco.com>	<6A9FCAC7-E2FA-482D-ABFF-DB6B111A9EA2@sensinode.com> <AANLkTil1Vx4fVvrSn5X0LhDcFhDNrXAKNfUBODRkAL3a@mail.gmail.com>
In-Reply-To: <AANLkTil1Vx4fVvrSn5X0LhDcFhDNrXAKNfUBODRkAL3a@mail.gmail.com>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="------------ms000609040001000604050103"
Subject: Re: [core] Subscribe/Notify for CoAP
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: robert.cragie@gridmerge.com
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, 28 May 2010 17:23:07 -0000

This is a cryptographically signed message in MIME format.

--------------ms000609040001000604050103
Content-Type: multipart/alternative;
 boundary="------------010004030807040508000401"

This is a multi-part message in MIME format.
--------------010004030807040508000401
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable

I think sometimes it makes more sense to think about threads of execution=
=2E

Forgive me for this lengthy preamble but it will hopefully put things=20
into context.

In the most abstract sense, processing is governed by a thread of=20
execution, which sequences a series of data transformations to expedite=20
the required processing. If a data transformation can be completed=20
synchronously in the thread of execution, then the thread is=20
conceptually easier to understand and follow. Most threading models=20
assume this to be the case and if the data transformation cannot=20
complete, it usually blocks pending the required event to complete the=20
transformation. During blocking, the thread is suspended. In simple CPU=20
models without any sort of scheduler, there are two threads of=20
execution: A main thread, pre-emptable by an interrupt thread, usually=20
not pre-emptable. In the main thread, sub-threads are emulated; data=20
transformations can be simply function calls which don't block and=20
therefore return effectively immediately and synchronously. Blocking=20
data transformations are emulated by storing state relevant to each=20
sub-thread then marshaling each event as it is received e.g. through=20
interrupt handling, which causes the second thread to run and thus=20
allows changing sub-thread state so when the main thread runs, the=20
blocking data transformation can complete. Operating system schedulers=20
for these simple CPUs simply abstract this operation through a kernel=20
and associated task/thread scheduling calls. Continuations are a simpler =

form used in memory-constrained implementations.

Why the lengthy pre-amble? However you look at it, what essentially is=20
required for any threading model (using kernel/scheduler, continuations, =

emulated, whatever) are fundamentally three primitives:

    * Request
    * Response
    * Notify

A thread of execution will call request and will typically (though not=20
necessarily - see emulated blocking/continuations) wait for a response.=20
If the thread blocks, it is typically woken by another worker thread=20
handling a notify. The worker thread handles notifies asynchronously and =

buffers and/or signals the associated task accordingly.

This is why I think the current foundation level of messages in coap-01=20
is right.

On top of this, the payload of the messages can reflect the actual=20
method. Personally, I don't see the need for a specific SUBSCRIBE=20
message; a POST/create to a subscription resource seems adequate to me.=20
The notify message can carry a PUT or POST depending on whether the=20
resource was simply updated or appended to (again it is no accident the=20
data types in JSON are as they are).

Robert

Robert Cragie (Pacific Gas & Electric)

Gridmerge Ltd.
89 Greenfield Crescent,
Wakefield, WF4 4WA, UK
+44 1924 910888
+1 415 513 0064
http://www.gridmerge.com <http://www.gridmerge.com/>


On 28/05/2010 2:13 PM, Angelo P. Castellani wrote:
> In my opinion Subscribe/Notify are special methods of interaction
> between resources.
>
> 1) SUBSCRIBE: Any resource A can send a Request to SUBSCRIBE with a
> resource B (to the resource B URI).
>
> When B receives the request, B can (should/must?) answer with a
> Response to the SUBSCRIBE Request, telling the result of the request
> (subscription accepted/denied/unsupported?).
>
> 2) NOTIFY: When subscription condition fires the resource B sends a
> NOTIFY Request to resource A URI.
>
> When A receives the request, A can (should/must?) answer with a
> Response to the NOTIFY Request, telling the result of the request (OK,
> cancel subscription, change notify options?).
>
> In each Request must be specified the URI of the resource doing the
> Request too (Option? From-URI?).
>
> Angelo
>
> On Fri, May 28, 2010 at 14:50, Zach Shelby<zach@sensinode.com>  wrote:
>   =20
>> Hi,
>>
>> This is a really good conversation. One thing we need to do is remembe=
r what our minimum requirements are for subscribe/notify and not try to s=
olve something more than we should. From what I know it is sufficient to =
be able to receive notifications when a URI changes or periodically. You =
might consider new URIs under this URI path to be changes to a URI though=
=2E..
>>
>> On May 28, 2010, at 3:08 PM, Adriano Pezzuto (apezzuto) wrote:
>>
>>     =20
>>> Hello,
>>> with this flavor, the SUBSCRIBE may be replaced by a simple POST. So =
no needs to have an explicit SUBSCRIBE method.
>>>       =20
>> This is what coap-01 assumes.
>>
>>     =20
>>> If we want support a more oriented peer-to-peer transaction on CoAP, =
it looks to me both SUB and NOTIFY should be treated as messages.
>>>       =20
>> The Request/Response model can be used peer-to-peer, and in CoAP you c=
an even use a Request asynchronously. Additionally, we want a native REST=
ful subscribe/notify technique, that is, we want to subscribe to resource=
s and be susequently notified about those resources when they change.
>>
>> In that sense, you can think of a subscription as a request to receive=
 asynchronous notifications about a resource (about a URI). This can be a=
chieved by:
>>
>> 1.  as a SUBSCRIBE Request on the URI with some option indicating the =
lifetime as in coap-01,
>> 2.  as a Subcsribe message (no methods) on the URI with some option,
>> 3.  or as a POST Request on the URI with options indicating that this =
is actually a subscription and the lifetime.  This bends the meaning of P=
OST quite a bit and might be prone to mistakes?
>>
>> The asynchronous response is a harder one. Can we bend the meaning of =
a Request for making asynchronous notifications? Also a notification incl=
udes a URI about a resource on the requestor, which is inverse from norma=
l Requests in REST. So the options here are:
>>
>> 1. as a Notify message about a URI (no methods) as in coap-01,
>> 2. as a NOTIFY Request about a URI as was in coap-00,
>> 3. hmmm... reusing CRUD methods really doesn't work for this one at al=
l...
>>
>> I wonder what the HTTP designers would have done if this would have be=
en a requirement back then? Maybe we should ask them...
>>
>> Zach
>>
>>     =20
>>> Adriano
>>>
>>> From: matthieu.vial@fr.non.schneider-electric.com [mailto:matthieu.vi=
al@fr.non.schneider-electric.com]
>>> Sent: venerd=EC 28 maggio 2010 13.52
>>> To: Adriano Pezzuto (apezzuto)
>>> Cc: core; core-bounces@ietf.org; robert.cragie@gridmerge.com
>>> Subject: Re: [core] Subscribe/Notify for CoAP
>>>
>>>       =20
>>>> So strictly speaking, both NOTIFY and SUBSCRIBE are message types no=
t  methods!
>>>>         =20
>>> SUBSCRIBE can be just an asynchronous GET on update then I think it i=
s a method and NOTIFY is an asynchronous response so a message.
>>> But if we want to have selective notifications when a resource is cre=
ated, updated or deleted then I think you're right NOTIFY and SUBSCRIBE a=
re messages.
>>>
>>> Does that make sense ?
>>>
>>> Matthieu
>>>
>>> <image001.gif>"Adriano Pezzuto (apezzuto)"<apezzuto@cisco.com>
>>>
>>>
>>>
>>>
>>> "Adriano Pezzuto (apezzuto)"<apezzuto@cisco.com>
>>> Envoy=E9 par : core-bounces@ietf.org
>>> 28/05/2010 12:50
>>>
>>> <image003.png>
>>> A
>>> <image004.png>
>>> <robert.cragie@gridmerge.com>
>>> <image003.png>
>>> cc
>>> <image004.png>
>>> core<core@ietf.org>
>>> <image003.png>
>>> Objet
>>> <image004.png>
>>> Re: [core] Subscribe/Notify for CoAP
>>> <image004.png>
>>> <image004.png>
>>>
>>> Hi Roberto,
>>> I understand your point and personally agree on M2M is quite differen=
t from web page model. On the architectural RESTful style, the method inf=
ormation tells the server what to do with data kept in the URI informatio=
n.
>>>
>>> So strictly speaking, both NOTIFY and SUBSCRIBE are message types not=
  methods!
>>>
>>> Adriano
>>>
>>> From: Robert Cragie [mailto:robert.cragie@gridmerge.com]
>>> Sent: venerd=EC 28 maggio 2010 11.53
>>> To: Adriano Pezzuto (apezzuto)
>>> Cc: Paul Duffy (paduffy); Zach Shelby; core
>>> Subject: Re: [core] Subscribe/Notify for CoAP
>>>
>>> I think the point here is that there are two levels we are considerin=
g.
>>>
>>> At the lowest (foundation) level, there are the transaction messages =
as described below. This provides a flexible mechanism for the applicatio=
n with regard to synchronicity and threading. This is important for the t=
ypes of devices CoAP is being aimed at.
>>>
>>> Above that, the methods can be used according to the architectural st=
yle. So in this case, it is RESTful (COnstrained Restful Environments), w=
hich will naturally limit the number of methods and how transactions occu=
r.
>>>
>>> The actual architecture using a combination of the methods and messag=
es also depends on what is required at the application layer. Consider a =
typical client which wants to subscribe to a resource. That client contro=
ls the feed of data but needs a component which is capable of handling (p=
ossibly buffering) the data it receives through notifications. Is this a =
separate server? Or would we want to consider it part of an enhanced clie=
nt model which is able to process feeds of data? These are the sort of mo=
dels which have led to the myriad of solutions (GENA, Webhooks, long poll=
ing, pubsubhubbub, RESTMS etc.) based around HTTP which are all essential=
ly ingenious ways of getting around the limitations imposed by HTTP and h=
ow it is processed for anything which deviates from the classic web page =
access model.
>>>
>>> I think the aim of CoAP should be clean from the word go with regard =
to supporting these more peer-to-peer transactions, where the client can =
exist on either entity and both entities can feed data to each other; typ=
ical in M2M applications.
>>>
>>> Robert
>>>
>>> Robert Cragie (Pacific Gas&  Electric)
>>>
>>> Gridmerge Ltd.
>>> 89 Greenfield Crescent,
>>> Wakefield, WF4 4WA, UK
>>> +44 1924 910888
>>> +1 415 513 0064
>>> http://www.gridmerge.com
>>>
>>> On 27/05/2010 7:08 PM, Adriano Pezzuto (apezzuto) wrote:
>>> Hi Robert,
>>>
>>> in my personal opinion, the option 1a) brings some sort of ambiguity =
to CoAP specs.
>>>
>>> My be my understatement of new CoAP specs is not so deep, but now we =
have 5 methods and 3 message types: request, response and notify. Which m=
ethods are allowed with which messages types?
>>> I suppose you have to use PUT/POST method with notify message for asy=
nch data notification. How to make a subscribe? I suppose you would use a=
 SUBSCRIBE method with request/response message or SUBSCRIBE with notify =
message? Also what about POST/DELETE methods in a notify message? They no=
t make any sense..
>>>
>>> I think the choice is between: option 1) ->  only CRUD methods and op=
tion 1b) ->  CRUD + SUB/NOTIFY methods, keeping in mind cost/benefits of =
both solutions.
>>>
>>> Adriano
>>>
>>> From: Robert Cragie [mailto:robert.cragie@gridmerge.com]
>>> Sent: mercoled=EC 26 maggio 2010 20.09
>>> To: Adriano Pezzuto (apezzuto)
>>> Cc: Paul Duffy (paduffy); Zach Shelby; core
>>> Subject: Re: [core] Subscribe/Notify for CoAP
>>>
>>> Hi Adrian,
>>>
>>> I would also prefer to keep the protocol in CoAP asynchronous. You ca=
n always map an asynchronous protocol to a synchronous one but, as we see=
 in HTTP, it always ends up as a kludge to do it the other way round. The=
 efforts which have been gone to to make HTTP quasi-asynchronous via all =
the schemes mentioned below and many more besides (all non-interoperable =
of course) is testament to how important this is for M2M communication.
>>>
>>> So, back to Zach's list, I favor 1a) for the following reasons:
>>>
>>> Foundation level of messages:
>>>
>>> 1. request/response can be asynchronous or synchronous messages (as t=
here is a transaction ID in there)
>>> 2. notify is an asynchronous message
>>> Derived methods:
>>>
>>> I think it makes sense to add a pub/sub model as a useful mechanism f=
or M2M.
>>>
>>> So, looking at it the other way round: It will be entirely possible t=
o translate whatever is currently built on HTTP to CoAP based on the abov=
e, with all its restrictions regarding synchronous and client/server tran=
sactions. What may be harder is to translate directly is a CoAP-based app=
lication to HTTP. So I guess the question is: Do we want to be hamstrung =
to synchronous client/server transactions as dictated by HTTP and provide=
 a direct mapping to HTTP, then have to come up with similar kludges for =
asynchronous peer-to-peer transactions as has been done in numerous ways =
for HTTP, or do we want to define the protocol cleanly to start with and =
accept that some sort of transaction relaying/conversion would have to ta=
ke place at a mapping node?
>>>
>>> Robert
>>> Robert Cragie (Pacific Gas&  Electric)
>>>
>>> Gridmerge Ltd.
>>> 89 Greenfield Crescent,
>>> Wakefield, WF4 4WA, UK
>>> +44 1924 910888
>>> +1 415 513 0064
>>> http://www.gridmerge.com
>>>
>>> On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote:
>>> Hi,
>>> it looks to me that CoAP should use an explicit sub/notify mechanism =
since this is the core of the machine-to-machine interaction model.
>>> HTTP suffers of this lack and we have seen a plethora of solutions to=
 give an asynch taste to it. Webhooks and websockets are only the lasts o=
f the list.
>>> As someone has already pointed out on this list, it is theoretically =
possible to describe sub/notify using only CRUD methods but it looks a li=
ttle bit tricky and verbose.
>>>
>>> Now we have a chance to build from scratch a new protocol with and I =
think using explicit sub/notify methods with a clear and well defined sem=
antic is the best option. It is easily understanding from every developer=
 and will prevent to build other fanny solutions on top of the CoAP. HTTP=
 does not have this well defined semantic and (for hundreds of other reas=
ons also) it is not used as wide protocol for machine-to-machine communic=
ation.
>>>
>>> CoAP - as binary protocol - and with an explicit asynch model has a c=
hance to be a really wide protocol for M2M communication not only for con=
strained environments.
>>>
>>> my 2 cents
>>>
>>> - adriano
>>>
>>> -----Original Message-----
>>> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of Paul Duffy (paduffy)
>>> Sent: mercoled=EC 26 maggio 2010 0.47
>>> To: Zach Shelby
>>> Cc: core
>>> Subject: Re: [core] Subscribe/Notify for CoAP
>>>
>>> On 5/25/2010 6:41 PM, Zach Shelby wrote:
>>>
>>> Hi,
>>>
>>> On May 26, 2010, at 12:23 AM, Charles Palmer wrote:
>>>
>>>
>>> Hi folks
>>>
>>> It occurs to me that CoRE should be keeping a close eye on ZigBee SE2=
=2E0 work, so that it is as easy as possible for ZigBee SE to use CoRE wh=
en ready. That suggests to me that we should align with their subscribe/n=
otify process.
>>>
>>>
>>> I am not sure I understand that. I mean, ZigBee SE2.0 is defining an =
application specific subscribe/notify mechanism for that purpose so far f=
or HTTP. This uses standard HTTP methods and some custom payload and REST=
 interfaces. CoAP Req/Res is already totally compatible with SE2.0 in tha=
t respect, so alignment is already OK there. Nothing stopping someone fro=
m using SE2.0 over CoAP.
>>>
>>> Specifying a native susbcription/notify into CoAP is another matter. =
We can't adopt a solution specific to one application as that won't solve=
 the problems of other applications nor general HTTP mapping at all (prob=
ably would make it worse). It seems that for the near future there will b=
e a bunch of HTTP push mechanisms in use without any clear standard appea=
ring - or am I wrong there?
>>>
>>>
>>>
>>>
>>> If COAP extends HTTP semantics with new subscription methods, it will=

>>> not be possible to easily interchange HTTP/COAP, and translation
>>> gateways will become more complex to implement.
>>>
>>>
>>>
>>> Zach
>>>
>>>
>>> Regards - Charles
>>>
>>>
>>> -----Original Message-----
>>> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of Paul Duffy
>>> Sent: 25 May 2010 03:48
>>> To: Zach Shelby
>>> Cc: core
>>> Subject: Re: [core] Subscribe/Notify for CoAP
>>>
>>> Recommend something like #2, primarily to avoid introducing non HTTP
>>> method semantics, simplifying HTTP/COAP translation.gateways, etc.
>>>
>>>
>>> On 5/24/2010 11:49 AM, Zach Shelby wrote:
>>>
>>> (thread renamed)
>>>
>>> We have two different paths with regard to a subscribe/notify mechani=
sm for CoAP:
>>>
>>> 1. Use specific Subscription and Notify mechanisms for CoAP as HTTP r=
eally does not include this concept.
>>> 1a) Notify as a message and SUBSCRIBE as a method. This is currently =
used in coap-01.
>>> 1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but we=
 had a good list discussion about this leading to a. In practice it doesn=
't make a big difference if notification is a message or method.
>>>
>>> 2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0 =
proposal or GENA.
>>>
>>> So far we have focused on 1 in the WG, and every now and again 2 come=
s up. At least I am not convinced that we need to suffer the drawbacks of=
 HTTP here. Anyways 2 does not help our mapping to HTTP in reality very m=
uch as there is no standard way of doing this over HTTP. Thus a CoAP-HTTP=
 proxy may end up anyways translating between multiple HTTP frameworks de=
pending on the application. So instead of doing a CoAP Notify/Subscribe t=
o Webhooks mapping, you will could end up having to do a CoAP Webhooks to=
 HTTP GENA mapping.
>>>
>>>
>>>
>>> I don't understand this last para. If CoAP sticks to the semantics of=

>>> the current HTTP methods, would this not offer a fairly straightforwa=
rd
>>> translation to/from HTTP?
>>>
>>>
>>>
>>>  From what I have heard so far 1 still seems like a wise choice, alth=
ough I need to look at Webhooks more deeply. In reality many applications=
 specify their own way of doing a push interface using REST methods and s=
pecific payloads (ZigBee SE2.0 is such an example). That is just fine, an=
d might be used instead of a specific CoAP notify/subscribe in that case.=
 So 1 doesn't prevent the application using its own mechanism, it just pr=
ovides a native way for doing push.
>>>
>>> What do people think?
>>>
>>> Zach
>>>
>>> On May 17, 2010, at 6:44 PM,matthieu.vial@fr.non.schneider-electric.c=
om wrote:
>>>
>>>
>>>
>>> Hi,
>>>
>>> My comments about the subscribe/notify mechanism of Zigbee IP.
>>>
>>> Pros:
>>> - Derived from the webhooks concept
>>> - If used by CORE it will be easier to map to HTTP because it uses on=
ly CRUD verbs.
>>> - The subscription message is extendable and could support advanced o=
ptions (delays, increment, ...)
>>> - Only one listening port whatever the transport binding is.
>>>
>>> Cons:
>>> - No interoperability without well known URIs and a well defined subs=
cription message format (Not sure CoAP draft is the right place to specif=
y this).
>>> - XML/EXI is too complex to be the required format for the default su=
bscription/notification mechanism.
>>> - The notification should not require a subsequent GET to retrieve th=
e content.
>>> - Subresource subscription is redundant.
>>>
>>> Hope this could help,
>>> Matthieu
>>>
>>>
>>> <graycol.gif>"Charles Palmer"<charles.palmer@onzo.com>
>>>
>>>
>>>
>>>
>>> "Charles Palmer"<charles.palmer@onzo.com>
>>> Envoy=E9 par : core-bounces@ietf.org
>>> 15/05/2010 14:06
>>>
>>> <ecblank.gif>
>>> A
>>> <ecblank.gif>
>>> "core"<core@ietf.org>
>>> <ecblank.gif>
>>> cc
>>> <ecblank.gif>
>>> <ecblank.gif>
>>> Objet
>>> <ecblank.gif>
>>> Re: [core] Selecting a WG document for CoAP
>>> <ecblank.gif>  <ecblank.gif>
>>>
>>> Dear all
>>>
>>> Those interested in the subscribe/notify discussion might like to loo=
k
>>> at the draft Smart Energy Profile 2.0 Application Protocol
>>> Specification. It is available here:
>>> http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20Public=
App
>>> licationProfile.aspx
>>>
>>> It manages subscribe/notify by using POST. This seems to remove the n=
eed
>>> for SUBSCRIBE and notify.
>>>
>>> "Imagine a host A, which exposes a resource at http{s}://A/resource a=
nd
>>> a second host B, which wishes to learn of changes to this resource. T=
o
>>> facilitate a subscription/ notification mechanism, A would expose a
>>> resource http{s}://A/sub and B would expose a resource http{s}://B/nt=
fy.
>>> To subscribe to notifications regarding http{s}://A/resource, B would=

>>> send a POST to the address http{s}://A/sub/B containing the URI of th=
e
>>> resource of interest (http{s}://A/resource) and the URI of B's
>>> notification resource (http{s}://B/ntfy). Following this subscription=

>>> step, should A wish to notify B of a change to the resource addressed=
 at
>>> http{s}://A/resource, A would send a POST to the address
>>> http{s}://B/ntfy containing the URI of the resource changed
>>> (http{s}://A/resource) and the URI of A's subscription resource
>>> (http{s}://A/sub/B), should A wish to change its subscription. The ho=
st
>>> B can then query the resource (or not) at its leisure."
>>>
>>> Sleepy nodes are not allowed to subscribe, and must poll.
>>>
>>> Regards - Charles Palmer
>>>
>>> -----Original Message-----
>>> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf =
Of
>>> Angelo P. Castellani
>>> Sent: 14 May 2010 13:14
>>> To: Zach Shelby
>>> Cc: core
>>> Subject: Re: [core] Selecting a WG document for CoAP
>>>
>>> Zach,
>>>
>>> thanks for the comments, but please refer to my most recent e-mail fo=
r
>>> a more specific list of technical issues I'm pointing to.
>>>
>>> I want to do only a little integration to what I've written there.
>>>
>>> In my very personal opinion, to maximize adherence with the REST mode=
l
>>> and minimize implementation effort SUBSCRIBE and NOTIFY should be
>>> mapped to methods (as discussed many times together...).
>>>
>>> Uniform interface principle (Fielding PhD dissertation Section 5.1.5,=

>>> "The central feature that distinguishes the REST architectural style
>>> [...]") states that to simplify the software architecture, resource
>>> interfaces/interfaces should be as general as possible.
>>>
>>> I agree with this principle in this specific case, mainly because
>>> handling a special message type for notify leads node software design=

>>> to a more complex architecture.
>>>
>>> The reason is that this new message type requires special handling an=
d
>>> introduces a complexity in the software modularization.
>>>
>>> Best,
>>> Angelo
>>>
>>> On Fri, May 14, 2010 at 13:06, Zach Shelby<zach@sensinode.com>  wrote=
:
>>>
>>>
>>> Hi Angelo,
>>>
>>> On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:
>>>
>>>
>>>
>>> Dear C. Bormann, all,
>>>
>>> before deciding for the final direction, I've the following
>>> observations about draft-shelby-core-coap-01
>>>
>>> While I mostly share Zach's view of the protocol approach, and
>>> appreciate many aspects of the proposal, there are in my opinion
>>>
>>>
>>> still
>>>
>>>
>>> some open issues that need to be at least discussed before the
>>>
>>>
>>> current
>>>
>>>
>>> document can be selected.
>>>
>>>
>>> Of course there are plenty of open issues. Remember that working grou=
p
>>>
>>>
>>> documents still undertake as much change and improvement as the WG
>>> wants, so by no means is coap-01 set in stone. I would expect at leas=
t
>>> 5-10 more revisions still along the way. Already several of your idea=
s
>>> have been integrated into coap-01, and several more are under
>>> consideration, so it is coming along. Patience ;-)
>>>
>>>
>>>
>>> In particular, I would like to highlight the following:
>>>
>>> a) As it is now, it is not possible to have a straightforward
>>> translation of HTTP ->  CoAP and viceversa: see
>>> http://www.ietf.org/mail-archive/web/core/current/msg00133.html (this=

>>> impacts the scalability of the web service model too)
>>>
>>>
>>> In coap-01 the Method names are now identical to HTTP methods. The
>>>
>>>
>>> Req/Res interaction is a direct translation. The URI hierarchy is
>>> compatible, and the URI binary code format we are still working on
>>> obviously. The only thing that takes some state to translate is
>>> Subscribe/Notify. But note, Subscribe/Notify takes some state no matt=
er
>>> how you do it, even with HTTP-HTTP there is no clean and easy way to
>>> handle subscriptions.
>>>
>>>
>>>
>>> b) Moreover, CoAP's implementation is not as simple as it should be.
>>> I've investigated the implementation and some design choices (as
>>> Options) are leading to very high program complexity (ROM) on a
>>> MSP430-based device.
>>>
>>>
>>> This we can definitely improve, and already made several optimization=
s
>>>
>>>
>>> from -00 to -01. Here I need some very concrete proposals though. Als=
o
>>> remember that many things are optional, for example subscribe/notify =
is
>>> not required if you don't need it.
>>>
>>>
>>>
>>> c) Finally when comparing HTTP message size with CoAP message size,
>>> the resulting compression isn't as good as you may expect.
>>>
>>> Example:
>>> HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
>>> CoAP: 24 B with options parsing procedure requiring an added
>>> implementation complexity
>>>
>>>
>>> Right, that is not how it will work in practice. Working with a real
>>>
>>>
>>> HTTP server that HTTP header will be more complex, and on the CoAP si=
de
>>> you would chose shorter URLs. The biggest improvement possible here i=
s
>>> from using binary coded URLs of course. We need to look at a wider ra=
nge
>>> of interactions and real HTTP headers as well to check that we are
>>> efficient enough.
>>>
>>>
>>>
>>> Addressing all these points potentially leads to major technical
>>> modifications (especially point a) on the current draft, hence it is
>>> appropriate in my opinion to discuss these points before making the
>>> final decision.
>>>
>>>
>>> I am not sure what else you have in mind for a). If we just forget
>>>
>>>
>>> about Subscribe/Notify then you are good to go. But then you are also=

>>> not fulfilling the charter or the industry needs in that respect.
>>>
>>>
>>> Thanks,
>>> Zach
>>>
>>>
>>>
>>> Best regards,
>>>
>>> Angelo P. Castellani
>>>
>>>
>>> On Mon, May 10, 2010 at 18:51, Carsten Bormann<cabo@tzi.org>wrote:
>>>
>>>
>>> The CORE WG has a milestone to select a WG document for CoAP in
>>>
>>>
>>> April:
>>>
>>>
>>> http://datatracker.ietf.org/wg/core/charter/
>>> ...
>>> Apr 2010 Select WG document for basis of the CoAP protocol
>>>
>>> Of the various documents that have been contributed,
>>>
>>>
>>> draft-shelby-core-coap has significant discussion, as well as the
>>> largest number of updates (including a previous version that was stil=
l
>>> called -6lowapp-coap).
>>>
>>>
>>> Today, another updated version of that draft was announced. See
>>> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
>>> for the announcement and
>>> http://tools.ietf.org/html/draft-shelby-core-coap-01
>>> for the draft itself.
>>>
>>> However, as the authors say, there are still significant TODOs.
>>>
>>> Are we in a state yet where we can say whether this is the right
>>>
>>>
>>> direction for the WG to take?
>>>
>>>
>>> If yes, is it the right direction? Should we adopt it as a WG
>>>
>>>
>>> document?
>>>
>>>
>>> If you don't think we can say yet, is there a set of technical
>>>
>>>
>>> decisions you would like the authors to take with priority?
>>>
>>>
>>> Note that once a document has become a WG document, the authors act
>>>
>>>
>>> as editors for the working group, making (and usually fleshing out th=
e
>>> details of) any change that the WG decides it needs.
>>>
>>>
>>> If you think we can still improve the draft, this is not an obstacle
>>>
>>>
>>> to making it a WG document.
>>>
>>>
>>> But of course we shouldn't do that if we intend to reverse its
>>>
>>>
>>> fundamental technical direction.
>>>
>>>
>>> In order to stay roughly in sync with our milestones, we should
>>>
>>>
>>> reach at a decision on how to go forward this week.
>>>
>>>
>>> Gruesse, Carsten
>>>
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>
>>>
>>>
>>> _______________________________________________
>>> 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
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>
>>> --------------------------------
>>> Onzo is a limited company number 06097997 registered in England&  Wal=
es. The
>>> registered office is 6 Great Newport Street, London, WC2H 7JB, United=
 Kingdom.
>>>
>>> This email message may contain confidential and/or privileged informa=
tion, and
>>> is intended solely for the addressee(s). If you have received this em=
ail in
>>> error, please notify Onzo immediately. Unauthorised copying, disclosu=
re or
>>> distribution of the material in this email is forbidden.
>>> --------------------------------
>>>
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>
>>> _____________________________________________________________________=
_
>>> This email has been scanned by the MessageLabs Email Security System.=

>>> _____________________________________________________________________=
_
>>>
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>
>>>
>>>
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>
>>> --------------------------------
>>> Onzo is a limited company number 06097997 registered in England&  Wal=
es. The
>>> registered office is 6 Great Newport Street, London, WC2H 7JB, United=
 Kingdom.
>>>
>>> This email message may contain confidential and/or privileged informa=
tion, and
>>> is intended solely for the addressee(s). If you have received this em=
ail in
>>> error, please notify Onzo immediately. Unauthorised copying, disclosu=
re or
>>> distribution of the material in this email is forbidden.
>>> --------------------------------
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>
>>>
>>>
>>> _____________________________________________________________________=
_
>>> This email has been scanned by the MessageLabs Email Security System.=

>>> _____________________________________________________________________=
________________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>       =20
>> --
>> 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
>>
>> _______________________________________________
>> core mailing list
>> core@ietf.org
>> https://www.ietf.org/mailman/listinfo/core
>>
>>     =20
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>
>   =20

--------------010004030807040508000401
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content=3D"text/html; charset=3DISO-8859-1"
 http-equiv=3D"Content-Type">
</head>
<body bgcolor=3D"#ffffff" text=3D"#000000">
I think sometimes it makes more sense to think about threads of
execution.<br>
<br>
Forgive me for this lengthy preamble but it will hopefully put things
into context.<br>
<br>
In the most abstract sense, processing is governed by a thread of
execution, which sequences a series of data transformations to expedite
the required processing. If a data transformation can be completed
synchronously in the thread of execution, then the thread is
conceptually easier to understand and follow. Most threading models
assume this to be the case and if the data transformation cannot
complete, it usually blocks pending the required event to complete the
transformation. During blocking, the thread is suspended. In simple CPU
models without any sort of scheduler, there are two threads of
execution: A main thread, pre-emptable by an interrupt thread, usually
not pre-emptable. In the main thread, sub-threads are emulated; data
transformations can be simply function calls which don't block and
therefore return effectively immediately and synchronously. Blocking
data transformations are emulated by storing state relevant to each
sub-thread then marshaling each event as it is received e.g. through
interrupt handling, which causes the second thread to run and thus
allows changing sub-thread state so when the main thread runs, the
blocking data transformation can complete. Operating system schedulers
for these simple CPUs simply abstract this operation through a kernel
and associated task/thread scheduling calls. Continuations are a
simpler form used in memory-constrained implementations.<br>
<br>
Why the lengthy pre-amble? However you look at it, what essentially is
required for any threading model (using kernel/scheduler,
continuations, emulated, whatever) are fundamentally three primitives:<br=
>
<ul>
  <li>Request</li>
  <li>Response</li>
  <li>Notify</li>
</ul>
A thread of execution will call request and will typically (though not
necessarily - see emulated blocking/continuations) wait for a response.
If the thread blocks, it is typically woken by another worker thread
handling a notify. The worker thread handles notifies asynchronously
and buffers and/or signals the associated task accordingly.<br>
<br>
This is why I think the current foundation level of messages in coap-01
is right.<br>
<br>
On top of this, the payload of the messages can reflect the actual
method. Personally, I don't see the need for a specific SUBSCRIBE
message; a POST/create to a subscription resource seems adequate to me.
The notify message can carry a PUT or POST depending on whether the
resource was simply updated or appended to (again it is no accident the
data types in JSON are as they are).<br>
<br>
Robert <br>
<div class=3D"moz-signature">
<style type=3D"text/css">
p
{
font-family:Verdana,Arial,sans-serif;
font-size:8pt;
}
=2Ename
{
font-size:12pt;
}
</style>
<p class=3D"name">Robert Cragie (Pacific Gas &amp; Electric)</p>
<p>Gridmerge Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 1924 910888<br>
+1 415 513 0064<br>
<a href=3D"http://www.gridmerge.com/">http://www.gridmerge.com</a></p>
</div>
<br>
On 28/05/2010 2:13 PM, Angelo P. Castellani wrote:
<blockquote
 cite=3D"mid:AANLkTil1Vx4fVvrSn5X0LhDcFhDNrXAKNfUBODRkAL3a@mail.gmail.com=
"
 type=3D"cite">
  <pre wrap=3D"">In my opinion Subscribe/Notify are special methods of in=
teraction
between resources.

1) SUBSCRIBE: Any resource A can send a Request to SUBSCRIBE with a
resource B (to the resource B URI).

When B receives the request, B can (should/must?) answer with a
Response to the SUBSCRIBE Request, telling the result of the request
(subscription accepted/denied/unsupported?).

2) NOTIFY: When subscription condition fires the resource B sends a
NOTIFY Request to resource A URI.

When A receives the request, A can (should/must?) answer with a
Response to the NOTIFY Request, telling the result of the request (OK,
cancel subscription, change notify options?).

In each Request must be specified the URI of the resource doing the
Request too (Option? From-URI?).

Angelo

On Fri, May 28, 2010 at 14:50, Zach Shelby <a class=3D"moz-txt-link-rfc23=
96E" href=3D"mailto:zach@sensinode.com">&lt;zach@sensinode.com&gt;</a> wr=
ote:
  </pre>
  <blockquote type=3D"cite">
    <pre wrap=3D"">Hi,

This is a really good conversation. One thing we need to do is remember w=
hat our minimum requirements are for subscribe/notify and not try to solv=
e something more than we should. From what I know it is sufficient to be =
able to receive notifications when a URI changes or periodically. You mig=
ht consider new URIs under this URI path to be changes to a URI though...=


On May 28, 2010, at 3:08 PM, Adriano Pezzuto (apezzuto) wrote:

    </pre>
    <blockquote type=3D"cite">
      <pre wrap=3D"">Hello,
with this flavor, the SUBSCRIBE may be replaced by a simple POST. So no n=
eeds to have an explicit SUBSCRIBE method.
      </pre>
    </blockquote>
    <pre wrap=3D"">
This is what coap-01 assumes.

    </pre>
    <blockquote type=3D"cite">
      <pre wrap=3D"">If we want support a more oriented peer-to-peer tran=
saction on CoAP, it looks to me both SUB and NOTIFY should be treated as =
messages.
      </pre>
    </blockquote>
    <pre wrap=3D"">
The Request/Response model can be used peer-to-peer, and in CoAP you can =
even use a Request asynchronously. Additionally, we want a native RESTful=
 subscribe/notify technique, that is, we want to subscribe to resources a=
nd be susequently notified about those resources when they change.

In that sense, you can think of a subscription as a request to receive as=
ynchronous notifications about a resource (about a URI). This can be achi=
eved by:

1. &nbsp;as a SUBSCRIBE Request on the URI with some option indicating th=
e lifetime as in coap-01,
2. &nbsp;as a Subcsribe message (no methods) on the URI with some option,=

3. &nbsp;or as a POST Request on the URI with options indicating that thi=
s is actually a subscription and the lifetime. &nbsp;This bends the meani=
ng of POST quite a bit and might be prone to mistakes?

The asynchronous response is a harder one. Can we bend the meaning of a R=
equest for making asynchronous notifications? Also a notification include=
s a URI about a resource on the requestor, which is inverse from normal R=
equests in REST. So the options here are:

1. as a Notify message about a URI (no methods) as in coap-01,
2. as a NOTIFY Request about a URI as was in coap-00,
3. hmmm... reusing CRUD methods really doesn't work for this one at all..=
=2E

I wonder what the HTTP designers would have done if this would have been =
a requirement back then? Maybe we should ask them...

Zach

    </pre>
    <blockquote type=3D"cite">
      <pre wrap=3D"">
Adriano

From: <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:matthieu.vial@=
fr.non.schneider-electric.com">matthieu.vial@fr.non.schneider-electric.co=
m</a> [<a class=3D"moz-txt-link-freetext" href=3D"mailto:matthieu.vial@fr=
=2Enon.schneider-electric.com">mailto:matthieu.vial@fr.non.schneider-elec=
tric.com</a>]
Sent: venerd&igrave; 28 maggio 2010 13.52
To: Adriano Pezzuto (apezzuto)
Cc: core; <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core-bounc=
es@ietf.org">core-bounces@ietf.org</a>; <a class=3D"moz-txt-link-abbrevia=
ted" href=3D"mailto:robert.cragie@gridmerge.com">robert.cragie@gridmerge.=
com</a>
Subject: Re: [core] Subscribe/Notify for CoAP

      </pre>
      <blockquote type=3D"cite">
        <pre wrap=3D"">So strictly speaking, both NOTIFY and SUBSCRIBE ar=
e message types not &nbsp;methods!
        </pre>
      </blockquote>
      <pre wrap=3D"">
SUBSCRIBE can be just an asynchronous GET on update then I think it is a =
method and NOTIFY is an asynchronous response so a message.
But if we want to have selective notifications when a resource is created=
, updated or deleted then I think you're right NOTIFY and SUBSCRIBE are m=
essages.

Does that make sense ?

Matthieu

&lt;image001.gif&gt;"Adriano Pezzuto (apezzuto)" <a class=3D"moz-txt-link=
-rfc2396E" href=3D"mailto:apezzuto@cisco.com">&lt;apezzuto@cisco.com&gt;<=
/a>




"Adriano Pezzuto (apezzuto)" <a class=3D"moz-txt-link-rfc2396E" href=3D"m=
ailto:apezzuto@cisco.com">&lt;apezzuto@cisco.com&gt;</a>
Envoy&eacute; par : <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:=
core-bounces@ietf.org">core-bounces@ietf.org</a>
28/05/2010 12:50

&lt;image003.png&gt;
A
&lt;image004.png&gt;
<a class=3D"moz-txt-link-rfc2396E" href=3D"mailto:robert.cragie@gridmerge=
=2Ecom">&lt;robert.cragie@gridmerge.com&gt;</a>
&lt;image003.png&gt;
cc
&lt;image004.png&gt;
core <a class=3D"moz-txt-link-rfc2396E" href=3D"mailto:core@ietf.org">&lt=
;core@ietf.org&gt;</a>
&lt;image003.png&gt;
Objet
&lt;image004.png&gt;
Re: [core] Subscribe/Notify for CoAP
&lt;image004.png&gt;
&lt;image004.png&gt;

Hi Roberto,
I understand your point and personally agree on M2M is quite different fr=
om web page model. On the architectural RESTful style, the method informa=
tion tells the server what to do with data kept in the URI information.

So strictly speaking, both NOTIFY and SUBSCRIBE are message types not &nb=
sp;methods!

Adriano

From: Robert Cragie [<a class=3D"moz-txt-link-freetext" href=3D"mailto:ro=
bert.cragie@gridmerge.com">mailto:robert.cragie@gridmerge.com</a>]
Sent: venerd&igrave; 28 maggio 2010 11.53
To: Adriano Pezzuto (apezzuto)
Cc: Paul Duffy (paduffy); Zach Shelby; core
Subject: Re: [core] Subscribe/Notify for CoAP

I think the point here is that there are two levels we are considering.

At the lowest (foundation) level, there are the transaction messages as d=
escribed below. This provides a flexible mechanism for the application wi=
th regard to synchronicity and threading. This is important for the types=
 of devices CoAP is being aimed at.

Above that, the methods can be used according to the architectural style.=
 So in this case, it is RESTful (COnstrained Restful Environments), which=
 will naturally limit the number of methods and how transactions occur.

The actual architecture using a combination of the methods and messages a=
lso depends on what is required at the application layer. Consider a typi=
cal client which wants to subscribe to a resource. That client controls t=
he feed of data but needs a component which is capable of handling (possi=
bly buffering) the data it receives through notifications. Is this a sepa=
rate server? Or would we want to consider it part of an enhanced client m=
odel which is able to process feeds of data? These are the sort of models=
 which have led to the myriad of solutions (GENA, Webhooks, long polling,=
 pubsubhubbub, RESTMS etc.) based around HTTP which are all essentially i=
ngenious ways of getting around the limitations imposed by HTTP and how i=
t is processed for anything which deviates from the classic web page acce=
ss model.

I think the aim of CoAP should be clean from the word go with regard to s=
upporting these more peer-to-peer transactions, where the client can exis=
t on either entity and both entities can feed data to each other; typical=
 in M2M applications.

Robert

Robert Cragie (Pacific Gas &amp; Electric)

Gridmerge Ltd.
89 Greenfield Crescent,
Wakefield, WF4 4WA, UK
+44 1924 910888
+1 415 513 0064
<a class=3D"moz-txt-link-freetext" href=3D"http://www.gridmerge.com">http=
://www.gridmerge.com</a>

On 27/05/2010 7:08 PM, Adriano Pezzuto (apezzuto) wrote:
Hi Robert,

in my personal opinion, the option 1a) brings some sort of ambiguity to C=
oAP specs.

My be my understatement of new CoAP specs is not so deep, but now we have=
 5 methods and 3 message types: request, response and notify. Which metho=
ds are allowed with which messages types?
I suppose you have to use PUT/POST method with notify message for asynch =
data notification. How to make a subscribe? I suppose you would use a SUB=
SCRIBE method with request/response message or SUBSCRIBE with notify mess=
age? Also what about POST/DELETE methods in a notify message? They not ma=
ke any sense..

I think the choice is between: option 1) -&gt; only CRUD methods and opti=
on 1b) -&gt; CRUD + SUB/NOTIFY methods, keeping in mind cost/benefits of =
both solutions.

Adriano

From: Robert Cragie [<a class=3D"moz-txt-link-freetext" href=3D"mailto:ro=
bert.cragie@gridmerge.com">mailto:robert.cragie@gridmerge.com</a>]
Sent: mercoled&igrave; 26 maggio 2010 20.09
To: Adriano Pezzuto (apezzuto)
Cc: Paul Duffy (paduffy); Zach Shelby; core
Subject: Re: [core] Subscribe/Notify for CoAP

Hi Adrian,

I would also prefer to keep the protocol in CoAP asynchronous. You can al=
ways map an asynchronous protocol to a synchronous one but, as we see in =
HTTP, it always ends up as a kludge to do it the other way round. The eff=
orts which have been gone to to make HTTP quasi-asynchronous via all the =
schemes mentioned below and many more besides (all non-interoperable of c=
ourse) is testament to how important this is for M2M communication.

So, back to Zach's list, I favor 1a) for the following reasons:

Foundation level of messages:

1. request/response can be asynchronous or synchronous messages (as there=
 is a transaction ID in there)
2. notify is an asynchronous message
Derived methods:

I think it makes sense to add a pub/sub model as a useful mechanism for M=
2M.

So, looking at it the other way round: It will be entirely possible to tr=
anslate whatever is currently built on HTTP to CoAP based on the above, w=
ith all its restrictions regarding synchronous and client/server transact=
ions. What may be harder is to translate directly is a CoAP-based applica=
tion to HTTP. So I guess the question is: Do we want to be hamstrung to s=
ynchronous client/server transactions as dictated by HTTP and provide a d=
irect mapping to HTTP, then have to come up with similar kludges for asyn=
chronous peer-to-peer transactions as has been done in numerous ways for =
HTTP, or do we want to define the protocol cleanly to start with and acce=
pt that some sort of transaction relaying/conversion would have to take p=
lace at a mapping node?

Robert
Robert Cragie (Pacific Gas &amp; Electric)

Gridmerge Ltd.
89 Greenfield Crescent,
Wakefield, WF4 4WA, UK
+44 1924 910888
+1 415 513 0064
<a class=3D"moz-txt-link-freetext" href=3D"http://www.gridmerge.com">http=
://www.gridmerge.com</a>

On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote:
Hi,
it looks to me that CoAP should use an explicit sub/notify mechanism sinc=
e this is the core of the machine-to-machine interaction model.
HTTP suffers of this lack and we have seen a plethora of solutions to giv=
e an asynch taste to it. Webhooks and websockets are only the lasts of th=
e list.
As someone has already pointed out on this list, it is theoretically poss=
ible to describe sub/notify using only CRUD methods but it looks a little=
 bit tricky and verbose.

Now we have a chance to build from scratch a new protocol with and I thin=
k using explicit sub/notify methods with a clear and well defined semanti=
c is the best option. It is easily understanding from every developer and=
 will prevent to build other fanny solutions on top of the CoAP. HTTP doe=
s not have this well defined semantic and (for hundreds of other reasons =
also) it is not used as wide protocol for machine-to-machine communicatio=
n.

CoAP - as binary protocol - and with an explicit asynch model has a chanc=
e to be a really wide protocol for M2M communication not only for constra=
ined environments.

my 2 cents

- adriano

-----Original Message-----
From: <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core-bounces@i=
etf.org">core-bounces@ietf.org</a> [<a class=3D"moz-txt-link-freetext" hr=
ef=3D"mailto:core-bounces@ietf.org">mailto:core-bounces@ietf.org</a>] On =
Behalf Of Paul Duffy (paduffy)
Sent: mercoled&igrave; 26 maggio 2010 0.47
To: Zach Shelby
Cc: core
Subject: Re: [core] Subscribe/Notify for CoAP

On 5/25/2010 6:41 PM, Zach Shelby wrote:

Hi,

On May 26, 2010, at 12:23 AM, Charles Palmer wrote:


Hi folks

It occurs to me that CoRE should be keeping a close eye on ZigBee SE2.0 w=
ork, so that it is as easy as possible for ZigBee SE to use CoRE when rea=
dy. That suggests to me that we should align with their subscribe/notify =
process.


I am not sure I understand that. I mean, ZigBee SE2.0 is defining an appl=
ication specific subscribe/notify mechanism for that purpose so far for H=
TTP. This uses standard HTTP methods and some custom payload and REST int=
erfaces. CoAP Req/Res is already totally compatible with SE2.0 in that re=
spect, so alignment is already OK there. Nothing stopping someone from us=
ing SE2.0 over CoAP.

Specifying a native susbcription/notify into CoAP is another matter. We c=
an't adopt a solution specific to one application as that won't solve the=
 problems of other applications nor general HTTP mapping at all (probably=
 would make it worse). It seems that for the near future there will be a =
bunch of HTTP push mechanisms in use without any clear standard appearing=
 - or am I wrong there?




If COAP extends HTTP semantics with new subscription methods, it will
not be possible to easily interchange HTTP/COAP, and translation
gateways will become more complex to implement.



Zach


Regards - Charles


-----Original Message-----
From: <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core-bounces@i=
etf.org">core-bounces@ietf.org</a> [<a class=3D"moz-txt-link-freetext" hr=
ef=3D"mailto:core-bounces@ietf.org">mailto:core-bounces@ietf.org</a>] On =
Behalf Of Paul Duffy
Sent: 25 May 2010 03:48
To: Zach Shelby
Cc: core
Subject: Re: [core] Subscribe/Notify for CoAP

Recommend something like #2, primarily to avoid introducing non HTTP
method semantics, simplifying HTTP/COAP translation.gateways, etc.


On 5/24/2010 11:49 AM, Zach Shelby wrote:

(thread renamed)

We have two different paths with regard to a subscribe/notify mechanism f=
or CoAP:

1. Use specific Subscription and Notify mechanisms for CoAP as HTTP reall=
y does not include this concept.
1a) Notify as a message and SUBSCRIBE as a method. This is currently used=
 in coap-01.
1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but we had=
 a good list discussion about this leading to a. In practice it doesn't m=
ake a big difference if notification is a message or method.

2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0 prop=
osal or GENA.

So far we have focused on 1 in the WG, and every now and again 2 comes up=
=2E At least I am not convinced that we need to suffer the drawbacks of H=
TTP here. Anyways 2 does not help our mapping to HTTP in reality very muc=
h as there is no standard way of doing this over HTTP. Thus a CoAP-HTTP p=
roxy may end up anyways translating between multiple HTTP frameworks depe=
nding on the application. So instead of doing a CoAP Notify/Subscribe to =
Webhooks mapping, you will could end up having to do a CoAP Webhooks to H=
TTP GENA mapping.



I don't understand this last para. If CoAP sticks to the semantics of
the current HTTP methods, would this not offer a fairly straightforward
translation to/from HTTP?



=46rom what I have heard so far 1 still seems like a wise choice, althoug=
h I need to look at Webhooks more deeply. In reality many applications sp=
ecify their own way of doing a push interface using REST methods and spec=
ific payloads (ZigBee SE2.0 is such an example). That is just fine, and m=
ight be used instead of a specific CoAP notify/subscribe in that case. So=
 1 doesn't prevent the application using its own mechanism, it just provi=
des a native way for doing push.

What do people think?

Zach

On May 17, 2010, at 6:44 PM,<a class=3D"moz-txt-link-abbreviated" href=3D=
"mailto:matthieu.vial@fr.non.schneider-electric.com">matthieu.vial@fr.non=
=2Eschneider-electric.com</a> wrote:



Hi,

My comments about the subscribe/notify mechanism of Zigbee IP.

Pros:
- Derived from the webhooks concept
- If used by CORE it will be easier to map to HTTP because it uses only C=
RUD verbs.
- The subscription message is extendable and could support advanced optio=
ns (delays, increment, ...)
- Only one listening port whatever the transport binding is.

Cons:
- No interoperability without well known URIs and a well defined subscrip=
tion message format (Not sure CoAP draft is the right place to specify th=
is).
- XML/EXI is too complex to be the required format for the default subscr=
iption/notification mechanism.
- The notification should not require a subsequent GET to retrieve the co=
ntent.
- Subresource subscription is redundant.

Hope this could help,
Matthieu


&lt;graycol.gif&gt;"Charles Palmer"<a class=3D"moz-txt-link-rfc2396E" hre=
f=3D"mailto:charles.palmer@onzo.com">&lt;charles.palmer@onzo.com&gt;</a>




"Charles Palmer"<a class=3D"moz-txt-link-rfc2396E" href=3D"mailto:charles=
=2Epalmer@onzo.com">&lt;charles.palmer@onzo.com&gt;</a>
Envoy&eacute; par : <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:=
core-bounces@ietf.org">core-bounces@ietf.org</a>
15/05/2010 14:06

&lt;ecblank.gif&gt;
A
&lt;ecblank.gif&gt;
"core"<a class=3D"moz-txt-link-rfc2396E" href=3D"mailto:core@ietf.org">&l=
t;core@ietf.org&gt;</a>
&lt;ecblank.gif&gt;
cc
&lt;ecblank.gif&gt;
&lt;ecblank.gif&gt;
Objet
&lt;ecblank.gif&gt;
Re: [core] Selecting a WG document for CoAP
&lt;ecblank.gif&gt; &lt;ecblank.gif&gt;

Dear all

Those interested in the subscribe/notify discussion might like to look
at the draft Smart Energy Profile 2.0 Application Protocol
Specification. It is available here:
<a class=3D"moz-txt-link-freetext" href=3D"http://zigbee.org/Markets/ZigB=
eeSmartEnergy/ZigBeeSmartEnergy20PublicApp">http://zigbee.org/Markets/Zig=
BeeSmartEnergy/ZigBeeSmartEnergy20PublicApp</a>
licationProfile.aspx

It manages subscribe/notify by using POST. This seems to remove the need
for SUBSCRIBE and notify.

"Imagine a host A, which exposes a resource at http{s}://A/resource and
a second host B, which wishes to learn of changes to this resource. To
facilitate a subscription/ notification mechanism, A would expose a
resource http{s}://A/sub and B would expose a resource http{s}://B/ntfy.
To subscribe to notifications regarding http{s}://A/resource, B would
send a POST to the address http{s}://A/sub/B containing the URI of the
resource of interest (http{s}://A/resource) and the URI of B's
notification resource (http{s}://B/ntfy). Following this subscription
step, should A wish to notify B of a change to the resource addressed at
http{s}://A/resource, A would send a POST to the address
http{s}://B/ntfy containing the URI of the resource changed
(http{s}://A/resource) and the URI of A's subscription resource
(http{s}://A/sub/B), should A wish to change its subscription. The host
B can then query the resource (or not) at its leisure."

Sleepy nodes are not allowed to subscribe, and must poll.

Regards - Charles Palmer

-----Original Message-----
From: <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core-bounces@i=
etf.org">core-bounces@ietf.org</a> [<a class=3D"moz-txt-link-freetext" hr=
ef=3D"mailto:core-bounces@ietf.org">mailto:core-bounces@ietf.org</a>] On =
Behalf Of
Angelo P. Castellani
Sent: 14 May 2010 13:14
To: Zach Shelby
Cc: core
Subject: Re: [core] Selecting a WG document for CoAP

Zach,

thanks for the comments, but please refer to my most recent e-mail for
a more specific list of technical issues I'm pointing to.

I want to do only a little integration to what I've written there.

In my very personal opinion, to maximize adherence with the REST model
and minimize implementation effort SUBSCRIBE and NOTIFY should be
mapped to methods (as discussed many times together...).

Uniform interface principle (Fielding PhD dissertation Section 5.1.5,
"The central feature that distinguishes the REST architectural style
[...]") states that to simplify the software architecture, resource
interfaces/interfaces should be as general as possible.

I agree with this principle in this specific case, mainly because
handling a special message type for notify leads node software design
to a more complex architecture.

The reason is that this new message type requires special handling and
introduces a complexity in the software modularization.

Best,
Angelo

On Fri, May 14, 2010 at 13:06, Zach Shelby<a class=3D"moz-txt-link-rfc239=
6E" href=3D"mailto:zach@sensinode.com">&lt;zach@sensinode.com&gt;</a> wro=
te:


Hi Angelo,

On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:



Dear C. Bormann, all,

before deciding for the final direction, I've the following
observations about draft-shelby-core-coap-01

While I mostly share Zach's view of the protocol approach, and
appreciate many aspects of the proposal, there are in my opinion


still


some open issues that need to be at least discussed before the


current


document can be selected.


Of course there are plenty of open issues. Remember that working group


documents still undertake as much change and improvement as the WG
wants, so by no means is coap-01 set in stone. I would expect at least
5-10 more revisions still along the way. Already several of your ideas
have been integrated into coap-01, and several more are under
consideration, so it is coming along. Patience ;-)



In particular, I would like to highlight the following:

a) As it is now, it is not possible to have a straightforward
translation of HTTP -&gt; CoAP and viceversa: see
<a class=3D"moz-txt-link-freetext" href=3D"http://www.ietf.org/mail-archi=
ve/web/core/current/msg00133.html">http://www.ietf.org/mail-archive/web/c=
ore/current/msg00133.html</a> (this
impacts the scalability of the web service model too)


In coap-01 the Method names are now identical to HTTP methods. The


Req/Res interaction is a direct translation. The URI hierarchy is
compatible, and the URI binary code format we are still working on
obviously. The only thing that takes some state to translate is
Subscribe/Notify. But note, Subscribe/Notify takes some state no matter
how you do it, even with HTTP-HTTP there is no clean and easy way to
handle subscriptions.



b) Moreover, CoAP's implementation is not as simple as it should be.
I've investigated the implementation and some design choices (as
Options) are leading to very high program complexity (ROM) on a
MSP430-based device.


This we can definitely improve, and already made several optimizations


from -00 to -01. Here I need some very concrete proposals though. Also
remember that many things are optional, for example subscribe/notify is
not required if you don't need it.



c) Finally when comparing HTTP message size with CoAP message size,
the resulting compression isn't as good as you may expect.

Example:
HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
CoAP: 24 B with options parsing procedure requiring an added
implementation complexity


Right, that is not how it will work in practice. Working with a real


HTTP server that HTTP header will be more complex, and on the CoAP side
you would chose shorter URLs. The biggest improvement possible here is
from using binary coded URLs of course. We need to look at a wider range
of interactions and real HTTP headers as well to check that we are
efficient enough.



Addressing all these points potentially leads to major technical
modifications (especially point a) on the current draft, hence it is
appropriate in my opinion to discuss these points before making the
final decision.


I am not sure what else you have in mind for a). If we just forget


about Subscribe/Notify then you are good to go. But then you are also
not fulfilling the charter or the industry needs in that respect.


Thanks,
Zach



Best regards,

Angelo P. Castellani


On Mon, May 10, 2010 at 18:51, Carsten Bormann<a class=3D"moz-txt-link-rf=
c2396E" href=3D"mailto:cabo@tzi.org">&lt;cabo@tzi.org&gt;</a>wrote:


The CORE WG has a milestone to select a WG document for CoAP in


April:


<a class=3D"moz-txt-link-freetext" href=3D"http://datatracker.ietf.org/wg=
/core/charter/">http://datatracker.ietf.org/wg/core/charter/</a>
=2E..
Apr 2010 Select WG document for basis of the CoAP protocol

Of the various documents that have been contributed,


draft-shelby-core-coap has significant discussion, as well as the
largest number of updates (including a previous version that was still
called -6lowapp-coap).


Today, another updated version of that draft was announced. See
<a class=3D"moz-txt-link-freetext" href=3D"http://www.ietf.org/mail-archi=
ve/web/core/current/msg00138.html">http://www.ietf.org/mail-archive/web/c=
ore/current/msg00138.html</a>
for the announcement and
<a class=3D"moz-txt-link-freetext" href=3D"http://tools.ietf.org/html/dra=
ft-shelby-core-coap-01">http://tools.ietf.org/html/draft-shelby-core-coap=
-01</a>
for the draft itself.

However, as the authors say, there are still significant TODOs.

Are we in a state yet where we can say whether this is the right


direction for the WG to take?


If yes, is it the right direction? Should we adopt it as a WG


document?


If you don't think we can say yet, is there a set of technical


decisions you would like the authors to take with priority?


Note that once a document has become a WG document, the authors act


as editors for the working group, making (and usually fleshing out the
details of) any change that the WG decides it needs.


If you think we can still improve the draft, this is not an obstacle


to making it a WG document.


But of course we shouldn't do that if we intend to reverse its


fundamental technical direction.


In order to stay roughly in sync with our milestones, we should


reach at a decision on how to go forward this week.


Gruesse, Carsten

_______________________________________________
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext" href=3D"https://www.ietf.org/mailman/l=
istinfo/core">https://www.ietf.org/mailman/listinfo/core</a>



_______________________________________________
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext" href=3D"https://www.ietf.org/mailman/l=
istinfo/core">https://www.ietf.org/mailman/listinfo/core</a>


--
Zach Shelby, Chief Nerd, Sensinode Ltd.
<a class=3D"moz-txt-link-freetext" href=3D"http://zachshelby.org">http://=
zachshelby.org</a> - My blog "On the Internet of Things<a class=3D"moz-tx=
t-link-rfc2396E" href=3D"http://6lowpan.net-Mybook">"
http://6lowpan.net - My book "</a>6LoWPAN: The Wireless Embedded Internet=
"
Mobile: +358 40 7796297




_______________________________________________
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext" href=3D"https://www.ietf.org/mailman/l=
istinfo/core">https://www.ietf.org/mailman/listinfo/core</a>

--------------------------------
Onzo is a limited company number 06097997 registered in England&amp; Wale=
s. The
registered office is 6 Great Newport Street, London, WC2H 7JB, United Kin=
gdom.

This email message may contain confidential and/or privileged information=
, and
is intended solely for the addressee(s). If you have received this email =
in
error, please notify Onzo immediately. Unauthorised copying, disclosure o=
r
distribution of the material in this email is forbidden.
--------------------------------

_______________________________________________
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext" href=3D"https://www.ietf.org/mailman/l=
istinfo/core">https://www.ietf.org/mailman/listinfo/core</a>

______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
______________________________________________________________________

_______________________________________________
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext" href=3D"https://www.ietf.org/mailman/l=
istinfo/core">https://www.ietf.org/mailman/listinfo/core</a>



_______________________________________________
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext" href=3D"https://www.ietf.org/mailman/l=
istinfo/core">https://www.ietf.org/mailman/listinfo/core</a>

--------------------------------
Onzo is a limited company number 06097997 registered in England&amp; Wale=
s. The
registered office is 6 Great Newport Street, London, WC2H 7JB, United Kin=
gdom.

This email message may contain confidential and/or privileged information=
, and
is intended solely for the addressee(s). If you have received this email =
in
error, please notify Onzo immediately. Unauthorised copying, disclosure o=
r
distribution of the material in this email is forbidden.
--------------------------------




_______________________________________________
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext" href=3D"https://www.ietf.org/mailman/l=
istinfo/core">https://www.ietf.org/mailman/listinfo/core</a>
_______________________________________________
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext" href=3D"https://www.ietf.org/mailman/l=
istinfo/core">https://www.ietf.org/mailman/listinfo/core</a>



______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
_________________________________________________________________________=
____________________________________________
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext" href=3D"https://www.ietf.org/mailman/l=
istinfo/core">https://www.ietf.org/mailman/listinfo/core</a>

_______________________________________________
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext" href=3D"https://www.ietf.org/mailman/l=
istinfo/core">https://www.ietf.org/mailman/listinfo/core</a>
      </pre>
    </blockquote>
    <pre wrap=3D"">
--
Zach Shelby, Chief Nerd, Sensinode Ltd.
<a class=3D"moz-txt-link-freetext" href=3D"http://zachshelby.org">http://=
zachshelby.org</a> &nbsp;- My blog "On the Internet of Things<a class=3D"=
moz-txt-link-rfc2396E" href=3D"http://6lowpan.net-Mybook">"
http://6lowpan.net - My book "</a>6LoWPAN: The Wireless Embedded Internet=
"
Mobile: +358 40 7796297

_______________________________________________
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext" href=3D"https://www.ietf.org/mailman/l=
istinfo/core">https://www.ietf.org/mailman/listinfo/core</a>

    </pre>
  </blockquote>
  <pre wrap=3D"">_______________________________________________
core mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:core@ietf.org">core@=
ietf.org</a>
<a class=3D"moz-txt-link-freetext" href=3D"https://www.ietf.org/mailman/l=
istinfo/core">https://www.ietf.org/mailman/listinfo/core</a>

  </pre>
</blockquote>
</body>
</html>

--------------010004030807040508000401--

--------------ms000609040001000604050103
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIJKzCC
AvAwggJZoAMCAQICEHQVhhxGmCATv+IPne+OkB8wDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UE
BhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMT
I1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA5MDgyOTE2NTcwM1oX
DTEwMDgyOTE2NTcwM1owTTEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEqMCgG
CSqGSIb3DQEJARYbcm9iZXJ0LmNyYWdpZUBncmlkbWVyZ2UuY29tMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAtuQTYz8HUA37wa1PMyVnREeRwT3jtzGO6epyiCCaVeJkP76G
KdnNapg0jyuzDfRqSMW0n570toMF9FTpD34hDvtHcnMDboU7MSKFV2VyOOlTB3eHJfRn2Jtl
o9mSeW1qIIOwRReV6v50OxmijmeGFAn82Y1QrtyKDQxhl0HhEmY4jonziMyQ5gKlO5TM+CxY
hV0zXCLHfp9QjLG7bwZx6F0ChSHvRaf5ZlLKQSI2BGAx/GtP5l4ME7+kq4icmbV0g6m1AH9Y
LYYKV9rOx9SilPpTJdwn7GY/Qop4VSmdsaDBlXieBbjKqPN/CEqFmlxjjPFihorkeyC1T2R5
CqB41QIDAQABozgwNjAmBgNVHREEHzAdgRtyb2JlcnQuY3JhZ2llQGdyaWRtZXJnZS5jb20w
DAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQUFAAOBgQCTQ5bjbW8th9Yy/xbAgmc070Y/DLPR
RwOu51zamGFNffSpiPDJsLg4Bu9QZqhDylPm3AriHGp9MVL8Ei4h5krygmgHLE0mNYFsJt35
90wdK7z3dXtV/nOD0+rFR6Y9oUGf916rO0madex0KbosqrUuZ1NGVh/Q5/7H0mAEg+1EWzCC
AvAwggJZoAMCAQICEHQVhhxGmCATv+IPne+OkB8wDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UE
BhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMT
I1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA5MDgyOTE2NTcwM1oX
DTEwMDgyOTE2NTcwM1owTTEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEqMCgG
CSqGSIb3DQEJARYbcm9iZXJ0LmNyYWdpZUBncmlkbWVyZ2UuY29tMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAtuQTYz8HUA37wa1PMyVnREeRwT3jtzGO6epyiCCaVeJkP76G
KdnNapg0jyuzDfRqSMW0n570toMF9FTpD34hDvtHcnMDboU7MSKFV2VyOOlTB3eHJfRn2Jtl
o9mSeW1qIIOwRReV6v50OxmijmeGFAn82Y1QrtyKDQxhl0HhEmY4jonziMyQ5gKlO5TM+CxY
hV0zXCLHfp9QjLG7bwZx6F0ChSHvRaf5ZlLKQSI2BGAx/GtP5l4ME7+kq4icmbV0g6m1AH9Y
LYYKV9rOx9SilPpTJdwn7GY/Qop4VSmdsaDBlXieBbjKqPN/CEqFmlxjjPFihorkeyC1T2R5
CqB41QIDAQABozgwNjAmBgNVHREEHzAdgRtyb2JlcnQuY3JhZ2llQGdyaWRtZXJnZS5jb20w
DAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQUFAAOBgQCTQ5bjbW8th9Yy/xbAgmc070Y/DLPR
RwOu51zamGFNffSpiPDJsLg4Bu9QZqhDylPm3AriHGp9MVL8Ei4h5krygmgHLE0mNYFsJt35
90wdK7z3dXtV/nOD0+rFR6Y9oUGf916rO0madex0KbosqrUuZ1NGVh/Q5/7H0mAEg+1EWzCC
Az8wggKooAMCAQICAQ0wDQYJKoZIhvcNAQEFBQAwgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQI
EwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENv
bnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xJDAi
BgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVy
c29uYWwtZnJlZW1haWxAdGhhd3RlLmNvbTAeFw0wMzA3MTcwMDAwMDBaFw0xMzA3MTYyMzU5
NTlaMGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBM
dGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQTCBnzAN
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxKY8VXNV+065yplaHmjAdQRwnd/p/6Me7L3N9Vvy
Gna9fww6YfK/Uc4B1OVQCjDXAmNaLIkVcI7dyfArhVqqP3FWy688Cwfn8R+RNiQqE88r1fOC
dz0Dviv+uxg+B79AgAJk16emu59l0cUqVIUPSAR/p7bRPGEEQB5kGXJgt/sCAwEAAaOBlDCB
kTASBgNVHRMBAf8ECDAGAQH/AgEAMEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwudGhh
d3RlLmNvbS9UaGF3dGVQZXJzb25hbEZyZWVtYWlsQ0EuY3JsMAsGA1UdDwQEAwIBBjApBgNV
HREEIjAgpB4wHDEaMBgGA1UEAxMRUHJpdmF0ZUxhYmVsMi0xMzgwDQYJKoZIhvcNAQEFBQAD
gYEASIzRUIPqCy7MDaNmrGcPf6+svsIXoUOWlJ1/TCG4+DYfqi2fNi/A9BxQIJNwPP2t4WFi
w9k6GX6EsZkbAMUaC4J0niVQlGLH2ydxVyWN3amcOY6MIE9lX5Xa9/eH1sYITq726jTlEBpb
NU1341YheILcIRk13iSx0x1G/11fZU8xggNxMIIDbQIBATB2MGIxCzAJBgNVBAYTAlpBMSUw
IwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUg
UGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQQIQdBWGHEaYIBO/4g+d746QHzAJBgUrDgMC
GgUAoIIB0DAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xMDA1
MjgxNzIyNDRaMCMGCSqGSIb3DQEJBDEWBBT865U7WDzJ3crkuFjotZKhJ2/94DBfBgkqhkiG
9w0BCQ8xUjBQMAsGCWCGSAFlAwQBAjAKBggqhkiG9w0DBzAOBggqhkiG9w0DAgICAIAwDQYI
KoZIhvcNAwICAUAwBwYFKw4DAgcwDQYIKoZIhvcNAwICASgwgYUGCSsGAQQBgjcQBDF4MHYw
YjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4x
LDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBAhB0FYYcRpgg
E7/iD53vjpAfMIGHBgsqhkiG9w0BCRACCzF4oHYwYjELMAkGA1UEBhMCWkExJTAjBgNVBAoT
HFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25h
bCBGcmVlbWFpbCBJc3N1aW5nIENBAhB0FYYcRpggE7/iD53vjpAfMA0GCSqGSIb3DQEBAQUA
BIIBAAPCiSysfFEMaqfJVnyp+IJ+qjkexkqEnTMu3lJtPflfJ4SCukiWHTYen7lqEV4DOKwn
s11vco8ZAyX2WhIq5EJG26g3jZcaiez9il4gi1gn5+lksSA4OyuZ+Us3ZvGads1fAr6PufqQ
XIg1675iQZTYxe8h6Br88jbQf1pGbxRzHxxuHSfXKCCESvH/uPNzLf6dzX4Zvl/qiu4o4VFE
1xFcW98E/Se6lVd5Rp4DGNnl5XXWM+eBkpnu2GjG8gGi80GgAlWvJ+1JWkFr18HAlWAJQpi9
exFvZISbIT8m/8MempNJzbg2zzzCymqXqRhk+s+w5xENVK9vKZZr6jeA8g8AAAAAAAA=
--------------ms000609040001000604050103--

From brian.tridium@gmail.com  Fri May 28 14:21:49 2010
Return-Path: <brian.tridium@gmail.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 C9A583A687C for <core@core3.amsl.com>; Fri, 28 May 2010 14:21:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.302
X-Spam-Level: **
X-Spam-Status: No, score=2.302 tagged_above=-999 required=5 tests=[BAYES_50=0.001, HTML_MESSAGE=0.001, MANGLED_TOOL=2.3]
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 gRX2peQFRVw0 for <core@core3.amsl.com>; Fri, 28 May 2010 14:21:44 -0700 (PDT)
Received: from mail-ww0-f44.google.com (mail-ww0-f44.google.com [74.125.82.44]) by core3.amsl.com (Postfix) with ESMTP id C09EC3A6806 for <core@ietf.org>; Fri, 28 May 2010 14:21:43 -0700 (PDT)
Received: by wwa36 with SMTP id 36so1222637wwa.31 for <core@ietf.org>; Fri, 28 May 2010 14:21:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type; bh=TnDmUv3H4DoC1rSl7TqsO7xLiCyQEbk8G3UAPtDzNEc=; b=t2E3VQU5bIfzWeXrByG3XUtgjgHM0Z1QAHF2u3nG6NkU5P2N+cAPEdkQV+GqwxFuPe e08PgoyqAK3zCUPSamOWGj7EDHef1F0uIDuTisqmhwaZjf7qNp731T7yenA9U5/Kmtg6 sEUljyF/V05MLsOuvUqzFdjYkXqt67fswvly4=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=J3VKaerlLJq/2UPt22MfHx1Mk/hUU7sM//J/9YdGPUHArqzTXuuzph8AxexmpRYAfm 3adkAfWdVX787TPdaAhJEZ6QbhbfChQeOUBVorFOnTHUcqVMKCYkVr0b3ssrBTraHr54 RZXTiuxmanbRUJtczADVnzywdWMxWM2WZ/yIM=
MIME-Version: 1.0
Received: by 10.216.85.68 with SMTP id t46mr2013156wee.75.1275081690561; Fri,  28 May 2010 14:21:30 -0700 (PDT)
Received: by 10.216.48.207 with HTTP; Fri, 28 May 2010 14:21:30 -0700 (PDT)
In-Reply-To: <4BFFFBE4.4090108@gridmerge.com>
References: <0D212BD466921646B58854FB79092CEC021F4E91@XMB-AMS-106.cisco.com> <OF54E90C1C.C8997A73-ONC1257731.003EAAE3-C1257731.004127C6@schneider-electric.com> <0D212BD466921646B58854FB79092CEC021F4EF2@XMB-AMS-106.cisco.com> <6A9FCAC7-E2FA-482D-ABFF-DB6B111A9EA2@sensinode.com> <AANLkTil1Vx4fVvrSn5X0LhDcFhDNrXAKNfUBODRkAL3a@mail.gmail.com> <4BFFFBE4.4090108@gridmerge.com>
Date: Fri, 28 May 2010 17:21:30 -0400
Message-ID: <AANLkTil0iB7pPhF_N56T_KMEAOu7dfA0lAdeBSFGqtjE@mail.gmail.com>
From: Brian Frank <brian.tridium@gmail.com>
To: core@ietf.org
Content-Type: multipart/alternative; boundary=0016e6d645a839ca0c0487ae17ec
Subject: Re: [core] Subscribe/Notify for CoAP
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, 28 May 2010 21:21:49 -0000

--0016e6d645a839ca0c0487ae17ec
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

My two cents:

Personally I find it confusing to have both a message type *and* a method.

Do we really need both?  It seems we just combine the two into a single
method byte.  Maybe reserve a bit to say a message is a response to a GET,
PUT, DELETE, etc.



On Fri, May 28, 2010 at 1:22 PM, Robert Cragie
<robert.cragie@gridmerge.com>wrote:

>  I think sometimes it makes more sense to think about threads of executio=
n.
>
> Forgive me for this lengthy preamble but it will hopefully put things int=
o
> context.
>
> In the most abstract sense, processing is governed by a thread of
> execution, which sequences a series of data transformations to expedite t=
he
> required processing. If a data transformation can be completed synchronou=
sly
> in the thread of execution, then the thread is conceptually easier to
> understand and follow. Most threading models assume this to be the case a=
nd
> if the data transformation cannot complete, it usually blocks pending the
> required event to complete the transformation. During blocking, the threa=
d
> is suspended. In simple CPU models without any sort of scheduler, there a=
re
> two threads of execution: A main thread, pre-emptable by an interrupt
> thread, usually not pre-emptable. In the main thread, sub-threads are
> emulated; data transformations can be simply function calls which don't
> block and therefore return effectively immediately and synchronously.
> Blocking data transformations are emulated by storing state relevant to e=
ach
> sub-thread then marshaling each event as it is received e.g. through
> interrupt handling, which causes the second thread to run and thus allows
> changing sub-thread state so when the main thread runs, the blocking data
> transformation can complete. Operating system schedulers for these simple
> CPUs simply abstract this operation through a kernel and associated
> task/thread scheduling calls. Continuations are a simpler form used in
> memory-constrained implementations.
>
> Why the lengthy pre-amble? However you look at it, what essentially is
> required for any threading model (using kernel/scheduler, continuations,
> emulated, whatever) are fundamentally three primitives:
>
>    - Request
>    - Response
>    - Notify
>
> A thread of execution will call request and will typically (though not
> necessarily - see emulated blocking/continuations) wait for a response. I=
f
> the thread blocks, it is typically woken by another worker thread handlin=
g a
> notify. The worker thread handles notifies asynchronously and buffers and=
/or
> signals the associated task accordingly.
>
> This is why I think the current foundation level of messages in coap-01 i=
s
> right.
>
> On top of this, the payload of the messages can reflect the actual method=
.
> Personally, I don't see the need for a specific SUBSCRIBE message; a
> POST/create to a subscription resource seems adequate to me. The notify
> message can carry a PUT or POST depending on whether the resource was sim=
ply
> updated or appended to (again it is no accident the data types in JSON ar=
e
> as they are).
>
> Robert
>
> Robert Cragie (Pacific Gas & Electric)
>
> Gridmerge Ltd.
> 89 Greenfield Crescent,
> Wakefield, WF4 4WA, UK
> +44 1924 910888
> +1 415 513 0064
> http://www.gridmerge.com
>
> On 28/05/2010 2:13 PM, Angelo P. Castellani wrote:
>
> In my opinion Subscribe/Notify are special methods of interaction
> between resources.
>
> 1) SUBSCRIBE: Any resource A can send a Request to SUBSCRIBE with a
> resource B (to the resource B URI).
>
> When B receives the request, B can (should/must?) answer with a
> Response to the SUBSCRIBE Request, telling the result of the request
> (subscription accepted/denied/unsupported?).
>
> 2) NOTIFY: When subscription condition fires the resource B sends a
> NOTIFY Request to resource A URI.
>
> When A receives the request, A can (should/must?) answer with a
> Response to the NOTIFY Request, telling the result of the request (OK,
> cancel subscription, change notify options?).
>
> In each Request must be specified the URI of the resource doing the
> Request too (Option? From-URI?).
>
> Angelo
>
> On Fri, May 28, 2010 at 14:50, Zach Shelby <zach@sensinode.com> <zach@sen=
sinode.com> wrote:
>
>
>  Hi,
>
> This is a really good conversation. One thing we need to do is remember w=
hat our minimum requirements are for subscribe/notify and not try to solve =
something more than we should. From what I know it is sufficient to be able=
 to receive notifications when a URI changes or periodically. You might con=
sider new URIs under this URI path to be changes to a URI though...
>
> On May 28, 2010, at 3:08 PM, Adriano Pezzuto (apezzuto) wrote:
>
>
>
>  Hello,
> with this flavor, the SUBSCRIBE may be replaced by a simple POST. So no n=
eeds to have an explicit SUBSCRIBE method.
>
>
>  This is what coap-01 assumes.
>
>
>
>  If we want support a more oriented peer-to-peer transaction on CoAP, it =
looks to me both SUB and NOTIFY should be treated as messages.
>
>
>  The Request/Response model can be used peer-to-peer, and in CoAP you can=
 even use a Request asynchronously. Additionally, we want a native RESTful =
subscribe/notify technique, that is, we want to subscribe to resources and =
be susequently notified about those resources when they change.
>
> In that sense, you can think of a subscription as a request to receive as=
ynchronous notifications about a resource (about a URI). This can be achiev=
ed by:
>
> 1.  as a SUBSCRIBE Request on the URI with some option indicating the lif=
etime as in coap-01,
> 2.  as a Subcsribe message (no methods) on the URI with some option,
> 3.  or as a POST Request on the URI with options indicating that this is =
actually a subscription and the lifetime.  This bends the meaning of POST q=
uite a bit and might be prone to mistakes?
>
> The asynchronous response is a harder one. Can we bend the meaning of a R=
equest for making asynchronous notifications? Also a notification includes =
a URI about a resource on the requestor, which is inverse from normal Reque=
sts in REST. So the options here are:
>
> 1. as a Notify message about a URI (no methods) as in coap-01,
> 2. as a NOTIFY Request about a URI as was in coap-00,
> 3. hmmm... reusing CRUD methods really doesn't work for this one at all..=
.
>
> I wonder what the HTTP designers would have done if this would have been =
a requirement back then? Maybe we should ask them...
>
> Zach
>
>
>
>  Adriano
>
> From: matthieu.vial@fr.non.schneider-electric.com [mailto:matthieu.vial@f=
r.non.schneider-electric.com <matthieu.vial@fr.non.schneider-electric.com>]
> Sent: venerd=EC 28 maggio 2010 13.52
> To: Adriano Pezzuto (apezzuto)
> Cc: core; core-bounces@ietf.org; robert.cragie@gridmerge.com
> Subject: Re: [core] Subscribe/Notify for CoAP
>
>
>
>  So strictly speaking, both NOTIFY and SUBSCRIBE are message types not  m=
ethods!
>
>
>  SUBSCRIBE can be just an asynchronous GET on update then I think it is a=
 method and NOTIFY is an asynchronous response so a message.
> But if we want to have selective notifications when a resource is created=
, updated or deleted then I think you're right NOTIFY and SUBSCRIBE are mes=
sages.
>
> Does that make sense ?
>
> Matthieu
>
> <image001.gif>"Adriano Pezzuto (apezzuto)" <apezzuto@cisco.com> <apezzuto=
@cisco.com>
>
>
>
>
> "Adriano Pezzuto (apezzuto)" <apezzuto@cisco.com> <apezzuto@cisco.com>
> Envoy=E9 par : core-bounces@ietf.org
> 28/05/2010 12:50
>
> <image003.png>
> A
> <image004.png><robert.cragie@gridmerge.com> <robert.cragie@gridmerge.com>
> <image003.png>
> cc
> <image004.png>
> core <core@ietf.org> <core@ietf.org>
> <image003.png>
> Objet
> <image004.png>
> Re: [core] Subscribe/Notify for CoAP
> <image004.png>
> <image004.png>
>
> Hi Roberto,
> I understand your point and personally agree on M2M is quite different fr=
om web page model. On the architectural RESTful style, the method informati=
on tells the server what to do with data kept in the URI information.
>
> So strictly speaking, both NOTIFY and SUBSCRIBE are message types not  me=
thods!
>
> Adriano
>
> From: Robert Cragie [mailto:robert.cragie@gridmerge.com <robert.cragie@gr=
idmerge.com>]
> Sent: venerd=EC 28 maggio 2010 11.53
> To: Adriano Pezzuto (apezzuto)
> Cc: Paul Duffy (paduffy); Zach Shelby; core
> Subject: Re: [core] Subscribe/Notify for CoAP
>
> I think the point here is that there are two levels we are considering.
>
> At the lowest (foundation) level, there are the transaction messages as d=
escribed below. This provides a flexible mechanism for the application with=
 regard to synchronicity and threading. This is important for the types of =
devices CoAP is being aimed at.
>
> Above that, the methods can be used according to the architectural style.=
 So in this case, it is RESTful (COnstrained Restful Environments), which w=
ill naturally limit the number of methods and how transactions occur.
>
> The actual architecture using a combination of the methods and messages a=
lso depends on what is required at the application layer. Consider a typica=
l client which wants to subscribe to a resource. That client controls the f=
eed of data but needs a component which is capable of handling (possibly bu=
ffering) the data it receives through notifications. Is this a separate ser=
ver? Or would we want to consider it part of an enhanced client model which=
 is able to process feeds of data? These are the sort of models which have =
led to the myriad of solutions (GENA, Webhooks, long polling, pubsubhubbub,=
 RESTMS etc.) based around HTTP which are all essentially ingenious ways of=
 getting around the limitations imposed by HTTP and how it is processed for=
 anything which deviates from the classic web page access model.
>
> I think the aim of CoAP should be clean from the word go with regard to s=
upporting these more peer-to-peer transactions, where the client can exist =
on either entity and both entities can feed data to each other; typical in =
M2M applications.
>
> Robert
>
> Robert Cragie (Pacific Gas & Electric)
>
> Gridmerge Ltd.
> 89 Greenfield Crescent,
> Wakefield, WF4 4WA, UK
> +44 1924 910888
> +1 415 513 0064http://www.gridmerge.com
>
> On 27/05/2010 7:08 PM, Adriano Pezzuto (apezzuto) wrote:
> Hi Robert,
>
> in my personal opinion, the option 1a) brings some sort of ambiguity to C=
oAP specs.
>
> My be my understatement of new CoAP specs is not so deep, but now we have=
 5 methods and 3 message types: request, response and notify. Which methods=
 are allowed with which messages types?
> I suppose you have to use PUT/POST method with notify message for asynch =
data notification. How to make a subscribe? I suppose you would use a SUBSC=
RIBE method with request/response message or SUBSCRIBE with notify message?=
 Also what about POST/DELETE methods in a notify message? They not make any=
 sense..
>
> I think the choice is between: option 1) -> only CRUD methods and option =
1b) -> CRUD + SUB/NOTIFY methods, keeping in mind cost/benefits of both sol=
utions.
>
> Adriano
>
> From: Robert Cragie [mailto:robert.cragie@gridmerge.com <robert.cragie@gr=
idmerge.com>]
> Sent: mercoled=EC 26 maggio 2010 20.09
> To: Adriano Pezzuto (apezzuto)
> Cc: Paul Duffy (paduffy); Zach Shelby; core
> Subject: Re: [core] Subscribe/Notify for CoAP
>
> Hi Adrian,
>
> I would also prefer to keep the protocol in CoAP asynchronous. You can al=
ways map an asynchronous protocol to a synchronous one but, as we see in HT=
TP, it always ends up as a kludge to do it the other way round. The efforts=
 which have been gone to to make HTTP quasi-asynchronous via all the scheme=
s mentioned below and many more besides (all non-interoperable of course) i=
s testament to how important this is for M2M communication.
>
> So, back to Zach's list, I favor 1a) for the following reasons:
>
> Foundation level of messages:
>
> 1. request/response can be asynchronous or synchronous messages (as there=
 is a transaction ID in there)
> 2. notify is an asynchronous message
> Derived methods:
>
> I think it makes sense to add a pub/sub model as a useful mechanism for M=
2M.
>
> So, looking at it the other way round: It will be entirely possible to tr=
anslate whatever is currently built on HTTP to CoAP based on the above, wit=
h all its restrictions regarding synchronous and client/server transactions=
. What may be harder is to translate directly is a CoAP-based application t=
o HTTP. So I guess the question is: Do we want to be hamstrung to synchrono=
us client/server transactions as dictated by HTTP and provide a direct mapp=
ing to HTTP, then have to come up with similar kludges for asynchronous pee=
r-to-peer transactions as has been done in numerous ways for HTTP, or do we=
 want to define the protocol cleanly to start with and accept that some sor=
t of transaction relaying/conversion would have to take place at a mapping =
node?
>
> Robert
> Robert Cragie (Pacific Gas & Electric)
>
> Gridmerge Ltd.
> 89 Greenfield Crescent,
> Wakefield, WF4 4WA, UK
> +44 1924 910888
> +1 415 513 0064http://www.gridmerge.com
>
> On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote:
> Hi,
> it looks to me that CoAP should use an explicit sub/notify mechanism sinc=
e this is the core of the machine-to-machine interaction model.
> HTTP suffers of this lack and we have seen a plethora of solutions to giv=
e an asynch taste to it. Webhooks and websockets are only the lasts of the =
list.
> As someone has already pointed out on this list, it is theoretically poss=
ible to describe sub/notify using only CRUD methods but it looks a little b=
it tricky and verbose.
>
> Now we have a chance to build from scratch a new protocol with and I thin=
k using explicit sub/notify methods with a clear and well defined semantic =
is the best option. It is easily understanding from every developer and wil=
l prevent to build other fanny solutions on top of the CoAP. HTTP does not =
have this well defined semantic and (for hundreds of other reasons also) it=
 is not used as wide protocol for machine-to-machine communication.
>
> CoAP - as binary protocol - and with an explicit asynch model has a chanc=
e to be a really wide protocol for M2M communication not only for constrain=
ed environments.
>
> my 2 cents
>
> - adriano
>
> -----Original Message-----
> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org <core-bounces@i=
etf.org>] On Behalf Of Paul Duffy (paduffy)
> Sent: mercoled=EC 26 maggio 2010 0.47
> To: Zach Shelby
> Cc: core
> Subject: Re: [core] Subscribe/Notify for CoAP
>
> On 5/25/2010 6:41 PM, Zach Shelby wrote:
>
> Hi,
>
> On May 26, 2010, at 12:23 AM, Charles Palmer wrote:
>
>
> Hi folks
>
> It occurs to me that CoRE should be keeping a close eye on ZigBee SE2.0 w=
ork, so that it is as easy as possible for ZigBee SE to use CoRE when ready=
. That suggests to me that we should align with their subscribe/notify proc=
ess.
>
>
> I am not sure I understand that. I mean, ZigBee SE2.0 is defining an appl=
ication specific subscribe/notify mechanism for that purpose so far for HTT=
P. This uses standard HTTP methods and some custom payload and REST interfa=
ces. CoAP Req/Res is already totally compatible with SE2.0 in that respect,=
 so alignment is already OK there. Nothing stopping someone from using SE2.=
0 over CoAP.
>
> Specifying a native susbcription/notify into CoAP is another matter. We c=
an't adopt a solution specific to one application as that won't solve the p=
roblems of other applications nor general HTTP mapping at all (probably wou=
ld make it worse). It seems that for the near future there will be a bunch =
of HTTP push mechanisms in use without any clear standard appearing - or am=
 I wrong there?
>
>
>
>
> If COAP extends HTTP semantics with new subscription methods, it will
> not be possible to easily interchange HTTP/COAP, and translation
> gateways will become more complex to implement.
>
>
>
> Zach
>
>
> Regards - Charles
>
>
> -----Original Message-----
> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org <core-bounces@i=
etf.org>] On Behalf Of Paul Duffy
> Sent: 25 May 2010 03:48
> To: Zach Shelby
> Cc: core
> Subject: Re: [core] Subscribe/Notify for CoAP
>
> Recommend something like #2, primarily to avoid introducing non HTTP
> method semantics, simplifying HTTP/COAP translation.gateways, etc.
>
>
> On 5/24/2010 11:49 AM, Zach Shelby wrote:
>
> (thread renamed)
>
> We have two different paths with regard to a subscribe/notify mechanism f=
or CoAP:
>
> 1. Use specific Subscription and Notify mechanisms for CoAP as HTTP reall=
y does not include this concept.
> 1a) Notify as a message and SUBSCRIBE as a method. This is currently used=
 in coap-01.
> 1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but we had=
 a good list discussion about this leading to a. In practice it doesn't mak=
e a big difference if notification is a message or method.
>
> 2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0 prop=
osal or GENA.
>
> So far we have focused on 1 in the WG, and every now and again 2 comes up=
. At least I am not convinced that we need to suffer the drawbacks of HTTP =
here. Anyways 2 does not help our mapping to HTTP in reality very much as t=
here is no standard way of doing this over HTTP. Thus a CoAP-HTTP proxy may=
 end up anyways translating between multiple HTTP frameworks depending on t=
he application. So instead of doing a CoAP Notify/Subscribe to Webhooks map=
ping, you will could end up having to do a CoAP Webhooks to HTTP GENA mappi=
ng.
>
>
>
> I don't understand this last para. If CoAP sticks to the semantics of
> the current HTTP methods, would this not offer a fairly straightforward
> translation to/from HTTP?
>
>
>
> From what I have heard so far 1 still seems like a wise choice, although =
I need to look at Webhooks more deeply. In reality many applications specif=
y their own way of doing a push interface using REST methods and specific p=
ayloads (ZigBee SE2.0 is such an example). That is just fine, and might be =
used instead of a specific CoAP notify/subscribe in that case. So 1 doesn't=
 prevent the application using its own mechanism, it just provides a native=
 way for doing push.
>
> What do people think?
>
> Zach
>
> On May 17, 2010, at 6:44 PM,matthieu.vial@fr.non.schneider-electric.com w=
rote:
>
>
>
> Hi,
>
> My comments about the subscribe/notify mechanism of Zigbee IP.
>
> Pros:
> - Derived from the webhooks concept
> - If used by CORE it will be easier to map to HTTP because it uses only C=
RUD verbs.
> - The subscription message is extendable and could support advanced optio=
ns (delays, increment, ...)
> - Only one listening port whatever the transport binding is.
>
> Cons:
> - No interoperability without well known URIs and a well defined subscrip=
tion message format (Not sure CoAP draft is the right place to specify this=
).
> - XML/EXI is too complex to be the required format for the default subscr=
iption/notification mechanism.
> - The notification should not require a subsequent GET to retrieve the co=
ntent.
> - Subresource subscription is redundant.
>
> Hope this could help,
> Matthieu
>
>
> <graycol.gif>"Charles Palmer"<charles.palmer@onzo.com> <charles.palmer@on=
zo.com>
>
>
>
>
> "Charles Palmer"<charles.palmer@onzo.com> <charles.palmer@onzo.com>
> Envoy=E9 par : core-bounces@ietf.org
> 15/05/2010 14:06
>
> <ecblank.gif>
> A
> <ecblank.gif>
> "core"<core@ietf.org> <core@ietf.org>
> <ecblank.gif>
> cc
> <ecblank.gif>
> <ecblank.gif>
> Objet
> <ecblank.gif>
> Re: [core] Selecting a WG document for CoAP
> <ecblank.gif> <ecblank.gif>
>
> Dear all
>
> Those interested in the subscribe/notify discussion might like to look
> at the draft Smart Energy Profile 2.0 Application Protocol
> Specification. It is available here:http://zigbee.org/Markets/ZigBeeSmart=
Energy/ZigBeeSmartEnergy20PublicApp
> licationProfile.aspx
>
> It manages subscribe/notify by using POST. This seems to remove the need
> for SUBSCRIBE and notify.
>
> "Imagine a host A, which exposes a resource at http{s}://A/resource and
> a second host B, which wishes to learn of changes to this resource. To
> facilitate a subscription/ notification mechanism, A would expose a
> resource http{s}://A/sub and B would expose a resource http{s}://B/ntfy.
> To subscribe to notifications regarding http{s}://A/resource, B would
> send a POST to the address http{s}://A/sub/B containing the URI of the
> resource of interest (http{s}://A/resource) and the URI of B's
> notification resource (http{s}://B/ntfy). Following this subscription
> step, should A wish to notify B of a change to the resource addressed at
> http{s}://A/resource, A would send a POST to the address
> http{s}://B/ntfy containing the URI of the resource changed
> (http{s}://A/resource) and the URI of A's subscription resource
> (http{s}://A/sub/B), should A wish to change its subscription. The host
> B can then query the resource (or not) at its leisure."
>
> Sleepy nodes are not allowed to subscribe, and must poll.
>
> Regards - Charles Palmer
>
> -----Original Message-----
> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org <core-bounces@i=
etf.org>] On Behalf Of
> Angelo P. Castellani
> Sent: 14 May 2010 13:14
> To: Zach Shelby
> Cc: core
> Subject: Re: [core] Selecting a WG document for CoAP
>
> Zach,
>
> thanks for the comments, but please refer to my most recent e-mail for
> a more specific list of technical issues I'm pointing to.
>
> I want to do only a little integration to what I've written there.
>
> In my very personal opinion, to maximize adherence with the REST model
> and minimize implementation effort SUBSCRIBE and NOTIFY should be
> mapped to methods (as discussed many times together...).
>
> Uniform interface principle (Fielding PhD dissertation Section 5.1.5,
> "The central feature that distinguishes the REST architectural style
> [...]") states that to simplify the software architecture, resource
> interfaces/interfaces should be as general as possible.
>
> I agree with this principle in this specific case, mainly because
> handling a special message type for notify leads node software design
> to a more complex architecture.
>
> The reason is that this new message type requires special handling and
> introduces a complexity in the software modularization.
>
> Best,
> Angelo
>
> On Fri, May 14, 2010 at 13:06, Zach Shelby<zach@sensinode.com> <zach@sens=
inode.com> wrote:
>
>
> Hi Angelo,
>
> On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:
>
>
>
> Dear C. Bormann, all,
>
> before deciding for the final direction, I've the following
> observations about draft-shelby-core-coap-01
>
> While I mostly share Zach's view of the protocol approach, and
> appreciate many aspects of the proposal, there are in my opinion
>
>
> still
>
>
> some open issues that need to be at least discussed before the
>
>
> current
>
>
> document can be selected.
>
>
> Of course there are plenty of open issues. Remember that working group
>
>
> documents still undertake as much change and improvement as the WG
> wants, so by no means is coap-01 set in stone. I would expect at least
> 5-10 more revisions still along the way. Already several of your ideas
> have been integrated into coap-01, and several more are under
> consideration, so it is coming along. Patience ;-)
>
>
>
> In particular, I would like to highlight the following:
>
> a) As it is now, it is not possible to have a straightforward
> translation of HTTP -> CoAP and viceversa: seehttp://www.ietf.org/mail-ar=
chive/web/core/current/msg00133.html (this
> impacts the scalability of the web service model too)
>
>
> In coap-01 the Method names are now identical to HTTP methods. The
>
>
> Req/Res interaction is a direct translation. The URI hierarchy is
> compatible, and the URI binary code format we are still working on
> obviously. The only thing that takes some state to translate is
> Subscribe/Notify. But note, Subscribe/Notify takes some state no matter
> how you do it, even with HTTP-HTTP there is no clean and easy way to
> handle subscriptions.
>
>
>
> b) Moreover, CoAP's implementation is not as simple as it should be.
> I've investigated the implementation and some design choices (as
> Options) are leading to very high program complexity (ROM) on a
> MSP430-based device.
>
>
> This we can definitely improve, and already made several optimizations
>
>
> from -00 to -01. Here I need some very concrete proposals though. Also
> remember that many things are optional, for example subscribe/notify is
> not required if you don't need it.
>
>
>
> c) Finally when comparing HTTP message size with CoAP message size,
> the resulting compression isn't as good as you may expect.
>
> Example:
> HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
> CoAP: 24 B with options parsing procedure requiring an added
> implementation complexity
>
>
> Right, that is not how it will work in practice. Working with a real
>
>
> HTTP server that HTTP header will be more complex, and on the CoAP side
> you would chose shorter URLs. The biggest improvement possible here is
> from using binary coded URLs of course. We need to look at a wider range
> of interactions and real HTTP headers as well to check that we are
> efficient enough.
>
>
>
> Addressing all these points potentially leads to major technical
> modifications (especially point a) on the current draft, hence it is
> appropriate in my opinion to discuss these points before making the
> final decision.
>
>
> I am not sure what else you have in mind for a). If we just forget
>
>
> about Subscribe/Notify then you are good to go. But then you are also
> not fulfilling the charter or the industry needs in that respect.
>
>
> Thanks,
> Zach
>
>
>
> Best regards,
>
> Angelo P. Castellani
>
>
> On Mon, May 10, 2010 at 18:51, Carsten Bormann<cabo@tzi.org> <cabo@tzi.or=
g>wrote:
>
>
> The CORE WG has a milestone to select a WG document for CoAP in
>
>
> April:
>
> http://datatracker.ietf.org/wg/core/charter/
> ...
> Apr 2010 Select WG document for basis of the CoAP protocol
>
> Of the various documents that have been contributed,
>
>
> draft-shelby-core-coap has significant discussion, as well as the
> largest number of updates (including a previous version that was still
> called -6lowapp-coap).
>
>
> Today, another updated version of that draft was announced. Seehttp://www=
.ietf.org/mail-archive/web/core/current/msg00138.html
> for the announcement andhttp://tools.ietf.org/html/draft-shelby-core-coap=
-01
> for the draft itself.
>
> However, as the authors say, there are still significant TODOs.
>
> Are we in a state yet where we can say whether this is the right
>
>
> direction for the WG to take?
>
>
> If yes, is it the right direction? Should we adopt it as a WG
>
>
> document?
>
>
> If you don't think we can say yet, is there a set of technical
>
>
> decisions you would like the authors to take with priority?
>
>
> Note that once a document has become a WG document, the authors act
>
>
> as editors for the working group, making (and usually fleshing out the
> details of) any change that the WG decides it needs.
>
>
> If you think we can still improve the draft, this is not an obstacle
>
>
> to making it a WG document.
>
>
> But of course we shouldn't do that if we intend to reverse its
>
>
> fundamental technical direction.
>
>
> In order to stay roughly in sync with our milestones, we should
>
>
> reach at a decision on how to go forward this week.
>
>
> Gruesse, Carsten
>
> _______________________________________________
> core mailing listcore@ietf.orghttps://www.ietf.org/mailman/listinfo/core
>
>
>
> _______________________________________________
> core mailing listcore@ietf.orghttps://www.ietf.org/mailman/listinfo/core
>
>
> --
> Zach Shelby, Chief Nerd, Sensinode Ltd.http://zachshelby.org - My blog "O=
n the Internet of Things"
> http://6lowpan.net - My book " <http://6lowpan.net-Mybook>6LoWPAN: The Wi=
reless Embedded Internet"
> Mobile: +358 40 7796297
>
>
>
>
> _______________________________________________
> core mailing listcore@ietf.orghttps://www.ietf.org/mailman/listinfo/core
>
> --------------------------------
> Onzo is a limited company number 06097997 registered in England& Wales. T=
he
> registered office is 6 Great Newport Street, London, WC2H 7JB, United Kin=
gdom.
>
> This email message may contain confidential and/or privileged information=
, and
> is intended solely for the addressee(s). If you have received this email =
in
> error, please notify Onzo immediately. Unauthorised copying, disclosure o=
r
> distribution of the material in this email is forbidden.
> --------------------------------
>
> _______________________________________________
> core mailing listcore@ietf.orghttps://www.ietf.org/mailman/listinfo/core
>
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> ______________________________________________________________________
>
> _______________________________________________
> core mailing listcore@ietf.orghttps://www.ietf.org/mailman/listinfo/core
>
>
>
> _______________________________________________
> core mailing listcore@ietf.orghttps://www.ietf.org/mailman/listinfo/core
>
> --------------------------------
> Onzo is a limited company number 06097997 registered in England& Wales. T=
he
> registered office is 6 Great Newport Street, London, WC2H 7JB, United Kin=
gdom.
>
> This email message may contain confidential and/or privileged information=
, and
> is intended solely for the addressee(s). If you have received this email =
in
> error, please notify Onzo immediately. Unauthorised copying, disclosure o=
r
> distribution of the material in this email is forbidden.
> --------------------------------
>
>
>
>
> _______________________________________________
> core mailing listcore@ietf.orghttps://www.ietf.org/mailman/listinfo/core
> _______________________________________________
> core mailing listcore@ietf.orghttps://www.ietf.org/mailman/listinfo/core
>
>
>
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> _________________________________________________________________________=
____________________________________________
> core mailing listcore@ietf.orghttps://www.ietf.org/mailman/listinfo/core
>
> _______________________________________________
> core mailing listcore@ietf.orghttps://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 " <http://6lowpan.net-Mybook>6LoWPAN: The Wi=
reless Embedded Internet"
> Mobile: +358 40 7796297
>
> _______________________________________________
> core mailing listcore@ietf.orghttps://www.ietf.org/mailman/listinfo/core
>
>      _______________________________________________
> core mailing listcore@ietf.orghttps://www.ietf.org/mailman/listinfo/core
>
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>
>

--0016e6d645a839ca0c0487ae17ec
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div>My two cents:=A0</div><div><br></div>Personally I find it confusing to=
 have both a message type *and* a method.<div><br></div><div>Do we really n=
eed both? =A0It seems we just combine the two into a single method byte. =
=A0Maybe reserve a bit to say a message is a response to a GET, PUT, DELETE=
, etc.</div>
<div><br></div><div><br><br><div class=3D"gmail_quote">On Fri, May 28, 2010=
 at 1:22 PM, Robert Cragie <span dir=3D"ltr">&lt;<a href=3D"mailto:robert.c=
ragie@gridmerge.com">robert.cragie@gridmerge.com</a>&gt;</span> wrote:<br><=
blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex;">



 =20

<div bgcolor=3D"#ffffff" text=3D"#000000">
I think sometimes it makes more sense to think about threads of
execution.<br>
<br>
Forgive me for this lengthy preamble but it will hopefully put things
into context.<br>
<br>
In the most abstract sense, processing is governed by a thread of
execution, which sequences a series of data transformations to expedite
the required processing. If a data transformation can be completed
synchronously in the thread of execution, then the thread is
conceptually easier to understand and follow. Most threading models
assume this to be the case and if the data transformation cannot
complete, it usually blocks pending the required event to complete the
transformation. During blocking, the thread is suspended. In simple CPU
models without any sort of scheduler, there are two threads of
execution: A main thread, pre-emptable by an interrupt thread, usually
not pre-emptable. In the main thread, sub-threads are emulated; data
transformations can be simply function calls which don&#39;t block and
therefore return effectively immediately and synchronously. Blocking
data transformations are emulated by storing state relevant to each
sub-thread then marshaling each event as it is received e.g. through
interrupt handling, which causes the second thread to run and thus
allows changing sub-thread state so when the main thread runs, the
blocking data transformation can complete. Operating system schedulers
for these simple CPUs simply abstract this operation through a kernel
and associated task/thread scheduling calls. Continuations are a
simpler form used in memory-constrained implementations.<br>
<br>
Why the lengthy pre-amble? However you look at it, what essentially is
required for any threading model (using kernel/scheduler,
continuations, emulated, whatever) are fundamentally three primitives:<br>
<ul>
  <li>Request</li>
  <li>Response</li>
  <li>Notify</li>
</ul>
A thread of execution will call request and will typically (though not
necessarily - see emulated blocking/continuations) wait for a response.
If the thread blocks, it is typically woken by another worker thread
handling a notify. The worker thread handles notifies asynchronously
and buffers and/or signals the associated task accordingly.<br>
<br>
This is why I think the current foundation level of messages in coap-01
is right.<br>
<br>
On top of this, the payload of the messages can reflect the actual
method. Personally, I don&#39;t see the need for a specific SUBSCRIBE
message; a POST/create to a subscription resource seems adequate to me.
The notify message can carry a PUT or POST depending on whether the
resource was simply updated or appended to (again it is no accident the
data types in JSON are as they are).<br>
<br>
Robert <br>
<div>

<p>Robert Cragie (Pacific Gas &amp; Electric)</p>
<p>Gridmerge Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 1924 910888<br>
+1 415 513 0064<br>
<a href=3D"http://www.gridmerge.com/" target=3D"_blank">http://www.gridmerg=
e.com</a></p>
</div>
<br>
On 28/05/2010 2:13 PM, Angelo P. Castellani wrote:
<blockquote type=3D"cite">
  <pre>In my opinion Subscribe/Notify are special methods of interaction
between resources.

1) SUBSCRIBE: Any resource A can send a Request to SUBSCRIBE with a
resource B (to the resource B URI).

When B receives the request, B can (should/must?) answer with a
Response to the SUBSCRIBE Request, telling the result of the request
(subscription accepted/denied/unsupported?).

2) NOTIFY: When subscription condition fires the resource B sends a
NOTIFY Request to resource A URI.

When A receives the request, A can (should/must?) answer with a
Response to the NOTIFY Request, telling the result of the request (OK,
cancel subscription, change notify options?).

In each Request must be specified the URI of the resource doing the
Request too (Option? From-URI?).

Angelo

On Fri, May 28, 2010 at 14:50, Zach Shelby <a href=3D"mailto:zach@sensinode=
.com" target=3D"_blank">&lt;zach@sensinode.com&gt;</a> wrote:
  </pre>
  <blockquote type=3D"cite">
    <pre>Hi,

This is a really good conversation. One thing we need to do is remember wha=
t our minimum requirements are for subscribe/notify and not try to solve so=
mething more than we should. From what I know it is sufficient to be able t=
o receive notifications when a URI changes or periodically. You might consi=
der new URIs under this URI path to be changes to a URI though...

On May 28, 2010, at 3:08 PM, Adriano Pezzuto (apezzuto) wrote:

    </pre>
    <blockquote type=3D"cite">
      <pre>Hello,
with this flavor, the SUBSCRIBE may be replaced by a simple POST. So no nee=
ds to have an explicit SUBSCRIBE method.
      </pre>
    </blockquote>
    <pre>This is what coap-01 assumes.

    </pre>
    <blockquote type=3D"cite">
      <pre>If we want support a more oriented peer-to-peer transaction on C=
oAP, it looks to me both SUB and NOTIFY should be treated as messages.
      </pre>
    </blockquote>
    <pre>The Request/Response model can be used peer-to-peer, and in CoAP y=
ou can even use a Request asynchronously. Additionally, we want a native RE=
STful subscribe/notify technique, that is, we want to subscribe to resource=
s and be susequently notified about those resources when they change.

In that sense, you can think of a subscription as a request to receive asyn=
chronous notifications about a resource (about a URI). This can be achieved=
 by:

1. =A0as a SUBSCRIBE Request on the URI with some option indicating the lif=
etime as in coap-01,
2. =A0as a Subcsribe message (no methods) on the URI with some option,
3. =A0or as a POST Request on the URI with options indicating that this is =
actually a subscription and the lifetime. =A0This bends the meaning of POST=
 quite a bit and might be prone to mistakes?

The asynchronous response is a harder one. Can we bend the meaning of a Req=
uest for making asynchronous notifications? Also a notification includes a =
URI about a resource on the requestor, which is inverse from normal Request=
s in REST. So the options here are:

1. as a Notify message about a URI (no methods) as in coap-01,
2. as a NOTIFY Request about a URI as was in coap-00,
3. hmmm... reusing CRUD methods really doesn&#39;t work for this one at all=
...

I wonder what the HTTP designers would have done if this would have been a =
requirement back then? Maybe we should ask them...

Zach

    </pre>
    <blockquote type=3D"cite">
      <pre>Adriano

From: <a href=3D"mailto:matthieu.vial@fr.non.schneider-electric.com" target=
=3D"_blank">matthieu.vial@fr.non.schneider-electric.com</a> [<a href=3D"mai=
lto:matthieu.vial@fr.non.schneider-electric.com" target=3D"_blank">mailto:m=
atthieu.vial@fr.non.schneider-electric.com</a>]
Sent: venerd=EC 28 maggio 2010 13.52
To: Adriano Pezzuto (apezzuto)
Cc: core; <a href=3D"mailto:core-bounces@ietf.org" target=3D"_blank">core-b=
ounces@ietf.org</a>; <a href=3D"mailto:robert.cragie@gridmerge.com" target=
=3D"_blank">robert.cragie@gridmerge.com</a>
Subject: Re: [core] Subscribe/Notify for CoAP

      </pre>
      <blockquote type=3D"cite">
        <pre>So strictly speaking, both NOTIFY and SUBSCRIBE are message ty=
pes not =A0methods!
        </pre>
      </blockquote>
      <pre>SUBSCRIBE can be just an asynchronous GET on update then I think=
 it is a method and NOTIFY is an asynchronous response so a message.
But if we want to have selective notifications when a resource is created, =
updated or deleted then I think you&#39;re right NOTIFY and SUBSCRIBE are m=
essages.

Does that make sense ?

Matthieu

&lt;image001.gif&gt;&quot;Adriano Pezzuto (apezzuto)&quot; <a href=3D"mailt=
o:apezzuto@cisco.com" target=3D"_blank">&lt;apezzuto@cisco.com&gt;</a>




&quot;Adriano Pezzuto (apezzuto)&quot; <a href=3D"mailto:apezzuto@cisco.com=
" target=3D"_blank">&lt;apezzuto@cisco.com&gt;</a>
Envoy=E9 par : <a href=3D"mailto:core-bounces@ietf.org" target=3D"_blank">c=
ore-bounces@ietf.org</a>
28/05/2010 12:50

&lt;image003.png&gt;
A
&lt;image004.png&gt;
<a href=3D"mailto:robert.cragie@gridmerge.com" target=3D"_blank">&lt;robert=
.cragie@gridmerge.com&gt;</a>
&lt;image003.png&gt;
cc
&lt;image004.png&gt;
core <a href=3D"mailto:core@ietf.org" target=3D"_blank">&lt;core@ietf.org&g=
t;</a>
&lt;image003.png&gt;
Objet
&lt;image004.png&gt;
Re: [core] Subscribe/Notify for CoAP
&lt;image004.png&gt;
&lt;image004.png&gt;

Hi Roberto,
I understand your point and personally agree on M2M is quite different from=
 web page model. On the architectural RESTful style, the method information=
 tells the server what to do with data kept in the URI information.

So strictly speaking, both NOTIFY and SUBSCRIBE are message types not =A0me=
thods!

Adriano

From: Robert Cragie [<a href=3D"mailto:robert.cragie@gridmerge.com" target=
=3D"_blank">mailto:robert.cragie@gridmerge.com</a>]
Sent: venerd=EC 28 maggio 2010 11.53
To: Adriano Pezzuto (apezzuto)
Cc: Paul Duffy (paduffy); Zach Shelby; core
Subject: Re: [core] Subscribe/Notify for CoAP

I think the point here is that there are two levels we are considering.

At the lowest (foundation) level, there are the transaction messages as des=
cribed below. This provides a flexible mechanism for the application with r=
egard to synchronicity and threading. This is important for the types of de=
vices CoAP is being aimed at.

Above that, the methods can be used according to the architectural style. S=
o in this case, it is RESTful (COnstrained Restful Environments), which wil=
l naturally limit the number of methods and how transactions occur.

The actual architecture using a combination of the methods and messages als=
o depends on what is required at the application layer. Consider a typical =
client which wants to subscribe to a resource. That client controls the fee=
d of data but needs a component which is capable of handling (possibly buff=
ering) the data it receives through notifications. Is this a separate serve=
r? Or would we want to consider it part of an enhanced client model which i=
s able to process feeds of data? These are the sort of models which have le=
d to the myriad of solutions (GENA, Webhooks, long polling, pubsubhubbub, R=
ESTMS etc.) based around HTTP which are all essentially ingenious ways of g=
etting around the limitations imposed by HTTP and how it is processed for a=
nything which deviates from the classic web page access model.

I think the aim of CoAP should be clean from the word go with regard to sup=
porting these more peer-to-peer transactions, where the client can exist on=
 either entity and both entities can feed data to each other; typical in M2=
M applications.

Robert

Robert Cragie (Pacific Gas &amp; Electric)

Gridmerge Ltd.
89 Greenfield Crescent,
Wakefield, WF4 4WA, UK
+44 1924 910888
+1 415 513 0064
<a href=3D"http://www.gridmerge.com" target=3D"_blank">http://www.gridmerge=
.com</a>

On 27/05/2010 7:08 PM, Adriano Pezzuto (apezzuto) wrote:
Hi Robert,

in my personal opinion, the option 1a) brings some sort of ambiguity to CoA=
P specs.

My be my understatement of new CoAP specs is not so deep, but now we have 5=
 methods and 3 message types: request, response and notify. Which methods a=
re allowed with which messages types?
I suppose you have to use PUT/POST method with notify message for asynch da=
ta notification. How to make a subscribe? I suppose you would use a SUBSCRI=
BE method with request/response message or SUBSCRIBE with notify message? A=
lso what about POST/DELETE methods in a notify message? They not make any s=
ense..

I think the choice is between: option 1) -&gt; only CRUD methods and option=
 1b) -&gt; CRUD + SUB/NOTIFY methods, keeping in mind cost/benefits of both=
 solutions.

Adriano

From: Robert Cragie [<a href=3D"mailto:robert.cragie@gridmerge.com" target=
=3D"_blank">mailto:robert.cragie@gridmerge.com</a>]
Sent: mercoled=EC 26 maggio 2010 20.09
To: Adriano Pezzuto (apezzuto)
Cc: Paul Duffy (paduffy); Zach Shelby; core
Subject: Re: [core] Subscribe/Notify for CoAP

Hi Adrian,

I would also prefer to keep the protocol in CoAP asynchronous. You can alwa=
ys map an asynchronous protocol to a synchronous one but, as we see in HTTP=
, it always ends up as a kludge to do it the other way round. The efforts w=
hich have been gone to to make HTTP quasi-asynchronous via all the schemes =
mentioned below and many more besides (all non-interoperable of course) is =
testament to how important this is for M2M communication.

So, back to Zach&#39;s list, I favor 1a) for the following reasons:

Foundation level of messages:

1. request/response can be asynchronous or synchronous messages (as there i=
s a transaction ID in there)
2. notify is an asynchronous message
Derived methods:

I think it makes sense to add a pub/sub model as a useful mechanism for M2M=
.

So, looking at it the other way round: It will be entirely possible to tran=
slate whatever is currently built on HTTP to CoAP based on the above, with =
all its restrictions regarding synchronous and client/server transactions. =
What may be harder is to translate directly is a CoAP-based application to =
HTTP. So I guess the question is: Do we want to be hamstrung to synchronous=
 client/server transactions as dictated by HTTP and provide a direct mappin=
g to HTTP, then have to come up with similar kludges for asynchronous peer-=
to-peer transactions as has been done in numerous ways for HTTP, or do we w=
ant to define the protocol cleanly to start with and accept that some sort =
of transaction relaying/conversion would have to take place at a mapping no=
de?

Robert
Robert Cragie (Pacific Gas &amp; Electric)

Gridmerge Ltd.
89 Greenfield Crescent,
Wakefield, WF4 4WA, UK
+44 1924 910888
+1 415 513 0064
<a href=3D"http://www.gridmerge.com" target=3D"_blank">http://www.gridmerge=
.com</a>

On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote:
Hi,
it looks to me that CoAP should use an explicit sub/notify mechanism since =
this is the core of the machine-to-machine interaction model.
HTTP suffers of this lack and we have seen a plethora of solutions to give =
an asynch taste to it. Webhooks and websockets are only the lasts of the li=
st.
As someone has already pointed out on this list, it is theoretically possib=
le to describe sub/notify using only CRUD methods but it looks a little bit=
 tricky and verbose.

Now we have a chance to build from scratch a new protocol with and I think =
using explicit sub/notify methods with a clear and well defined semantic is=
 the best option. It is easily understanding from every developer and will =
prevent to build other fanny solutions on top of the CoAP. HTTP does not ha=
ve this well defined semantic and (for hundreds of other reasons also) it i=
s not used as wide protocol for machine-to-machine communication.

CoAP - as binary protocol - and with an explicit asynch model has a chance =
to be a really wide protocol for M2M communication not only for constrained=
 environments.

my 2 cents

- adriano

-----Original Message-----
From: <a href=3D"mailto:core-bounces@ietf.org" target=3D"_blank">core-bounc=
es@ietf.org</a> [<a href=3D"mailto:core-bounces@ietf.org" target=3D"_blank"=
>mailto:core-bounces@ietf.org</a>] On Behalf Of Paul Duffy (paduffy)
Sent: mercoled=EC 26 maggio 2010 0.47
To: Zach Shelby
Cc: core
Subject: Re: [core] Subscribe/Notify for CoAP

On 5/25/2010 6:41 PM, Zach Shelby wrote:

Hi,

On May 26, 2010, at 12:23 AM, Charles Palmer wrote:


Hi folks

It occurs to me that CoRE should be keeping a close eye on ZigBee SE2.0 wor=
k, so that it is as easy as possible for ZigBee SE to use CoRE when ready. =
That suggests to me that we should align with their subscribe/notify proces=
s.


I am not sure I understand that. I mean, ZigBee SE2.0 is defining an applic=
ation specific subscribe/notify mechanism for that purpose so far for HTTP.=
 This uses standard HTTP methods and some custom payload and REST interface=
s. CoAP Req/Res is already totally compatible with SE2.0 in that respect, s=
o alignment is already OK there. Nothing stopping someone from using SE2.0 =
over CoAP.

Specifying a native susbcription/notify into CoAP is another matter. We can=
&#39;t adopt a solution specific to one application as that won&#39;t solve=
 the problems of other applications nor general HTTP mapping at all (probab=
ly would make it worse). It seems that for the near future there will be a =
bunch of HTTP push mechanisms in use without any clear standard appearing -=
 or am I wrong there?




If COAP extends HTTP semantics with new subscription methods, it will
not be possible to easily interchange HTTP/COAP, and translation
gateways will become more complex to implement.



Zach


Regards - Charles


-----Original Message-----
From: <a href=3D"mailto:core-bounces@ietf.org" target=3D"_blank">core-bounc=
es@ietf.org</a> [<a href=3D"mailto:core-bounces@ietf.org" target=3D"_blank"=
>mailto:core-bounces@ietf.org</a>] On Behalf Of Paul Duffy
Sent: 25 May 2010 03:48
To: Zach Shelby
Cc: core
Subject: Re: [core] Subscribe/Notify for CoAP

Recommend something like #2, primarily to avoid introducing non HTTP
method semantics, simplifying HTTP/COAP translation.gateways, etc.


On 5/24/2010 11:49 AM, Zach Shelby wrote:

(thread renamed)

We have two different paths with regard to a subscribe/notify mechanism for=
 CoAP:

1. Use specific Subscription and Notify mechanisms for CoAP as HTTP really =
does not include this concept.
1a) Notify as a message and SUBSCRIBE as a method. This is currently used i=
n coap-01.
1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but we had a=
 good list discussion about this leading to a. In practice it doesn&#39;t m=
ake a big difference if notification is a message or method.

2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0 propos=
al or GENA.

So far we have focused on 1 in the WG, and every now and again 2 comes up. =
At least I am not convinced that we need to suffer the drawbacks of HTTP he=
re. Anyways 2 does not help our mapping to HTTP in reality very much as the=
re is no standard way of doing this over HTTP. Thus a CoAP-HTTP proxy may e=
nd up anyways translating between multiple HTTP frameworks depending on the=
 application. So instead of doing a CoAP Notify/Subscribe to Webhooks mappi=
ng, you will could end up having to do a CoAP Webhooks to HTTP GENA mapping=
.



I don&#39;t understand this last para. If CoAP sticks to the semantics of
the current HTTP methods, would this not offer a fairly straightforward
translation to/from HTTP?



>From what I have heard so far 1 still seems like a wise choice, although I =
need to look at Webhooks more deeply. In reality many applications specify =
their own way of doing a push interface using REST methods and specific pay=
loads (ZigBee SE2.0 is such an example). That is just fine, and might be us=
ed instead of a specific CoAP notify/subscribe in that case. So 1 doesn&#39=
;t prevent the application using its own mechanism, it just provides a nati=
ve way for doing push.

What do people think?

Zach

On May 17, 2010, at 6:44 PM,<a href=3D"mailto:matthieu.vial@fr.non.schneide=
r-electric.com" target=3D"_blank">matthieu.vial@fr.non.schneider-electric.c=
om</a> wrote:



Hi,

My comments about the subscribe/notify mechanism of Zigbee IP.

Pros:
- Derived from the webhooks concept
- If used by CORE it will be easier to map to HTTP because it uses only CRU=
D verbs.
- The subscription message is extendable and could support advanced options=
 (delays, increment, ...)
- Only one listening port whatever the transport binding is.

Cons:
- No interoperability without well known URIs and a well defined subscripti=
on message format (Not sure CoAP draft is the right place to specify this).
- XML/EXI is too complex to be the required format for the default subscrip=
tion/notification mechanism.
- The notification should not require a subsequent GET to retrieve the cont=
ent.
- Subresource subscription is redundant.

Hope this could help,
Matthieu


&lt;graycol.gif&gt;&quot;Charles Palmer&quot;<a href=3D"mailto:charles.palm=
er@onzo.com" target=3D"_blank">&lt;charles.palmer@onzo.com&gt;</a>




&quot;Charles Palmer&quot;<a href=3D"mailto:charles.palmer@onzo.com" target=
=3D"_blank">&lt;charles.palmer@onzo.com&gt;</a>
Envoy=E9 par : <a href=3D"mailto:core-bounces@ietf.org" target=3D"_blank">c=
ore-bounces@ietf.org</a>
15/05/2010 14:06

&lt;ecblank.gif&gt;
A
&lt;ecblank.gif&gt;
&quot;core&quot;<a href=3D"mailto:core@ietf.org" target=3D"_blank">&lt;core=
@ietf.org&gt;</a>
&lt;ecblank.gif&gt;
cc
&lt;ecblank.gif&gt;
&lt;ecblank.gif&gt;
Objet
&lt;ecblank.gif&gt;
Re: [core] Selecting a WG document for CoAP
&lt;ecblank.gif&gt; &lt;ecblank.gif&gt;

Dear all

Those interested in the subscribe/notify discussion might like to look
at the draft Smart Energy Profile 2.0 Application Protocol
Specification. It is available here:
<a href=3D"http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20P=
ublicApp" target=3D"_blank">http://zigbee.org/Markets/ZigBeeSmartEnergy/Zig=
BeeSmartEnergy20PublicApp</a>
licationProfile.aspx

It manages subscribe/notify by using POST. This seems to remove the need
for SUBSCRIBE and notify.

&quot;Imagine a host A, which exposes a resource at http{s}://A/resource an=
d
a second host B, which wishes to learn of changes to this resource. To
facilitate a subscription/ notification mechanism, A would expose a
resource http{s}://A/sub and B would expose a resource http{s}://B/ntfy.
To subscribe to notifications regarding http{s}://A/resource, B would
send a POST to the address http{s}://A/sub/B containing the URI of the
resource of interest (http{s}://A/resource) and the URI of B&#39;s
notification resource (http{s}://B/ntfy). Following this subscription
step, should A wish to notify B of a change to the resource addressed at
http{s}://A/resource, A would send a POST to the address
http{s}://B/ntfy containing the URI of the resource changed
(http{s}://A/resource) and the URI of A&#39;s subscription resource
(http{s}://A/sub/B), should A wish to change its subscription. The host
B can then query the resource (or not) at its leisure.&quot;

Sleepy nodes are not allowed to subscribe, and must poll.

Regards - Charles Palmer

-----Original Message-----
From: <a href=3D"mailto:core-bounces@ietf.org" target=3D"_blank">core-bounc=
es@ietf.org</a> [<a href=3D"mailto:core-bounces@ietf.org" target=3D"_blank"=
>mailto:core-bounces@ietf.org</a>] On Behalf Of
Angelo P. Castellani
Sent: 14 May 2010 13:14
To: Zach Shelby
Cc: core
Subject: Re: [core] Selecting a WG document for CoAP

Zach,

thanks for the comments, but please refer to my most recent e-mail for
a more specific list of technical issues I&#39;m pointing to.

I want to do only a little integration to what I&#39;ve written there.

In my very personal opinion, to maximize adherence with the REST model
and minimize implementation effort SUBSCRIBE and NOTIFY should be
mapped to methods (as discussed many times together...).

Uniform interface principle (Fielding PhD dissertation Section 5.1.5,
&quot;The central feature that distinguishes the REST architectural style
[...]&quot;) states that to simplify the software architecture, resource
interfaces/interfaces should be as general as possible.

I agree with this principle in this specific case, mainly because
handling a special message type for notify leads node software design
to a more complex architecture.

The reason is that this new message type requires special handling and
introduces a complexity in the software modularization.

Best,
Angelo

On Fri, May 14, 2010 at 13:06, Zach Shelby<a href=3D"mailto:zach@sensinode.=
com" target=3D"_blank">&lt;zach@sensinode.com&gt;</a> wrote:


Hi Angelo,

On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:



Dear C. Bormann, all,

before deciding for the final direction, I&#39;ve the following
observations about draft-shelby-core-coap-01

While I mostly share Zach&#39;s view of the protocol approach, and
appreciate many aspects of the proposal, there are in my opinion


still


some open issues that need to be at least discussed before the


current


document can be selected.


Of course there are plenty of open issues. Remember that working group


documents still undertake as much change and improvement as the WG
wants, so by no means is coap-01 set in stone. I would expect at least
5-10 more revisions still along the way. Already several of your ideas
have been integrated into coap-01, and several more are under
consideration, so it is coming along. Patience ;-)



In particular, I would like to highlight the following:

a) As it is now, it is not possible to have a straightforward
translation of HTTP -&gt; CoAP and viceversa: see
<a href=3D"http://www.ietf.org/mail-archive/web/core/current/msg00133.html"=
 target=3D"_blank">http://www.ietf.org/mail-archive/web/core/current/msg001=
33.html</a> (this
impacts the scalability of the web service model too)


In coap-01 the Method names are now identical to HTTP methods. The


Req/Res interaction is a direct translation. The URI hierarchy is
compatible, and the URI binary code format we are still working on
obviously. The only thing that takes some state to translate is
Subscribe/Notify. But note, Subscribe/Notify takes some state no matter
how you do it, even with HTTP-HTTP there is no clean and easy way to
handle subscriptions.



b) Moreover, CoAP&#39;s implementation is not as simple as it should be.
I&#39;ve investigated the implementation and some design choices (as
Options) are leading to very high program complexity (ROM) on a
MSP430-based device.


This we can definitely improve, and already made several optimizations


from -00 to -01. Here I need some very concrete proposals though. Also
remember that many things are optional, for example subscribe/notify is
not required if you don&#39;t need it.



c) Finally when comparing HTTP message size with CoAP message size,
the resulting compression isn&#39;t as good as you may expect.

Example:
HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
CoAP: 24 B with options parsing procedure requiring an added
implementation complexity


Right, that is not how it will work in practice. Working with a real


HTTP server that HTTP header will be more complex, and on the CoAP side
you would chose shorter URLs. The biggest improvement possible here is
from using binary coded URLs of course. We need to look at a wider range
of interactions and real HTTP headers as well to check that we are
efficient enough.



Addressing all these points potentially leads to major technical
modifications (especially point a) on the current draft, hence it is
appropriate in my opinion to discuss these points before making the
final decision.


I am not sure what else you have in mind for a). If we just forget


about Subscribe/Notify then you are good to go. But then you are also
not fulfilling the charter or the industry needs in that respect.


Thanks,
Zach



Best regards,

Angelo P. Castellani


On Mon, May 10, 2010 at 18:51, Carsten Bormann<a href=3D"mailto:cabo@tzi.or=
g" target=3D"_blank">&lt;cabo@tzi.org&gt;</a>wrote:


The CORE WG has a milestone to select a WG document for CoAP in


April:


<a href=3D"http://datatracker.ietf.org/wg/core/charter/" target=3D"_blank">=
http://datatracker.ietf.org/wg/core/charter/</a>
...
Apr 2010 Select WG document for basis of the CoAP protocol

Of the various documents that have been contributed,


draft-shelby-core-coap has significant discussion, as well as the
largest number of updates (including a previous version that was still
called -6lowapp-coap).


Today, another updated version of that draft was announced. See
<a href=3D"http://www.ietf.org/mail-archive/web/core/current/msg00138.html"=
 target=3D"_blank">http://www.ietf.org/mail-archive/web/core/current/msg001=
38.html</a>
for the announcement and
<a href=3D"http://tools.ietf.org/html/draft-shelby-core-coap-01" target=3D"=
_blank">http://tools.ietf.org/html/draft-shelby-core-coap-01</a>
for the draft itself.

However, as the authors say, there are still significant TODOs.

Are we in a state yet where we can say whether this is the right


direction for the WG to take?


If yes, is it the right direction? Should we adopt it as a WG


document?


If you don&#39;t think we can say yet, is there a set of technical


decisions you would like the authors to take with priority?


Note that once a document has become a WG document, the authors act


as editors for the working group, making (and usually fleshing out the
details of) any change that the WG decides it needs.


If you think we can still improve the draft, this is not an obstacle


to making it a WG document.


But of course we shouldn&#39;t do that if we intend to reverse its


fundamental technical direction.


In order to stay roughly in sync with our milestones, we should


reach at a decision on how to go forward this week.


Gruesse, Carsten

_______________________________________________
core mailing list
<a href=3D"mailto:core@ietf.org" target=3D"_blank">core@ietf.org</a>
<a href=3D"https://www.ietf.org/mailman/listinfo/core" target=3D"_blank">ht=
tps://www.ietf.org/mailman/listinfo/core</a>



_______________________________________________
core mailing list
<a href=3D"mailto:core@ietf.org" target=3D"_blank">core@ietf.org</a>
<a href=3D"https://www.ietf.org/mailman/listinfo/core" target=3D"_blank">ht=
tps://www.ietf.org/mailman/listinfo/core</a>


--
Zach Shelby, Chief Nerd, Sensinode Ltd.
<a href=3D"http://zachshelby.org" target=3D"_blank">http://zachshelby.org</=
a> - My blog &quot;On the Internet of Things<a href=3D"http://6lowpan.net-M=
ybook" target=3D"_blank">&quot;
http://6lowpan.net - My book &quot;</a>6LoWPAN: The Wireless Embedded Inter=
net&quot;
Mobile: +358 40 7796297




_______________________________________________
core mailing list
<a href=3D"mailto:core@ietf.org" target=3D"_blank">core@ietf.org</a>
<a href=3D"https://www.ietf.org/mailman/listinfo/core" target=3D"_blank">ht=
tps://www.ietf.org/mailman/listinfo/core</a>

--------------------------------
Onzo is a limited company number 06097997 registered in England&amp; Wales.=
 The
registered office is 6 Great Newport Street, London, WC2H 7JB, United Kingd=
om.

This email message may contain confidential and/or privileged information, =
and
is intended solely for the addressee(s). If you have received this email in
error, please notify Onzo immediately. Unauthorised copying, disclosure or
distribution of the material in this email is forbidden.
--------------------------------

_______________________________________________
core mailing list
<a href=3D"mailto:core@ietf.org" target=3D"_blank">core@ietf.org</a>
<a href=3D"https://www.ietf.org/mailman/listinfo/core" target=3D"_blank">ht=
tps://www.ietf.org/mailman/listinfo/core</a>

______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
______________________________________________________________________

_______________________________________________
core mailing list
<a href=3D"mailto:core@ietf.org" target=3D"_blank">core@ietf.org</a>
<a href=3D"https://www.ietf.org/mailman/listinfo/core" target=3D"_blank">ht=
tps://www.ietf.org/mailman/listinfo/core</a>



_______________________________________________
core mailing list
<a href=3D"mailto:core@ietf.org" target=3D"_blank">core@ietf.org</a>
<a href=3D"https://www.ietf.org/mailman/listinfo/core" target=3D"_blank">ht=
tps://www.ietf.org/mailman/listinfo/core</a>

--------------------------------
Onzo is a limited company number 06097997 registered in England&amp; Wales.=
 The
registered office is 6 Great Newport Street, London, WC2H 7JB, United Kingd=
om.

This email message may contain confidential and/or privileged information, =
and
is intended solely for the addressee(s). If you have received this email in
error, please notify Onzo immediately. Unauthorised copying, disclosure or
distribution of the material in this email is forbidden.
--------------------------------




_______________________________________________
core mailing list
<a href=3D"mailto:core@ietf.org" target=3D"_blank">core@ietf.org</a>
<a href=3D"https://www.ietf.org/mailman/listinfo/core" target=3D"_blank">ht=
tps://www.ietf.org/mailman/listinfo/core</a>
_______________________________________________
core mailing list
<a href=3D"mailto:core@ietf.org" target=3D"_blank">core@ietf.org</a>
<a href=3D"https://www.ietf.org/mailman/listinfo/core" target=3D"_blank">ht=
tps://www.ietf.org/mailman/listinfo/core</a>



______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
___________________________________________________________________________=
__________________________________________
core mailing list
<a href=3D"mailto:core@ietf.org" target=3D"_blank">core@ietf.org</a>
<a href=3D"https://www.ietf.org/mailman/listinfo/core" target=3D"_blank">ht=
tps://www.ietf.org/mailman/listinfo/core</a>

_______________________________________________
core mailing list
<a href=3D"mailto:core@ietf.org" target=3D"_blank">core@ietf.org</a>
<a href=3D"https://www.ietf.org/mailman/listinfo/core" target=3D"_blank">ht=
tps://www.ietf.org/mailman/listinfo/core</a>
      </pre>
    </blockquote>
    <pre>--
Zach Shelby, Chief Nerd, Sensinode Ltd.
<a href=3D"http://zachshelby.org" target=3D"_blank">http://zachshelby.org</=
a> =A0- My blog &quot;On the Internet of Things<a href=3D"http://6lowpan.ne=
t-Mybook" target=3D"_blank">&quot;
http://6lowpan.net - My book &quot;</a>6LoWPAN: The Wireless Embedded Inter=
net&quot;
Mobile: +358 40 7796297

_______________________________________________
core mailing list
<a href=3D"mailto:core@ietf.org" target=3D"_blank">core@ietf.org</a>
<a href=3D"https://www.ietf.org/mailman/listinfo/core" target=3D"_blank">ht=
tps://www.ietf.org/mailman/listinfo/core</a>

    </pre>
  </blockquote>
  <pre>_______________________________________________
core mailing list
<a href=3D"mailto:core@ietf.org" target=3D"_blank">core@ietf.org</a>
<a href=3D"https://www.ietf.org/mailman/listinfo/core" target=3D"_blank">ht=
tps://www.ietf.org/mailman/listinfo/core</a>

  </pre>
</blockquote>
</div>

<br>_______________________________________________<br>
core mailing list<br>
<a href=3D"mailto:core@ietf.org">core@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/core" target=3D"_blank">ht=
tps://www.ietf.org/mailman/listinfo/core</a><br>
<br></blockquote></div><br></div>

--0016e6d645a839ca0c0487ae17ec--

From matthieu.vial@fr.non.schneider-electric.com  Mon May 31 01:58:24 2010
Return-Path: <matthieu.vial@fr.non.schneider-electric.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 6517A3A69C7; Mon, 31 May 2010 01:58:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 3.15
X-Spam-Level: ***
X-Spam-Status: No, score=3.15 tagged_above=-999 required=5 tests=[AWL=-0.999,  BAYES_50=0.001, HTML_FONT_FACE_BAD=0.884, HTML_MESSAGE=0.001, MANGLED_TOOL=2.3, RCVD_IN_DNSWL_LOW=-1, SARE_GIF_ATTACH=1.42, TVD_FW_GRAPHIC_NAME_MID=0.543]
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 fEPKnCMSaBYF; Mon, 31 May 2010 01:58:20 -0700 (PDT)
Received: from mailX03.eud.schneider-electric.com (mailx03.eud.schneider-electric.com [205.167.7.41]) by core3.amsl.com (Postfix) with ESMTP id 9B36A3A69A6; Mon, 31 May 2010 01:58:17 -0700 (PDT)
Received: from ATEUI01.schneider-electric.com ([10.198.14.9]) by mailX03.eud.schneider-electric.com with ESMTP id 2010053110480182-93480 ; Mon, 31 May 2010 10:48:01 +0200 
In-Reply-To: <4BFFB246.4010600@gridmerge.com>
To: robert.cragie@gridmerge.com
X-Mailer: Lotus Notes Release 6.5.6 March 06, 2007
Message-ID: <OF1B2F560F.3D3AC4AF-ONC1257734.002D3B55-C1257734.00314105@schneider-electric.com>
From: matthieu.vial@fr.non.schneider-electric.com
Date: Mon, 31 May 2010 10:57:59 +0200
MIME-Version: 1.0
X-MIMETrack: Serialize by Router on ATEUI01.Schneider-Electric.com/T/SVR/Schneider at 31/05/2010 10:58:05, Itemize by SMTP Server on AXEU3OUT.schneider-electric.com/X/SVR/SEIxtra at 31/05/2010 10:48:01, Serialize by Router on AXEU3OUT.schneider-electric.com/X/SVR/SEIxtra at 31/05/2010 10:48:02
Content-type: multipart/related;  Boundary="0__=4EBBFDA7DFBEBDC58f9e8a93df938690918c4EBBFDA7DFBEBDC5"
Cc: core-bounces@ietf.org, core <core@ietf.org>
Subject: Re: [core] Subscribe/Notify for CoAP
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: Mon, 31 May 2010 08:58:24 -0000

--0__=4EBBFDA7DFBEBDC58f9e8a93df938690918c4EBBFDA7DFBEBDC5
Content-type: multipart/alternative; 
	Boundary="1__=4EBBFDA7DFBEBDC58f9e8a93df938690918c4EBBFDA7DFBEBDC5"

--1__=4EBBFDA7DFBEBDC58f9e8a93df938690918c4EBBFDA7DFBEBDC5
Content-type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable


Hi Robert,

Here is a complete scenario:

The resource /event is a collection of events that occured in device A.
Device B wants to be notified each time a new event has occured in A.

One solution could be to subscribe when the method POST (thus a creation)
is acted upon /event.
A would send a notify message with the URI of the new event
(/event/1, /event/2 ...).

The second solution using the actual COAP specification is to
define /event/last as an alias to the last created event.
Device B would receive a notification each time /event/last has changed.
The definition of "changed" becomes tricky if 2 successive events are
identical.
The content of /event/last is identical but it points to a different
resource.
Of course the etag could reflect that change.

So what is the RESTfulest solution ?

Matthieu





                                                                           =

             Robert Cragie                                                 =

             <robert.cragie@gr                                             =

             idmerge.com>                                                A =

                                       Matthieu                            =

             28/05/2010 14:08          Vial/FR/Non/Schneider@Europe        =

                                                                        cc =

                                       "Adriano Pezzuto (apezzuto)"        =

             Veuillez r=E9pondre         <apezzuto@cisco.com>, core        =
 =20
                     =E0                 <core@ietf.org>,                  =
 =20
             robert.cragie@gri         core-bounces@ietf.org               =

                dmerge.com                                           Objet =

                                       Re: [core] Subscribe/Notify for     =

                                       CoAP                                =

                                                                           =

                                                                           =

                                                                           =

                                                                           =

                                                                           =

                                                                           =





Hi Matthieu,

I am not sure what you mean here. Do you mean that some other client can
subscribe to be notified whenever some method is acted upon for a
particular resource? Can you describe the transaction model?

Robert


Robert Cragie (Pacific Gas & Electric)


Gridmerge Ltd.
89 Greenfield Crescent,
Wakefield, WF4 4WA, UK
+44 1924 910888
+1 415 513 0064
http://www.gridmerge.com



On 28/05/2010 12:51 PM, matthieu.vial@fr.non.schneider-electric.com wrote:


      > So strictly speaking, both NOTIFY and SUBSCRIBE are message types
      not  methods!

      SUBSCRIBE can be just an asynchronous GET on update then I think it
      is a method and NOTIFY is an asynchronous response so a message.
      But if we want to have selective notifications when a resource is
      created, updated or deleted then I think you're right NOTIFY and
      SUBSCRIBE are messages.

      Does that make sense ?

      Matthieu

      Inactive hide details for "Adriano Pezzuto (apezzuto)"
      <apezzuto@cisco.com>"Adriano Pezzuto (apezzuto)" <apezzuto@cisco.com>



                                                                           =

                         "Adriano Pezzuto                                  =

                         (apezzuto)"                                       =

                         <apezzuto@cisco.                                  =

                         com>                                              =

                         Envoy=E9 par :                                    =
A=20
                         core-bounces@iet                                  =

                         f.org                           <robert.cragie@gr =

                                                         idmerge.com>      =

                                                                           =

                         28/05/2010 12:50                               cc =

                                                                           =

                                                         core              =

                                                         <core@ietf.org>   =

                                                                           =

                                                                     Objet =

                                                                           =

                                                         Re: [core]        =

                                                         Subscribe/Notify  =

                                                         for CoAP          =

                                                                           =

                                                                           =

                                                                           =

                                                                           =

                                                                           =

                                                                           =




      Hi Roberto,
      I understand your point and personally agree on M2M is quite
      different from web page model. On the architectural RESTful style,
      the method information tells the server what to do with data kept in
      the URI information.

      So strictly speaking, both NOTIFY and SUBSCRIBE are message types not
      methods!

      Adriano

      From: Robert Cragie [mailto:robert.cragie@gridmerge.com]
      Sent: venerd=EC 28 maggio 2010 11.53
      To: Adriano Pezzuto (apezzuto)
      Cc: Paul Duffy (paduffy); Zach Shelby; core
      Subject: Re: [core] Subscribe/Notify for CoAP

      I think the point here is that there are two levels we are
      considering.

      At the lowest (foundation) level, there are the transaction messages
      as described below. This provides a flexible mechanism for the
      application with regard to synchronicity and threading. This is
      important for the types of devices CoAP is being aimed at.

      Above that, the methods can be used according to the architectural
      style. So in this case, it is RESTful (COnstrained Restful
      Environments), which will naturally limit the number of methods and
      how transactions occur.

      The actual architecture using a combination of the methods and
      messages also depends on what is required at the application layer.
      Consider a typical client which wants to subscribe to a resource.
      That client controls the feed of data but needs a component which is
      capable of handling (possibly buffering) the data it receives through
      notifications. Is this a separate server? Or would we want to
      consider it part of an enhanced client model which is able to process
      feeds of data? These are the sort of models which have led to the
      myriad of solutions (GENA, Webhooks, long polling, pubsubhubbub,
      RESTMS etc.) based around HTTP which are all essentially ingenious
      ways of getting around the limitations imposed by HTTP and how it is
      processed for anything which deviates from the classic web page
      access model.

      I think the aim of CoAP should be clean from the word go with regard
      to supporting these more peer-to-peer transactions, where the client
      can exist on either entity and both entities can feed data to each
      other; typical in M2M applications.

      Robert


      Robert Cragie (Pacific Gas & Electric)


      Gridmerge Ltd.
      89 Greenfield Crescent,
      Wakefield, WF4 4WA, UK
      +44 1924 910888
      +1 415 513 0064
      http://www.gridmerge.com

      On 27/05/2010 7:08 PM, Adriano Pezzuto (apezzuto) wrote:
      Hi Robert,

      in my personal opinion, the option 1a) brings some sort of ambiguity
      to CoAP specs.

      My be my understatement of new CoAP specs is not so deep, but now we
      have 5 methods and 3 message types: request, response and notify.
      Which methods are allowed with which messages types?
      I suppose you have to use PUT/POST method with notify message for
      asynch data notification. How to make a subscribe? I suppose you
      would use a SUBSCRIBE method with request/response message or
      SUBSCRIBE with notify message? Also what about POST/DELETE methods in
      a notify message? They not make any sense..

      I think the choice is between: option 1) -> only CRUD methods and
      option 1b) -> CRUD + SUB/NOTIFY methods, keeping in mind
      cost/benefits of both solutions.

      Adriano

      From: Robert Cragie [mailto:robert.cragie@gridmerge.com]
      Sent: mercoled=EC 26 maggio 2010 20.09
      To: Adriano Pezzuto (apezzuto)
      Cc: Paul Duffy (paduffy); Zach Shelby; core
      Subject: Re: [core] Subscribe/Notify for CoAP

      Hi Adrian,

      I would also prefer to keep the protocol in CoAP asynchronous. You
      can always map an asynchronous protocol to a synchronous one but, as
      we see in HTTP, it always ends up as a kludge to do it the other way
      round. The efforts which have been gone to to make HTTP
      quasi-asynchronous via all the schemes mentioned below and many more
      besides (all non-interoperable of course) is testament to how
      important this is for M2M communication.

      So, back to Zach's list, I favor 1a) for the following reasons:

      Foundation level of messages:


            1. request/response can be asynchronous or synchronous messages
            (as there is a transaction ID in there)
            2. notify is an asynchronous message
      Derived methods:

      I think it makes sense to add a pub/sub model as a useful mechanism
      for M2M.

      So, looking at it the other way round: It will be entirely possible
      to translate whatever is currently built on HTTP to CoAP based on the
      above, with all its restrictions regarding synchronous and
      client/server transactions. What may be harder is to translate
      directly is a CoAP-based application to HTTP. So I guess the question
      is: Do we want to be hamstrung to synchronous client/server
      transactions as dictated by HTTP and provide a direct mapping to
      HTTP, then have to come up with similar kludges for asynchronous
      peer-to-peer transactions as has been done in numerous ways for HTTP,
      or do we want to define the protocol cleanly to start with and accept
      that some sort of transaction relaying/conversion would have to take
      place at a mapping node?

      Robert


      Robert Cragie (Pacific Gas & Electric)


      Gridmerge Ltd.
      89 Greenfield Crescent,
      Wakefield, WF4 4WA, UK
      +44 1924 910888
      +1 415 513 0064
      http://www.gridmerge.com

      On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote:
      Hi,
      it looks to me that CoAP should use an explicit sub/notify mechanism
      since this is the core of the machine-to-machine interaction model.
      HTTP suffers of this lack and we have seen a plethora of solutions to
      give an asynch taste to it. Webhooks and websockets are only the
      lasts of the list.
      As someone has already pointed out on this list, it is theoretically
      possible to describe sub/notify using only CRUD methods but it looks
      a little bit tricky and verbose.

      Now we have a chance to build from scratch a new protocol with and I
      think using explicit sub/notify methods with a clear and well defined
      semantic is the best option. It is easily understanding from every
      developer and will prevent to build other fanny solutions on top of
      the CoAP. HTTP does not have this well defined semantic and (for
      hundreds of other reasons also) it is not used as wide protocol for
      machine-to-machine communication.

      CoAP - as binary protocol - and with an explicit asynch model has a
      chance to be a really wide protocol for M2M communication not only
      for constrained environments.

      my 2 cents

      - adriano

      -----Original Message-----
      From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf
      Of Paul Duffy (paduffy)
      Sent: mercoled=EC 26 maggio 2010 0.47
      To: Zach Shelby
      Cc: core
      Subject: Re: [core] Subscribe/Notify for CoAP

      On 5/25/2010 6:41 PM, Zach Shelby wrote:


                  Hi,

                  On May 26, 2010, at 12:23 AM, Charles Palmer wrote:


                              Hi folks

                              It occurs to me that CoRE should be keeping a
                              close eye on ZigBee SE2.0 work, so that it is
                              as easy as possible for ZigBee SE to use CoRE
                              when ready. That suggests to me that we
                              should align with their subscribe/notify
                              process.


                  I am not sure I understand that. I mean, ZigBee SE2.0 is
                  defining an application specific subscribe/notify
                  mechanism for that purpose so far for HTTP. This uses
                  standard HTTP methods and some custom payload and REST
                  interfaces. CoAP Req/Res is already totally compatible
                  with SE2.0 in that respect, so alignment is already OK
                  there. Nothing stopping someone from using SE2.0 over
                  CoAP.

                  Specifying a native susbcription/notify into CoAP is
                  another matter. We can't adopt a solution specific to one
                  application as that won't solve the problems of other
                  applications nor general HTTP mapping at all (probably
                  would make it worse). It seems that for the near future
                  there will be a bunch of HTTP push mechanisms in use
                  without any clear standard appearing - or am I wrong
                  there?




      If COAP extends HTTP semantics with new subscription methods, it will

      not be possible to easily interchange HTTP/COAP, and translation
      gateways will become more complex to implement.



                  Zach


                              Regards - Charles


                              -----Original Message-----
                              From: core-bounces@ietf.org [
                              mailto:core-bounces@ietf.org] On Behalf Of
                              Paul Duffy
                              Sent: 25 May 2010 03:48
                              To: Zach Shelby
                              Cc: core
                              Subject: Re: [core] Subscribe/Notify for CoAP

                              Recommend something like #2, primarily to
                              avoid introducing non HTTP
                              method semantics, simplifying HTTP/COAP
                              translation.gateways, etc.


                              On 5/24/2010 11:49 AM, Zach Shelby wrote:

                                          (thread renamed)

                                          We have two different paths with
                                          regard to a subscribe/notify
                                          mechanism for CoAP:

                                          1. Use specific Subscription and
                                          Notify mechanisms for CoAP as
                                          HTTP really does not include this
                                          concept.
                                          1a) Notify as a message and
                                          SUBSCRIBE as a method. This is
                                          currently used in coap-01.
                                          1b) NOTIFY and SUBSCRIBE as
                                          methods. This was used in
                                          coap-00, but we had a good list
                                          discussion about this leading to
                                          a. In practice it doesn't make a
                                          big difference if notification is
                                          a message or method.

                                          2. Use an HTTP specific framework
                                          such as Webhooks, the ZigBee
                                          SE2.0 proposal or GENA.

                                          So far we have focused on 1 in
                                          the WG, and every now and again 2
                                          comes up. At least I am not
                                          convinced that we need to suffer
                                          the drawbacks of HTTP here.
                                          Anyways 2 does not help our
                                          mapping to HTTP in reality very
                                          much as there is no standard way
                                          of doing this over HTTP. Thus a
                                          CoAP-HTTP proxy may end up
                                          anyways translating between
                                          multiple HTTP frameworks
                                          depending on the application. So
                                          instead of doing a CoAP
                                          Notify/Subscribe to Webhooks
                                          mapping, you will could end up
                                          having to do a CoAP Webhooks to
                                          HTTP GENA mapping.



                              I don't understand this last para. If CoAP
                              sticks to the semantics of
                              the current HTTP methods, would this not
                              offer a fairly straightforward
                              translation to/from HTTP?



                                                      From what I have
                                                      heard so far 1 still
                                                      seems like a wise
                                                      choice, although I
                                                      need to look at
                                                      Webhooks more deeply.
                                                      In reality many
                                                      applications specify
                                                      their own way of
                                                      doing a push
                                                      interface using REST
                                                      methods and specific
                                                      payloads (ZigBee
                                                      SE2.0 is such an
                                                      example). That is
                                                      just fine, and might
                                                      be used instead of a
                                                      specific CoAP
                                                      notify/subscribe in
                                                      that case. So 1
                                                      doesn't prevent the
                                                      application using its
                                                      own mechanism, it
                                                      just provides a
                                                      native way for doing
                                                      push.

                                          What do people think?

                                          Zach

                                          On May 17, 2010, at 6:44 PM,
                                          matthieu.vial@fr.non.schneider-el=
ectric.com
                                           wrote:



                                                      Hi,

                                                      My comments about the
                                                      subscribe/notify
                                                      mechanism of Zigbee
                                                      IP.

                                                      Pros:
                                                      - Derived from the
                                                      webhooks concept
                                                      - If used by CORE it
                                                      will be easier to map
                                                      to HTTP because it
                                                      uses only CRUD verbs.
                                                      - The subscription
                                                      message is extendable
                                                      and could support
                                                      advanced options
                                                      (delays,
                                                      increment, ...)
                                                      - Only one listening
                                                      port whatever the
                                                      transport binding is.

                                                      Cons:
                                                      - No interoperability
                                                      without well known
                                                      URIs and a well
                                                      defined subscription
                                                      message format (Not
                                                      sure CoAP draft is
                                                      the right place to
                                                      specify this).
                                                      - XML/EXI is too
                                                      complex to be the
                                                      required format for
                                                      the default
                                                      subscription/notifica=
tion
 mechanism.
                                                      - The notification
                                                      should not require a
                                                      subsequent GET to
                                                      retrieve the content.
                                                      - Subresource
                                                      subscription is
                                                      redundant.

                                                      Hope this could help,
                                                      Matthieu


                                                      <graycol.gif>"Charles
                                                      Palmer"
                                                      <charles.palmer@onzo.=
com>





                                                      "Charles Palmer"
                                                      <charles.palmer@onzo.=
com>

                                                      Envoy=E9 par :
                                                      core-bounces@ietf.org
                                                      15/05/2010 14:06

                                                      <ecblank.gif>
                                                      A
                                                      <ecblank.gif>
                                                      "core"<core@ietf.org>
                                                      <ecblank.gif>
                                                      cc
                                                      <ecblank.gif>
                                                      <ecblank.gif>
                                                      Objet
                                                      <ecblank.gif>
                                                      Re: [core] Selecting
                                                      a WG document for
                                                      CoAP
                                                      <ecblank.gif>
                                                      <ecblank.gif>

                                                      Dear all

                                                      Those interested in
                                                      the subscribe/notify
                                                      discussion might like
                                                      to look
                                                      at the draft Smart
                                                      Energy Profile 2.0
                                                      Application Protocol
                                                      Specification. It is
                                                      available here:
                                                      http://zigbee.org/Mar=
kets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicApp

                                                      licationProfile.aspx

                                                      It manages
                                                      subscribe/notify by
                                                      using POST. This
                                                      seems to remove the
                                                      need
                                                      for SUBSCRIBE and
                                                      notify.

                                                      "Imagine a host A,
                                                      which exposes a
                                                      resource at http
                                                      {s}://A/resource and
                                                      a second host B,
                                                      which wishes to learn
                                                      of changes to this
                                                      resource. To
                                                      facilitate a
                                                      subscription/
                                                      notification
                                                      mechanism, A would
                                                      expose a
                                                      resource http
                                                      {s}://A/sub and B
                                                      would expose a
                                                      resource http
                                                      {s}://B/ntfy.
                                                      To subscribe to
                                                      notifications
                                                      regarding http
                                                      {s}://A/resource, B
                                                      would
                                                      send a POST to the
                                                      address http
                                                      {s}://A/sub/B
                                                      containing the URI of
                                                      the
                                                      resource of interest
                                                      (http
                                                      {s}://A/resource) and
                                                      the URI of B's
                                                      notification resource
                                                      (http{s}://B/ntfy).
                                                      Following this
                                                      subscription
                                                      step, should A wish
                                                      to notify B of a
                                                      change to the
                                                      resource addressed at
                                                      http{s}://A/resource,
                                                      A would send a POST
                                                      to the address
                                                      http{s}://B/ntfy
                                                      containing the URI of
                                                      the resource changed
                                                      (http
                                                      {s}://A/resource) and
                                                      the URI of A's
                                                      subscription resource
                                                      (http{s}://A/sub/B),
                                                      should A wish to
                                                      change its
                                                      subscription. The
                                                      host
                                                      B can then query the
                                                      resource (or not) at
                                                      its leisure."

                                                      Sleepy nodes are not
                                                      allowed to subscribe,
                                                      and must poll.

                                                      Regards - Charles
                                                      Palmer

                                                      -----Original
                                                      Message-----
                                                      From:
                                                      core-bounces@ietf.org
                                                      [
                                                      mailto:core-bounces@i=
etf.org
                                                      ] On Behalf Of
                                                      Angelo P. Castellani
                                                      Sent: 14 May 2010
                                                      13:14
                                                      To: Zach Shelby
                                                      Cc: core
                                                      Subject: Re: [core]
                                                      Selecting a WG
                                                      document for CoAP

                                                      Zach,

                                                      thanks for the
                                                      comments, but please
                                                      refer to my most
                                                      recent e-mail for
                                                      a more specific list
                                                      of technical issues
                                                      I'm pointing to.

                                                      I want to do only a
                                                      little integration to
                                                      what I've written
                                                      there.

                                                      In my very personal
                                                      opinion, to maximize
                                                      adherence with the
                                                      REST model
                                                      and minimize
                                                      implementation effort
                                                      SUBSCRIBE and NOTIFY
                                                      should be
                                                      mapped to methods (as
                                                      discussed many times
                                                      together...).

                                                      Uniform interface
                                                      principle (Fielding
                                                      PhD dissertation
                                                      Section 5.1.5,
                                                      "The central feature
                                                      that distinguishes
                                                      the REST
                                                      architectural style
                                                      [...]") states that
                                                      to simplify the
                                                      software
                                                      architecture,
                                                      resource
                                                      interfaces/interfaces
                                                      should be as general
                                                      as possible.

                                                      I agree with this
                                                      principle in this
                                                      specific case, mainly
                                                      because
                                                      handling a special
                                                      message type for
                                                      notify leads node
                                                      software design
                                                      to a more complex
                                                      architecture.

                                                      The reason is that
                                                      this new message type
                                                      requires special
                                                      handling and
                                                      introduces a
                                                      complexity in the
                                                      software
                                                      modularization.

                                                      Best,
                                                      Angelo

                                                      On Fri, May 14, 2010
                                                      at 13:06, Zach Shelby
                                                      <zach@sensinode.com>
                                                      wrote:


                                                                  Hi
                                                                  Angelo,

                                                                  On May
                                                                  13, 2010,
                                                                  at
                                                                  14:24 ,
                                                                  Angelo P.
                                                                  Castellani
 wrote:




   Dear C. Bormann, all,

   before deciding for the final direction, I've the following
   observations about draft-shelby-core-coap-01

   While I mostly share Zach's view of the protocol approach, and
   appreciate many aspects of the proposal, there are in my opinion


                                                      still


   some open issues that need to be at least discussed before the


                                                      current


   document can be selected.


                                                                  Of course
                                                                  there are
                                                                  plenty of
                                                                  open
                                                                  issues.
                                                                  Remember
                                                                  that
                                                                  working
                                                                  group


                                                      documents still
                                                      undertake as much
                                                      change and
                                                      improvement as the WG
                                                      wants, so by no means
                                                      is coap-01 set in
                                                      stone. I would expect
                                                      at least
                                                      5-10 more revisions
                                                      still along the way.
                                                      Already several of
                                                      your ideas
                                                      have been integrated
                                                      into coap-01, and
                                                      several more are
                                                      under
                                                      consideration, so it
                                                      is coming along.
                                                      Patience ;-)



   In particular, I would like to highlight the following:

   a) As it is now, it is not possible to have a straightforward
   translation of HTTP -> CoAP and viceversa: see
   http://www.ietf.org/mail-archive/web/core/current/msg00133.html (this
   impacts the scalability of the web service model too)


                                                                  In
                                                                  coap-01
                                                                  the
                                                                  Method
                                                                  names are
                                                                  now
                                                                  identical
                                                                  to HTTP
                                                                  methods.
                                                                  The


                                                      Req/Res interaction
                                                      is a direct
                                                      translation. The URI
                                                      hierarchy is
                                                      compatible, and the
                                                      URI binary code
                                                      format we are still
                                                      working on
                                                      obviously. The only
                                                      thing that takes some
                                                      state to translate is
                                                      Subscribe/Notify. But
                                                      note,
                                                      Subscribe/Notify
                                                      takes some state no
                                                      matter
                                                      how you do it, even
                                                      with HTTP-HTTP there
                                                      is no clean and easy
                                                      way to
                                                      handle subscriptions.



   b) Moreover, CoAP's implementation is not as simple as it should be.
   I've investigated the implementation and some design choices (as
   Options) are leading to very high program complexity (ROM) on a
   MSP430-based device.


                                                                  This we
                                                                  can
                                                                  definitely
 improve, and already made several optimizations



                                                      from -00 to -01. Here
                                                      I need some very
                                                      concrete proposals
                                                      though. Also
                                                      remember that many
                                                      things are optional,
                                                      for example
                                                      subscribe/notify is
                                                      not required if you
                                                      don't need it.



   c) Finally when comparing HTTP message size with CoAP message size,
   the resulting compression isn't as good as you may expect.

   Example:
   HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
   CoAP: 24 B with options parsing procedure requiring an added
   implementation complexity


                                                                  Right,
                                                                  that is
                                                                  not how
                                                                  it will
                                                                  work in
                                                                  practice.
                                                                  Working
                                                                  with a
                                                                  real


                                                      HTTP server that HTTP
                                                      header will be more
                                                      complex, and on the
                                                      CoAP side
                                                      you would chose
                                                      shorter URLs. The
                                                      biggest improvement
                                                      possible here is
                                                      from using binary
                                                      coded URLs of course.
                                                      We need to look at a
                                                      wider range
                                                      of interactions and
                                                      real HTTP headers as
                                                      well to check that we
                                                      are
                                                      efficient enough.



   Addressing all these points potentially leads to major technical
   modifications (especially point a) on the current draft, hence it is
   appropriate in my opinion to discuss these points before making the
   final decision.


                                                                  I am not
                                                                  sure what
                                                                  else you
                                                                  have in
                                                                  mind for
                                                                  a). If we
                                                                  just
                                                                  forget


                                                      about
                                                      Subscribe/Notify then
                                                      you are good to go.
                                                      But then you are also
                                                      not fulfilling the
                                                      charter or the
                                                      industry needs in
                                                      that respect.


                                                                  Thanks,
                                                                  Zach



   Best regards,

   Angelo P. Castellani


   On Mon, May 10, 2010 at 18:51, Carsten Bormann<cabo@tzi.org> wrote:


               The CORE WG has a milestone to select a WG document for CoAP
               in


                                                      April:


               http://datatracker.ietf.org/wg/core/charter/
               ...
               Apr 2010 Select WG document for basis of the CoAP protocol

               Of the various documents that have been contributed,


                                                      draft-shelby-core-coap
 has significant discussion, as well as the
                                                      largest number of
                                                      updates (including a
                                                      previous version that
                                                      was still
                                                      called
                                                      -6lowapp-coap).


               Today, another updated version of that draft was announced.
               See
               http://www.ietf.org/mail-archive/web/core/current/msg00138.h=
tml

               for the announcement and
               http://tools.ietf.org/html/draft-shelby-core-coap-01
               for the draft itself.

               However, as the authors say, there are still significant
               TODOs.

               Are we in a state yet where we can say whether this is the
               right


                                                      direction for the WG
                                                      to take?


               If yes, is it the right direction? Should we adopt it as a
               WG


                                                      document?


               If you don't think we can say yet, is there a set of
               technical


                                                      decisions you would
                                                      like the authors to
                                                      take with priority?


               Note that once a document has become a WG document, the
               authors act


                                                      as editors for the
                                                      working group, making
                                                      (and usually fleshing
                                                      out the
                                                      details of) any
                                                      change that the WG
                                                      decides it needs.


               If you think we can still improve the draft, this is not an
               obstacle


                                                      to making it a WG
                                                      document.


               But of course we shouldn't do that if we intend to reverse
               its


                                                      fundamental technical
                                                      direction.


               In order to stay roughly in sync with our milestones, we
               should


                                                      reach at a decision
                                                      on how to go forward
                                                      this week.


               Gruesse, Carsten

               =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F
               core mailing list
               core@ietf.org
               https://www.ietf.org/mailman/listinfo/core



   =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F
   core mailing list
   core@ietf.org
   https://www.ietf.org/mailman/listinfo/core


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




                                                      =5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F

                                                      core mailing list
                                                      core@ietf.org
                                                      https://www.ietf.org/=
mailman/listinfo/core


                                                      ---------------------=
-----------

                                                      Onzo is a limited
                                                      company number
                                                      06097997 registered
                                                      in England& Wales.
                                                      The
                                                      registered office is
                                                      6 Great Newport
                                                      Street, London, WC2H
                                                      7JB, United Kingdom.

                                                      This email message
                                                      may contain
                                                      confidential and/or
                                                      privileged
                                                      information, and
                                                      is intended solely
                                                      for the addressee(s).
                                                      If you have received
                                                      this email in
                                                      error, please notify
                                                      Onzo immediately.
                                                      Unauthorised copying,
                                                      disclosure or
                                                      distribution of the
                                                      material in this
                                                      email is forbidden.
                                                      ---------------------=
-----------


                                                      =5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F

                                                      core mailing list
                                                      core@ietf.org
                                                      https://www.ietf.org/=
mailman/listinfo/core


                                                      =5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F

                                                      This email has been
                                                      scanned by the
                                                      MessageLabs Email
                                                      Security System.
                                                      =5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F


                                                      =5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F

                                                      core mailing list
                                                      core@ietf.org
                                                      https://www.ietf.org/=
mailman/listinfo/core




                              =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F

                              core mailing list
                              core@ietf.org
                              https://www.ietf.org/mailman/listinfo/core

                              --------------------------------
                              Onzo is a limited company number 06097997
                              registered in England& Wales. The
                              registered office is 6 Great Newport Street,
                              London, WC2H 7JB, United Kingdom.

                              This email message may contain confidential
                              and/or privileged information, and
                              is intended solely for the addressee(s). If
                              you have received this email in
                              error, please notify Onzo immediately.
                              Unauthorised copying, disclosure or
                              distribution of the material in this email is
                              forbidden.
                              --------------------------------




      =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F
      core mailing list
      core@ietf.org
      https://www.ietf.org/mailman/listinfo/core
      =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F
      core mailing list
      core@ietf.org
      https://www.ietf.org/mailman/listinfo/core



      =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F

      This email has been scanned by the MessageLabs Email Security System.
      =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F
      =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F
      core mailing list
      core@ietf.org
      https://www.ietf.org/mailman/listinfo/core

--1__=4EBBFDA7DFBEBDC58f9e8a93df938690918c4EBBFDA7DFBEBDC5
Content-type: text/html; charset=ISO-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

<html><body bgcolor=3D"#FFFFFF">
<p>Hi Robert,<br>
<br>
Here is a complete scenario:<br>
<br>
The resource /event is a collection of events that occured in device A. <br>
Device B wants to be notified each time a new event has occured in A.<br>
<br>
One solution could be to subscribe when the method POST (thus a creation) i=
s acted upon /event.<br>
A would send a notify message with the URI of the new event (/event/1, /eve=
nt/2 ...).<br>
<br>
The second solution using the actual COAP specification is to define /event=
/last as an alias to the last created event.<br>
Device B would receive a notification each time /event/last has changed. <b=
r>
The definition of &quot;changed&quot; becomes tricky if 2 successive events=
 are identical. <br>
The content of /event/last is identical but it points to a different resour=
ce.<br>
Of course the etag could reflect that change.<br>
<br>
So what is the RESTfulest solution ?<br>
<br>
Matthieu<br>
<br>
<img width=3D"16" height=3D"16" src=3D"cid:2=5F=5F=3D4EBBFDA7DFBEBDC58@schn=
eider-electric.com" border=3D"0" alt=3D"Inactive hide details for Robert Cr=
agie &lt;robert.cragie@gridmerge.com&gt;">Robert Cragie &lt;robert.cragie@g=
ridmerge.com&gt;<br>
<br>
<br>
<br>
<br>

<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">
<tr valign=3D"top"><td style=3D"background-image:url(cid:3=5F=5F=3D4EBBFDA7=
DFBEBDC58@schneider-electric.com); background-repeat: no-repeat; " width=3D=
"40%">
<ul>
<ul>
<ul>
<ul><b><font size=3D"2">Robert Cragie &lt;robert.cragie@gridmerge.com&gt;</=
font></b><font size=3D"2"> </font>
<p><font size=3D"2">28/05/2010 14:08</font>
<table border=3D"1">
<tr valign=3D"top"><td width=3D"168" bgcolor=3D"#FFFFFF"><div align=3D"cent=
er"><font size=3D"2">Veuillez r=E9pondre =E0<br>
robert.cragie@gridmerge.com</font></div></td></tr>
</table>
</ul>
</ul>
</ul>
</ul>
</td><td width=3D"60%">
<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">
<tr valign=3D"top"><td width=3D"1%"><img width=3D"58" height=3D"1" src=3D"c=
id:4=5F=5F=3D4EBBFDA7DFBEBDC58@schneider-electric.com" border=3D"0" alt=3D"=
"><br>
<div align=3D"right"><font size=3D"2">A</font></div></td><td width=3D"100%"=
><img width=3D"1" height=3D"1" src=3D"cid:4=5F=5F=3D4EBBFDA7DFBEBDC58@schne=
ider-electric.com" border=3D"0" alt=3D""><br>
<font size=3D"2">Matthieu Vial/FR/Non/Schneider@Europe</font></td></tr>

<tr valign=3D"top"><td width=3D"1%"><img width=3D"58" height=3D"1" src=3D"c=
id:4=5F=5F=3D4EBBFDA7DFBEBDC58@schneider-electric.com" border=3D"0" alt=3D"=
"><br>
<div align=3D"right"><font size=3D"2">cc</font></div></td><td width=3D"100%=
"><img width=3D"1" height=3D"1" src=3D"cid:4=5F=5F=3D4EBBFDA7DFBEBDC58@schn=
eider-electric.com" border=3D"0" alt=3D""><br>
<font size=3D"2">&quot;Adriano Pezzuto (apezzuto)&quot; &lt;apezzuto@cisco.=
com&gt;, core &lt;core@ietf.org&gt;, core-bounces@ietf.org</font></td></tr>

<tr valign=3D"top"><td width=3D"1%"><img width=3D"58" height=3D"1" src=3D"c=
id:4=5F=5F=3D4EBBFDA7DFBEBDC58@schneider-electric.com" border=3D"0" alt=3D"=
"><br>
<div align=3D"right"><font size=3D"2">Objet</font></div></td><td width=3D"1=
00%"><img width=3D"1" height=3D"1" src=3D"cid:4=5F=5F=3D4EBBFDA7DFBEBDC58@s=
chneider-electric.com" border=3D"0" alt=3D""><br>
<font size=3D"2">Re: [core] Subscribe/Notify for CoAP</font></td></tr>
</table>

<table border=3D"0" cellspacing=3D"0" cellpadding=3D"0">
<tr valign=3D"top"><td width=3D"58"><img width=3D"1" height=3D"1" src=3D"ci=
d:4=5F=5F=3D4EBBFDA7DFBEBDC58@schneider-electric.com" border=3D"0" alt=3D""=
></td><td width=3D"336"><img width=3D"1" height=3D"1" src=3D"cid:4=5F=5F=3D=
4EBBFDA7DFBEBDC58@schneider-electric.com" border=3D"0" alt=3D""></td></tr>
</table>
</td></tr>
</table>
<br>
<font size=3D"4">Hi Matthieu,<br>
<br>
I am not sure what you mean here. Do you mean that some other client can su=
bscribe to be notified whenever some method is acted upon for a particular =
resource? Can you describe the transaction model?<br>
<br>
Robert</font>
<p><font size=3D"4" face=3D"Verdana">Robert Cragie (Pacific Gas &amp; Elect=
ric)</font>
<p><font size=3D"2" face=3D"Verdana">Gridmerge Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 1924 910888<br>
+1 415 513 0064</font><u><font size=3D"2" color=3D"#0000FF" face=3D"Verdana=
"><br>
</font></u><a href=3D"http://www.gridmerge.com/"><u><font size=3D"2" color=
=3D"#0000FF" face=3D"Verdana">http://www.gridmerge.com</font></u></a>
<p><font size=3D"4"><br>
On 28/05/2010 12:51 PM, </font><a href=3D"mailto:matthieu.vial@fr.non.schne=
ider-electric.com"><u><font size=3D"4" color=3D"#0000FF">matthieu.vial@fr.n=
on.schneider-electric.com</font></u></a><font size=3D"4"> wrote: </font>
<ul>
<ul><font size=3D"5" color=3D"#1F497D" face=3D"Calibri">&gt; So strictly sp=
eaking, both NOTIFY and SUBSCRIBE are message types not  methods!</font><fo=
nt size=3D"2" face=3D"Verdana"><br>
<br>
SUBSCRIBE can be just an asynchronous GET on update then I think it is a me=
thod and NOTIFY is an asynchronous response so a message.<br>
But if we want to have selective notifications when a resource is created, =
updated or deleted then I think you're right NOTIFY and SUBSCRIBE are messa=
ges.<br>
<br>
Does that make sense ?<br>
<br>
Matthieu<br>
<br>
</font><img src=3D"cid:2=5F=5F=3D4EBBFDA7DFBEBDC58@schneider-electric.com" =
width=3D"16" height=3D"16" alt=3D"Inactive hide details for &quot;Adriano P=
ezzuto (apezzuto)&quot; &lt;apezzuto@cisco.com&gt;"><font size=3D"2" face=
=3D"Verdana">&quot;Adriano Pezzuto (apezzuto)&quot; </font><a href=3D"mailt=
o:apezzuto@cisco.com"><u><font size=3D"2" color=3D"#0000FF" face=3D"Verdana=
">&lt;apezzuto@cisco.com&gt;</font></u></a><font size=3D"2" face=3D"Verdana=
"><br>
<br>
<br>
<br>
</font>
<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">
<tr valign=3D"top"><td width=3D"55%">
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><b>&quot;Adriano Pezzuto (apezzuto)&quot; </b><a href=3D"mailto:apezzut=
o@cisco.com"><b><u><font color=3D"#0000FF">&lt;apezzuto@cisco.com&gt;</font=
></u></b></a> <br>
Envoy=E9 par : <a href=3D"mailto:core-bounces@ietf.org"><u><font color=3D"#=
0000FF">core-bounces@ietf.org</font></u></a><font size=3D"4"> </font>
<p><font face=3D"Verdana">28/05/2010 12:50</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</td><td width=3D"45%">
<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">
<tr valign=3D"top"><td width=3D"23%"><img src=3D"cid:4=5F=5F=3D4EBBFDA7DFBE=
BDC58@schneider-electric.com" width=3D"58" height=3D"1"><div align=3D"right=
">A</div></td><td width=3D"77%"><img src=3D"cid:4=5F=5F=3D4EBBFDA7DFBEBDC58=
@schneider-electric.com" width=3D"1" height=3D"1"><u><font color=3D"#0000FF=
"><br>
</font></u><a href=3D"mailto:robert.cragie@gridmerge.com"><u><font color=3D=
"#0000FF">&lt;robert.cragie@gridmerge.com&gt;</font></u></a></td></tr>

<tr valign=3D"top"><td width=3D"23%"><img src=3D"cid:4=5F=5F=3D4EBBFDA7DFBE=
BDC58@schneider-electric.com" width=3D"58" height=3D"1"><div align=3D"right=
">cc</div></td><td width=3D"77%"><img src=3D"cid:4=5F=5F=3D4EBBFDA7DFBEBDC5=
8@schneider-electric.com" width=3D"1" height=3D"1"><br>
core <a href=3D"mailto:core@ietf.org"><u><font color=3D"#0000FF">&lt;core@i=
etf.org&gt;</font></u></a></td></tr>

<tr valign=3D"top"><td width=3D"23%"><img src=3D"cid:4=5F=5F=3D4EBBFDA7DFBE=
BDC58@schneider-electric.com" width=3D"58" height=3D"1"><div align=3D"right=
">Objet</div></td><td width=3D"77%"><img src=3D"cid:4=5F=5F=3D4EBBFDA7DFBEB=
DC58@schneider-electric.com" width=3D"1" height=3D"1"><br>
Re: [core] Subscribe/Notify for CoAP</td></tr>
</table>

<table width=3D"100%" border=3D"0" cellspacing=3D"0" cellpadding=3D"0">
<tr valign=3D"top"><td width=3D"15%"><img src=3D"cid:4=5F=5F=3D4EBBFDA7DFBE=
BDC58@schneider-electric.com" width=3D"1" height=3D"1"></td><td width=3D"85=
%"><img src=3D"cid:4=5F=5F=3D4EBBFDA7DFBEBDC58@schneider-electric.com" widt=
h=3D"1" height=3D"1"></td></tr>
</table>
</td></tr>
</table>
<font size=3D"5" color=3D"#1F497D" face=3D"Calibri"><br>
Hi Roberto,<br>
I understand your point and personally agree on M2M is quite different from=
 web page model. On the architectural RESTful style, the method information=
 tells the server what to do with data kept in the URI information.</font><=
font size=3D"4"><br>
</font><font size=3D"5" color=3D"#1F497D" face=3D"Calibri"><br>
So strictly speaking, both NOTIFY and SUBSCRIBE are message types not  meth=
ods!</font><font size=3D"4"><br>
</font><font size=3D"5" color=3D"#1F497D" face=3D"Calibri"><br>
Adriano </font><font size=3D"4"><br>
</font><b><font size=3D"5" face=3D"Tahoma"><br>
From:</font></b><font size=3D"5" face=3D"Tahoma"> Robert Cragie [</font><a =
href=3D"mailto:robert.cragie@gridmerge.com"><u><font size=3D"5" color=3D"#0=
000FF" face=3D"Tahoma">mailto:robert.cragie@gridmerge.com</font></u></a><fo=
nt size=3D"5" face=3D"Tahoma">] </font><b><font size=3D"5" face=3D"Tahoma">=
<br>
Sent:</font></b><font size=3D"5" face=3D"Tahoma"> venerd=EC 28 maggio 2010 =
11.53</font><b><font size=3D"5" face=3D"Tahoma"><br>
To:</font></b><font size=3D"5" face=3D"Tahoma"> Adriano Pezzuto (apezzuto)<=
/font><b><font size=3D"5" face=3D"Tahoma"><br>
Cc:</font></b><font size=3D"5" face=3D"Tahoma"> Paul Duffy (paduffy); Zach =
Shelby; core</font><b><font size=3D"5" face=3D"Tahoma"><br>
Subject:</font></b><font size=3D"5" face=3D"Tahoma"> Re: [core] Subscribe/N=
otify for CoAP</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Times New Roman"><br>
I think the point here is that there are two levels we are considering.<br>
<br>
At the lowest (foundation) level, there are the transaction messages as des=
cribed below. This provides a flexible mechanism for the application with r=
egard to synchronicity and threading. This is important for the types of de=
vices CoAP is being aimed at.<br>
<br>
Above that, the methods can be used according to the architectural style. S=
o in this case, it is RESTful (COnstrained Restful Environments), which wil=
l naturally limit the number of methods and how transactions occur.<br>
<br>
The actual architecture using a combination of the methods and messages als=
o depends on what is required at the application layer. Consider a typical =
client which wants to subscribe to a resource. That client controls the fee=
d of data but needs a component which is capable of handling (possibly buff=
ering) the data it receives through notifications. Is this a separate serve=
r? Or would we want to consider it part of an enhanced client model which i=
s able to process feeds of data? These are the sort of models which have le=
d to the myriad of solutions (GENA, Webhooks, long polling, pubsubhubbub, R=
ESTMS etc.) based around HTTP which are all essentially ingenious ways of g=
etting around the limitations imposed by HTTP and how it is processed for a=
nything which deviates from the classic web page access model.<br>
<br>
I think the aim of CoAP should be clean from the word go with regard to sup=
porting these more peer-to-peer transactions, where the client can exist on=
 either entity and both entities can feed data to each other; typical in M2=
M applications.<br>
<br>
Robert</font><font size=3D"4"> </font>
<p><font size=3D"5" face=3D"Verdana">Robert Cragie (Pacific Gas &amp; Elect=
ric)</font><font size=3D"2" face=3D"Verdana"> </font>
<p><font size=3D"5" face=3D"Verdana">Gridmerge Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 1924 910888<br>
+1 415 513 0064</font><u><font size=3D"2" color=3D"#0000FF" face=3D"Verdana=
"><br>
</font></u><a href=3D"http://www.gridmerge.com/"><u><font size=3D"5" color=
=3D"#0000FF" face=3D"Verdana">http://www.gridmerge.com</font></u></a><font =
size=3D"5" face=3D"Times New Roman"><br>
<br>
On 27/05/2010 7:08 PM, Adriano Pezzuto (apezzuto) wrote: </font><font size=
=3D"5" color=3D"#1F497D" face=3D"Calibri"><br>
Hi Robert,</font><font size=3D"2" face=3D"Verdana"><br>
</font><font size=3D"5" color=3D"#1F497D" face=3D"Calibri"><br>
in my personal opinion, the option 1a) brings some sort of ambiguity to CoA=
P specs.</font><font size=3D"2" face=3D"Verdana"><br>
</font><font size=3D"5" color=3D"#1F497D" face=3D"Calibri"><br>
My be my understatement of new CoAP specs is not so deep, but now we have 5=
 methods and 3 message types: request, response and notify. Which methods a=
re allowed with which messages types?<br>
I suppose you have to use PUT/POST method with notify message for asynch da=
ta notification. How to make a subscribe? I suppose you would use a SUBSCRI=
BE method with request/response message or SUBSCRIBE with notify message? A=
lso what about POST/DELETE methods in a notify message? They not make any s=
ense..</font><font size=3D"2" face=3D"Verdana"><br>
</font><font size=3D"5" color=3D"#1F497D" face=3D"Calibri"><br>
I think the choice is between: option 1) -&gt; only CRUD methods and option=
 1b) -&gt; CRUD + SUB/NOTIFY methods, keeping in mind cost/benefits of both=
 solutions.</font><font size=3D"2" face=3D"Verdana"><br>
</font><font size=3D"5" color=3D"#1F497D" face=3D"Calibri"><br>
Adriano</font><font size=3D"2" face=3D"Verdana"><br>
</font><b><font size=3D"5" face=3D"Tahoma"><br>
From:</font></b><font size=3D"5" face=3D"Tahoma"> Robert Cragie [</font><a =
href=3D"mailto:robert.cragie@gridmerge.com"><u><font size=3D"5" color=3D"#0=
000FF" face=3D"Tahoma">mailto:robert.cragie@gridmerge.com</font></u></a><fo=
nt size=3D"5" face=3D"Tahoma">] </font><b><font size=3D"5" face=3D"Tahoma">=
<br>
Sent:</font></b><font size=3D"5" face=3D"Tahoma"> mercoled=EC 26 maggio 201=
0 20.09</font><b><font size=3D"5" face=3D"Tahoma"><br>
To:</font></b><font size=3D"5" face=3D"Tahoma"> Adriano Pezzuto (apezzuto)<=
/font><b><font size=3D"5" face=3D"Tahoma"><br>
Cc:</font></b><font size=3D"5" face=3D"Tahoma"> Paul Duffy (paduffy); Zach =
Shelby; core</font><b><font size=3D"5" face=3D"Tahoma"><br>
Subject:</font></b><font size=3D"5" face=3D"Tahoma"> Re: [core] Subscribe/N=
otify for CoAP</font><font size=3D"2" face=3D"Verdana"><br>
</font><font size=3D"5" face=3D"Times New Roman"><br>
Hi Adrian,<br>
<br>
I would also prefer to keep the protocol in CoAP asynchronous. You can alwa=
ys map an asynchronous protocol to a synchronous one but, as we see in HTTP=
, it always ends up as a kludge to do it the other way round. The efforts w=
hich have been gone to to make HTTP quasi-asynchronous via all the schemes =
mentioned below and many more besides (all non-interoperable of course) is =
testament to how important this is for M2M communication.<br>
<br>
So, back to Zach's list, I favor 1a) for the following reasons:<br>
<br>
Foundation level of messages:</font><font size=3D"2" face=3D"Verdana"> </fo=
nt>
<ul>
<ul><font size=3D"4">1. </font><font size=3D"5" face=3D"Times New Roman">re=
quest/response can be asynchronous or synchronous messages (as there is a t=
ransaction ID in there)</font><font size=3D"4"><br>
2. </font><font size=3D"5" face=3D"Times New Roman">notify is an asynchrono=
us message</font><font size=3D"4"> </font></ul>
</ul>
<font size=3D"5" face=3D"Times New Roman">Derived methods:<br>
<br>
I think it makes sense to add a pub/sub model as a useful mechanism for M2M=
.<br>
<br>
So, looking at it the other way round: It will be entirely possible to tran=
slate whatever is currently built on HTTP to CoAP based on the above, with =
all its restrictions regarding synchronous and client/server transactions. =
What may be harder is to translate directly is a CoAP-based application to =
HTTP. So I guess the question is: Do we want to be hamstrung to synchronous=
 client/server transactions as dictated by HTTP and provide a direct mappin=
g to HTTP, then have to come up with similar kludges for asynchronous peer-=
to-peer transactions as has been done in numerous ways for HTTP, or do we w=
ant to define the protocol cleanly to start with and accept that some sort =
of transaction relaying/conversion would have to take place at a mapping no=
de?<br>
<br>
Robert</font><font size=3D"4"> </font>
<p><font size=3D"5" face=3D"Verdana">Robert Cragie (Pacific Gas &amp; Elect=
ric)</font><font size=3D"2" face=3D"Verdana"> </font>
<p><font size=3D"5" face=3D"Verdana">Gridmerge Ltd.<br>
89 Greenfield Crescent,<br>
Wakefield, WF4 4WA, UK<br>
+44 1924 910888<br>
+1 415 513 0064</font><u><font size=3D"2" color=3D"#0000FF" face=3D"Verdana=
"><br>
</font></u><a href=3D"http://www.gridmerge.com/"><u><font size=3D"5" color=
=3D"#0000FF" face=3D"Verdana">http://www.gridmerge.com</font></u></a><font =
size=3D"5" face=3D"Times New Roman"><br>
<br>
On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote: </font><font size=
=3D"5" face=3D"Courier New"><br>
Hi,<br>
it looks to me that CoAP should use an explicit sub/notify mechanism since =
this is the core of the machine-to-machine interaction model.<br>
HTTP suffers of this lack and we have seen a plethora of solutions to give =
an asynch taste to it. Webhooks and websockets are only the lasts of the li=
st.<br>
As someone has already pointed out on this list, it is theoretically possib=
le to describe sub/notify using only CRUD methods but it looks a little bit=
 tricky and verbose.</font><font size=3D"2" face=3D"Verdana"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Now we have a chance to build from scratch a new protocol with and I think =
using explicit sub/notify methods with a clear and well defined semantic is=
 the best option. It is easily understanding from every developer and will =
prevent to build other fanny solutions on top of the CoAP. HTTP does not ha=
ve this well defined semantic and (for hundreds of other reasons also) it i=
s not used as wide protocol for machine-to-machine communication.</font><fo=
nt size=3D"2" face=3D"Verdana"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
CoAP - as binary protocol - and with an explicit asynch model has a chance =
to be a really wide protocol for M2M communication not only for constrained=
 environments.</font><font size=3D"2" face=3D"Verdana"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
my 2 cents</font><font size=3D"2" face=3D"Verdana"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
- adriano</font><font size=3D"2" face=3D"Verdana"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
-----Original Message-----<br>
From: </font><a href=3D"mailto:core-bounces@ietf.org"><u><font size=3D"5" c=
olor=3D"#0000FF" face=3D"Courier New">core-bounces@ietf.org</font></u></a><=
font size=3D"5" face=3D"Courier New"> [</font><a href=3D"mailto:core-bounce=
s@ietf.org"><u><font size=3D"5" color=3D"#0000FF" face=3D"Courier New">mail=
to:core-bounces@ietf.org</font></u></a><font size=3D"5" face=3D"Courier New=
">] On Behalf Of Paul Duffy (paduffy)<br>
Sent: mercoled=EC 26 maggio 2010 0.47<br>
To: Zach Shelby<br>
Cc: core<br>
Subject: Re: [core] Subscribe/Notify for CoAP</font><font size=3D"2" face=
=3D"Verdana"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
On 5/25/2010 6:41 PM, Zach Shelby wrote:</font>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Hi,</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
On May 26, 2010, at 12:23 AM, Charles Palmer wrote:</font><font size=3D"4">=
<br>
<br>
</font>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Hi folks</font><font size=3D"4"><=
br>
</font><font size=3D"5" face=3D"Courier New"><br>
It occurs to me that CoRE should be keeping a close eye on ZigBee SE2.0 wor=
k, so that it is as easy as possible for ZigBee SE to use CoRE when ready. =
That suggests to me that we should align with their subscribe/notify proces=
s.</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">I am not sure I understand that. I me=
an, ZigBee SE2.0 is defining an application specific subscribe/notify mecha=
nism for that purpose so far for HTTP. This uses standard HTTP methods and =
some custom payload and REST interfaces. CoAP Req/Res is already totally co=
mpatible with SE2.0 in that respect, so alignment is already OK there. Noth=
ing stopping someone from using SE2.0 over CoAP.</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Specifying a native susbcription/notify into CoAP is another matter. We can=
't adopt a solution specific to one application as that won't solve the pro=
blems of other applications nor general HTTP mapping at all (probably would=
 make it worse). It seems that for the near future there will be a bunch of=
 HTTP push mechanisms in use without any clear standard appearing - or am I=
 wrong there?</font><font size=3D"4"><br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"4"><br>
<br>
</font><font size=3D"5" face=3D"Courier New"><br>
If COAP extends HTTP semantics with new subscription methods, it will <br>
not be possible to easily interchange HTTP/COAP, and translation <br>
gateways will become more complex to implement.</font><font size=3D"4"><br>
<br>
<br>
</font>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Zach</font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Regards - Charles</font><font siz=
e=3D"4"><br>
<br>
</font><font size=3D"5" face=3D"Courier New"><br>
-----Original Message-----<br>
From: </font><a href=3D"mailto:core-bounces@ietf.org"><u><font size=3D"5" c=
olor=3D"#0000FF" face=3D"Courier New">core-bounces@ietf.org</font></u></a><=
font size=3D"5" face=3D"Courier New"> [</font><a href=3D"mailto:core-bounce=
s@ietf.org"><u><font size=3D"5" color=3D"#0000FF" face=3D"Courier New">mail=
to:core-bounces@ietf.org</font></u></a><font size=3D"5" face=3D"Courier New=
">] On Behalf Of Paul Duffy<br>
Sent: 25 May 2010 03:48<br>
To: Zach Shelby<br>
Cc: core<br>
Subject: Re: [core] Subscribe/Notify for CoAP</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Recommend something like #2, primarily to avoid introducing non HTTP<br>
method semantics, simplifying HTTP/COAP translation.gateways, etc.</font><f=
ont size=3D"4"><br>
<br>
</font><font size=3D"5" face=3D"Courier New"><br>
On 5/24/2010 11:49 AM, Zach Shelby wrote:</font><font size=3D"4"><br>
</font>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">(thread renamed)</font><font size=
=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
We have two different paths with regard to a subscribe/notify mechanism for=
 CoAP:</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
1. Use specific Subscription and Notify mechanisms for CoAP as HTTP really =
does not include this concept.<br>
1a) Notify as a message and SUBSCRIBE as a method. This is currently used i=
n coap-01.<br>
1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but we had a=
 good list discussion about this leading to a. In practice it doesn't make =
a big difference if notification is a message or method.</font><font size=
=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0 propos=
al or GENA.</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
So far we have focused on 1 in the WG, and every now and again 2 comes up. =
At least I am not convinced that we need to suffer the drawbacks of HTTP he=
re. Anyways 2 does not help our mapping to HTTP in reality very much as the=
re is no standard way of doing this over HTTP. Thus a CoAP-HTTP proxy may e=
nd up anyways translating between multiple HTTP frameworks depending on the=
 application. So instead of doing a CoAP Notify/Subscribe to Webhooks mappi=
ng, you will could end up having to do a CoAP Webhooks to HTTP GENA mapping=
.</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New"><br>
I don't understand this last para. If CoAP sticks to the semantics of<br>
the current HTTP methods, would this not offer a fairly straightforward<br>
translation to/from HTTP?</font><font size=3D"4"><br>
<br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">From what I have heard so far 1 s=
till seems like a wise choice, although I need to look at Webhooks more dee=
ply. In reality many applications specify their own way of doing a push int=
erface using REST methods and specific payloads (ZigBee SE2.0 is such an ex=
ample). That is just fine, and might be used instead of a specific CoAP not=
ify/subscribe in that case. So 1 doesn't prevent the application using its =
own mechanism, it just provides a native way for doing push.</font><font si=
ze=3D"4"><br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">What do people think?</font><font siz=
e=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Zach</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
On May 17, 2010, at 6:44 PM, </font><a href=3D"mailto:matthieu.vial@fr.non.=
schneider-electric.com"><u><font size=3D"5" color=3D"#0000FF" face=3D"Couri=
er New">matthieu.vial@fr.non.schneider-electric.com</font></u></a><font siz=
e=3D"5" face=3D"Courier New"> wrote:</font><font size=3D"4"><br>
<br>
<br>
</font>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Hi,</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
My comments about the subscribe/notify mechanism of Zigbee IP.</font><font =
size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Pros:<br>
- Derived from the webhooks concept<br>
- If used by CORE it will be easier to map to HTTP because it uses only CRU=
D verbs.<br>
- The subscription message is extendable and could support advanced options=
 (delays, increment, ...)<br>
- Only one listening port whatever the transport binding is.</font><font si=
ze=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Cons:<br>
- No interoperability without well known URIs and a well defined subscripti=
on message format (Not sure CoAP draft is the right place to specify this).=
<br>
- XML/EXI is too complex to be the required format for the default subscrip=
tion/notification mechanism.<br>
- The notification should not require a subsequent GET to retrieve the cont=
ent.<br>
- Subresource subscription is redundant.</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Hope this could help,<br>
Matthieu</font><font size=3D"4"><br>
<br>
</font><font size=3D"5" face=3D"Courier New"><br>
&lt;graycol.gif&gt;&quot;Charles Palmer&quot;</font><a href=3D"mailto:charl=
es.palmer@onzo.com"><u><font size=3D"5" color=3D"#0000FF" face=3D"Courier N=
ew">&lt;charles.palmer@onzo.com&gt;</font></u></a><font size=3D"4"><br>
<br>
<br>
<br>
</font><font size=3D"5" face=3D"Courier New"><br>
&quot;Charles Palmer&quot;</font><a href=3D"mailto:charles.palmer@onzo.com"=
><u><font size=3D"5" color=3D"#0000FF" face=3D"Courier New">&lt;charles.pal=
mer@onzo.com&gt;</font></u></a><font size=3D"5" face=3D"Courier New"><br>
Envoy=E9 par : </font><a href=3D"mailto:core-bounces@ietf.org"><u><font siz=
e=3D"5" color=3D"#0000FF" face=3D"Courier New">core-bounces@ietf.org</font>=
</u></a><font size=3D"5" face=3D"Courier New"><br>
15/05/2010 14:06</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
&lt;ecblank.gif&gt;<br>
A<br>
&lt;ecblank.gif&gt;<br>
&quot;core&quot;</font><a href=3D"mailto:core@ietf.org"><u><font size=3D"5"=
 color=3D"#0000FF" face=3D"Courier New">&lt;core@ietf.org&gt;</font></u></a=
><font size=3D"5" face=3D"Courier New"><br>
&lt;ecblank.gif&gt;<br>
cc<br>
&lt;ecblank.gif&gt;<br>
&lt;ecblank.gif&gt;<br>
Objet<br>
&lt;ecblank.gif&gt;<br>
Re: [core] Selecting a WG document for CoAP<br>
&lt;ecblank.gif&gt; &lt;ecblank.gif&gt;</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Dear all</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Those interested in the subscribe/notify discussion might like to look<br>
at the draft Smart Energy Profile 2.0 Application Protocol<br>
Specification. It is available here:</font><u><font size=3D"4" color=3D"#00=
00FF"><br>
</font></u><a href=3D"http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSma=
rtEnergy20PublicApp"><u><font size=3D"5" color=3D"#0000FF" face=3D"Courier =
New">http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicA=
pp</font></u></a><font size=3D"5" face=3D"Courier New"><br>
licationProfile.aspx</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
It manages subscribe/notify by using POST. This seems to remove the need<br>
for SUBSCRIBE and notify.</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
&quot;Imagine a host A, which exposes a resource at http{s}://A/resource an=
d<br>
a second host B, which wishes to learn of changes to this resource. To<br>
facilitate a subscription/ notification mechanism, A would expose a<br>
resource http{s}://A/sub and B would expose a resource http{s}://B/ntfy.<br>
To subscribe to notifications regarding http{s}://A/resource, B would<br>
send a POST to the address http{s}://A/sub/B containing the URI of the<br>
resource of interest (http{s}://A/resource) and the URI of B's<br>
notification resource (http{s}://B/ntfy). Following this subscription<br>
step, should A wish to notify B of a change to the resource addressed at<br>
http{s}://A/resource, A would send a POST to the address<br>
http{s}://B/ntfy containing the URI of the resource changed<br>
(http{s}://A/resource) and the URI of A's subscription resource<br>
(http{s}://A/sub/B), should A wish to change its subscription. The host<br>
B can then query the resource (or not) at its leisure.&quot;</font><font si=
ze=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Sleepy nodes are not allowed to subscribe, and must poll.</font><font size=
=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Regards - Charles Palmer</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
-----Original Message-----<br>
From: </font><a href=3D"mailto:core-bounces@ietf.org"><u><font size=3D"5" c=
olor=3D"#0000FF" face=3D"Courier New">core-bounces@ietf.org</font></u></a><=
font size=3D"5" face=3D"Courier New"> [</font><a href=3D"mailto:core-bounce=
s@ietf.org"><u><font size=3D"5" color=3D"#0000FF" face=3D"Courier New">mail=
to:core-bounces@ietf.org</font></u></a><font size=3D"5" face=3D"Courier New=
">] On Behalf Of<br>
Angelo P. Castellani<br>
Sent: 14 May 2010 13:14<br>
To: Zach Shelby<br>
Cc: core<br>
Subject: Re: [core] Selecting a WG document for CoAP</font><font size=3D"4"=
><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Zach,</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
thanks for the comments, but please refer to my most recent e-mail for<br>
a more specific list of technical issues I'm pointing to.</font><font size=
=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
I want to do only a little integration to what I've written there.</font><f=
ont size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
In my very personal opinion, to maximize adherence with the REST model<br>
and minimize implementation effort SUBSCRIBE and NOTIFY should be<br>
mapped to methods (as discussed many times together...).</font><font size=
=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Uniform interface principle (Fielding PhD dissertation Section 5.1.5,<br>
&quot;The central feature that distinguishes the REST architectural style<b=
r>
[...]&quot;) states that to simplify the software architecture, resource<br>
interfaces/interfaces should be as general as possible.</font><font size=3D=
"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
I agree with this principle in this specific case, mainly because<br>
handling a special message type for notify leads node software design<br>
to a more complex architecture.</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
The reason is that this new message type requires special handling and<br>
introduces a complexity in the software modularization.</font><font size=3D=
"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Best,<br>
Angelo</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
On Fri, May 14, 2010 at 13:06, Zach Shelby</font><a href=3D"mailto:zach@sen=
sinode.com"><u><font size=3D"5" color=3D"#0000FF" face=3D"Courier New">&lt;=
zach@sensinode.com&gt;</font></u></a><font size=3D"5" face=3D"Courier New">=
 wrote:</font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Hi Angelo,</font><font size=3D"4"=
><br>
</font><font size=3D"5" face=3D"Courier New"><br>
On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:</font><font size=3D=
"4"><br>
<br>
<br>
</font>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Dear C. Bormann, all,</font><font=
 size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
before deciding for the final direction, I've the following<br>
observations about draft-shelby-core-coap-01</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
While I mostly share Zach's view of the protocol approach, and<br>
appreciate many aspects of the proposal, there are in my opinion</font><fon=
t size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">still</font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">some open issues that need to be =
at least discussed before the</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">current</font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">document can be selected.</font><=
font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">Of course there are plenty of open is=
sues. Remember that working group</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">documents still undertake as much cha=
nge and improvement as the WG<br>
wants, so by no means is coap-01 set in stone. I would expect at least<br>
5-10 more revisions still along the way. Already several of your ideas<br>
have been integrated into coap-01, and several more are under<br>
consideration, so it is coming along. Patience ;-)</font><font size=3D"4"><=
br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">In particular, I would like to hi=
ghlight the following:</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
a) As it is now, it is not possible to have a straightforward<br>
translation of HTTP -&gt; CoAP and viceversa: see</font><u><font size=3D"4"=
 color=3D"#0000FF"><br>
</font></u><a href=3D"http://www.ietf.org/mail-archive/web/core/current/msg=
00133.html"><u><font size=3D"5" color=3D"#0000FF" face=3D"Courier New">http=
://www.ietf.org/mail-archive/web/core/current/msg00133.html</font></u></a><=
font size=3D"5" face=3D"Courier New"> (this<br>
impacts the scalability of the web service model too)</font><font size=3D"4=
"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">In coap-01 the Method names are now i=
dentical to HTTP methods. The</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">Req/Res interaction is a direct trans=
lation. The URI hierarchy is<br>
compatible, and the URI binary code format we are still working on<br>
obviously. The only thing that takes some state to translate is<br>
Subscribe/Notify. But note, Subscribe/Notify takes some state no matter<br>
how you do it, even with HTTP-HTTP there is no clean and easy way to<br>
handle subscriptions.</font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">b) Moreover, CoAP's implementatio=
n is not as simple as it should be.<br>
I've investigated the implementation and some design choices (as<br>
Options) are leading to very high program complexity (ROM) on a<br>
MSP430-based device.</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">This we can definitely improve, and a=
lready made several optimizations</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">from -00 to -01. Here I need some ver=
y concrete proposals though. Also<br>
remember that many things are optional, for example subscribe/notify is<br>
not required if you don't need it.</font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">c) Finally when comparing HTTP me=
ssage size with CoAP message size,<br>
the resulting compression isn't as good as you may expect.</font><font size=
=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Example:<br>
HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B<br>
CoAP: 24 B with options parsing procedure requiring an added<br>
implementation complexity</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">Right, that is not how it will work i=
n practice. Working with a real</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">HTTP server that HTTP header will be =
more complex, and on the CoAP side<br>
you would chose shorter URLs. The biggest improvement possible here is<br>
from using binary coded URLs of course. We need to look at a wider range<br>
of interactions and real HTTP headers as well to check that we are<br>
efficient enough.</font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Addressing all these points poten=
tially leads to major technical<br>
modifications (especially point a) on the current draft, hence it is<br>
appropriate in my opinion to discuss these points before making the<br>
final decision.</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">I am not sure what else you have in m=
ind for a). If we just forget</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">about Subscribe/Notify then you are g=
ood to go. But then you are also<br>
not fulfilling the charter or the industry needs in that respect.</font><fo=
nt size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Thanks,<br>
Zach</font><font size=3D"4"><br>
<br>
<br>
</font>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Best regards,</font><font size=3D=
"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Angelo P. Castellani</font><font size=3D"4"><br>
<br>
</font><font size=3D"5" face=3D"Courier New"><br>
On Mon, May 10, 2010 at 18:51, Carsten Bormann</font><a href=3D"mailto:cabo=
@tzi.org"><u><font size=3D"5" color=3D"#0000FF" face=3D"Courier New">&lt;ca=
bo@tzi.org&gt;</font></u></a><font size=3D"5" face=3D"Courier New"> wrote:<=
/font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">The CORE WG has a milestone to se=
lect a WG document for CoAP in</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">April:</font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><a href=3D"http://datatracker.ietf.org/wg/core/charter/"><u><font size=
=3D"5" color=3D"#0000FF">http://datatracker.ietf.org/wg/core/charter/</font=
></u></a><font size=3D"5" face=3D"Courier New"><br>
...<br>
Apr 2010 Select WG document for basis of the CoAP protocol</font><font size=
=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Of the various documents that have been contributed,</font><font size=3D"4"=
><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">draft-shelby-core-coap has significan=
t discussion, as well as the<br>
largest number of updates (including a previous version that was still<br>
called -6lowapp-coap).</font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Today, another updated version of=
 that draft was announced. See</font><u><font size=3D"4" color=3D"#0000FF">=
<br>
</font></u><a href=3D"http://www.ietf.org/mail-archive/web/core/current/msg=
00138.html"><u><font size=3D"5" color=3D"#0000FF" face=3D"Courier New">http=
://www.ietf.org/mail-archive/web/core/current/msg00138.html</font></u></a><=
font size=3D"5" face=3D"Courier New"><br>
for the announcement and</font><u><font size=3D"4" color=3D"#0000FF"><br>
</font></u><a href=3D"http://tools.ietf.org/html/draft-shelby-core-coap-01"=
><u><font size=3D"5" color=3D"#0000FF" face=3D"Courier New">http://tools.ie=
tf.org/html/draft-shelby-core-coap-01</font></u></a><font size=3D"5" face=
=3D"Courier New"><br>
for the draft itself.</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
However, as the authors say, there are still significant TODOs.</font><font=
 size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
Are we in a state yet where we can say whether this is the right</font><fon=
t size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">direction for the WG to take?</font><=
font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">If yes, is it the right direction=
? Should we adopt it as a WG</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">document?</font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">If you don't think we can say yet=
, is there a set of technical</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">decisions you would like the authors =
to take with priority?</font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Note that once a document has bec=
ome a WG document, the authors act</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">as editors for the working group, mak=
ing (and usually fleshing out the<br>
details of) any change that the WG decides it needs.</font><font size=3D"4"=
><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">If you think we can still improve=
 the draft, this is not an obstacle</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">to making it a WG document.</font><fo=
nt size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">But of course we shouldn't do tha=
t if we intend to reverse its</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">fundamental technical direction.</fon=
t><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">In order to stay roughly in sync =
with our milestones, we should</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">reach at a decision on how to go forw=
ard this week.</font><font size=3D"4"><br>
<br>
</font>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul>
<ul><font size=3D"5" face=3D"Courier New">Gruesse, Carsten</font><font size=
=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F<br>
core mailing list</font><u><font size=3D"4" color=3D"#0000FF"><br>
</font></u><a href=3D"mailto:core@ietf.org"><u><font size=3D"5" color=3D"#0=
000FF" face=3D"Courier New">core@ietf.org</font></u></a><u><font size=3D"4"=
 color=3D"#0000FF"><br>
</font></u><a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font =
size=3D"5" color=3D"#0000FF" face=3D"Courier New">https://www.ietf.org/mail=
man/listinfo/core</font></u></a><font size=3D"4"><br>
<br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"C
ourier New">=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F<br>
core mailing list</font><u><font size=3D"4" color=3D"#0000FF"><br>
</font></u><a href=3D"mailto:core@ietf.org"><u><font size=3D"5" color=3D"#0=
000FF" face=3D"Courier New">core@ietf.org</font></u></a><u><font size=3D"4"=
 color=3D"#0000FF"><br>
</font></u><a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font =
size=3D"5" color=3D"#0000FF" face=3D"Courier New">https://www.ietf.org/mail=
man/listinfo/core</font></u></a><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">--<br>
Zach Shelby, Chief Nerd, Sensinode Ltd.</font><u><font size=3D"4" color=3D"=
#0000FF"><br>
</font></u><a href=3D"http://zachshelby.org/"><u><font size=3D"5" color=3D"=
#0000FF" face=3D"Courier New">http://zachshelby.org</font></u></a><font siz=
e=3D"5" face=3D"Courier New"> - My blog &quot;On the Internet of Things</fo=
nt><a href=3D"http://6lowpan.net-mybook/"><u><font size=3D"5" color=3D"#000=
0FF" face=3D"Courier New">&quot;</font></u></a><u><font size=3D"4" color=3D=
"#0000FF"><br>
</font></u><a href=3D"http://6lowpan.net-mybook/"><u><font size=3D"5" color=
=3D"#0000FF" face=3D"Courier New">http://6lowpan.net - My book &quot;</font=
></u></a><font size=3D"5" face=3D"Courier New">6LoWPAN: The Wireless Embedd=
ed Internet&quot;<br>
Mobile: +358 40 7796297</font><font size=3D"4"><br>
<br>
<br>
<br>
</font></ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F<br>
core mailing list</font><u><font size=3D"4" color=3D"#0000FF"><br>
</font></u><a href=3D"mailto:core@ietf.org"><u><font size=3D"5" color=3D"#0=
000FF" face=3D"Courier New">core@ietf.org</font></u></a><u><font size=3D"4"=
 color=3D"#0000FF"><br>
</font></u><a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font =
size=3D"5" color=3D"#0000FF" face=3D"Courier New">https://www.ietf.org/mail=
man/listinfo/core</font></u></a><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
--------------------------------<br>
Onzo is a limited company number 06097997 registered in England&amp; Wales.=
 The<br>
registered office is 6 Great Newport Street, London, WC2H 7JB, United Kingd=
om.</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
This email message may contain confidential and/or privileged information, =
and<br>
is intended solely for the addressee(s). If you have received this email in=
<br>
error, please notify Onzo immediately. Unauthorised copying, disclosure or<=
br>
distribution of the material in this email is forbidden.<br>
--------------------------------</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F<br>
core mailing list</font><u><font size=3D"4" color=3D"#0000FF"><br>
</font></u><a href=3D"mailto:core@ietf.org"><u><font size=3D"5" color=3D"#0=
000FF" face=3D"Courier New">core@ietf.org</font></u></a><u><font size=3D"4"=
 color=3D"#0000FF"><br>
</font></u><a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font =
size=3D"5" color=3D"#0000FF" face=3D"Courier New">https://www.ietf.org/mail=
man/listinfo/core</font></u></a><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F<br>
This email has been scanned by the MessageLabs Email Security System.<br>
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F</font><font si=
ze=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F<br>
core mailing list</font><u><font size=3D"4" color=3D"#0000FF"><br>
</font></u><a href=3D"mailto:core@ietf.org"><u><font size=3D"5" color=3D"#0=
000FF" face=3D"Courier New">core@ietf.org</font></u></a><u><font size=3D"4"=
 color=3D"#0000FF"><br>
</font></u><a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font =
size=3D"5" color=3D"#0000FF" face=3D"Courier New">https://www.ietf.org/mail=
man/listinfo/core</font></u></a><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New">=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F<br>
core mailing list</font><u><font size=3D"4" color=3D"#0000FF"><br>
</font></u><a href=3D"mailto:core@ietf.org"><u><font size=3D"5" color=3D"#0=
000FF" face=3D"Courier New">core@ietf.org</font></u></a><u><font size=3D"4"=
 color=3D"#0000FF"><br>
</font></u><a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font =
size=3D"5" color=3D"#0000FF" face=3D"Courier New">https://www.ietf.org/mail=
man/listinfo/core</font></u></a><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
--------------------------------<br>
Onzo is a limited company number 06097997 registered in England&amp; Wales.=
 The<br>
registered office is 6 Great Newport Street, London, WC2H 7JB, United Kingd=
om.</font><font size=3D"4"><br>
</font><font size=3D"5" face=3D"Courier New"><br>
This email message may contain confidential and/or privileged information, =
and<br>
is intended solely for the addressee(s). If you have received this email in=
<br>
error, please notify Onzo immediately. Unauthorised copying, disclosure or<=
br>
distribution of the material in this email is forbidden.<br>
--------------------------------</font><font size=3D"4"><br>
<br>
</font></ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<font size=3D"5" face=3D"Courier New"><br>
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F<br>
core mailing list</font><u><font size=3D"4" color=3D"#0000FF"><br>
</font></u><a href=3D"mailto:core@ietf.org"><u><font size=3D"5" color=3D"#0=
000FF" face=3D"Courier New">core@ietf.org</font></u></a><u><font size=3D"4"=
 color=3D"#0000FF"><br>
</font></u><a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font =
size=3D"5" color=3D"#0000FF" face=3D"Courier New">https://www.ietf.org/mail=
man/listinfo/core</font></u></a><font size=3D"5" face=3D"Courier New"><br>
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F<br>
core mailing list</font><u><font size=3D"4" color=3D"#0000FF"><br>
</font></u><a href=3D"mailto:core@ietf.org"><u><font size=3D"5" color=3D"#0=
000FF" face=3D"Courier New">core@ietf.org</font></u></a><u><font size=3D"4"=
 color=3D"#0000FF"><br>
</font></u><a href=3D"https://www.ietf.org/mailman/listinfo/core"><u><font =
size=3D"5" color=3D"#0000FF" face=3D"Courier New">https://www.ietf.org/mail=
man/listinfo/core</font></u></a><font size=3D"4"><br>
<br>
</font><font size=3D"5"><br>
<br>
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F<br>
This email has been scanned by the MessageLabs Email Security System.<br>
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F</font><tt><fon=
t size=3D"4">=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F<br>
core mailing list</font></tt><tt><u><font size=3D"4" color=3D"#0000FF"><br>
</font></u></tt><a href=3D"mailto:core@ietf.org"><tt><u><font size=3D"4" co=
lor=3D"#0000FF">core@ietf.org</font></u></tt></a><tt><u><font size=3D"4" co=
lor=3D"#0000FF"><br>
</font></u></tt><a href=3D"https://www.ietf.org/mailman/listinfo/core"><tt>=
<u><font size=3D"4" color=3D"#0000FF">https://www.ietf.org/mailman/listinfo=
/core</font></u></tt></a><font size=3D"4"><br>
</font><br>
</ul>
</ul>
</body></html>

--1__=4EBBFDA7DFBEBDC58f9e8a93df938690918c4EBBFDA7DFBEBDC5--


--0__=4EBBFDA7DFBEBDC58f9e8a93df938690918c4EBBFDA7DFBEBDC5
Content-type: image/gif; 
	name="graycol.gif"
Content-Disposition: inline; filename="graycol.gif"
Content-ID: <2__=4EBBFDA7DFBEBDC58@schneider-electric.com>
Content-Transfer-Encoding: base64

R0lGODlhEAAQAKECAMzMzAAAAP///wAAACH5BAEAAAIALAAAAAAQABAAAAIXlI+py+0PopwxUbpu
ZRfKZ2zgSJbmSRYAIf4fT3B0aW1pemVkIGJ5IFVsZWFkIFNtYXJ0U2F2ZXIhAAA7


--0__=4EBBFDA7DFBEBDC58f9e8a93df938690918c4EBBFDA7DFBEBDC5
Content-type: image/gif; 
	name="pic09930.gif"
Content-Disposition: inline; filename="pic09930.gif"
Content-ID: <3__=4EBBFDA7DFBEBDC58@schneider-electric.com>
Content-Transfer-Encoding: base64

R0lGODlhWABDALP/AAAAAK04Qf79/o+Gm7WuwlNObwoJFCsoSMDAwGFsmIuezf///wAAAAAAAAAA
AAAAACH5BAEAAAgALAAAAABYAEMAQAT/EMlJq704682770RiFMRinqggEUNSHIchG0BCfHhOjAuh
EDeUqTASLCbBhQrhG7xis2j0lssNDopE4jfIJhDaggI8YB1sZeZgLVA9YVCpnGagVjV171aRVrYR
RghXcAGFhoUETwYxcXNyADJ3GlcSKGAwLwllVC1vjIUHBWsFilKQdI8GA5IcpApeJQt8L09lmgkH
LZikoU5wjqcyAMMFrJIDPAKvCFletKSev1HBw8KrxtjZ2tvc3d5VyKtCKW3jfz4uMKmq3xu4N0nK
BVoJQmx2LGVOmrqNjjJf2hHAQo/eDwJGTKhQMcgQEEAnEjFS98+RnW3smGkZU6ncCWav/4wYOnAI
TihRL/4FEwbp28BXMMcoscQCVxlepL4IGDSCyJyVQOu0o7CjmLN50OZlqWmyFy5/6yBBuji0AxFR
M00oQAqNIstqI6qKHUsWRAEAvagsmfUEAImyxgbmUpJk3IklNUtJOUAVLoUr1+wqDGTE4zk+T6FG
uQb3SizBCwatiiUgCBN8vrz+zFjVyQ8FWkOlg4NQiZMB5QS8QO3mpOaKnL0Z2EKvNMSILEThKhCg
zMKPVxYJh23qm9KNW7pArPynMqZDiErsTMqI+LRi3QAgkFUbXpuFKhSYZALd0O5RKa2z9EYKBbpb
qxIKsjUPRgD7I2XYV6wyrOw92ykExP8NW4URhknC5dKGE4v4NENQj2jXjmfNgOZDaXb5glRmXQ33
YEWQYNcZFnrYcIQLNzyTFDQNkXIff0ExVlY4srziQk43inZgL4rwxxINMvpFFAz1KOODHiu+4aEw
NEjFl5B3JIKWKF3k6I9bfUGp5ZZcdunll5IA4cuHvQQJ5gcsoCWOOUwgltIwAKRxJgbIkJAQZEq0
2YliZnpZZ4BH3CnYOXldOUOfQoYDqF1LFHbXCrO8xmRsfoXDXJ6ChjCAH3QlhJcT6VWE6FCkfCco
CgrMFsROrIEX3o2whVjWDjoJccN3LdggSGXLCdLEgHr1lyU3O3QxhgohNKXJCWv8JQr/PDdaqd6w
2rj1inLiGeiCJoDspAoQlYE6QWLSECehcWIYxIQES6zhbn1iImTHEQyqJ4eIxJJoUBc+3CbBuwZE
V5cJPPkIjFDdeEabQbd6WgICTxiiz0f5dBKquXF6k4senwEhYGnKEFJeGrxUZy8dB8gmAXI/sPvH
ESfCwVt5hTgYiqQqtdRNHQIU1PJ33ZqmzgE90OwLaoJcnMop1WiMmgkPHQRIrwgFuNV90A3doNKT
mrKIN07AnGcI9BQjhCBN4RfA1qIZnMqorJCogKfGQnxSCDilTVIA0yl5ciTovgLuBDKFUDE9aQcw
9SA+rjSNf9/M1gxrj6VwDTS0IUSElMzBfsj0NFXR2kwsV1A5IF1grLgLL/r1R40BZEnuBWgmQEyb
jqRwSAt6bqMCOFkvKFN2GPPkUzIm/SCF8z8pVzpbjVnMsy0vOr1hw3SaSRUhpY09v0z0J1FnwzPl
fmh+xl4WtR0zGu24I4KbMQm3lnVu2oNWxI9W/lcyzA+mCKF4DBikxb/+UWtOGRiFP8qEwAayIgIA
Ow==


--0__=4EBBFDA7DFBEBDC58f9e8a93df938690918c4EBBFDA7DFBEBDC5
Content-type: image/gif; 
	name="ecblank.gif"
Content-Disposition: inline; filename="ecblank.gif"
Content-ID: <4__=4EBBFDA7DFBEBDC58@schneider-electric.com>
Content-Transfer-Encoding: base64

R0lGODlhEAABAIAAAAAAAP///yH5BAEAAAEALAAAAAAQAAEAAAIEjI8ZBQA7


--0__=4EBBFDA7DFBEBDC58f9e8a93df938690918c4EBBFDA7DFBEBDC5--


From angelo.castellani@gmail.com  Mon May 31 03:09:31 2010
Return-Path: <angelo.castellani@gmail.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 0CF9C28C0E5 for <core@core3.amsl.com>; Mon, 31 May 2010 03:09:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.773
X-Spam-Level: *
X-Spam-Status: No, score=1.773 tagged_above=-999 required=5 tests=[AWL=-1.150,  BAYES_50=0.001, FM_FORGED_GMAIL=0.622, MANGLED_TOOL=2.3]
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 e6Xl+zuDLzyK for <core@core3.amsl.com>; Mon, 31 May 2010 03:09:27 -0700 (PDT)
Received: from mail-yx0-f172.google.com (mail-yx0-f172.google.com [209.85.213.172]) by core3.amsl.com (Postfix) with ESMTP id 27B0D28C0E1 for <core@ietf.org>; Mon, 31 May 2010 03:09:27 -0700 (PDT)
Received: by yxn35 with SMTP id 35so429505yxn.31 for <core@ietf.org>; Mon, 31 May 2010 03:09:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=/gQQyfSXKEmtL3wyl9u3LRSQ2mr8A45ZxRUiNwIiWEw=; b=auKkxJnYjmzzJSM0YeH3CVJZc0QuyA0n0MSDUnRp7saaZh8uWEXbuDWR/LhGw137gk 2EPanSSm0ViXMRId1SJKAAauhlpx23JWcJLX+BCcO5/jt2BjvQJGhZHH4BPEiafwURdg nEWLSJnL2dFfV1y8/v+WYd0+Cfwty2v+gdyC4=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=Jv9hl2PeNEPw+TC4j4JC3egEEsEnWeZNrQRSKhnuR9rCrbJYE+ZSEHZIEHLp8fkrNQ 4VQzMt9AoyD3oE6c+DOeteN0z6a0bVOEGGQiCW7KA2frQRBpbySgboNRVdV6rWBV1EJ7 SX4M2/sME/iHpNZus9TBFD6nbQ5yCF47//pbA=
MIME-Version: 1.0
Received: by 10.91.162.16 with SMTP id p16mr2222726ago.101.1275300551928; Mon,  31 May 2010 03:09:11 -0700 (PDT)
Sender: angelo.castellani@gmail.com
Received: by 10.90.26.2 with HTTP; Mon, 31 May 2010 03:09:11 -0700 (PDT)
In-Reply-To: <54C0D124-0AD3-4A30-8D98-4FC0FE134134@sensinode.com>
References: <0D212BD466921646B58854FB79092CEC021F4E91@XMB-AMS-106.cisco.com> <OF54E90C1C.C8997A73-ONC1257731.003EAAE3-C1257731.004127C6@schneider-electric.com> <0D212BD466921646B58854FB79092CEC021F4EF2@XMB-AMS-106.cisco.com> <6A9FCAC7-E2FA-482D-ABFF-DB6B111A9EA2@sensinode.com> <AANLkTil1Vx4fVvrSn5X0LhDcFhDNrXAKNfUBODRkAL3a@mail.gmail.com> <54C0D124-0AD3-4A30-8D98-4FC0FE134134@sensinode.com>
Date: Mon, 31 May 2010 12:09:11 +0200
X-Google-Sender-Auth: Xt6q6-kpMp3Dh9_VeRNBvrM1AXc
Message-ID: <AANLkTik7-EmxEmBr_D8SY_iC2qOQNE5itUWshlx689UK@mail.gmail.com>
From: "Angelo P. Castellani" <angelo@castellani.net>
To: Zach Shelby <zach@sensinode.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: core <core@ietf.org>
Subject: Re: [core] Subscribe/Notify for CoAP
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: Mon, 31 May 2010 10:09:31 -0000

Zach, Robert, all,

I want add a short clarification about my previous message.

To integrate SUBSCRIBE/NOTIFY in a RESTful protocol, the entities
involved in the process should be *both* resources and not an endpoint
and a resource.

In my opinion when we talk of REST, the main concept is that every
destination of an interaction is a resource.

However SUBSCRIBE/NOTIFY interaction methods are different from the
GET/POST/PUT/etc. methods, because they're stateful by design. In its
very radical design constraints REST does not want to retain state
informations about anything.

So in my opinion to better cope with this paradoxical requirement we
should work to retain the best stateless design for a stateful
interaction.

This is the reason why when we require a SUBSCRIBE to a resource, the
resource itself should became an endpoint that has to access a
different resource (the NOTIFY resource!).

End-points in REST retain state, and for this reason the subscribed
resource has become an endpoint.

This is why I think that SUBSCRIBE/NOTIFY methods require two different URI=
:
 - Destination-URI (the traditional URI), that specifies the resource
destination of the interaction
 - Source-URI, that specifies the resource *source* of the interaction

Best,
Angelo


On Fri, May 28, 2010 at 16:29, Zach Shelby <zach@sensinode.com> wrote:
> On May 28, 2010, at 4:13 PM, Angelo P. Castellani wrote:
>
>> In my opinion Subscribe/Notify are special methods of interaction
>> between resources.
>
> This is definitely one valid way to look at it.
>
>>
>> 1) SUBSCRIBE: Any resource A can send a Request to SUBSCRIBE with a
>> resource B (to the resource B URI).
>
> Small correction, it is not a resource sending the SUBSCRIBE, it is an en=
d-point (source address + port) sending it. Correct, it is being sent for r=
esource B. So end-point A sends a SUBSCRIBE for resource B.
>
>>
>> When B receives the request, B can (should/must?) answer with a
>
> MUST I would say (so the A flag must be set).
>
>> Response to the SUBSCRIBE Request, telling the result of the request
>> (subscription accepted/denied/unsupported?).
>
> Yep.
>
>>
>> 2) NOTIFY: When subscription condition fires the resource B sends a
>> NOTIFY Request to resource A URI.
>
> The end-point sends a NOTIFY Request about resource B's URI to end-point =
A. So there is not a source and destination "resource", instead there is ju=
st resource B.
>
>> When A receives the request, A can (should/must?) answer with a
>> Response to the NOTIFY Request, telling the result of the request (OK,
>> cancel subscription, change notify options?).
>
> The A flag would control the need for a response.
>
>> In each Request must be specified the URI of the resource doing the
>> Request too (Option? From-URI?).
>
> Actually, this is the URI (resource B) so you only need one URI. This is =
why I say that a notification is like an inverse GET request.
>
> Zach
>
>>
>> Angelo
>>
>> On Fri, May 28, 2010 at 14:50, Zach Shelby <zach@sensinode.com> wrote:
>>> Hi,
>>>
>>> This is a really good conversation. One thing we need to do is remember=
 what our minimum requirements are for subscribe/notify and not try to solv=
e something more than we should. From what I know it is sufficient to be ab=
le to receive notifications when a URI changes or periodically. You might c=
onsider new URIs under this URI path to be changes to a URI though...
>>>
>>> On May 28, 2010, at 3:08 PM, Adriano Pezzuto (apezzuto) wrote:
>>>
>>>> Hello,
>>>> with this flavor, the SUBSCRIBE may be replaced by a simple POST. So n=
o needs to have an explicit SUBSCRIBE method.
>>>
>>> This is what coap-01 assumes.
>>>
>>>> If we want support a more oriented peer-to-peer transaction on CoAP, i=
t looks to me both SUB and NOTIFY should be treated as messages.
>>>
>>> The Request/Response model can be used peer-to-peer, and in CoAP you ca=
n even use a Request asynchronously. Additionally, we want a native RESTful=
 subscribe/notify technique, that is, we want to subscribe to resources and=
 be susequently notified about those resources when they change.
>>>
>>> In that sense, you can think of a subscription as a request to receive =
asynchronous notifications about a resource (about a URI). This can be achi=
eved by:
>>>
>>> 1. =A0as a SUBSCRIBE Request on the URI with some option indicating the=
 lifetime as in coap-01,
>>> 2. =A0as a Subcsribe message (no methods) on the URI with some option,
>>> 3. =A0or as a POST Request on the URI with options indicating that this=
 is actually a subscription and the lifetime. =A0This bends the meaning of =
POST quite a bit and might be prone to mistakes?
>>>
>>> The asynchronous response is a harder one. Can we bend the meaning of a=
 Request for making asynchronous notifications? Also a notification include=
s a URI about a resource on the requestor, which is inverse from normal Req=
uests in REST. So the options here are:
>>>
>>> 1. as a Notify message about a URI (no methods) as in coap-01,
>>> 2. as a NOTIFY Request about a URI as was in coap-00,
>>> 3. hmmm... reusing CRUD methods really doesn't work for this one at all=
...
>>>
>>> I wonder what the HTTP designers would have done if this would have bee=
n a requirement back then? Maybe we should ask them...
>>>
>>> Zach
>>>
>>>>
>>>> Adriano
>>>>
>>>> From: matthieu.vial@fr.non.schneider-electric.com [mailto:matthieu.via=
l@fr.non.schneider-electric.com]
>>>> Sent: venerd=EC 28 maggio 2010 13.52
>>>> To: Adriano Pezzuto (apezzuto)
>>>> Cc: core; core-bounces@ietf.org; robert.cragie@gridmerge.com
>>>> Subject: Re: [core] Subscribe/Notify for CoAP
>>>>
>>>>> So strictly speaking, both NOTIFY and SUBSCRIBE are message types not=
 =A0methods!
>>>>
>>>> SUBSCRIBE can be just an asynchronous GET on update then I think it is=
 a method and NOTIFY is an asynchronous response so a message.
>>>> But if we want to have selective notifications when a resource is crea=
ted, updated or deleted then I think you're right NOTIFY and SUBSCRIBE are =
messages.
>>>>
>>>> Does that make sense ?
>>>>
>>>> Matthieu
>>>>
>>>> <image001.gif>"Adriano Pezzuto (apezzuto)" <apezzuto@cisco.com>
>>>>
>>>>
>>>>
>>>>
>>>> "Adriano Pezzuto (apezzuto)" <apezzuto@cisco.com>
>>>> Envoy=E9 par : core-bounces@ietf.org
>>>> 28/05/2010 12:50
>>>>
>>>> <image003.png>
>>>> A
>>>> <image004.png>
>>>> <robert.cragie@gridmerge.com>
>>>> <image003.png>
>>>> cc
>>>> <image004.png>
>>>> core <core@ietf.org>
>>>> <image003.png>
>>>> Objet
>>>> <image004.png>
>>>> Re: [core] Subscribe/Notify for CoAP
>>>> <image004.png>
>>>> <image004.png>
>>>>
>>>> Hi Roberto,
>>>> I understand your point and personally agree on M2M is quite different=
 from web page model. On the architectural RESTful style, the method inform=
ation tells the server what to do with data kept in the URI information.
>>>>
>>>> So strictly speaking, both NOTIFY and SUBSCRIBE are message types not =
=A0methods!
>>>>
>>>> Adriano
>>>>
>>>> From: Robert Cragie [mailto:robert.cragie@gridmerge.com]
>>>> Sent: venerd=EC 28 maggio 2010 11.53
>>>> To: Adriano Pezzuto (apezzuto)
>>>> Cc: Paul Duffy (paduffy); Zach Shelby; core
>>>> Subject: Re: [core] Subscribe/Notify for CoAP
>>>>
>>>> I think the point here is that there are two levels we are considering=
.
>>>>
>>>> At the lowest (foundation) level, there are the transaction messages a=
s described below. This provides a flexible mechanism for the application w=
ith regard to synchronicity and threading. This is important for the types =
of devices CoAP is being aimed at.
>>>>
>>>> Above that, the methods can be used according to the architectural sty=
le. So in this case, it is RESTful (COnstrained Restful Environments), whic=
h will naturally limit the number of methods and how transactions occur.
>>>>
>>>> The actual architecture using a combination of the methods and message=
s also depends on what is required at the application layer. Consider a typ=
ical client which wants to subscribe to a resource. That client controls th=
e feed of data but needs a component which is capable of handling (possibly=
 buffering) the data it receives through notifications. Is this a separate =
server? Or would we want to consider it part of an enhanced client model wh=
ich is able to process feeds of data? These are the sort of models which ha=
ve led to the myriad of solutions (GENA, Webhooks, long polling, pubsubhubb=
ub, RESTMS etc.) based around HTTP which are all essentially ingenious ways=
 of getting around the limitations imposed by HTTP and how it is processed =
for anything which deviates from the classic web page access model.
>>>>
>>>> I think the aim of CoAP should be clean from the word go with regard t=
o supporting these more peer-to-peer transactions, where the client can exi=
st on either entity and both entities can feed data to each other; typical =
in M2M applications.
>>>>
>>>> Robert
>>>>
>>>> Robert Cragie (Pacific Gas & Electric)
>>>>
>>>> Gridmerge Ltd.
>>>> 89 Greenfield Crescent,
>>>> Wakefield, WF4 4WA, UK
>>>> +44 1924 910888
>>>> +1 415 513 0064
>>>> http://www.gridmerge.com
>>>>
>>>> On 27/05/2010 7:08 PM, Adriano Pezzuto (apezzuto) wrote:
>>>> Hi Robert,
>>>>
>>>> in my personal opinion, the option 1a) brings some sort of ambiguity t=
o CoAP specs.
>>>>
>>>> My be my understatement of new CoAP specs is not so deep, but now we h=
ave 5 methods and 3 message types: request, response and notify. Which meth=
ods are allowed with which messages types?
>>>> I suppose you have to use PUT/POST method with notify message for asyn=
ch data notification. How to make a subscribe? I suppose you would use a SU=
BSCRIBE method with request/response message or SUBSCRIBE with notify messa=
ge? Also what about POST/DELETE methods in a notify message? They not make =
any sense..
>>>>
>>>> I think the choice is between: option 1) -> only CRUD methods and opti=
on 1b) -> CRUD + SUB/NOTIFY methods, keeping in mind cost/benefits of both =
solutions.
>>>>
>>>> Adriano
>>>>
>>>> From: Robert Cragie [mailto:robert.cragie@gridmerge.com]
>>>> Sent: mercoled=EC 26 maggio 2010 20.09
>>>> To: Adriano Pezzuto (apezzuto)
>>>> Cc: Paul Duffy (paduffy); Zach Shelby; core
>>>> Subject: Re: [core] Subscribe/Notify for CoAP
>>>>
>>>> Hi Adrian,
>>>>
>>>> I would also prefer to keep the protocol in CoAP asynchronous. You can=
 always map an asynchronous protocol to a synchronous one but, as we see in=
 HTTP, it always ends up as a kludge to do it the other way round. The effo=
rts which have been gone to to make HTTP quasi-asynchronous via all the sch=
emes mentioned below and many more besides (all non-interoperable of course=
) is testament to how important this is for M2M communication.
>>>>
>>>> So, back to Zach's list, I favor 1a) for the following reasons:
>>>>
>>>> Foundation level of messages:
>>>>
>>>> 1. request/response can be asynchronous or synchronous messages (as th=
ere is a transaction ID in there)
>>>> 2. notify is an asynchronous message
>>>> Derived methods:
>>>>
>>>> I think it makes sense to add a pub/sub model as a useful mechanism fo=
r M2M.
>>>>
>>>> So, looking at it the other way round: It will be entirely possible to=
 translate whatever is currently built on HTTP to CoAP based on the above, =
with all its restrictions regarding synchronous and client/server transacti=
ons. What may be harder is to translate directly is a CoAP-based applicatio=
n to HTTP. So I guess the question is: Do we want to be hamstrung to synchr=
onous client/server transactions as dictated by HTTP and provide a direct m=
apping to HTTP, then have to come up with similar kludges for asynchronous =
peer-to-peer transactions as has been done in numerous ways for HTTP, or do=
 we want to define the protocol cleanly to start with and accept that some =
sort of transaction relaying/conversion would have to take place at a mappi=
ng node?
>>>>
>>>> Robert
>>>> Robert Cragie (Pacific Gas & Electric)
>>>>
>>>> Gridmerge Ltd.
>>>> 89 Greenfield Crescent,
>>>> Wakefield, WF4 4WA, UK
>>>> +44 1924 910888
>>>> +1 415 513 0064
>>>> http://www.gridmerge.com
>>>>
>>>> On 26/05/2010 7:17 AM, Adriano Pezzuto (apezzuto) wrote:
>>>> Hi,
>>>> it looks to me that CoAP should use an explicit sub/notify mechanism s=
ince this is the core of the machine-to-machine interaction model.
>>>> HTTP suffers of this lack and we have seen a plethora of solutions to =
give an asynch taste to it. Webhooks and websockets are only the lasts of t=
he list.
>>>> As someone has already pointed out on this list, it is theoretically p=
ossible to describe sub/notify using only CRUD methods but it looks a littl=
e bit tricky and verbose.
>>>>
>>>> Now we have a chance to build from scratch a new protocol with and I t=
hink using explicit sub/notify methods with a clear and well defined semant=
ic is the best option. It is easily understanding from every developer and =
will prevent to build other fanny solutions on top of the CoAP. HTTP does n=
ot have this well defined semantic and (for hundreds of other reasons also)=
 it is not used as wide protocol for machine-to-machine communication.
>>>>
>>>> CoAP - as binary protocol - and with an explicit asynch model has a ch=
ance to be a really wide protocol for M2M communication not only for constr=
ained environments.
>>>>
>>>> my 2 cents
>>>>
>>>> - adriano
>>>>
>>>> -----Original Message-----
>>>> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf O=
f Paul Duffy (paduffy)
>>>> Sent: mercoled=EC 26 maggio 2010 0.47
>>>> To: Zach Shelby
>>>> Cc: core
>>>> Subject: Re: [core] Subscribe/Notify for CoAP
>>>>
>>>> On 5/25/2010 6:41 PM, Zach Shelby wrote:
>>>>
>>>> Hi,
>>>>
>>>> On May 26, 2010, at 12:23 AM, Charles Palmer wrote:
>>>>
>>>>
>>>> Hi folks
>>>>
>>>> It occurs to me that CoRE should be keeping a close eye on ZigBee SE2.=
0 work, so that it is as easy as possible for ZigBee SE to use CoRE when re=
ady. That suggests to me that we should align with their subscribe/notify p=
rocess.
>>>>
>>>>
>>>> I am not sure I understand that. I mean, ZigBee SE2.0 is defining an a=
pplication specific subscribe/notify mechanism for that purpose so far for =
HTTP. This uses standard HTTP methods and some custom payload and REST inte=
rfaces. CoAP Req/Res is already totally compatible with SE2.0 in that respe=
ct, so alignment is already OK there. Nothing stopping someone from using S=
E2.0 over CoAP.
>>>>
>>>> Specifying a native susbcription/notify into CoAP is another matter. W=
e can't adopt a solution specific to one application as that won't solve th=
e problems of other applications nor general HTTP mapping at all (probably =
would make it worse). It seems that for the near future there will be a bun=
ch of HTTP push mechanisms in use without any clear standard appearing - or=
 am I wrong there?
>>>>
>>>>
>>>>
>>>>
>>>> If COAP extends HTTP semantics with new subscription methods, it will
>>>> not be possible to easily interchange HTTP/COAP, and translation
>>>> gateways will become more complex to implement.
>>>>
>>>>
>>>>
>>>> Zach
>>>>
>>>>
>>>> Regards - Charles
>>>>
>>>>
>>>> -----Original Message-----
>>>> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf O=
f Paul Duffy
>>>> Sent: 25 May 2010 03:48
>>>> To: Zach Shelby
>>>> Cc: core
>>>> Subject: Re: [core] Subscribe/Notify for CoAP
>>>>
>>>> Recommend something like #2, primarily to avoid introducing non HTTP
>>>> method semantics, simplifying HTTP/COAP translation.gateways, etc.
>>>>
>>>>
>>>> On 5/24/2010 11:49 AM, Zach Shelby wrote:
>>>>
>>>> (thread renamed)
>>>>
>>>> We have two different paths with regard to a subscribe/notify mechanis=
m for CoAP:
>>>>
>>>> 1. Use specific Subscription and Notify mechanisms for CoAP as HTTP re=
ally does not include this concept.
>>>> 1a) Notify as a message and SUBSCRIBE as a method. This is currently u=
sed in coap-01.
>>>> 1b) NOTIFY and SUBSCRIBE as methods. This was used in coap-00, but we =
had a good list discussion about this leading to a. In practice it doesn't =
make a big difference if notification is a message or method.
>>>>
>>>> 2. Use an HTTP specific framework such as Webhooks, the ZigBee SE2.0 p=
roposal or GENA.
>>>>
>>>> So far we have focused on 1 in the WG, and every now and again 2 comes=
 up. At least I am not convinced that we need to suffer the drawbacks of HT=
TP here. Anyways 2 does not help our mapping to HTTP in reality very much a=
s there is no standard way of doing this over HTTP. Thus a CoAP-HTTP proxy =
may end up anyways translating between multiple HTTP frameworks depending o=
n the application. So instead of doing a CoAP Notify/Subscribe to Webhooks =
mapping, you will could end up having to do a CoAP Webhooks to HTTP GENA ma=
pping.
>>>>
>>>>
>>>>
>>>> I don't understand this last para. If CoAP sticks to the semantics of
>>>> the current HTTP methods, would this not offer a fairly straightforwar=
d
>>>> translation to/from HTTP?
>>>>
>>>>
>>>>
>>>> From what I have heard so far 1 still seems like a wise choice, althou=
gh I need to look at Webhooks more deeply. In reality many applications spe=
cify their own way of doing a push interface using REST methods and specifi=
c payloads (ZigBee SE2.0 is such an example). That is just fine, and might =
be used instead of a specific CoAP notify/subscribe in that case. So 1 does=
n't prevent the application using its own mechanism, it just provides a nat=
ive way for doing push.
>>>>
>>>> What do people think?
>>>>
>>>> Zach
>>>>
>>>> On May 17, 2010, at 6:44 PM,matthieu.vial@fr.non.schneider-electric.co=
m wrote:
>>>>
>>>>
>>>>
>>>> Hi,
>>>>
>>>> My comments about the subscribe/notify mechanism of Zigbee IP.
>>>>
>>>> Pros:
>>>> - Derived from the webhooks concept
>>>> - If used by CORE it will be easier to map to HTTP because it uses onl=
y CRUD verbs.
>>>> - The subscription message is extendable and could support advanced op=
tions (delays, increment, ...)
>>>> - Only one listening port whatever the transport binding is.
>>>>
>>>> Cons:
>>>> - No interoperability without well known URIs and a well defined subsc=
ription message format (Not sure CoAP draft is the right place to specify t=
his).
>>>> - XML/EXI is too complex to be the required format for the default sub=
scription/notification mechanism.
>>>> - The notification should not require a subsequent GET to retrieve the=
 content.
>>>> - Subresource subscription is redundant.
>>>>
>>>> Hope this could help,
>>>> Matthieu
>>>>
>>>>
>>>> <graycol.gif>"Charles Palmer"<charles.palmer@onzo.com>
>>>>
>>>>
>>>>
>>>>
>>>> "Charles Palmer"<charles.palmer@onzo.com>
>>>> Envoy=E9 par : core-bounces@ietf.org
>>>> 15/05/2010 14:06
>>>>
>>>> <ecblank.gif>
>>>> A
>>>> <ecblank.gif>
>>>> "core"<core@ietf.org>
>>>> <ecblank.gif>
>>>> cc
>>>> <ecblank.gif>
>>>> <ecblank.gif>
>>>> Objet
>>>> <ecblank.gif>
>>>> Re: [core] Selecting a WG document for CoAP
>>>> <ecblank.gif> <ecblank.gif>
>>>>
>>>> Dear all
>>>>
>>>> Those interested in the subscribe/notify discussion might like to look
>>>> at the draft Smart Energy Profile 2.0 Application Protocol
>>>> Specification. It is available here:
>>>> http://zigbee.org/Markets/ZigBeeSmartEnergy/ZigBeeSmartEnergy20PublicA=
pp
>>>> licationProfile.aspx
>>>>
>>>> It manages subscribe/notify by using POST. This seems to remove the ne=
ed
>>>> for SUBSCRIBE and notify.
>>>>
>>>> "Imagine a host A, which exposes a resource at http{s}://A/resource an=
d
>>>> a second host B, which wishes to learn of changes to this resource. To
>>>> facilitate a subscription/ notification mechanism, A would expose a
>>>> resource http{s}://A/sub and B would expose a resource http{s}://B/ntf=
y.
>>>> To subscribe to notifications regarding http{s}://A/resource, B would
>>>> send a POST to the address http{s}://A/sub/B containing the URI of the
>>>> resource of interest (http{s}://A/resource) and the URI of B's
>>>> notification resource (http{s}://B/ntfy). Following this subscription
>>>> step, should A wish to notify B of a change to the resource addressed =
at
>>>> http{s}://A/resource, A would send a POST to the address
>>>> http{s}://B/ntfy containing the URI of the resource changed
>>>> (http{s}://A/resource) and the URI of A's subscription resource
>>>> (http{s}://A/sub/B), should A wish to change its subscription. The hos=
t
>>>> B can then query the resource (or not) at its leisure."
>>>>
>>>> Sleepy nodes are not allowed to subscribe, and must poll.
>>>>
>>>> Regards - Charles Palmer
>>>>
>>>> -----Original Message-----
>>>> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf O=
f
>>>> Angelo P. Castellani
>>>> Sent: 14 May 2010 13:14
>>>> To: Zach Shelby
>>>> Cc: core
>>>> Subject: Re: [core] Selecting a WG document for CoAP
>>>>
>>>> Zach,
>>>>
>>>> thanks for the comments, but please refer to my most recent e-mail for
>>>> a more specific list of technical issues I'm pointing to.
>>>>
>>>> I want to do only a little integration to what I've written there.
>>>>
>>>> In my very personal opinion, to maximize adherence with the REST model
>>>> and minimize implementation effort SUBSCRIBE and NOTIFY should be
>>>> mapped to methods (as discussed many times together...).
>>>>
>>>> Uniform interface principle (Fielding PhD dissertation Section 5.1.5,
>>>> "The central feature that distinguishes the REST architectural style
>>>> [...]") states that to simplify the software architecture, resource
>>>> interfaces/interfaces should be as general as possible.
>>>>
>>>> I agree with this principle in this specific case, mainly because
>>>> handling a special message type for notify leads node software design
>>>> to a more complex architecture.
>>>>
>>>> The reason is that this new message type requires special handling and
>>>> introduces a complexity in the software modularization.
>>>>
>>>> Best,
>>>> Angelo
>>>>
>>>> On Fri, May 14, 2010 at 13:06, Zach Shelby<zach@sensinode.com> wrote:
>>>>
>>>>
>>>> Hi Angelo,
>>>>
>>>> On May 13, 2010, at 14:24 , Angelo P. Castellani wrote:
>>>>
>>>>
>>>>
>>>> Dear C. Bormann, all,
>>>>
>>>> before deciding for the final direction, I've the following
>>>> observations about draft-shelby-core-coap-01
>>>>
>>>> While I mostly share Zach's view of the protocol approach, and
>>>> appreciate many aspects of the proposal, there are in my opinion
>>>>
>>>>
>>>> still
>>>>
>>>>
>>>> some open issues that need to be at least discussed before the
>>>>
>>>>
>>>> current
>>>>
>>>>
>>>> document can be selected.
>>>>
>>>>
>>>> Of course there are plenty of open issues. Remember that working group
>>>>
>>>>
>>>> documents still undertake as much change and improvement as the WG
>>>> wants, so by no means is coap-01 set in stone. I would expect at least
>>>> 5-10 more revisions still along the way. Already several of your ideas
>>>> have been integrated into coap-01, and several more are under
>>>> consideration, so it is coming along. Patience ;-)
>>>>
>>>>
>>>>
>>>> In particular, I would like to highlight the following:
>>>>
>>>> a) As it is now, it is not possible to have a straightforward
>>>> translation of HTTP -> CoAP and viceversa: see
>>>> http://www.ietf.org/mail-archive/web/core/current/msg00133.html (this
>>>> impacts the scalability of the web service model too)
>>>>
>>>>
>>>> In coap-01 the Method names are now identical to HTTP methods. The
>>>>
>>>>
>>>> Req/Res interaction is a direct translation. The URI hierarchy is
>>>> compatible, and the URI binary code format we are still working on
>>>> obviously. The only thing that takes some state to translate is
>>>> Subscribe/Notify. But note, Subscribe/Notify takes some state no matte=
r
>>>> how you do it, even with HTTP-HTTP there is no clean and easy way to
>>>> handle subscriptions.
>>>>
>>>>
>>>>
>>>> b) Moreover, CoAP's implementation is not as simple as it should be.
>>>> I've investigated the implementation and some design choices (as
>>>> Options) are leading to very high program complexity (ROM) on a
>>>> MSP430-based device.
>>>>
>>>>
>>>> This we can definitely improve, and already made several optimizations
>>>>
>>>>
>>>> from -00 to -01. Here I need some very concrete proposals though. Also
>>>> remember that many things are optional, for example subscribe/notify i=
s
>>>> not required if you don't need it.
>>>>
>>>>
>>>>
>>>> c) Finally when comparing HTTP message size with CoAP message size,
>>>> the resulting compression isn't as good as you may expect.
>>>>
>>>> Example:
>>>> HTTP: GET /sensor/temp.xml HTTP/1.0 =3D 32 B
>>>> CoAP: 24 B with options parsing procedure requiring an added
>>>> implementation complexity
>>>>
>>>>
>>>> Right, that is not how it will work in practice. Working with a real
>>>>
>>>>
>>>> HTTP server that HTTP header will be more complex, and on the CoAP sid=
e
>>>> you would chose shorter URLs. The biggest improvement possible here is
>>>> from using binary coded URLs of course. We need to look at a wider ran=
ge
>>>> of interactions and real HTTP headers as well to check that we are
>>>> efficient enough.
>>>>
>>>>
>>>>
>>>> Addressing all these points potentially leads to major technical
>>>> modifications (especially point a) on the current draft, hence it is
>>>> appropriate in my opinion to discuss these points before making the
>>>> final decision.
>>>>
>>>>
>>>> I am not sure what else you have in mind for a). If we just forget
>>>>
>>>>
>>>> about Subscribe/Notify then you are good to go. But then you are also
>>>> not fulfilling the charter or the industry needs in that respect.
>>>>
>>>>
>>>> Thanks,
>>>> Zach
>>>>
>>>>
>>>>
>>>> Best regards,
>>>>
>>>> Angelo P. Castellani
>>>>
>>>>
>>>> On Mon, May 10, 2010 at 18:51, Carsten Bormann<cabo@tzi.org>wrote:
>>>>
>>>>
>>>> The CORE WG has a milestone to select a WG document for CoAP in
>>>>
>>>>
>>>> April:
>>>>
>>>>
>>>> http://datatracker.ietf.org/wg/core/charter/
>>>> ...
>>>> Apr 2010 Select WG document for basis of the CoAP protocol
>>>>
>>>> Of the various documents that have been contributed,
>>>>
>>>>
>>>> draft-shelby-core-coap has significant discussion, as well as the
>>>> largest number of updates (including a previous version that was still
>>>> called -6lowapp-coap).
>>>>
>>>>
>>>> Today, another updated version of that draft was announced. See
>>>> http://www.ietf.org/mail-archive/web/core/current/msg00138.html
>>>> for the announcement and
>>>> http://tools.ietf.org/html/draft-shelby-core-coap-01
>>>> for the draft itself.
>>>>
>>>> However, as the authors say, there are still significant TODOs.
>>>>
>>>> Are we in a state yet where we can say whether this is the right
>>>>
>>>>
>>>> direction for the WG to take?
>>>>
>>>>
>>>> If yes, is it the right direction? Should we adopt it as a WG
>>>>
>>>>
>>>> document?
>>>>
>>>>
>>>> If you don't think we can say yet, is there a set of technical
>>>>
>>>>
>>>> decisions you would like the authors to take with priority?
>>>>
>>>>
>>>> Note that once a document has become a WG document, the authors act
>>>>
>>>>
>>>> as editors for the working group, making (and usually fleshing out the
>>>> details of) any change that the WG decides it needs.
>>>>
>>>>
>>>> If you think we can still improve the draft, this is not an obstacle
>>>>
>>>>
>>>> to making it a WG document.
>>>>
>>>>
>>>> But of course we shouldn't do that if we intend to reverse its
>>>>
>>>>
>>>> fundamental technical direction.
>>>>
>>>>
>>>> In order to stay roughly in sync with our milestones, we should
>>>>
>>>>
>>>> reach at a decision on how to go forward this week.
>>>>
>>>>
>>>> Gruesse, Carsten
>>>>
>>>> _______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> 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
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>>>
>>>> --------------------------------
>>>> Onzo is a limited company number 06097997 registered in England& Wales=
. The
>>>> registered office is 6 Great Newport Street, London, WC2H 7JB, United =
Kingdom.
>>>>
>>>> This email message may contain confidential and/or privileged informat=
ion, and
>>>> is intended solely for the addressee(s). If you have received this ema=
il in
>>>> error, please notify Onzo immediately. Unauthorised copying, disclosur=
e or
>>>> distribution of the material in this email is forbidden.
>>>> --------------------------------
>>>>
>>>> _______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>>>
>>>> ______________________________________________________________________
>>>> This email has been scanned by the MessageLabs Email Security System.
>>>> ______________________________________________________________________
>>>>
>>>> _______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>>>
>>>> --------------------------------
>>>> Onzo is a limited company number 06097997 registered in England& Wales=
. The
>>>> registered office is 6 Great Newport Street, London, WC2H 7JB, United =
Kingdom.
>>>>
>>>> This email message may contain confidential and/or privileged informat=
ion, and
>>>> is intended solely for the addressee(s). If you have received this ema=
il in
>>>> error, please notify Onzo immediately. Unauthorised copying, disclosur=
e or
>>>> distribution of the material in this email is forbidden.
>>>> --------------------------------
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>>> _______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>>>
>>>>
>>>>
>>>> ______________________________________________________________________
>>>> This email has been scanned by the MessageLabs Email Security System.
>>>> ______________________________________________________________________=
_______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>>>
>>>> _______________________________________________
>>>> core mailing list
>>>> core@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/core
>>>
>>> --
>>> Zach Shelby, Chief Nerd, Sensinode Ltd.
>>> http://zachshelby.org =A0- My blog "On the Internet of Things"
>>> http://6lowpan.net - My book "6LoWPAN: The Wireless Embedded Internet"
>>> Mobile: +358 40 7796297
>>>
>>> _______________________________________________
>>> core mailing list
>>> core@ietf.org
>>> https://www.ietf.org/mailman/listinfo/core
>>>
>
> --
> Zach Shelby, Chief Nerd, Sensinode Ltd.
> http://zachshelby.org =A0- My blog "On the Internet of Things"
> http://6lowpan.net - My book "6LoWPAN: The Wireless Embedded Internet"
> Mobile: +358 40 7796297
>
>
