Internet of Things

How to Develop Apps for the Internet of Things

Analysts are generally in agreement that the Internet of Things will generate an enormous amount of economic value. They only disagree on how big the wave will be. Indications are that 10s of billions of IoT edge devices will be in place over the next few years and that over half of homes in developed countries will have IoT incorporated into their daily lives via their cars, home automation, appliances and wearable technology.

One of the key enabling pieces for IoT expansion is the growing presence of IoT-ready development platforms coming online. Some are offered by tech giants such as SAP, Microsoft and IBM, but many smaller players exist that offer all the tools a company needs to develop their own IoT contributions rapidly and cheaply.

The Three IoT Development Tiers

Edge Devices

The endpoints of IoT are as diverse as they are plentiful. They mostly consist of sensors packaged with a low-power microcontroller, real-time OS and wireless networking capability that outputs its data via an Internet gateway. The majority of IoT hardware platforms have no screen, but provide an HTTP or other common protocol interface through which they are managed.

The types and classes of IoT sensors are virtually endless including thermometers, light meters, tachometers, manometers, cameras, GPS receivers and more. The applications built on top of these sensors are equally numerous. Most are engaged in monitoring activities in health care, farming, manufacturing management or keeping track of more mundane things such as your refrigerator’s efficiency.

Data Ingestion Tier

IoT device data are sent to a second middleware tier of software and server infrastructure that provides an in-house or public cloud processing service. This tier provides IoT edge device vendors or users a way monitor and update devices en masse. It also aggregates, organizes and pre-processes the relatively unstructured data streaming in from the edge.

End-User App Tier

The topmost tier in a typical IoT hierarchy applies sophisticated analytics capable of providing real-time insights into how an enterprise’s products are performing and being used. This software feeds directly into automated business decision processes that, for instance, regulate supply chains. It often provides real-time, interactive dashboards with several tabs of graphical and customizable data displays.

Leveraging IoT Platforms

Assuming that your organization is software focused and is leaving the innovation and manufacturer of edge devices to hardware companies, your activity will be concentrated in the ingestion and end-user tiers. Leave it up to the big manufacturers to continue pumping out increasingly cheaper and more able IoT edge devices.

Rather than taking a painstaking, do-it-yourself approach to creating the software in the top tiers, there are plenty of ready-made IoT development platforms of which you can take advantage. Many of these, such as SAP, Oracle and others, provide a complete end-to-end IoT platform that includes middleware and analytic APIs to which you add your customized app layer. There are also a number of startups whose products can spin up your IoT development in a hurry.

ThingWorx

ThingWorx is a highly flexible IoT development platform that can even be used by non-coders. Their Composer™ tool models all three tiers, which simulates a complete mockup of your IoT app including program logic, storage, security and visualization.

Their drag-and-drop Codeless Mashup Builder pulls together apps, dashboards, and mobile interfaces without any code to create a complete solution. Bringing on a new sensor type is simply a matter of writing a JavaScript connector to incorporate it with the ThingWorx platform.

ThingWorx also provides device management utilities that monitor and interact with all the connected things in your app. Their Business Process Manager enables analysts to create live process flows from single or multiple edge device inputs.

Xively

Xively apps are written in whichever development language your developers want. Apps integrate with their IoT API, via HTTPS or other communication protocols. Companies typically get their first IoT app prototype up and running in a week.

Their cloud platform includes everything needed for rapid IoT app development:

  • Secure handling of consumer and operational data
  • Real-time, secure messaging and routing protocols
  • The ability to customize permissions based on group or object properties
  • User and device management via a sophisticated Web interface
  • Storage for data streams and archiving
  • The ability to build analyst dashboards, predictive analytics and automated business decision-making processes without coding

Xively’s APIs support data transfer and control via almost any protocol you wish including REST, HTTP, HTTPS, MQTT and more. They provide connector libraries that are installed on edge devices that pre-packages data of interest and transports it to Xively’s cloud platform.

Conclusion

Besides the myriad IoT development platforms already available, there is a growing body of code examples showing up in places such as GitHub and IoT forums. It is a dynamic environment, however, and lacking substantial standards, so it is probably a good idea to assign your IoT app development to your most innovative programmers. Alternatively, you could wait until the field is more fully developed, but then you risk falling behind what might be the biggest tech wave since the Internet.