Getting Started with a W3C WoT...

48
Getting Started with a W3C WoT Project RIOT Summit, Berlin, Germany, 2016

Transcript of Getting Started with a W3C WoT...

Page 1: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

GettingStartedwithaW3CWoT ProjectRIOTSummit,Berlin,Germany,2016

Page 2: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

WhatistheWebofThings?

InternetofThings

IEEE802.15.4 Ethernet BluetoothWi-Fi LoRa …

:Connectivity

ApplicationLayer

Page 3: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

WhatistheWebofThings?

InternetofThings

IEEE802.15.4 Ethernet BluetoothWi-Fi LoRa …

:Connectivity

Page 4: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

WebofThings:Applications

WhatistheWebofThings?

InternetofThings

IEEE802.15.4 Ethernet BluetoothWi-Fi LoRa …

:Connectivity

Page 5: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

W3CWoT Mission

“interconnectingexistingInternetofThingsplatformsandcomplementingavailablestandards”

WebofThings

Nottobeyetanotherstandard

Page 6: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

WoT INTERFACE

IoTPlatformsandProtocolBindingshttp://w3c.github.io/wot/current-practices/wot-practices.html#wot-interface

Page 7: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

WoT Interface

• InterfaceexposedbyServients tothenetwork

WoTServient

WoTInterface

WoTServient

WoTInterface

Page 8: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

WoTInterface

• InterfaceexposedbyServients tothenetwork

WoTServient WoTServient

Protocol

WoTInterface WoTInterface

Page 9: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

ProtocolBindings

• Interfacecanbeboundtovariousprotocols

WoTServient WoTServient

HTTP

WoTInterface WoTInterface

ProtocolBindings

ProtocolBindings

HTTP HTTP

Page 10: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

ProtocolBindings

• Interfacecanbeboundtovariousprotocols

WoTServient WoTServient

WoTInterface

ProtocolBindings

ProtocolBindings

CoAP

CoAPWoTInterface

CoAP

Page 11: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

ProtocolBindings

• MultiplebindingspossibleonThings

WoTServient WoTServient

WoTInterface WoTInterface

ProtocolBindings

ProtocolBindings

WebSocket

WS WSMQTT

Page 12: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

ResourceModel

• InteractionpointsareWebresources

WoTServient WoTServient

ProtocolBindings

ProtocolBindings

ResourceModel

ResourceModel

WoTInterface WoTInterface··· ···

Page 13: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

ServientRole• ExposingThingsareinserverrole• ConsumingThingsareinclientrole

WoTServient WoTServient

ProtocolBindings

ProtocolBindings

InteractionResourcesWebLinks http://wot.example.com/res

ClientRole ServerRole··· ···

Page 14: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

ServientRole

• Usuallybothrolesatthesametimeà Servient

WoTServient WoTServientWoTServient

ProtocolBindings

ProtocolBindings

WebLinks

ClientRole BothRoles

ProtocolBindings

BothRoles··· ······

InteractionResources

WebLinks

InteractionResources

WebLinks

Page 15: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

THINGDESCRIPTION

MetadataandInteractionshttp://w3c.github.io/wot/current-practices/wot-practices.html#thing-description

Page 16: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

WoTServient

ProtocolBindings

ResourceModel

WoTInterface···

HowtoInteractwithWoTServients?

Whoareyou?

Whatkindof functionsdoyouhave?

Whatkindofdatadoyouserve?

HowcanIaccessthedata/function?

Whatkindofprotocols/encodings doyousupport?

Aretheresomesecurityconstrains?

àW3CThingDescription

Page 17: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

SemanticDescription

• ReachinteroperabilitythroughLinkedDatavocabularies– subject,predicate,objecttriples– rootedintheRDFmodel

• W3CThingDescription– describesWoTInterfacetointeractwithThings– extensiblewithdomain-specificvocabulary– differentserializationspossible

Page 18: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

ThingDescription(TD)

• DescribesThingmetadataandinteractions

WoTServient WoTServient

ProtocolBindings

ProtocolBindings

ResourceModel

ResourceModel

WoTInterface WoTInterface··· ···

Page 19: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

ThingDescription(TD)• ConsumingThingsareinclientrole• ExposedThingsareinserverrole

WoTServient WoTServient

ProtocolBindings

ProtocolBindings

ClientRole ServerRole

Page 20: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

ThingDescription(TD)

• ExposedThingsprovideThingDescription

WoTServient WoTServient

ProtocolBindings

ProtocolBindings

ThingDescription

InteractionResources

ClientRole ServerRoleHTTPCoAP

Page 21: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

ThingDescription(TD)

• ConsumingThingslearnWoTInterfacefromTD

WoTServient WoTServient

ProtocolBindings

ProtocolBindings

ThingDescription

InteractionResources

Metadata,WebLinks

ClientRole ServerRoleHTTP HTTPCoAP

Page 22: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

ThingDescription(TD)

• Thing-to-thingcommunication

WoTServient WoTServient

ProtocolBindings

ProtocolBindings

ThingDescription

InteractionResources

Metadata,WebLinks

ClientRole ServerRoleHTTP HTTPCoAP

Page 23: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

ThingDescription(TD)

• DefaultserializationisJSON-LD– basedonwellestablishedJSONformat– differentimplementationsandtoolsavailable–@contextdefinesvocabularies– SeeTDexample

Page 24: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

TDExample{

"@context": ["http://w3c.github.io/wot/w3c-wot-td-context.jsonld",{ "actuator": "http://example.org/actuator#" }

],

"@type": "Thing","name": "MyLEDThing",

"uris": ["coap://myled.example.com:5683/","http://mything.example.com:8080/myled/"

],

"encodings": ["JSON", "EXI"],"security": {

"cat": "token:jwt","alg": "HS256","as": "https://authority-issuing.example.org"

},

"properties": [

Page 25: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

"properties": [{"@type": "actuator:onOffStatus","name": "status","valueType": { "type": "boolean" },"writable": true,"hrefs": [ "pwr", "status" ]

}],"actions": [

{"@type": "actuator:fadeIn","name": "fadeIn","inputData": {

"valueType": { "type": "integer" },"actuator:unit": "actuator:ms"

},"hrefs": [ "in", "led/in" ]

},{"@type": "actuator:fadeOut","name": "fadeOut","inputData": {

"valueType": { "type": "integer" },"actuator:unit": "actuator:ms"

},"hrefs": [ "out", "led/out" ]

}],

Interactionresources

Property

Action

Action

Events(workinprogress)

Page 26: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

TypeSystem

• DefaultcurrentlybasedonJSONSchemahttp://w3c.github.io/wot/current-practices/wot-practices.html#type-system

• Beststartwithsimpletypes– boolean– integer– number– string

• Othersystemscanbepluggedinunder“valueType“field

Page 27: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

HowtoCreateaTD?

• Manuallycopy,paste,andmodify– http://w3c.github.io/wot/current-practices/wot-practices.html#td-examples

– orlookintotheTDrepositoryhttp://vs0.inf.ethz.ch:8080(developmentrepository,sometimesoffline)

• Generatefromdevelopmentframework– TDserializationbasedontheinteractionsprovided

Page 28: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

SCRIPTINGAPI

RuntimeEnvironmentandPortableAppshttp://w3c.github.io/wot/current-practices/wot-practices.html#scripting-api

Page 29: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

WithoutScriptingAPI

• Applicationlogicoftenimplementednatively

WoTServient

ProtocolBindings

ApplicationLogic

C/C++/Java/…

ResourceModel

WoTInterface···

Page 30: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

ScriptingAPI

• Commonruntimeenablesportableapps

WoTServient

RuntimeEnvironment

AppScript

ProtocolBindings

ResourceModel

ClientAPI

ServerAPI

Disc.API

WoTInterface···

Page 31: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

• Commonruntimeenablesportableapps

WoT Servient VendorB

RuntimeEnvironment

WoT Servient VendorA

RuntimeEnvironment

ScriptingAPI

ResourceModel ResourceModel

AppScript

ClientAPI

ServerAPI

Disc.API

ClientAPI

ServerAPI

Disc.API

WoTInterface···

WoTInterface···

ProtocolBindings ProtocolBindings

Page 32: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

• Commonruntimeenablesportableapps

WoT Servient VendorB

RuntimeEnvironment

WoT Servient VendorA

RuntimeEnvironment

ScriptingAPI

ProtocolBindings

ResourceModel

ProtocolBindings

ResourceModel

AppScript

ClientAPI

ServerAPI

Disc.API

ClientAPI

ServerAPI

Disc.API

WoTInterface···

WoTInterface···

Page 33: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

WoTRootElement(withDiscovery)interfaceWoT {

Promise<sequence<ConsumedThing>>discover(ThingFilterfilter);Promise<ConsumedThing>consumeDescription(Object td);Promise<ConsumedThing>consumeDescriptionUri(DOMStringuri);Promise<ExposedThing>createThing(DOMStringname);Promise<ExposedThing>createFromDescription(Object td);Promise<ExposedThing>createFromDescriptionUri(DOMStringuri);

};

Page 34: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

ClientAPI:ConsumedThinginterfaceConsumedThing {

readonly attributeDOMStringname;Promise<any>getProperty(DOMStringpropertyName);Promise<any>setProperty(DOMStringpropertyName,anynewValue);Promise<any>invokeAction(DOMStringactionName,anyparameter);ConsumedThingaddListener(DOMStringeventName,

ThingEventListener listener);ConsumedThing removeListener(DOMStringeventName,

ThingEventListener listener);ConsumedThing removeAllListeners(DOMStringeventName);Object getDescription();

};

Page 35: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

ServerAPI:ExposedThinginterface ExposedThing {

readonly attributeDOMStringname;ExposedThing addProperty(DOMStringname,object type);ExposedThing addAction(DOMStringname,Object input,Object output);ExposedThing addEvent(DOMStringname,Object output);Promise<any>getProperty(DOMStringpropertyName);Promise<any>setProperty(DOMStringpropertyName,anynewValue);Promise<any>emitEvent(DOMStringeventName,anypayload);ExposedThing onUpdateProperty(DOMStringn,PropertyChangeListener cb);ExposedThing onInvokeAction(DOMStringactionName,ActionHandler cb);Object getDescription();

};

Page 36: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

ScriptExample(ConsumeThing)WoT.consumeDescriptionUri("http://servient.example.com/things/counter")

.then(function(counter) {counter

.invokeAction("increment", {}).then(function() {console.log("incremented");counter

.getProperty("count").then(function(count) {console.log("new count state is " + count);

});})._catch(console.error);

})._catch(function(err) {

console.error(err);});

Page 37: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

ScriptExample(ExposeThing)WoT.newThing("counter")

.then(function(thing) {thing

.addProperty("count", {"type": "integer"})

.addAction("increment")

.onInvokeAction("increment", function() {console.log("incrementing counter");var value = thing.getProperty("count") + 1;thing.setProperty("count", value);return value;

});thing

.setProperty("count", 0)});

Page 38: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

SUMMARYW3CWebofThings

Page 39: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

ThingImplementation:WoT Servient

WoT Servient

Server RoleClient Role

Protocol Bindings

Resource Model

App Script

Legacy comm-

unication

Client API Server API

ThingDescription

Legacydevice

Web Server Web Client

Proprietary interface

Runtime Environment

WoT Servient WoT Servient

ApplicationLogic:CanconsumeremoteThingsthroughtheClientAPI,localhardwareandconnectedlegacydevices throughaPhysicalAPI(t.b.d.),andexposeThingsthroughtheServerAPI.Toallowportableappscripts, theServientmustpovide aruntimeenvironment.

ResourceModel:Provides acommonabstractionwithuniforminterfaceacrossthedifferentprotocols.LiketheWeb, itallowstoidentifyandaddressinteractionpointsthroughURIs.

ProtocolBinding:Converts abstractinteractionswithThingstodifferentprotocolsusing theinformationfromTD.

ThingDescription(TD):DeclaresWoT Interfaceforinteractionandprovides(semantic)metadatafortheThing.TDisusedbyWoTclientstoinstantiatelocalsoftwareobjectoftheThing.

WoT Interface

Discovery API(Physic. API)

Page 40: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

• NativeWoTThingshostaServient directly• TDisprovidedbyThingorsupportinghostontheWeb

WoT ServientonThingItself

WoT Servient (Wot Device)

Client RoleServer Role

Protocol Bindings

Resource Model

Script

Runtime Environment

Browser

Client Role

ProtocolBindings

Resource Model

App Script

Runtime Env.

ThingDescription

Page 41: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

• WoTServients canrunonhubs(e.g.,smartphone,gateway)• MultipleServients canbeinstantiatedthroughsandboxedapps• Appscanactasagents/proxiesforlegacydevices

WoT ServientonIntegrationHub

WoT Servient

Client RoleServer Role

Protocol Bindings

Resource Model

App Script

Legacycomm.

Legacydevice

Browser

Client Role

ProtocolBindings

Resource Model

App Script

Runtime Env. Runtime Environment

Hub Platform

ThingDescription

Page 42: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

• Acloudmirror(deviceshadow)enablesscalableremoteaccess• IssynchronizedwithlocalServient• Canforwardinteractionsandcachedata

WoT Servient intheCloud

Browser

ClientRole

ProtocolBinding

ResourceModel

AppScript

RuntimeEnvi.

WoT Servient

ClientRoleServer Role

ProtocolBinding

ResourceModel

AppScriptWoT Servient

Client RoleServerRole

Protocol Binding

ResourceModel

AppScript

Legacycomm.

Legacydevice

Hub

Cloud

CloudPlatform

Runtime EnvironmentRuntimeEnvironment

ThingDescription

ThingDescription

LocalAnywhere

Page 43: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

OnlineResources• InterestGroup

– https://www.w3.org/WoT/IG/– https://lists.w3.org/Archives/Public/public-wot-ig/ (subscribetomailinglist)

• Documents(forimplementers)– http://w3c.github.io/wot/architecture/wot-architecture.html– http://w3c.github.io/wot/current-practices/wot-practices.html (livingdocument)

Beijing2016Release:http://w3c.github.io/wot/current-practices/wot-practices-beijing-2016.html

• GitHub (documentsandproposals)– https://github.com/w3c/wot

• Wiki(organizationalinformation:WebConf calls,Face-to-Facemeetings,…)– https://www.w3.org/WoT/IG/wiki/Main_Page

• WoT Projects(implementingWoT CurrentPractices)– https://github.com/thingweb/– https://github.com/mkovatsc/wot-demo-devices– Pleaseaddyours!

Page 44: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

PLUGFESTW3CWoTF2FBeijing2016

Page 45: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

Scenario1– ‘Hello WoT‘

WoTTDinterpreterforhuman interaction

/voteTooHot /on

SetupservientinteractionbasedonTD

Page 46: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

Scenario2– ‘Full WoT‘WoTServient providing

scriptforvotingWoTClient

consumesscript

/voteTooHot /on

TDRepositorySearch for Action@type=“tooHot“WoTServient searchs

avotingservient

Page 47: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

Scenario3– ‘MiniAutomation‘

Consumebrightness sensortocontrolcurtain

Page 48: Getting Started with a W3C WoT Projectsummit.riot-os.org/.../2016/07/2-Communication-Session-WoT-Matthi… · • WoT Servientscan run on hubs (e.g., smartphone, gateway) • Multiple

OnlineResources• CurrentPractices(BeijingRelease)

– http://w3c.github.io/wot/current-practices/wot-practices-beijing-2016.html

• OrganizationWiki– https://www.w3.org/WoT/IG/wiki/F2F_meeting,_July_2016,_China,_Beijing#PlugFest

• TestCases– https://github.com/w3c/wot/blob/master/plugfest/2016-beijing/plugfest-test-cases-

beijing-2016.md

• ReportTemplate– https://github.com/w3c/wot/blob/master/plugfest/2016-beijing/TestCaseCoverage.xlsx

(t.b.d.)