Leveraging the Web Platform for the Web of Things
Erik Wilde, Florian Michahelles, and Stefan Lüder, Siemens
June 25, 2014
Web Architecture provides a general-purpose way of establishing an interlinked network of resources, which are interacted with through the exchange of representations of their state. We argue that the Web of Things fits well into this general framework, and thus should be built firmly on the foundation provided by Web Architecture. We also argue that in order to allow an evolutionary path towards a Web of Things, it is important to take small and incremental steps towards the final goal, instead of trying to establish a grand
Web of Things Architecture in one monolithic step. One interesting first step could be to focus on Activity Streams as one way how streams of resource updates can be represented in a uniform, extensible, and machine-readable way.
(3) What's Missing?
- Reading through [http://www.w3.org/2014/02/wot/submissions.html], some clusters emerge:
last mile (how to efficiently connect constrained things)
thing models (in order to find/understand/use things, we need domain models)
thing technology (we have technology X, it's really great for WoT!)
thing scenarios (we want use certain things a certain way)
- But what's really missing in today's Web?
- Choose some protocol/gateway combo or HTTP-enable your thing
- Base your media type on a domain model of your choice
- Let's find out what we need first
- Very useful to better figure out what we need...
- The Web thrives on services and their
- Nobody should care if you run Java or PHP or C or Ruby or Python
- Nobody should care how your app server connects to the data store
- Nobody should care how you model your customers/products/services/processes
- Let's focus on how to expose thing-based services in Wot scenarios
(4) Interaction Scenarios
The last mile (how to connect the thing) might be better left to specialists
- What matters is identification and interaction, but only via a representation (a.k.a. REST)
- The Web thrives on shallow models and not on deep ones
- Instead, focus on surface scenarios such as aggregation, filtering, re-publication, subscription, ...
- How to interact using representations to achieve application goals
- We need an open and extensible interaction framework and not a model for things
- [http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_hour.atom] works in any reader that understands the
- Communities should be able to model whatever they think their things are about
- This may or may not result in fragmentation, depending on the communities
(5) Sitting on the wrong branch can kill you
- Atom's model was right but the foundation suffered the [http://en.wikipedia.org/wiki/Hype_cycle]
- Once, there was a flourishing loosely coupled [http://dret.typepad.com/dretblog/atom-landscape.html] and community
- Disliking XML became the new black and that sealed Atom's fate
- [http://dret.typepad.com/dretblog/2009/05/atoms-future-as-a-generalpurpose-format.html], but it still needs to
- WoT scenarios are like newsfeeds on steroids (scale, volume, variety)
- But they are about the same set of interaction patterns
- Atom only models interaction-relevant data
- A simple model for well-known and domain-agnostic use cases
- A [http://tools.ietf.org/html/rfc4287#section-6] so that domain data can be safely represented
(6) Activity Streams!
- [http://www.w3.org/Social/WG/] will start any minute now!
- Most important work item will be a protocol based on [http://activitystrea.ms/]
- Slightly different angle but many similarities in scenarios and interactions
- SocialWG may or may not decide to adopt
thing-oriented use cases
Your friend X has just Y-ed resource Z on the Web.
- My fridge telling me about some expiration date is not all that different
- Integrating the worlds of Social and Things may be interesting
- Using the same model for what matters most to us: people and things around us
- Activity Streams will change but the current model is very extensible
- The [https://github.com/activitystreams/activity-schema/blob/master/activity-schema.md] defines a base set of object types and verbs
- Any community can extend this list (the current extension model is kind of brittle)
- [http://schema.org/] has a [http://schema.org/docs/full.html]
- Finding the right extension model and metamodel for it will be challenging
(7) What can we do?
- Follow the footsteps of previous H2M and M2M success stories of the Web
- only provide interaction models, do not provide domain models
- Provide building blocks so that people can easily design their own media types
- Keep everything loosely coupled, so that spec work can adjust to reality
- A Web of Things is still a Web, and not something else entirely
- Remember [http://en.wikipedia.org/wiki/Wireless_Application_Protocol]'s complete parallel universe? Because:
Mobile is different!
- The biggest challenge is to avoid [http://en.wikipedia.org/wiki/Not_invented_here] and identify real pain points
- Reach out to SocialWG and explore similarities/differences between the scenarios
- Adopt social/thing-friendly Activity Streams as the
WoT thing surface
- Things are not something else entirely
- Let's start with use cases and requirements and see what's missing
- Let's work incrementally to fill gaps as required
- Maybe Activity Streams can provide a good foundation
- (for more background, [http://dret.net/netdret/publications#wil14a])