What, if anything, ties the numerous and varied aspects of IoT together? If you ask Tim Kellogg, it's a simple answer: AllJoyn, an open source project of the AllSeen Alliance.
AllJoyn is a framework written in C++ with a variety of language bindings and full implementations across different operating systems, and according to Kellogg on IoT World, it's going to free IoT from the "bit-banging neckbeard overlords" who rule it and change everything:
AllJoyn introduces a human touch to embedded systems . . . In AllJoyn, you don't need C/C++ or write assembly code. You don't need to understand hardly anything about networking. It all just looks like method calls to an AllJoyn programmer. Best of all, it's going to work everywhere. All your appliances will speak AllJoyn; even your car may be fair game. Device manufacturers won't even have enough freedom to screw up compatibility with other brands.
To help clarify the use of AllJoyn, Kellogg uses a number of analogies. First and foremost is his comparison to PHP. He confesses upfront that he finds PHP to be awful. Its syntax is clumsy, and its ease of use backfires by allowing people to write sloppy code that still works. However, it also became a fundamental part of the web as we know it because of that same accessibility. That, Kellogg argues, is what AllJoyn brings to IoT: accessibility.
In other words, regular people should be able to use AllJoyn:
AllJoyn is like a job market. If I need someone to do my taxes for me, I look in the postings for an accountant. If I'm a construction worker, I might post my resume listing my skills in bricklaying, roofing, and operating machinery. With AllJoyn, these "job postings" look more like things a computer would want to do, like "display notifications," "capture configuration preferences from a user," or "lower the room temperature." They're called interfaces, and any device can implement or consume as many or as few interfaces it wants.
Who knows if it will really be quite as revolutionary as Kellogg suggests, but regardless, it sounds like an interesting framework with a lot of potential. If you want to try it out, download the SDK, or go all out and get involved with the project itself.