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