Client-server computing in mobile environments (ACM computing surveys, 1999)