WebAssembly-teknologian hyödyntäminen selainsovelluksessa
No Thumbnail Available
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu |
Master's thesis
Author
Date
2022-06-13
Department
Major/Subject
Computer Science
Mcode
SCI3042
Degree programme
Master’s Programme in Computer, Communication and Information Sciences
Language
fi
Pages
57
Series
Abstract
WebAssembly on web-ympäristön uusi tehokas sovellusformaatti, joka mahdollistaa entistä suorituskykyisempien selainsovellusten toteuttamisen laajalla valikoimalla eri ohjelmointikieliä. Diplomityön kirjallisuusosassa perehdyttiin WebAssemblyn suunnittelu- ja toimintaperiaatteisiin ja selvitettiin käyttökohteiden nykytilannetta. Toistaiseksi merkittävin käyttökohde on ollut JavaScript-ohjelmakirjastot ja selvästi käytetyin lähdekoodikieli on ollut C/C++. Vaihtoehtoisista teknologioista JavaScriptia, natiivisovelluksia ja palvelinsovelluksia vertailtiin WebAssembly-kehitykseen. Kaikilla näistä on omat vahvuutensa eikä WebAssembly pysty täysin korvaamaan muita vaihtoehtoja. Suorituskykyä vertailtiin aikaisempien tutkimusten perusteella ja tulokset ovat vaihtelevia. WebAssembly on yleisesti JavaScriptia nopeampi, mutta jää silti johdonmukaisesti jälkeen natiiviohjelmien suorituskyvystä. Eri selainten välillä suoritusnopeudet voivat vaihdella paljon. Työn toisessa osassa toteutettiin WebAssemblya hyödyntävä selainsovellus ABB:lle. Sovellus koostuu kahdesta osasta: JavaScript-pohjaisesta käyttöliittymästä ja WebAssembly-sovelluslogiikasta, joka käännetään C++-lähdekoodista käyttäen Emscripten-kääntäjää. Toteutetun sovelluksen avulla arvioitiin WebAssemblya käytännössä. Kirjallisuustutkimuksen ja käytännön toteutuksen perusteella WebAssembly on tehokas ja hyödyllinen teknologia, kun sille löytyy tarkoituksenmukainen käyttökohde.WebAssembly is a new efficient program format on the web environment that enables the implementation of more powerful browser applications using a wide range of programming languages. In the literature part of the thesis, the design and operating principles of WebAssembly were introduced and the current situation of use cases was investigated. So far, the most significant use case has been JavaScript libraries and the most widely used programming language has been C/C++. Of the alternative technologies, JavaScript, native applications and server applications were compared to WebAssembly development. They all have their own strengths and cannot be completely replaced by WebAssembly. Performance was compared based on previous studies and the results are mixed. Generally, WebAssembly is faster than JavaScript, but the performance still consistently lags behind native programs. The execution speeds between different browsers can vary greatly. In the second part of the work, a browser application utilizing WebAssembly was implemented for ABB. The application consists of two parts: a JavaScript-based user interface and WebAssembly application logic, which was compiled from C++ source code using the Emscripten compiler. The implemented application was used to evaluate WebAssembly in practice. Based on the literature review and the practical implementation, WebAssembly is an efficient and useful technology in the case of an appropriate use case.Description
Supervisor
Vuorimaa, PetriThesis advisor
Tamminiemi, PetriKeywords
WebAssembly, wasm, selainsovellus, web