Multi-platform data processing engine - Huhta, Aki (My University, 2021)
Modern software often must run on multiple different platforms, devices, CPU architectures and software stacks. To simplify development of software and to minimize implementation mistakes, it is often desired to reuse a single implementation in multiple platforms instead of developing and maintaining another implementation of the software. The objective of this thesis is to find a technology for a medium sized software company. The technology should allow running the same code on three platforms, which are web browsers, servers, and edge devices. This thesis consists of two parts. The first part describes multi-platform computing, and its history, its common problems and the runtime environments related to the case company’s problem. The second part defines the requirements for the chosen technology, selects a set of technologies to review in detail, reviews the chosen technologies and implements and benchmarks a proof-of-concept. The study resulted in a recommendation of a technology to the case company. The study also identified the constraints and problems that the technology has. Some recommendations for future development of multi-platform software were given. In the study it became clear that the greatest constraints for solving the problem were the web browser environment and edge devices. The choice in technologies for the web is not as wide as in the case of servers and edge devices. Also, the limited resources of edge devices were an issue. The study found out that in multi-platform software a constraint on one of the platforms applies to all the platforms used. Other general observations were also made.

Moderneja ohjelmistoja usein käytetään monella eri alustalla, laitteella, prosessoriarkkitehtuurilla ja ohjelmistopaketilla. Ohjelmistokehityksen yksinkertaistamiseksi ja virheiden vähentämiseksi toteutuksissa yleensä toivotaan, että yhtä toteutusta voitaisiin käyttää monella eri alustalla sen sijaan, että kehitettäisiin ja ylläpidettäisiin uutta toteutusta ohjelmistosta. Tämän opinnäytetyön tavoitteena on valita teknologia keskisuurelle ohjelmistoyritykselle. Kyseisen teknologian tulisi mahdollistaa saman koodin ajamisen kolmella alustalla, jotka ovat webselaimet, palvelimet ja edge-laitteet. Opinnäytetyö koostuu kahdesta osasta. Ensimmäinen osa kuvailee alustariippumatonta tietojenkäsittelyä, sen historiaa, sen yleisiä ongelmia ja toimeksiantajayrityksen ongelmaan liittyvät suoritusympäristöt. Toinen osa määrittelee valittavalle teknologialle asetettavat vaatimukset, valitsee joukon teknologioita tarkempaan arviointiin, arvioi valittuja teknologioita ja toteuttaa prototyypin sekä mittaa sen suorituskykyä. Tutkimuksen tuloksena annettiin suositus teknologiasta toimeksiantajayritykselle. Tutkimus myös tunnisti rajoitteet ja ongelmat, joita kyseisellä teknologialla on. Tulokset sisälsivät myös joitakin suosituksia alustariippumattoman ohjelmiston kehitykseen tulevaisuudessa. Tutkimuksessa tuli selväksi, että suurimmat rajoitteet ongelman ratkaisemiseksi olivat webselainympäristö sekä edge-laitteet. Vaihtoehtoja teknologioille webselaimia varten ei ole yhtä paljon kuin palvelimille ja edge-laitteille. Edge-laitteiden rajalliset resurssit olivat myös ongelma. Tutkimuksessa selvisi, että alustariippumattomassa ohjelmistossa yhden alustan rajoite pätee kaikkiin käytettyihin alustoihin. Myös muita yleisiä havaintoja tehtiin.
Keywords: fi=Automaatio- ja tietotekniikka|en=Automation and Computer Science|; fi=Energia- ja informaatiotekniikan ohjelma|en=Degree Programme in Energy Technology and Information Technology|