Tidligere i vår fant konferansen foss-north sted i Gøteborg. Allerede fra starten var det klart at verdens programvare står på skuldrene til åpen kildekode.


Daniel Stenbergs presentasjon What comes after world domination åpnet for to dager fullstappet med åpen kildekode og programvareutvikling. Stenberg er kjent for å ha laget programmet curl. Det er et verktøy som er godt kjent blant utviklere, og som har omtrent 20 milliarder installasjoner i solsystemet vårt (curl brukes også på Mars!). Stenberg har førstehåndserfaring med hvordan et enkelt prosjekt kan utvikle seg til å bli en grunnleggende del av vår digitale infrastruktur. Han la frem noen oppsiktsvekkende tall:
- Åpen kildekode brukes i 96 % av all verdens programvare.
- Åpen kildekode i verden er anslått til å ha en verdi av 8 billioner dollar (ja, du leste rett: 8000 milliarder dollar, omtrent 80 000 milliarder kroner).
Han tok opp også noen av utfordringene med åpen kildekode:
- Om du plasserer alle åpne kildekode-prosjekter i rekkefølge fra de med færrest til de med flest ansvarlige personer, vil prosjektet på midten ha 1 ansvarlig (maintainer). Med andre ord er det vanlig med få utviklere på hvert prosjekt. Det stemmer fullstendig med memen fra xkcd vist over.
- Den digitale infrastrukturen vår er sårbar når så mye er avhengig av enkeltpersoner, noe vi fikk et eksempel på i fjor med leverandørkjedeangrepet mot programvaren xz.
- Hovedvekten av prosjektene foregår i vestlige land. Hvordan sikrer vi motstandsdyktigheten til åpen kildekode, at åpen kildekode-miljøet er mangfoldig nok og at koden ikke bare fins ett fysisk sted?
Cyber Resilience Act
Cyber Resilience Act (CRA) var et tema som dukket opp flere ganger under konferansen. CRA er et lovforslag fra EU som skal redusere sårbarheter i produkter som inneholder digitale komponenter og som er koblet til nettet. Det gjelder veldig mange av produktene vi omgir oss med. De som lager slike produkter, må gjennomføre en selvsertifisering etter hvert som flere deler av lovforslaget trer i kraft. En rekke sikkerhetstiltak blir obligatoriske, blant annet at:
- Sikkerhetsoppdateringer må gjøres tilgjengelige gjennom hele bruksperioden for produktet.
- Produkter kan kun selges hvis de ikke har noen kjente sikkerhetshull.
- Produkter må lages basert på prinsippet om innebygd sikkerhet.
- Produktene skal kun samle inn data som er nødvendig, kjent som dataminimering fra personvernforordningen. I denne sammenhengen gjelder dataminimering også for ikke-personlige data.
De ansvarlige selskapene må dokumentere og sikre sin «digitale verdikjede», inkludert åpen kildekode. Du kan se på CRA som en utvidelse av EUs CE-merking (Conformité Européenne).
Hvorfor samhandling er viktig

Det var Terje Sylvarnes fra Digdir og Hagen Echzell fra Universitet i Oslo som presenterte viktigheten av standardisering og samhandling. De viste frem eksempler og problemstillinger knyttet til teknisk og semantisk samhandling i universitetssammenheng. Echzell har selv vært utvekslingsstudent og erfart hvor knotete prosessene rundt utvekslingssøknader og godkjenning av emnelister kan være. Typisk må flere parter signere en rekke dokumenter. Den eneste universelle og samhandlingsdyktige løsningen som finnes for å utveksle dokumentene er e-post, siden universitetenes systemer ofte ikke snakker sammen.
I presentasjonen tok de opp hvor viktig det er med teknisk og semantisk samhandling for å løse denne problemstillingen. Vi bør fokusere på å lage samhandlingsdyktige systemer heller enn å låse oss til én felles leverandør. Noen løsninger de tok opp er:
- Matrix-protokollen for meldingstjenester/chat.
- OpenCloudMesh for deling av filer med brukere fra andre organisasjoner.
- Å forenkle deling av data ved hjelp av JSON for Linking Data (JSON-LD) og et felles vokabular som definerer og forklarer dataen som deles.
Matrix
Element er et av programmene som baserer seg på Matrix-protokollen. Du kan sammenligne det med programmet Slack. Siden meldingsutvekslingen er basert på Matrix-protokollen kan hver virksomhet velge det programmet som passer seg, og likevel sende og motta meldinger med andre som støtter protokollen.
Akkurat som e-post, er denne løsningen samhandlingsdyktig, bare at det her gjelder for direktemeldinger/chatter. Matrix implementerer noen moderne sikkerhetsfunksjoner som har vært vanskelig å støtte for e-poster. Meldinger er ende-til-ende-kryptert og signert som standard, uten at brukeren trenger å foreta seg noe.
Særlig i Tyskland og Frankrike er Matrix i ferd med å etablere seg i offentlig sektor og i universitets- og høyskolesektoren. Den franske regjeringen driver en Matrix-tjeneste som heter «Tchap». Det tyske forsvaret benytter seg av en lignende løsning. Universiteter som har slike Matrix-tjenester, gjør det enkelt for forskerne sine å komme i kontakt med forskere fra andre universiteter. Å åpne en felles meldingskanal er omtrent like enkelt som å skrive en e-post.
OpenCloudMesh og fildeling
OpenCloudMesh er en protokoll som legger til rette for at du kan dele filer med andre, selv om de ikke er i systemene til virksomheten din. NextCloud, ownCloud og OpenCloud er eksempler på løsninger som støtter støtter OpenCloudMesh (OCM). Dette ligner på når du deler filer fra for eksempel SharePoint med personer utenfor organisasjonen. Du er derimot ikke avhengig av at dem du deler med bruker samme system og leverandør. Du kan bruke det systemet du vil så lenge det støtter OCM-protokollen. ScienceMesh er en løsning basert på OCM-protokollen som gjør det mulig å dele forskningsdatasett på tvers av forskningsinstitutt. OCM-protokollen er generisk og kan brukes i mange andre sammenhenger, når du vil dele filer eller bygge dine egne samhandlingsdyktige applikasjoner.
Selv om presentasjonen gir eksempler på løsninger som skal forenkle samhandlingen mellom universiteter, er løsningene generelle. De er relevante for alle virksomheter som trenger å kommunisere med meldinger, dele filer, og dele data og samhandle med andre organisasjoner uavhengig av hvilke systemer og leverandører de bruker. Med andre ord er dette alternativer til e-post, og det man kan kalle “e-postdrevet datadeling”.
Matrix og OpenCloudMesh er tekniske protokoller som oppfyller helt grunnleggende funksjoner de aller fleste virksomheter bruker. Men mange er også avhengig av skreddersydde og domenespesifikke systemer og API-er som ikke enkelt kan erstattes med noe nytt.
I stedet for å finne opp en ny teknisk standard kan det være hensiktsmessig å forbedre samarbeidet ved å berike eksisterende data med semantisk tilleggsinformasjon: JSON-LD er et slikt format som lar deg beskrive data du deler. Da blir det enklere å forstå hva de betyr og hvordan de kan brukes riktig.
Et tenkt eksempel er hvis en utvikler skal gjenbruke data fra et norsk universitet, og mottar et dataelement som heter «beskrivelse» med tekstinnholdet «Et introduksjonskurs for bachelorstudenter om samhandling». Det gir kanskje mening for en utvikler som kan norsk. Men om et fransk universitet skal bruke denne informasjonen vil det være helt uforståelig for dem. JSON-LD lar deg legge ved en definisjon fra et felles vokabular som inneholder definisjoner på både norsk, engelsk og fransk. Da kan du med JSON-LD si at dataelementet «beskrivelse» er «a description of a course», og legge til en engelsk tekstlig beskrivelse av dataelementet: «An introductory course for bachelor students on interoperability». Slik beriker du data med meningsfylte definisjoner, og gjør det enklere for andre å bruke dataen.
Misforståelser rundt hva data betyr oppstår ikke bare i forbindelse med språkbarrierer. Det kan for eksempel være uklart hva jeg mener med «kurs» i norsk sammenheng. Er det et kurs på jobb, på universitetet, eller er det en elektrisk kurs? «Kurs» kan bety vidt forskjellige ting avhengig av kontekst. Om vi bruker felles definisjoner og denne følger med dataen som deles, kan slike misforståelser reduseres.
Det lønner seg å bidra
Det er mange store organisasjoner og selskaper som bruker åpen kildekode. For dem er det en strategisk satsning å bli med i kode-prosjektene og bidra med det de kan. Flere på konferansen trakk fram at slike selskaper og organisasjoner ikke kan behandle åpne kildekode-prosjekter som leverandører som de kan stille direkte krav til. Selskapene og organisasjonene bør heller ta del i kodefellesskapet og betrakte det som et partnerskap de høster gevinster av ved å bidra selv. Det er noe å tenke på også for virksomheter i offentlig sektor som selv er avhengig av åpen kildekode.
God samhandling krever imidlertid noe mer enn bare samarbeid om kode. For å gjøre denne samhandlingen mulig og ikke bli avhengig av sentraliserte og silolignende løsninger, må vi bli enige om tekniske og semantiske standarder, filformater, API-er og vokabularer. Mange kjenner nok til hvor viktig det er å inkludere brukerne tidlig i utviklingsprosessen. Like viktig er samspillet mellom systemer som kan ligge i hver sine avdelinger, etater eller hvert sitt land. Referansekatalogen for IT-standarder er et godt utgangspunkt for felles standarder. Standardene bidrar til digitale økosystem hvor virksomhetene samhandler på måter som gir gode digitale tjenester, uavhengig av om de tekniske løsningene er basert på åpen eller lukket kildekode. Det er derfor viktig at kravspesifikasjoner fra offentlige aktører peker til åpne standarder, og særlig dem som er nevnt i Referansekatalogen. Foruten behovet for organisatoriske og semantiske standarder, kan tekniske standarder som Matrix, OpenCloudMesh og JSON-LD utgjør et stort potensial for bedre samhandling i offentlig sektor. En satsning på standardisering både sektorielt og nasjonalt er sentralt for at vi skal lykkes med digitaliseringen.

Terje Sylvarnes
Jobber med informasjonsforvaltning og datadeling i Digdir, hvor jeg har vært siden 2022. Har tidligere vært utvikler i data.norge.no.