Implementing a Social Web of Things

Sharing smart things with your social networks using FAT (Friends and Things)

Sharing smart things with your social networks using FAT (Friends and Things)

There are still many challenges to face towards a Web of Things: discovery, search, scalability, event driven interactions and sharing. For the last few month we’ve been focusing on the latter, because let’s face it: if you do not have a mechanism to share your Web-enabled things it is not really worth having them Web-enabled in the first place!

Core to the Web of Things vision there is this idea of the physical world as a “composable ecosystem” where devices can be used and re-used simply to create emerging applications, i.e. physical mashups.

Well, the success of Web mashups is closely dependent upon the trend for Web 2.0 services (e.g. Google, Twitter, WordPress, Doodle, etc.) to provide access to some of their services through relatively simple, often REST-based, open APIs (Application Programming Interface) on the Web. Mashup creators in turn often share their mashups on the Web (sometimes through directories such as Programmable Web) and expose them through open APIs as well, making the ecosystem grow with each application and mashup.

Enabling this model on a Web of Things requires a sharing mechanism for smart things, by enabling access to the services offered by devices through their API. For example, you could share the energy consumption sensors in your house with the community. However, this is a complex process since these devices are part of our everyday life and their public sharing might result in serious privacy violations.

The most straightforward way of solving the issue is to create ACLs (or Access Control Lists) for your devices. For each device you create a number of credentials (login + password pairs) and give them a number of roles (e.g. admin, reader, etc.).

This is, however quite a heavy and time consuming solution. When considering a large number of smart things it becomes simply unmanageable. Furthermore, it also quite abstract and does not reflect the social structure of the real-world. What if we could simply re-use existing social structures as a basis for sharing our things and sensors? Social networks such as Facebook and Twitter increasingly reflect our social relationships. Using them I could simply share access to my things with friends (e.g. Facebook) or colleagues (e.g. LinkedIn). No need to create and maintain abstract lists, simply select friends or group of friends you want to share with!

Thanks to the APIs most social networks now offer, we (together with Mathias Fischer, from ETH) were able to create a platform (SAC, or Social Access Controller) and a Web app (FAT, or Friends and Things) which lets you share REST-enabled things with the rest of YOUR world.

Architecture of the Social Access Controller

Architecture of the Social Access Controller

I won’t give more details about the platform here as it is the matter of an article we got accepted for the First IEEE International Workshop on the Web of Things (yeah, the one we organize ;-) BUT the article was peer-reviewed, and the reviews were tough!)

Get the paper here!

And the Bibtex below:

@inproceedings{Guinard,
Address = {Mannheim, Germany},
Author = {Dominique Guinard, Mathias Fischer, Vlad Trifa},
Booktitle = {Proceedings of the 1st IEEE International Workshop on the Web of Things (WoT 2010) at IEEE PerCom 2010},
Month = {March},
Title = {Sharing Using Social Networks in a Composable Web of Things},
Year = {2010}}

Dominique Guinard

  • http://senseplanet.com Daniel

    Very good article! I’ve been working exactly on this topic and have developed a Web Service to tie social networks and sensors together. The vision is to build a platform to convey data from sensors to social networks. By having this middleware, we can foresee slew of applications such as sensor updating status as well as rich applications ( social gaming, things as friend,…).
    Refer to http://senseplanet.com !

  • http://www.vladounet.com Vlad Trifa

    sweet daniel! Thanks and nice hearing about your work! We should do a skype or so at some point, we’d love to know more about your work.

  • http://senseplanet.com Daniel

    sure thing….my skype is “daniel.kaplan” …we can set up a call

  • http://www.guinard.org Dominique Guinard

    Hey Daniel,

    I actually spend like an hour on your website, really nice work, inspiring (btw I could not access the demo on http://socialgrid.senseplanet.com).

    I’ll also deploy our prototype asap on our prototyping server (which is currently down) so that you can test it as well.

    While writing this paper and starting this project I was struggling to find related work, besides the Senseshare project (http://escholarship.org/uc/item/4919w4vh) I could not really find anything concrete related to the topic things + social networks. I mean I found lots of blog entries “conceptualizing” about it but nothing concrete. Nice to see that there are people actually working on it as well!

    I see slight differences between the approaches. Your focus seems to be on things communicating with social networks, ours is on things being shared over social networks. I think a combination of both is the winning concept!

    Thus, as Vlad said, a discussion would really be nice sometimes in the near future!

  • http://www.guinard.org Dominique Guinard

    Btw, just added your blog to our blogroll, I think it’s totally relevant to the Web of Things community: http://www.senseplanet.com/

  • http://www.vladounet.com Vlad Trifa

    by the way, check this out:

    http://www.readwriteweb.com/archives/social_networks_for_things.php

    damn, we’re always behind dom!! We should really push this forward mate!!

  • http://senseplanet.com Daniel

    yep, your vision is broader than what I’ve foreseen…that’s why I like it !
    Anyway, I had a firewall glitch with my server which is fixed now.
    You can access the prototype here: http://socialgrid.senseplanet.com

    Bear in mind that this is just the admin interface with which a user can register his connected things.
    I haven’t released the client yet…it’s coming. Time is not my friend right now. I work on this during my spare time which is not easy to handle..but fun!

    PS: thanks for the blog roll. If you can modify the blog name to “Sense PlaNet”, it’d be awesome…..I know I am picky ;)

  • http://senseplanet.com Daniel

    o…and only the Twitter works for now. Facebook has tweaked their API enough to screw up my plugin.

  • http://www.guinard.org Dominique Guinard

    Yeah actually that’s one of the biggest burdens of working with Social APIs right now, they keep changing them and breaking the “API contract”…

    Ahhh if and only if they could all agree on ONE open-social like API and all respect it… but there is to much money in the game I guess…

    Anyways, I’ll have a look asap! Thanks for the update.

    PS: I changed the name of your blog in our blogroll

  • http://www.friendfeed.com/tamberg tamberg

    Reminds me of Fire Eagle (http://fireeagle.yahoo.net/) “an open platform that helps users take their location to the Web while giving them the ability to easily control how and where their location is shared.” Just replace location by things.

    Regards,
    tamberg

  • http://www.guinard.org Dominique Guinard

    Hi Tamberg,

    Cool plateform, first time I heard of it!
    I mean definitely, from a marketing point of view their motto is: “take your location to the Web (and share it)” and ours would be like: “take your things to the Web (and share them)”.

    However, it gets a little more tricky when you look at the details. We actually want to share functionality not simply data so we need a way to describe what the devices (like this sensor can send you temperature measurements and here is how you ask for it) do… We impose a RESTful API in order to partially extract this information.

    The interesting similarity is that they use social networks as “access control lists” for sharing just as we do… When you think about it social networks are probably the best candidates for generating sense making ACLs. Except of course, for those users who accept friend requests from anybody.

  • http://www.friendfeed.com/tamberg tamberg

    @Dominique: Even more than using “social networks as “access control lists” for sharing just as we do…” Fire Eagle is a hub for location sources and it manages which applications can access a User’s Location with how much granularity.

    That’s very similar to sharing e.g. your personal energy footprint with different types of energy meters in your house, car, … and different applications accessing it, e.g. control interfaces to switch on/off your house’s lights, high level energy usage sent to your electricity provider, simple status “today I used less energy than yesterday” sent to Facebook, …

    Of course, this would still be centered around a data concept (energy) and sensors / actuators to influence it instead of Things and their (RESTful) interfaces in a broader sense. But this way you might simplify the task by providing a common semantic background.

    Cheers,
    tamberg

  • Pingback: Why understanding REST is hard and what we should do about it – systematization, models and terminology for REST « Ivan Zuzak – blog