Ohjelmointirajapinnan suunnittelu ja toteutus MQTT-protokollan avulla
Kananen, Anssi (2024)
Kananen, Anssi
2024
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2024052214445
https://urn.fi/URN:NBN:fi:amk-2024052214445
Tiivistelmä
Opinnäytetyön aiheena oli suunnitella ja toteuttaa ohjelmointirajapinta tämänhetkisen analysaattorialustan ja web-käyttöliittymän välille. Työn toimeksiantajana toimi Valmet Automation Oy, ja heidän kiinnostustaan aiheeseen ohjasi tarve uudistaa analysaattorialustaa. Työn tavoitteena oli rakentaa ohjelmointirajapinta käyttäen MQTT-protokollaa tiedonvälitykseen järjestelmien välillä ja tiedon automaattinen luominen olemassa olevasta järjestelmästä.
Opinnäytetytön teoriassa käytiin keskeisiä aiheita pääsääntöisesti ohjelmointirajapintoihin ja ohjelmointirajapinnan suunnitteluun. Työssä toteutettiin analysaattorialustaan C-ohjelmointikielellä ohjelmointirajapinta. MQTT-protokollalla toteutettiin järjestelmien välinen kommunikaatio ja tiedostomuotona käytettiin JSON-tietomuotoa. MQTT-protokollan toimintaa testattiin ja tarkkailtiin MQTT Explorer -ohjelmalla ja myös toteutetulla ohjelmointirajapinnalla.
Toteutettu ohjelmointirajapinta saavutti lähes kaikki tavoitteet, mitkä sille oli asetettu. Ohjelmointirajapinta pystyy tiedonluomiseen ja -lisäykseen automaattisesti ilman tarvetta ohjelmistonkehittäjän muokata analysaattorialustalta saatuja tietoja tai ohjelmointirajapintaa. Tieto, jota ei ehditty lähettää, oli tietorakenteissa olevat taulukon sisäiset tiedot, mutta taulukkorakenne saatiin lähetettyä ohjelmointirajapinnan avulla. Web-käyttöliittymä pystyi vastaanottamaan ja lähettämään tietoa analysaattorialustalle ohjelmointirajapinnan kautta luotettavasti ja ongelmitta. Ohjelmointirajapintaan luotiin neljä muuta MQTT-topicia jatkokehitystä varten.
Työllä pystyttiin toteamaan ohjelmointirajapinnan toteutuksen mahdollisuus olemassa olevaan analysaattorialustaan. Web-käyttöliittymän todettiin pystyvän korvamaan Qt-käyttöliittymän tarvittaessa. Todettiin myös MQTT-protokollan pystyvän toimimaan ohjelmointirajapinnan tietoliikenneprotokollana. Jatkokehitysaiheita ovat: neljän muun MQTT-topicin toiminnallisuuden lisäys, MQTT-broker bridge -toiminnallisuuden toteutus/testaus, taulukkotietojen lähetys/vastaanotto ja analysaattorialustan callback-funktioiden syvempi integraatio ohjelmointirajapintaan.
Opinnäytetytön teoriassa käytiin keskeisiä aiheita pääsääntöisesti ohjelmointirajapintoihin ja ohjelmointirajapinnan suunnitteluun. Työssä toteutettiin analysaattorialustaan C-ohjelmointikielellä ohjelmointirajapinta. MQTT-protokollalla toteutettiin järjestelmien välinen kommunikaatio ja tiedostomuotona käytettiin JSON-tietomuotoa. MQTT-protokollan toimintaa testattiin ja tarkkailtiin MQTT Explorer -ohjelmalla ja myös toteutetulla ohjelmointirajapinnalla.
Toteutettu ohjelmointirajapinta saavutti lähes kaikki tavoitteet, mitkä sille oli asetettu. Ohjelmointirajapinta pystyy tiedonluomiseen ja -lisäykseen automaattisesti ilman tarvetta ohjelmistonkehittäjän muokata analysaattorialustalta saatuja tietoja tai ohjelmointirajapintaa. Tieto, jota ei ehditty lähettää, oli tietorakenteissa olevat taulukon sisäiset tiedot, mutta taulukkorakenne saatiin lähetettyä ohjelmointirajapinnan avulla. Web-käyttöliittymä pystyi vastaanottamaan ja lähettämään tietoa analysaattorialustalle ohjelmointirajapinnan kautta luotettavasti ja ongelmitta. Ohjelmointirajapintaan luotiin neljä muuta MQTT-topicia jatkokehitystä varten.
Työllä pystyttiin toteamaan ohjelmointirajapinnan toteutuksen mahdollisuus olemassa olevaan analysaattorialustaan. Web-käyttöliittymän todettiin pystyvän korvamaan Qt-käyttöliittymän tarvittaessa. Todettiin myös MQTT-protokollan pystyvän toimimaan ohjelmointirajapinnan tietoliikenneprotokollana. Jatkokehitysaiheita ovat: neljän muun MQTT-topicin toiminnallisuuden lisäys, MQTT-broker bridge -toiminnallisuuden toteutus/testaus, taulukkotietojen lähetys/vastaanotto ja analysaattorialustan callback-funktioiden syvempi integraatio ohjelmointirajapintaan.