Reimplementing a legacy application component: Embedding a component into Grafana
Sjöroos, Jere (2024)
Sjöroos, Jere
2024
Johtamisen ja tietotekniikan DI-ohjelma - Master's Programme in Management and Information Technology
Johtamisen ja talouden tiedekunta - Faculty of Management and Business
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ä
2024-05-15
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202404254554
https://urn.fi/URN:NBN:fi:tuni-202404254554
Tiivistelmä
There are numerous factories, large manufacturing plants and many other types of large-scale operations in the world that generate a lot of data. The data can be generated by calculations or collected with sensors or one of a number of different possibilities, in the end, what matters is how that data can be used. Large-scale operations wish to manage and follow operational changes and react to those changes quickly in a control-room environment.
The solution for ingesting possibly a large amount of such data, are visual presentations of that data, which are quick to pick-up on and react to. Syncron Tech created a visual diagramming tool back in the late 2000s which enabled managers and users to create visual presentations of a manufacturing line, or any other important aspect of the clients' operation, into a 2D diagram. The diagram's visual components would be tied to different sensor or calculation data, and the diagram would then update and show changes when the source data changed, making it simple and intuitive to understand and spot a critical change.
The problem with the existing tool, or any software that exists, is that the world around it changes, and it can become obsolete. Any software that exists is in itself a self-contained snapshot of the time of its creation. The technology choices made at the time of its creation, might no longer hold up to the requirements that users of the system have, or a certain technology the software uses is no longer available and might be abandoned completely. It is the task of developers to maintain, and if necessary to upgrade or even re-implement software to keep them running optimally in an ever-changing world of technological advancement.
This all is, of course, a normal part of the software development cycle, which every seasoned developer has to go through at some point in their career. Software might seem like it does not have an expiration date, but all software either evolve by the hard work of developers, or they stagnate and get abandoned at some point.
This thesis goes through the process of taking a piece of legacy software, that has accrued legacy weight but is still in active use and in active development. It is a part of a larger, well maintained monolithic project. The purpose is to duplicate its functionality in a new language, and transfer it from being mainly backend code which generates a front-end view into a light backend solution with a fast front-end rendering system. All while having an emphasis on maintainability and transferability to other developers if and when the need arises.
The re-implementation is also used to cut the tight integration of the solution to its parent Syncron Tech software, so that the diagram view can be embedded into third-party solutions as well. In this thesis, the target embedding system is Grafana and its dashboards, which are widely used in control-rooms and many other situations. Maailmassa on olemassa suuri määrä tehtaita, tuotantolaitoksia ja muita suuria palveluntoimittajia, jotka luovat toiminnallaan suuren määrän dataa. Tämän datan lähde voi olla mikä tahansa, sensorista laskettuun tietoon, mutta loppujen lopuksi, merkitsevä asia on, miten dataa käytetään. Suuret toimitsijat haluavat käyttää dataa seuratakseen operaatioidensa toimintaa, ja tarvittaessa reagoida muutoksiin valvomoissa, ja muissa vastaavissa tiloissa.
Ratkaisu tällaisten suurten tietomassojen käyttämiseen ovat visuaaliset työkalut, joista tietoa on helppo omaksua nopeasti. Syncron Tech loi tällaisen työkalun tietomassojen visuaaliseen esittämiseen 2000-luvun ensikymmenen lopulla, jossa käyttäjät kykenivät itse tekemään ja määrittelemään esitettävän tiedon esitysmuodon. Tieto saattoi olla sensoritietoa tai mitä tahansa tietoa, jota asiakkaalla oli käytössään. Visuaalisen diagrammi koostui komponenteista, jotka liitettiin yhteen tietopisteiden kanssa, jonka jälkeen diagrammi päivittyi aina tiedon muuttuessa, tehden kriittisenkin tilanteen seurannasta ja muutoksen havaitsemisesta helppoa.
Ongelma olemassa olevassa ratkaisussa, tai kaikissa ohjelmistoissa yleisesti on, että maailma ympärillämme kehittyy koko ajan ja ohjelmiston pitää pysyä mukana. Kaikki sovellukset ovat eräänlaisia aikakapseleita ajasta, jolloin ne on kehitetty. Teknologiset ratkaisut, jotka tehtiin kehityksen aikana eivät välttämättä enää käy järkeen tai ovat vanhentuneita, tai teknologia, jota on käytetty on poistettu kokonaan käytöstä. Siksi se on kehittäjien tehtävä ylläpitää, päivittää ja tarvittaessa uudelleen luoda ohjelmistoja, jotta ne vastaavat ympäröivän maailman muutosta.
Tämä on normaali sovelluskehityksen kiertokulku, joka on jokaisen vanhemman sovelluskehittäjän tiedossa, ja jonka jokainen kehittäjä joutuu kokemaan. Sovellus voi tuntua näennäisesti ikuiselta, mutta jokainen sovellus vanhenee ja ilman kehittäjien aktiivista työtä jokainen sovellus hylätään aikanaan.
Tässä diplomityössä käyn läpi prosessin, jossa uudelleen toteutetaan jo olemassa oleva sovelluskomponentti, joka on kerännyt historian painoa, mutta on edelleen aktiivisessa käytössä, sekä kehityksen alla. Diplomityön tarkoitus on toistaa komponentin toiminta uudella ohjelmointikielellä, siten että vanhasta, hyvin palvelinriippuvaisesta sovelluksesta tehdään kevyempi palvelimen suuntaan, joka suorittaa piirtoa nopeammin selaimella. Kuitenkin samalla pitäen painoarvoa tuotettavan koodin ylläpidettävyydellä ja siirrettävyydellä toisen kehittäjän toimeksi.
Uudelleentoteutusta käytetään myös mahdollisuutena irrottaa komponentti tiukasta integraatiosta lähdesovellukseen, jotta diagrammeja voidaan käyttää myös ulkoisissa kolmannen osapuolen sovelluksissa upottamalla komponentti niihin. Tässä diplomityössä tarkastellaan miten uudelleentoteutetun komponentin saisi upotettua Grafanaan kojelautakäyttöön.
The solution for ingesting possibly a large amount of such data, are visual presentations of that data, which are quick to pick-up on and react to. Syncron Tech created a visual diagramming tool back in the late 2000s which enabled managers and users to create visual presentations of a manufacturing line, or any other important aspect of the clients' operation, into a 2D diagram. The diagram's visual components would be tied to different sensor or calculation data, and the diagram would then update and show changes when the source data changed, making it simple and intuitive to understand and spot a critical change.
The problem with the existing tool, or any software that exists, is that the world around it changes, and it can become obsolete. Any software that exists is in itself a self-contained snapshot of the time of its creation. The technology choices made at the time of its creation, might no longer hold up to the requirements that users of the system have, or a certain technology the software uses is no longer available and might be abandoned completely. It is the task of developers to maintain, and if necessary to upgrade or even re-implement software to keep them running optimally in an ever-changing world of technological advancement.
This all is, of course, a normal part of the software development cycle, which every seasoned developer has to go through at some point in their career. Software might seem like it does not have an expiration date, but all software either evolve by the hard work of developers, or they stagnate and get abandoned at some point.
This thesis goes through the process of taking a piece of legacy software, that has accrued legacy weight but is still in active use and in active development. It is a part of a larger, well maintained monolithic project. The purpose is to duplicate its functionality in a new language, and transfer it from being mainly backend code which generates a front-end view into a light backend solution with a fast front-end rendering system. All while having an emphasis on maintainability and transferability to other developers if and when the need arises.
The re-implementation is also used to cut the tight integration of the solution to its parent Syncron Tech software, so that the diagram view can be embedded into third-party solutions as well. In this thesis, the target embedding system is Grafana and its dashboards, which are widely used in control-rooms and many other situations.
Ratkaisu tällaisten suurten tietomassojen käyttämiseen ovat visuaaliset työkalut, joista tietoa on helppo omaksua nopeasti. Syncron Tech loi tällaisen työkalun tietomassojen visuaaliseen esittämiseen 2000-luvun ensikymmenen lopulla, jossa käyttäjät kykenivät itse tekemään ja määrittelemään esitettävän tiedon esitysmuodon. Tieto saattoi olla sensoritietoa tai mitä tahansa tietoa, jota asiakkaalla oli käytössään. Visuaalisen diagrammi koostui komponenteista, jotka liitettiin yhteen tietopisteiden kanssa, jonka jälkeen diagrammi päivittyi aina tiedon muuttuessa, tehden kriittisenkin tilanteen seurannasta ja muutoksen havaitsemisesta helppoa.
Ongelma olemassa olevassa ratkaisussa, tai kaikissa ohjelmistoissa yleisesti on, että maailma ympärillämme kehittyy koko ajan ja ohjelmiston pitää pysyä mukana. Kaikki sovellukset ovat eräänlaisia aikakapseleita ajasta, jolloin ne on kehitetty. Teknologiset ratkaisut, jotka tehtiin kehityksen aikana eivät välttämättä enää käy järkeen tai ovat vanhentuneita, tai teknologia, jota on käytetty on poistettu kokonaan käytöstä. Siksi se on kehittäjien tehtävä ylläpitää, päivittää ja tarvittaessa uudelleen luoda ohjelmistoja, jotta ne vastaavat ympäröivän maailman muutosta.
Tämä on normaali sovelluskehityksen kiertokulku, joka on jokaisen vanhemman sovelluskehittäjän tiedossa, ja jonka jokainen kehittäjä joutuu kokemaan. Sovellus voi tuntua näennäisesti ikuiselta, mutta jokainen sovellus vanhenee ja ilman kehittäjien aktiivista työtä jokainen sovellus hylätään aikanaan.
Tässä diplomityössä käyn läpi prosessin, jossa uudelleen toteutetaan jo olemassa oleva sovelluskomponentti, joka on kerännyt historian painoa, mutta on edelleen aktiivisessa käytössä, sekä kehityksen alla. Diplomityön tarkoitus on toistaa komponentin toiminta uudella ohjelmointikielellä, siten että vanhasta, hyvin palvelinriippuvaisesta sovelluksesta tehdään kevyempi palvelimen suuntaan, joka suorittaa piirtoa nopeammin selaimella. Kuitenkin samalla pitäen painoarvoa tuotettavan koodin ylläpidettävyydellä ja siirrettävyydellä toisen kehittäjän toimeksi.
Uudelleentoteutusta käytetään myös mahdollisuutena irrottaa komponentti tiukasta integraatiosta lähdesovellukseen, jotta diagrammeja voidaan käyttää myös ulkoisissa kolmannen osapuolen sovelluksissa upottamalla komponentti niihin. Tässä diplomityössä tarkastellaan miten uudelleentoteutetun komponentin saisi upotettua Grafanaan kojelautakäyttöön.