Integration of IoT / M2M platforms with Distributed Intelligence services
The next-generation Smart Applications leverage improved telecommunication infrastructure to coordinate activities in real time, cost effectively, and in an integrated manner. An IoT / M2M application reduces the operational cost significantly by rationalizing the amount of workforce required to conduct manual data gathering exercise (e.g. meter reading) or perform certain routine activities (e.g. preventive maintenance checks) using state-of-the-art technology. However, a replacement of human beings with a dumb machine is not good enough. It would also require replication of human-like intelligence into the system to handle tasks at hand in an effective manner. Therefore, a new kind of application architecture is needed to support the predictable outcomes using Distributed Intelligence, a self-organized set of system components and/or services to achieve coordinated real-time decision making.
Some of the industry experts view IoT / M2M Solution Architecture split into
- Operational Technology characterized by an event-based, data-in-motion, realtime approach. It focuses on gathering of data from sensing devices or delivery of control commands to specific devices that are deployed and organized in a geographically distributed cluster.
- Information Technology characterized by query-based, data-at-rest, non-realtime approach. It focuses on data recording, processing, reporting, etc. using traditional IT platforms or services.
In a Centralized Intelligence model, the data is transported to a set of decision making applications that are hosted in a Cloud centrally. However, in a Distributed Intelligence model, the data need not be transported all the way to the centralized Cloud. In fact, the decision making nodes are deployed at multiple locations. As soon as the data is received, the local node is capable of processing it, and capable of decision making. Furthermore, such data could be transported to centralized Cloud for data backup or audit purpose also. A set of nodes can co-ordinate among themselves to assume certain tasks.
The following lists key components needed for IoT / M2M solution development
- A Visual Designer toolkit (e.g. Cayenne, Flow, NTK, Node-RED, Reactive Blocks) would be helpful for structural and behavioral modeling of Internet of Things systems. Nowadays, web-based application interface is also available. Such tools allow the design of data exchange path between several components of the overall system.
- A low cost Single Board Computer (e.g. Arduino, Pine64, Raspberry Pi, Nanode, IOIO, BeagleBoard, CubieBoard, IzoT) is required for the integration of Sensor or Actuator components with the main board that would communicate with the IoT Gateway nodes. Most of the vendors offer an Integrated Development Environment for editing the model properties, source code, and compiling the firmware software that would be embedded into the hardware module. The main board offers multiple I/O interfaces to be able to connect different kind of devices locally.
- A long-life, reliable, and efficient Battery / Cell (e.g. Saft) or an Energy Harvesting (e.g. EnOcean, psikick, Ilika, Freevolt, Imprint Energy, BrightVolt, Cymbet) power source is required by remotely deployed wireless sensors or actuators to be able to exchange data with IoT Gateway nodes. Without sufficient power, the IoT modules would fail to perform effectively. So, the current focus of research is on powerless sensors or actuators.
- An embedded Real Time Operating System (e.g. Contiki, FreeRTOS, RIOT, Nano-RK) offers a standard I/O port interfacing, process or task scheduling mechanisms, memory management, data storage, device drivers, application programming libraries, etc. for quick development of custom software for hardware platforms.
- A set of remote sensors are needed for the Data Gathering based on CoAP, MQTT, XMPP, 6LoWPAN, RPL, 6TiSCH, OpenThread, ZigBee, NFC, telehash communication protocols. The sensor data is received in various data interchange formats (e.g. CBOR, Universal Binary JSON, oBIX) depending on prevailing standards in specific industry verticals. The sensors are integrated with the main board. A highly secure data exchange mechanisms are required to assure the integrity of data delivered to target systems in the backend.
- A set of remote actuators are needed for the Command Delivery using industry standard OPC, HART, Profibus, MTconnect, EtherNet/IP, DeviceNet, ControlNet communication protocols. The capability of each actuator might be limited therefore a set of instructions need to be executed over a combination of actuators to achieve specific goals. The actuators could be interfaced with the main board for command control. Typically, the command delivery is allowed by authorized systems only therefore very secure communication mechanisms are needed to protect actuator access.
- Besides providing the local intelligence, the Edge Computing (e.g. Saguna Open RAN, HP Edgeline, OpenBaton, CloudGate) platforms are integrated with the fixed or mobile access network to host IoT application components that could exchange data streams securely and efficiently with the target devices. Nowadays, a Cloud RAN architecture is being proposed that would integrated with containerized application hosting capability at the Edge Network nodes. Besides improving the network latency by deploying some of the IoT system components in such nodes, it offers local intelligence by virtue of positional context and interfacing with the Edge Network services.
- A set of IoT Access Gateways (e.g. azeti, machhina.io, Sensor Bus) are deployed in the Edge Network to interface with backend applications. The gateway node communicates with main board where sensors or actuators are integrated. Nowadays, the IoT Gateway nodes are LTE capable.
- A data Brokerage Platform - Data Distribution Service and Provenance system (e.g. NiFi, Flink, Meshblu, Sesam, Mosquitto, RabbitMQ, CloudMQTT) is required for data routing based on standard runtime engines (e.g. Akka) to interface with target Cloud-hosted applications. The data routers could be configured dynamically using web-based interfaces or RESTful Web Service APIs.
- A Spatio-Temporal Database (e.g. M2X, GeoMesa, nimbits, MemSQL, Cassandra, ParStream, OpenTSDB) is required for storage and retreival of sensor or actuator time-stamped data enriched with geographic context for further processing by application components.
- A Continuous Data Flow Processing platform (e.g. Storm, StreamSets, Samza, Spark, Striim, Confluent, Initial State, SQL Stream, Splunk) is needed for efficient routing of data streams, executing complex event processing methods, and running big-data or analytics algorithms continuously for gaining operational intelligence. Such data flow platforms are enabling the real time decision making capability of Smart Applications.
- The Cyber Physical Security (e.g. Red Balloon, Ultra Electronics 3eTI, Endian) system would assure an end-to-end security of the data exchange between Operational Technology and Information Technology components. Besides implementing security at various layers of the networking stack, the application, data routers, and the transaction processors implement various mechanisms to secure data in transit and at rest.
- An integrated Dashboard (e.g. freeboard, Intel IoT, thethings.io) is required for the monitoring, control, and reporting by the Enterprise Applications.
- A Geospatial Information System platform (e.g. GIS Cloud, ESRI ArcGIS, GeoWave, Elyx, OrbisGIS, GeoServer, OpenLayers) and services (e.g. GeoHash) are integrated for the data-visualization and reporting purpose by several application components. Considering the fact that sensors or actuators have a geographic context, the mapping engines allow processing of the spatial data efficiently.
- A Natural Language Processing (e.g. wit.ai, Mycroft, Nuance Mix) system could also be integrated for voice based control from the backend applications. Nowadays, it is common to voice-enable Enterprise Applications.
- A Mobile Application (e.g. EvoThings, NetBeast) platform for IoT / M2M.
Besides an ability to gather different kinds of data regularly in various formats (e.g. text, image, audio, video) from a set of "Sensors" deployed on a fixed or mobile platform that are distributed geographically and process it efficiently in near real time manner, and also be able to deliver specific commands to a set of "Actuators" to perform certain actions remotely in a coordinated manner, we do need the DevOps capability to manage such Enterprise Applications effectively.
- An Integrated Development Environment (e.g. PlatformIO, IoTivity) allows developers to custom design and build applications.
- The Source Code Control (e.g. Git, Mercurial, Subversion) system allows different versions of the software developed by various team members be managed effectively.
- The Software Build Automation (e.g. Ant, Gradle, Maven) system allows scripting and integrating the routine tasks for consistent execution.
- The Virtual Machine or Container Image Build (e.g Packer) systems are required to create gold copy of executable instance for reuse.
- The Deployment Automation (e.g. Ansible, Chef, Docker, Mesos, Puppet) tools are required to gather all the artifacts from different sources and deploy the executable image into an environment (e.g. production).
- The Continuous Integration (e.g. CircleCI, Hudson, Jenkins) tools assure that latest copy of the system run in the production after performing all the tests and verification procedures.
- An Incident Management (e.g. IoT Ticket) tool is required for registering any issues and end-to-end tracking of bugs or enhancements to its closure.
Additionally, the following capabilities are needed to offer Managed Services
- The Battery Management (e.g. Wattmon) is an important requirement in the IoT / M2M applications since remotely deployed sensors or actuators need to function for a longer duration without any intervention. The energy consumption patterns need to be monitored and maintenance activities must be performed, if needed, regularly for effective operations.
- The Device Management (e.g. Yaler, openAlerts, realtime.io, SiteWhere) platform is required for remotely connecting to sensors or actuators to perform configuration, diagnostic procedures, or other operational activities.
- The Network Management (e.g. OpenGear, Brain4Net, HP DCN, SAVI) platform is required for the configuration, monitoring, and control of various network elements. Nowadays, the application-aware Software Defined Networking techniques are utilized for virtual networking IoT applications on demand.
- The Database Management (e.g. Cassandra, Cubrid, Redis, Couchbase) platform is required for object records, data backup & recovery, etc.
- The Information Management (e.g. SensorCloud, plenar.io, CKAN) platform exposes data to different applications using Open APIs.
- The Spatial Data Management (e.g. GeoGig, GeoMesa, GeoTrellis) platform is required for geospatial data indexing, processing, and visualization (e.g. Mapnik).
- The Intelligence Management (e.g. mnubo) platform is required for business intelligence and analytics.
- The Command Management (e.g. SL) platform is required for remote actuator control function.
- The Remote Testing (e.g. ihiji, HBM) is required for tests, verification, and calibration of devices.
- The Microservices Hosting (e.g. OpenShift, Docker, Kubernetes, RancherOS) management is needed to automation of deployment of various components in containers.
- The Application Development (e.g. Kinoma, Lelylan, Carriots, IQP, AllJoyn, Sine Wave) frameworks are needed by Software Developers.
- The Middleware (e.g. IoTSys, Kaa, OpenIoT, OpenRemote, ProSyst, Calvin) platform simplifies application development and deployment efforts.
- The Catalog Management (e.g. OSCM) and Subscription Management (e.g. Corent, OpenBRM, KillBill, OpenCell, nxFAST) is useful for accounting and support for multiple tenants on the same platform.
The following Cloud Service Providers offer solutions for IoT / M2M
- Apple iCloud services integrated along with HomeKit platform
- Arrayent Connect Cloud platform
- ARM mbed device platform
- AWS IoT platform
- Bosch IoT Cloud platform as a service
- Buddy IoT Cloud platform
- Citrix Octoblu platform
- CommonSense IoT platform
- Google IoT platform offering Brillo, Eddystone, Weave
- HortonWorks DataFlow platform
- HP Universal IoT platform
- IBM Node-RED, Bluemix, and Watson IoT platform
- Itron Riva Edge Industrial IoT platform for Utilities
- Microsoft Azure IoT suite
- Oracle IoT Cloud Service
- Particle platform
- PTC Axeda and ThingWorx machine Cloud
- RoboMQ platform
- Telit IoT platform
Several industry verticals are deploying Smart Applications, such as: smart Home Automation (e.g. Insteon, Nexia) or Smart City platform (e.g. Sentilo).