The Design and Architecture of a WebRTC Application
The aim of this thesis is to investigate existing design patterns for WebRTC applications in order to achieve a scalable, performant and efficient WebRTC application that keeps streams unique. Further, this thesis shows how these can be implemented using JavaScript technologies. Through a literature...
Main Authors: | , |
---|---|
Format: | Others |
Language: | English |
Published: |
Malmö universitet, Fakulteten för teknik och samhälle (TS)
2019
|
Subjects: | |
Online Access: | http://urn.kb.se/resolve?urn=urn:nbn:se:mau:diva-20239 |
id |
ndltd-UPSALLA1-oai-DiVA.org-mau-20239 |
---|---|
record_format |
oai_dc |
spelling |
ndltd-UPSALLA1-oai-DiVA.org-mau-202392020-10-28T05:38:22ZThe Design and Architecture of a WebRTC ApplicationengLööf, AlexanderHolm, SimonMalmö universitet, Fakulteten för teknik och samhälle (TS)Malmö universitet, Fakulteten för teknik och samhälle (TS)Malmö universitet/Teknik och samhälle2019Real-time communicationWebRTCpeer to peerEngineering and TechnologyTeknik och teknologierThe aim of this thesis is to investigate existing design patterns for WebRTC applications in order to achieve a scalable, performant and efficient WebRTC application that keeps streams unique. Further, this thesis shows how these can be implemented using JavaScript technologies. Through a literature study, we conclude that the design patterns full mesh using a signaling server and star topology with a media server that relays streams, called Selective Forwarding Unit (SFU). Both these design patterns have quality attributes that are desirable. We propose an approach of combining these patterns in the same application in order to achieve a scalable application that can fit a broad spectrum of use cases while being efficient. As full mesh is performant and cost-effective in comparison to an SFU but does not scale well with increasing number of participants, we investigate ways to optimize a full mesh session to use it as long as possible before converting a session to using an SFU. We came up with a way to optimize a full mesh session by limiting the bandwidth used for the media streams which reduces the CPU usage for the clients. The proposed approach of combining full mesh and an SFU is implemented based on a previous WebRTC application and a high-level description of how that was achieved is included in this thesis. We perform an experiment where we measure the client’s CPU usage using the above-mentioned approaches in order to reinforce our findings. The result show that limiting the bandwidth of media streams can increase the possible number of participants in a full mesh session and that it is possible to transfer an ongoing session from full mesh to an SFU and back again. We conclude that combining these patterns in the same application is a viable strategy when creating a WebRTC application. Student thesisinfo:eu-repo/semantics/bachelorThesistexthttp://urn.kb.se/resolve?urn=urn:nbn:se:mau:diva-20239Local 29191application/pdfinfo:eu-repo/semantics/openAccess |
collection |
NDLTD |
language |
English |
format |
Others
|
sources |
NDLTD |
topic |
Real-time communication WebRTC peer to peer Engineering and Technology Teknik och teknologier |
spellingShingle |
Real-time communication WebRTC peer to peer Engineering and Technology Teknik och teknologier Lööf, Alexander Holm, Simon The Design and Architecture of a WebRTC Application |
description |
The aim of this thesis is to investigate existing design patterns for WebRTC applications in order to achieve a scalable, performant and efficient WebRTC application that keeps streams unique. Further, this thesis shows how these can be implemented using JavaScript technologies. Through a literature study, we conclude that the design patterns full mesh using a signaling server and star topology with a media server that relays streams, called Selective Forwarding Unit (SFU). Both these design patterns have quality attributes that are desirable. We propose an approach of combining these patterns in the same application in order to achieve a scalable application that can fit a broad spectrum of use cases while being efficient. As full mesh is performant and cost-effective in comparison to an SFU but does not scale well with increasing number of participants, we investigate ways to optimize a full mesh session to use it as long as possible before converting a session to using an SFU. We came up with a way to optimize a full mesh session by limiting the bandwidth used for the media streams which reduces the CPU usage for the clients. The proposed approach of combining full mesh and an SFU is implemented based on a previous WebRTC application and a high-level description of how that was achieved is included in this thesis. We perform an experiment where we measure the client’s CPU usage using the above-mentioned approaches in order to reinforce our findings. The result show that limiting the bandwidth of media streams can increase the possible number of participants in a full mesh session and that it is possible to transfer an ongoing session from full mesh to an SFU and back again. We conclude that combining these patterns in the same application is a viable strategy when creating a WebRTC application. |
author |
Lööf, Alexander Holm, Simon |
author_facet |
Lööf, Alexander Holm, Simon |
author_sort |
Lööf, Alexander |
title |
The Design and Architecture of a WebRTC Application |
title_short |
The Design and Architecture of a WebRTC Application |
title_full |
The Design and Architecture of a WebRTC Application |
title_fullStr |
The Design and Architecture of a WebRTC Application |
title_full_unstemmed |
The Design and Architecture of a WebRTC Application |
title_sort |
design and architecture of a webrtc application |
publisher |
Malmö universitet, Fakulteten för teknik och samhälle (TS) |
publishDate |
2019 |
url |
http://urn.kb.se/resolve?urn=urn:nbn:se:mau:diva-20239 |
work_keys_str_mv |
AT loofalexander thedesignandarchitectureofawebrtcapplication AT holmsimon thedesignandarchitectureofawebrtcapplication AT loofalexander designandarchitectureofawebrtcapplication AT holmsimon designandarchitectureofawebrtcapplication |
_version_ |
1719353378688991232 |