As network-enabled embedded devices and Java grow in their popularity, embe
dded system researchers start seeking ways to make these devices Java-enabl
ed. However, it is a challenge to apply Java technology to these devices du
e to their shortage of resources.
In this paper, we propose EJVM (Economic Java Virtual Machine), an economic
way to run Java programs on network-enabled and resource-limited embedded
devices. Espousing the architecture proposed by distributed JVM, we store a
ll Java codes on the server to reduce the storage needs of the client devic
es. In addition, we use two novel techniques to reduce the client-side memo
ry footprints: server-side class representation conversion and on-demand by
tecode loading. Finally, we maintain client-side caches and provide perform
ance evaluation on different caching policies. We implement EJVM by modifyi
ng a freely available JVM implementation, Kaffe. From the experiment result
s, we show that EJVM can reduce Java heap requirements by about 20-50 % and
achieve 90 % of the original performance. Copyright (C) 2001 John Wiley &
Sons, Ltd.