A RemoteProcCall connector governs the interaction between SchedProcess or Process components performing remote procedure calls. The realization of this connector in the system at run-time is usually some message passing mechanism.
UniCon supports two different models of communication for RPC connections: the Mach InterProcess Communication (IPC) facility and the RPCGen remote procedure call facility. Both models use message passing as the underlying mechanism for transmitting data between processes.
Both of these models of communication are nearly identical. Both have a specification language in which the services exported by a server process are specified. Both have a compiler for the specification language that compiles the specifications of the services into "glue code." The glue code gets compiled and linked into both client and server processes; it facilitates the creation, passing, and decoding of messages using the arguments and return values of the routine calls. Lastly, both models make use of a "name server" in the run-time environment. The name server is an independent process running on the target machine that facilitates the message passing between clients and servers. Servers register their services with the name server, and clients use the name server to "look up" the services they need.
The system designer uses the IDLType property to specify the underlying model of communication for each RPC connection. For the Mach IPC facility, the system designer specifies "mach" as the value in the IDLType property. For the RPCGen facility, the designer specifies "rpcl":
The default value for the IDLType property is rpcl.
Subsequent specifications of the IDLType property in a single property list are reported as errors. The UniCon compiler uses the first of the duplicate IDLType properties it encounters.
ESTABLISH RTM-RemoteProc-Call WITH client.timeget AS caller server.timeget AS definer IDLTYPE (mach) END RTM-RemoteProc-Call
Author:
Last Modified: May 12, 1996