Information Technology Reference
In-Depth Information
this results in a high overhead per operation (O) as the number of messages (M)
required to complete a request (N) is ( O ( M
N )) [90].
Synchronous RPC systems can generally be considered suitable 3 only for
applications that can be modelled as idempotent, that is they can safely execute
the same procedure more than once without any adverse effects. Probably the
best known example is Sun's Network File System (NFS) [99].
×
2.3.5
Binding
Binding refers to the process used to identity and address remote procedures.
Bindings are either performed statically, during compilation, or dynamically, at
runtime. Callees advertise their bindings, or location, in a naming service so that
callers are able to find them, based on appropriate search criteria [109].
In order to find the callee the caller needs to provide, depending on the
implementation, either the specific server process of the callee, the name of the
machine where the callee is located, or just the name of the procedure to be called
[90].
Attributes may be associated with bindings, for example a version number,
so that the caller may choose which specific instance to bind to. Once bound, the
remote procedure may be called.
2.3.6
Open Network Computing (ONC) Example
The following is an overview of the development of our simple distributed applica-
tion using Sun's Open Network Computing (ONC) system [98], a widely deployed
RPC implementation which was originally developed for Sun's NFS.
2.3.6.1
ONC IDL
The IDL used by ONC describes remote procedures, their arguments and return
values, associated version numbers and a unique program number identifier. To
implement our simple example, we firstly declare the remote procedure in ONC
IDL as follows:
program GETDATE_PROG {
version DETDATE_VERS {
string GETDATE(void)=1;
}=1;
} = 22855;
The above IDL fragment defines version .1 of a remote procedure called GET-
DATE, which has the parameter type void and returns the current date as a string.
3 Although reliable synchronous RPC systems do exist, they either require the programmer to
handle timeouts, retransmissions, and the receipt and sending of messages (removing much of
the advantage of using an RPC system) or rely on other mechanisms, such as replication, which
significantly increase complexity and have adverse effects on performance.
 
Search WWH ::




Custom Search