This paper proposes a mobile-agent-based middleware that benefits remote computer users who wish to mutually offer their desktop computing resource to other Internet group members while their computers are not being used. Key to this resource exchange grid is the use of mobile agents. Each agent represents a client user, carries his/her job requests, searches for resources available for the request, executes the job at suitable computers, and migrates it to others when the current ones have become unavailable for use. All the features of job migration will be encapsulated in a user program wrapper that is implemented on a Java layer between a mobile agent and the corresponding user program. The wrapper maintains the complete execution state of the user program, is carried by the mobile agent upon a job migration, and restores its user program at its destination. For this purpose, a user program is preprocessed with JavaCC and ANTLR to include check-pointing functions before its execution. These functions periodically save the execution state of a user program into its corresponding program wrapper, which can thus be carried by an agent smoothly.