Discovery TF

From Web of Things Interest Group

Task force on Discover and Provisioning

See also the wiki page on Provisioning

The work on discovery will address following aspects:

  • Definition of discovery in general
    • Understanding its purpose
    • Applicability into various use cases
  • Current landscape
    • It is intended to survey the existing literature and mechanisms for discovery.
    • Understand different discovery architectures i.e. centralized or P2P over distributed architecture
    • Means of interaction used for discovery
  • Scopes and dimensions of discovery
    • Scopes could be further classified into local and remote
    • Dimensions could be in terms of context, location, humans(from access control perspective) etc.
  • Need to consider
    • Registration and unregistration of WoT devices as a part of discovery
    • Life-cycle of discovery
    • Do we need an abstraction layer for communication technologies (NFC, BLE...) and investigate how they should relate to discovery?
  • Brainstorming on
    • What are you using to discover?
    • What are you discovering -
      • It could be in terms of a physical thing or its description or an URI of thing
      • Alternatively, it could also be mentioned in terms of resource, service and property
      • Could also be local network discovery
    • Clarify and define how Thing Description (TD) can be used in discovery
  • Open questions/items
    • Advertisement based discovery
    • Beacon based discovery
    • Serverless discovery options (similar to bittorrent peer exchange)
    • Taxonomy
    • Use cases to consider

Simplifying Discovery

There are so many different ways to discover things, how can we make this easier?

Discovery for the Web of Things involves a mix of techniques. These include mDNS, UPnP and CoAP for local area networks, involving a combination of multicast datagrams and caching of messages. Bluetooth and ZigBee feature discovery and pairing of devices. Bluetooth Smart (aka BLE) supports beacons that broadcast their presence to nearby devices. NFC and barcodes provide further ways to discover services.

Another approach involves devices registering themselves with brokers that can be queried for available services. The broker can be a local device such as a home hub on a local area network, or it could be a server on the public Internet. The query service can be subject to access control policies to protect the owner's privacy.

Discovery can be based upon social relationships between people, and between people and devices. This could be based upon centralised social networks, or distributed approaches. One idea involves personal zones that enable people to manage their devices and services, and to set access control policies for sharing these with their social contacts. Your personal zone is associated with a URI that can be used to access it.

The relationship between things provides a further basis for discovery. The relationships are defined through the models for things, where a thing has properties whose values are other things. Search engines can thus discover new things by examining the models for things they already know. This is analogous to how search engines discover web sites by examining the HTML for the pages of sites they already know.

We're looking to simplify discovery by decoupling scripts from the details of the underlying mechanisms outlined above. The idea is to provide a unified query API that can be configured to use a local or remote broker or some combination thereof. We want to evolve this approach through practical implementation experience with a wide variety of use cases and contexts. Some obvious questions include: what information needs to be passed to the query API to specify the context for the search? Can the range of mechanisms used for satisfying queries be described by a policy of some kind? The discovery agent integrated as part of a Web of Things server could talk to other agents to expand its effectiveness. The aim is to simplify discovery for regular script writers by handing the difficult work over to system programmers and a distributed network of discovery agents.


We need your help to collect relevant use cases!

Discovery Categories and Tech Landscape

This topic is being addressed at a separate wiki page @[1]

Discovery Requirements

This section points out the requirements of discovery by analysing the requirements from the use cases.

1. Discovery should be independent of the communication technologies used by the physical things. The communication technology used by the thing should be visible in the metadata to later ease the binding to that technology.

2. Depending on the context and use case, the things must register to a central registry to be discovered. CoRE Resource Directory is an example of the central registry. This type of discovery is well suited for "searching in a directory".

3. The things should be capable to automatically register themselves to the central registry for the discovery process.

4. A "lifetime" is required through which a thing is discoverable to other WoT applications and services.

5. The discovery mechanisms should enable both local and remote discovery depending on the context and use case.

6. The discovery metadata are required to carry the following information - (i) ownership in case of things, (ii) what things are associated with a specific gateway (in case of gateway discovery), (iii) the low power radio link that the things are using (i.e. the communication technology), (iv) where the data should be transmitted (i.e. address of a MQTT broker or REST API), (v) what configuration parameters to use (i.e. frequency, credentials), (vi) if any of the above have been changed.

7. A log of discovery results should be maintained for the admin purpose.

Meetings

The next TF-DI meeting is scheduled on 17th September, 2015 from 14:00-15:30 CET.

Meeting Minutes

Minutes for 20 May 2015 @[2]

Minutes for 27 May 2015 [Meeting cancelled]

Minutes for 3rd June 2015 @[3]

Minutes for 10th June 2015 @[4]

Minutes for 17th June 2015 [This meeting slot was utilized by a general WoT IG call]

Minutes for 24th June 2015 @[5]

Minutes for 1st July 2015 @[6]

Minutes for 8th July 2015 @[7]

Minutes for 15th July 2015 @[8]

Minutes for 22nd July 2015 @[9]

Minutes for 13th August 2015 [TBA]

Minutes for 27th August 2015 @[10]

Minutes for 10th September 2015 [Meeting Cancelled]

Minutes for 24th September 2015 @[11]

TF-DI report for WoT IG Call on 30th September 2015 @[12]

Minutes for 8th October 2015 @[13]

Minutes for 22nd October 2015 [Meeting Cancelled]

Minutes for 30th October 2015 Breakout session [14]

Minutes for 19th November 2015 [15]

Minutes for 3rd December 2015 [16]