Advanced Program to Program Communications
APPC (engl. Advanced Program to Program Communications) ist ein Protokoll, über welches Computer-Programme über ein Netzwerk kommunizieren können.
APPC wurde als Bestandteil von IBMs Systems Network Architecture (SNA) entwickelt. Es entstanden dabei mehrere APIs, die zum großen Teil auch problemlos von Programmiersprachen wie COBOL oder REXX bedient werden konnten.
APPC ist verknüpft mit dem Begriff LU 6.2 (Logical Unit Type 6.2)
APPC ist weitgehend beschränkt auf die IBM-Rechnerwelt: Mainframe-Betriebssysteme, AS/400, OS/2, AIX; für Windows gibt es ein SNA-Serverprodukt von Microsoft. Innerhalb der IBM-Systemwelt wird APPC von jeder Systemsoftware unterstützt, z. B. auf dem Mainframe CICS, DB2, IMS und auch dem MVS selbst.
Im Gegensatz zu TCP/IP, bei dem beide Kommunikationspartner immer eine eindeutige Rolle besitzen (einer ist immer Server, der andere immer Client), sind bei APPC die Kommunikationspartner gleichberechtigt, d. h. jeder kann sowohl Server als auch Client gleichermaßen sein. Die Rolle wie auch die Zahl der parallelen Sessions zwischen den Partnern wird über sogenannte CNOS-Sessions (change number of sessions) mit einem speziellen Logmode (z. B. bei IBM der snasvcmg) ausgehandelt. Die Kommunikation der Daten selbst erfolgt dann über sogenannte Daten-Sessions, deren Logmodes vom VTAM-Administrator detailliert (z. B. Länge der Datenblöcke, Verschlüsselung etc.) bestimmt werden können.
Mit dem Siegeszug von TCP/IP befindet sich APPC auf dem Rückzug.