Открыть сервис

APPC

APPC — это протокол передачи данных с подтверждением приёма, используемый в компьютерных сетях и системах связи для обеспечения надёжной доставки сообщений между узлами. Аббревиатура APPC расшифровывается как Advanced Program-to-Program Communication (продвинутая межпрограммная связь). Протокол был разработан корпорацией IBM в 1980-х годах как часть архитектуры Systems Network Architecture (SNA) и предназначался для организации взаимодействия между приложениями, работающими на разных компьютерах в рамках одной сети. APPC обеспечивает синхронизацию, контроль ошибок и гарантированную доставку данных, что делает его пригодным для критически важных бизнес-приложений.

История

Протокол APPC был создан компанией IBM в середине 1980-х годов как развитие идей, заложенных в более ранних версиях SNA. Основной целью разработки было упрощение программирования сетевых приложений: вместо низкоуровневого управления сетевыми соединениями разработчикам предлагался высокоуровневый интерфейс, скрывающий детали передачи данных. APPC стал частью архитектуры SNA, которая доминировала в корпоративных сетях до распространения стека протоколов TCP/IP.

В 1980-е и 1990-е годы APPC широко применялся в мейнфреймах IBM (например, IBM System/370 и более поздние модели) и в системах на базе операционной системы OS/400 (позднее — IBM i). Протокол поддерживался также в операционных системах AIX, OS/2, Windows (через компонент SNA Server) и некоторых версиях UNIX. С развитием интернета и переходом на TCP/IP популярность APPC снизилась, однако он продолжал использоваться в унаследованных (legacy) системах, особенно в финансовом секторе и на предприятиях с большим парком мейнфреймов.

Архитектура и принцип работы

APPC относится к классу протоколов с установлением соединения (connection-oriented). Для передачи данных между двумя приложениями устанавливается логическое соединение — сессия. В рамках сессии данные передаются в виде блоков, называемых сообщениями или записями, с обязательным подтверждением получения (acknowledgement). Если подтверждение не получено в течение заданного тайм-аута, отправитель повторяет передачу.

Основные компоненты

  • LU (Logical Unit) — логический узел, представляющий приложение или терминал в сети SNA. В APPC используются два типа LU: LU 6.2 (специфичный для APPC) и более старые версии.
  • TP (Transaction Program) — прикладная программа, которая инициирует или принимает сессию. TP может быть как клиентом, так и сервером.
  • Session — логическое соединение между двумя LU, установленное для обмена данными.
  • Conversation — диалог между двумя TP в рамках одной сессии. Conversation может быть однонаправленным или двунаправленным.

Процесс передачи данных

  1. Инициализация: приложение-отправитель (TP) вызывает API-функцию для установления соединения с целевым LU. Система SNA резервирует ресурсы и создаёт сессию.
  2. Передача данных: данные делятся на блоки фиксированного или переменного размера. Каждый блок снабжается контрольной суммой и порядковым номером. Получатель отправляет подтверждение (ACK) после успешного приёма.
  3. Завершение: после передачи всех данных приложение инициирует разрыв сессии, освобождая ресурсы сети.

APPC поддерживает два режима передачи: синхронный (отправитель ждёт подтверждения перед отправкой следующего блока) и асинхронный (отправитель может передавать несколько блоков без ожидания, но с обязательным подтверждением в конце). Второй режим повышает пропускную способность, но требует более сложного управления буферами.

Классификация и версии

Протокол APPC существует в нескольких реализациях, различающихся по платформе и функциональности:

  • APPC для SNA — оригинальная версия, работающая исключительно в сетях SNA. Использует протоколы нижнего уровня: SDLC (синхронное управление линией данных) для последовательных соединений или Token Ring для локальных сетей.
  • APPC over TCP/IP — адаптация протокола для работы поверх стека TCP/IP. Позволяет использовать APPC в современных IP-сетях, сохраняя совместимость с унаследованными приложениями. Реализована, например, в IBM Communications Server.
  • APPC для Windows — компонент SNA Server (позднее — Host Integration Server) от Microsoft, обеспечивающий интеграцию Windows-приложений с мейнфреймами IBM через APPC.

Применение

APPC использовался в основном в корпоративных информационных системах, где требовалась высокая надёжность и гарантированная доставка данных. Основные области применения:

  • Финансовые системы: обработка транзакций в банках, биржевые операции, расчётные системы. Например, протокол применялся в системах SWIFT (до перехода на TCP/IP) и в некоторых платёжных шлюзах.
  • Управление производством: системы ERP (например, SAP R/3) на мейнфреймах IBM использовали APPC для обмена данными между модулями.
  • Резервирование и учёт: авиабилетные системы (например, Sabre) и системы бронирования отелей.
  • Унаследованные системы: многие предприятия до сих пор эксплуатируют приложения, написанные для APPC, особенно в странах с развитой банковской инфраструктурой на базе мейнфреймов.

Преимущества и недостатки

Преимущества

  • Надёжность: гарантированная доставка данных с подтверждением и повторной передачей при ошибках.
  • Синхронизация: протокол обеспечивает согласованность данных между двумя приложениями, что критично для транзакционных систем.
  • Высокоуровневый интерфейс: разработчикам не нужно управлять сетевыми соединениями на низком уровне — все детали скрыты в API.

Недостатки

  • Сложность настройки: APPC требует конфигурирования множества параметров (имена LU, профили сессий, режимы передачи), что увеличивает время внедрения.
  • Зависимость от SNA: оригинальная версия привязана к архитектуре SNA, которая устарела и не поддерживается в современных сетях без эмуляции.
  • Низкая производительность в сравнении с TCP/IP: из-за обязательных подтверждений и избыточности протокол менее эффективен для высокоскоростных каналов.
  • Ограниченная масштабируемость: в больших сетях управление сессиями APPC может создавать значительную нагрузку на центральные узлы.

Современное состояние

Начиная с 2000-х годов APPC постепенно вытесняется протоколами на основе TCP/IP, такими как HTTP, SOAP и REST, которые проще в реализации и не требуют специализированного оборудования. Тем не менее, APPC сохраняется в унаследованных системах, особенно в банковском секторе и на предприятиях, использующих мейнфреймы IBM. Для интеграции таких систем с современными приложениями применяются шлюзы и эмуляторы, например, IBM Communications Server или Microsoft Host Integration Server, которые позволяют APPC-приложениям работать поверх TCP/IP.

В России APPC использовался в корпоративных сетях крупных банков и промышленных предприятий, внедрявших системы IBM в 1990-е годы. С переходом на отечественное программное обеспечение и импортозамещением интерес к APPC снизился, однако некоторые унаследованные решения продолжают эксплуатироваться.

Интересные факты

  • APPC был одним из первых протоколов, реализовавших концепцию «удалённого вызова процедур» (RPC) на уровне приложений, хотя и не в чистом виде.
  • В документации IBM протокол часто назывался «APPC/PC» для персональных компьютеров и «APPC/MVS» для мейнфреймов.
  • Протокол поддерживал до 32 767 одновременных сессий на одном логическом узле, что было значительным показателем для своего времени.

Источники

  • IBM Systems Network Architecture: Technical Overview. IBM Corporation, 1992.
  • Martin, J. SNA: IBM's Networking Solution. Prentice Hall, 1987.
  • Microsoft Host Integration Server Documentation. Microsoft Corporation, 2005.
  • Таненбаум, Э. Компьютерные сети. 5-е издание. Питер, 2014.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →