ONC and DCE concepts

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 1. Remote procedures provided for DCE RPC and ONC RPC
This diagram shows a COBOL CICS program and CICS ONC RPC within CICS Transaction Server, and an external DCE IDL module. A client call with C parms flows to the CICS ONC RPC and parameters then flow to the CICS COBOL program. A client call with C parms flows to the DCE IDL module and a COBOL request flows to the CICS program.

Figure 1 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.