Robust mjukvara i 100 år

Defence Advanced Research Projects Agency (Darpa) i USA har sjösatt ett fyraårigt forskningsprogram som ska ta fram en mjukvarusystem som kan anpassa sig till förändringar utan omfattande omprogrammering och som kan överleva teknikförändringar under mer än 100 år.

Den amerikanska militären, som i mycket är beroende av väl fungerande mjukvarusystem och underliggande underhåll för nationell säkerhet, verkar uppleva samma frustration som vi andra, civila användare när det kommer till de periodiska teknikcykler av uppdateringar och uppgraderingarna av programvara. Förändringar som ofta kostar mycket tid och pengar.

Det här tänker Darpa råda bot på genom lanseringen av ett ambitiöst, fyraårigt forskningsprojekt döpt till Building Resource Adaptive Software Systems (BRASS). Projektet ska ta fram de grundläggande beräknings- och algoritmkrav som är nödvändiga för att de allt mer komplexa programvarusystemen och data ska förbli robusta och funktionella i över 100 år. BRASS ska förverkliga grundläggande framsteg inom utformningen och genomförandet av långlivade mjukvarusystem som dynamiskt kan anpassa sig till förändringar i de resurser de är beroende av och de miljöer där de verkar, som definieras av US Department of Defense technology research agency.

Darpa, som spelade en viktig roll i att definiera de uppföranderegler som ledde fram till utvecklingen av Internet, menar att för att nå dessa framsteg kommer det troligen att krävas utveckling av nya språkabstraktioner, formella metoder och resursmedvetna programanalyser för att upptäcka och specificera programtransformationer samt system för övervakning av förändringar i det omgivande digitala ekosystemet.

BRASS-programmet förväntas leda till betydande förbättringar i mjukvarors flexibilitet, pålitlighet och underhåll, vilket ska hjälpa till i utvecklingen av datorsystem som kan anpassa sig till progressiva driftsförhållanden utan behov av uppdateringar utifrån.

­Teknik utvecklas oundvikligen men väldigt ofta underminerar motsvarande förändringar i bibliotek, dataformat, protokoll, inmatningsegenskaper och komponentmodeller i en programvaras ekosystem hur applikationerna beter sig, säger Suresh Jagannathan, programchef hos DARPA. Oförmågan att sömlöst kunna anpassa sig till nya förhållanden undergräver produktiviteten, hämmar utvecklingen av cybersäkerhet i infrastrukturer och förhöjer den långsiktiga risken att tillgången till viktigt digitalt innehåll kommer att förloras eftersom den programvara som genererar och tolkar innehållet blir föråldrad.

Dagens applikationer exekveras på en programvarustack som består av många olika abstraktionslager och tillhandahåller olika tjänster och strukturer. Tillgången till dessa lager förmedlas genom olika typer av gränssnitt som normalt anges som sekundär dokumentation och som levereras tillsammans med applikationsprogramgränssnitt. Eftersom denna dokumentation vanligtvis är informellt definierad ger den bara en partiell, ofullständig förståelse av systemet som helhet och kräver därmed omfattande manuellt arbete och resonemang.

– Att försäkra sig om att applikationer fortsätter att fungera korrekt och effektivt i en föränderlig verksamhetsmiljö är en formidabel utmaning, säger Jagannathan.

– Underlåtenhet att svara på dessa förändringar kan resultera i tekniskt underlägsna och potentiellt sårbara system. Lika oroande är bristen på automatiserade uppgraderingsmekanismer för att omstrukturera och omvandla applikationer, höga underhållskostnader för programvara och tidigt föråldrade men annars funktionella och sunda programvaror.

Premisserna för hur BRASS ska verka är att starta med en ny och helt ren ”griffeltavla” i förhållningssättet till mjukvarudesign, komposition och anpassningar. Detta tillvägagångssätt syftar till att göra det möjligt för uttrycka och upptäcka nya typer av specifikationer, programanalyser och formella metoder som exakt fångar relationen mellan beräkningar och de resurser som de använder samt algoritmtransformationer som gör att tillämpningar kan anpassa sig till förändringar utan behov av omfattande engagemang av programmerare.

Comments are closed.