survey of iotplatforms - world wide web consortium of iot platforms.pdfsurvey of iotplatforms the...

25
Survey of IoT Platforms The Web of Things is intended to be an abstraction layer for the IoT so we need to ensure that it is an effective fit to a broad range of commercial IoT platforms Dave Raggett <[email protected]> W3C champion for the Web of Things

Upload: others

Post on 22-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

SurveyofIoT Platforms

TheWebofThingsisintendedtobeanabstractionlayerfortheIoT soweneedtoensurethatitisaneffectivefit

toabroadrangeofcommercialIoT platforms

DaveRaggett<[email protected]>W3CchampionfortheWebofThings

Page 2: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

WebofThings

• ByanalogytotheInternetasanabstractionlayerthatenablesservicesoverdifferentnetworksandtechnologies

• WebofThingsseekstoenableapplicationplatformsandopenmarketsofservicesbaseduponanabstractionlayerfortheIoT

• BaseduponLinkedDataasalinguafrancafordataanddatamodels

2

App App App App

OPC OneM2M OCF Blue

tooth

...

...

ApplicationPlatform

ApplicationContracts

IoT PlatformContracts

InformationmodelsBaseduponLinkedData

AgreementsaboutIoTtechnologies

LPWAN

App

Page 3: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

LinkedData• Alinguafrancafordataandmetadata

– Basisforrelatingdataandmetadataindifferentformatsanddatamodels

• ConceptsandrelationshipsaregivengloballyuniqueidentifiersusingWebaddresses

• TheseaddressescanbeusedtoobtainfurtherinformationenablingaWebofLinkedData

• W3Chasamaturesuiteofstandards– e.g.OWLontologylanguage,SPARQLquery

language(analogoustoSQL)

3

UKCompaniesHouseLinkedDataService

LinkedDatamakesiteasytocombinedistributedsourcesofinformation

Page 4: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

LinkedData*forIntegration• Exposeexistinginformationsourcesvia

LinkedDatafrontendthathidesthedifferentinternaldataformats

• ProvideLinkedDatamodelsforeachsource

• SPARQLendpointsforremotequeries• RDF-SandOWLforontologies• Shaperulesforvalidationand

transformationofRDFgraphs• BigdatawithLinkedDatastreams• Combinewithaccesscontroland

termsandconditionsofuse

4*SeeW3C’sLinkedDatapage

Page 5: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

SurveyofIoT Platforms

• WorkfundedbytheEuropeanCommissionthroughtheCreate-IoT CoordinationandSupportAction– ProjectID:732929,partofIoT-02-2016- IoT Horizontalactivities

• BaseduponpubliclyavailableinformationforabroadrangeofIoT platforms– NotrestrictedtoIoT sensorsandactuators– Webofthingsencompassesabstractentities

• e.g.Virtualdevices,Webservices,etc.• Status– ongoing• WillbepublishedasaCreate-IoT report

5

Page 6: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

Coverage• SofarIhavestudied

– OCFOIC1.1specifications– oneM2M– BACnet– ECHONET– SmartDeviceTemplate(HGI)– BasicRESToverHTTPandCoAP

• Lookingforinformationonotherplatforms– OPC-UA– Hypermediacontrols– Webservices

• Thissurveyfocusesontheinformationmodel• Afurthersurveyisplannedforsecurity

6

Page 7: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

Methodology• ReadtheIoT platformspecificationsandlookforcommonpatterns• Examinerequirementsfortheobjectsexposedtoapplications

– WheretheseobjectsaredecoupledfromtheunderlyingIoT platforms,communicationpatterns,protocolsanddataformats

• AttempttoreverseengineerLinkedDatamodelsforthecapabilitiesdefinedbyeachIoT platform

• ExpressthemodelsinJSONandLinkedData– PlainJSON*usingacontextfreegrammar– TurtleformatforLinkedData

• ShowcasewithanHTMLbasedmodelbrowser

7*EasiertounderstandthanJSON-LD+JSONSchema

Page 8: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

OCF• OIC1.1specifications

– RESTfulinterfaceoverCoAP andHTTP– SpecificationusesRestfulAPIMarkupLanguage(RAML)

• Textbased,butnotmarkupinthesenseofXML• SupplementedwithtablesforpropertydefinitionandCRUDNbehaviour

• OCFdefinedevicesintermsofacompositionofresources– SeeSmartHomeDevicespecificationandResourceTypespecification

• EachresourceisdefinedinRAML– Identifiedbyaresourcetype,e.g.

• oic.r.sensor.acceleration– Canimportshareddefinitionsforresourcetypes– RAMLisnotusedatrun-time– RAMLisverbosewithahighdegreeofpredictability

• IwasabletoregeneratetheRAMLfromconcisethingdescriptionsusingsimpleheuristics• OCFspecificationsavailablefrom

– https://openconnectivity.org/resources/specifications 8

Page 9: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

OCFOIC1.1release• 63Resources

– Accelerationsensor– ActivityCount– Altimeter– AtmosphericPressure– AirFlow– AudioControls– AutoFocus– AutoDocumentFeeder– AutoWhiteBalance– Battery– BinarySwitch– Brightness– …– WaterSensor– Weight

• 15Devices– AirConditioner– AirPurifier– WindowBlind– Camera– Dishwasher– Door– Dryer– Fan– GarageDoor– Light– Oven– Printer– MultifunctionPrinter– Receiver– Refrigerator

9See:http://www.w3.org/WoT/demos/td2ttl/oic.html

Page 10: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

oneM2M• RESTfulinterfacesoverCoAP,HTTPandMQTT• Definesdevicesintermsofacompositionofmodules• ModulesareformalizedinXML• HomeAppliancesandInformationModels

– Definesalargesetofdevicesandmodules– BroadlyspeakingsimilarincoveragetoOCF– Butnotcompatible…– GuidelinesoninterworkingwithLwM2M,AllJoynandOIC

• SeealsothebaseontologyandtheSAREFontology• oneM2Mspecificationsavailablefrom

– http://www.onem2m.org/technical/published-documents

10

Page 11: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

oneM2M• 40Modules

– AlarmSpeaker– AudioVideoInput– AudioVolume– Battery– BinarySwitch– BioElectricalImpedanceAnalysis– Boiler– Brightness– Clock– Colour– Colour Saturation– …– Wind

• 13Devices– AirConditioner– ClothesWasher– ElectricVehicleCharger– Light– MicroGeneration– Oven– Refrigerator– RobotCleaner– SmartElectricMeter– StorageBattery– Television– Thermostat– HotWater

11See:http://www.w3.org/WoT/demos/td2ttl/m2m.html

Page 12: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

BACnet• Buildingautomation

– Lighting,Heating,ventilationandairconditioning,elevators,emergencylighting&alarms• Corespecsdefineinformationmodel,metadataandprotocols

– Standardised asISO164845andISO16484-6– BACnet objectsareacollectionofattributescalled“properties”– BACnet objectscorrespondtoWebofThingsproperties

• 54objecttypesinBACnet 2012specification– BACnet propertiescorrespondtoWebofThingsmetadata

• e.g.objectnamesandIDs,highandlowlimitsforvalues• Vendorscanextendthistosuittheirdevices

– Needtolookatvendordocumentationfordevicedefinitions• Essentiallyproperties,actions,eventsandalotofmetadata

– Informationonwhetherdeviceisinoroutofservice,anditsreliability– 16levelprioritymechanismforresolvingconflictingpropertyupdates

• SeeMichaelNewman’sbook– “BACnet:theglobalstandardforbuildingautomationandcontrolnetworks”

• TheeBookismuchcheaperthantheISOstandard!

12

Page 13: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

ECHONET

• Homeautomationandpersonalhealth– Deviceswithproperties,eventsandmetadata– NoactionsthatI’vefoundsofar,but…– Includesavocabularyfordescribinghomes

• Livingroom,diningroom,kitchen,bathroom,lavatory,washroom,passageway,room,stairway,frontdoor,storeroom,garden,veranda/balcony

• ECHONETspecificationsavailablefrom– https://echonet.jp/spec_en/

13

Page 14: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

ECHONETSharedProperties(22)• OperationStatus• InstallationLocation• StandardVersion• FaultStatus• FaultDescription• ManufacturerCode• BusinessFacility• ProductCode• ProductionNumber• ProductionDate• PropertyMap

• IdentificationNumber• Manufacturer’sFaultCode• CurrentLimitSetting• Power-SavingOperationSetting• RemoteControlSetting• CumulativeOperatingTime• CurrentTime• CurrentDate• MeasuredInstantaneousPower• MeasuredCumulativePower• PowerLimitSetting

14

Page 15: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

ECHONETSensors(44)• GasLeak• CrimePrevention• EmergencyButton• First-Aid• Earthquake• ElectricLeak• HumanDetection• Visitor• Call• Condensation• AirPollution• Oxygen• Illuminance• Sound• Mailing

• AirSpeed• Odor• Flame• ElectricEnergy• CurrentValue• WaterFlow• Micro-Motion• Passage• BedPresence• Open/Dose• ActivityAmount• HumanBodyLocation• Snow• AirPressure

15

• Weight• Temperature• Humidity• Rain• WaterLevel• BathWaterLevel• BathHeatingStatus• WaterLeak• WaterOverflow• Fire• CigaretteSmoke• CarbonDioxide• Gas• VOC• DifferentialPressureLoss

Page 16: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

ECHONETDeviceGroups• AirConditioners(10)

– Home/commercial,ventilationfan,airconditionerfan,aircleaner,humidifier,electricheater,fan,indoor/outdoor,electricstorageheater

• Housing/Facilitiesrelated(31)– Blind/shade,shutter,rainslidingdoor,…,buzzer,electricvehiclecharger

• Cooking/Householdrelated(10)– Electricthermos,refrigerator,microwave,cooker,ricecooker,…,washer/dryer,outdoorunit

• Healthrelated(5)– Weighingmachine,thermometer,bloodpressure,bloodsugar,bodyfat

• ManagementOperationrelated(3)– Switch,JEM-A/HAcontroller,DReventcontroller

• AudioVisualrelated(4)– Display,television,audio,networkcamera

16Frequentuseofenumerationswithbinarycodes,e.g.cleanrinsing=0x29

Page 17: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

SmartDeviceTemplate• DefinedbytheHomeGateway

Initiative– XMLSchemaforsmarthome

devices,see• https://github.com/Homegate

way/RWD050-public• Devicesdefinedasasetof

modules• Modulesdefinedata,actions

andevents• DataisHGI’snamefor

property• Deviceinfometadata

17

Page 18: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

RESToverCoAP andHTTP• RoyFielding’srepresentationalstatetransferdesignpatternforstatelessprotocols• ResourcesidentifiedbyURLs• Coremethodsforoperations

– Create,Read,Update,DeleteandNotify– Internetmediatypesforcontent

• Plusmeanstoembedmetadatainprotocolheaders– Linkrelationsasbasisfordiscovery

• UsedasbuildingblocksforIoT platformslikeOCF• RelatedtoformatsfordescribingRESTfulAPIs,e.g.

– RAML– OpenAPISpecification(previouslySwagger)– Hydra:Hypermedia-drivenWebAPIs– WADL– Slate

18

Page 19: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

Results

Page 20: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

EmergentRequirements• Strongsupportforobjectswith

properties,actionsandevents• Objectmodelforthings

– Commondatatypes• Boolean,string,integer,number

– Lesscommondatatypes• Enumerations,unions,vectors,

ordered/unorderedcollections• Applicationtypesintermsof

predefinedtypes• Thingsasfirstclasstypes• Compound(nested)properties• Compoundargumentsforactions

andevents

– Metadata,e.g.• Min,maxfornumbersandintegers• Read-onlyorread-write• Requiredandoptional

– Propertiesandactionarguments• Unitsofmeasureincludingscale

factors• Whetherstaticorchangeable• Cardinalityforcollections

– MetadataforgivenIoT platforms– Mappingofenumeratedvalues,

propertynamesetc.toIDs• Resiliencetochangesinmodels

– Googleprotocolbuffers

20WebofThingsshouldavoidprotocolspecificdatarepresentations,e.g.bitfields

Page 21: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

SyntacticModularity• Specificationsliketodefinethingsinamodularway– Reusabledefinitions,e.g.enumerations– Asetofinterfaces(e.g.oneM2M’smodules)

• Somesetofproperties,actions,events,metadataandnamedtypedefinitions

– Ameanstocombinethiswhendefiningdevices• e.g.refrigeratorwithfreezerandcoolercompartmentsusingcommoninterfacemodelsforsensorsandcontrols

– SyntacticmodularityanalogoustoC++#include• Atthelevelofathingorathing’sproperties

21

Page 22: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

SemanticModularity• NotusedbyanyoftheIoT platformscoveredsofarinthesurvey

– Usefulforsemanticsearchandsemanticinteroperability• Foreachdevicestatewhatsemanticclassesitconformsto• Eachsemanticclassdefinesrequirementsintermsof

– othersemanticclasses– properties,actions,events,metadata

• Canbevalidatedtocheckforsemanticinteroperability– Ensuringthatservicessharethesamemeaning,interfacesanddatatypes

• Canalsobeusedabductively togenerateathingdescriptionfromasetofsemanticclassesandadditionalconstraints– Involvesmakingguessesbaseduponpastexperience

22

Page 23: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

OpenQuestions• Isitworthextendingthesurveytocoverthecommunication

patternssupportedbydifferentIoT platformsandtheusecasesthatmotivatethesepatterns?– ThiswouldhelpwithrespecttoguidanceonhowtobindtheWebof

thingtoparticularIoT platforms• TheneedtoexaminewhatkindsofIoT platformmetadatais

neededaspartoftheapplicationcontract?– Thisshouldbesufficienttomeetthemeansfortheapplication

platformtomaketheconnection– Itcanalsoprovideabasisfornegotiatingqualityofservice– ButriskoftightlycouplingappstoparticularIoT platforms

23

Page 24: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

NextSteps• IplantofleshoutthissurveyasaCreateIoT reportwhilst

alsoextendingittoabroaderrangeofIoT platforms– MyhighestpriorityisOPC-UA– OthertargetsincludeAppleHomeKit,AndroidThings,OMA’s

LwM2M,OMG’sDDS,HypermediaControlsandawiderangeofWebservices

– Anysuggestionsforplatformstolookat?• Tobecomplementedwithacompanionsurveyonendto

endsecurityacrossdifferentplatformsandthroughthelifecycle

24

Page 25: Survey of IoTPlatforms - World Wide Web Consortium of IoT Platforms.pdfSurvey of IoTPlatforms The Web of Things is intended to be an abstraction layer for the IoTso we need to ensure

Thankyou

Questions?