Saturday, January 3, 2015

Openness and Standards: The Lingua Franca

Why Openness and Standards

As thousands and 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. Devices have improved our lives in may ways & yet not many of them can seamlessly talk to each other. Our clock cannot talk to our washing machine and tell it to start the washing cycle at a predefined time. Nor can our fridge talk to our cell 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, all these solutions work only within the products made by the same company. Call it ego, call it business strategy or call it the complete failure by the big names to have the humble magnanimity to admit that they cannot roll out a complete set of products which are superior to the offerings by other companies, but 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 locking solution to products by the same company.
Nest Thermostat syncs with your phone,
but uses its own app, which needs Android or iOS.
One cannot use a web browser, chat or SMS to control things yet.
Image courtesy: slashgear.com
Samsung Gear is the most feature rich smart watch of the day, but it connects and syncs with Samsung Galaxy 4 or higher ONLY.
Image courtesy: sammobile.com

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 can 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 drain the mundane away from the human user. The buzzword for IoT is exactly summarized in one word -- compatibility. Exactly like what lovers seek in each other. Users seek compatibility among devices. This word has long been replaced by another jargon -- Interoperability. A smart device doing its assigned job well is so 2000s. In 2015, 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 yank things together hard to establish the connection. 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 it's detergent bay is empty or if it is not able to draw water. It should be able to alert you via mass-used methods such as Gtalk or Whatsapp or even 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 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.
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 threads. Case in point: HTML. 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. So over the years, we now have a standard language called HTML which defines how a web page looks and how each component should be represented in a simple English-like language. 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 each and everything is standardized by the governing consortium.
Under 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 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 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 graphics.
Image Courtesy: ronakweb.com

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 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 23 years, 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 manipulation, 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 by 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 with their devices 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 stream video are built upon current passing through ethernet cables.

Bluetooth has made wireless communication among devices within short distances a snap
Image courtesy: iconarchive.com

Ethernet has lived up to its name by having its presence almost everywhere and on everything synonymous with Internet
Image courtesy: sevacall.com

USB has spread in such a versatile manner that it is now the most expected and the most commonly offered wired connection solution between devices. Everything from storage devices to portable charges to portable cooling fans are driven by USB.
Image courtesy: travelinlibrarian.info
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.

BeagleBone Black (above) and Raspberry Pi (below) started as hobby and education devices, but made a strong case for startups to latch onto them for their IoT ideas mainly due to their Open Hardware approach wherein they published their entire circuitry details for anyone to reproduce, modify & adapt. Besides all the connectivity is done using standard hardware approaches such as ethernet and USB.
Image courtesy: linuxgizmo.com and wikipedia.org

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.


Android (top) and Apache (middle) have built on the openness and success of Linux (bottom) to offer software solutions which are used in more than 90% of the IoT and smart devices industry.
Image courtesy: davy.preuveneers.com, brighthub.com and wikipedia.org 


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 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 different profiles such as phone, headset, streaming 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.

HTTP for web surfing and Bluetooth Audio for streaming music over bluetooth from a music player to a wireless headphone are two communication and data transfer standards that have emerged from the success of Ethernet and Bluetooth hardware standards.
Images courtesy: novainfosec.com and marmitek.com

Open container formats (file formats)

While some file storage formats are openly documented, some of them are licensed to companies. HTML, JSON, XML, vCard and PNG 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.


Portable Network Graphics (PNG), JavaScript Object Notation (JSON) and vCard are some of the open data storage and transfer formats which have gained popularity for transferring different types of data between devices and applications. E.g. PNG is used to transfer and store images such as logos, vCard is used to transfer information about contacts & people (including their contact details such as email and phone number) and JSON has become the de facto format for transferring and storing any arbitrary information not covered by any of the standard formats. JSON is also THE standard format used by search engines to spider through a website's data to rank in search results. SEO optimization is all about getting the JSON meta-data correct. The JSON formats needed by search engines to identify different types of objects (e.g. a person, a music track, a tourist destination) is documented in a seperate standard called JSON-LD (JSON Linked Data).
Images courtesy: creativitywindow.com, encoding.com, gettinglegaldone.com


Conclusion

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.

No comments:

Post a Comment