To the client, the object on the server appears as if it resides in the client program. This is accomplished by using a client-side proxy (stub) object. The proxy object has the same interface as the server-side object it represents, but does not directly implement the object's methods. Instead, the proxy object translates a method invocation into a format that is communicated from the client to the server using their respective ORB infrastructures. The server finds the target servant object, which executes the actual method implementation.