Developers are likely to be the strongest advocates for sifting out which technologies and standards can provide the best competitive edge when it comes to the Internet of Things (IoT).
Andy Stanford-Clark (@andysc) is the Chief Technologist for Smarter Energy in IBM’s consulting business in energy and utilities for IBM U.K. Stanford-Clark is scheduled to keynote at the 2014 EclipseCon Europe event where he will discuss the importance of the Internet of Things to the development community. Developers from about 30 companies are expected to attend the event. Most work for companies and enterprises that build commercial products or internal tools based on the Eclipse framework, such as BIRT.
Actuate got a chance to catch up with Stanford-Clark and chat about the Internet of Things and where developers should focus their efforts.
This is Part 2 of the conversation. (Part 1 can be found here)
Actuate: I’m going to switch a little to focus on the developers, because, obviously, at EclipseCon, you have people who are very passionate about building these systems, building these tools. What would you say are the key programming or developer tools for those people who are looking for success in the Internet of Things? Which kinds of projects and/or technology should they be focused on?
Stanford-Clark: That’s quite a broad question. So, I guess I’ll touch on a number of things. One would be more agile methods of [software] development. So, trying things out in short bursts, and putting them in front of customers to try them out, to get feedback immediately, and then iterate on that. So, “start simple, iterate fast” kind of development.
One would be the use of APIs and the simplification of those things using web services: JSON, REST and Ajax-type interfaces. But standardization of interfaces and being able to absolutely assume that the functionality of that API will be as defined, and you really don’t need to care what’s behind it in order to use a service.
And then another thing I think I’d talk about would be kind of the dev ops closing the loop on development and deployment. It kind of fits into the agile context as well, but again, having direct access, get a much quicker path from development through to getting new software deployed on a production system. That’s really what makes the world tick these days, and to streamline the operations for keeping in place the rigor of library systems, and versioning, and being able to back out a system, or having tests, and pre-prods, and all the different production environments is still very important; being able to streamline that process.
And the other thing I’d mention in terms of rapid time to value for developers is some great technology called Node-RED. And if you haven’t seen this, you need to come look at nodered.org, which is an open-source development environment for the Internet of Things, writing applications for linking sources of data to destinations of data with some kind of transformation and routing in between. And it’s an open-source project developed by some guys at IBM here in the U.K. And it really is wiring for the Internet of Things. And its time to value for a very simple MQTT subscriber going through a transformation to web services HTTP POSTer somewhere is in minutes, maybe even seconds; it’s very, very quick. So, that’s a great tool for developers to be looking at now, and it’s node.js runtime.
Actuate: You obviously are proud of MQTT and the acceptance by OASIS and the standards body. Are there certain standards that developers and their organizations should be aware of, and how should they be approaching this? Our understanding is that everybody likes to work with what they know, but not necessarily do they understand all of the standards that are out there. Do you have personal favorites that you feel dovetail nicely within IoT?
Stanford-Clark: So, certainly, there need to be standards. And in terms of the interoperability of Internet of Things systems, very much the standards need to be in place so that systems can interoperate. Otherwise, we end up with what we’ve seen in some of the early IoT forays, where you’ve got very much sort of end-to-end applications, from the sensor right through to the backend web service and the notifications and the web interface it delivers, but completely siloed and completely incompatible and non-interoperable with the next siloed systems.
You could end up with, say, your home music center system not being able to interoperate with some other system in your house – the TV system – because they come from different manufacturers, different systems. And being able to break down those barriers and interlink systems at different levels is extremely important.
And so the example in the home would be if I am monitoring energy usage, and when the windows and doors are opened,and if the heating system’s on. If those are all from separate vendors, and therefore completely separately siloed, then I don’t get a holistic picture of the whole house. Whereas if those three sources of information could be interworked, and interlinked, and sort of mashed up into a new application, I get a really good insight into things like, “Don’t put the heating on if the window’s open,” or “I haven’t been in the house using electricity for a while, so maybe turn the thermostat back to a lower level.” So, that kind of interoperation is absolutely necessary.
So, my favorite, of course, is MQTT, the protocol for the Internet of Things, which has achieved great widespread adoption. I’m extremely happy, and proud, and satisfied with that over the last 15 years. It never ceases to amaze me how many people say, “Oh, yes, it supports MQTT,” so that’s really great. But, of course, there are other standards and protocols, as well, in the Internet of Things space.
I think the Eclipse Paho project, when it becomes standardized will be very important, in terms of sort of the end-to-end M2M stack. And we’re seeing a lot of traction there with different people integrating different levels of the stack. That’s pretty important.
Actuate: As you’re going to be giving your presentation to the audience at the EclipseCon conference, there will be questions about how a developer or an organization can get involved in this. What are you telling people today about how to jump into this, engaging people through Internet of Things, and does IBM offer something specific towards that?
Stanford-Clark: Yeah. So, it’s kind of like we were in the sort of mid ‘90s, where everyone’s heard of the web, and companies thought they’d better get a domain name and establish a”this is my web site kind of page,” and just put a toe in the water, because they kind of got the impression it’s going to be important, but they’re not quite sure how yet. But they need to get involved anyway, so they’re not kind of left behind when it all kicks off.
So, there’s quite a lot of sort of feeling of that: no one wants to be left behind in the Internet of Things space. But what I’m sort of advising clients to do, really, is to look at their existing processes, and the way they interact with their customers, their consumers, and see what would make a natural fit, a natural extension of existing processes into a sensor actuator world. Because otherwise, if you come up with some completely random off to one side thought that, oh, we’ll introduce this new thing, they’re going to go, “So, what do we do with that?” But if it’s a very natural extension to what you’re already doing in your interaction with your clients, then it becomes a very natural thing.
So, a good example is how I instrumented the Isle of Wight ferries, so that they tweet when they leave and arrive at the ferry port. And that was a very useful application for me, as a commuter from the Isle of Wight, to know when the ferries are running, and immediately it was picked up by thousands of commuters wanting to see what time the ferries were going, if they were running late, if it had been cancelled. And that led into a whole new relationship for the ferry company, with their customers, us, the commuters, in terms of social interaction and social media. So, you can now tweet the ferry company, ask when the next ferry is, or ask them a question about why the ferry’s late, and they’ll tell you – all triggered off by this Internet of Things sort of starting point, which said, let’s get the ferry tweeting when they leave and arrive the ferry port through instrumentation and through Internet of Things.
So, my advice is to pick something which is part of your existing business, and augment it with Internet of Things technology.
Actuate: Anything else you wanted to add to the conversation before we close – things that you feel that a developer audience or an audience who is investigating Internet of Things should be aware of?
Stanford-Clark: I think it’s really important for developers to get their hands dirty. So, if they are server side-type people don’t kind of hypothesize about or idealize about some idealized IoT device that’s going to connect in one day, get yourself a Raspberry Pi or an Arduino. Write some code one weekend one evening; try it out. Get your device publishing an MQTT stream back to some broker somewhere, and just understand the implications of when connectivity goes away, when battery life runs out, when the amount of memory on a device is genuinely restricted rather than assuming gigabytes of storage and gigabytes of disk spinning in a device when it’s just a little chip the size of your thumbnail that’s hanging on the end of a bit of wet string, and send a transactional message over that, to say that something important happened.
That’s when people have really got to sort of get their hands dirty, and try this stuff out. And that, to me – and certainly colleagues I’ve worked with whom I’ve introduced to the IoT space – has been the real wake-up call. Actually, I can do this stuff. I can now understand. I can now talk about an end-to-end story from the actual sensor in the real world, right through to some backend service, maybe cloud-hosted, leading to an actionable insight that when I press the doorbell, I get a text – something really simple like that. And everyone should go off and try to implement something like that, just to get a feel for it. Because until you’ve done it, it’s only a theory.
EclipseCon Europe 2014 will take place in Ludwigsburg, Germany starting on October 28.