The Internet of Things is the networking of electronic devices, or “Things”, that enables them to collect and share data, as well as interact with their physical surroundings. Analyzing this collected data allows us to make smarter economic decisions. These interconnected networks are usually driven by low-powered micro-controllers or cheap CPUs that are designed to function optimally with very little hardware. As scale and computational requirements increase, these micro-controllers are unable to grow without being physically replaced. This thesis proposes a system, IoTA, that assists the Internet of Things by providing a shared computational resource for endpoint devices.
This solution extends the functionality of endpoint devices without the need of physical replacement. The IoTA system is designed to be easily integrable to any existing IoT network. This system presents a model that allows for seamless processing of jobs submitted by endpoint devices while keeping scalability and flexibility in mind. Additionally, IoTA is built on top of existing IoT protocols. Evaluation shows there is a significant performance benefit in processing computationally heavy algorithms on the IoTA system as compared to processing them locally on the endpoint devices themselves.
The Internet of Things is the concept of networking everyday devices to enable devices to collect and share information between themselves. This information can be used to make smarter decisions by analyzing and reacting to this new data. This new form of computing has the potential to revolutionize the world by creating a better user experience. Consider the following example in a connected smart home: When your alarm clock goes off, it is able to communicate with other devices.
This paper explores the advantages and disadvantages of fog computing, as well as some applications in real life scenarios. Smart grids, for example, would be able to load balance the energy grid. Fog computing would be able to collect all of the sensor data from edge nodes or networks, and process them locally. Once processed, the information can be used to send direct commands to the actuators on the network for near real time results. This can reduce latency by reducing the amount of data sent to the cloud for processing.
Our primary goal with IoTA is to increase the functionality of end point devices without the need of the physical replacement of the device. This should be done while maintaining or improving the good quality of service. Therefore, if the IoTA system is not available, the functionality of the endpoint device should not fail. Instead, the endpoint device would complete the task without utilizing the benefits of the IoTA system. In addition, IoTA should be easy to apply to an existing system, as well as scale easily.
The IoTA system essentially allows endpoint devices to take advantage of a shared computational resource. This shared resource creates a single virtual machine for each physical endpoint device. Each endpoint device communicates with the server using a client API utilizing CoAP. The API allows endpoint devices to send executables, source code, or data to the server for faster processing and storage. The overview of the system is shown in figure 5.1.
This request only requires the unique container ID. This method cleanly removes the virtual machine and any temporary files related to this container. It should be noted that the server can be configured to automatically remove any VM that has not been used recently. This allows the server to free up resources when possible. Figure 5.10 shows the network diagram of a DELETE request.
In the prime factorization benchmark in figure 6.3, we observe that the performance benefits are different than in the previous benchmark. From the graph, we observe a linear relationship between the number of iterations versus the time of computing the output when running the algorithm locally on the client. However, when running on the IoTA server, we experience a near constant run time.
We have developed an approach to improve the functionality of endpoint devices without the need of physical replacement. In order to complete this project, a set of requirements were constructed that would ensure the systems usability, flexibility, and scalability in existing IoT applications. The evaluation results of IoTA show that we achieved faster processing times with a reasonable amount of network overhead.
In addition to improving performance, IoTA unlocks greater potential for IoT networks. This system has the ability to store and condense data before it gets sent to the cloud. This aggregation of data has the potential to reduce outgoing bandwidth from a local network. Also, this system enables lightweight endpoint devices to utilize the full power of multi-threaded applications and GPU support.
As with all systems, there is a lot of potential to expand the functionality and improve performance of this project. The results of this paper showed significant performance increase when jobs were processed on the server, rather than locally on an endpoint device. The IoTA system demonstrated that overhead can be reduced by compressing data before being transferred. However, we expect that the overhead of the IoTA system can be reduced even further.
Source: California Polytechnic State University
Author: Brandon Okumura