Yleiskäyttöisen WebRTC komponentin suunnittelu ja toteutus
Joni, Mustaniemi (2020)
Joni, Mustaniemi
2020
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2020060417164
https://urn.fi/URN:NBN:fi:amk-2020060417164
Tiivistelmä
Työn tarkoituksena oli suunnitella ja toteuttaa TypeScriptillä yleiskäyttöinen ja helposti laajennettavissa oleva WebRTC komponentti, jolla pystytään kommunikoimaan verkon yli ja jakamaan ääni-, video- tai muuta dataa usean asiakkaan kanssa samanaikaisesti. Tavoitteena oli helpottaa WebRTC:stä kiinnostuneiden ohjelmoijien kehitysprosessia tarjoamalla valmis komponentti, jonka voi upottaa olemassa olevaan järjestelmään tai käyttää pohjana omalle toteutukselle.
Työssä tehtiin avoimen lähdekoodin WebRTC komponentin joka täyttää yleiskäytettävyyden määritelmän. Komponentin suunnitelussa on otettu huomioon jatkokehitys sekä dokumentointilogiikan pysyminen yhtenäisenä myös laajentamisen jälkeen hyödyntämällä luokkapohjaisen ohjelmistokehityksen ja UML-mallinnuksen mukaisia menetelmiä komponentin dokumentoimiseen.
Toteutettu komponentti on yleiskäyttöisen luonteensa takia monikäyttöinen ja sitä voidaan hyödyntää reaaliaikaisten kommunikointityökalujen rakentamisessa, joka voi olla mitä tahansa digitaalisesta videokonferenssisovelluksesta yksinkertaisempaan tekstipohjaiseen viestittelyyn perustuva ohjelma. Koska komponentin käyttäminen on täysin vapaata, voidaan siitä ottaa myös erillisiä osioita, jolloin WebRTC:n kanssa kamppailevat ohjelmoijat voivat eriyttää esimerkiksi signalointi- tai yhteyslogiikan omaan toteutukseensa.
Komponenttia voidaan jatkokehittää yhteyslogiikan osalta, mikäli Chrome tulevaisuudessa tukee rollback-toiminnallisuutta, jolloin toisesta yhteysolioista voitaisiin luopua. Tämän komponentin toteutushetkellä se ei kuitenkaan vielä ole mahdollista.
Työssä tehtiin avoimen lähdekoodin WebRTC komponentin joka täyttää yleiskäytettävyyden määritelmän. Komponentin suunnitelussa on otettu huomioon jatkokehitys sekä dokumentointilogiikan pysyminen yhtenäisenä myös laajentamisen jälkeen hyödyntämällä luokkapohjaisen ohjelmistokehityksen ja UML-mallinnuksen mukaisia menetelmiä komponentin dokumentoimiseen.
Toteutettu komponentti on yleiskäyttöisen luonteensa takia monikäyttöinen ja sitä voidaan hyödyntää reaaliaikaisten kommunikointityökalujen rakentamisessa, joka voi olla mitä tahansa digitaalisesta videokonferenssisovelluksesta yksinkertaisempaan tekstipohjaiseen viestittelyyn perustuva ohjelma. Koska komponentin käyttäminen on täysin vapaata, voidaan siitä ottaa myös erillisiä osioita, jolloin WebRTC:n kanssa kamppailevat ohjelmoijat voivat eriyttää esimerkiksi signalointi- tai yhteyslogiikan omaan toteutukseensa.
Komponenttia voidaan jatkokehittää yhteyslogiikan osalta, mikäli Chrome tulevaisuudessa tukee rollback-toiminnallisuutta, jolloin toisesta yhteysolioista voitaisiin luopua. Tämän komponentin toteutushetkellä se ei kuitenkaan vielä ole mahdollista.