Введение

Метод запуска программного обеспечения. Компьютеризированная пакетная обработка — это метод автоматического запуска программ, называемых заданиями, пакетами. Хотя пользователям необходимо предоставлять задания, для обработки пакета не требуется никакого дальнейшего взаимодействия с пользователем. Пакеты могут автоматически запускаться по расписанию, а также запускаться при наличии доступных компьютерных ресурсов.

История

Термин "пакетная обработка" берет свое начало в традиционной классификации методов производства как штучное производство (единичное производство), серийное производство (производство "серии" из нескольких изделий одновременно, один этап за раз) и массовое производство (поточное производство, все этапы процесса одновременно).

Ранняя история

Ранние компьютеры могли выполнять только одну программу за раз. Каждый пользователь имел исключительный контроль над машиной в течение запланированного времени. Они приходили к компьютеру с программой и данными, часто на перфокартах и магнитной или бумажной ленте, загружали свою программу, запускали и отлаживали её, а затем забирали результаты. По мере увеличения скорости компьютеров время на настройку и завершение работы стало занимать всё большую долю доступного вычислительного времени. Для обработки серии, или "пакета", программ, часто подготовленных на магнитной ленте вне очереди, были разработаны программы, называемые мониторами – предшественники операционных систем. Монитор загружался в компьютер и выполнял первую задачу из пакета. По окончании задачи он возвращал управление и загружал следующую, пока пакет не был завершён. Результаты обработки пакета часто записывались на магнитную ленту и печатались или пробивались на перфокарты вне очереди. Примерами мониторов были система IBM Fortran Monitor System, SOS (Общая операционная система) и, наконец, IBSYS для систем IBM 709x в 1960 году.

Системы третьего поколения

Системы, способные к мультипрограммированию, начали появляться в 1960-х годах. Вместо последовательного выполнения одной пакетной задачи, эти системы могут одновременно выполнять несколько пакетных программ, чтобы максимально загрузить систему. Одна или несколько программ могут ожидать ввода, одна активно выполняться на ЦП, а другие генерировать вывод. Вместо пакетного ввода-вывода, программы, называемые спулерами, считывают задания с карт, дисков или удаленных терминалов и помещают их в очередь заданий для выполнения. Чтобы предотвратить взаимные блокировки, планировщику заданий необходимо знать требования каждой задачи к ресурсам – объём памяти, магнитные ленты, подключаемые диски и т.д. Поэтому для структурированного предоставления этой информации были разработаны различные скриптовые языки. Наиболее известным из них, вероятно, является язык управления заданиями (JCL) компании IBM. Планировщики заданий выбирают задачи для выполнения на основе различных критериев, включая приоритет и размер памяти. Удалённый пакет – это процедура отправки пакетных заданий с удалённых терминалов, часто оснащённых считывателем перфокарт и строчным принтером. Иногда асимметричная мультипроцессорность используется для организации спулинга ввода-вывода для одного или нескольких больших компьютеров с использованием подключенной более компактной и недорогой системы, как, например, в IBM System/360 Attached Support Processor.

Дальнейшая история

Первая универсальная система разделения времени, Compatible Time-Sharing System (CTSS), была совместима с пакетной обработкой. Это облегчило переход от пакетной обработки к интерактивным вычислениям. Начиная с конца 1960-х годов, интерактивные вычисления, например, через текстовые интерфейсы компьютерных терминалов (как в оболочках Unix или циклах "read-eval-print"), а позднее и графические пользовательские интерфейсы, стали широко распространены. Неинтерактивные вычисления, как отдельные задачи, такие как компиляция, так и обработка нескольких элементов пакетами, ретроспективно стали называться пакетной обработкой, и термин "пакетная задача" (в раннем использовании часто "пакет задач") стал общеупотребимым. Раннее использование особенно часто встречается в Мичиганском университете, в связи с Мичиганской терминальной системой (MTS). Хотя разделение времени уже существовало, его использование было недостаточно надежным для корпоративной обработки данных; все это не имело отношения к более раннему оборудованию для работы с перфокартами, которое обслуживалось вручную.

Продолжается

Неинтерактивные вычисления остаются широко распространенными в вычислительной технике, как для общей обработки данных, так и для системных задач обслуживания (с использованием системного программного обеспечения). Программа высокого уровня (выполняющая несколько программ с некоторой дополнительной связующей логикой) сегодня чаще всего называется скриптом и пишется на скриптовых языках, особенно на shell-скриптах для системных задач; в IBM PC DOS и MS DOS это вместо этого известно как пакетный файл. Это относится к компьютерам на базе UNIX, Microsoft Windows, macOS (основанной на ядре BSD Unix) и даже смартфонам. Запущенный скрипт, особенно выполняемый из интерактивной сессии входа в систему, часто называют заданием, но этот термин используется весьма неоднозначно. "В системах PC и UNIX нет прямого аналога пакетной обработки z/OS. Пакетные задания обычно выполняются по расписанию или по мере необходимости. Ближайшим сравнением, пожалуй, являются процессы, запускаемые командами at или cron в UNIX, хотя различия существенны."

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

Пакетная обработка по-прежнему критически важна для большинства организаций, во многом потому, что многие распространенные бизнес-процессы хорошо поддаются пакетной обработке. Хотя онлайн-системы также могут функционировать, когда ручное вмешательство не требуется, они обычно не оптимизированы для выполнения больших объемов повторяющихся задач. Поэтому даже новые системы обычно содержат одно или несколько приложений для обновления информации в конце дня, генерации отчетов, печати документов и других неинтерактивных задач, которые должны быть надежно выполнены в установленные сроки. Некоторые приложения подходят для потоковой обработки, а именно те, которые требуют данных только из одного источника одновременно (например, не для вычисления итогов): запуск следующего шага для каждого источника данных сразу после завершения предыдущего. В этом случае потоковая обработка снижает задержку для отдельных источников данных, позволяя им завершаться без ожидания окончания обработки всей партии. Однако многие приложения требуют данных из всех записей, особенно для вычислений, таких как итоговые суммы. В этом случае вся партия должна быть завершена, прежде чем можно будет получить полезный результат: частичные результаты непригодны для использования. Современные пакетные приложения используют современные пакетные фреймворки, такие как Jem The Bee, Spring Batch или реализации JSR 352, написанные на Java, а также другие фреймворки для других языков программирования, чтобы обеспечить отказоустойчивость и масштабируемость, необходимые для обработки больших объемов данных. Для обеспечения высокой скорости обработки пакетные приложения часто интегрируются с решениями для распределенных вычислений, чтобы разделить пакетную задачу на большое количество процессоров, хотя это сопряжено со значительными сложностями в программировании. Обработка больших объемов данных в пакетном режиме также предъявляет особенно высокие требования к архитектуре систем и приложений. Архитектуры, характеризующиеся высокой производительностью ввода-вывода и вертикальной масштабируемостью, включая современные мэйнфреймы, как правило, обеспечивают лучшую производительность пакетной обработки, чем альтернативные решения. Языки сценариев стали популярными по мере их развития вместе с пакетной обработкой.

Окно партии

Бачковое окно – это "период сниженной онлайн-активности", когда компьютерная система может выполнять пакетные задания без помех от интерактивных онлайн-систем или с минимальными помехами от них. Операции конца дня (EOD) в банке требуют применения процедуры переключения, при которой транзакции и данные прекращают обрабатываться за текущий день ("вклады, сделанные после 15:00, будут обработаны на следующий день"). С расширением требований к бесперебойной работе онлайн-систем для поддержки глобализации, Интернета и других бизнес-задач, бачковое окно сокращалось, и всё большее внимание уделялось методам, обеспечивающим максимальное время доступности онлайн-данных.

Размер партии

Размер партии определяет количество рабочих единиц, обрабатываемых за одну операцию пакетной обработки. Примеры: количество строк из файла для загрузки в базу данных перед фиксацией транзакции, количество сообщений для извлечения из очереди, количество запросов для отправки в одном пакете данных.

Обычное использование процессов серийной обработки

Эффективное пакетное обновление баз данных и автоматизированная обработка транзакций, в отличие от интерактивных приложений онлайн-обработки транзакций (OLTP). Этап извлечения, преобразования и загрузки (ETL) при наполнении хранилищ данных в большинстве реализаций является по своей сути пакетным процессом. Выполнение массовых операций с цифровыми изображениями, таких как изменение размера, конвертация, добавление водяных знаков или иное редактирование группы файлов изображений. Преобразование компьютерных файлов из одного формата в другой. Например, пакетная задача может преобразовывать проприетарные и устаревшие файлы в общепринятые стандартные форматы для запросов и отображения конечными пользователями. Обучение моделей машинного обучения. Например, веб-сайт электронной коммерции может обрабатывать транзакции клиентов ежечасно, чтобы обновить модель, генерирующую рекомендации по сопутствующим товарам, с целью экономии вычислительных ресурсов.

Примечательные среды планирования и выполнения партий

Операционная система или платформа IBM z/OS, вероятно, обладает наиболее усовершенствованным и развитым набором средств пакетной обработки благодаря своим истокам, долгой истории и непрерывному развитию. Сегодня такие системы обычно поддерживают сотни и даже тысячи одновременных онлайн- и пакетных заданий в рамках единого образа операционной системы. Технологии, способствующие одновременной пакетной и онлайн-обработке, включают язык управления заданиями (JCL), скриптовые языки, такие как REXX, подсистему ввода заданий (JES2 и JES3), менеджер рабочей нагрузки (WLM), менеджер автоматического перезапуска (ARM), службы восстановления ресурсов (RRS), совместное использование данных IBM Db2, Parallel Sysplex, уникальные оптимизации производительности, такие как HiperDispatch, архитектуру каналов ввода-вывода и многие другие. Программы Unix cron, at и batch (в настоящее время batch является вариантом at) позволяют осуществлять сложное планирование заданий. В Windows имеется планировщик заданий. Большинство высокопроизводительных вычислительных кластеров используют пакетную обработку для максимального использования ресурсов кластера.