Katsaus verkkoselainten arkkitehtuureihin
Halinen, Joonas (2023)
Halinen, Joonas
2023
Tietojenkäsittelytieteiden kandidaattiohjelma - Bachelor's Programme in Computer Sciences
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-08-08
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202307087163
https://urn.fi/URN:NBN:fi:tuni-202307087163
Tiivistelmä
Tässä tutkielmassa tutkin verkkoselainten ohjelmistoarkkitehtuureja. Tutkielman tavoite on muodostaa kattava katsaus verkkoselainarkkitehtuurin nykytilanteeseen etsimällä viimeisimpiä ajantasaisia selainarkkitehtuureja. Tutkielman toisena tavoitteena on selvittää motivoivat perustelut löydetyissä arkkitehtuureissa tehdyille valinnoille.
Tutkittavat arkkitehtuurit olen kategorioinut kolmeen ryhmään: tieteellisestä kirjallisuudesta löytyvät abstraktit malliarkkitehtuurit, avoimen lähdekoodin selainprojektien arkkitehtuurit sekä tieteellisestä kirjallisuudesta löytyvät konkreettiset arkkitehtuurit. Malliarkkitehtuureja esittelen kaksi. Ensimmäinen niistä on malli koko selaimen arkkitehtuurille, ja toinen nettisivun renderöinnistä vastaavalle osalle. Avoimen lähdekoodin projekteista olen valinnut kaksi käyttäjälukumäärän perusteella suosituinta: Firefoxin ja Chromiumin. Kirjallisuudesta löytyviä konkreettisia arkkitehtuureja esittelen kolme kappaletta. Nämä olen kategorioinut kolmeen ryhmään: tietoturvalliset arkkitehtuurit, etäpalvelimeen yhdistetyt arkkitehtuurit sekä rinnakkaisuutta hyödyntävät arkkitehtuurit.
Tutkielmassa selvitän avoimen lähdekoodin arkkitehtuureista kaksi rakennetta: korkean tason käyttörakenteen sekä korkean tason palvelurakenteen. Käyttörakenne kertoo riippuvuussuhteista lähdekoodin moduulien välillä. Lähdekoodin moduuleja ovat muun muassa kooditiedostoja sisältävät kansiot. Palvelurakenne kertoo kommunikaatiosuhteista ajonaikaisten osien välillä. Ajonaikaiset osat ovat tämän tutkielman tarkastelutasolla prosesseja. Tutkielmassa selvitän myös jokaista tutkittua rakennetta kohden niissä tehtyjä valintoja motivoivat perustelut. Perustelut käyttörakenteille liittyvät koodikannan ylläpidettävyyteen. Perustelut palvelurakenteille puolestaan liittyvät tietoturvallisuuteen ja ajonaikaisten virheiden vaikutusten lieventämiseen. Lisäksi tutkielmassa selvitän, kuinka läheisesti arkkitehtuurien käyttörakenteet vastaavat löydetyn malliarkkitehtuurin käyttörakennetta. Tutkielma osoittaa, että Firefox ei vastaa malliarkkitehtuuria, kun taasen Chromium pyrkii malliarkkitehtuuria muistuttavaan käyttörakenteeseen. Lisäksi tutkielmassa löydän konkreettisia arkkitehtuureja, joilla on mahdollista saavuttaa useita parannuksia Firefoxin ja Chromiumin arkkitehtuureille. Löydetyillä arkkitehtuureilla voidaan parantaa tietoturvallisuutta, nopeuttaa verkkotoimintaa ja nopeuttaa sivun renderöintiprosessia.
Tutkielman tuloksista on hyötyä selainohjelmistoja kehittäville ohjelmoijille apuna verkkoselainten korkean tason arkkitehtuurien ymmärtämisessä. Lisäksi tutkielmassa löydettyjä arkkitehtuurien muunnosehdotuksia voidaan soveltaa konkreettisissa selainprojekteissa.
Tutkittavat arkkitehtuurit olen kategorioinut kolmeen ryhmään: tieteellisestä kirjallisuudesta löytyvät abstraktit malliarkkitehtuurit, avoimen lähdekoodin selainprojektien arkkitehtuurit sekä tieteellisestä kirjallisuudesta löytyvät konkreettiset arkkitehtuurit. Malliarkkitehtuureja esittelen kaksi. Ensimmäinen niistä on malli koko selaimen arkkitehtuurille, ja toinen nettisivun renderöinnistä vastaavalle osalle. Avoimen lähdekoodin projekteista olen valinnut kaksi käyttäjälukumäärän perusteella suosituinta: Firefoxin ja Chromiumin. Kirjallisuudesta löytyviä konkreettisia arkkitehtuureja esittelen kolme kappaletta. Nämä olen kategorioinut kolmeen ryhmään: tietoturvalliset arkkitehtuurit, etäpalvelimeen yhdistetyt arkkitehtuurit sekä rinnakkaisuutta hyödyntävät arkkitehtuurit.
Tutkielmassa selvitän avoimen lähdekoodin arkkitehtuureista kaksi rakennetta: korkean tason käyttörakenteen sekä korkean tason palvelurakenteen. Käyttörakenne kertoo riippuvuussuhteista lähdekoodin moduulien välillä. Lähdekoodin moduuleja ovat muun muassa kooditiedostoja sisältävät kansiot. Palvelurakenne kertoo kommunikaatiosuhteista ajonaikaisten osien välillä. Ajonaikaiset osat ovat tämän tutkielman tarkastelutasolla prosesseja. Tutkielmassa selvitän myös jokaista tutkittua rakennetta kohden niissä tehtyjä valintoja motivoivat perustelut. Perustelut käyttörakenteille liittyvät koodikannan ylläpidettävyyteen. Perustelut palvelurakenteille puolestaan liittyvät tietoturvallisuuteen ja ajonaikaisten virheiden vaikutusten lieventämiseen. Lisäksi tutkielmassa selvitän, kuinka läheisesti arkkitehtuurien käyttörakenteet vastaavat löydetyn malliarkkitehtuurin käyttörakennetta. Tutkielma osoittaa, että Firefox ei vastaa malliarkkitehtuuria, kun taasen Chromium pyrkii malliarkkitehtuuria muistuttavaan käyttörakenteeseen. Lisäksi tutkielmassa löydän konkreettisia arkkitehtuureja, joilla on mahdollista saavuttaa useita parannuksia Firefoxin ja Chromiumin arkkitehtuureille. Löydetyillä arkkitehtuureilla voidaan parantaa tietoturvallisuutta, nopeuttaa verkkotoimintaa ja nopeuttaa sivun renderöintiprosessia.
Tutkielman tuloksista on hyötyä selainohjelmistoja kehittäville ohjelmoijille apuna verkkoselainten korkean tason arkkitehtuurien ymmärtämisessä. Lisäksi tutkielmassa löydettyjä arkkitehtuurien muunnosehdotuksia voidaan soveltaa konkreettisissa selainprojekteissa.
Kokoelmat
- Kandidaatintutkielmat [8798]