A Systematic Review on Software Architectures for IoT Systems and Future Direction to the Adoption of Microservices Architecture

The Internet of Things-based systems and software allow computations anywhere at any time by interconnecting individuals, networks, services, computers and artefacts that allow autonomous systems to form digitized communities. As the blueprint for software-intensive applications, and software architecture that precise the complexity of a network’s planning, development, and changing phases to effectively and efficiently build complex IoT-driven applications. In any case, there exists no comprehensive analysis in the state of the research on the adoption of MSA for IoT systems. This study effort is needed to explore architectural concepts and practices for designing and developing IoT software to excel state-of-the-art for IoTs along with suggestions and recommendations for IoT software to the adoption of MSA to fulfil the identified gaps. A systematic analysis was coordinated, covering up the literature on existing IoT solutions by studying 140 qualitatively selected articles performed between 2005 and Jan 2020. One hundred forty articles were comprised in this SLR. The findings of this study demonstrated different research topics including software architectural styles, patterns, and models to build IoT software. This research presents cloud-based computing environments, autonomous, software-defined networking, and responsive applications, and IoT-driven agent-based systems, (1) thirteen MSA architectural and design patterns for IoTs and classification of patterns, (2) classification of software architectures for IoTs into nine main categories and their sub-categories, (3) twenty-three most investigated IoT challenges, and (4) mapping of IoT challenges with software architectural solutions. The study revealed the innovative work on IoT software architecture and trends that help in the creation and dynamic adaptation of IoT software for reusability, automation and human decision-making. The outputs of this SLR are useful in revealing many recommendations to the software industry, software engineering community, and computer sciences community with over the past 15 years of research into the adoption of MSA. This study reflects a distilled awareness of architectural practices and principles to assist researchers and practitioners in promoting information sharing software architectural roles and responsibilities for the Internet of Things software.

[1]  Daniela E. Damian,et al.  Selecting Empirical Methods for Software Engineering Research , 2008, Guide to Advanced Empirical Software Engineering.

[2]  Nour Ali,et al.  A Systematic Mapping Study in Microservice Architecture , 2016, 2016 IEEE 9th International Conference on Service-Oriented Computing and Applications (SOCA).

[3]  Ali A. Abed,et al.  Internet of Things (IoT): Architecture and design , 2016, 2016 Al-Sadeq International Conference on Multidisciplinary in IT and Communication Science and Applications (AIC-MITCSA).

[4]  Christoph Waldmann,et al.  A Sensor Web Architecture for Integrating Smart Oceanographic Sensors Into the Semantic Sensor Web , 2018, IEEE Journal of Oceanic Engineering.

[5]  Michael Weyrich,et al.  Reference Architectures for the Internet of Things , 2016, IEEE Software.

[6]  Henry Muccini,et al.  IoT Architectural Styles - A Systematic Mapping Study , 2018, ECSA.

[7]  Johnny S. Wong,et al.  Cloud and IoT-based emerging services systems , 2018, Cluster Computing.

[8]  Bo Hu,et al.  A Vision of IoT: Applications, Challenges, and Opportunities With China Perspective , 2014, IEEE Internet of Things Journal.

[9]  Abdul Razzaq,et al.  Matrix Clustering based Migration of System Application to Microservices Architecture , 2018 .

[10]  Sandhya Aneja,et al.  Internet of Things: Vision, application areas and research challenges , 2017, 2017 International Conference on I-SMAC (IoT in Social, Mobile, Analytics and Cloud) (I-SMAC).

[11]  Athanasios V. Vasilakos,et al.  Software-Defined Industrial Internet of Things in the Context of Industry 4.0 , 2016, IEEE Sensors Journal.

[12]  T. Ninikrishna,et al.  Software defined IoT: Issues and challenges , 2017, 2017 International Conference on Computing Methodologies and Communication (ICCMC).

[13]  TangAntony,et al.  10 years of software architecture knowledge management , 2016 .

[14]  Hany F. ElYamany,et al.  IoT-academia architecture: A profound approach , 2015, 2015 IEEE/ACIS 16th International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD).

[15]  Gabriel Campeanu,et al.  A mapping study on microservice architectures of Internet of Things and cloud computing solutions , 2018, 2018 7th Mediterranean Conference on Embedded Computing (MECO).

[16]  Prasanna Mani,et al.  Software architecture pattern selection model for Internet of Things based systems , 2018, IET Softw..

[17]  Omprakash Kaiwartya,et al.  A Concise Review on Internet of Things (IoT) -Problems, Challenges and Opportunities , 2018, 2018 11th International Symposium on Communication Systems, Networks & Digital Signal Processing (CSNDSP).

[18]  Ching-Hsien Hsu,et al.  Emerging trends, issues and challenges in Internet of Things, Big Data and cloud computing , 2018, Future Gener. Comput. Syst..

[19]  Kai Petersen,et al.  Systematic Mapping Studies in Software Engineering , 2008, EASE.

[20]  Yudong Zhang,et al.  On the Construction of Data Aggregation Tree With Maximizing Lifetime in Large-Scale Wireless Sensor Networks , 2016, IEEE Sensors Journal.

[21]  Yuansong Qiao,et al.  ThingNet: A micro-service based IoT macro-programming platform over edges and cloud , 2018, 2018 21st Conference on Innovation in Clouds, Internet and Networks and Workshops (ICIN).

[22]  Udai Pratap Rao,et al.  Internet of Things — Architecture, applications, security and other major challenges , 2016, 2016 3rd International Conference on Computing for Sustainable Global Development (INDIACom).

[23]  Elisabetta Di Nitto,et al.  Gru: An Approach to Introduce Decentralized Autonomic Behavior in Microservices Architectures , 2016, 2016 IEEE International Conference on Autonomic Computing (ICAC).

[24]  Muhammad Ali Babar,et al.  10 years of software architecture knowledge management: Practice and future , 2016, J. Syst. Softw..

[25]  Andrea Zanella,et al.  Internet of Things for Smart Cities , 2014, IEEE Internet of Things Journal.

[26]  Mohsen Guizani,et al.  Internet of Things: A Survey on Enabling Technologies, Protocols, and Applications , 2015, IEEE Communications Surveys & Tutorials.

[27]  Dimitar Manev,et al.  Facilitation of IoT software maintenance via code analysis and generation , 2017, 2017 2nd International Multidisciplinary Conference on Computer and Energy Science (SpliTech).

[28]  Dave Evans,et al.  How the Next Evolution of the Internet Is Changing Everything , 2011 .

[29]  Alina Buzachis,et al.  A Microservices-Based Platform for Efficiently Managing Oceanographic Data , 2018, 2018 4th International Conference on Big Data Innovations and Applications (Innovate-Data).

[30]  Paulo F. Pires,et al.  An analysis of reference architectures for the internet of things , 2015, 2015 1st International Workshop on Exploring Component-based Techniques for Constructing Reference Architectures (CobRA).