A Technical Overview of Internet of Things (IoT)
Simplified guide for solution designers and architects
The purpose of this article is to introduce IoT (Internet of Things) ecosystem based on a model that I developed as part of my solution architecture engagements in multiple successful projects in large business organizations.
I set the IoT solution context at a high level. Understanding the solution context can help us delve into architectural and design topics in a methodical way. Every solution requires following a method to leverage prior experience in the field. The methodical approach also can ensure that nothing falls into cracks during the solution lifecycle.
From a contextual perspective, IoT solutions require consideration of several designs and implementation factors. I introduce these factors in component formats. Using a component model can help architects and designers to see the big picture and understand the underlying details.
The key factors that I introduce in this article are Things (devices) with sensors, gateways, the Internet, the Cloud, the Edge, communications, patterns, processes, applications, APIs, tools, and end-users.
A combination of the Things and the Internet include wireless technologies, micro-controllers and services. The Internet connects these devices to enable them to communicate with each other to exchange data and information.
IoT devices can have multiple roles. For example, we can plan the devices as either a source or a destination for the data and information in the network. Interestingly, some devices can be a source, a destination or both at the same time.
One of the most prominent parts of the IoT systems is the control mechanism. IoT systems can control or be controlled at the same time. At the highest level, the ultimate goal (functional requirement) is that the system must take actions and produce the desired results.
In simplified terms, an IoT device can control other devices in the system, and it can be controlled by other devices in the network. The reason for emphasizing this point is that these two-way control-based interactions can pose an enormous challenge for security, performance, availability, and cost factors of the solutions.
It can be possible to store the IoT related data in sensors, gateways, local devices in the network and the Cloud systems at different amounts. For example, sensors may hold very little (bare minimum data) while a Cloud-based storage device may hold terabytes of data for analytics and data visualization. Gateways and Edge servers also store a certain amount of data to provide necessary calculations that improve the performance and availability requirements of a system.
Based on several well-known performance and availability challenges in the field, it is clear that the IoT control mechanisms need to be well understood, well-structured, and designed in the most granular way possible to ensure the interactions are based on the intended security objectives. Needless to say, in this economic climate, from an architectural and a business standpoint, we also need to add agility to this context due to growing consumer demands.
A methodical solution design approach is essential to overcome these challenges and produce the desired business results. To produce and support these devices on an ongoing basis, we must keep these control mechanisms highly available, well-performing, and cost-effective at all times. This is a primary business requirement for typical IoT solutions created in large business organizations.
Let me introduce the IoT ecosystem components so that you understand the key players in this complex and dynamic environment.
The IoT Ecosystem Components
A typical IoT ecosystem is made of simple or complex multiple systems, components, sub-components, integrated, single-tasking or multitasking elements.
These components and elements need to work coherently and in harmony. Therefore, the environment is called the ecosystem. This term is an analogy taken from biology.
In this article, based on my experience, I propose a new architectural approach to the IoT ecosystem. To be able to create sustainable architectures and designs, it is essential to create and understand the ecosystem, its components, and the underlying mechanism.
The approach I propose factors in the metaphorical survival mechanisms and integration requirements similar to biological ecosystems. In my method, I called this “the fundamental ecosystem architecture approach”.
The aim of this approach is to extend and enhance the ingredients of an electronic ecosystem. This approach can resemble a biological ecosystem model. My architectural goal in using this approach is to make the solution sustainable as a fundamental business requirement.
This approach includes a strong, agile architectural focus on IoT solutions without compromising the quality of architectural deliverables, such as security, privacy, performance, scalability, availability, and cost-effectiveness.
Let me introduce the key players involved in a typical IoT ecosystem starting with the fundamental “Things”.
The Things of IoT
A crucial player of the IoT ecosystem regards the ‘things’, which are intelligent hardware devices, such as sensors and actuators. We can categorize “Things” under three main topics.
The first one concerns the smallest devices with embedded 8-bit systems, which are also known as System on Chips (SOCs) devices. SoCs have given rise to many commercial devices. Some SoCs can run full operating systems and calculate complex algorithms.
The second ones are the 32-bit systems based on Atheros or ARM Chips which can run a cut-down version of open-source operating systems such as Linux.
The third ones are the 64-bit computing platforms running full versions of operating systems such as Linux, Windows, or Android.
The ‘Things’ can function as converters or can talk to a separate device that plays the role of an additional converter. The function of these ‘Things’ is to convert the physical signals to digital signals.
IoT devices require micro-controllers and micro-processors with a chipset to enable wireless connections and communications. These chipsets can be made up of some commercially available boards that we can use for prototyping an IoT solution component.
Prototyping is the process of building IoT systems enhanced with sensors and embedded systems using off-the-shelf components. Many inexpensive, off-the-shelf components, such as micro-controllers, sensors, and circuit boards, are available in the market for consumption.
IoT prototyping boards are micro-controllers or micro-processors with chipsets to handle wireless connections. These development boards, when used with the IoT Cloud platform, can enable a fast-prototyping process.
These boards typically include components, such as a battery, power supply, reset button, on/off button, LEDs, gyroscope, Wi-Fi, USB interface, Camera, I2C Connector, Ethernet connector, Micro HDMI connector, and an LVDS display.
There are numerous prototyping boards available on the market. We can spec these boards in our solutions as they are inexpensive and can speed up the prototyping process considerably to develop a quick IoT solution in our agile delivery project.
In my solutions, I used popular boards such as Intel Edison, Arduino, BeagleBone, UDOO Neo Photon, RaspberryPi, and ESP8266.
During the earlier phase of the solution lifecycle, use of prototyping boards can be useful and cost-effective to analyze availability and performance concerns in an agile way. We need to make architectural and design decisions to include prototyping boards in our IoT solutions.
The IoT Gateways can be seen as the raw data processing and transmission devices. These gateways can be the communication points between sensors and the Cloud. Data coming from the sensors pass through the gateways to reach to the Cloud systems.
In the IoT technical literature, particularly in architectural artifacts, the IoT gateways are also known as ‘control tiers’. These devices can be implemented as hardware or software solutions.
The primary purpose of these gateways is to minimize the high volume of data generated by the sensors. Some IoT gateways can have additional intelligence for analyzing data and can only send the relevant data to the Cloud storage units.
Some IoT gateways also provide additional security mechanisms, such as adding encrypted transmissions. IoT solution architects need to pay special attention to these devices and factor in the performance, availability, security, and cost-effectiveness criteria captured in their solution requirements.
In terms of streaming data performance requirements, considering smarter gateways in IoT solutions is vital. These gateways can perform tasks such as averaging data and making more effective calculations, especially before the data sets are transferred to the analytics servers.
Gateways can connect to the Internet directly or via edge devices. However, as an architectural principle, processing raw data should be performed by the edge devices to improve performance efficiency, and in particular, prevent network latency and data transmission delays in the ecosystem.
It can be useful to make an architectural decision in the solution document to find out why the Internet can sometimes be either directly accessed by the gateway or only through the edge device.
There can be specific considerations for each use case, and they need to be articulated in the solution document as an architectural decision. Determining such a decision upfront and obtain consensus on these decisions from the technical governance teams can yield many benefits when the solution goes to production support.
The IoT Cloud
As mentioned in previous articles, the Cloud Computing marked a paradigm shift to Information Technology and Computing field. IoT Cloud is a critical player in the ecosystem. The central role the Cloud system plays in IoT ecosystem is to facilitate the data integration of the solution components effectively.
IoT solutions are mainly used to provide real-time information to consumers. The data required to generate real-time information can be massive in scale.
The Cloud systems, along with computing power, storage, networking, analytics, metering, billing, and other service management components, can make this information effectively available for the consumers.
The integration of Cloud to IoT can create new revenue streams. Integrating the Cloud with the IoT can create new business models enriched by real-time analytics and directly consumed information at the same time. In other words, without the Cloud in the ecosystem, the IoT can hardly add any value due to its real-time data and information-rich nature.
The addition of the Cloud to the IoT can also contribute to improved security, availability, scalability, and performance of the IoT solutions. Cloud providers have rigorous security, availability, scalability, and performance metrics established based on a service consumption model. In particular, IoT-enabled Cloud systems are embraced in the industry as additional security measures.
When integrated with the Edge Computing, Cloud computing can add better value to the IoT ecosystem. The main reason for this is that Edge computing can do the filtering for the Cloud to focus on the usable data.
Therefore, the IoT solution architects need to understand the Cloud Computing architecture and service models and how to integrate them into the IoT solutions. Being aware of the capabilities of Cloud technologies and using them effectively in the solution work products can be beneficial in creating large-scale commercial IoT solutions.
IoT platforms play a unique and an essential role in an IoT ecosystem. IoT platforms consist of multi-layer technology stacks that enable automatic provisioning, system management, and overall automation of connected devices in the ecosystem.
Some IoT platforms aim to fill the space that exists between sensors and networks. Specific platforms can connect the sensors and the network using specifically developed functions or applications.
There are many platforms commercially available on the market. It can be useful for IoT solution architects to familiarize themselves with the offering services of these popular platforms. We can use some of these products in an integrated way in an IoT ecosystem.
Edge Computing is a crucial architectural factor in IoT solutions. Edge devices can have multiple functions in the IoT ecosystem. These devices are instrumental and contribute to performance, availability and security goals in IoT solutions. Edge devices are useful when integrated with Cloud systems. We can connect the IoT gateways to the edge devices.
Edge devices can play several roles, such as to process data, reduce the amount of data and optimize data for better communication on the Internet. Edge devices can process and upload the data to the Internet (preferably to a Cloud system) via the TCP/IP; that is, the significant and native protocol of the Internet.
Using Edge Computing architecture, we can ensure that an application can process sensitive data on-site. Then, the application, for further analysis, can only send the privacy-compliant data to the Cloud. Edge computing has a favorable impact on IoT security and privacy solutions.
There is also an important architecture related to Edge Computing that IoT solution architects need to know — Fog Computing or Fog Networking. Fog Computing architecture uses the edge devices to maintain a large amount of computation, storage and communication processes locally and then route them over the Internet. The critical strength of the Fog Computing is its proximity to consumers. This proximity can constitute enormous performance implications in the IoT solutions.
For the IoT solution architects, it is fundamental to understand the Fog Computing architecture as it has a favourable impact on the availability and performance of IoT solutions, primarily via a reduction in latency and by improving quality of services in network requirements.
In IoT solutions, storage devices can be placed either in the Edge or in the Cloud systems. Due to performance considerations, the storage function can usually be performed by the Edge devices, as mentioned in the previous section.
Our IoT solution may need several architectural decisions as far as IoT storage is concerned. For example, we can make an architectural decision on whether to have additional storage devices at the back-end before the data is sent to the Cloud.
Other architectural decisions can be related to a high ratio of storage capacity to the physical footprint, speed, reliability, and data security.
IoT Analytics Computation
We use the IoT analytics to make sense of massive data; for example depicting key performance indicators in the visualization application in a dashboard. These dashboards can include risk management views, errors, bottlenecks, and view the “Things” in real-time.
IoT solutions need computers to perform analytics and intelligence activities. Such tasks are hosted by Cloud platforms, such as analytics applications in which computation performance is important.
We also need to consider storage as mentioned in previous section. For analytics storage, we need to make an architectural decision as to whether local storage or cloud-based storage is better. This architectural decision is necessary to address cost and performance concerns in the solution.
IoT Analytics can also be provided as a consumption-based service. For example, AWS IoT Analytics is a fully managed IoT analytics service that collects, pre-processes, enriches, stores and analyses IoT device data. AWS customers can also bring their own custom analysis packaged in a container to execute AWS IoT Analytics.
End-user Devices and Communication
End-user devices are sensors that are used to communicate with end-users, systems or platforms. There is a growing amount of research on direct end-user interaction with and via IoT devices.
The interactions are usually accomplished via a wide variety of smartphones, tablets and laptop machines connected to the Internet.
For example, some users can access their home automation devices, such as security cameras, remotely via their smartphones and interact with the home automation systems at their convenience when they are away from home.
There are also other popular user devices, such as wearable fitness watches. These watches collect the data from human body motions and send them to the analytics machines in the Cloud, which could be hosted any part of the globe.
APIs for IoT
APIs (Application Programming Interfaces) are part of the IoT ecosystem to allow secure connections to the consumers, channels, and other IoT applications.
We can use APIs to integrate devices, applications, data, and the Cloud systems quickly and effectively.
Further, APIs can contribute to the performance, availability and security goals. APIs also help the production of solutions in an agile and cost-effective manner. Considering APIs cover the main architectural objectives mentioned in this article, they are highly recommended to be understood and included in the IoT solution process.
Overall, APIs can be compelling components of the IoT ecosystem when we use them correctly in our solutions. APIs can provide fast and effective automation. We know that we can reduce any human errors and increase the speed of throughput using automation.
Many applications form a part of the IoT ecosystem. These applications can offer various use cases for different consumer types.
Some common IoT Application types are smart homes, wearables, smart cities, smart grids, industrial Internet, connected cars, connected health, smart retail, smart supply chain and smart farming.
Our solution architecture may need to implement one or more of these applications in an integrated way. As IoT solution architects, we may also design solutions for new IoT applications rather than using commercially available applications.
To start with, understanding the business requirements and use cases can help us choose an application or make an architectural decision to create an in-house IoT application.
We can also obtain use case ideas from IoTONE that offer 54 high-level use cases, such as Building Energy Management Systems, Continuous Emission Monitoring Systems, Fleet Management, Indoor Air Quality Monitoring, and the Last Mile Delivery.
To learn more about various IoT applications and relevant IoT technologies in the industry, you can review the top 500 Industrial IoT companies as listed by IoTOne.
IoT Communication Patterns
It can be useful for IoT solution architects to be familiar with IoT communication patterns. These patterns can simplify the solution progress by providing established resolutions to a communication problem.
These patterns can be categorized based on their functions under the names of Information Flows, Queries, Commands and Notifications. I have given a brief explanation of the flow in the following list:
1. Information Flows depict the information going through the devices and the systems carrying out the status of the device or the system.
2. Queries are for requests to initiate communication activities.
3. Commands are the instructions used to perform specific communication activities.
4. Notifications depict changes in status.
Several communication patterns can be used for IoT Solutions. We need to understand the content of a pattern that may suit a specific IoT communication solution building block.
IoT End-Users and Service Consumers
IoT end-users and consumers are usually remote to the Things or the technical back-end systems. In some cases, users can be part of them or close to them. These end-users are also known as consumers from a service management perspective. In general, these end-users do not have direct access to or have a view of the back-end systems.
The users send commands (from their input devices) via the Internet to the analytics servers. It is challenging to set the proximity for the end-users unless we know the use cases for the applications they use.
For example, for an application sensing a user’s heart rate and sleep patterns, the user generally carries the device on their arms. In this case, the proximity is close, almost embedded. However, if they obtain information about the weather conditions on a remote farm, they can view this information on a smartphone, even if the farm is kilometers away.
In this article, I provided an overview of the IoT ecosystem to create awareness for the aspiring IoT solution designers and architects. Considering the architectural and designs factors mentioned in the article can also be useful for experienced architects as a checklist for their solution planning.
Disclaimer: The full version of this article was published on another platform. Link:https://medium.com/illumination-curated/introduction-to-iot-ecosystem-25b359c8cf23
Reference: A Practical Guide for IoT Solution Architects by Dr Mehmet Yildiz - https://books2read.com/u/baWav8