Muista nämä IOT-hanketta ostaessasi

Jukka Dahlbom • maalisk. 29, 2018

IoT-hankkeissa vanhat sulautetut järjestelmät ja puutteet hankintasopimuksissa tulevat kalliiksi hidasteeksi, kun järjestelmiä lähdetään laajentamaan ja jatkokehittämään. Tämän vuoksi päätin julkaista omat neuvoni yritysten järjestelmähankintoihin. Olennaiseksi nämä asiat tulevat, kun olemassa olevaa järjestelmää lähdetään nostamaan toiminnallisesti seuraavalle tasolle datan yhdistelyn, automaattisen huoltotoiminnan ja älykkään valvonnan osalta – jolloin usein pelkän rautatoimittajan kyvykkyys ja intressit eivät usein riitä muuttuneisiin tarpeisiin.

Kaikkien projektituotosten pitäisi olla hankinnan lopuksi laitteen ostajan omaisuutta tai vähintään vapaasti käytettävissä. Muussa tapauksessa laitteilla liiketoimintaa tekevä ostaja joutuu kantamaan liiketoimintariskin siitä, että laitteen toimittaja lopettaa toimintansa tai ryhtyy kiristämään hinnoittelemalla monopoliasemansa turvin työnsä kalliiksi.

Järjestelmien hankintaan liittyy kolme erilaista kehityshanketta, joilla kullakin on omat huomioitavat piirteensä hankintaa tehtäessä. Sulautetun laitteen suunnittelutyö ottaa kantaa ennen muuta fyysiseen laitteeseen ja sen elektroniikkasuunnitteluun. Vahvasti sidoksissa itse laitteeseen on laitteen ohjelmakoodin kehitys, joka on puhtaasti digitaalisena tuotoksena hyvin eri luonteinen kuin fyysinen tuote. Johtuen kytköksestä itse laitteeseen, laitteen ohjelmistossa on pakostikin juuri tälle laitteelle räätälöityä toteutusta, mutta tämä on syytä abstraktoida hyvin itse toimintalogiikassa. Kolmas osa on verkkopalvelun kehittäminen laitteen tietojen ohjaamiseksi. Sulautettujen järjestelmien kanssa poikkeukset tavanomaisesta verkkopalvelukehityksestä johtuvat mahdollisista laitteen rajoittamista kyvykkyyksistä tietoliikenteen ja salauksen suhteen.

Sulautetun laitteen suunnittelutyö:

  1. Maksa suunnitteludokumenteista, älä vain valmiista laitteesta? Pahimmillaan ostat sisäänheittohinnalla prototyypin, jonka suunnittelutiedostojen oikeudet ovat toimittajallasi.
    Tällöin olet heidän hinnoittelunsa ja palveluhalukkuutensa armoilla, mikäli haluat kasvattaa laitekantaasi kalliisti testatun prototyypin mukaisilla laitteilla.
  2. Suunnittelutyökalujen on oltava saatavilla kaikille kolmannen osapuolen tarjoamana ja mieluiten sellaisella hinnalla, että työkalulisenssi ei muodosta merkittävää osaa laitteen suunnitteluhinnasta.
  3. Älä hyväksy laitteeseen toimittajan omia komponentteja, jollei niiden suunnittelutiedostot ja sovelluskoodi ole saatavilla vapaasti muokattavina ja ilmaiseksi – tai vähintään etukäteen selvästi hinnoiteltuina.
    Kokemus on osoittanut, että toimittajat voivat järjestää käytännön vendor lockin kieltäytymällä antamasta sovelluskoodia asiakkaalle saatuaan toimittamansa järjestelmän laajasti käyttöön.
  4. Tarvittavat lopputulokset:
    • Suunnitteludokumentaatio: Piirikaavio kytkennöistä, piirilevyn CAD-ohjelman suunnittelutiedot, prototyypin tilaukseen käytetyt tiedostot sekä ohjeistus uusien piirilevyjen tilaamiseksi piirilevyvalmistajilta.
    • Testausdokumentaatio: Piirilevytoimittajien toimittamat levyt on testattava kytkentävirheiden varalta – toimittajan on tuotettava ohjeet ja prosessi valmistuneiden piirilevyjen hyväksymiseksi.
    • Ohjelmiston lähdekoodi ja asennusskriptit sekä mahdolliset manuaalisten vaiheiden dokumentaatiot: Nykyään kaikki asennus- ja päivitystyö pitäisi olla automatisoitu avoimesti saatavilla olevilla työkaluilla ja ohjelmointikielillä.
      Käytännössä sulautettujen järjestelmien kanssa voidaan olettaa, että mitä tiukemmilla virrankäyttökriteereillä laite on suunniteltu ja mitä enemmän toiminnallisuutta pieneen tilaan on mahdutettu, sitä erikoisempia ratkaisuja on tehty tuloksen saavuttamiseksi. Monilla asiakkaillamme jatkokehityksen kannalta olisi ollut edullisempaa käyttää yleisempiä komponentteja ja toteutustapoja, vaikka se olisi näkynyt hieman suurempana tilankäyttönä ja sähkönkulutuksena.

 

Laitteen ohjelmakoodin kehityshuomiot:

  1. Lähtökohtaisesti toimituksessa tulee mukana asennusmedia ja sen käyttöohje. Tämän lisäksi on kuitenkin varmistettava, että toimittajalta saadaan myös täydet ohjeet käyttöjärjestelmän rakentamiseksi perusteista alkaen komponenttiversioineen sekä lähdekoodi kaikkiin räätälöityihin sovelluksiin ja skripteihin käyttöoikeuksineen. Sulautettujen järjestelmien käyttöjärjestelmät happanevat samalla tavalla kuin muutkin tietojärjestelmät, joten niiden on oltava päivitettävissä ja jatkuvan kehityksen kohteina.
  2. Pelkkä lähdekoodi ei monissa tapauksissa riitä, jos tehoja on haettu vähän tunnetuilla tekniikoilla, jotka pahimmillaan ovat vain yhden yrityksen käyttämiä ja vailla aktiivista kehitysyhteisöä. Tällöin on varmistettava, että lähdekoodi on käännettävissä ja asennettavissa myös kolmen, viiden ja kymmenenkin vuoden päästä riittävillä ohjeilla, ja paikallisilla kopioilla vaadituista kirjastoista. Laajalti käytettyihin kirjastoprojekteihin tukeutuminen lievittää tätä vaatimusta, koska tukea ja neuvoja on löydettävissä maailmalta.

Verkkopalveluiden kehitys:

  1. Huomaa, että sulautettuja järjestelmiä kehittävät tahot todennäköisesti eivät ole verkkopalvelujen asiantuntijoita, kuten vastaavasti useimmat verkkopalveluja kehittävät eivät ole sulautettujen järjestelmien asiantuntijoita. Tähän on syynä jatkuva tekniikan kehitys joka alalla, ja sen kehityksen mukana pysymisen edellyttämä erikoistuminen. Saadaksesi parhaan lopputuloksen kannattaa hakea näkemyksiä ja konsultointia alaan erikoistuneilta, vaikka toimitustilauksen tekisikin ensi vaiheessa vain yhdeltä toimijalta.
  2. Samalla tavalla kuin rautatoimittajan on toimitettava suunnittelutiedostot ja ohjeet raudan luomiseksi ja muuttamiseksi, verkkopalvelun toimittajalta on edellytettävä palvelinympäristön luomiseen käytetyt automaatioskriptit ja ohjeistus niiden käyttämisestä.
  3. Nykyään kannattaa huolestua jos softakehittäjät ilmoittavat, että heidän koodinsa pyörii heidän omilla fyysisillä palvelimillaan. Tällöin joudut elämään joko kohtuuttomien ylläpitokustannusten, tai todellisuudessa heikon palvelutason kanssa laiterikkojen yhteydessä. Järjestelmän pitäisi olla automaattisesti vikasietoinen, joka tarkoittaa käytännössä jonkinlaista infrapilviratkaisua. Rakentamasi järjestelmän tuottama data on ainoa joka pilviratkaisun valinnassa rajaa valintoja: Jos kyse on henkilöityvästä datasta, on varmistettava, että data käsitellään EU:n sisällä. IOT-käyttötapauksessa ainoastaan puolustusvoimien järjestelmien on välttämätöntä rajautua Suomen sisällä toimiviin palvelinsaleihin.
  4. Myös verkkopalveluissa lähdekoodin pitää kuulua ostajalle kun ostetaan räätälöityä järjestelmää. Jos liiketoimintasi perustuu ainutlaatuiseen IOT-konseptiin, varmista että omistat kaikki käyttö- ja muuntamisoikeudet laitteillasi pyöriviin sovelluksiin. Lisenssiehtojen puolesta toiseen suuntaan on syytä huomata, että uniikkia kaupallista sovellusta tehtäessä viraaliset copyleft-lisenssit kuten GPLv3 eivät todennäköisesti ole käyttökelpoisia, ellet ole valmis julkaisemaan koko lähdekoodiasi maailmalle. Tässä vastuu käytettyjen sovellusten ja kirjastojen lisenssien valvonnasta on syytä sopia toimittajan vastuulle. Avoimen lähdekoodin käyttäminen yleisesti ottaen vähentää riskiä päätyä toimittajaloukkuun.

Kun näistä asioista on sovittu jo hankintaa tehdessä pitävästi, voit paljon luottavaisemmin mielin kehittää liiketoimintaasi tietäen, että IOT-järjestelmäsi on teknisesti kehittämiskelpoinen, eikä kehitystyöhön jatkossa tule hintalappua kankean järjestelmän korvaamisesta tai selvittelystä puutteellisin lähtötiedoin. Lupaan myös, että tulevat kehittäjäsi kiittävät hyvästä pohjatyöstä.

Viimeisimmät kirjoitukset

Webscalen konsultteja.
26 Apr, 2024
Kysy konsultilta -blogisarjassa konsulttimme tekevät selkoa alan termeistä ja ilmiöistä. Vastaukset on mitoitettu sopimaan pieneenkin tiedonnälkään. Tällä kertaa selvitämme, mikä on AWS Landing Zone?
Webscalen konsultteja.
19 Apr, 2024
Kysy konsultilta -blogisarjassa konsulttimme tekevät selkoa alan termeistä ja ilmiöistä. Vastaukset on mitoitettu sopimaan pieneenkin tiedonnälkään. Tällä kertaa selvitämme, mitä on DevSecOps?
Webscalen konsultteja.
12 Apr, 2024
Kysy konsultilta -blogisarjassa konsulttimme tekevät selkoa alan termeistä ja ilmiöistä. Vastaukset on mitoitettu sopimaan pieneenkin tiedonnälkään. Tällä kertaa selvitämme, mikä on Serverless Framework?
Webscalen pilviarkkitehti.
05 Apr, 2024
Kysy konsultilta -blogisarjassa konsulttimme tekevät selkoa alan termeistä ja ilmiöistä. Vastaukset on mitoitettu sopimaan pieneenkin tiedonnälkään. Tällä kertaa selvitämme, mitä tarkoittaa kuluoptimointi pilviympäristössä?
Lisää kirjoituksia
Share by: