Open Objects on WoT 2013

35
The Open Object DICE Lab Royal Holloway University of London Paulo Ricca Kostas Stathis

Transcript of Open Objects on WoT 2013

Page 1: Open Objects on WoT 2013

The Open ObjectDICE Lab

Royal Holloway University of London

Paulo Ricca Kostas Stathis

Page 2: Open Objects on WoT 2013

Smarter

Objects…

Page 3: Open Objects on WoT 2013

…But Still

Electronically Closed

Page 4: Open Objects on WoT 2013

We envision a world of collaborative Open

Objects supported by End-User Development

Page 5: Open Objects on WoT 2013

Structure

Framework

Implementation

Scenario and Case-Study

Conclusions

Page 6: Open Objects on WoT 2013

Framework

Page 7: Open Objects on WoT 2013

FUNCTIONALITY

+

Page 8: Open Objects on WoT 2013

Event Event

Page 9: Open Objects on WoT 2013

Event Event

Page 10: Open Objects on WoT 2013

Event

Page 11: Open Objects on WoT 2013
Page 12: Open Objects on WoT 2013
Page 13: Open Objects on WoT 2013

Actuators

Sensors

Page 14: Open Objects on WoT 2013

Actuators

Sensors

C2 Cn…C1

Page 15: Open Objects on WoT 2013

Actuators

Sensors

C2 Cn…C1E1

Page 16: Open Objects on WoT 2013

Actuators

Sensors

C2 Cn…C1

BnB1

E1

Page 17: Open Objects on WoT 2013

Behaviour Definition

Page 18: Open Objects on WoT 2013

Rule Definition

Page 19: Open Objects on WoT 2013

Implementation

Page 20: Open Objects on WoT 2013

Meta-Workflow

Page 21: Open Objects on WoT 2013

A Complete Open Object

Event Listener

Rule Execution

Rule Storage

Behaviour Managing

Behaviour Advertising

Thin Web Client

Thin Web Server

Other Behaviours

Open Object

Page 22: Open Objects on WoT 2013

An Incomplete Open Object

Event Listener

Rule Execution

Rule Storage

Behaviour Managing

Behaviour Advertising

Thin Web Client

Thin Web Server

Other Behaviours

Open Object

Event Listener

Rule Execution

Rule Storage

Behaviour Managing

Behaviour Advertising

Thin Web Client

Thin Web Server

Other Behaviours

Open Object

Event Listener

Rule Execution

Rule Storage

Behaviour Managing

Behaviour Advertising

Thin Web Client

Thin Web Server

Other Behaviours

Open Object

Page 23: Open Objects on WoT 2013

Scenario and Case-

Study

Page 24: Open Objects on WoT 2013
Page 25: Open Objects on WoT 2013
Page 26: Open Objects on WoT 2013

Door Sign

Page 27: Open Objects on WoT 2013

Door Sign

Door Sign Behaviours

Behaviour Advertising

Thin Web Client

Thin Web Server

Message Displayer

Traffic Light

Page 28: Open Objects on WoT 2013

Availability Cube

Page 29: Open Objects on WoT 2013

Availability Cube

Cube Behaviours

Behaviour Advertising

Thin Web Client

Thin Web Server

Orientation Sensing

Page 30: Open Objects on WoT 2013

Example Rules{ rule:

{ when: check_calendar,

do:

[

{

request: calendarchecking get_state,

calendar: `https://calendar.google.com/…..',

date_time: { request: timekeeping now }

}

]

}

}

Page 31: Open Objects on WoT 2013

Example Rules{ rule: {

when: check_availability,

do: {

request: flowcontrol choose,

value: { request: orientationsensing get,

on_fail: { request: eventlistener display_availability_from_calendar }

},

options:

[

{ value: 1,

do:

[

{ request: messagedisplayer display,

message: "Out for Lunch” },

{ request: trafficlight set, colour: red },

] }, ……

Page 32: Open Objects on WoT 2013

Conclusions

A framework definition;

An implementation supporting distributed and

decentralised choreography of Open Objects;

A real-world experimental case-study, based

on web standards and embedded

implementation.

Page 33: Open Objects on WoT 2013

Thank you!

Questions? Ideas?

Page 34: Open Objects on WoT 2013

Json Behaviour Definition{

`name': NAME,

`description': DESCRIPTION,

`capabilities':

[

{

`name': NAME,

`description': DESCRIPTION,

`parameters':

[

{

`name': NAME,

`type': TYPE,

`description': DESCRIPTION,

`optional': `True' | `False'

}

]

}

],

`events':

[

{

`name': NAME,

`description': DESCRIPTION

}

],

`characteristics':

[

{

`name': NAME,

`description': DESCRIPTION,

`unit': UNIT_OF_MEASUREMENT

}

]

}

Page 35: Open Objects on WoT 2013

Json Rule Definition

{

rule:

{

rule_id: ID,

cardinality:

{

PURPOSE:

{

behaviour: BEHAVIOUR,

minimum: MIN_NUMBER,

assignment: {}

}

},

when: PURPOSE EVENT,

do:

[

{

request: PURPOSE CAPABILITY,

external: URI,

ARGUMENT_NAME: ARGUMENT_VALUE OR REQUEST,

execution: “bottom-up” OR “top-down”,

on_error: {},

on_unauthorised: {},

on_unavailable: {}

}

],

on_error: {}

}

}