Runs in Application Layer Allows a Client to call a procedure to run on another Server Replaces a function calls with a “shim” that performs the job remotely, and then send it back once it finishes.