Advanced Program to Program Communication

Advanced Program to Program Communication（Advanced "Program-to-Program" Communication、APPC、拡張プログラム間通信機能）とは、コンピュータネットワーク間の通信において、プログラム同士が対等なコミュニケーションができる通信プロトコルの1つである。
概要.
APPCはOSI参照モデルではアプリケーション層に位置し、携帯コンピュータやワークステーションから、ミッドレンジやメインフレームまでの異なったコンピュータ間の通信を可能にする。
APPCはIBMによってSystems Network Architecture(SNA)の一部として開発された。いくつかのAPIがCOBOLやREXXなどのプログラミング言語用に開発された。
APPC用のソフトウェアは、あるものはオペレーティングシステムの一部として、あるものは個別のソフトウェアパッケージとして、IBMやIBM以外の多数のオペレーティングシステムで使用できる。APPCはアプリケーションプログラムやネットワークの間の変換機能を提供する。あるコンピュータ上のアプリケーションがAPPCソフトウェアへ情報を渡すと、APPCはその情報を変換してLANアダプターカード（ネットワークカード）などのネットワークインタフェースに渡す。その情報はネットワークを経由して異なるコンピュータに辿り着き、そこではAPPCソフトウェアはネットワークインターフェースからその情報を受け取る。APPCはその情報を、元のフォーマットに変換し、対応するパートナーであるアプリケーションに渡す。
APPCはLU 6.2（ Logical unit type 6.2、論理ユニットタイプ 6.2）と関連する。LU6.2はAPPCの機能を持ったLUである。LU 6.2までのSNAはメインフレームを頂点とした階層的な管理構造であったが、APPC(LU 6.2)ではPeer to Peer通信を可能とした。
APPCは巨大な拡張であり、IBMのAS/400、OS/2、AIXなどのオペレーティングシステムが拡張された。マイクロソフトもまた、マイクロソフトのHost Integration ServerでSNAサポートを実装した。またIBMはCICS、DB2、CIM、WebSphere MQそしてMVS（現z/OS）などの主要なIBMソフトウェアにも実装した。
TCP/IPでは（IPスイートのプロトコルの多くは）、通信するプログラムの双方は明確な役割を持ち、例えば片方は常にクライアントで、片方は常にサーバーである。しかしAPPCでの通信パートナーは対等であり、例えば誰でも等しくサーバーにもクライアントにもなれる。その役割や、通信パートナーとの同時平行するセッションの番号は、特別なログモード（例えばIBMの「snasvcmg」）を持つ、「CNOS」(Change Number Of Session)と呼ばれるセッションにより調整される。データ通信は「データセッション」により行われ、例えばデータのブロック長やコーディングなど、そのログモードはVTAM管理者によって決定されることができる。
しかしTCP/IPが広く普及したため、APPCは主流とはならなかった。