Kesksete sõlmede probleem

Kui mitu organisatsiooni peavad andmeid jagama, on instinktiivne lahendus keskne integratsioonisõlm. Kõik ühenduvad sellega, see teisendab ja suunab sõnumeid ning sellest saab koht, mille kaudu liiguvad kõik andmed. Alguses on see mugav. Aja jooksul muutub see ainsaks tõrkepunktiks, ainsaks kompromiteerimise punktiks ja ainsaks kohaks, kus keegi võiks põhimõtteliselt kõike lugeda.

On ka juhtimisprobleem. Sõlme haldaja hakkab tegema otsuseid, mis kuuluvad andmete omanikele: kes tohib millist teenust kasutada, kui kaua logisid hoitakse, milliseid versioone toetatakse. Vastutus triivib keskele, kus see on kõige vähem aruandekohustuslik.

X-tee idee

X-tee (X-Road), avatud lähtekoodiga andmevahetuskiht, mis on aastaid olnud Eesti digiteenuste alus, läheneb teisiti. Andmed liiguvad otse liikmelt liikmele. Iga osalev organisatsioon käitab oma turvaserverit ja iga päring liigub tarbija turvaserverist teenusepakkuja turvaserverisse, olles teel allkirjastatud, krüpteeritud ja ajatemplitud.

Keskne komponent on olemas, kuid selle roll on kitsas. See haldab liikmete ja nende alamsüsteemide registrit ning usalduskonfiguratsiooni: milliseid sertifitseerimiskeskusi ja ajatempliteenuseid tunnustatakse ning kes ökosüsteemi kuuluvad. See ei näe sõnumite sisu. See eraldatus usalduse juhtimise ja andmete edastamise vahel on mudeli tuum.

Ehitusplokid

Tehnilisele meeskonnale, kes kavandab sellel mudelil põhinevat andmevahetust, tasub peamised komponendid selgelt välja öelda:

  • Keskne juhtimisteenus, mis hoiab liikmete registrit ja globaalset konfiguratsiooni.
  • Iga liikme juures turvaserver, mis lõpetab vastastikku autenditud TLS-ühenduse ning tegeleb allkirjastamise ja logimisega.
  • Selgete identifikaatoritega liikmed ja alamsüsteemid, et ligipääs antakse konkreetsele süsteemile, mitte tervele organisatsioonile.
  • Usaldusteenused: sertifitseerimiskeskus, sertifikaatide kehtivuse kontroll ja ajatembeldus.
  • Sõnumilogid mõlemas otsas, et mõlemal osapoolel oleks iga vahetuse kohta allkirjastatud kirje.

Suveräänsus praktikas

Suveräänsus on üleliia kasutatud sõna, kuid siin on sellel konkreetne tähendus. Iga teenusepakkuja otsustab, millised tarbijad võivad kasutada tema iga teenust, ja see otsus jõustatakse teenusepakkuja enda turvaserveris. Iga liige hoiab oma logisid ise. Ükski kolmas osapool ei saa vaikselt lugeda, kopeerida ega muuta seda, mis kahe liikme vahel liigub, sest teekonnal pole kolmandat osapoolt.

See on oluline nii Euroopas kui ka Lahe piirkonna piirkonnas, kus ootused andmete asukohale ja vastutusele on kõrged. Sel viisil ehitatud andmevahetus võib asuda täielikult riigi või organisatsiooni piires, kasutades avatud lähtekoodiga tarkvara, mida haldaja saab uurida, käitada ja muuta ilma tarnijalt luba küsimata.

Mida tuleb õigesti teha

Tarkvara on lihtne osa. Edu sõltub sellega seotud otsustest. Liikmete ja alamsüsteemide nimetamise reeglid tuleks paika panna enne esimest ühendust, sest hiljem on neid raske muuta. Liitumine peaks olema dokumenteeritud ja korratav protsess, mitte teenete jada. Teenuste kirjeldused peaksid kasutama avatud standardeid, nagu OpenAPI, et tarbijad saaksid nende alusel arendada ilma koosolekuteta.

API-haldusel on endiselt oma roll. Lüüs, näiteks WSO2, võib paikneda liikme turvaserveri taga ja tegeleda selle liikme enda teenuste versioonihalduse, päringute piiramise ja arendajadokumentatsiooniga. Need kaks kihti täiendavad teineteist: andmevahetus juhib organisatsioonidevahelist usaldust, lüüs juhib iga API elukaart.

Lõpuks planeeri käitamist algusest peale. Sertifikaatide uuendamine, ajatempliteenuse kättesaadavus ja logide säilitamine on asjad, mis põhjustavad katkestusi teisel aastal. Kirjuta käsiraamatud ajal, mil disain on värskelt meeles, ja anna need meeskonnale, kes hakkab andmevahetust käitama.

Alusta väikselt

Andmevahetus ei pea käivituma kõigi organisatsioonidega korraga. Kahe või kolme liikme ja käputäie teenustega pilootprojekt tõendab usaldusahela, liitumisprotsessi ja käitusmudeli toimimist. Sealt edasi on kasv peamiselt administratiivne, ja just seda taristult soovidki.