Диспетчер и рабочие процессы
Диспетчер и рабочие процессы
Исполняющая система R/3 следит за многими функциями — такими, как управление памятью, управление полномочиями и т. д., то есть тем, что обычно осуществляет операционная система. Но система SAP сама осуществляет эти функции, чтобы обеспечить мобильность и контроль над производительностью системы. Исполняющая система R/3 написана на языке C/C++, в то время как SAP 4.0 и более поздние версии модулей приложений SAP были написаны на АВАР или АВАР/4.
Сервер приложений состоит из диспетчера и нескольких рабочих процессов. Исполняющая система R/3 работает как группа сотрудничающих параллельных процессов. Диспетчер — это процесс, который выступает в роли системы мониторинга транзакций; он назначает задачи для других процессов, координирует и контролирует их исполнение. Каждый режим работы в SAP имеет своего диспетчера, который, в свою очередь, может управлять многими рабочими процессами. Диспетчер обеспечивает оптимизацию и сбалансированность нагрузки системы, причем сбалансированность нагрузки поддерживается с помощью обработчика запросов, получающего запрос на доступ от презентационной компоненты. На рис. 7.1 схематически представлены диспетчер и рабочие процессы.
Рис. 7.1. Диспетчер SAP и рабочие процессы.
Например, диспетчер оптимизирует взаимодействие между уровнем презентаций и уровнем приложений. После того, как диспетчер получает данные, введенные пользователем, он ставит этот запрос в очередь на обработку и назначает для этого свободный в данное время рабочий процесс соответствующего типа, причем сначала обрабатываются запросы, которые поступили раньше. После того, как обработка данных окончена, результаты отправляются в соответствующий экран, а рабочий процесс освобождается для обработки следующего запроса в очереди. Вся коммуникация между рабочими процессами и другими системами, такими, как графический интерфейс SAP GUI, упоминаемый в этой главе, а также коммуникация между программами, осуществляется через диспетчера.
Каждый рабочий процесс состоит из обработчика задач, который по требованию активирует процессор АВАР/4, интерпретатор диалога или интерфейс для баз данных. Он также отвечает за загрузку и очистку информации о пользователе в начале и в конце каждой стадии диалога; это действие называется «развертка» (roll-in) и «свертка» (roll-out) соответственно.
Когда рабочему процессу нужны данные, находящиеся на различных стадиях диалога с пользователем, эти данные сохраняются в кэше (области памяти, доступной для разных программ). В версиях, предшествующих SAP 3.0, где для обращения к памяти рабочего процесса использовался указатель на память вместо копирования памяти, рабочие процессы имели лишь два типа кэша: «область развертки» (roll area) и «страничная область» (paging area). Область развертки сохраняла информацию о пользователе и контролировала такую информацию, как права доступа к данным на всем протяжении диалога с пользователем, в то время как страничная область содержала копии данных, имеющих отношение к приложениям, например, внутренние базы данных.
Существует несколько типов рабочих процессов. Есть процессы для обработки диалога с пользователем, для записи измененных документов, для управления распечаткой документов и т. д. Количество типов процессов, размер кэша и прочее можно изменить, настроив параметры профиля для соответствующего режима работы в SAP.
Диалоговый процесс
Учитывая, что вся работа системы SAP основана на взаимодействии с пользователем, можно сказать, что диалоговые процессы, которые контролируют все аспекты взаимодействия пользователя и системы, имеют огромное значение.
Диалоговый процесс выступает в качестве функции, доступной многим пользователям одновременно, которую предоставляет операционная система. Диалоговый процесс выполняет лишь одну динамическую программу за один раз, после чего переключается на следующий диалоговый запрос от любого другого пользователя. Таким образом достигается значительная экономия ресурсов системы.
Сбалансированность нагрузки, необходимая для успешной работы диалогового процесса с несколькими пользователями, обеспечивается обработчиком запросов. Как только пользователь запрашивает доступ к серверу приложений, презентационная компонента переадресует запрос к соответствующему обработчику запросов. Сервер запросов сверяется с базой данных занятости серверов приложений, и переадресует запрос на доступ к тому серверу приложений, который менее всего загружен.
Пакетный процесс
Пакетный процесс — важная часть ежедневных операций в любой компании. Особенно он полезен при работе с программами, обрабатывающими данные на протяжении длительного времени. Таким программам можно назначить подходящее время для работы — днем или ночью. В фоновой обработке данных диспетчер назначает один пакетный процесс для одной фоновой задачи, который выполняет задачу до конца. Это в корне отличается от диалоговой обработки данных, когда диспетчер каждый раз назначает новую LUW для следующего свободного диалогового процесса.
Для обработки пакетных или фоновых задач обычно используются те же программы, что и для синхронной обработки данных в режиме он-лайн. Управляет пакетными процессами и назначает время для их исполнения Центральная управляющая система (CCMS), которую мы рассмотрим в соответствующем разделе этой главы.
Процесс обновления
Транзакция SAP может добавить или изменить данные в базе данных двумя способами:
• Синхронно, то есть напрямую, в режиме реального времени
• Асинхронно, то есть не напрямую.
При прямой записи данных в базу данных, эту операцию осуществляет диалоговый рабочий процесс. При асинхронной записи, онлайновая фаза (диалог с пользователем) и фаза обновления данных осуществляются по отдельности. Диалоговый процесс создает отдельную запись в журнале для обновления данных сразу после завершения фазы он-лайн. Это выгодно, потому что во время диалога позволяет сразу переходить к следующей стадии диалога, что экономит время и заметно повышает эффективность работы с системой.
Ради оптимизации ресурсов и эффективности работы системы регистровая запись делится на два компонента, в зависимости от важности вносимых изменений:
• Основной компонент записи
• Вторичный компонент записи.
В то время, как основной компонент записи относится к обновлениям, связанным с изменениями деловых операций, которые происходят в реальном времени (например, расположение запасов, получение товаров и т. д.), вторичный компонент относится к обновлениям, в большей степени связанным с бизнес-ориентированными измерениями характеристик работы (МОР) за какой-либо период. Следовательно, основные компоненты состоят из приоритетных обновлений и должны исполняться как можно быстрее. Обновление основных компонентов должно завершаться до того, как в базе данных начнется обновление вторичных компонентов.
Так как обычно онлайновая фаза исполняется успешно, никаких сбоев в приложениях не происходит. Однако в случае технических сбоев в процессе обновления записей журнала, обработка основных и вторичных компонентов происходит по-другому. В случае сбоя, затрагивающего основной компонент, все обновления этой записи
Процесс очереди
Этот процесс аналогичен системе управления блокированием в базах данных, но он гораздо сложнее. Так
Но даже на одиночном сервере баз данных, от управления блокированием требуется способность обеспечить синхронизацию доступа нескольких серверов приложений к базам данных и поддерживать согласованность и стабильность данных. Это особенно важно, когда различные диалоговые процессы выполняют диалоговые шаги транзакции SAP. Даже когда диспетчер осуществляет переключение рабочих процессов, все процессы должны сохранять целостность присвоенных блокировок вплоть до окончания SAP LUW или до того момента, когда само приложение окончательно отпустит блокировки.
Эта целостность блокирования в масштабе всех процессов также необходима для осуществления асинхронных
Процесс буферизации
Запрос на вывод данных может генерироваться после диалога с пользователем или в результате пакетного процесса. Процесс буферизации подготавливает формат данных для выбранного пути вывода данных — например, для принтера, факса, электронной почты и т. д., и сохраняет их во временном последовательном файле TEMSE (temporary sequential). Затем процесс буферизации переадресует запрос на вывод данных в соответствующую базовую систему.
Другие службы
Процессы, протекающие на серверах приложений, используют службу сообщений для обмена данными и информацией.
Служба шлюзов обеспечивает коммуникацию между системой R/3 и другими внешними системами, в том числе R/3 и R/2. В основном эта служба занимается передачей больших объемов связанных с приложениями данных. Для передачи информации эта служба использует протокол CPI–C.