 |
remote procedural call |
Pizza deliveries are a wonderful thing. Anyone can pick up the telephone, make a call to his local
pizza parlour, and request the chefs to make a super-sized pizza with extra cheese and mouth-watering pepperoni. They drive to his house and deliver the fresh-from-the-oven results in thirty
minutes.
This pizza delivery isn't unlike a
remote procedural call, which extends the concept of distributed computing by allowing one
computer to execute a command in another computer. Typically, applications commonly make a
"procedural call" to a function — a software routine that performs an operation — in the same
application. With remote procedural calls, the application can invoke a function in another
application's process, whether it be on the same computer or another computer across the network
— provided it has the appropriate middleware to support it.
What makes a remote procedural call special is that it hides the process from the application,
making it a cinch for it to invoke function calls on other computers. Similarly, pizza delivery
orders across the phone don't require the customer to have an intricate knowledge of the phone
lines. He simply needs to pick up the phone and talk as he would talk if he were in the pizza
parlor.
A remote procedural call is made when the client application makes a
call to what appears to be a local function, according to (Burghart). The middleware takes the
call's parameters, packages, and sends them to another computer, where it is unpacked and
executed by the real function. When it is complete, the function's return values are packed up and
sent back to the original computer and its client application. See figure 1.
|
|
Fig. 1: Remote Procedural Call
|
 |
Remote procedural calls are used in brand-name architectures like Microsoft Distributed
Component Object Model (DCOM), the Open Group's Distributed Computing Environment
(DCE), and Common Object Request Broker Architecture (CORBA). CORBA provides RPC
capabilities in its architecture as well as a messenging environment which supports different
programming languages and platforms, according to (The Computer Language Co., Inc), whereas
RPC in other architectures support only one platform and language.
continued...
|