company logo

Proxies

For a client to be able to contact an Ice object, the client must hold a proxy for the Ice object. A proxy is an artifact that is local to the client's address space; it represents the (possibly remote) Ice object for the client. A proxy acts as the local ambassador for an Ice object: when the client invokes an operation on the proxy, the Ice run time:

1. Locates the Ice object

2. Activates the Ice object's server if it is not running

3. Activates the Ice object within the server

4. Transmits any in-parameters to the Ice object

5. Waits for the operation to complete

6. Returns any out-parameters and the return value to the client (or throws an exception in case of an error)

A proxy encapsulates all the necessary information for this sequence of steps to take place. In particular, a proxy contains:

  • Addressing information that allows the client-side run time to contact the correct server
  • An object identity that identifies which particular object in the server is the target of a request
  • An optional facet identifier that determines which particular facet of an object the proxy refers to