All Teh Standardz! • Open Interconnect Consortium
• Thread Group
• AllSeen Alliance
• HyperCat Consortium
• Industrial Internet Consortium
• IoT-GSI
• oneM2M
• Open Mobile Alliance
• Internet of Things (IEE)
• IETF
• IPSO Alliance
• W3C Web of Things Community Group
• W3C Semantic Sensor Network
• ITU Joint Coordination Activity on IoT
Commonalities
• Prescriptive - “Here’s how you do this”
• Roach Motel - “Once you go in you can never go out”
• Complicated - Can a N00b pick it up and use it?
Antistandards
• The industry is actively trying to create more standards
• IMO: malice
• “Win the stack”
What’s wrong now?
• Most IoT Standardization efforts are an attempt to recreate the SOAP mistake
• SOAP is not the way to do things
• But how do we do things?…
How to Write APIs
• Resources have IDs
• Use JSON (rarely XML)
• Use URIs and HATEOAS
• Use REST
• Use HTTP
Big Problems Solved:
• Format, Documentation, Navigation
• Authentication, Authorization, Encryption, Security
• Create, Update, List, Delete
• Notifications
Are you doing it correctly?
• “Can Joe / Jane Developer pick it up and be using it within 10 minutes”
How to Write Thing APIs
• Resources Things have IDs
• Use JSON (rarely XML)
• Use URIs and HATEOAS
• Use REST
• Use HTTP
• Notifications? MQTT?
ERMAHGERD!So Inefficient
• Don’t prematurely optimize
• JSON: can be packed into Binary
• HTTP: substitute HTTP/2 or CoAP
• + importantly: interoperability
How? Design Patterns
• Discovery
• Unique Repeatable IDs for Things
• Update via PUT
• State via GET
• Metadata / Reachability
Discovery
• Statically defined v Dynamic
• May find the same Thing multiple ways
• Things come and go
PUT / PUSH
• Just like REST
• IOTDB provides a “Semantic” Layer
• e.g. volume to 50% means the same on all platforms
HomeStar• homestar-ble
• homestar-denon-avr
• homestar-feed
• homestar-firmata
• homestar-hue
• homestar-lg-smart-tv
• homestar-lifx
• homestar-littlebits
• homestar-rest
• homestar-smart-things
• homestar-sonos
• homestar-template
• homestar-tcp
• homestar-wemo
Get in touch! David Janes
http://iotdb.org/social/imadeit/