I am currently investigating how introspection can be used in conjunction with code and data migration techniques to improve an Internet service's ability to adapt to changing network and resource conditions. Many of today's Internet services, such as e-mail, perform poorly when the connection to the server is high latency or low bandwidth. We have also shown that tomorrow's Internet services, based on peer-to-peer technologies, exhibit this same sensitivity to changes in network conditions. This sensitivity is usually due to inefficient use of the network connection.
Code and data migration techniques can be used to decrease this sensitivity by placing frequently used data objects nearer to the client, and by sending code fragments to run on the server to avoid round trip times. We are investigating how introspection can be used to build models of user access, so the infrastructure can predict expected user performance when code and data migration is used. Based on these models, the infrastructure can then decide when to employ the various code and data migration techniques to optimize a given metric.