Mobile applications are now developed upon a wide range of service development platforms, commonly referred to as middleware. However, the diversity of those available presents a problem for mobile client development. How can a single client implementation interoperate with heterogeneous service implementations?