A Comparative study of software architectures in constrained device IoT deployments - du Plessis, Shani (2022)
The Internet of Things (IoT) is an area that has consistently seen growth and development and will no doubt continue to do so. One group of IoT devices - constrained devices - has seen significant developments in recent years. With the advent of constrained devices in almost every area of life, e.g. industrial, leisure and medical, this group of devices is well worth studying. Clearly, resource management is a critical aspect to ensure optimal use of such devices. A number of factors can have a significant impact on resource management, such as the operating system and the software architecture. This study aimed to compare the power consumption, runtime performance and memory consumption of two software architectures: microservices and monolithic. The study was conducted using a constrained device, and to ensure that the results are not language-specific, three different programming languages were used: Go, Python and C++. It was found that, for small-scale applications, the monolithic architecture performed better across most metrics. These results may provide valuable insights to engineers for the design and implementation of constrained-device IoT applications. It was recommended that additional research be conducted on larger-scale applications.