In a network including a client system in communication with a server system, a method of executing an application program comprised of a user-interface software component and a non-user-interface software component, the method comprising:
- (a) generating a plurality of new software components corresponding to the user-interface software component of the application program;
- (b) wrapping the user-interface software component with one of the new software components;
- (c) transmitting one of the new software components to the client system;
- (d) communicating with the new software component at the client system using a dynamically generated protocol when the user-interface software component is executed;
- and
- (e) communicating with the client system using a remote graphics protocol when the non-user-interface software component is executed.