Static server objects are created once and persist across requests from multiple clients. Server objects usually can also be created dynamically by application server-based factories. Factory-based server objects are created, used and destroyed by a single client. Static server objects and factories remain available to clients until the application server that started the server object or factory is shut down by the system administrator. The information contained in an interface's TIDL file includes the names of methods that can be invoked on remote objects, the parameters required and returned by each method, and an indication of whether a method is expected to be invoked as part of a transaction.
Clients use instances of proxy classes to invoke methods on remote server objects.
When a client invokes a method locally on a proxy, the proxy passes the request to a server object that will actually perform the method. Then, when a client instantiates a client proxy object and invokes a local method, the proxy locates an appropriate server object, binds to the object and reissues the method request in the form of an Encina TRPC to the server. Client proxies remain bound to server objects for the lifetime of the client object that instantiated the proxy and all method calls made to the proxy will be processed by the same server object. Application server programs then instantiate objects of the derived class, which results in the server objects becoming available to clients. Server objects can also specify unique names so that clients can bind to an instance of a server object on a specific machine.