It is no secret that current trends inspired from the development of the Web 2.0 advocate designing smart things (e.g., wireless sensors nodes or home appliances) as service platforms. Interoperable services are mainly achieved using two different (families of) approaches: WS-* and RESTful Web services. It is also no secret that we, at Webofthings.org are big fans of REST. Hence, one critic that we often get is that our preference for REST is not really founded on data but rather on a guts feeling which basically was … true!
Hence, as part of my Ph.D. Thesis I wanted to discuss this choice and base it on data, first looking at quantitative results (e.g., performances of REST vs WS-*) but then also getting some qualitative data: does REST really makes it easier to build upon smart things? WS-* and REST have previously been compared with respect to performance and features, but no work has been done to elicit the developers’ preferences and programming experiences in an Internet of Things context…
Hence, we conducted a study in which 69 (I promise I did not actually pick the number!) novice developers learned both technologies and implemented mobile phone applications that retrieve sensor data, both through a RESTful and through a WS-* service architecture. The results complement the available technological decision framework when building Internet of Things applications. The results suggest that, indeed, developers find REST easier to learn than WS-* and consider it more suitable for programming smart things (so it is NOT just us :-)). However, interestingly enough for applications with advanced security and Quality of Service requirements, WS-* Web services are perceived to be better suited.
Actually, we compiled the results in a paper that recently got accepted for Mobiquitous 2012 in Copenhagen. I did not have the chance to present it there (we are kept busy building Evrythng!) but Simon Mayer, our colleague and friend, did a great job presenting it there. Find the slides below:
Convinced? Not? Let us know more about your experience/preference!