Re: [core] Miscellaneous HTTP mapping related questions

Carsten Bormann <cabo@tzi.org> Wed, 02 March 2011 12:21 UTC

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 1D8433A6C42 for <core@core3.amsl.com>; Wed, 2 Mar 2011 04:21:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -106.374
X-Spam-Level:
X-Spam-Status: No, score=-106.374 tagged_above=-999 required=5 tests=[AWL=-0.125, BAYES_00=-2.599, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-4, 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 SQnPaXDd8QpX for <core@core3.amsl.com>; Wed, 2 Mar 2011 04:21:52 -0800 (PST)
Received: from informatik.uni-bremen.de (mailhost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::12]) by core3.amsl.com (Postfix) with ESMTP id 7A9423A67EC for <core@ietf.org>; Wed, 2 Mar 2011 04:21:51 -0800 (PST)
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 p22CMk1q029054; Wed, 2 Mar 2011 13:22:46 +0100 (CET)
Received: from eduroam-0614.wlan.uni-bremen.de (eduroam-0614.wlan.uni-bremen.de [134.102.18.102]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by smtp-fb3.informatik.uni-bremen.de (Postfix) with ESMTPSA id F096265D; Wed, 2 Mar 2011 13:22:46 +0100 (CET)
Mime-Version: 1.0 (Apple Message framework v1082)
Content-Type: text/plain; charset="us-ascii"
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <AANLkTimLMDMs7bUPa5uTrLc6FCU8839PJFf638JfDf3j@mail.gmail.com>
Date: Wed, 02 Mar 2011 13:22:46 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <AF4FD62E-3452-4ED7-8A73-96CBE16557BD@tzi.org>
References: <AANLkTimLMDMs7bUPa5uTrLc6FCU8839PJFf638JfDf3j@mail.gmail.com>
To: "Angelo P. Castellani" <angelo@castellani.net>
X-Mailer: Apple Mail (2.1082)
Cc: core <core@ietf.org>
Subject: Re: [core] Miscellaneous HTTP mapping related questions
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, 02 Mar 2011 12:21:53 -0000

(Individual response.)

On Mar 2, 2011, at 12:15, Angelo P. Castellani wrote:

> Hi all,
> 
> after the last interim meeting, I have various open questions about
> the current coap/observe design:
> 
> a) In coap-04 there is no reference to intercepting (transparent)
> proxies. Is compatibility with intecepting proxies important and
> required for CoRE?

Actually, coap-04 says:

   Reverse Proxy
      A "reverse proxy" is an end-point that acts as a layer above some
      other server(s) and satisfies requests on behalf of these, doing
      any necessary translations.  Unlike a proxy, a reverse proxy
      receives requests as if it was the origin server for the target
      resource; the requesting client will not be aware that it is
      communicating with a reverse proxy.

Is that covering your idea of an intercepting proxy?
Or is the latter something else?

In any case, the text tries to separate the concept of proxying (proxy configured by client) from the more general concept of a CoAP intermediary, which includes both proxies and reverse proxies.  Maybe that wasn't too sucessful yet.

> b) In observe-01 examples a direct mapping of HTTP bidirectional is
> missing. Do we believe that it is a required and important feature?
> 
> ( See https://datatracker.ietf.org/doc/draft-loreto-http-bidirectional/
> for an extensive discussion about these techniques. )

These hacks are not part of HTTP.

They are useful because HTTP can't evolve quickly enough, because of the installed base.
CoAP, however, can.  So the question would be:
Which of the CoAP features do we want to cover by a "standard" mapping to the hacks covered in the draft?
(Since the latter aren't even standardized, that is not a trivial question.)
I certainly would not be happy with inventing non-REST features in CoAP just to create a questionable equivalence to these hacks, but I think that's not what you are suggesting.

> ( See https://datatracker.ietf.org/doc/draft-castellani-core-http-coap-mapping/
> for a possible mapping of these to observe. )

We need to clear up the terminology here:
These are not HTTP features, so we can't "map" them.
But we could install these hacks in an intermediary to cover CoAP features that cannot be mapped to HTTP.
(But then I wouldn't be happy about the CoRE WG surging ahead and standardizing these HTTP hacks.)

It is easy to use HTTP REST features to map CoAP observe to HTTP in a caching intermediary.
The only question is whether there is a need for "intention signaling"/hinting from the client to the intermediary so the intermediary can decide whether it should establish an observation relationship even before it has a view of the traffic patterns.

> c) In coap-04 multicast is supported. Is important to evaluate a
> standard mapping of a single HTTP request/response to a multicast CoAP
> request and related responses?
> 
> ( https://datatracker.ietf.org/doc/draft-castellani-core-http-coap-mapping/
> contains a brief discussion about this, and in my opinion this mapping
> should be realized using a single TCP connection mapped to multicast
> UDP by the HTTP/CoAP proxy. )

I continue to believe that we need to define a media type for forwarding GET responses collected from a multicast request.
(If the multicast really is an anycast, there may be a shortcut if it is not important who sent the response.)

For PUT, we'd at least need to collect response codes, maybe with a similar shortcut.

Gruesse, Carsten