Patent ID: 7958518

Claim:
A method in a computing system for facilitating interactions between a software program executing on the computing system and one or more software services external to the computing system, the method comprising: under control of the computing system, providing one or more service proxy objects that each represent a remote software service provided by a remote computing system; receiving indications of multiple invocations performed in a synchronous manner by a software program executing on the computing system, each invocation being of one of the service proxy objects so as to access capabilities of the software service represented by that service proxy object; and automatically responding to each of the multiple invocations by, determining a first manner of accessing the capabilities of the software service represented by the invoked service proxy object, the determined first manner indicating whether interactions with the represented software service are to be performed in a synchronous or asynchronous manner; determining a second manner of accessing the capabilities of the software service represented by the invoked service proxy object, the determined second manner being based on whether testing is being performed in such a manner that the interactions with the represented software service are to occur locally on the computing system without communicating with the remote computing system that provides the represented software service; accessing the capabilities of the software service represented by the invoked service proxy object in accordance with the determined first and second manners, the accessing of the capabilities being performed on behalf of the software program but in a manner such that the determined first and second manners used for the accessing are concealed from the software program.