Web application architecture for real-time mobile network analysis
Laitamäki, Oona (2023)
Laitamäki, Oona
2023
Tietotekniikan DI-ohjelma - Master's Programme in Information Technology
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2023-04-28
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202304123661
https://urn.fi/URN:NBN:fi:tuni-202304123661
Tiivistelmä
Mobile networks have an important role in the functioning of society today, which makes it necessary to maintain and develop mobile networks. There are various programs for mobile network analysis that can automatically identify problems in the network even in real-time. In this work, a web application architecture enabling real-time analysis is designed as part of an existing analysis program. The work is also partially developed as a so-called proof of concept, i.e. to test whether the idea works in practice.
When designing the architecture, different solutions for key issues in architecture are sought using literature review and previous experience. The first challenges are rational placement of components in distributed architecture and responsibility sharing between components. Component division must provide sufficient scalability and performance to enable real-time analysis without the loss of user experience. In the selected component division, one component was placed on distributed servers, which forms distributions of key performance indicators collected from a mobile network system. In this way, the amount of traffic on a centralized server is lower. A dedicated component is responsible for combining calculated distributions on a centralized server. Moreover, the web application has a separate backend component and a component responsible for presenting a user interface.
Research will also consider suitable technologies for the implementation of the backend component. Go and Node.js were compared as backend technology options. Since scalability was emphasized in the choice of technology, Go was selected for the implementation of the component. The new component also needed an application programming interface suitable for its purpose. Compared API implementations were traditional REST API and GraphQL API. Performance and maintainability were emphasized in the comparative study and previous research on the subject was also used in the comparison. Eventually, REST API was selected for use in the backend component.
In addition, various solutions were sought for real-time communication between backend and frontend components. Compared real-time communication technologies were HTTP polling, WebSocket and server-sent events. Alternatives were compared especially based on quality attributes. Moreover, the performance of real-time communication technologies was compared by carrying out an empirical study in the assumed application use case. Server-sent event technology was selected for the implementation.
Based on the selected architecture and technology options, an architecture proposal was conducted, and a more detailed structure was presented for the new backend component. Based on this proposal, an architecture evaluation was carried out at the end of the research. The evaluation was based on a lighter version of the ATAM method.
When designing the architecture, different solutions for key issues in architecture are sought using literature review and previous experience. The first challenges are rational placement of components in distributed architecture and responsibility sharing between components. Component division must provide sufficient scalability and performance to enable real-time analysis without the loss of user experience. In the selected component division, one component was placed on distributed servers, which forms distributions of key performance indicators collected from a mobile network system. In this way, the amount of traffic on a centralized server is lower. A dedicated component is responsible for combining calculated distributions on a centralized server. Moreover, the web application has a separate backend component and a component responsible for presenting a user interface.
Research will also consider suitable technologies for the implementation of the backend component. Go and Node.js were compared as backend technology options. Since scalability was emphasized in the choice of technology, Go was selected for the implementation of the component. The new component also needed an application programming interface suitable for its purpose. Compared API implementations were traditional REST API and GraphQL API. Performance and maintainability were emphasized in the comparative study and previous research on the subject was also used in the comparison. Eventually, REST API was selected for use in the backend component.
In addition, various solutions were sought for real-time communication between backend and frontend components. Compared real-time communication technologies were HTTP polling, WebSocket and server-sent events. Alternatives were compared especially based on quality attributes. Moreover, the performance of real-time communication technologies was compared by carrying out an empirical study in the assumed application use case. Server-sent event technology was selected for the implementation.
Based on the selected architecture and technology options, an architecture proposal was conducted, and a more detailed structure was presented for the new backend component. Based on this proposal, an architecture evaluation was carried out at the end of the research. The evaluation was based on a lighter version of the ATAM method.