Nov 16, 2010 - (12) United States Patent ... patent is extended or adjusted under 35 .... Patent. X. Apr. 22, 2014 é. Lip-:12 ten A. US 8,707,287 B2. Sheet 7 0f 39.
US008707287B2
(12) United States Patent
(10) Patent N0.: (45) Date of Patent:
Raundahl Gregersen et a]. (54) METHOD, COMPUTER PROGRAM
(75)
(58)
Apr. 22, 2014
Field of Classi?cation Search
PRODUCT, AND SYSTEM FOR
CPC .............. .. G06F 8/65; G06F 8/67; G06F 8/30
NON-BLOCKING DYNAMIC UPDATE OF STATICALLY TYPED CLASS-BASED OBJECT-ORIENTED SOFTWARE
USPC
........................................ .. 717/108,168,170
See application ?le for complete search history. (56)
References Cited
Inventors: Allan Raundahl Gregersen, Odense SO (DK); Michael Rasmussen, Odense M
U.S. PATENT DOCUMENTS
(DK); Bo Norregaard Jorgensen,
6,629,315 B1
Odense M (DK)
7,530,077 B2 2012/0254848 A1 *
(73) Assignee: Syddansk Universitet, Odense M (DK) (*)
US 8,707,287 B2
Notice:
U.S.C. 154(b) by 428 days. 13/130,524
(22)
Nov. 16, 2010
PCT Filed:
5/2009 Bhogal et a1. 10/2012
Robertson et al. .......... .. 7l7/l66
OTHER PUBLICATIONS
Subject to any disclaimer, the term of this patent is extended or adjusted under 35
(21) Appl. N0.:
9/2003 Naylor
Bialek, R., et a1., “Partitioning of Java Applications to Support Dynamic Updates,” Proceedings of the 11th Asia-Paci?c Software Engineering Conference, 2004, pp. 616-623.
(Continued) Primary Examiner * Anna Deng
(74) Attorney, Agent, 0rFirm * Houston & Associates, LLP
(86) PCT No.:
§ 371 (0X1)’ (2), (4) Date:
(87)
PCT/EP2010/067612
(57)
ABSTRACT
A method, computer program product, and system for non
Aug. 3, 2011
blocking dynamic update of statically-typed class-based obj ect-oriented software executing as byte-code on a virtual
PCT Pub. No.: WO2011/072970
machine within an actively running computer system is pro vided. A set of objects instantiated from an existing module or
PCT Pub. Date: Jun. 23, 2011
multiple modules (identi?able collections of application (65)
resources and class de?nitions in the form of byte-code rep resentations) is ready for execution on a virtual machine in an
Prior Publication Data US 2011/0283256A1
Nov. 17,2011
actively running computer system. New versions of one or more modules corresponding to those already loaded into the
actively running virtual machine are dynamically loaded into the virtual machine for the purpose of updating the running
Related US. Application Data
(60)
Provisional application No. 61/287,750, ?led on Dec.
software. The class de?nitions within the loaded modules are
18, 2009.
prepared for dynamic update by inserting byte-code that
(51)
Int. Cl.
between objects of a former version and the new version of a
(52)
G06F 9/44 vs. C].
enables; transparent state transfer and shared object identity
(2006.01)
class.
USPC .......................... .. 717/168; 717/108; 717/170
Load modi?ed c 255 1010 AN
37 Claims, 39 Drawing Sheets
US 8,707,287 B2 Page 2 (56)
References Cited
Sato, Y., et al., “Loosely-separated ‘Sister’ Namespaces in Java,”
OTHER PUBLICATIONS
Proceedings of the 19th European Conference on Object-Oriented Programming, Lecture Notes in Computer Science, vol. 3586, Springer-Verlag, 2005, pp. 49-70.
Buchi, M., et al., “Generic Wrappers,” Proceedings of the 14th Euro
Stanek, J ., et al., “Online Software Maintenance for Mission-Critical
pean Conference on Obj ect-Oriented programing, Lecture Notes in
Systems,” Proceedings of the 22nd International Conference on Soft ware Maintenance, IEEE Computer Society, 2006, pp. 93-103.
Computer Science, vol. 1850, Springer-Verlag, 2000, pp. 201-225. Chen, H., et al., “POLUS: A POwerful Live Updating System,”
Approach,” Proceedings of the 2009 ACM SIGPLAN conference on
Subramanian, S., et al., “Dynamic Software Updates: AVM-centric
Proceedings of the 29th International Conference on Software Engi
Programming language design and implementation, ACM SIGPLAN
neering, IEEE Computer Society, 2007, pp. 271-281. Dmitriev, M., “Safe Class and Data Evolution in Large and Long Lived Java Applications,” PhD thesis, Department of Computing Science, University of Glasgow, Scotland, 2001, 194 pages. Drossopoulou, S., et al., “What is Java Binary Compatibility?” Pro
Notices, vol. 44, No. 6, 2009, pp. 1-12. International Preliminary Report on Patentability issued Jun. 19, 2012 for International Application No. PCT/EP2010/067612, ?led Nov. 16, 2010. Raundahl Gregersen et al., “Towards a dynamic-update-enabled JV M,” Proceedings of the Workshop on AOP and Meta-Data for
ceedings of the 13th ACM SIGPLAN Conference on Object-Ori
Software Evolution (Jul. 6, 2009): 1-7. XP002631459. Raundahl Gregersen et al., “Module reload through dynamic
ented Programming, Systems, Languages, and Applications, 1998, pp. 341-361.
Gustavsson, J ., “Dynamic Updating of Computer ProgramsiPro posed Improvements to the JDrums Updating System,” Rise Publi cations, 2005, 6 pages.
updateiThe case of NetBeans,” Software and Maintenance and Reengineering, 2008. CSMR 2008. 12’h European Conference on,
USENIX 1998 Annual Technical Conference, USENIX Association,
IEEE, Piscataway, NJ, USA (Apr. 1, 2008); 23-32. XP031244865. Liang et al., “Dynamic class loading in the java virtual machine,” ACM Sigplan Notices, ACM Association for Computing Machinery New York, NY, US, vol. 33, No. 10 (Oct. 1, 1998): 36-44.
pp. 65-76.
XP000831202.
Malabarba, S., et al., “Runtime Support for Type-Safe Dynamic Java Classes,” Proceedings of the 14th European Conference on Object Oriented Programming, Lecture Notes in Computer Science, vol. 1850, Springer-Verlag, 2000, pp. 337-361. Orso, A., et al., “A Technique for Dynamic Updating of Java Soft
International Search Report (Form PCT/ISN210) for corresponding
Hjalmtysson, G., et al., “Dynamic C++ Classes,” Proceedings ofthe
International Application No. PCT/EP2010/067612 mailed Apr. 19, 201 1.
Written Opinion (Form PCT/ISN237) for corresponding Interna tional Application No. PCT/EP2010/067612.
ware,” Proceedings of the International Conference on Software
Maintenance, IEEE Computer Society, 2002, pp. 649-658.
* cited by examiner
US. Patent
Apr. 22, 2014
Sheet 2 0f 39
I
US 8,707,287 B2
I
43-1
:1 i
— — — >— — 4*
I:. .:.:.$ ____ _
331:1}
Cmnpanem depend em?
Companem at time n
ifj'i Jilin-H} i {lampanent M Y'i'me n+1 L T5} _____________i
Fig. 2
US. Patent
Apr. 22, 2014
Sheet 3 0f 39
US 8,707,287 B2
5'" 3*“, til-Er! Execute inurmai
4
"
"g 3113 {I
if:
'
*
.-
I“
a _ ~ c a _ n
[.1 1.. lieihoé Invocmma
from F to Eli-53}
Fig.3
'4
US. Patent
Apr. 22, 2014
Sheet 4 0f 39
Fig. 4
US 8,707,287 B2
US. Patent
Apr. 22, 2014
Sheet 5 0f 39
US 8,707,287 B2
US. Patent
Apr. 22, 2014
Sheet 6 0f 39
Start Egretem with i115th m entatiosn age-m
the "i’iftILiE-ti maciiwimetiaris?ai‘a a.
'
‘ '"‘ the:
if?sz '
instmmentatic-In ag m
i, get. 5:13 ir-cai'sizrap Eiiazsse‘s mamm Nation I'E'fEfEiWZE {1 2 ..:iC§E.a:sees}
i, trasnafam': bale-tam? cias 595'
i, Spawn mm isriuaii iriachine insiaime '
cuti?g with the: sicias-ses an
ciaaa path
5m
US 8,707,287 B2
US. Patent
Apr. 22, 2014
US 8,707,287 B2
Sheet 7 0f 39
magg- new?miiuie’s ciass iysadar
I.
é.
-1l
event Lip-:12 ten“willie A
'
medal a“
X.
tiiggse'red
ion-ate sggxe-c ai mad L..
and aim
the:
isC'nrremVeriimx 583d It! $31138
5.
-"" w
sum
gaffe-rm mmaisrs
mu 5 versil
:5 7-32-2152. aim-5:155
Era-t 5‘5:
FEE-S GBYCES
Fig. 7
m
Cl
US. Patent
Apr. 22, 2014
Sheet 8 0f 39
US 8,707,287 B2
{Class ,1 £51351 event x"? "l
grad
‘
Na: await he w he
:1 mas-
Tran afom': bytecaiie is make
:iiaE-E ugwj-aie 'e'nai?e-ci
‘Cemmm bytezacie transfcrmaiém {a em
,
finF‘iiane meii?saiwn ami
C Barres pQ-ndesnce Hasndiing
US. Patent
Apr. 22, 2014
US 8,707,287 B2
Sheet 9 0f 39
m Tana-farm the
\~,
"x
‘f‘ii'a-i‘ds "fast if and
Han-die bale-f class spa-Zia
‘r’es
tranefmma?ma
-
lass specie??? :4,““Zr/x“ “‘ -
-";
each ?aid m 133252 QC? save {raid in :B‘sotFieiE-zi'ajama
FOR each meihad m in Mass
‘r’
2 113-8
tram 253%
by? made Bf ?naihei}
13k
ere 33491328 PR1. enca“EH-Bi“.
N r,
in" class 155
US. Patent
Apr. 22, 2014
Sheet 10 0f 39
US 8,707,287 B2
----------------------“'T“\ WEE
\3 Moist-rap Hand 3 spa-maii ziass
l, 1%
Na, musi be sun .x‘e? sat.
" Wk
YES i
1 m3
YES
wise-it ?g’te-z to ?lter mat: :symi‘?eijc {raids and metth inssi?ed by the gx'esesr-ii inwmén-n fmm reg-aha retrieved by get?-ez?ared * maths-ti s
“ext. byiec-?de at a beginning a? math s-ci ta retum a 95519-5328 ?air} acszessm‘ swam that swim-mes
Yer
1m m etth i5
getEI-Eeciai-‘E 'Zieids cw gameaiazred -
Math-m 5 than?
ma
Add bytacade at the and of m at $106 to :ra Am the r-e-su? ci a
Aidd by“; anode
?it'ez?utlnae?ed?‘iamhera
to {hum 9x15 epficm at
m'ethad
m ?t im e
Fig. 9.2
?efd access made-i izas-e-J' cm
gene-fated ?eii-d guess; metimds
US. Patent
Apr. 22, 2014
Sheet 11 0139
~\
1111-1
1 1-52
33% 2E smE-téh 0-11
US 8,707,287 B2
-"“
US. Patent
Apr. 22, 2014
Sheet 12 0f 39
insert bytes n-de in the: itssgénnésng 9f the
I
I I I I I I I
I (“WI-“i I I I I I I
I
I E
IBIESTj—x?‘m re-t =. i r“- immiiii Elia-1y 1 238
witiim' ma?! 5 12-212: .‘~i m-iwatmamr
US 8,707,287 B2
US. Patent
Apr. 22, 2014
US 8,707,287 B2
Sheet 13 0f 39
The
sated
de maika-s suns
mse? fbyiemde in the ib?umwii '
afar} t0 the ates? “sis/mm a? the. executing 0 L.
the
THY: Gm ud
I.
\_‘...._......._..r................._....\......._.....................,...\...“..._,\\
Emsmate m'igsi n31 metina tam
.1
".
E xecati 1 *n
Fig. 9.5
.\~i|l!I:
US. Patent
Apr. 22, 2014
US 8,707,287 B2
Sheet 14 0f 39
awn“ HIKE-=31 1" F.
? i-Eii
Parse the
byte-c Ede ’35? the
FOR 93:51": ram-static ?aiid in 21359 GO aieaia?ysitezmiF'
'
1 L
'
are aieS-ystew'?e
1m
Ge
rate maths-:1 2
Lage? by update— e:18
HER each method m in 1:53:53
it
mm 35E E a" NOT
0
trim sin-rm WWe
? naii izei}
N r,
US. Patent
Apr. 22, 2014
US 8,707,287 B2
Sheet 15 0f 39
fin and nan-sit
.,
?aid in sy-stam 63-95
.x",
""‘Erfaié {laid get meivtihu? with signaiurp ' '
fir-W311. x
' .ct ane'r}
gesne-ra-te- hyteaode in math
15- read {raid
'