In a previous post, I discussed what exactly is the Internet of Things and what are the components in an IoT system. From that post, we can reckon that IoT’s components constantly talk to each other in order to garner a wealth of data and provide insights to the users of the system. People across the world converse in different languages and it is particularly difficult for different groups of people to talk to each other unless official and national languages are set and embraced. Likewise, different companies make different products and for them to be able to talk to each other seamlessly, free and standard ways of communication must be established.
How the IoT eco-system is fragmented right now
As thousands of millions of smart devices enter our homes, pockets & lives today, there is one thing that we desperately want them to do….. and do soon. Talk to each other in a way that they understand each other. Smart devices have improved our lives in many ways & yet not many of them can seamlessly talk to each other. Our clock, for instance, cannot talk to our washing machine and tell it to start the washing cycle at a predefined time. The washing machine has to resort to its own clock and so does every device that needs a time schedule, each needing to be tuned seperately to be kept in sync. Why can’t our ONE smart wall clock be the source of time for all our devices? Nor can a standard smart fridge talk to any mobile phone to remind us to get milk on the way home.
A lot of companies such as Nest, Samsung, Sony, Apple and scores of others have come up with solutions to make their devices talk among themselves and make things seamless. But alas, most these solutions work only within the products made by the same company. Call it business strategy or monopoly, but most companies are hell-bent on forcing solutions from their own house down the throats the consumer. The consumer is currently stuck with a situation where he / she cannot pick the best device from each company and have them talk to each other. The vendor tie-up is generally due to various reasons, such as a proprietary cable (e.g. iPhone’s data cable / charger), a proprietary data transfer method (e.g. Samsung Kies, iTunes) and other such reasons which lock solutions to the products by the same company.
E.g. brilliant products like Apple Watch and the Samsung Gear smartwatches (both pictured above) have imposed limitations on which devices they will connect to. Apple’s watch connects only with iOS devices like iPhone and iPad, while Gear connects only with the Samsung Galaxy Android smartphones.
Interoperability: The biggest need in IoT
One of the biggest advantages to be fulfilled by IoT is the principle of ‘one-touch setup & forget’. The devices should work so seamlessly that the user is not even aware of their existence. Any device should connect & share data with any other device or with a central unit. At the end of the day, IoT’s main purpose is to automate our lives and filter the mundane chores away from us as consumers. The main principle for IoT is summarized exactly in one word — compatibility or interoperability. Users seek compatibility among devices. A smart device single-handedly doing its assigned job well is so 2000s. In 2016, we need devices that function well and also interoperate well with other devices that need their services. A connected world needs connected devices, but with no one having to toil to establish the connections or to speak over them.
So you have designed a smart washing machine which uses cutting edge technology to minimize detergent usage and use water efficiently? Not enough. It should be able to talk to your smart phone, your laptop and possibly even your smart watch, wherever you are and whatever you are doing, telling you about the progress of washing or alert you if its detergent bay is empty or if it is not able to draw water from the tap. Instead of forcing you to install its own ‘proprietary app’, it should be able to alert you via mass-used methods such as Gtalk or Whatsapp or why not SMS?
Standardisation as panacea
How can such a seamless level of interoperability be achieved? One simple magical word: Follow the standards. Big companies and consortiums have long existed to draw up standards for how devices should be designed and how they should communicate with each other. But most of the IoT standards are in their infancy and not getting the necessary push needed to kick them into mainstream, since a lot of companies are happy to hit the market first with their own proprietary technologies. This is counter-productive for them, since the majority of users end up rejecting the product for its lack of interoperability and the market for IoT remains fragmented.
Standards are the lingua franca which allow different devices to talk a common language. How are standards made in the first place? Multiple companies and experts form a consortium to identify if a set of functionalities have common storyboards.
Case in point: HTML & CSS. Companies like Netscape, Microsoft and Mozilla came together to decide on what are the requirements for a typical web page and how browsers should show them. Under the banner of the World Wide Web Consortium (W3C), HTML and CSS as standards have set the trail blazing for what constitutes a web page, how things are laid out, how they should look and what components can be in a typical web page and how they should be rendered by a web browser that claims to support HTML and CSS. As one can see, Apple’s Safari, Opera, Google’s Chrome, Mozilla’s Firefox and Microsoft’s Internet Explorer (version 9 and higher) are the major browsers which have taken a stand to adhere to W3C’s standards. HTML is currently standardized as version 5 and CSS as version 3. Both these versions are major rehauls over their predecessors, including support for streaming video & audio, 3D rendering and jerk free animations.
Anyone who wants to make his / her own web browser now knows exactly what to do when HTML is fed to his / her browser, since everything is standardized by W3C. And web developers can breathe easy as they know that their webpage made once will work equally well on all the standards obeying browsers.
Openness as a way to speed up standards adoption
How can standards be evolved? By making participation open and inviting as many parties to use and test them as possible. Over the years, new additions can be suggested when proof of concepts are made to work and they are incorporated in the standards. After 25 years in operation, HTML has hit version 5. From a simple language which was capable of only defining behaviour for text, hyperlinks & static images, HTML today has inbuilt components for laying out 3D animations and streaming videos. This was possible because web and HTML were released to the entire world to develop, hone & mature. More such examples include hardware standards such as USB, software standards such as ODBC for database operations, communication standard protocols such as SMTP for email and file format standards such as PNG for images.
Open standards in IoT
Standards have recently been suggested for the IoT field as well, based on observations of common behaviour among many of the prevailing devices. There are some functionalities which are common to all IoT components regardless of their goal, e.g. connection with other devices, sending & receiving data, analyzing, aggregating, etc. Open standards already exist for each of these functionalities and the companies which implement these will offer maximum value by sticking to those standards.
Open standards can be classified at 4 layers: the hardware, the software, the communication and the container formats (file formats). Lets look at each layer and which open solutions exist at each layer.
Open hardware standards
Things become easy when the hardware itself is standardized. This governs what the circuit should contain, how many wires are to be used, which wire is to be used for what purpose, how much amount of current should pass through each wire, etc. The most rampantly used hardware standards today are USB, Ethernet, WiFi and Bluetooth. Most devices will be immediately within the standards as long as they follow 2 or more of the above mentioned technologies. However another wire-free hardware standard called Zigbee is fairly popular in the home automation field. The above standards stand testimony to the fact that an openly published standard is adopted my millions of participants and a whole ecosystem is created as a result. E.g. we get everything from staple things like USB keyboards to specialized things like USB connected cooling fans. Same way, Ethernet is the backbone hardware for technologies dominating the Internet today. Everything from surfing a web page to watching a streaming video are built upon electrical current passing through Ethernet cables.
Some companies have gone to the length of publishing their entire circuitry for use by the public. Anyone can download the specification and make the circuitry on his / her own. Publishing the entire specification also allows modifications to the circuit or making add-on devices with a better understanding of the original circuit and hence higher interoperability. Two companies who dominate the field of open hardware at the moment are the US-based BeagleBoard and the UK-based Raspberry Pi. While the Pi consumes lower power and has more variety of add-ons dedicated to it, the BeagleBoard is much more versatile and powerful and a single board can support multiple add-ons. Over the years, the Pi and BeagleBoard are projected to be the base boards powering millions of IoT projects around the world.
Open software standards
The 1980s and 1990s saw companies like Microsoft and Adobe dominate the desktop software scenario. Their software was proprietary, sold on CD/DVD and installed as per the setup instructions, working only on the operation system and the hardware supported. From early 2000s, a new trend emerged. With handheld devices being used and a single person possessing multiple devices like a laptop, a phone and a tablet, software consistently needed to be written for multiple types of hardware platforms with different limits of resources such as memory & storage space. In fact, user’s data was moved off hard disks and straight to the internet into the cloud. The trend started with emails, where desktop email software such as Outlook was replaced by the browser. Now we have entire Office suites and photo editors running entirely in browsers, be it the desktop, mobile or tablet… and even television and automotive dashboards!
Such a mass transformation needs base software which can be freely moulded to fit absolutely any type of hardware available. Also, when new types of hardware emerges, this software must lend itself to free transformation. Such software cannot be managed by ONE single company, nor by licenses. ENTER LINUX! This is the operating system of choice for 99% of startups and IoT devices. Android is also a form of Linux and its success doesn’t need any introduction. But even though we see so many varieties of Linux, they all follow a standard in their core functionality. The standards are documented as POSIX standards and all Linux variants are required to follow them, so that the developers don’t get any nasty surprises while making the necessary software. Similarly, software components such as web browsers, web servers, email clients & servers, chat, etc all typically build from existing open source software which adhere to standards.
Open communication standards
If one were to build his / her own satellite communication device or SIM card, chances are that he / she will be arrested for his / her efforts. This is because satellite communication methods are guarded and licensed. Only authorized personnel can make hardware or tune into those systems. This is an example of closed communication.
However for the purpose of IoT, we will stick to the most open and standard communication methods out there. Some of those were discussed in the hardware section, such as bluetooth, WiFi, Ethernet and Zigbee. These communication methods are license free and anyone can make devices and software which use these media. Similarly, protocols which build on top of these hardware media can be open or closed. E.g. HTTP (web surfing), SMTP (email), Jabber & XMPP (chat) are all standard & open, but some software like Skype and Netflix use their own proprietary transfer methods. Bluetooth has also taken big strides to achieve standard behaviour sets by classifying devices as having different profiles such as phone, headset, streaming device, human interface device, etc. Devices are required to adhere to one of the pre-defined profiles according to the version of Bluetooth that they claim to support.
Pictured below are HTTP and Bluetooth Streaming Audio communication methods. HTTP, once the standard protocol for web surfing using a web browser, is now also used for getting access to real devices in an IoT field as well. Real devices have web servers embedded in them and hence can be represented by URLs and one can use browsers to control their behaviour. Bluetooth streaming audio is a standard protocol used for streaming music from a source to your Bluetooth headset, Bluetooth-enabled television / speakers and to your car dashboard for hearing music from your phone over your car’s speakers.
Open container formats (file formats)
While some file storage formats are openly documented, some of them are licensed to companies. HTML, JSON, XML, vCard, PNG and Ogg Vorbis / Theora are some formats which are free for use by anyone, whereas doc, ppt, pdf and mp3 are formats which are licensed by certain companies.One cannot write their own tool to read or write in these formats and must either use the source company provided and licensed tool / algorithm or get a license to write their own tool to read and write with the format.
Pictured above are the formats PNG, JSON and vCard. PNG is the most popular open standard to store images like photos and logos. Unlike the proprietary JPEG, PNG supports transparency, so that it is possible to see the components behind a PNG image. JSON is a way to store hierarchy based data and is used to exchange data among the components of IoT. vCard is an open and the most common format to exchange contact information between address books.
So as one can see, for free communication and data sharing among the participants of IoT, one needs to implement components which follow standards. With more adherence, more interoperability can be achieved.
In the blogs to come, I will discuss which open options are available at each level, so that one can implement a seamless, interoperable ecosystem of IoT devices.