The Internet of Things (IoT) is a disruptive technology with great potential. It also brings technical complexity. IoT applications must seek to create seamless and secure experiences in life, and at work, for the end-user. The success of IoT depends critically on the availability of fit-for-purpose end applications. The focus of TCS research was therefore to enable creation, deployment, and administration of high quality IoT applications. The key stakeholder for us was the application developer and the goal was to provide necessary platforms and tools for the application developer and architect. We built the TCS Connected Universe Platform with a suite of services and basic building blocks. We also baked in the right kind of engineering properties to meet the needs of enterprise-grade applications. But we were faced with some tough choices along the way!
The Internet of Things (IoT) is a disruptor with many impact dimensions. For many businesses, the possibility of smart products gives the opportunity to create new business models, requiring fundamentally new designs and strategies. For large manufacturers, IoT accelerates servitization of products; they can stay connected with their product even after it leaves the shop floor and provide services around it. IoT can drive operational efficiencies in almost every sphere: visibility through the supply chain, monitoring of devices and optimization of resources/allocation around these, proactive maintenance, and more. For an individual, IoT can bring personalization of services, creating much value in areas such as health and safety.
TCS’ IoT journey began 15 years ago. It began in the realm of radiofrequency identification (RFID). It continued through ubiquitous computing, which was deemed a leap from mobility. For more than a decade now, we have been investing in significant research effort on many aspects of IoT.
Focus on IoT applications
We had an early realization that the success of IoT and its benefit to end-users would critically depend on availability of fit-for-purpose end applications. IoT applications are meant to deliver the desired service and user experience to the end-user, while abstracting all the complexities of the underlying technology. For the end-user, IoT technology is seamless and hidden and is an integral part of the user’s life, work, or environment. Our focus of research was therefore to enable creation, deployment, and administration of high-quality IoT applications. The key stakeholder for us was the application developer and the goal was to provide necessary platforms and tools for the application developer and architect.1
What IoT applications need to achieve
The most common goals of IoT applications can be summarized and grouped under the following abstract buckets.
Real world visibility: IoT applications need to get visibility into what is happening in the real world. Visibility is achieved using sensors that observe the real world and transmission and telemetry of these observations from the real world to the servers/computers hosting the IoT applications. Visibility into what is happening now as well as what has happened in the past is needed.
Understanding the real world: IoT applications need to build models of the real world. Once the models are built, these can be used to predict future possible scenarios as well as infer or estimate those parts of the real world that cannot be sensed or observed otherwise. Building models requires both current observation data as well as past data. Data acquisition and data engineering are prerequisites for building models.
Changing the world: Once the real world is understood and modeled, IoT applications try to steer the real world toward some desired states. These are achieved by sending commands or signals to systems, plants, and actuators so that they can effect some changes in the physical world.
Building blocks of an IoT application
In order to achieve these goals, the following functional blocks are common in IoT applications.
Data ingestion: Applications need to acquire data from devices and sensors attached to the physical world. The ability to interface with various heterogeneous edge devices, understand the structure and semantics of the ingested data, and transform the same to usable formats is the first step in any IoT application.
Data management: Once data is captured, it needs to be persisted in appropriate databases, along with all the necessary metadata, so that it can be queried for visualization, reporting, and model building at any point in time.
Real time analytics: Data from the physical world needs to be processed, filtered, transformed, joined, and analyzed in real-time even before it is persisted in a database. Situations and conditions, and interesting patterns in streaming data, need to be acted upon as they happen.
Device management: The devices that are attached to the physical world need to be monitored, managed, updated, secured, and queried.
Analytical model building and model execution: Using data captured and stored within the applications, analytical models need to be built. The models, once built, can be used for descriptive, predictive, and prescriptive analytical tasks. These tasks consist of software programs that typically run on stored data, either periodically or on event-driven basis.
Interfacing with heterogeneous devices, understanding the ingested data, and transforming it for use, are the first steps in any IoT application
The connected universe platform
Based on our understanding of IoT applications and their requirements, we started building a platform that would provide a suite of services to lay the basic building blocks. The objective was to provide these services through well-defined interfaces or APIs. The APIs would encapsulate all unnecessary details of technology and implementation. The APIs would be such that they could be called from any computing platform using any programming language. We called this platform the TCS Connected Universe Platform (TCUP).2
The services of the platform were designed in the form of a collection of micro-services. The micro-services were designed in such a way that they were self-contained, independently developed and deployed, and not dependent on any other micro-service. Each micro-service could be used independently and could be stitched together by an application, to create more complex functionality.
Each component of TCUP was built in such a way that it supports various scalability strategies
Making it work in the real world
Our intention, right from the beginning, was to engineer the platform in such a way that it would meet the requirements of TCS’ enterprise customers. The right kind of Engineering properties needed to meet the needs of enterprise-grade applications had to be baked into the platform. Once the right properties were baked in, any application built on top of the platform would automatically inherit all nonfunctional properties of the platform. These would include scalability, availability, security, ease of use and flexibility with respect to diverse integration needs.
Architectural choices made in the platform development enabled us to provide capability to scale an application arbitrarily.3
Each component of the platform was selected or built in such a way that it supported various scalability strategies. We paid particular attention on deployment and post-deployment scenarios. The necessary scripts, tools, probes, and applications were provided to support deployment and monitoring in production.
The portability of the platform across various public clouds as well as its ability to deploy on private clouds were key requirements. Since the ability to deploy a compact version of the platform on resource constrained industrial gateways was also a requirement, we developed a variant of the platform, called the TCUP Edge.
We adopted container technology to facilitate some of these requirements.4
The platform developer’s dilemma
As platform developers, we were constantly faced with choices.
We had to keep balancing the need for flexibility and usability of the platform across a wide variety of use cases with the productivity gain offered by the platform. On a smaller set of use cases, we could make judicious design choices and provide huge gains in productivity. But then the platform would work on only those use cases. On the other hand, if we kept it more and more generic, the burden on the application developer would increase. The other issue all platforms have to face, and we had to as well, was that a generic platform cannot be optimized for all possible applications. The design and architectural choices made in the platform were such that, for some application, it would turn out to be suboptimal.
TCUP enables smart energy and savings
TCS operates in more than 100 facilities in India, which host more than 280,000 employees, across over 30 million square feet. The company pays millions a year in energy costs. Over 6,600 energy meters and 3,500 access point meters transmit data every 15 minutes.
TCS wanted to revamp its energy management system with granular visibility (at building, floor, and appliance levels) of energy consumption data to recharge operations. In the current scenario, the organization needed to delve into several reports and thousands of alerts (including many false positives) to determine the precise aberration in energy use. It was difficult to detect the difference between high values (for instance, the UPS being on at 2 a.m.), outliers (the chiller being left on for no apparent reason), consumption comparisons on holidays, missing data, and the number of occupants in a facility.
TCS implemented an integrated solution for energy management, fault detection and diagnosis, and alarm management. The goal of 10% energy reduction was defined at the outset. TCS’ Data Acquisition and Management System (T DAMS) and TCUP as well as heterogeneous building management systems (BMS) were used to measure energy and carbon footprints.
Remote monitoring and diagnostics services helped ensure optimal asset utilization, with data-driven insights on asset modernization or upgrade, considering the life cycle cost. A big data model helped accurately estimate energy usage at load type levels. Shared services were provided through the use of the cloud, shared infrastructure, and help desk support in order to track and monitor deviation in consumption and initiate corrective actions through a remote monitoring and control center. An energy management application was developed to enable a higher level of control. A self-learning, self-optimized, machine learning-based algorithm to detect anomalies and aberrations in energy consumption for quick corrective action was adopted. In addition, machine learning, integrated with a complex event processing (CEP) rule engine, helped process and gather insights from new data, and automatically send alerts when a problem was detected.
TCUP was leveraged to manage information from separate sources (sensors, metering devices, and so on) over different communication protocols, integrate data, run analytical models, detect patterns and anomalies in real-time and generate alerts. This integrated approach across the energy management ecosystem could address the needs of a factory energy management system (FEMS), a building energy management system (BEMS), and a home energy management system (HEMS). The platform offered visibility and insights on energy use, performance, and saving opportunities, with alarms and alerts for irregularities.
In its first year, TCS achieved 9% energy savings and significant cost savings with the implementation of this sophisticated energy management system. The system continues to offer significant savings each year.
The future will see both maturity and evolution of IoT and industrial Internet platforms.
Horizontal IoT platforms are becoming more popular, as compared to vertical ones. However, vertical platforms can create a niche by providing specialized domain-specific services in the form of digital twins/simulation models and industry specific micro services.
We will see significant use of container technology within IoT platforms. The adoption and use of function-as-a-service capability within IoT platforms will increase.
We will also see an emergence of edge computing platforms for IoT, robotics, drones, and autonomous vehicles. IoT platforms including TCUP will provide specific edge variants. These edge platforms will provide capabilities to execute artificial intelligence (AI) and machine learning models locally at the edge.
IoT applications will leverage platform components that are distributed across enterprise clouds, public clouds, and edge locations.
IoT platforms, including edge IoT platforms, will increasingly participate in blockchain networks as data nodes. These will enable several use cases in the connected supply chains, distributed digital data hubs, and marketplaces.
1 Tata Consultancy Services, Unlocking the Value of the Internet of Things (IoT) – A Platform Approach, 2014.
2 Tata Consultancy Services, TCS Connected Universe Platform, 2017
3 Tata Consultancy Services, Build a Scalable Platform for High-Performance IoT Applications, 2016.
4 x4 Tata Consultancy Services, Why Containers Will Eat the IoT World, March 12, 2018.