|
The APPC/MVS callable services can be divided into five types as
shown in Figure 1. Each type is
explained in more detail following the figure.
Figure 1. Types of APPC/MVS Callable Services
- CPI Communications Calls
- Common Programming Interface (CPI) Communications calls allow
high-level language programs to communicate regardless of the system
on which they are running. High-level language programs use the CPI
Communications calls to establish conversations and pass data back
and forth. When programs in z/OS use these calls, the underlying
implementation may be different from another system, but the results
are equivalent.
For example, a distributed application written
in C could have part of the application on a workstation configured
for APPC and the other part on an z/OS system running APPC/MVS. The
two parts of the application could communicate using the same CPI
Communications calls, even though their underlying environments are
different. Programs that use only the CPI Communications calls can
be ported to many other systems.
The CPI Communications calls
use the SNA LU 6.2 architected verbs. Each communication call is
prefixed by the letters CM; for example, CMALLC (Allocate). For more
information, including languages supported, see z/OS MVS Programming: Writing Transaction Programs for APPC/MVS .
- APPC/MVS TP Conversation Calls
- The APPC/MVS TP conversation calls are the z/OS implementation
of the SNA LU 6.2 architected verbs and are prefixed by the letters
ATB. These conversation calls are similar to the CPI Communications
calls except that the z/OS versions take advantage of specific z/OS
functions. For example, the z/OS Send_Data call (ATBSEND) can send
data residing in a data space—something the CPI Communications Send
call cannot do.
Like the CPI Communications calls, the APPC/MVS
TP conversation calls can be issued from a high-level language such
as COBOL, C, PL/I, FORTRAN, and REXX, or from assembler language programs.
Unlike
the CPI Communications calls, programs issuing the z/OS calls are
not portable to other systems.
- APPC/MVS TP Advanced Calls
- The z/OS advanced TP calls provide unique, non-LU 6.2 architected
services to TPs running in z/OS. These calls provide specific z/OS
functions, such as the ability to extract information about communications
resources used by APPC/MVS transaction programs.
The advanced
calls can be issued from high-level languages other than REXX, and
from assembler language programs.
- APPC/MVS Allocate Queue Services Calls
- The APPC/MVS
allocate queue services calls allow a server address space on z/OS
to own and manage inbound allocate requests. Servers own allocate
requests by registering for them through the Register_For_Allocates
callable service.
Rather than directing such requests to a transaction
scheduler, APPC/MVS places allocate requests for which a server has
registered on a structure called an allocate queue. APPC/MVS queues
allocate requests on a first-in, first-out (FIFO) basis. Servers process
allocate requests by selecting them from allocate queues and performing
the requested function.
The allocate queue services, which
can be called from a high-level language such as COBOL, C, PL/I, FORTRAN,
and REXX, or from assembler language programs, are described in z/OS MVS Programming: Writing Servers for APPC/MVS.
The allocate queue services
calls are not based on the LU 6.2 architecture.
- APPC/MVS System Service Calls
- Another type of APPC/MVS callable service provides access to system
services not normally used by transaction programs. These services
are used by other z/OS components, subsystems, and transaction schedulers,
which run in supervisor state or PSW key 0-7. The system services
calls can be called from assembler and high-level languages other
than REXX, and are documented in z/OS MVS System Messages, Vol 3 (ASB-BPX).
The z/OS system service calls are not based
on the LU 6.2 architecture.
|