In order to realize and build Enterprise IoT applications, we first need to understand the key components, requirements, and complexity that go into building end-‐to-‐end IoT solutions.
An Enterprise IoT stack is a set of core capabilities and services that enable us to build IoT applications. In this chapter, we would walk through each component of an Enterprise IoT stack in detail, talk about the current challenges and how these components interact with each other.
The Enterprise IoT stack is later used as a reference to map the IoT services provided by leading commercial cloud offerings. Our intent in this chapter is to provide a first applicability stack that can be considered as a reference for building any IoT application along with leveraging commercial or open source technologies.
The IoT stack comprises of many layers, starting with devices, which communicate and send data to a core platform layer through different protocols based on the communication strategy. The core platform provides a set of key services to allow the devices to connect securely, store and replicate the data for fault tolerance and provide scalable technologies to accommodate millions of connected devices when required. Once the data is made available, the Analytics platform layer lets you analyze large volumes of data in real-‐time and batch/offline mode and discover actionable insights. The cognitive layer allows connected products to learn from behavior and insights and provide a natural extension to one’s digital life. On the top of the stack, we have the solutions layer, which provides end-‐to-‐end consumer or industrial IoT applications, developed using the various stack services. We would explain all these concepts in detail in the course of this chapter.
The IoT stack should also address security and management of IoT applications. The requirements include device management, device security, secured bi-‐directional communication between devices and IoT platform, application security, network topologies, service management aspects, deployment, and simulation.