Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Remote procedure call
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Message passing== RPC is a request–response protocol. An RPC is initiated by the ''client'', which sends a request message to a known remote ''server'' to execute a specified procedure with supplied parameters. The remote server sends a response to the client, and the application continues its process. While the server is processing the call, the client is blocked (it waits until the server has finished processing before resuming execution), unless the client sends an asynchronous request to the server, such as an XMLHttpRequest. There are many variations and subtleties in various implementations, resulting in a variety of different (incompatible) RPC protocols. An important difference between remote procedure calls and local calls is that remote calls can fail because of unpredictable network problems. Also, callers generally must deal with such failures without knowing whether the remote procedure was actually invoked. Idempotent procedures (those that have no additional effects if called more than once) are easily handled, but enough difficulties remain that code to call remote procedures is often confined to carefully written low-level subsystems. ===Sequence of events=== # The client calls the client stub. The call is a local procedure call, with parameters pushed on to the stack in the normal way. # The client stub packs the parameters into a message and makes a system call to send the message. Packing the parameters is called marshalling. # The client's local operating system sends the message from the client machine to the server machine. # The local operating system on the server machine passes the incoming packets to the server stub. # The server stub unpacks the parameters from the message. Unpacking the parameters is called unmarshalling. # Finally, the server stub calls the server procedure. The reply traces the same steps in the reverse direction.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)