A method of operating a computer system having a processor, a memory, a display, an input/output mechanism, an operating system and at least one client application program, one or more stub programs related to the client application, the method performed by the computer comprising the steps of:
- invoking a call on a program implementation code mechanism, the call invocation being made by a client application wherein the call includes a reference to the program implementation code mechanism;
- using a stub program code mechanism which is related to the client application to receive the call invocation, wherein the stub program code mechanism has no knowledge of a format required for marshaling data provided by the client application in connection with the call invocation;
- calling a first specific program code mechanism by the stub program code mechanism, requesting the first specific program code mechanism to provide a MarshalBuffer code mechanism that knows how to format data provided by the client application in connection with the call invocation;
- marshaling the data provided by the client application in connection with the call invocation, the marshaling being done by the stub program code mechanism using the MarshalBuffer code mechanism;
- and
- sending the call invocation to a server containing the program implementation code mechanism which is the target of the call.