Roof is a federated networking and computational paradigm for the Internet of Things (IoT) that is always available for real time onsite operations facilitation including next-hop connectivity for the Things, realtime context building and decision triggers, providing efficient data connectivity to the Cloud/Service providers, and always-on security. The Roof will be implemented as a software platform on various devices that proxy the Things and their IoT services to the rest of the world including but not limited to mobile phones, home routers, gateways, personal computers, servers and other computing platforms as appropriate.
In this article, I will introduces the concept of Roof Computing in the context of IoT, the motivation and the need, its features, how it is different from Fog and Cloud computing paradigms. I will also present applications where the Roof Computing is appropriate and the next steps to build the Roof Computing standard, the IEEE P1931.1.
For the most of networking and communication engineers like me who has been in the industry since early 2000s and understand how the Internet functions, the way people use the metaphor, the Cloud Computing is annoying. Nonetheless, I gave up and started accepting it . Sometime in 2013, I heard about the Fog Computing , yet another computing model, as we have fog below the clouds. Then, I started thinking, what is beneath the fog, so that I can predict the next computing paradigm.
I found that we have roofs below the fog, and I was sure somebody would be proposing the Roof Computing, but I did not know that it would be me.
A Roof for the Internet of Things
Roofs have played a significant role in the human evolution, especially, providing privacy and security for the people and their possessions . In addition, the people under the roof is part of a family or related, there is a trust built among them, and live autonomously within the roof and go outside for creating more value and earning. If there is a problem outside, for example, a strike, the people under the roof would continue to live and function, and will be able to live at least for few days without interacting with the external world.Like humans who are weak when positioned against the nature and anti-social elements, the Internet of Things are weak when exposed over the Internet as the Things in the IoT are constrained devices with limited capabilities to act and protect themselves . Also, a typical IoT deployment involves multiple sensors, actuators and/or other devices and machines, like a family under the roof, and require a trust to be established between the Things under the roof. The Internet of Things operating within the scope that is smaller than the Cloud or the Fog require an environment, wherein they can operate, build trust, collaborate and be secure.
IoT and the Autonomy
Most of the businesses are hijacking the IoT to depict what the IoT is and where the value lies depending on what product or services these companies offer. The goal of any IoT deployment is take actions: switching on sprinklers in case of fire; reacting to a broken pipe; controlling a boiler temperature. IoT deals with the physical world and deployed for a mission, which requires the IoT system to function autonomously over a period of time, irrespective of what is happening elsewhere. For example, an IoT deployment in a factory should continue to function, if there is fiber cut outside the factory disrupting the cloud connectivity.
The Things in an IoT application should operate and co-operate in a secure and independent manner within the context of a local environment such as home, factory, office or airport etc. essentially within the context of a local environment. Each IoT deployment should be able to act autonomously over a period of time (semi-autonomous) and connect into the fog or cloud only when needed or for a added value.
IoT and the Context
Internet of Things make the environment to speak for itself so that people and machines can understand the real world better. This helps in agility in making decisions and taking actions to make the world a better place to live.
IoT system generates continuous data which helps in building real-time context as well as patterns which can be observed over a period of time. The former helps in understanding real-world scenario to take actions required in real-time, the later can be used to understand the patterns using descriptive analysis as well as to improve the scenario using predictive and prescriptive analytics. The former is the real-time computing while the later is the offline computing. The offline computing is achieved using the Cloud Computing which provides large amount of data storage as well as large data processing capacity for the analytics for more value creation for the IoT applications. However, the challenge is to provide the reliable real-time computing for context building and real-time actions.
Cloud, Fog, IoT and the Missing Block
With the advent of the Internet of Things, the Cloud Computing has become a more important networking element as the need for storing and processing of large amount of data has increased. However, it falls short in managing the billions of devices having low-latency micro data transactions. Instead of forcing all processing to the Cloud, an intermediary Fog Computing (yet another metaphor) has been proposed for handling low latency tasks below the Cloud. However, managing the Fog network, maintaining connectivity and providing services upon that, in the scenarios of the Internet of Things at large scale, is not easy . To support the realtime computing needs of an IoT deployment for local connectivity, realtime actions, security and autonomous functioning, we need a true always-available edge computing, called Roof Computing.
The Roof Computing for the Internet of Things
Roof Computing, unlike the Fog and the Cloud, is always available as the next hop for the Things and provides realtime computing needs for building the context and required actions, security and privacy, and efficient and flexible connectivity to the Cloud/ Service providers. Roof can be implemented in IoT gateways, home routers, mobile phones, personal computing platforms and other embedded platforms that proxy the Things for connectivity to the network and the Cloud.
Roof Computing is placed at few meters (or one hop) away from the Things and far below the Fog and Cloud. The IoT gateways and other device that implement the Roof will be able to support the last meter connectivity for the Things. The Roof network architecture [Fig. 6] reflects the traditional federated networking architecture that is being practiced since the widespread use of the Internet. Roof enables this model for the Internet of Things for natural fit into the Internet and Cloud architecture.
In an IoT world, the Roof is a fixed network element that is always reachable as the first hop of communication and provides a strong secure network architecture by providing the Things with the required processing and storage to enhance the security, and robust connectivity to the Cloud. The Roof bridges the physical world and cyber world in creating highly scalable cyber physical systems for the IoT by connecting the Things and systems to the Cloud to build cyber system for the respective physical systems.
The Roof Computing reduces complexity, and increases security and agility for managing large scale IoT networks. Roof allows each of the IoT element (Things, Gateway, Cloud and Applications) to evolve independently from each other.
The Roof Functionality
The primary goal for the Roof is to provide highly functional, secure and scalable Internet of Things. To meet this goal, Roof provides four main functionalities [Fig. 7], viz:
Interoperable connectivity for the Things under the Roof
Context building and decisions to take actions in realtime
Information management and efficient connectivity to the Cloud and Service providers
Security & privacy by design
IoT devices are fragmented with variety of connectivity technologies such as IEEE 802.15.4, IEEE 802.11, Bluetooth low energy (BLE), various Low Power Wide-Area Networks (LPWANs) and many others. Roof accommodates the wide range of Things with variety of access technologies. Roof is responsible for setting up the local network for the Things and provides application independent Internet connectivity for external access including the Cloud connectivity.
In addition to support for the various access technologies used by the Things, the Roof will also support multiple access, networking and application protocols. These protocols include: ZigBee, Z-Wave, Modbus, CAN bus, Bluetooth low energy, WiFi, IPv4, IPv6, MQTT, CoAP and several others.
Mobility is inherent to many IoT applications; sometimes, the IoT network, for example, a truck with perishable goods or a person with many sensors on him/her might be moving. It is important that the users and the Cloud continue to see the Things in the same way as they were set up initially as the truck or the person moves, and connect to different access networks for the Internet connectivity. The Roof would support the network mobility for the Things.
Context building and realtime decisions
IoT applications require two kinds of data analytics: Context Building and Big data analytics, the former is realtime analysis of the current situation i.e. the realtime approximation of the real-world scenario while the latter is for long-term analysis of the data patterns for predicting trends and preventive actions. The Roof builds the realtime context while the Cloud performs the big data analytics, both of which are natural for their location in the network architecture.
Building context and triggering immediate actions in the Roof makes the IoT system under the Roof more functional even in the cases of prolonged loss of connectivity to the Internet and Cloud.
Information management and efficient backhaul connectivity
Roof is the IoT aggregator and improves the efficiency of the network connectivity between the Things and the Cloud, and supports the protocols required to attach to the Cloud over the Internet. In addition, Roof will support connectivity to various service providers (e.g. utilities, safety and security providers, insurance providers, warranty and other service providers). Roof allows the end users to be able to choose and change the existing service and cloud providers.
Things generate data continuously, not all data makes sense nor useful. The gateways with Roof do not just route data but also store data and perform computations on the data as well. Roof filters unwanted data, typically the normal conditions, that may not help for future analysis, and transmit only the useful aggregated intermediate data to the Cloud thereby increasing the efficiency of the backhaul connectivity. The Roof can also store the data locally when the connectivity to the Cloud breaks, and upload the data when the connectivity has been reestablished.
Security and privacy by design
Security and privacy aspects (authentication, encryption and integrity verification) are the key functionalities that will be supported for the Things under the Roof. The interface between the Things and the Internet/Cloud is the weakest link as the Things are the constrained devices making them least self-protected network elements. The insecure interface between the Things and Cloud can result in data corruption, denial of service or complete takeover of the Things making the customers and business vulnerable for cyber-attacks.
Roof provides the capabilities for encrypting the data, intrusion detection and denying the unauthorized capture of data. In addition, Roof supports performing cryptographic operations for confidentiality, integrity, and availability of information, as well as a secure key storage, which may be required to meet local laws and regulations.
Roof Implementation Model
In order to ease the efforts of businesses and developers to build their applications over the Roof platform, a unified interfacing and functional model is required as illustrated in [Fig. 8]. Southbound interface is for the device management and connectivity for the Things, so that a thing can be put under the Roof in a secure manner and build trust with the other Things under the Roof. The north interface would help in establishing a secure channel to the Cloud and Service providers to protect information and privacy while feeding the Cloud based IoT applications. The horizontal interfaces (east and west interfaces) will help the end users to manage the Things, and security & privacy. The security functions involved are authentication, authorization, and secure key establishment for exposing IoT services under the Roof, while the privacy function help the end users to manage the access rights for the data and IoT services.
The Roof and the Spatiotemporal Location
Each IoT deployment should be able to function autonomously over a period of time and connect to the global Internet for more value creation. In this context, it is important to treat all events with respect to their spatiotemporal (space – time) location. This is illustrated in the Fig. 9]. As a matter of design of the Internet of Things, the Things should react for the events while the Roof acts in realtime based on the context, Fog might improve operations in near realtime and Cloud Computing should provide insights for planning for the future improvements.
A typical IoT deployment is illustrated in [Fig. 10], consists of a few 10s to 1000s of constrained devices connected to the cloud over the Internet through one or more IoT gateways with Roof. The Roof is required for every true-IoT application deployed for a mission to take actions for providing connectivity and security for the constrained devices over the Internet while supporting the autonomous functioning of the Things under the Roof.
Roof is applicable wherein a gateway acts as proxy for connecting the Things over the Internet. These applications include but not limited to connected industries, connected vehicles, connected healthcare services, connected homes, connected public authorities, clusters of connected Things in the smart cities and other highly distributed IoT application deployments.
Cloud vs. Fog vs. Roof
Roof is not a competition to either Fog or Cloud nor a replacement to any of these. Each of these computing models has its own applications and approach for the IoT deployment, and one does not replace the other, nor is one better than the other.
Table 1. depicts how each of these computing models fit into the IoT ecosystem. The difference between Fog and Roof is how close they are to the Things and their respective drivers. Roof is just few meters away to support the constrained devices for context building, security and provides efficient backhaul connectivity to the cloud service providers while the Fog can be a few kilometers away to reduce the latency in a distributed environment. Fog could be smarter routing infrastructure with more application-level functionality while the Roof is the true-edge of the IoT; Roof can be part of IoT gateways, home routers, mobile phones and other personal computing devices. However, in small size IoT applications, a Fog implementation may not be required, Roof can talk directly to the Cloud for full fledged IoT deployments.
Roof Computing is an integral part of most of IoT deployments that is always available to guarantee the low latency realtime autonomous operations and to provide the security for the constrained devices. The Cloud and, may be, the Fog are used for more processing, large data storage for long term and historical data analytics as well as integrating with the business process management and information sharing.
The Goals for the Roof
Roof enables building generic gateways and plays a larger role in addressing the interoperability and security challenges among IoT devices, and will lower the cost and infrastructure complexity for end consumers, enterprises, and industrial environments which will result in reliable, scalable, stable, resilient and trustworthy IoT Networks. If successfully implemented, Roof can expedite the growth of highly-connected and robust Internet of Things.
The following are the goals for the Roof:
Context Building: Enable the devices under the Roof to collaborate and act in realtime
Harmonization: Bridge the physical and cyber worlds, and allow horizontal integration of the IoT ecosystem
Security by Design: Provide a framework to enable devices and services to be secure by design while the end users choose their privacy
Better User Experience: Lower operational and maintenance cost with ease of configuration, commissioning, use and maintenance
Reuse & Scalability: Provide reliability, resilience and scalability for IoT deployments with easy to build and repeatable model
Innovation: Allow innovation for new business models and lower the barrier for entry for device manufacturers, service providers and other ecosystem players
Goal 1: The Context Building
The Internet of Things is the humanization of the objects, it requires the ability to build realtime context of the environment where the IoT system has been deployed, so that appropriate actions can be taken. For example, if nobody present at home and the smoke/fire is detected; this is a different context from when the house owner is present and the smoke/fire is detected; in the former context, the IoT system turns on the sprinklers and may inform fire department, and in the later context, the owner is alerted to take actions; if no action is taken by the owner within a certain time, the IoT system turns on the sprinklers and may inform fire department. The context building helps in providing realtime analysis of the environment for taking required actions for the Things to perform their intended functionality.
The number contexts that can be built is directly proportional to the number parameters that are being sensed. The more the number of sensors, the more the number and better the context building. If we have one sensor (a temperature sensor) providing one IoT service (temperature service which provides the current temperature of a room), one can build only one context (the room is cold or hot). With two services, the number of contexts possible are three. With three services, seven contexts are possible. If there ‘n’ services, the number of contexts possible are (2^n) – 1. Imagine, you have 100 basic IoT services, the number of possible contexts that can be built are 1 267 650 600 228 229 401 496 703 205 375. It is one nonillion, 1.267 trillion trillion possible contexts. While some of these are not useful contexts, the number of context one could build is unlimited in a moderate IoT deployment involving 100 different sensors. Even with 25 sensors, over a million contexts are possible. It is difficult to build, understand or the need for every context while deploying the IoT applications. With Roof, the plan is to be able to download the context building rules and associated actions from the Cloud for building new contexts dynamically, so that one can download new contexts either based on the need, to better the existing context rules based on historical analysis or as the end user installs new sensors. This allows innovation and collaboration for building better IoT applications.
Goal 2: Harmonization
Most of the today’s IoT solutions are vendor driven and vertically segmented – the vendor provides devices, IoT hub/gateway and cloud services. Unless the vendor is a big player in the market, it is unlikely that one will be able to get a new device to attach to their gateway. Roof with standard interfaces will be able to harmonize the IoT ecosystem and allows to build more generic IoT gateways and cloud services such that one can choose devices from any vendor and get the services from any other vendor.
Goal 3: Security by Design
Conforming to the Roof standard means starting with security on the day one. Roof avoids the exposing IoT devices directly over the Internet to isolate the devices from being accessible directly by anyone on the Internet. Roof provides multi-level security, analyses threats and requires two-factor authorization for suspected activities. Roof will support authenticating to multiple service providers securely, and manage data access and privacy. In addition, Roof brings up end user awareness about security and privacy threats so that they users make informed decisions to avail a new service.
Goal 4: Better User Experience
IoT devices come in a wide variety of form factors from different vendors with varying input and output capabilities. The interactions with devices, typically, will be handled by web and mobile apps provided by the vendors. The value for the end user lies in coherent service rather than a set of individual devices and their services. Roof will enables coherent services with ability to build context and define associated services which provides distributed user experience across multiple devices.
Device management for configuration, commissioning and software updates are important activities to be handled. Given that IoT is applied across the verticals and a good IoT application hides in the background; reducing the complexity of building the device management feature into the solution is critical for the success of IoT, which is a goal for the Roof. In addition, letting the end users aware of security and privacy threats before choosing a service brings the credibility for the service providers.
Goal 5: Reuse & Scalability
The Internet of Things will be the biggest network ever created by the humans, which requires a scalable model built on a smaller and reusable elements. Roof enables this model that can be replicated easily and be able to build large scale IoT applications, e.g. a Smart City. The Roof model can be used across multiple applications and verticals and enables fault isolation and semi-autonomous functionality for reliability.
Goal 6: Innovation
IoT is innovation over technology, and fundamental for the success of any IoT deployment. Roof has the capability to harmonize the IoT ecosystem by allowing individual components of the IoT system to evolve independently [Fig. 16]. Roof enables the rapid development of new innovative services based on existing devices by allowing access to multiple service providers [Fig. 12]. Roof’s ability to choose and switch to any equivalent service provider e.g. home insurance provider enables the innovative and competitive market.
The Roof and the Blockchain
Currently, IoT deployments are fragmented. Roof offers the possibility of trusted peer to peer communication and collaboration by the edge devices using the blockchain. The plan is to explore the blockchain integration into the Roof framework for establishing neighborhood trust for sharing and collaboration for better context building and actions, and enable more innovative and non-centralized applications among the trusted participants.
The Roof and Metaphoring
While a new buzzword many not be required for this , a well-chosen metaphor is very useful to explain the concepts as wells to persuade and to ensure buy-in into the concepts. While the word ‘roof’ fits into the context of the physical world’s cloud, fog and roof; ROOF is derived from Realtime Onsite Operations Facilitation, a key requirement for the Internet of Things given that any IoT application is deployed for a mission to take actions, and should function autonomously over a period of time and connect to the Cloud for more value creation. The Roof is both a metaphor and an acronym describing the fundamentals concepts of the Roof Computing.
Conclusions and Next Steps
Roof Computing is a new federated computing and networking paradigm to serve the constrained devices in the Internet of Things that provides connectivity, context building, information & service management, and security & privacy. Roof Computing provides a model to build the large scale IoT networks the way they should be built in a natural way without being hijacked by the different vendors based on their business.
Roof computing will be a collection of nascent technologies in a framework with well-defined APIs that eases the development and deployment of secure, reliable, scalable, resilient and high performance IoT applications.
The next steps would involve defining the framework with a minimum set of protocols and standards to be used and how this framework interacts with the Things, Cloud and Humans. As part of this. IEEE Communication Society (ComSoc) has sponsored this standard development. The IEEE Roof Computing Working Group  develops this framework and plans to do this in association with other organizations like Internet Engineering Task Force (IETF) , European Telecommunications Standards Institute (ETSI) , OneM2M , and other active IoT Standard Development Organizations.
If you have interest in participating in this standard development, please leave a comment, I will be adding you to the IEEE ROOF Working Group.
“Roof”, Wikipedia, 2016. [Online]. Available: https://en.wikipedia.org/wiki/Roof.
Peter Mell and Timothy Grance “The NIST Definition of Cloud Computing,” NIST Special Publication 800-145, September 2011.
Bonomi, F., Milito, R., Zhu, J. and Addepalli, S. “Fog computing and its role in the internet of Things,” Mobile Cloud Computing Workshop, ACM, 2012
Shanhe Yi, Cheng Li and Qun Li, “A Survey of Fog Computing: Concepts, Applications and Issues,” ACM, 2015.
Bormann, C., Ersue, M., and A. Keranen, “Terminology for Constrained-Node Networks,” RFC 7228, May 2014.
“Is There a Buzz Over Fog Computing?”, Channelnomics, 2014, http://www.channelnomics.com/channelnomics-us/news/2370241/is-there-a-buzz-over-Fog-computing.
“IEEE Standards Development Working Group, ROOF – Roof Computing”, https://standards.ieee.org/develop/wg/ROOF.html
“The Internet Engineering Task Force”, IETF, https://www.ietf.org/
“Internet of Things”, ETSI, http://www.etsi.org/technologies-clusters/technologies/internet-of-Things.
“oneM2M”, Onem2m.org, http://www.onem2m.org/