This paper investigates the use of programming language constructs to realize adaptive behavior in support of collaboration among users of wearable and handheld computers. A prototype language, Adaptive Java, contains primitives that permit programs to modify their own operation in a principled manner. In a case study, Adaptive Java was used to construct MetaSocket components, whose composition and behavior can be adapted to changing conditions during execution. MetaSockets were then integrated into Pavilion, a web-based collaboration framework, and experiments were conducted on a mobile computing testbed containing wearable, handheld, and laptop computer systems. Performance results demonstrate the utility of MetaSockets to improving the quality of interactive audio streams and reliable data transfers among collaborating users.
Philip K. McKinley, Seyed Masoud Sadjadi, Eric P.