Introduction to the RPC Server for IMS

The EntireX RPC Server for IMS allows standard RPC clients to communicate with RPC servers on the operating system z/OS running with IMS in BMP mode. It supports the programming languages COBOL, PL/I and C and can provide IMS-specific PCB pointers for access to IMS databases if needed.

This document covers the following topics:


IMS-specific PCB Pointers

graphics/intro_pcbPointers-ims.png

The RPC Server for IMS provides one worker thread. RPC requests are worked off inside the RPC server in the worker thread, which is controlled by a main thread. IMS-specific PCB pointers can be provided as parameters in the linkage section for COBOL and PL/I. They allow you to access the IMS PCB pointer IOPCB, for example to print data or to start an asynchronous transaction and to access IMS databases

IMS-specific PCB pointers are supported with the following programming languages:

Inbuilt Services

RPC Server for IMS provides the following services for ease-of-use:

Extractor Service

The Extractor Service is a prerequisite for remote extractions with the IDL Extractor for COBOL and IDL Extractor for PL/I. See Extractor Service for more information.

graphics/intro_inbuilt_extractor-ims.png

Deployment Service

The Deployment Service allows you to deploy server-side mapping files (Designer files with extension .svm) interactively using the Server Mapping Deployment Wizard. On the RPC server side, the server-side mapping files are stored in a server-side mapping container (VSAM file). See Server-side Mapping Files in the RPC Server and Deployment Service for configuration information.

graphics/intro_inbuilt_deployment-ims.png

Impersonation

graphics/intro_impersonation-ims.png

The RPC Server for IMS can be configured to execute the RPC request impersonated under the RPC client user ID. This means that for the request execution, the worker thread gets the identity of the RPC client. This is necessary when accessing (security) protected data sets, for example with the Extractor Service. The way authentication is carried out can be controlled by the RPC parameter impersonation.

  • For impersonation value AUTO, the RPC Server for IMS does not validate RPC passwords, so you have to make sure the RPC client is correctly authenticated, either by using a secure EntireX Broker (validation must be against the correct mainframe security repository where z/OS user IDs are defined) or with your own security implementation.

  • For impersonation value YES, the RPC Server for IMS uses the RPC user ID and RPC password sent by the calling RPC client for authentication and impersonation of the client. This means that the RPC server validates the RPC password or - if a long RPC password is sent - as a RACF password phrase.

The picture above shows the configuration impersonation=yes.

The lifetime of an impersonated task starts when an open request for an RPC conversation or a non-conversational RPC request is received. It ends when the RPC conversation stops (after a commit operation or timeout) or when the non-conversational RPC request has been performed.

Usage of Server Mapping Files

There are many situations where the RPC Server for IMS requires a server mapping file to correctly support special COBOL syntax such as REDEFINES, SIGN LEADING and OCCURS DEPENDING ON clauses, LEVEL-88 fields, etc.

Server mapping files contain COBOL-specific mapping information that is not included in the IDL file, but is needed to successfully call the COBOL server program.

graphics/intro_useSvm.png

The RPC server marshals the data in a two-step process: the RPC request coming from the RPC client (Step 1) is completed with COBOL-specific mapping information taken from the server mapping file (Step 2). In this way the COBOL server can be called as expected.

The server mapping files are retrieved as a result of the IDL Extractor for COBOL extraction process and the COBOL Wrapper if a COBOL server is generated. See When is a Server Mapping File Required?

There are server-side mapping files (Software AG Designer files with extension .svm) and client-side mapping files (Designer files with extension .cvm). See Server Mapping Files for COBOL and How to Set the Type of Server Mapping Files.

If you are using server-side mapping files, you need to customize the server-side mapping container with parameter svm. See Configuring the RPC Server.

Note:
Server mapping files are used for COBOL only.