IT-NORGE

Det finnes to typer spaghettikode. Den ene kan være umulig å rydde opp i

Norsk selskap vil gjøre sanntidsprogrammering enklere.

4. feb. 2016 - 12:36

TRONDHEIM (digi.no): I en verden der temperaturmåleren i stua skal kombineres med hjerterytmen din for å justere styrken på kjøleskapsvifta, trenger vi stadig mer sanntidsprogrammering.

Dette er nyttig når flere maskiner snakker sammen, og man skal ta hensyn til hva som skjer, i tillegg til når det skal skje.

Ikke bare av typen som er innebygd i ulike dingser, men også den som installeres mellom dingsene, for å få de til å snakke sammen.

Men mange ser på sanntidsprogrammering som et vanskelig felt, og relativt få behersker det. Kompleksiteten øker eksponentielt med antallet datastrømmer man kobler på, og selv erfarne utviklere kan få problemer med å ta hensyn til alle de ulike utfallene.

Konflikter er gjerne noe man oppdager og fikser etterhvert, og den endelige koden blir ofte uoversiktlig og vanskelig å forstå for andre utviklere.

Grafikk + egen kode

– Med vanlig spaghettikode kan du få det til å se fint ut ved å rydde opp i og strukturere koden. Med en gang det er samtidighet inne i bildet, kan det være umulig å rydde opp og samtidig få kode som er forståelig for andre, forklarer Frank Alexander Kraemer, teknisk leder i Bitreactive.

Trondheims-selskapet lager et grafisk verktøy for Java-utviklere som jobber med sanntidsprogrammering.

I applikasjonen kan man dra inn vanlige Java-biblioteker for maskin-til-maskin-kommunikasjon (M2M) og lage «byggeklosser» som kobles sammen. En blokk kan for eksempel være en komponent, funksjon eller en protokoll.

Blokkene ligner API-er, hvor man blant annet kan spesifisere hvilke parametre man trenger, og når de forventes.

I verktøyet kan man også analysere programmet man lager, og oppdage deadlocks, synkroniseringsfeil og andre uforutsette hendelser.

På selskapets nettsted kan du lese mer om hvordan blokkene fungerer, og hvilke biblioteker det er snakk om.

– Alt som har med samtidighet å gjøre får man opp grafisk.  Dobbeltklikker man på en blokk, kan man legge inn vanlig kode.  En blokk kan også inneholde en annen blokk, sier han.

Dette skal gjøre det raskt og enkelt for uinvidde å komme i gang med applikasjonene sine. I tillegg er det nyttig for erfarne sanntidskodere, ettersom programvaren ser feil og konflikter for deg, og kan håndtere høy kompleksitet, mener Kraemer .

  • IBM har laget en oppskrift for bruk av Reactive Blocks i IoT-applikasjoner.
I eksempelet er en pumpe og ulike sensorer koblet sammen i grensesnittet.
I eksempelet er en pumpe og ulike sensorer koblet sammen i grensesnittet.

Lesbar, ikke redigerbar

Programvaren genererer kode som kan installeres på en gateway koblet til internett og målere.

– Er den genererte koden lesbar i etterkant?

– Ja, den er absolutt lesbar, men det er ikke lagt opp til å gjøre endringer i denne uten brukergrensesnittet installert. Klart du kan gå inn og gjøre endringer i koden, men da risikerer du å ødelegge sammenhengen mellom den grafiske dokumentasjonen - da mister du mye av det som er fordelen med verktøyet.

Styrken til programvaren skal være at det er enkelt å gjenbruke de ulike blokkene, og å legge inn egen kode. Det skal også være det eneste grafiske verktøyet for sanntidsprogrammering i java.

Node RED er et alternativ til programvaren, og baserer seg på utvikling i javascript. Her kan du lese hva brukeren Saurabh Sood synes om prosjektet.

Overtok 640 ansatte: Evry og IBM inngikk kontrakt til 8,5 milliarder kroner

Les mer om:
Del
Kommentarer:
Du kan kommentere under fullt navn eller med kallenavn. Bruk BankID for automatisk oppretting av brukerkonto.