diff --git a/images/overview.drawio b/images/overview.drawio index 73be0284..f5f61930 100644 --- a/images/overview.drawio +++ b/images/overview.drawio @@ -1 +1,191 @@ -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 \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/overview.png b/images/overview.png index af1f1dff..10b6984c 100644 Binary files a/images/overview.png and b/images/overview.png differ diff --git a/images/overview.svg b/images/overview.svg index de4c6ffe..5b2a3e2d 100644 --- a/images/overview.svg +++ b/images/overview.svg @@ -1,3 +1,4 @@ + -
CoRE-RD
Query/
Resolve
CoRE-RD...
Thing
Description
Thing...
TDir Query/
Resolve
TDir Query/...
GET
GET
URL
URL
Query/Resolve
Query/Resolve
DID
DID
contains
contains
DID Document
DID Document
contains
contains
contains
contains
Core Link Format
Core Link Format
Broadcast/Multicast
"GET /.well-known/core"
Broadcast/Multicast...
mDNS
_wot._tcp.local PTR?
mDNS...
(no prior
information)
(no prior...
Core RD URL
Core RD URL
mDNS
"name"._wot._tcp.local SRV?
"name"._wot._tcp.local TXT?
mDNS...
DNS name of Thing/TDir
DNS name of T...
contains
contains
Bluetooh Beacon,
matrix barcode,
Written URL
Bluetooh Beacon,...
Thing
Description
of Directory
Thing...
GET
GET
(no prior
information)
(no prior...
5.4 CoRE Resource Directory
5.4 CoRE Resource Directory
5.3 DNS-SD / mDNS
5.3 DNS-SD / mDNS
5.1 Direct
5.1 Direct
5.5 Decentralized Identifier
5.5 Decentralized Identifier
6. Exploration Mechanisms
6. Exploration Mechanisms
Create Well-Known URI, such as
https://example.com/.well-known/wot-thing-description
Create Well-Known URI, such as...
IP address or hostname
IP address or...
5.2 Well-Known URIs
5.2 Well-Known URIs
Viewer does not support full SVG 1.1
\ No newline at end of file +
CoRE-RD
Query/
Resolve
CoRE-RD...
Thing
Description
Thing...
TDir Query/
Resolve
TDir Query/...
GET
GET
URL
URL
Query/Resolve
Query/Resolve
DID
DID
contains
contains
DID Document
DID Document
contains
contains
contains
contains
Core Link Format
Core Link Format
Broadcast/Multicast
"GET /.well-known/core"
Broadcast/Multicast...
mDNS
_wot._tcp.local PTR?
mDNS...
(no prior
information)
(no prior...
Core RD URL
Core RD URL
mDNS
"name"._wot._tcp.local SRV?
"name"._wot._tcp.local TXT?
mDNS...
DNS name of Thing/TDir
DNS name of T...
contains
contains
Bluetooth beacon,
matrix barcode,
Written URL
Bluetooth beacon,...
Thing
Description
of Directory
Thing...
GET
GET
(no prior
information)
(no prior...
5.4 CoRE Resource Directory
5.4 CoRE Resource Directory
5.3 DNS-SD / mDNS
5.3 DNS-SD / mDNS
5.1 Direct
5.1 Direct
5.5 Decentralized Identifier
5.5 Decentralized Identifier
6. Exploration Mechanisms
6. Exploration Mechanisms
Create Well-Known URI, such as
https://example.com/.well-known/wot-thing-description
Create Well-Known URI, such as...
IP address or hostname
IP address or...
5.2 Well-Known URIs
5.2 Well-Known URIs
Thing
Link
Thing...
GET
GET
describedby, hosts, external
describedby, hosts, external
Text is not SVG - cannot display
\ No newline at end of file diff --git a/index.html b/index.html index fef0941b..e6db5014 100755 --- a/index.html +++ b/index.html @@ -251,7 +251,7 @@

Terminology

Architecture

- shows an overview of discovery process. + shows an overview of the discovery process.
Architecture alt="Discovery process overview" />
Discovery process overview
-

- To do: an overview of the two-phase approach and its purpose, which is to support - controlled and authenticated access to metadata by authorized users only. + The WoT discovery process is designed using a two-phase approach. + In the first phase, one or more of a set of "Introduction" mechanisms may be used to + generate a set of candidate URLs. These URLs do not themselves contain metadata, + but are used in the second stage, "Exploration", to actually fetch metadata. + The intention is that Introductions are relatively open and can support any + mechanism that can return a URL, including simply entering URLs directly. + Introductions, however, do not include any security or privacy controls and + so should not provide metadata directly. Instead, the provided URLs are followed + to "Exploration" mechanisms that will actually provide metadata but allow for + suitable security and privacy controls.

+

+ Note that the discovery process can produce a set of URLs following + its Introduction phase, and the final output after the Exploration phase + can be a set of Thing Descriptions. + Generally each URL provided by the Introduction phase points at a Thing Description, + and in the simplest case this is in fact the Thing Description of a Thing that + represents an IoT device. In the case of self-describing Things the URL might + even point directly at the Thing which can serve its own Thing Description, + but in general Thing Descriptions might also be provided by other entities. + However, there are also two special cases that allow for more flexibility: +

Introduction Mechanisms

@@ -306,6 +344,14 @@

Well-Known URIs

When a request is made at the above Well-Known URI, the server MUST return a Thing Description as prescribed in [[[#exploration-self]]]. + It is sometimes the case that a well-known URI + needs to index multiple TDs. + For example, a URI may be inferred from + an IP address but multiple Things are hosted + at that IP address. In this case, a single + TD is still returned by the process but that + TD is a Thing Link and is used only + to collect references to other TDs.

The service name in Well-Known URI (wot-thing-description) is tentative. @@ -505,22 +551,53 @@

Exploration Mechanisms

Thing Link
- - A TD which describes a reference to another TD MUST use type `ThingLink` from the +
    +
  • + A TD which describes references to other TDs MUST use type `ThingLink` from the discovery context or URI `https://www.w3.org/2021/wot/discovery#ThingLink`. - - - A Thing Link MUST define the referenced TD as a Link with - `describedby` link relation type, `application/td+json` media type - and `href` set to the target URL. - +
  • +
  • + A Thing Link MUST include either only a single Link with the + `describedby` link relation type or one or more Links with any + combination of `hosts` and `external` relation types. + + To be clear, `describedby` cannot be mixed with other Link relation types, and there should be + only one such Link. +
  • +
  • + A Thing Link including a Link with the `describedby` link relation type + MUST use `application/td+json` media type and `href` set to the target URL in that Link. +
  • +
  • + A Thing Link including Links with either `hosts` or `external` relation types + MUST use `application/td+json` media type for each such Link. +
  • +
  • + A Thing Link including a Link with the `hosts` relation type + MUST use an `href` set to the target URLs, + hosted under the same context IRI as the Thing Link, in each such Link. +
  • +
  • + A Thing Link including a Link with the `external` relation type + MUST use an `href` set to the target URLs, + hosted under a different context IRI as the Thing Link, in each such Link. +
  • +
+ The use of the `hosts` or `external` relations does not imply anything about the content of the TD + hosted externally; for example, a TD referenced by either relation may or may not include local URLs. + This relation is just describing where the TD is located, not where the Thing that TD describes is + located. + It is usually the case, given the context URL restrictions on these relation types, + that `hosts` Links will use relative URLs and `external` Links will use + absolute URLs.

- [[[#example-td-link-type]]] is an example Thing Link. + [[[#example-td-link-type]]] is an example Thing Link using the `describedby` relation. + [[[#example-td-link-set]]] is an example Thing Link using the `hosts` and `external` relations.

-
@@ -578,12 +711,26 @@

Self-description

The self-description is an exploration mechanism in which a Thing hosts its own TD and exposes it at a URL or - through others means. + through other means. If exposed at a URL (e.g. over HTTP or CoAP), the URL may be advertised via one of the [[[#introduction-mech]]]. - The hosted TD may also be registered inside a Thing Description Directory + The same TD may also be registered (at different URL) inside a Thing Description Directory as prescribed in [[[#exploration-directory]]].

+

+ In some cases a single URL may need to return multiple + TDs. For large numbers of TDs that may need to change + dynamically over time, + a Thing Description Directory (TDD) + can be used instead; in such a case the TD returned is that + of the TDD. + If a small fixed number of TDs need to be returned, + particularly on small devices that do not want to host the + full TDD interface, a single TD can be returned, marked as + a Thing Link, which link to multiple TDs hosted + at different + URLs. +

The self-description using the following protocols must be according to the given specification: