Engineering Full Stack IoT Systems with Distributed Processing Architecture—Software Engineering Challenges, Architectures and Tools

2020 
New Age applications that stem from IoT, 5G systems, stream analytics, real time analytics, Industry4.0 have changed the way software are designed, developed, tested and maintained. These modern applications are highly scalable, highly dynamic, involve mobility and require frequent upgrades. Traditional computing paradigms and monolithic application architecture has become inefficient for engineering these applications which demand reusability, scalability and flexibility to implement upgrades. As a result, both computing paradigms and software engineering approaches have undergone major transition to suit the dynamic requirements of these applications. These applications may be engineered as highly cohesive, loosely coupled microservices that are easy to deploy and maintain. These microservices may also be deployed in such a way that processing happens in a distributed and independent manner. Concepts such as Fog computing and edge computing together with virtualization and Containerization provide support for this distributed processing architecture. This chapter aims to survey the existing contributions that have leveraged distributed computing paradigms and microservices architecture for the development of Full stack IoT applications. This chapter presents various challenges in developing IoT applications using microservices architecture and deploying them in a distributed processing environment such as Fog. This chapter intends to highlight various architectural patterns available for engineering microservices, challenges that are encountered while engineering large scale applications as microservices and number of tools and technologies that can be leveraged for the same.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    9
    References
    0
    Citations
    NaN
    KQI
    []