Hyppää sisältöön
    • Suomeksi
    • På svenska
    • In English
  • Suomi
  • Svenska
  • English
  • Kirjaudu
Hakuohjeet
JavaScript is disabled for your browser. Some features of this site may not work without it.
Näytä viite 
  •   Ammattikorkeakoulut
  • Kajaanin ammattikorkeakoulu
  • Opinnäytetyöt (Avoin kokoelma)
  • Näytä viite
  •   Ammattikorkeakoulut
  • Kajaanin ammattikorkeakoulu
  • Opinnäytetyöt (Avoin kokoelma)
  • Näytä viite

Django-pohjaisen verkko- ja sarjaliikennepalvelimen kehitys ja testaus

Siekkeli, Konsta (2021)

Avaa tiedosto
Siekkeli_Konsta.pdf (3.047Mt)
Lataukset: 


Siekkeli, Konsta
2021
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Näytä kaikki kuvailutiedot
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202104195074
Tiivistelmä
Tämän työn oli tilannut Exens Development Oy. Työn tarkoituksena oli kehittää i.MX 8M Nano EVK -kehitysalustalla toimiva verkkosovellus, joka toteutettaisiin Python-pohjaisella Django-kehysympäristöllä. Verkkosovelluksen kautta voisi lähettää viestejä sarjaliikenneväylään yhdistetylle laitteelle. Kehitettävä sovellutus tahdottiin toteuttaa Debian-käyttöjärjestelmän päälle tämän ominaisuuksien vuoksi.
Verkkosovelluksen kehityksessä tuli selvittää tehokkain tapa viestin välittämiseksi verkkosovellukselta sarjaliikennelaitteelle.

Työssä käydään läpi, millä tavoilla GNU/Linux-pohjainen Debian-käyttöjärjestelmä voidaan asentaa i.MX 8M Nano -pohjaiselle kehitysalustalle. i.MX 8M Nano on NXP Semiconductorsin kehittämä ARM arkkitehtuuriin perustuva sovellussuoritin. NXP tarjoaa suoritinta hyödyntävien järjestelmien kehityksen tueksi ohjelmistoja ja dokumentteja, kuten Debianin asennuksessa käytetyn Binary Support Package (BSP) -paketin. BSP-paketti sisältää Embedded Linux -kehityksessä tarvittavia ohjelmia, kuten Yocto-projektilla
luodun GNU/Linux-käyttöjärjestelmäkuvan. Tätä kuvaa ja sen osia hyödynnettiin asennettaessa Debiania i.MX-kehitysalustalle. Vaihdettaessa käyttöjärjestelmäversio Debianiin, ilmeni sarjaliikenteen toiminnassa ongelma, joka johtui Simple Direct Memory Access (SDMA) -ominaisuudesta. Ongelman aiheutti SDMA:n tarvitsema laiteohjelmisto, jonka lataaminen epäonnistui Debianin käynnistyessä. Tämän takia Universal
Asynchronous Receiver Transmitter (UART) -laitteiston vastaanottamat viestit eivät välittyneet käyttöjär jestelmälle. Ongelma ratkesi korjaamalla latausprosessissa ilmenneet ongelmat.

Työssä käsiteltiin Pythonin pySerial-moduulin vaatiman ”Polling”-toteutuksen aiheuttamia rajoitteita, kun kehitetään mahdollisimman nopeaa sarjaliikennekommunikaatiota Djangolla. Toteutuksessa päädyttiin hyödyntämään mahdollisimman yksinkertaista toteutusversiota ja multiprocessing-moduulia hyödyntä vää versiota. Kehityksen ja testausten aikana havaittiin, että kaikista tehokkain ratkaisu saatiin käyttämäl lä isäntä-orja-tyyppistä tiedonvälitystä laitteiden välillä ja pitämään sarjaliikennekommunikaatio mahdol lisimman yksinkertaisena. Verkkosovelluspuolen kehityksessä hyödynnettiin Asynchronous Javascript and XML (AJAX) -menetelmiä, jotta verkkosivulla olevaa tietoa voitaisiin päivittää tehokkaasti selaimen ja palvelimen välillä.

Prototyypin toteutusversioita testattaessa selvisi, että merkittävin vaikutus Djangon suorituskykyyn oli käytettävällä tietokannalla ja muistikortin ominaisuuksilla. Käyttämällä vanhan tekniikan muistikorttia ja SQLite-tietokantaa saattoi verkkosovelluksen suoritus olla jumiutuneena useita sekunteja tietokantaan kirjoittamisessa. Djangon suorituskykyä pystyi siis parantamaan käyttämällä suorituskykyistä muistia ja tietokannan versiota.
Kokoelmat
  • Opinnäytetyöt (Avoin kokoelma)
Ammattikorkeakoulujen opinnäytetyöt ja julkaisut
Yhteydenotto | Tietoa käyttöoikeuksista | Tietosuojailmoitus | Saavutettavuusseloste
 

Selaa kokoelmaa

NimekkeetTekijätJulkaisuajatKoulutusalatAsiasanatUusimmatKokoelmat

Henkilökunnalle

Ammattikorkeakoulujen opinnäytetyöt ja julkaisut
Yhteydenotto | Tietoa käyttöoikeuksista | Tietosuojailmoitus | Saavutettavuusseloste