Open Objects on WoT 2013

Preview:

Citation preview

The Open ObjectDICE Lab

Royal Holloway University of London

Paulo Ricca Kostas Stathis

Smarter

Objects…

…But Still

Electronically Closed

We envision a world of collaborative Open

Objects supported by End-User Development

Structure

Framework

Implementation

Scenario and Case-Study

Conclusions

Framework

FUNCTIONALITY

+

Event Event

Event Event

Event

Actuators

Sensors

Actuators

Sensors

C2 Cn…C1

Actuators

Sensors

C2 Cn…C1E1

Actuators

Sensors

C2 Cn…C1

BnB1

E1

Behaviour Definition

Rule Definition

Implementation

Meta-Workflow

A Complete Open Object

Event Listener

Rule Execution

Rule Storage

Behaviour Managing

Behaviour Advertising

Thin Web Client

Thin Web Server

Other Behaviours

Open Object

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

Scenario and Case-

Study

Door Sign

Door Sign

Door Sign Behaviours

Behaviour Advertising

Thin Web Client

Thin Web Server

Message Displayer

Traffic Light

Availability Cube

Availability Cube

Cube Behaviours

Behaviour Advertising

Thin Web Client

Thin Web Server

Orientation Sensing

Example Rules{ rule:

{ when: check_calendar,

do:

[

{

request: calendarchecking get_state,

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

date_time: { request: timekeeping now }

}

]

}

}

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 },

] }, ……

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.

Thank you!

Questions? Ideas?

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

}

]

}

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: {}

}

}