IBM Advanced Program-to-Program Communication
In computing, Advanced Program to Program Communication or APPC is a protocol which computer programs can use to communicate over a network. APPC is at the application layer in the OSI model, it enables communications between programs on different computers, from portables and workstations to midrange and host computers.
APPC was developed as a component of IBM's Systems Network Architecture or SNA. Several APIs were developed for programming languages such as COBOL or REXX.
APPC software is available for many different IBM and non-IBM operating systems, either as part of the operating system or as a separate software package. APPC serves as a translator between application programs and the network. When an application on your computer passes information to the APPC software, APPC translates the information and passes it to a network interface, such as a LAN adapter card. The information travels across the network to another computer, where the APPC software receives the information from the network interface. APPC translates the information back into its original format and passes it to the corresponding partner application.
APPC is linked with the term LU 6.2 ( Logical unit type 6.2 )
APPC is to a large extent limited to the IBM operating systems such z/OS (formerly MVS then OS/390), z/VM (formerly VM/CMS), IBM i (formerly OS/400), OS/2, AIX and z/VSE (formerly DOS/VSE). Microsoft also included SNA support in Microsoft's Host Integration Server. Major IBM software products have included support for APPC, including CICS, DB2, CIM and WebSphere MQ.
Unlike TCP/IP, in which both communication partners always possess a clear role (one is always server, and others always the client), the communication partners in APPC are equal, i.e. everyone can be both servers and clients equally. The role, and the number of the parallel sessions between the partners, is negotiated over so-called 'CNOS' sessions (Change Number Of Session) with a special log mode (e.g. at IBM, 'snasvcmg'). Communication of the data is made then by 'data sessions', their log modes can be determined in detail from the VTAM administrator (e.g. length of the data blocks, coding etc..).
It was also apparent to the architects of APPC that it could be used to provide operating system services on remote computers. A separate architecture group was formed to use APPC to enable programs on one computer to transparently use the data management services of remote computers. For each such use, an APPC session is created and used in a client-server fashion by the Conversational Communications Manager of Distributed Data Management Architecture (DDM). Message formats and protocols were defined for accessing and managing record-oriented files, stream-oriented files, relational databases (as the base architecture of Distributed Relational Database Architecture (DRDA)), and other services. A variety of DDM and DRDA products were implemented by IBM and other vendors.
With the wide success of TCP/IP, APPC has declined, although many IBM systems have translators (such as the iSeries' ANYNET) to allow sending APPC-formatted traffic using Ethernet for the physical connection.
APPC should not be confused with the similarly named APPN (Advanced Peer-to-Peer Networking). APPC manages communication between programs, operating at the application and presentation layers. By contrast, APPN manages communication between machines, including routing, and operates at the transport and network layers.