Today’s prevalence of both wireless connectivity and smartphone applications has fundamentally re-defined the user experience for products across all industries. From parents remotely viewing the camera feed from their infant’s nursery on their mobile device, to the service professional who is proactively alerted by a device in need of repair, the “user experience” has extended far beyond arm’s reach of the product itself.
Smart Connected Products
Whether driven by customer feedback, competitive pressures, or opportunities to streamline business processes and minimize costs, more and more product developers are being tasked with adding a smartphone interface to enhance their product offering. In reality, it’s a version of short-hand to speak in terms of simply “adding an app” to a product. In most cases, the product requirements are really asking for the product to become part of a cloud-connectivity system, which leverages cloud-servers and the internet connectivity of phones, tablets, laptops, and of course, your product to provide remote monitoring and control capabilities. So in many cases, a request to deliver a companion app for your product is really a request for your product to be cloud-connected.
IoT Technology
Much like the “green initiative” eco-conscious movement of the previous decade, companies across all industries are being challenged to understand and articulate a strategy for this white-hot topic of the “Internet of Things” (IoT). Recent industry data indicates that over three-quarters of companies globally are either using or exploring the technology driving the IoT, with 95% of corporate executives expecting their company will be using IoT technology within three years’ time. Whatever your organization’s motivation is to leverage the technology of IoT, the need to be thoughtful and strategic in its implementation remains the same.
While the benefits are significant, there are, of course, key considerations and obstacles to address when developing a cloud-connectivity solution for your products. For example, industry survey results point to both the lack of internal skills and the investment costs of IoT infrastructure as two of the most pressing concerns. These concerns are likely driving the rapid adoption of leveraging comprehensive “IoT platform” solutions to simplify and accelerate product development efforts.
So a seemingly innocuous statement that “We need an app for our product!” may very well require a powerful, complex system design. The goal of this white paper is to walk through the elements of building a cloud-connectivity system to support remote app connectivity for your product, so you can have a robust and exciting solution to share when your customer, sales professional, or your CEO asks, “Is there an app for that?” As the elements of a cloud solution are defined, key design considerations that a product development team will need to address are also highlighted. Lastly, the white paper will provide a simple, intuitive framework for defining the capabilities you will need your design to include.
What is Cloud Computing?
At the simplest level, a cloud refers to remotely located servers providing software and computing capabilities delivered as a “service” over a network, typically reachable via the internet.
For the most part, the cloud is an evolution of the local network server systems commonly used by organizations for decades now. It is an enhanced version of a network-accessible resource that provides a set of software services for data transfer, storage, computation, and analytics. The “cloud” terminology denotes that the system is not bound by physical location since it can be accessed and utilized from virtually anywhere when connectivity to the internet is established.
Why Do I Want My Product to be Cloud Based?
As mentioned above, the motivation to pursue the development of cloud-connectivity for products varies. Product manufacturers incorporate this technology in order to leverage a number (or all) of these significant benefits:
• Enhanced Customer Experience. The smartphone is quickly becoming today’s “universal remote,” so providing the end user with an intuitive, convenient interface to the product on their phone can enhance how the customer uses, and ultimately values, your product.
• Improved Service and Support Capabilities. The end-user is not the only benefactor of being able to remotely access and send commands to a device. Cloud-connectivity can also enable technical support and customer service professionals to remotely troubleshoot product issues, minimizing down-time and repair costs. Going a step further, cloud-connectivity can also be used to enable the device to pro-actively alert the consumer or repair professional of preventive maintenance reminders or device failures.
• Additional Revenue Opportunities through consistent customer touch points over the life of the product. The app or web interface can provide a portal to market additional products, accessories, or premium features to your customer. These marketing opportunities can increase sales revenue through both cross-selling and up-selling efforts. In addition, if your product incorporates a service model, this cloud-connectivity can provide an elegant solution for trialing, renewing, and managing subscriptions.
• Managing Product Software with Minimal Complexity. Unlike a natively installed software application, cloud-based software can be updated once at the server and all users can instantly benefit from the change. This model can also minimize the headaches of managing updates to software embedded in your product. In some systems, cloud-connectivity may be utilized to pro- vide over-the-air (OTA) updates to the embedded software within your product.
• Gathering Product Data for Future Product Enhancements. The logging and data-mining aspects of a cloud solution can provide product developers with a wealth of information they previously could only dream of having. Understanding how, when, and potentially even where the end-user is interacting with the product can uncover valuable insights into future product enhancements. Be aware such abilities open up new complexities regarding the use of user- specific data that your company must thoughtfully consider.
• Interoperability with Existing Cloud Apps. By adding cloud-connectivity to your product, you open the door to a myriad of cloud-based apps and services enabling new user experiences and functionality. Connected devices can automatically file service issue reports, update inventory lists during manufacturing and distribution, post tweets, check the weather or even change behavior based on geo-location. Server-side software can be developed to enable any web-based app with a services API to interact with your cloud-connected product.
Why do I need a Cloud Based Mobile App?
Deciding whether a cloud-based solution is required for your specific product application ultimately depends on the use cases you will need to design for. For example, a short-range point- to-point wireless solution, such as utilizing the Bluetooth® or local area Wi-Fi network capabilities of a smartphone, would provide your product a means to communicate directly with an app without passing data through a cloud-server. Such point-to-point wireless communication is adequate for some applications, but there are some limitations to this approach that may make it unsuitable for your product.
Point-to-point wireless technologies require the user to be in relatively close proximity to the product. This type of solution does not typically support remote connectivity utilizing an Internet connection or cellular network to span the distance. Such a solution would also not provide the same opportunities for data-logging, analytics, and centralized management provided by a cloud-based network solution over a cellular network or internet connection.
For many product developers, the use case requirements for their app include providing the user “anytime, anywhere” access to either view the status of the product or send commands to it. This is where a cloud-based solution provides essential features, acting as the hub of communication and providing data access to any internet-connected device, including your wirelessly-enhanced new product!
Basic Components of Cloud Computing
Let’s take a look at the elements that compose a typical cloud-connectivity system. At the highest level, you can think of the total solution being comprised of 4 essential components:
First and foremost, you will need to design your product to be a “connected product”. A common path may include augmenting your product design with a radio to wirelessly connect to a network and establish an internet connection. In other cases, it may be suitable to utilize a wired Ethernet solution. For the sake of this discussion, we will assume a wireless connection is necessary to suit your product application and meet customers’ expectations.
Secondly, your wireless connected product will need a wide area network (WAN) to provide the medium for transmitting and receiving data. Where Wi-Fi is readily available, such as a home or business setting, this could be an access point configured for a specific Internet Service Provider (ISP). In applications where the product may be utilized in rural environments or the product is mobile and routinely travels to different locations, the best WAN solution may instead be a cellular network. For the purposes of this white paper, we will look at a cloud-connectivity solution based on a Wi-Fi network solution.
Thirdly, the solution will require a cloud server to act as the hub of communication. Your system’s cloud will typically include software services to intelligently manage communication with your connected products, communication with a smartphone app, hosting of a web application your customers or service professionals use as a portal to your product, and to provide a robust array of data-logging, analytics, and rules-based engines that aggregate product data and make it actionable.
Lastly, the solution will need to feature some form of a network client serving as a “portal” for the customer or service professional to remotely access the product. Today, it seems the mobile app has become the “portal of choice,” but in many situations you would also want to provide additional options, such as a website, to address all your potential use cases. For example, a technical support team would likely find greater value in having a web portal or desk- top application when downloading larger data sets or working with tabular formats not easily managed from a mobile app interface.
Now that the four elements have been defined, it’s important to dig one level deeper and begin to understand the software components that compose the infrastructure of a cloud-connectivity system.
Cloud Infrastructure
A cloud-based system truly is a platform that is comprised of software elements deployed in multiple places, from embedded firmware on a microcontroller to database code on a server. So while there are 4 distinct elements that comprise such a system, it’s the interoperability created by these software elements that bring it together as a seamless solution.
Most products where cloud-connectivity would be an ideal fit are electronic in nature, so there likely already exists circuitry within the product that includes some form of processor, such as a microcontroller (MCU). This MCU has embedded software that interacts with application- specific peripherals such as sensors, actuators, indicators, and perhaps some form of user interface (screen, buttons, LED’s, etc.).
For a cloud-based solution, the product’s PCB layout needs to be updated to incorporate a network interface, such as a wireless module, that offers a simple means to add Wi-Fi connectivity. The MCU will require additional embedded software, enabling it to act as a “host” that intelligently controls the wireless module and its networking stack. This embedded software, which we refer to as the “client”, acts as an intermediary between application firmware and the wireless module. The “client” software provides services to the application firmware for sending and receiving data to/from a cloud server once the wireless module is connected to the network. To minimize impact to product firmware on the “host”, look for wireless modules that include an embedded net- working stack.
Wi-Fi Module
The network module requires application-specific embedded software to act as an “agent” for the cloud system. This software allows the module to properly transmit and receive the data flowing between the client and the cloud server.
Wi-Fi, the commonly-used term for the IEEE 802.11 protocol for implementing WLAN communication, is perhaps the most popular wireless technology for Internet connectivity, enabling cloud-connectivity and offering practical benefits. For a large number of applications, product developers can leverage an existing Wi-Fi network in the location the product will be used. This means your product can integrate into existing Wi-Fi infrastructure and instantly communicate with other networked devices, enabling a whole host of new user experience opportunities. With its pervasiveness across existing networked devices, Wi-Fi also offers the ability to easily communicate with mobile phones, laptops and internet servers enhancing your product’s capabilities for user interaction and data collection.
Integrating a Wi-Fi module into your product allows it to tap into an existing wireless infrastructure that in many ways has already been designed for connecting your product to the cloud. The key step that many times can make or break a successful user experience with your connected product is how you approach provisioning. Provisioning refers to the required steps of helping your connected product identify (scanning for networks) and then successfully connect with the intended password- protected network access point over Wi-Fi. In short, your product isn’t cloud-connected until you direct it to connect to the Internet properly.
To understand how critical provisioning is to your design, let’s think of the difference in the experiences of provisioning a smart phone versus a typical connected product, such as a carbon monoxide detector. When you enter a business that offers free Wi-Fi, it has become fairly straight-forward to tell your phone which network to connect to, navigate password or service agreement pages via a web browser, and get connected. Provisioning isn’t quite so easy for most connected products, which often have a limited user interface component. Thinking about our example of the CO detector, it doesn’t have the benefit of a full LCD touchscreen for user interaction to instruct what needs to be done to get connected.
So how can you approach provisioning if a robust user interface isn’t part of your product’s design? In some instances, a developer may try to work with what they have on the product, such as buttons or switches, to facilitate provisioning. Unfortunately, this approach typically comes along with a long and complicated instruction manual. Luckily, Wi-Fi technology has continued to evolve and in most cases the developer can look to utilize solutions like Soft AP (a direct connection with the radio acting as an access point) or Wi-Fi Protected Set-Up (WPS) that help facilitate provisioning by simplifying the device/user interaction. The key is to recognize that your final product design must account for the challenges of provisioning and have a user-friendly solution in place.
The cloud server acts as the hub of your system, managing the flow of data to and from the networked device, networked clients (i.e. apps or web portals running on smartphones, tablets, or laptop), and any other necessary database and software applications.
Cloud Based Integration Tools
In order to support interfacing with connected devices, apps and other external cloud services, your cloud server solution will require integration of several software applications and/or services. These applications may include a messaging system, web server, backing data store and web services to provide the features your users will need. It is important to ensure these applications are designed to seamlessly interact with one another and support the intended use cases for your product.
The device services interface provides a communication interface between your connected product and the cloud server. Devices typically identify themselves and post data updates periodically, reflecting the status of their peripherals. In some systems, devices may also receive messages and take action.
The app services interface provides a communication interface between the web and/or mobile application and the data reported by your networked product. This software typically manages user sessions, lists product information and supports configuration of alerts.
In addition to device and app interfaces, some cloud solutions include additional data APIs allowing them to interface with other cloud applications. When selecting a cloud provider, make sure to understand what data needs to be accessible to other systems and ensure appropriate APIs are available.
For a technically-complex wireless product development effort such as this, there is an inherent risk that the user interface of the mobile app becomes a mere afterthought in the project. In truth, the smartphone app and/or web portal are arguably the most critical elements of your system that will ultimately determine its success in the market, because it will become the face of your product to your customer. It’s not just an app, it is your product’s user experience!
The Importance of User Experience
For the CO detector example, maintenance personnel may need information such as the location of the unit that needs service, how long it has been since the last service, and perhaps error code information. Given these parameters, an appropriate user interface may convey this information using intuitive visuals such as displaying a facility map identifying the various locations with icons representing status and service alerts. Identifying the use cases for your product and walking through how the app is involved at each step is critical to a successful product-centric app design.
It is important to consider whether your user experience is best met through a native app or browser-based web app. Native apps provide user interface features more familiar to a user of a particular platform, however they require development expertise and custom software per platform. Web-based apps can save development time by supporting multiple platforms from a single solution implemented utilizing HTML5-based frameworks.
Last but not least, consider how your product’s branding can be re-enforced through the user interface design. Everything from color schemes to font selection and graphical layout will have an effect on how your users perceive your product. The most common interactions with your product via the application should require the least amount of effort on the part of the user.
Critical Data Elements to Consider
With a solid understanding of the elements of your cloud-connectivity system and identifying many of the key design considerations of each element, a valuable next step in your process is to define the list of data elements and controls that you would like to make available through your app or web “portal”.
In the case of the TiWiConnectTM platform from LSR, this activity is simplified by thinking in terms of “The Three A’s”: Attributes, Actions, and Alerts.
Attributes correspond to the captured data and device state information you are interested in monitoring remotely. Think of Attributes as representing the critical runtime information in your product. These values can be sent to the cloud to report the status of your product and serve as the basis for a monitoring user interface. For the carbon monoxide detector example, attributes may include time-stamped measurements, battery level, and error codes.
Actions define remote commands typically initiated by a user to trigger an activity on your product. Think of Actions as the “remote control” features for your product, allowing users or other devices to trigger processes or adjust parameters. Going back to our CO detector example, a potential Action could be to silence an alarm or change a threshold for an alert trigger.
Alerts represent messages your product sends to notify a user or another device that a user- defined condition has been met. Think of Alerts as a user interface feature similar to an alert dialog or notification on a smartphone intended to notify the user of a condition that may require an action to be taken with the product. These notifications can often be configured as “in app” notifications or to trigger e-mail or SMS messages allowing a connected product to signal when it needs attention. For our CO detector, a text alert to a facility manager could indicate a measurement has exceeded a set value.
This exercise of defining the Three A’s should be repeated for each use case your solution must support. It’s common to define the Attributes, Actions, and Alerts for each of at least 3 use cases: Admin, Service, and User. For example, an Admin user may be interested in a complete listing of all the Attributes and Actions avail- able, whereas an end-user may require only a simple subset to be accessible.
Once the product’s data, control interactions and user notifications have been defined in terms of the Three A’s, embedded software can be developed on your existing processor or MCU to act as a cloud client, with the logic to report the attributes, receive the actions and trigger the alerts you have mapped out.
Bringing it All Together
So how can all these design elements come together to create a high-performing product that offers a strong user experience? If you recall from the beginning of this article , two of the top concerns of business leaders have in developing an IoT product is (1) the lack of internal expertise & knowledge and (2) costs of investment in IoT infrastructure. Those obstacles certainly are real. Here’s a fairly comprehensive look at the technical expertise required to build such a system from the ground up:
You have developed loyal customers and competitive advantages within your market through expertise in your product’s core technology and a deep understanding of your customers’ needs, so taking on the additional learning curve of developing a cloud-connectivity system runs the risk of becoming a distraction. But like most problems, there are solutions available.
By looking to an established partner, such as LSR, who can offer both the comprehensive cloud- connectivity platform and the wireless design services needed to deliver the necessary customizations for your solution, you can focus your internal resources on the most critical design consideration of all, “Are we developing a solution that will meet our customers’ needs and exceed their expectations?” With a bit of help from the right wireless, cloud and app development partner, you can confidently move forward to create a market-leading product innovation powered by the cloud!