Extending NetBeansTM with Dynamic Update of Active Modules

Allan Raundahl Gregersen

Research output: ThesisPh.D. thesis

Abstract

At kunne ændre et programs adfærd uden at afbryde afviklingen af det pågældende program er efterhånden blevet meget vigtigt i nutidens softwareudvikling. Ikke alene kan systemudviklere have gavn af sådanne dynamiske opdateringer under udviklingen af nye softwareløsninger, hvor systemets kørende tilstand kan bibeholdes, men i høj grad også efter systemets ibrugtagen hvor en dynamisk opdatering helt vil erstatte den traditionelle tilgang til opdateringer som indbefatter en komplet genstart af softwaren. I denne afhandling beskriver vi hvordan vores dynamiske opdateringsmekanisme, Javeleon formår at tilføre transparente dynamiske opdateringer til kørende Java-applikationer med garanti for både type- og tråd-sikkerhed. En innovativ egenskab ved vores mekanisme er at Javeleon understøtter fuld re-definition af Java klasser, dermed også inkluderende understøttelse af ændringer i nedarvningshierarkiet for kørende klasser og deres instanser.  Vores mekanisme baserer sig på et letvægts runtime-system, som bliver automatisk tilført til den underliggende applikation via bytecode modifikationer på load-time. Vi viser at vores mekanisme kan bibringe de ønskede opdateringsegenskaber til ”rich client” udvikling ved at integrere det med NetBeans rich client Platform. Målinger af Javeleons ydeevne viser at køretidsomkostningerne for at understøtte dynamisk opdatering bidrager minimalt til den samlede køretid. Ifølge vores kendskab er der ingen tidligere mekanismer til dynamisk opdatering der opnår den samme kombination af lavt overhead, høj fleksibilitet samt en stor gennemsigtighed for programmørerne.
Original languageEnglish
Supervisors/Advisors
  • Jørgensen, Bo Nørregaard, Principal supervisor
Place of PublicationOdense
Publisher
Publication statusPublished - 2010

Cite this