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は主流とはならなかった。

関連項目 
通信プロトコル
プロトコルスタック
OSI参照モデル
Systems Network Architecture(SNA)
VTAM

外部リンク 
 IBM APPC - IBM RedBook

通信プロトコル
IBMのソフトウェア
長大な項目名