Page 28

tut tiedot tallennetaan tietokantaan, jossa on mahdollisuus lukea tietoa monessa muodosssa (JSON, XML, CSV). GE:n Predix-pilvessä on aikasarjadataa varten myös oma Blobstore Time-Series -tietokanta. Siemensin MindSphere järjestelmästä löytyy aikasarjojen käsittelyä varten Time Series Service -osuus.

Omat sovellukset pilveen Pilvipalveluihin sovellutuksia tehdessä on monia mahdollisuuksia, miten asiat voi tehdä. Perinteinen tapa on että tehdään ohjelmisto sopivaan käyttöjärjestelmään ja pyöritetään sitä virtuaalikoneessa, tai toki ratkaisu toimii IaaS-palveluita tarjoavassa pilvessäkin. Ohjelmistojen paketointi auttaa sovelluskehittäjien ylläpitotyötä. Tämä on perinteinen lähestymistapa, mutta ei ole välttämättä optimaalisin tapa tehdä asioita. Uusia pilvisovelluksia kannatta lähteä suunnittelemaan PaaS- ja Serverless-alustojen pohjalle. PaaS tarkoittaa, että tarvittavat sovellukset suoritetaan pilvessä pyörinä palveluina, jolloin käyttöjärjestelmän ylläpitäminen jää pilvialustan vastuulle. Näin ylläpitäjän ei tarvitse murehtia palvelimesta, vaan voi keskittyä vain sovelluksen toimivuuteen. Palvelittomuus (serverless) vie PaaS-palvelun ideaa eräällä tapaa vielä pidemmälle ja jättää kehittäjän vastuulle vain toimivan funktion luomisen. Tämä tarkoittaa, että pilvessä ei suoriteta sovellusta jatkuvasti, vaan kun funktiota kutsutaan, pilveen luodaan hetkellisesti uusi sovellus, joka suorittaa funktion ja kun se on suoritettu loppuun, sovel-

Näin IoT-sovellus pilveen Klassinen lähestymistapa IoT-sovelluksen luomiseen on asiakas-palvelinmalli. Tässä laite kommunikoi palvelimen kanssa (ehkä REST API: n kautta) verkon välityksellä. Laite lähettää kaikki keräämänsä tiedot palvelimelle käsiteltäväksi. Asiakkaan käyttöliittymä (webbisivu tai mobiilisovellus) puolestaan pyytää näitä tietoja palvelimelta tyypillisesti REST API:n kautta. Tämä arkkitehtuuri on käytössä kaikkialla nykyaikaisessa Internetissä. Ongelmat syntyvät, kun tarvitaan mittakaavaa. IoT-pilvipalvelut lupaavat tarjoa mittakaavaetua erityisesti tuonne palvelinpäähän korvaamalla yhden palvelimen pilvessä olevalla joukolla skaalautuvia palveluita. Kaikki IoT-pilvipalvelut-taulukossa listatut pilvipalvelut tukevat REST-tiedonsiirtoa jossain muodossa. REST-tekniikka on helppo, mutta sen rajoituksena on, että se ei ole

kovin optimaalinen tiedonsiirrossa sekä reaaliaikaisuudessa. REST-tekniikalla etenkin reaaliaikaisen ohjaussuunnan toteuttaminen pilvestä kentällä olevaan laitteeseen on haastavaa. Siksi reaaliaikaiseen tiedonkeruuseen, etävalvontaan ja etäohjaukseen kannattaa käyttää tähän tarkoitukseen suunniteltuja protokollia, kuten esimerkiksi MQTT. (Message Queuing Telemetry Transport). MQTT on täysiverinen IoT-protokolla, joka on suunniteltu edistämään dynaamista, skaalautuvuutta ja moduulista arkkitehtuuria. MQTT on lähtökohtaisesti määritelty yksinkertaiseksi ja kevyeksi tuottaja/tilaaja (publish/subscribe) liitäntäprotokollaksi. Protokolla on suunniteltu rajoitetun kapasiteetin laitteille ja toimimaan myös hitaalla ja epävakaalla internet-yhteydellä.

lus poistetaan. Ajettava funktio suoritetaan aina samalla tavalla, ja se voi olla yhteydessä toisiin funktioihin tai pilvipalvelun palvelukokonaisuuksiin. AWS, Azure ja Google tarjoavat modernia palvelitonta (serverless) lähestymistapaa IoT-sovellusten kehitykseen. Palvelimeton lähestymistapa sopii erityisen hyvin esimerkiksi tapahtumakäsittelyyn. AWS on ollut eturintamassa klassisen ohjelmointimallin korvaamisessa palvelittomalla ohjelmointimallilla. AWS Lambda -palvelua voidaan käyttää haluttujen toimintojen ajamiseen pilvessä, kun tulee

haluttu heräte. AWS Lambda ohjelmoinnissa määritetään koodi, joka suoritetaan vasteena tapahtumaan järjestelmässä. Määritelty toiminto suoritetaan, kun määritelty tapahtuma tapahtuu. Koodin suorituksen voi synnyttää esimerkiksi pilveen tullut uusi mittatieto, hälytysviesti tai vaikka HTTP-pyyntö käyttöliittymäsovelluksella. Ajettavat ohjelmafunktiot ovat tyypillisesti suhteellisen pieniä ja ajoajaltaan lyhyitä verrattuna perinteisiin sovelluksiin. Ajettavasta koodista peritään maksua ainoastaan, kun sitä suoritetaan, eikä se kuluta resursseja silloin kun kukaan ei tarvitse sen palveluita. Tyypillistä on, että ajettava funktio sisältää vain yksinkertaista logiikkaa ja listan tehtävistä asioista, ja jos pitää tehdä jotain monimutkaista, se laukaisee toisen funktion tai muun pilvipalvelun osan hoitamaan kyseisen työvaiheen. Esimerkiksi IoT-laitteen painike voidaan määritellä lähettämään signaali AWS-palveluun AWS Lambdan kautta, jossa voidaan määritellä toiminto, joka toteutetaan painikkeen painamisen yhteydessä pilvessä. Pilvi voi lähettää laitteelle takaisin ohjauskomentoja esimerkiksi kertomaan laitteen käyttöliittymäs-

Buyers Guide: IoT Cloud The Internet of Things (IoT) solves today many business challenges and creates opportunities for business development. This article introduces the most commonly used general-purpose IoT cloud services for industrial applications. In addition services listed here, there are a large number of smaller cloud service companies as well as IoT cloud services optimized for various narrow application areas. All cloud platforms have their

28 - UT 2/2018

own distinctive areas of pros and cons. Ultimately the project needs and cost-effectiveness determine whom to choose. Utilizing cloud services also brings new potential risks that are good to understand already in the beginning of the project. For example, your access to the service you are using can be terminated, because it is not profitable to service provider, bankruptcy, acquisition or technical reasons. These risks should be taken seriously.

sä, että tehty palvelutilaus on mennyt perille. AWS Lambda tukee JavaScript-ohjelmointikieliä (Node. js), Pythonia ja Javaa. Azure Functions on vastaava palvelu Microsoftin pilvessä. Siinä toiminnot voidaan toteuttaa tällä hetkellä C#-, JavaScript- tai f#-kielillä. Cloud Funtions on Googlen palvelinympäristöä, joka kilpailee suoraan Microsoftin AWS Lambda- ja Azure Functions -työkalujen kanssa. Cloud Funtions-toimintoja voi toteuttaa Python ja JavaScript (node.js) kielillä. IBM-pilvipalveluissa IoT-toimintojen yhdistämiseen toisiinsa suositellaan käytettävän Node-RED-ohjelmaa. Node-RED on puoligraafinen ohjelmointikieli, joka on rakennettu Node.JS:n päälle. Toinen työkalu tapahtumakäsittelyyn on IFTTT-reseptien käyttäminen tapahtumien ohjaamiseen. IFTTT tulee sanayhdistelmästä "if this, then that". Sovelluksen ideana on rakentaa reseptejä eli toimintarutiineja määrittämällä jotakin tapahtumaan tietyillä ehdoilla automaattisesti. Myös Elisan IoT, GE Predix ja MindSphere sisältävät alustaan rakennettuja omia työkalujaan tapahtumapohjaisen tiedonkäsittelyn.

Analysoinnilla data paremmin käyttöön Perinteisten yksinkertaisten mitta-anturien lukemien lisäksi monessa sovelluksessa halutaan analysoida myös ääntä ja kuvaa. Kaikki katsauksessa olevat pilvipalveluntarjoajat tarjoavat palveluissaan työkaluja datan analysointiin. Datan analysointiin on tarjolla myös tekoälytekniikoita (AI). Kaikilla toimijoilla on tarjolla alustassaan myös visualisointityökaluja. Artikkelin kirjoittaja Tomi Engdahl toimii Netcontrol Oy:ssä tuotekehitysinsinöörinä

Linkkipankki Uusiteknologia 2/2018 linkkipankkiosioon on tuotu suorat linkit eri IoT-pilvipalveluiden tarjoajiin ja heidän palvelunsa käyttöönottoon liittyviä artikkeleita ja whitepaper-esityksiä.

Profile for Uusiteknologia.fi

Uusiteknologia.fi 2/2018  

Uusinta luettavaa teknologiasta! Tutustu mm. IoT-, WiFi-, 5G-aiheisiin ja kvanttitietokoneiden saloihin! Finnish electronics and technology...

Uusiteknologia.fi 2/2018  

Uusinta luettavaa teknologiasta! Tutustu mm. IoT-, WiFi-, 5G-aiheisiin ja kvanttitietokoneiden saloihin! Finnish electronics and technology...

Advertisement