ONC (Open Network Computing) RPC (Remote Procedure Call) is an open source RPC framework developed by Sun Microsystems. DCE (Distributed Computing Environment) is an architecture defined by the Open Software Foundation (OSF). Both technologies support client-server applications in heterogeneous distributed environments.
DCE RPC is different from ONC RPC in many ways. For example, DCE RPC does not limit the number of parameters on the call, whereas an ONC RPC call is limited to one input and one output parameter (but these may be structures that contain many fields, including pointers to other data).
Figure 5 shows how the two CICS® RPC implementations provide the same function.
You provide a definition of the client’s parameter list in the interface definition language (IDL) provided as a part of DCE RPC. The DCE IDL module maps the incoming parameters into a CICS communication area, so the communication area format is defined by the client’s parameter list.
CICS ONC RPC CICS programs can be written in any CICS-supported programming language, and the conversion from client format to communication area is done by the Decode function of the converter. With ONC RPC you get more flexibility, but you have more work to do.
CICS programs that are used as servers for DCE RPC clients can also be used as servers for ONC RPC clients. You need to write a Decode function that converts the incoming data structure into the predefined communication area, and converts the incoming data from C types to COBOL types.
DCE provides a high-level, coherent environment for developing and running applications on a distributed system. The DCE components fall into two categories: tools for developing distributed applications and services for running them. The tools, such as Remote Procedure Calls and Threads, assist in the development of an application. The services, like the Directory Service, Security Service, and Time Service, provide support in a distributed system that is analogous to the support an operating system provides in a centralized system.
DCE includes management tools for administering all of the DCE services and many aspects of the distributed environment itself.
DCE is oriented towards heterogeneous rather than homogeneous systems. The DCE architecture allows for different operating systems and hardware platforms. Using DCE, a process running on one computer can interoperate with a process on a second computer, even when the two computers have different hardware or operating systems.