Prezi

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in the manual

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

IoT & XMPP

Extensions for safe and interoperable communications for the Internet of Things using XMPP.
by Peter Waher on 24 April 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of IoT & XMPP

IoT & XMPP
IoT & XMPP
XMPP Extensions for safe and interoperable communications for the Internet of Things.
XEPs
XMPP Extensions for use in IoT:

0322: EXI
0323: Sensor Data
0324: Provisioning
0325: Control
0326: Concentrators
0331: Color fields
0332: HTTP over XMPP
0336: Dynamic Forms
0347: Discovery
?: Interoperability
?: Events
?: Pubsub
?: Multicast
?: Chat
?: Battery powered devices
XMPP Standards Foundation
“The XMPP Standards Foundation (formerly the Jabber Software Foundation) is an independent, nonprofit standards development organization whose primary mission is to define open protocols for presence, instant messaging, and real-time communication and collaboration on top of the IETF’s Extensible Messaging and Presence Protocol (XMPP). The XSF also provides information and infrastructure to the worldwide community of Jabber/XMPP developers, service providers, and end users.”

Peter Waher
Clayster Laboratorios Chile S.A.
Calle Blanco 1623, of 1402.
Valparaíso, Chile
peter.waher@clayster.com
Tel: +56 (32) 212 25 33
JID: peter.waher@jabber.org
Skype: peterwaher
Twitter: PeterWaher
Twitter: ClaysterLabs
LinkedIn: http://linkd.in/11jEymK

Contact information
XEP 0322
Compression of XMPP using Efficient XML Interchange (EXI) format.

http://xmpp.org/extensions/xep-0322.html

Permits the use of XMPP in networks where package size is of importance.
XEP-0323
Reading sensors and interchange of sensor data.

http://xmpp.org/extensions/xep-0323.html

Request/Response
Asynchronous
Loose coupeling
Extensible
XEP-0324
Provisioning of access rights, content and services in IoT.

http://xmpp.org/extensions/xep-0324.html
XEP-0325
Control of actuators in IoT.

http://xmpp.org/extensions/xep-0325.html

Control Commands
Control Parameters
Control Forms
XEP-0326
Using concentrators in IoT, to interface legacy protocols, subsystems, etc.

http://xmpp.org/extensions/xep-0326.html

Capabilities
Data Sources
Nodes
Node Parameters
Node Commands
Data Source Events
Field Databases
XEP-0331
Adding color field types to data forms.

http://xmpp.org/extensions/xep-0331.html
XEP-0332
Extending the Semantic Web to Peer-to-peer like XMPP networks.

http://xmpp.org/extensions/xep-0332.html
XEP-????
Interoperability between devices and services in IoT.

http://bit.ly/1gG9dIB

Interfaces
Interface aggregates
Units
Privilege IDs
Data Sources
Identification schemes
Media types
XEP-0336
Dynamic Forms

Server post-back
Read-only fields
Undefined values in fields
Asynchronous updates of form
Field errors

http://xmpp.org/extensions/xep-0336.html
XEP-????
Events between devices in IoT.
XEP-????
PubSub pattern in IoT.
XEP-0347
Installation of devices
Discovery of servers
Registering devices
Thing Registries (bulletin boards)
Claiming ownership of devices
Discovery of public devices
XEP-????
Multicast messages in IoT.
XEP-????
Interaction with devices in IoT using chat messages.
XEP-????
Battery Powered Devices.
EXI @ W3C
Based on W3C recommendations for XML compression.

http://www.w3.org/XML/EXI/
Clayster Laboratorios Chile S.A.
Member XMPP Standards Foundation
peter.waher@clayster.com

Delegating trust
Original trust
Secondary trust
Multiple tokens
Friendships
Accepting friendships
Rejecting friendships
Unfriending existing friends
Recommending friendships
Device Readout
Rejecting readouts
Restricting nodes
Restricting fields
Device Control
Rejecting control actions
Restricting nodes
Restricting parameters
Caching
Devices maintain provisioning caches to avoid spaming provisioning server.

The server can clear client caches when updates to rules occur.
Services
Service tokens
User access to service
User privileges
User privileges in service
Downloading of all privileges
Request
<iq type='get'
from='master@clayster.com/amr'
to='device@clayster.com'
id='1'>
<req xmlns='urn:xmpp:sn' seqnr='1' momentary='true'/>
</iq>

Result
<message from='device@clayster.com'
to='master@clayster.com/amr'>
<fields xmlns='urn:xmpp:sn' seqnr='1' done='true'>
<node nodeId='Device01'>
<timestamp value='2013-03-07T16:24:30'>
<numeric name='Temperature' momentary='true'
automaticReadout='true' value='23.4'
unit='°C'/>
...
</timestamp>
</node>
</fields>
</message>
Acceptance
<iq type='result'
from='device@clayster.com'
to='master@clayster.com/amr'
id='1'>
<accepted xmlns='urn:xmpp:sn' seqnr='1'/>
</iq>
Request
<iq type='get'
from='master@clayster.com/amr'
to='device@clayster.com'
id='2'>
<req xmlns='urn:xmpp:sn' seqnr='2' momentary='true'/>
</iq>
Result
<message from='device@clayster.com'
to='master@clayster.com/amr'>
<failure xmlns='urn:xmpp:sn' seqnr='2' done='true'>
<error nodeId='Device01'
timestamp='2013-03-07T17:13:30'
>Timeout.</error>
</failure>
</message>

Acceptance
<iq type='result'
from='device@clayster.com'
to='master@clayster.com/amr'
id='2'>
<accepted xmlns='urn:xmpp:sn' seqnr='2'/>
</iq>
Request
<iq type='get'
from='master@clayster.com/amr'
to='device@clayster.com'
id='3'>
<req xmlns='urn:xmpp:sn' seqnr='3' momentary='true'/>
</iq>
Rejection
<iq type='error'
from='device@clayster.com'
to='master@clayster.com/amr'
id='3'>
<rejected xmlns='urn:xmpp:sn' seqnr='3'>
<error>Access denied.</error>
</rejected>
</iq>
Request
<iq type='get'
from='master@clayster.com/amr'
to='device@clayster.com'
id='8'>
<req xmlns='urn:xmpp:sn' seqnr='8'
all='true' when='2013-03-09T23:30:00'/>
</iq>

Acceptance
<iq type='result'
from='device@clayster.com'
to='master@clayster.com/amr'
id='8'>
<accepted xmlns='urn:xmpp:sn' seqnr='8'
queued='true'/>
</iq>

Cancellation
<iq type='get'
from='master@clayster.com/amr'
to='device@clayster.com'
id='8'>
<cancel xmlns='urn:xmpp:sn' seqnr='8'/>
</iq>

Cancelled
<iq type='result'
from='device@clayster.com'
to='master@clayster.com/amr'
id='8'>
<cancelled xmlns='urn:xmpp:sn' seqnr='8'/>
</iq>
Requesting
device token
<iq type='get'
from='device@clayster.com/device'
to='provisioning@clayster.com'
id='13'>
<getToken xmlns='urn:xmpp:sn:provisioning'
deviceId='WatchamacallitDevice1'/>
</iq>

Device Token response
<iq type='result'
from='provisioning@clayster.com'
to='device@clayster.com/device'
id='13'>
<getTokenResponse
xmlns='urn:xmpp:sn:provisioning'
token='device0001'/>
</iq>

Clayster
Clayster licenses technology that makes it easier for developers to create applications for the next generation of Internet: The Internet of Things, Semantic Web and Web 3.0.
Multiple tokens
Types of tokens supported:

Device Tokens
Service Tokens
User Tokens

Different tokens from different provisioning servers supported.
Readout Request
<iq type='get'
from='master@clayster.com/amr'
to='device@clayster.com'
id='15'>
<req xmlns='urn:xmpp:sn' momentary='true'
serviceToken='service0001 servicio0001'
userToken='user0001' seqnr='4'/>
</iq>

Readout allowed?
<iq type='get'
from='device@clayster.com/device'
to='provisioning@clayster.com'
id='16'>
<canRead xmlns='urn:xmpp:sn:provisioning'
jid='master@clayster.com'
serviceToken='service0001 servicio0001'
userToken='user0001'
momentary='true'/>
</iq>
Readout allowed
<iq type='result'
from='provisioning@clayster.com'
to='device@clayster.com/device'
id='16'>
<canReadResponse
xmlns='urn:xmpp:sn:provisioning'
jid='master@clayster.com' momentary='true'
result='true'/>
</iq>

Readout accepted
<iq type='result'
from='device@clayster.com'
to='master@clayster.com/amr'
id='15'>
<accepted xmlns='urn:xmpp:sn' seqnr='4'/>
</iq>

Rejected
<iq type='error'
from='device@clayster.com'
to='master@clayster.com/amr'
id='3'>
<rejected xmlns='urn:xmpp:sn' seqnr='3'>
<error>Access denied.</error>
</rejected>
</iq>

Interfaces
Interfaces acts as contracts and determine required and optional content, expected format, control commands, etc.

Interfaces are ordered in a tree structure.
XMPP.IoT
Root namespace of interfaces managed by the Interoperability IoT XEP.
XMPP.IoT.Sensor
Root namespace for sensor interfaces.
XMPP.IoT.Meter
Root namespace for meter interfaces.
XMPP.IoT.Actuator
Root namespace for actuator interfaces.
XMPP.IoT.Identity
Root namespace for identity interfaces.
XMPP.IoT.Logistics
Root namespace for logistics interfaces.
XMPP.IoT.Security
Root namespace for security interfaces.
XMPP.IoT.Controller
Root namespace for controller interfaces.
XMPP.IoT.Media
Root namespace for media interfaces.
XMPP.IoT.Network
Root namespace for network interfaces.
XMPP.IoT.Sensor.AnalogInput
XMPP.IoT.Sensor.AnalogInputs
XMPP.IoT.Sensor.Current
XMPP.IoT.Sensor.DewPoint
XMPP.IoT.Sensor.DigitalInput
XMPP.IoT.Sensor.DigitalInputs
XMPP.IoT.Sensor.Direction
XMPP.IoT.Sensor.Distance
XMPP.IoT.Sensor.Force
XMPP.IoT.Sensor.Frequency
XMPP.IoT.Sensor.Humidity
XMPP.IoT.Sensor.Illuminance
XMPP.IoT.Sensor.Mass
XMPP.IoT.Sensor.MassFlow
XMPP.IoT.Sensor.Pressure
XMPP.IoT.Sensor.Rain
XMPP.IoT.Sensor.Resistence
XMPP.IoT.Sensor.SolarRadiation
XMPP.IoT.Sensor.Speed
XMPP.IoT.Sensor.Temperature
XMPP.IoT.Sensor.TideLevel
XMPP.IoT.Sensor.Velocity
XMPP.IoT.Sensor.Voltage
XMPP.IoT.Sensor.Volume
XMPP.IoT.Sensor.Weight
XMPP.IoT.Sensor.WindDirection
XMPP.IoT.Sensor.WindSpeed
XMPP.IoT.Meter.Cooling
XMPP.IoT.Meter.Electricity
XMPP.IoT.Meter.Gas
XMPP.IoT.Meter.Heat
XMPP.IoT.Meter.HeatingCooling
XMPP.IoT.Meter.PulseCounter
XMPP.IoT.Meter.PulseCounters
XMPP.IoT.Meter.Water
XMPP.IoT.Actuator.AnalogOutput
XMPP.IoT.Actuator.AnalogOutputs
XMPP.IoT.Actuator.Blinds
XMPP.IoT.Actuator.DigitalOutput
XMPP.IoT.Actuator.DigitalOutputs
XMPP.IoT.Actuator.Dimmer
XMPP.IoT.Actuator.DoorBell
XMPP.IoT.Actuator.Fan
XMPP.IoT.Actuator.Lamp

XMPP.IoT.Identity
XMPP.IoT.Identity.Address
XMPP.IoT.Identity.Application
XMPP.IoT.Identity.Battery
XMPP.IoT.Identity.Clock
XMPP.IoT.Identity.DeviceID
XMPP.IoT.Identity.Ethernet
XMPP.IoT.Identity.GSM
XMPP.IoT.Identity.Language
XMPP.IoT.Identity.IP
XMPP.IoT.Identity.IPv6
XMPP.IoT.Identity.Location
XMPP.IoT.Identity.Manufacturer
XMPP.IoT.Identity.Name
XMPP.IoT.Identity.NodeID
XMPP.IoT.Identity.RFID
XMPP.IoT.Identity.UserID
XMPP.IoT.Identity.Version
XMPP.IoT.Identity.Wink
XMPP.IoT.Identity.ZWave

XMPP.IoT.Logistics.Contents
XMPP.IoT.Logistics.Route
XMPP.IoT.Security.Alarm
XMPP.IoT.Security.Burglar
XMPP.IoT.Security.Clock
XMPP.IoT.Security.CO
XMPP.IoT.Security.CO2
XMPP.IoT.Security.Door
XMPP.IoT.Security.Emergency
XMPP.IoT.Security.Gas
XMPP.IoT.Security.Heat
XMPP.IoT.Security.Lock
XMPP.IoT.Security.Movement
XMPP.IoT.Security.Smoke
XMPP.IoT.Security.Water
XMPP.IoT.Security.Window
XMPP.IoT.Controller.AccessControl
XMPP.IoT.Controller.Thermostat
XMPP.IoT.Controller.Ventilation
XMPP.IoT.Media.Camera
XMPP.IoT.Media.Directory
XMPP.IoT.Media.Directory.AudioItem
XMPP.IoT.Media.Directory.DirectoryItem
XMPP.IoT.Media.Directory.DublinCore
XMPP.IoT.Media.Directory.ImageItem
XMPP.IoT.Media.Directory.VideoItem
XMPP.IoT.Media.Display
XMPP.IoT.Media.LoudSpeakers
XMPP.IoT.Media.Microphone
XMPP.IoT.Media.Recorder
XMPP.IoT.Media.TextDisplay
XMPP.IoT.Network.Ethernet
XMPP.IoT.Network.IP
XMPP.IoT.Network.IPv6
XMPP.IoT.Network.Radio
Interface aggregates
Are added to existing interfaces to create additional generic features in a canonical way.

Simplifies interface definitions, making them more efficient and atomic.
Control Programming aggregates
Adds control functions to controllers
*.TimeChannels
Event aggregates
Adds eventing features to existing interfaces. (See Events XEP.)
*.BinaryEvent
*.HysteresisEvent
*.TimedEvent
Readout aggregates
Adds fields to existing interfaces.
*.Average
*.Consumption
*.History
*.Mean
*.Min
*.Max
*.StdDev
*.Sum
Units
Defines recommended units for different categories of values.
Angle
Area
Distance
Energy
Flow
Mass
Power
Pressure
Speed
Temperature
Time
Volume
Privilege IDs
Defines standard Privilege IDs for use with provisioning in IoT networks.
Identification schemes
Defines identification schemes.

TBD
Media Types
Defines meta information for multimedia content.

Transport protocols
Video container formats
Audio container formats
Video stream formats
Audio stream formats
Image formats
Data Sources
Defines IDs for standards data sources. For use with Concentrators XEP-0326.
See the full transcript