Introduction to the COBOL Wrapper

EntireX COBOL Wrapper provides access to RPC-based components from COBOL applications. It enables you to develop both client and server applications.

This document covers the following topics:


Description

The COBOL Wrapper provides access to RPC servers for COBOL client applications and access to COBOL servers for any RPC client. The COBOL Wrapper generation tools of the Designer take as input a Software AG IDL file, which describes the interface of the RPC, and generate COBOL sources that implement the functions and data types of the interface.

graphics/cobWrapper_overview.png

The generated functions can be compiled with the COBOL compiler of your target platform.

The COBOL Wrapper works as follows:

  • COBOL code is generated from the Software AG IDL file.

  • Additionally for the client side, and depending on your target operating system and environment (e.g. Batch, CICS or IMS), a generic RPC services module is generated (see below).

  • If required for the server side, a so-called server mapping file is created. A server mapping file is a Designer file with extension .cvm. See Server Mapping Files for COBOL.

  • The Software AG IDL Compiler and an appropriate template are used for the COBOL code generation.

Generic RPC Services Module

In order to minimize the amount of code generated for a specific IDL file, all service-type functionality that is not specific to a given IDL file required by the client interface object is generated in a generic RPC services module.

The generic RPC services module is used by RPC clients and contains the call to the broker stub, as well as other functions needed for RPC communication where an interface object is not needed, such as

  • broker logon and logoff

  • conversational support

  • connecting RPC clients to RPC servers via the broker

  • etc.

For more information, see Generation and Usage of Generic RPC Service Module COBSRVI.

COBOL Client Applications

For a given IDL file, the Software AG IDL Compiler and a COBOL code generation template for clients are used to generate client interface objects and copybooks. See Reslults for RPC Client under Select an IDL File and Generate RPC Client or RPC Server. The source code generated by the COBOL Wrapper can be compiled with your target COBOL compiler. Application developers use the generated generic RPC service module, the client interface object(s) and the copybooks to write COBOL applications that access RPC servers.

graphics/intro_client.png

For more information, see Using the COBOL Wrapper for the Client Side.

COBOL Server Application

The Software AG IDL Compiler and a COBOL code generation template for servers are used to generate a server (skeleton) for a specific IDL. Additionally, depending on the IDL data types and whether IDL program names are customized, a so-called server mapping file is created (Designer file with extension .cvm).; See When is a Server Mapping File Required? If a server mapping file is created, you need to rebuild all RPC clients communicating with this RPC server program, see Using the COBOL Wrapper for the Server Side.

Application developers use the generated server (skeleton) to write their own server code for each program in the IDL. The source code is compiled and linked with your target COBOL compiler.

graphics/intro_server.png

COBOL Server Interface Types

Depending on your requirements and generation settings, the COBOL Wrapper generates a server skeleton with one of the following interface types:

CICS with DFHCOMMAREA Calling Convention

CICS programs using the standard DFHCOMMAREA for parameter passing.

graphics/intro_interfaces_dfh.png

Technically, the generated COBOL server skeleton contains

  • in the DFHCOMMAREA, the parameter structure

See Server Interface Types for more information on how to create COBOL servers with this interface type.

CICS with Channel Container Calling Convention

Channels and containers are IBM's approach to access more than 31 KB of data in CICS. There is no need for coding any channel container statements because all this is generated. Thus the programmer focus can be on the application logic.

graphics/intro_interfaces_channel.png

Technically, the generated COBOL server skeleton contains

  • container layouts in the linkage section

  • EXEC CICS CONTAINER statements for accessing the container on input and output

See Server Interface Types for more information on how to create COBOL servers with this interface type.

CICS with DFHCOMMAREA Large Buffer Interface

This type of program has a defined DFHCOMMAREA interface to access more than 31 KB of data in CICS. The interface is the same as the webMethods WMTLSRVR interface. This enables customers to use an easy and simple interface type to access more than 31 KB of data in CICS.

graphics/intro_interfaces_large.png

Technically,

  • the generated server skeleton contains in the DFHCOMMAREA layout a pointer to a large buffer

  • the parameter structure in the linkage section is accessed using the COBOL SET ADDRESS statement, using the large buffer pointer

See Server Interface Types for more information on how to create COBOL servers with this interface type.

Batch with Standard Linkage Calling Convention

Standard call interfaces with a given number of parameters are supported. Every parameter addresses a fixed COBOL structure.

graphics/interface_batch.png

Technically, the generated COBOL server skeleton contains

  • a parameter list PROCEDURE DIVISION USING PARM1 PARM2 ... PARMn

  • the parameters in the linkage section as COBOL data items on level 1

See Server Interface Types for more information on how to create COBOL servers with this interface type.

IMS BMP with Standard Linkage Calling Convention

IMS batch message processing programs (BMP) with PCB parameters are directly supported.

graphics/interface_ims.png

Technically, the generated COBOL server skeleton contains

  • IMS-specific PCB pointers within a parameter list.

See Server Interface Types for more information on how to create COBOL servers with this interface type.

Compatibility between COBOL Interface Types and RPC Server

To call your server program successfully, the target RPC runtime component used must support the interface type. The table below gives an overview of possible combinations of an interface type and RPC server.

Interface Type of your Server Program z/OS UNIX/Windows IBM i BS2000
CICS Batch IMS CICS ECI CICS Socket Listener IMS Connect AS/400 Batch
CICS with DFHCOMMAREA Calling Convention x     x x      
CICS with DFHCOMMAREA Large Buffer Interface x       x      
CICS with Channel Container Calling Convention x       x      
Batch with Standard Linkage Calling Convention   x x       x x
IMS BMP with Standard Linkage Calling Convention     x          
IMS MPP Message Interface (IMS Connect)           x    
COBOL Converter                

Compatibility between COBOL Interface Types and EntireX Adapter Connection Types

The table below gives an overview of COBOL interface types and EntireX Adapter connection types.

Interface Type of your Server Program EntireX Adapter Connection Type Note
CICS with DFHCOMMAREA Calling Convention CICS ECI Connection or
CICS Socket Listener Connection
 
CICS with DFHCOMMAREA Large Buffer Interface CICS Socket Listener Connection  
CICS with Channel Container Calling Convention CICS Socket Listener Connection  
Batch with Standard Linkage Calling Convention AS/400 Connection To call your server program on a platform other than IBM i, use an RPC Connection or Direct RPC Connection to an appropriate RPC Server for Batch (z/OS | BS2000).
IMS BMP with Standard Linkage Calling Convention RPC Connection or
Direct RPC Connection
Use the RPC Server for IMS as RPC server.
IMS MPP Message Interface (IMS Connect) IMS Connect Connection  
COBOL Converter COBOL Converter Connection