Developing the Internet of Things
Latest News
October 1, 2018
Hype of the internet of things (IoT) often gives the illusion that all elements associated with the technology have transitioned from concept to tangible physical form. Although that is true in some instances, in others, the assumption is a bit premature. Given the current state of the technology, a fair question would be: Is this the case with IoT development platforms? Are these design environments on the market yet? What comprises an IoT development platform?
Before seeking answers to these questions, remember that the diversity of the IoT is staggering, and blanket solutions remain rare commodities. As with many things pertaining to the IoT, answers are not cut and dry.
Obstacles Abound
At this point in the IoT evolution, designing products for the new connected world remains daunting. As recently as 2016, Jeff Voas, a computer scientist at the National Institute of Standards and Technology, said, “There is no formal, analytic or even descriptive set of building blocks that govern the operation, trustworthiness and lifecycle of IoT components.” Things have improved since then, but finding the right tools and development environments to create IoT products can be challenging.
Numerous issues contribute to this dilemma. Topping the list is the technology’s complexity and scope. Forging links from sensors to enterprise systems requires development teams to work with embedded systems, multifaceted connectivity technology, real-time data and assorted power supplies. Furthermore, system architecture, multidiscipline collaboration and systems integration have become essential elements of success.
The obstacles, however, go beyond these factors. For one, the technology is still in its early days. As a result, developers have few standards to guide them. This means the market lacks all of the necessary terms and definitions required to fully understand and express the intricate facets of the IoT. All of these factors have converged to hamper the introduction of end-to-end development platforms.
Add to these challenges the fact that the IoT is not a monolithic infrastructure. Instead, this web of connectivity has assumed two personas: systems tailored for the industrial market and products engineered for consumer and enterprise applications.
A broad spectrum of factors differentiates these two segments. As a result, the composition of development platforms serving the industrial sector differs from those tailored for the consumer/enterprise market.
What Makes IIoT Development Different?
In developing IoT products for the industrial arena, designers must contend with unique challenges. These issues go a long way toward defining the development platforms currently available to engineers. To understand the platforms, engineers first must examine the issues they face.
Primary challenges are volume, variety and velocity of asset data. “It’s important to first draw a distinction between the IoT and the IIoT [Industrial IoT],” says Darren Haas, senior vice president, Platform Cloud Engineering, GE Digital. “The IIoT is asset intensive, with billions of pieces of connected equipment from across the industrial ecosystem. The amount of data generated by those assets is unparalleled, all generating huge quantities of operational data. The volume, variety and velocity of asset data is vastly different than consumer-grade data. Hence, developing for the IIoT is quite different than developing for the enterprise or consumer IoT.”
Key to today’s IIoT development platforms is their ability to manage huge volumes and complexities of industrial data. In addition, these platforms must support the broad range of industrial communications protocols to source data into the platform. Without this support, developers would have to build custom connectors using a software development kit, adding more time and risk to development processes.
In another area, industrial modeling and persistence are also somewhat different than those found in the consumer/enterprise sectors. Industrial environments have to rapidly create many different types of data that must be brought together and modeled to deliver value to apps.
Lastly, IIoT development platforms must serve a different set of users. “Within an industrial environment, there are many different stakeholders that need access to apps that contain aggregated asset and system data,” says Rob Patterson, vice president of strategic marketing, Technology Platforms for PTC. “One app will not satisfy the needs of the masses. An IIoT platform needs to enable rapid iteration of unique applications for individual users.”
IIoT Data Handling
To successfully create a scalable industrial product, designers need a development platform built to manage the huge volumes and complexities of industrial data generated by equipment and systems from all types of manufacturers and vintages. Beyond the types of data defined by proprietary systems and communication protocols, there are two fundamental types of data—batch and streaming—and the platform’s data ingestion function must be designed and built to account for these options.
Managing data entails not only acquiring input from the assets, but also processing it into a usable form. This means determining what data is needed, defining what the data means and deciding how to tag it so that it can be evaluated by analytics to uncover insight.
Part of this process requires the platform to have adequate memory, judging how and where data is stored. “In some cases, assets may generate terabytes of data in a single cycle—like an aircraft engine in a single transcontinental flight. In other cases, it may need to be preserved for three years—in cases like food and beverage manufacturing, for example, or kept in country because of data governance restrictions,” says Haas. “Retrieving, tagging and preparing the data for analysis is handled at the platform layer, freeing up the application developer to focus more on the advanced analytics.”
Modeling for the IIoT
IIoT platforms should support various modeling approaches, beyond the basic level. Interoperability with different CAD systems is also essential. The platform should provide the means to integrate data with other tools, including CAD solutions so users can make better design decisions.
More critical to the platform, though, are the mathematical models. “These are largely data-driven models that are not visual, but rather abstract representations of asset behaviors and performance,” says Haas. “So, if the design drawings represent the intent of the design engineer, the asset models represent how the asset actually behaves once it’s deployed and operated in the real world. Bringing the two types of models together is one of the many capabilities of a digital twin, and critical to a successful IIoT platform.”
Success of these models depends on collecting the right data. “The platform should deliver the correct data streams in a form the CAD modeling system can use,” says Peter Sutton, senior director of CAD marketing for PTC. “Our customers tell us that getting data isn’t the problem. Getting meaningful information out is certainly the problem.”
“Product design processes need to change. Product designers cannot simply design and deploy products the same way and then ex post facto add sensors and read the results.”
—Peter Sutton, PTC
Related to this issue is the sensing strategy. This is important because the CAD model serves an expanded purpose in the world of the IoT. The model, digital by nature, is a critical place where the real-time data from the product appears — the point where the physical and digital worlds converge. For the right data to appear, sensors must be integrated into the detailed design process from the start, so the sensors are a strategic lever instead of an afterthought.
Industrial Analytics
After modeling, the next step in extracting value from data is analytics. When considering an IoT development platform, look for an environment that provides analysis capabilities that go beyond conventional tools.
“Traditional reporting and visualization approaches are not well suited for IoT data analysis,” says Patterson. “They are difficult and time-consuming to adapt and use for high volumes of complex IoT data in new and varying formats. A good platform should use sophisticated artificial intelligence and machine learning to deliver reliable, actionable insights in real time.”
This approach promises to provide the ability to detect changes in behavior and operating conditions in real time, minimize time to resolution, and optimize performance outcomes using prescriptive and simulative analytics that diagnose problems and generate recommendations.
Changing the Design Process
The call for CAD tools that understand the IIoT, the increasing role of artificial intelligence and machine learning, and the gravitation toward new sensing strategies all combine to create a demand for a new design process for the industrial sector.
Ideally, the new design methodology will begin with the stakeholders defining the whole product, its subsystems, interfaces and desired data streams. Engineering will sit side by side with marketing, service, packaging, operations, sales and finance.
“Product design processes need to change,” says Sutton. “Product designers cannot simply design and deploy products the same way and then ex post facto add sensors and read the results. Product design now becomes a team sport, meaning more stakeholders than ever must be present—and from the first moments of product design. They will be the ones deciding the IoT strategy for the whole product and the customized data streams needed to support that strategy.”
To meet the demand for a new design process and provide the tools to help it become a reality, the market has begun to see the introduction of development platforms tailored to meet the IIoT’s unique requirements. Users can further customize these platforms by adding tailored modules that serve industry (e.g., oil and gas) and task (e.g., asset management) functions. This overall trend has been in the works for some time, driven by startups and industry leaders. That said, the question becomes: Can designers expect the introduction of similar development platforms in the consumer and enterprise sectors?
A Horse of a Different Color
Before this can happen, there are numerous hurdles to overcome. The diversity of operating parameters and application demands in the consumer and enterprise sectors hinder the development and use of a single, end-to-end development platform.
“Most IIoT products are very similar in use case and data profile,” says Todd Zielinski, senior director of Electrical Engineering at the Bresslergroup, a Philadelphia-based IoT product development lab. “The IoT, however, isn’t a one-size-fits-all endeavor. You need different tools for different applications, which is regularly the case for purpose-built hardware. To take advantage of differences in hardware, processors and vendor capabilities, there is still a need for different environments and libraries.”
This is particularly true of mobile products, ranging from smartphones and tablets to smartwatches and fitness devices. “In the case of mobile applications, there are specialized development environments needed to support Android and iOS applications, along with developer portals, testing programs to see if they are supported on required versions of mobile platforms, and authorization-and-approval processes to be delivered through appropriate platform online app stores,” says Zielinski.
Diversity Demands a Bigger Toolkit
Many consumer and enterprise IoT products derive their intelligence from embedded systems. Unfortunately, this technology is by definition a fragmented market, where tradeoffs are the rule, not the exception. These markets sport a broad variety of communications technologies, processors and operating systems and many of these require specialized development tools.
For example, there are numerous flavors of processors for every application. To deploy these, developers often turn to common development environments from companies like Keil, IAR Systems and others supported under the auspices of the GNU Compiler Collection.
Common integrated development environments (IDEs), like Visual Studio Code, make the coding process easier, but eventually designers must use JTAG/SWD debugger support through one of the standard embedded IDEs to see the low-level effects in hardware and manage the memory map of the application.
In addition, support for an embedded operating system depends on the particular platform being used. Whatever OS the development team chooses will affect the IP that the OS needs access to for the application. Many silicon vendors have begun to adopt FreeRTOS or mbed.
Embedded operating systems also generally have additional tools to monitor battery life or process efficiency. These tools are available in the open source domain or from third-party vendors. In the memory protection used for heavier IoT devices, more common coding tools can be used, but the operating system tends more to support embedded Linux flavors, such as Yocto, or Android for particular applications where the user interface is paramount.
Start Testing Early
In addition to the challenges posed by use case and data-profile diversity, modeling, simulation and prototyping of products for the consumer and enterprise sectors pose their own challenges.
“Modeling and simulation with IoT device development can be difficult because of the varied connection methodologies, routing during actual deployment and platform differences,” says Bresslergroup’s Zielinski. “The earlier you can test out the key functionality and connectivity of an IoT device, the better. Evaluation systems and modules can be extremely useful in quickly testing a concept for a minimum viable product, but the closer you can get to the actual product architecture the better. Trying your prospective development environment out as soon as possible will help show where potential issues will be encountered in getting to a working prototype.”
The Value of Analytics
Another resource that eases the designer’s job is analytics. These tools define the issues that arise when it’s time to make design tradeoffs.
“Common analytics include operating system latency, power usage, code coverage, compliance metric and tools to do unit testing of connectivity stacks,” says Zielinski. “Benchmarks can be difficult to compare in this space, in that most IoT devices’ performance are not dictated by total data processed, but by efficiency of battery life and how they deliver value for performance. A simple device that consumes little battery power and communicates accurate data appropriately and reliably is usually the best device for this application. Benchmarks should reflect this attitude, in power used per cycle, efficient memory usage for communications and reliability of code.”
Automating the Development Process
Whether talking about the IIoT or the IoT, automation has increasingly proven to be critical to the success of product development platforms. These platforms should streamline as many development steps as possible to enable scaling.
This process relies heavily on the use of artificial intelligence and machine learning, as well as new approaches to tools and environments. For example, for applications to run successfully across different form factors—whether on the edge or in the cloud—many developers have turned to containerization strategies for development and deployment, which allows more flexibility to where applications can run.
These developments are just the beginning of IoT development platforms’ evolution. For years to come, the only certainty in this area will be change.