Additional Topics > External Development Guide > Remote Procedure Calls > IDL and RPC

# IDL and RPC

Remote Procedure Calls (RPCs) allow one process (the client process) to have another process (the server process) execute a procedure call just as if the caller process had executed the procedure call in its own address space. Since the client and server are separate processes, they can reside on the same machine or on different machines. RPC libraries allow the creation of network applications without having to worry about underlying networking mechanisms.

IDL supports RPCs so that other applications can communicate with IDL. A library of C language routines is included to handle communication between client programs and the IDL server.

A startup file is executed only when a command line is present. Running an application using an IDL Remote Procedure Call server does not execute the startup file. See “Understanding When Startup Files are Not Executed” for details.

Note: Remote procedure calls are supported only on UNIX platforms.

The current implementation allows IDL to be run as an RPC server and your own program to be run as a client. IDL commands can be sent from your application to the IDL server, where they are executed. Variable structures can be defined in the client program and then sent to the IDL server for creation as IDL variables. Similarly, the values of variables in the IDL server session can be retrieved into the client process.

With the release of IDL version 5.0, IDL’s RPC functionality has been completely revised and an new API created. The new RPC interface mirrors the API used by callable IDL. See Compatibility with Older IDL Code for details.