An interface between clients and services in a distributed computing
environment is described. Method gates may provide an interface to
remotely invoke functions of a service. A method gate may be generated
from an advertisement that may include definitions for one or more
messages for remotely invoking functions of the service. A client may
generate messages containing representations of method calls. The service
may invoke functions that correspond to the set of messages. A method
gate on the service may unmarshal the message and invoke the function.
The client may receive the results of the function directly.
Alternatively, the results may be stored, an advertisement to the results
may be provided, and a gate may be generated to access the results.
Message gates may perform the sending and receiving of the messages
between the client and service. In one embodiment, functions of the
service may be computer programming language (e.g. Java) methods. In one
embodiment, a message including a representation of a method call may be
generated when no actual method call was made. In one embodiment, a
method call may be transformed into messages that may be sent to the
service; the service may not know that the messages were generated from a
method call. In one embodiment, a service may transform messages
requesting functions into method calls; the client may not know that the
service is invoking methods to perform the functions.