An Extensible Discovery Service for Smart Things Mayer, S. and Guinard, D. 2011, 2nd international Workshop on the Web of Things
Simon Mayer [[email protected]]
Distributed Systems Group, ETH Zurich
Environments of smart things...
Forecast: Rain
Temperature: 24˚C Please configure
forecast data source
Your fridge currently
consumes 45W
I’m located in Zurich!
Human-readable and understandable
Sunday, 12.06.2010
2 2nd International Workshop on the Web of Things, San Francisco (CA)
Environments of smart things...
Forecast: Rain
Temperature: 24˚C Please configure
forecast data source
Your fridge currently
consumes 45W
I’m located in Zurich!
What about machines?
Sunday, 12.06.2010
3 2nd International Workshop on the Web of Things, San Francisco (CA)
Temperature: 24˚C
I’m located in Zurich!
Semantic annotation of smart things...
{“data”:[{“weather-
forecast”:”Rain”}],
“name”:”MyNabaztag”}
…<div itemscope><div
itemprop=“tag=“>Illumination</div><div
itemprop=“value”>150</div></div>…
...
<div class="geo">GEO: <span
class="latitude">8.549902</span>,
<span class="longitude">-
47.378088</span></span></div>
{“consumption”:”45”,
“unit”:”Watts”,
“appliance”:”fridge”}
Sunday, 12.06.2010
4 2nd International Workshop on the Web of Things, San Francisco (CA)
Machine-readable
Semantic annotation of smart things...
{“data”:[{“weather-
forecast”:”Rain”}],
“name”:”MyNabaztag”}
…<div itemscope><div
itemprop=“tag=“>Illumination</div><div
itemprop=“value”>150</div></div>…
...
<div class="geo">GEO: <span
class="latitude">8.549902</span>,
<span class="longitude">-
47.378088</span></span></div>
Content type: application/json
Content type: text/html
Annotations: Microdata
Content type: text/html
Annotations: Microformats
{“consumption”:”45”,
“unit”:”Watts”,
“appliance”:”fridge”}
Content type:
application/json
Every smart device capable of
parsing every single format...?
Sunday, 12.06.2010
5 2nd International Workshop on the Web of Things, San Francisco (CA)
Content type:
application/json
And it gets worse...
{“data”:[{“weather-forecast”:”Rain”}],
“name”:”MyNabaztag”}
Imagine we agreed on everybody using application/json...
{“data”:{“weather-forecast”:”Rain”},
“name”:”MyNabaztag”}
{“data-item”:[{“weather-forecast”:”Rain”}],
“name”:”MyNabaztag”}
Different syntax
Different formatting
Sunday, 12.06.2010
6 2nd International Workshop on the Web of Things, San Francisco (CA)
A single, agreed upon,
standard format
Options for semantically annotating smart things
Or multiple (but few!) formats
Problem of different syntax
Probably not feasible...
Sunday, 12.06.2010
7 2nd International Workshop on the Web of Things, San Francisco (CA)
Different Syntax: OK!
A method to understand
multiple different formats
Options for semantically annotating smart things
Future formats?
Sunday, 12.06.2010
8 2nd International Workshop on the Web of Things, San Francisco (CA)
Different Syntax: OK!
An extensible method to
understand multiple
different formats
Options for semantically annotating smart things
Future formats: OK!
Sunday, 12.06.2010
9 2nd International Workshop on the Web of Things, San Francisco (CA)
Given the representation of a (Web) resource, extract interesting information about that resource regardless of the annotation format used
Goal
Sunday, 12.06.2010
10 2nd International Workshop on the Web of Things, San Francisco (CA)
Discovery based on Strategies (e.g. Microformats-Strategy)
Users can create, extend (and delete) Strategies at runtime!
Approach
DiscoWoT: Discovery Process
Sunday, 12.06.2010
11 2nd International Workshop on the Web of Things, San Francisco (CA)
DiscoWoT: Discovery Process (1)
Client knows resource’s URL: http://.../Sensor
Requests a resource description at DiscoWoT’s /analyze endpoint
GET /analyze?http://.../Sensor
Sunday, 12.06.2010 12 2nd International Workshop on the Web of Things, San Francisco (CA)
DiscoWoT: Discovery Process (2)
DiscoWoT fetches resource representation
Extraction of strategy input parameters
Sunday, 12.06.2010 13 2nd International Workshop on the Web of Things, San Francisco (CA)
DiscoWoT: Discovery Process (3)
DiscoWoT applies registered strategies to the resource representation
Sunday, 12.06.2010 14 2nd International Workshop on the Web of Things, San Francisco (CA)
DiscoWoT: Discovery Process (4)
If multiple strategies can map the representation, the resulting resource
descriptions are fused
The resulting resource description is returned
{“services”:{“unit”:”ºC”,…},…}
Sunday, 12.06.2010 15 2nd International Workshop on the Web of Things, San Francisco (CA)
DiscoWoT: Discovery Process
How to access resources behind firewalls/protected resources
Sunday, 12.06.2010 16 2nd International Workshop on the Web of Things, San Francisco (CA)
The DiscoWoT Project – Flexibility
Apply every strategy to all information accessible about submitted data
Allows to handle resources behind firewalls and protected resources!
Client should not send URL but rather send contents at that URL
Is Token a URL?
→ Try to fetch the content at its location!
→ Apply strategies to this content!
Is it text/html or application/json?
→ Apply strategies to Token itself
Sunday, 12.06.2010 17 2nd International Workshop on the Web of Things, San Francisco (CA)
GET /analyze?Token
The DiscoWoT Project – Extensibility (1)
Users inject a new strategy by POSTing to the /strategies
endpoint
Users add a mapping to a strategy by POSTing to the /strategies/{strategyID} endpoint
Sunday, 12.06.2010 18 2nd International Workshop on the Web of Things, San Francisco (CA)
POST /strategies NewStrategy.java
POST /strategies/NewStrategy mapping
The DiscoWoT Project – Extensibility (1)
Strategy?
→ Basically parsers for different formats
→ Implement the DiscoveryStrategy interface
→ e.g. MicrodataStrategy
Mapping?
→ Maps to interpret parsed values
→ Multiple mappings per strategy
→ e.g. (“my_location” → “geo”)
Sunday, 12.06.2010 19 2nd International Workshop on the Web of Things, San Francisco (CA)
POST /strategies NewStrategy.java
POST /strategies/NewStrategy mapping
The DiscoWoT Project – Extensibility (2)
Registration by sending an OpenSearch Document
Mighty Google as a fallback mechanism...
Allows to easily federate multiple DiscoWoT instances
Sunday, 12.06.2010 20 2nd International Workshop on the Web of Things, San Francisco (CA)
POST /strategies/ <OpenSearch>...</>
Conclusions
An extensible discovery service for smart things
Based on multiple discovery strategies
No problems with firewalls/access restrictions
REST from tip to toe
Sunday, 12.06.2010 21 2nd International Workshop on the Web of Things, San Francisco (CA)
Conclusions
Sunday, 12.06.2010 22 2nd International Workshop on the Web of Things, San Francisco (CA)
A great help for
decoupling service
providers and consumers
Experience
Announcement
AutoWoT project now Open Source!
Check out http://code.google.com/p/autowot
Woohooo!
Facilitating the Integration and Interaction of Real-World Services for the Web of Things (Mayer S., Guinard D., Trifa V.)
Upgrading Autowot (Barthels C., Bachelor’s Thesis)
Sunday, 12.06.2010 23 2nd International Workshop on the Web of Things, San Francisco (CA)
Thank you for your attention!
Sunday, 12.06.2010 24 2nd International Workshop on the Web of Things, San Francisco (CA)