Re: [core] Subscribe/Notify for CoAP
Paul Duffy <paduffy@cisco.com> Thu, 03 June 2010 00:17 UTC
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 449A728C126 for <core@core3.amsl.com>; Wed, 2 Jun 2010 17:17:36 -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=[AWL=0.000, 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 GXlt6EcrEaoR for <core@core3.amsl.com>; Wed, 2 Jun 2010 17:17:32 -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 D86F428C10E for <core@ietf.org>; Wed, 2 Jun 2010 17:17:31 -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: AvsEANKRBkxAZnwM/2dsb2JhbACeJXGmR4FyCwGYGAKCcYIjBA
X-IronPort-AV: E=Sophos;i="4.53,350,1272844800"; d="scan'208";a="117506003"
Received: from rtp-core-1.cisco.com ([64.102.124.12]) by rtp-iport-2.cisco.com with ESMTP; 03 Jun 2010 00:17:18 +0000
Received: from [161.44.65.108] ([161.44.65.108]) by rtp-core-1.cisco.com (8.13.8/8.14.3) with ESMTP id o530HIaD018940 for <core@ietf.org>; Thu, 3 Jun 2010 00:17:18 GMT
Message-ID: <4C06F48D.1020600@cisco.com>
Date: Wed, 02 Jun 2010 20:17: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: 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> <001501cb021b$e5d364c0$b17a2e40$@moritz@uni-rostock.de>
In-Reply-To: <001501cb021b$e5d364c0$b17a2e40$@moritz@uni-rostock.de>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 8bit
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: Thu, 03 Jun 2010 00:17:36 -0000
Folks, My understanding is that COAP is directed to the WEB of things. I take that to mean going with the grain of pervasively deployed WEB infrastructure. Unless there is an overwhelming compelling reason to do otherwise, IMO COAP needs to implement a strict subset of HTTP semantics. Otherwise, we open the door to complexity re: translating HTTP/COAP, and history has shown complex app gateways will always be a challenge. There are several ways to support pub/sub using stock HTTP methods. I suggest we do so. Cheers On 6/2/2010 2:21 AM, Guido Moritz wrote: > Dear WG, > > I agree to focus on the ToDos and not on the maybes. But a comprehensive > eventing concept includes more than only the method/message type. It > requires lease concepts, filtering mechanisms ... It would also require > mechanisms to assign incoming NOTIFYs to a specific SUBSCRIBTION if one and > the same client has SUBSCRIBED to more than one event of the same device. Is > this out of scope of COAP or should it be considered already at this point > to have a straight forward and clean protocol design? Hence it might be > reasonable to have SUBSCRIBE and NOTIFY as single methods and grouping every > sub functionality as type below the method? > > However, as HTTP has no native mechanism to feature eventing, for eventing > it would be always required to have a caching intermediate entity (proxy, > gateway, what ever). This one can provide which interface ever to the > external networks (HTPP, polling, WebHooks, XMPP, WS-Eventing, ...). So this > is implementation specific and might not be considered in COAP at all. > > Guido > > >> -----Ursprüngliche Nachricht----- >> Von: core-bounces@ietf.org [mailto:core-bounces@ietf.org] Im Auftrag von >> > Zach > >> Shelby >> Gesendet: Freitag, 28. Mai 2010 14:50 >> An: Adriano Pezzuto >> Cc: core >> Betreff: 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 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... >> >> 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 >> 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 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... >> >> 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ì 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 >>>> >> 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 >>> >>> <image001.gif>"Adriano Pezzuto (apezzuto)"<apezzuto@cisco.com> >>> >>> >>> >>> >>> "Adriano Pezzuto (apezzuto)"<apezzuto@cisco.com> >>> Envoyé 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 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ì 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ì 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ì 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-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. >>> -------------------------------- >>> >>> >>> >>> >>> _______________________________________________ >>> 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 >> >> _______________________________________________ >> 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] Selecting a WG document for CoAP Carsten Bormann
- Re: [core] Selecting a WG document for CoAP Angelo P. Castellani
- Re: [core] Selecting a WG document for CoAP Cullen Jennings
- Re: [core] Selecting a WG document for CoAP Angelo P. Castellani
- Re: [core] Selecting a WG document for CoAP Zach Shelby
- Re: [core] Selecting a WG document for CoAP Angelo P. Castellani
- Re: [core] Selecting a WG document for CoAP Robert Quattlebaum
- Re: [core] Selecting a WG document for CoAP Don Sturek
- Re: [core] Selecting a WG document for CoAP Robert Quattlebaum
- Re: [core] Selecting a WG document for CoAP Don Sturek
- Re: [core] Selecting a WG document for CoAP Charles Palmer
- Re: [core] Selecting a WG document for CoAP Ivan Žužak
- Re: [core] Subscribe/Notify for CoAP Zach Shelby
- Re: [core] Selecting a WG document for CoAP matthieu.vial
- Re: [core] Selecting a WG document for CoAP Charles Palmer
- Re: [core] Selecting a WG document for CoAP matthieu.vial
- Re: [core] Subscribe/Notify for CoAP Angelo P. Castellani
- Re: [core] Selecting a WG document for CoAP Angelo P. Castellani
- Re: [core] Selecting a WG document for CoAP Zach Shelby
- Re: [core] Subscribe/Notify for CoAP Zach Shelby
- Re: [core] Subscribe/Notify for CoAP Paul Duffy
- Re: [core] Subscribe/Notify for CoAP Adriano Pezzuto (apezzuto)
- Re: [core] Subscribe/Notify for CoAP Charles Palmer
- Re: [core] Subscribe/Notify for CoAP Paul Duffy
- Re: [core] Subscribe/Notify for CoAP Zach Shelby
- Re: [core] Subscribe/Notify for CoAP Paul Duffy
- Re: [core] Subscribe/Notify for CoAP Adriano Pezzuto (apezzuto)
- Re: [core] Subscribe/Notify for CoAP matthieu.vial
- Re: [core] Subscribe/Notify for CoAP matthieu.vial
- Re: [core] Subscribe/Notify for CoAP Robert Cragie
- Re: [core] Subscribe/Notify for CoAP Adriano Pezzuto (apezzuto)
- Re: [core] Subscribe/Notify for CoAP Zach Shelby
- Re: [core] Subscribe/Notify for CoAP Robert Cragie
- Re: [core] Subscribe/Notify for CoAP Adriano Pezzuto (apezzuto)
- Re: [core] Subscribe/Notify for CoAP matthieu.vial
- Re: [core] Subscribe/Notify for CoAP Robert Cragie
- Re: [core] Subscribe/Notify for CoAP matthieu.vial
- Re: [core] Subscribe/Notify for CoAP Zach Shelby
- Re: [core] Subscribe/Notify for CoAP Robert Cragie
- Re: [core] Subscribe/Notify for CoAP Brian Frank
- Re: [core] Subscribe/Notify for CoAP matthieu.vial
- Re: [core] Subscribe/Notify for CoAP Angelo P. Castellani
- Re: [core] Subscribe/Notify for CoAP Guido Moritz
- Re: [core] Subscribe/Notify for CoAP Vlad Trifa
- Re: [core] Subscribe/Notify for CoAP Paul Duffy
- Re: [core] Subscribe/Notify for CoAP Paul Duffy
- Re: [core] Subscribe/Notify for CoAP Richard Kelsey
- Re: [core] Subscribe/Notify for CoAP Zach Shelby
- Re: [core] Subscribe/Notify for CoAP Mark Baker
- Re: [core] Subscribe/Notify for CoAP Geoff Mulligan
- Re: [core] Subscribe/Notify for CoAP Stuber, Michael
- Re: [core] Subscribe/Notify for CoAP Mikko Saarnivala
- Re: [core] Subscribe/Notify for CoAP Peter Saint-Andre
- Re: [core] Subscribe/Notify for CoAP Stuber, Michael
- Re: [core] Subscribe/Notify for CoAP Don Sturek
- Re: [core] Subscribe/Notify for CoAP Peter Saint-Andre
- Re: [core] Subscribe/Notify for CoAP Peter Saint-Andre
- Re: [core] Subscribe/Notify for CoAP Stuber, Michael
- Re: [core] Subscribe/Notify for CoAP Peter Saint-Andre
- Re: [core] Subscribe/Notify for CoAP Robert Cragie
- Re: [core] Subscribe/Notify for CoAP Simpson, Robby (GE Energy Services)
- Re: [core] Subscribe/Notify for CoAP Stuber, Michael
- Re: [core] Subscribe/Notify for CoAP Paul Duffy
- Re: [core] Subscribe/Notify for CoAP Vlad Trifa
- Re: [core] Subscribe/Notify for CoAP Robert Cragie
- Re: [core] Subscribe/Notify for CoAP Zach Shelby
- Re: [core] Subscribe/Notify for CoAP Zach Shelby
- Re: [core] Subscribe/Notify for CoAP Robert Cragie
- Re: [core] Subscribe/Notify for CoAP Brian Frank
- Re: [core] Subscribe/Notify for CoAP Guido Moritz
- Re: [core] Subscribe/Notify for CoAP Guido Moritz
- Re: [core] Subscribe/Notify for CoAP Guido Moritz
- Re: [core] Subscribe/Notify for CoAP Karl Ostendorf
- Re: [core] Subscribe/Notify for CoAP Robert Cragie