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

JES2

JES2 (Job Entry Subsystem 2) — это компонент операционной системы IBM z/OS (и её предшественников, начиная с OS/360), отвечающий за приём, обработку, планирование и вывод пакетных заданий (batch jobs) в среде мейнфреймов IBM. JES2 является подсистемой ввода-вывода заданий, которая управляет очередями, распределяет ресурсы и обеспечивает взаимодействие между пользователями, заданиями и операционной системой. В отличие от своего аналога JES3, JES2 использует децентрализованную архитектуру, где каждый процессор (в многопроцессорной системе) управляет собственными очередями.

История

JES2 был разработан компанией IBM в конце 1960-х годов как часть операционной системы OS/360. Первоначально он назывался HASP (Houston Automatic Spooling Priority System) — система автоматического спулинга и приоритетов, созданная в Хьюстонском университете для управления пакетными заданиями на мейнфреймах IBM System/360. В 1970-х годах HASP был интегрирован в OS/360 и переименован в JES2. С развитием операционных систем MVS, а затем z/OS, JES2 претерпел множество изменений, включая поддержку многопроцессорных систем, сетевых протоколов (например, NJE — Network Job Entry) и расширенные возможности управления заданиями.

В 1980-х годах JES2 стал стандартной подсистемой для большинства установок IBM, особенно в коммерческих и государственных организациях, где требовалась высокая надёжность и производительность. С переходом на 64-битную архитектуру z/Architecture в 2000-х годах, JES2 был адаптирован для работы с большими объёмами данных и современными требованиями безопасности.

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

JES2 функционирует как набор компонентов, работающих в адресном пространстве операционной системы. Основные компоненты включают:

  • Конвертер (Converter) — преобразует исходный код задания (JCL — Job Control Language) во внутренний формат, понятный системе.
  • Интерпретатор (Interpreter) — анализирует JCL и определяет шаги задания, ресурсы и зависимости.
  • Диспетчер (Dispatcher) — управляет очередями заданий, назначает приоритеты и распределяет процессорное время.
  • Спулер (Spooler) — управляет временным хранением входных и выходных данных на дисковых устройствах (спулинговых томах).
  • Менеджер вывода (Output Manager) — обрабатывает вывод результатов (печать, запись на ленту, передача по сети).

Процесс обработки задания

  1. Приём — задание поступает через JES2-интерфейс (например, через INTRDR — внутренний считыватель, или через сеть NJE). JES2 присваивает заданию уникальный идентификатор (JOB ID).
  2. Конвертация и интерпретация — JCL преобразуется во внутренние структуры, проверяется синтаксис и наличие необходимых ресурсов (файлов, устройств, программ).
  3. Планирование — задание помещается в очередь в соответствии с приоритетом, классом задания и доступностью ресурсов. JES2 поддерживает несколько классов (A-Z, 0-9) для управления приоритетами.
  4. Выполнение — задание передаётся диспетчеру операционной системы для выполнения шагов. JES2 отслеживает состояние задания, обрабатывает ошибки и управляет выводом.
  5. Вывод — результаты (журналы, отчёты, данные) сохраняются в спуле и могут быть напечатаны, отправлены на внешние устройства или переданы по сети.

Классификация и типы заданий

JES2 поддерживает различные типы заданий:

  • Пакетные задания (Batch Jobs) — стандартные задания, выполняемые без интерактивного взаимодействия. Они описываются с помощью JCL и могут включать программы на COBOL, PL/I, Assembler, C/C++ и других языках.
  • Стартовые задания (Started Tasks) — системные задания, которые запускаются автоматически при старте операционной системы или по команде оператора. Они не требуют JCL и управляются через JES2.
  • Транзакционные задания (Transaction Jobs) — задания, запускаемые через системы управления транзакциями (например, CICS или IMS). JES2 обрабатывает их как часть пакетного потока.
  • Сетевые задания (Network Jobs) — задания, поступающие через протокол NJE от других мейнфреймов или систем. NJE позволяет передавать задания, данные и вывод между узлами сети.

Основные возможности

JES2 предоставляет ряд функций, критически важных для эксплуатации мейнфреймов:

  • Управление очередямиподдержка множества очередей (входная, выходная, выполнения, удержания) с возможностью приоритезации и управления классами.
  • Спулингвременное хранение данных на дисках для оптимизации ввода-вывода. JES2 использует специальные спулинговые тома (SPOOL volumes), которые могут быть распределены по нескольким устройствам.
  • Поддержка многопроцессорных систем — в конфигурациях с несколькими процессорами (LPAR — Logical Partition) JES2 работает на каждом процессоре независимо, но может обмениваться данными через общую очередь.
  • Безопасность — интеграция с RACF (Resource Access Control Facility) и другими системами безопасности для контроля доступа к заданиям, данным и ресурсам.
  • Мониторинг и отчётность — JES2 генерирует журналы (JES2 Log) и отчёты о выполнении заданий, которые могут быть проанализированы администраторами.
  • Восстановление после сбоев — поддержка контрольных точек (checkpoints) для восстановления состояния очередей и заданий после аварийного завершения.

Применение

JES2 широко используется в организациях, эксплуатирующих мейнфреймы IBM, особенно в банковской сфере, страховании, государственном управлении, транспорте и телекоммуникациях. Основные области применения:

  • Обработка транзакций — пакетная обработка финансовых транзакций, расчётов, отчётов.
  • Управление данными — загрузка, выгрузка и преобразование больших объёмов данных (например, в системах DB2, IMS, VSAM).
  • Автоматизация задач — выполнение регулярных заданий (резервное копирование, обновление баз данных, генерация отчётов) по расписанию.
  • Интеграция с другими системами — через NJE JES2 может взаимодействовать с другими мейнфреймами, а также с системами на базе UNIX, Linux или Windows (например, через FTP или MQ Series).

Сравнение с JES3

JES2 и JES3 — две основные подсистемы ввода-вывода заданий для z/OS, различающиеся архитектурой:

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

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

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

  • JES2 является одной из старейших активно используемых подсистем в истории вычислительной техники — её код начал разрабатываться в 1960-х годах и до сих пор поддерживается IBM.
  • В JES2 используется собственный язык управления (JCL), который, несмотря на свою сложность, остаётся стандартом для пакетной обработки на мейнфреймах.
  • JES2 поддерживает до 999 классов заданий и до 999 приоритетов в каждом классе, что позволяет тонко настраивать планирование.
  • В 2020-х годах IBM продолжает выпускать обновления для JES2, включая поддержку облачных сред и контейнеризации (например, через z/OS Container Extensions).

Критика

Основные недостатки JES2 связаны с его сложностью и устаревшей архитектурой. Критики отмечают:

  • Сложность JCL — язык управления заданиями требует глубоких знаний и часто приводит к ошибкам при неправильном синтаксисе.
  • Ограниченная поддержка современных языков — JES2 изначально ориентирован на COBOL и Assembler, хотя современные версии поддерживают Java, Python и другие языки через z/OS UNIX System Services.
  • Зависимость от мейнфреймов — JES2 не может быть перенесён на другие платформы, что ограничивает его использование в гетерогенных средах.
  • Высокие требования к ресурсам — спулинг и управление очередями требуют значительных дисковых и процессорных ресурсов, особенно при большом количестве заданий.

Несмотря на критику, JES2 остаётся ключевым компонентом для тысяч организаций по всему миру, обеспечивая надёжную и предсказуемую обработку пакетных заданий.

Источники

  • IBM Corporation. z/OS JES2 Introduction. IBM Redbooks, 2021.
  • IBM Corporation. z/OS JES2 Commands. IBM Knowledge Center, 2023.
  • Gary R. McClain. MVS and JES2: A Guide for Programmers and System Administrators. McGraw-Hill, 1995.
  • John K. O’Brien. The JES2 Handbook: A Practical Guide to Job Entry Subsystem 2. IBM Press, 2008.
  • Материалы курса «IBM Mainframe: z/OS Fundamentals» (Учебный центр IBM, 2022).

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

На главную BFOmetr →