Re: [6lowapp] draft-shelby-6lowapp-coap-00

Guido Moritz <guido.moritz@uni-rostock.de> Thu, 21 January 2010 14:45 UTC

Return-Path: <guido.moritz@uni-rostock.de>
X-Original-To: 6lowapp@core3.amsl.com
Delivered-To: 6lowapp@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id B63333A697E for <6lowapp@core3.amsl.com>; Thu, 21 Jan 2010 06:45:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.8
X-Spam-Level:
X-Spam-Status: No, score=-1.8 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HELO_EQ_DE=0.35, MSGID_MULTIPLE_AT=1.449, 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 FJ7Sipqjd-ip for <6lowapp@core3.amsl.com>; Thu, 21 Jan 2010 06:45:13 -0800 (PST)
Received: from mailrelay1.uni-rostock.de (mailrelay1.uni-rostock.de [139.30.8.201]) by core3.amsl.com (Postfix) with ESMTP id 092483A693B for <6lowapp@ietf.org>; Thu, 21 Jan 2010 06:45:13 -0800 (PST)
Received: from email2.uni-rostock.de (139.30.8.209) by edge01.uni-rostock.de (139.30.8.159) with Microsoft SMTP Server (TLS) id 8.2.213.0; Thu, 21 Jan 2010 15:45:07 +0100
Received: from Schlappi (139.30.201.173) by email2.uni-rostock.de (139.30.8.210) with Microsoft SMTP Server (TLS) id 8.2.213.0; Thu, 21 Jan 2010 15:45:07 +0100
From: Guido Moritz <guido.moritz@uni-rostock.de>
To: 6LoWAPP <6lowapp@ietf.org>
References: <0B3D3615-F1AB-4067-B758-0A988C10CD98@sensinode.com>
In-Reply-To: <0B3D3615-F1AB-4067-B758-0A988C10CD98@sensinode.com>
Date: Thu, 21 Jan 2010 15:45:11 +0100
Message-ID: <004201ca9aa8$55d02cd0$01708670$@moritz>
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: AcqZDHoOT3M8skpgSYKQIqzdJjwnigBlF4vQ
Content-Language: de
Subject: Re: [6lowapp] draft-shelby-6lowapp-coap-00
X-BeenThere: 6lowapp@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Application protocols for constrained nodes and networks <6lowapp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/6lowapp>, <mailto:6lowapp-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/6lowapp>
List-Post: <mailto:6lowapp@ietf.org>
List-Help: <mailto:6lowapp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/6lowapp>, <mailto:6lowapp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Jan 2010 14:45:14 -0000

Dear Zach,

personally I am quite familiar with DPWS (see my I-D in 6LoWAPP), but I may
have some more commends on this. I would like to propose to have look on
DPWS, WS-Discovery, and SOAP-over-UDP specs at OASIS. They might point to
some conceptual solutions useful for COAP. Please find more comments below
in the text.

Regards,
Guido

> -----Ursprüngliche Nachricht-----
> Von: 6lowapp-bounces@ietf.org [mailto:6lowapp-bounces@ietf.org] Im
> Auftrag von Zach Shelby
> Gesendet: Dienstag, 19. Januar 2010 14:37
> An: 6LoWAPP
> Betreff: [6lowapp] draft-shelby-6lowapp-coap-00
> 
> Does anyone have comments/ideas regarding http://www.ietf.org/id/draft-
> shelby-6lowapp-coap-00.txt that we submitted before the holidays? We
> would like to start some design work, so any feedback would be really
> useful. I've identified some areas where we need input/discussion on
> the list:
> 
> 1. Content-type encoding (Section 2.4). Any ideas or suggestions on how
> to encode this and what is enough space? How should such an encoding be
> managed, ask IANA to do that? Any pointers to a similar encoding done
> elsewhere?
Encoding in the COAP header might be most efficient way, especially focusing
parsing incoming headers/messages. But extensibility is quite important and
a core feature of REST. XML send via HTTP uses "magic bytes". SOAP-over-UDP
(XML SOAP envelopes send via UDP without HTTP header) binding
implementations can use these magic bytes for data format identification.
COAP should include same features to allow own or not prior defined data
formats.

> 
> 2. Caching (Section 2.6). Should we go towards an in-band or an out-of-
> band discovery approach? Personally I think an in-band approach is by
> far the simplest, although it requires some header space when present.
Out-of-band discovery might imply overlapping with other specs (mDNS,
WS-Discovery,..). Thus, comprehensive in-band discovery seems a proper
approach. Header space should not be a problem because
methods/actions/operations of COAP are very limited. Additional information
to be included in the header for discovery purposes would have to be
included for out-of-band approaches as well but would require additional
efforts to work on "two separated tracks".

> 
> 3. Subscribe/Notify (Section 2.7). This is an area that definitely
> needs discussion. The current proposal is to use a REST interface to
> create subscriptions and which are then sent using a NOTIFY message to
> a call-back URL. How to format the body o the subscription (URL to
> subscribe to, URL call-back, parameters?).
Similar features are included in DPWS by using WS-Eventing. In
subscriptions, a client includes an endpoint for event delivery. This is a
transport specific address including protocol and address.
But additional features might be required for a complete eventing concept.
This includes lease management concepts and filtering concepts (e.g. set
limits/thresholds for a temperature value). Furthermore, a data distribution
model is required. WS-Eventing uses by default unicast messages to the
clients (sinks of event). This requires one message to every subscriber.
XMPP instead needs, due to its architecture, only one message to the server
which distributes data to all subscribed clients without need for multiple
sendings of the originator.

> 
> 4. Resource Discovery (Section 2.9). The proposal is to use a new
> DISCOVER method which can be sent either unicast or multicast. The only
> difficult part there is the format of the list of resources (URLs)
> which would be returned in such a response. This is a little bit like
> index.html. We had some discussions in Hiroshima that XMPP has
> developed some ways of coding lists of URLs and that could be re-used.
> Does someone have a pointer for us on that?
WS-Discovery specification goes one step further and combines metadata
exchange for devices and service descriptions. In the first step, a device
itself is discovered which is a ensemble of "Hosted Services" (services or
in COAP single resource). A single service itself provides also metadata
(methods/operations of service) which can be queried. 
The new Bluetooth Low Energy Attribute Protocol uses a similar approach to
request either all services of a attribute server or specific attributes of
a service.
To sum up, I am not sure which functionalities the discovery of COAP has to
provide, but it might require more efforts then just to define how to encode
a set of URLs.

> 

Some more comments:
-REQ2 seems quite hard. Without knowledge about design/architecture to
define a header size.

-REQ3: Is it useful to make sleeping nodes to an application layer
requirement? 6LoWPAN allows seamless integration into existing networks. To
deal with sleeping nodes always requires caching intermediates and thus does
not permit for ad-hoc connectivity, because external endpoints cannot be
aware of this. Sleeping nodes should be solved on link layer, without design
requirements for application layer?

> Thanks,
> Zach
> 
> --
> http://www.sensinode.com
> http://zachshelby.org - My blog "On the Internet of Things"
> http://6lowpan.net - New book - "6LoWPAN: The Wireless Embedded
> Internet"
> Mobile: +358 40 7796297
> 
> Zach Shelby
> Head of Research
> Sensinode Ltd.
> Kidekuja 2
> 88610 Vuokatti, FINLAND
> 
> This e-mail and all attached material are confidential and may contain
> legally privileged information. If you are not the intended recipient,
> please contact the sender and delete the e-mail from your system
> without producing, distributing or retaining copies thereof.
> 
> 
> 
> 
> _______________________________________________
> 6lowapp mailing list
> 6lowapp@ietf.org
> https://www.ietf.org/mailman/listinfo/6lowapp