Developing applications for the Internet of Things need no longer start from scratch. There is an environment for providing connectivity and associated Cloud services as well as easing development of user applications.
BY TOM WILLIAMS, EDITOR-IN-CHIEF
As with most new technology advances, the Internet of Things—in terms of both concept and implementation—has had something of the character of the Wild West. That is not a criticism; it is simply and observation and is quite normal. It means that developers and companies are striking out with innovative ideas, system designs and product introductions. Thar’s gold in them thar hills and the quest is on to find it.
Eventually, of course, things tend to settle out with successful technical approaches gaining acceptance, business models forming around solid technology models, standards being established—like a cow town being tamed by solid merchants and a new marshal. No one will claim that the IoT is not still in a state of innovative exploration. But at the same time, few will deny that it represents a real value in terms of vast numbers of applications it can address and the opportunity for a huge range of economic opportunity. We now seem to be seeing the arrival of some sets of stable tools and approaches that are designed to help manufacturers and system developers set up and manage IoT environments without the need to start from scratch. They are necessarily based on some preconceived notions in order to shield developers from gritty details, but also try to maintain flexibility given the huge variety of potential application areas.
A case in point is the IoT Cloud Platform from Ayla Networks. The Cloud Platform takes the rather generic view of an IoT environment that it consists of a number of connected devices (sensors, actuators and machines with some degree of intelligence) the Cloud with all its data collection, management and storage capabilities and user interfaces in the form of PCs, tablets, smartphones and similar devices. Ayla has created solutions and tools to support all three of these elements with the aim of simplifying the complexity and shortening the time of project development. They take the form of Ayla embedded agents, Cloud services and application libraries. The latter have been recently enhanced with the addition of the Agile Mobile Application Platform aimed at helping developers quickly create user apps. Naturally, some aspects of the solution make is specific to Ayla’s environment but there is an effort to also provide maximum flexibility and ease of connectivity.
On the device end, Ayla has created an embedded agent that runs on IoT devices and/ IoT gateways. The agent is an optimized network stack along with additional protocols including security that can be built into devices to connect them to the Internet and then through to the Ayla Cloud. Ayla has partnered with a number of semiconductor manufacturers such as Broadcom and Marvell to embed their agent in versions of those companies’ Wi-Fi chips. The Broadcom versions, for example, are identified with an “A” at the end of the part number. The aim is to enable new designs as well as create a path to upgrade existing designs for IoT connectivity. Manufacturers would create their own proprietary application software on their products and incorporate the embedded agent to which the application would connect.
From the perspective of embedded development, even for the IoT, one often gets the impression that the attitude is, “Oh yeah, the Cloud.” But the services that are provided within that misty realm of servers, databases and management tools are vital to the functional success of the system—for manufacturers, managers and users. The Ayla IoT Cloud Fabric, which hosted on Amazon Web Services (AWS) provides a selection of native applications and services designed for use by developers and manufacturers and others designed to enable user applications and interaction—as well as the creation of user applications (Figure 1).
The Ayla Cloud Platform includes a whole range of services for connectivity, data management and user/device interfacing. On the one side, users access the Ayla Cloud from customized apps running on smartphones, tablets and desktop machines to access and control devices connected and identified via the Ayla software agents within them.
As already mentioned, connectivity, including but not limited to Wi-Fi is enabled by the agent, which allows out-of-the box device registration. There is also a LAN connect capability that lets developers link devices directly to the Cloud if they wish or connect them via a gateway that then links to the Cloud. Security includes 128-bit SSL encryption, root key protection and multi-layer authentication.
Also contained within the Cloud are numerous services that form the foundations providing user features for application development. There is, for example, a rules engine that can automate device-to-device communication based on almost any selected data input or condition. Basic services such as scheduling and event notification can be called and defined from the user app without the need to program all the underlying details. Scheduling and event management can be customized with the development of the individual application. In addition—important for offering services targeted at the level of the person getting access—there is role-based access control.
Access control allows users, and indeed different levels of users access to distinct services and data within an application or among applications. Likewise, the device manufacturers and system managers can be set up with open or controlled access to additional services such as data visualization, audit logging, etc., by means of the user policy manager that further defines roles for customer, dealer (e.g., sales data, customer profiles), installer (device and virtual device identification), manufacturer, etc., with full policy control and visibility.
On the other end of the Cloud is the user and the user application, which accesses the devices through the Cloud either directly (rare) or by means of the Cloud-based services. Until recently, Ayla has provided software libraries with which to start building applications. These, however, left much of the user interface and user experience to be defined from scratch. Now there is the Agile Mobile Applications Platform (AMAP) that jump-starts the development of iOS and Android apps. And it allows apps for both operating systems to be developed simultaneously.
The AMAP is built upon Ayla’s mobile software libraries and provides pre-made, pre-tested software code that supports the primary features that consumers expect from mobile app control of a connected device, such as sign-in, user registration, device setup and control, password recovery, Wi-Fi and Zigbee setup, schedule creation and management, support for push notification and timer setup. Ayla provides the AMAP code in the form of workflows optimized for specific vertical markets, including HVAC (heating, ventilation and air conditioning), major home appliances or lighting.
AMAP is scalable to any type of connected device. It provides a framework on top of the application program interfaces (APIs) and mobile libraries that allow IoT devices to connect to the Ayla cloud and to integrate with iOS or Android code. All AMAP code development is done in native Objective C and Java languages, which ensures a high level of quality for manufacturers’ mobile apps. Although Ayla is starting by concentrating on the consumer arena such as appliances and home automation, there is nothing preventing it from expanding to other areas such at industrial control. The same underlying code used to read, set and adjust temperature could as easily be customized by defining the appropriate parameters and designing the fitting user interface such as the RPMs of a machine as opposed to temperature. It’s just a matter of how many properties you have and how you want to manipulate them. The user code sits on top of the libraries, which connect to the Cloud and from there to the devices. Ayla provides a number of starting layouts and schemata, which can also be changed and customized to reflect a given manufacturer’s brand and style (Figure 2).
The Agile Mobile Application Platform lets developers set up user interfaces and define their interactions. Shown here is the example of a temperature control. The look and feel can be further customized by the customer or in cooperation with an Ayla qualified partner.
In addition to the Cloud (Amazon, etc.) and technology (Broadcom, etc.) partners, Ayla also has teamed with a number of partners who already understand the platform to help customers both in the development of smart, connected devices as well as with the development of mobile connected software. Thus a customer with an innovative business model that involves or even requires access to the IoT has the option to use their own expertise when and where applicable as well as to contract with specialists who can help bring those ideas into reality.
The emergence of such software service technologies aimed at the Internet of Things may be a sign of maturation in an industry segment that is moving from the every man for himself model to one of prebuilt components and service specialists who can tailor products for manufacturers to take advantage of IoT connectivity.