Subject: [core] About the idea of a canonical resource

From: Martin Thomson <[email-masked]>
Date: Tue, 27 Mar 2012 10:17:31 +0200

This came up in discussion in the room, and I think that it's
something fairly important.

Jari raised the idea that there was a "resource" that might have
several ways to reach it.  I don't think that this works particularly
well when you consider the subjective view that each client will have
of that resource.

It's already fairly well understood that an IP address as an
identifier is something of a subjective concept.  The position of the
observer in the network can determine what an IP address actually
identifies.  The same problem extends to the identification of
resources.

coap://x/foo and coaps://x/foo are different resources.  The fact that
they have similar names, identical content and come from the same IP
is not useful.  That applies to resources accessed over different IP
versions; and names vs IPs.  These could be resources served by
entirely different servers and a client cannot make any assumptions
about the relationship of those identifiers.

Servers are only authoritative for the resources that they serve.
That doesn't mean that an application can't learn that two resources
are "the same" through means specific to the application.

Proxied requests are a little different.  A proxy in the classic sense
only passes information along from an authoritative server.  Though as
I understand it, the deployment of infrequently available nodes relies
on "proxies" that are really servers in the sense that they provide
the identifiers.  That is, you query for coap://proxy/foo rather than
coap://infrequently.available.device/foo; which leads to the
conclusion that the proxy is not a proxy, but an authoritative server
in its own right.

--Martin