ГЛАВА 1 ТЕХНИЧЕСКАЯ РЕАЛИЗАЦИЯ АРХИТЕКТУРЫ КЛИЕНТ/СЕРВЕР В СИСТЕМЕ SAP R/3
ГЛАВА 1
ТЕХНИЧЕСКАЯ РЕАЛИЗАЦИЯ АРХИТЕКТУРЫ КЛИЕНТ/СЕРВЕР В СИСТЕМЕ SAP R/3
Базовая технология SAP, давно известная как SAP R/3 Basis, показала себя надежной платформой благодаря своей высокопроизводительной архитектуре. Сервер приложений Web SAP (Web AS - Web Application Server) является поэтому не только базовым компонентом текущей системы SAP R/3 Enterprise, но также технологической основой одинаково структурированных компонентов решений SAP, таких как SAP APO, SAP BW и SAP CRM.
Технология всех решений mySAP основывается на известной многозвенной архитектуре клиент/сервер. Использование такой концепции позволяет разрабатывать надежное и гибкое масштабируемое основание для работы сложных системах.
1.1. Архитектура клиент/сервер в системе SAP R/3
Трехзвенная технология клиент/сервер различает следующие уровни:
? Презентация
? Приложение
? База данных
С точки зрения аппаратных средств техническая реализация находится между следующими крайними случаями: «все компоненты на одном компьютере» или «один компьютер для каждой инстанции уровня». Оптимальный вариант можно определить согласно предполагаемым планам использования системы, доступности требований и производительности.
Работа всех трех слоев клиент-серверной архитектуры на одном компьютере подходит только для целей демонстрации или тестирования.
Рис. 1.1. Варианты конфигурации
Двухслойная конфигурация
Небольшие системы SAP R/3 часто используют конфигурацию с отдельным уровнем презентации (см. рис. 1.1). База данных и приложение выполняются вместе на одной машине; ПК или другие компьютеры рабочих станций используются для внешних систем.
Трехслойная конфигурация
Если двухслойная конфигурация больше не удовлетворяет требованиям пользователей, то серверы базы данных и приложения разделяют. Программная архитектура SAP R/3 позволяет распределить уровень приложения на несколько инстанций, которые могут выполняться на отдельных компьютерах. Такая технология предоставляет высокий уровень масштабируемости; база данных является единственным компонентом, который не может выполняться на нескольких компьютерах. Контрольные испытания смогли смоделировать несколько тысяч пользователей SAP R/3, работающих параллельно в трехслойной конфигурации. Однако с точки зрения системного администратора каждый дополнительный компьютер увеличивает объем выполнения необходимых работ.
Одно из наиболее важных решений, которое должно быть принято на ранних этапах реализации SAP R/3, касается применяемой архитектуры и аппаратного обеспечения. Данная архитектура должна наилучшим образом удовлетворять требованиям пользователей. Если на этапе рабочей эксплуатации системы SAP R/3 окажется, что выбранная архитектура не отвечает данным требованиям, то в результате придется нести более высокие расходы и выполнять лишнюю организационную работу.
Используемые программные и технические решения определяются типом архитектуры, которая будет реализована. Эти вопросы рассматриваются в следующем разделе.
Уровень презентаций
Для пользователей, работающих с бизнес-функциями SAP R/3, основное значение имеет уровень презентаций. В системе R/3 он состоит из графического пользовательского интерфейса SAP (SAP GUI—Graphical User Interface). Интерфейс SAP GUI воспринимает то, что вводит пользователь, и передает эту информацию для дальнейшей обработки на следующий уровень — уровень приложений, где обрабатываются запросы. И наоборот: SAP GUI получает данные от уровня приложений и представляет их пользователю. Большинство сеансов SAP R/3 функционирует через SAP GUI. Технической реализацией SAP GUI является процесс, который осуществляется на уровне операционной системы клиента.
Уровень приложений
Пользовательские запросы передаются с уровня презентаций на уровень приложений SAP R/3. Именно здесь выполняются фактические вычисления, оценки и другие операции. Необходимые для этого сведения запрашиваются с уровня базы данных. Новые входные данные обрабатываются на уровне приложения и передаются в базу данных. Уровень приложений представляет собой центр управления системой SAP R/3, т. е. это один из центральных компонентов, на который может влиять администратор системы SAP R/3. В большинстве случаев применяемые администратором средства полностью интегрированы с системой SAP R/3.
Инстанция
Инстанция SAP R/3 является группой процессов, которые используют общую область памяти, управляются процессом диспетчера и обращаются к одной базе данных. Уровень приложений системы SAP R/3 может состоять из одной или нескольких инстанций. Термин «сервер приложений» используется как синоним термина «инстанция». Системный администратор настраивает число и типы процессов инстанции, чтобы оптимизировать производительность с наименьшим возможным объемом ресурсов.
Уровень базы данных
На уровне базы данных используется система управления реляционной базой данных (РСУБД). Обмен данными между РСУБД и процессами приложений осуществляется через интерфейс SQL. Почти во всех случаях данные в системе SAP R/3 хранятся в одной БД на одном компьютере. Тем не менее, можно реализовать также использование параллельных баз данных или одной базы данных для нескольких систем SAP (см. главу 4).
При работе с системой SAP R/3 администратор должен выполнять обычные задачи администрирования БД, которые включают в себя:
? Резервное копирование БД и восстановление в случае ошибки
? Настройку конфигурации
? Управление потоками данных и их оптимизацию
? Управление дисковой памятью
? Реорганизацию данных (табличных пространств, таблиц и т.д.)
? Установку и сопровождение программного обеспечения
Компания SAP предлагает администраторам БД интегрированные инструментальные средства SAP R/3. Для некоторых систем баз данных существуют специальные инструменты, применяемые на сервере БД.
При размещении уровней БД и приложений на двух и более компьютерах система SAP R/3 называется распределенной.
SID
За исключением систем MCOD (многокомпонентных с одной базой данных) имя базы данных одновременно определяет имя всей системы SAP R/3. Имя должно состоять из трех символов (буквы или букв и чисел); первая буква должна быть заглавной. Сокращение «SID» используется обычно в качестве метки-заполнителя для имени системы SAP R/3: оно обозначает идентификатор системы (system identifier). Иногда используется «SAPSID», что обозначает системный идентификатор SAP.
Сетевая технология
Для взаимодействия уровней, распределенных по нескольким компьютерным системам, используется стандартная сетевая технология. Она же применяется для коммуникаций системы SAP R/3 с внешним миром. Транспортным протоколом служит протокол TCP/IP. На каждом шаге в процессе диалога между клиентской системой (внешним интерфейсом) и уровнем презентаций передается очень мало данных. По этой причине для взаимодействия компьютеров уровня презентаций и серверов приложений можно без всяких проблем использовать соединения глобальной сети. При коммуникации серверов базы данных и приложения все по-другому.
Кроме того, систему R/3 можно связать с мэйнфреймом по протоколу IBM SNA (Systems Network Architecture) LU6.2.
1.2. Соединение с Интернетом
Текущая технология использует три способа соединения компонентов SAP с Интернетом. Сервер транзакций Интернета (ITS — Internet Transaction Server) и Менеджер коммуникаций Интернета (ICM — Internet Communication Manager) обеспечивают диалоговое взаимодействие. Business Connector поддерживает автоматизированный обмен бизнес-данными с помощью HTTP и XML между партнерскими системами.
1.2.1. Сервер транзакций Интернета
Сервер транзакций Интернета (ITS — Internet Transaction Server) выполняет следующие задачи:
? Автоматически преобразует представления экранов SAP, чтобы сделать возможным использование SAP GUI для HTML.
? Обеспечивает представление в Web бизнес-процессов посредством прикладных компонентов Интернета (IAC — Internet Application Components) на основе экрана, которые используют предопределенное представление HTML выбранных транзакций.
? Обеспечивает представление в Web бизнес-процессов посредством IAC на основе файла потока выполнения. Файлы потока выполнения осуществляют управление выполнением; форматирование для Интернета является дополнительной задачей.
Рис 1.2. Взаимодействие с Интернетом посредством ITS
ITS использует для выполнения этих задач следующие компоненты:
? WGate: для поддержки интерфейса сервера HTTP, для пересылки запросов AGate и для перемещения страниц HTTP, переданных AGate.
? Agate: основной компонент, отвечающий за управление сеансом, вывод изображений R/3 в HTML, администрирование соединений SAP R/3 и генерацию документов HTML.
ITS осуществляет коммуникацию с SAP R/3 через интерфейс DIAG или с помощью RFC (см. главу 13).
SAP планирует интегрировать функции ITS в будущий релиз сервера приложений Web SAP (SAP Web AS — Sap Web Application Server).
1.2.2. Менеджер коммуникации Интернета (ICM)
Менеджер коммуникаций Интернета (ICM — Internet Communication Manager) является дополнительным процессом. Он выполняется на уровне операционной системы и обрабатывает запросы HTTP, HTTPS и SMTP в SAP Web AS. Поэтому он создает прямые соединения между системами SAP и внешним миром.
Рис. 1.3. Использование ICM
Начиная с версии 6.10 SAP Basis, менеджер ICM может передавать совместимый с Web контент, созданный с помощью SAP Web Application Builder, прямо во внешний браузер, который его запросил.
1.2.3. Business Connector
С помощью Business Connector (ВС — Бизнес-соединитель) две системы SAP или система SAP и система, отличная от SAP, могут обмениваться сообщениями в формате данных XML, используя стандартный протокол Интернета HTTP. Можно использовать синхронный или асинхронный способ обмена данными.
Далее если бизнес-партнер не использует технологию SAP, соединение с помощью Business Connector все еще возможно в связи с открытым форматом данных.
Рис. 1.4. Соединения с помощью Business Connector
1.3. Уровень презентаций
Уровень презентаций SAP R/3 является интерфейсом с пользователями системы. Он обслуживает всех пользователей R/3, включая как системных администраторов, так и корпоративных менеджеров. Таким образом, к уровню презентаций предъявляются высокие требования. Он должен обеспечивать:
? Простое и эргономичное использование
? Возможности специфических конфигураций для конкретных пользователей
? Простое управление
? Гибкий доступ, не зависящий от местоположения
? Поддержку нескольких языков
? Переносимость между разными аппаратными платформами и операционными системами (с сохранением функциональности и внешнего представления)
Пользовательский интерфейс SAP GUI удовлетворяет этим требованиям с помощью различных технологических методов.
SAP GUI
Пользовательский интерфейс SAP GUI создает однозадачную/односистемную рабочую среду. При работе с SAP GUI пользователи вводят в качестве параметра имя системы SAP R/3, в которой они хотят зарегистрироваться. Для вызова SAP GUI в ОС Windows можно создать специальный значок (пиктограмму). SAP GUI управляется с помощью мыши и системы меню. При выполнении своих рабочих задач пользователь последовательно перемещается в системе меню. Для параллельного выполнения задач можно открыть дополнительное или новое окно SAP GUI (сеанс). С технической точки зрения новый сеанс во многом аналогичен дополнительному окну SAP GUI.
SAPLOGON
Обычно пользователи, которые хотят иметь доступ к более чем одной системе SAP, не хотят размещать пиктограмму (значок) для каждой системы на своем рабочем столе. Программа SAPLOGON позволяет заранее определить все соединения SAP GUI, которые могут понадобиться пользователю, с помощью легко модифицируемого конфигурационного файла или непосредственной настройки SAPLOGON. Когда требуется запустить определенное соединение SAP GUI, пользователи просто выбирают подходящую системную запись из списка всех заданных соединений. Описание настройки и использования SAPLOGON для распределения нагрузки см. в главе 2.
Рис. 1.5. Варианты внешнего представления
Интерфейс SAP GUI реализован на основе Windows Style Guide, стандартов EG 90/270 и ISO 9241, определяющих эргономику интерфейсов.
SAP предлагает различные версии SAP GUI для поддержки различного оборудования взаимодействия с пользователем (см. рис. 1.5):
? SAP GUI для среды Windows Поддерживаемые платформы включают:
- Windows 98, Windows NT4, Windows 2000 и Windows XP
- Более старые версии Windows через терминальный сервер
? SAP GUI для среды Java Поддерживаемые платформы включают:
- Windows 98, Windows NT4 и Windows XP
- MacOS 9
- MacOS X
- Linux, HP-UX, Solaris, AIX и Tru64
- OS/2
? SAP GUI для среды HTML
Для взаимодействия с пользователем требуется только браузер Web; для преобразования представления в HTML требуется ITS (см. раздел 1.4.1).
Программное обеспечение внешнего представления спроектировано обратно совместимым, поэтому всегда можно использовать текущую версию. Как минимум уровень версии SAP GUI должен соответствовать версии Basic системы SAP.
Рис. 1.6. SAP GUI
Окно SAP GUI включает в себя несколько областей. Имя окна отображается в строке заголовка (см. рис. 1.6).
Строка меню
Строка меню находится под заголовком. Каждая строка содержит пункты System и Help. В меню System находится ряд важных функций, позволяющих, например, создавать или удалять сеанс, работать со списками, выполнять утилиты и получать информацию о состоянии системы. Меню Help предоставляет доступ к документации SAP R/3 и контекстно-зависимому справочнику.
Панель инструментов
Часто используемые функции можно выполнять с помощью стандартных пиктограмм. Пиктограмма справа от этой панели инструментов предоставляет пользователям доступ к функциям для настройки цвета, шрифта и размера шрифта SAP GUI. Наиболее важные пиктограммы показаны в таблице 1.1. Кроме пиктограмм, на экране могут отображаться также контекстно-зависимые кнопки.
Таблица 1.1. Важные пиктограммы SAP R/3 и их смысл
Таблица 1.1. (продолжение)
Список избранного и меню пользователя
После регистрации в системе сначала выводится персональный список избранного (Favorites) и меню пользователя, чтобы пользователь мог выбрать функцию. Меню пользователя настраивается как часть определения роли (см. главу 8) и отражает выбор транзакций, которые необходимы пользователю для повседневной работы.
Весь набор транзакций, которые могут использоваться через пути доступа меню, делается доступным с помощью изменения вывода через Menu • SAP Menu. Часто используемые транзакции можно сохранить и связать с Web-сайтами или документами в списке Favorites (Избранное). Например, на рис. 1.7 показан список Favorites, дополненный ссылкой Интернета на SAP Service Marketplace.
Код транзакции
Панель инструментов включает поле команды. Функции системы SAP R/3 очень сложны, поэтому дерево меню R/3 также имеет непростую и не всегда строго иерархическую структуру. В связи с этим всем информационным потокам в SAP R/3 присваивается краткое описание — код транзакции. Его можно вводить для непосредственного вызова функции R/3 без перемещения в системе меню. Код транзакции можно вводить также с добавлением /n или /о. При вводе /n текущий шаг работы заканчивается, а в текущем окне выполняется действие, назначенное коду транзакции. При вводе /о новое действие выполняется в новом окне сеанса. Данная процедура может показаться устаревшей, однако она имеет своих приверженцев особенно среди опытных пользователей SAP R/3.
Рис. 1.7. Меню пользователя и список избранного
Строка состояния
Нижняя строка в окне SAP GUI — это строка состояния. В ней выводятся важные сведения о системе SAP R/3, в которой зарегистрировался пользователь, а также информация и сообщения об ошибках.
Между верхней областью и нижней строкой окна SAP GUI расположена рабочая область пользователя SAP R/3. Структура и функции этой области зависят от выполняемой пользователем задачи.
Поддержка нескольких языков
Такая поддержка в SAP GUI реализуется за счет хранения всех текстовых элементов отдельно от изображения. Язык можно выбрать при регистрации (входе) в системе SAP R/3 или путем установки параметра в SAP R/3. При этом выбранный язык уже должен быть установлен, т. е. текстовые элементы для данного языка должны быть импортированы в базу данных SAP R/3. По умолчанию в каждой системе доступны английский и немецкий языки. В настоящее время можно установить более 20 различных языков; Basic Release 6.10 поддерживает Unicode.
1.4. Уровень приложений
В отличие от уровня презентаций, где каждый компонент внешнего интерфейса работает независимо (возможно, на разных компьютерах), все процессы SAP R/3 уровня приложений (которые также могут выполняться на разных машинах) образуют логически связанную единицу. Уровень приложений в системе SAP R/3 предлагает следующие службы:
? Служба диалога (D)
? Служба обновлений (Update, V)
? Служба обновлений V2 (Update2, V2)
? Служба управления блокировками (Enqueue, E)
? Служба фоновой обработки (Batch, В)
? Служба сообщений (М)
? Служба шлюза (G)
? Служба подкачки (Spool, S)
Поскольку уровень приложений может состоять из нескольких инстанций, эти службы могут распределяться по разным инстанциям (в соответствии с конкретными условиями применения). Число и характеристики процессов на каждой инстанции определяются с помощью профиля, который анализируется при запуске сервера приложений.
Имя инстанции содержит имя системы SAP R/3 и буквы, соответствующие службам. Центральная система SAP R/3 только с одной инстанцией, обеспечивающей все службы, будет иметь имя <SID>_DVEBMSG<номер инстанции>_<имя хоста>, где <SID> — это имя системы из трех букв, уникальное в каждой системной инфраструктуре, а <номер инстанции> — это последние две цифры порта TCP/IP, используемого для сетевого соединения. Однако этот метод именования является только соглашением об именовании — соглашением, которое не проверяется технически. При установке сервера диалога инстанция обычно устанавливается с именем <SID>_D<номер инстанции>_<имя хоста>, даже когда она предлагает дополнительные службы. Номер инстанции может находиться между 00 и 96: номера с 97 по 99 включительно зарезервированы для специальных целей.
Сервер сообщений
На уровне приложений для каждой инстанции есть один сервер сообщений. Эта служба предназначена для коммуникации между различными инстанциями системы SAP R/3. Сервер сообщений осуществляет мониторинг свободных ресурсов и их выделение в случае необходимости на уровне приложений. Инстанция, на которой работает сервер приложений, называется обычно центральной инстанцией системы SAP R/3. О задачах центральной инстанции см. ниже в данной главе. Все другие инстанции являются диалоговыми, даже если они предлагают дополнительные службы.
Процесс-планировщик и рабочие процессы
Рабочие процессы реализуют сервисы диалога, управления блокировками, обновления, фоновой обработки и службы вывода (спулинга). Координацию рабочих процессов осуществляют процессы-планировщики, функционирующие на каждой инстанции. Эти процессы распознают коммуникационные требования рабочих процессов и передают их соответствующим образом. Рабочие процессы и планировщик всегда включают одну и ту же программу, запускаемую с параметрами, которые зависят от каждой функции. В соответствии с требованиями приложения и доступными ресурсами администратор должен определить, какой конкретный процесс и сколько процессов будут реализовывать сервис для каждой инстанции. Планировщик запускает эти процессы и управляет ими. В случае отказа планировщика вся инстанция перестает функционировать. Планировщик играет роль интерфейса между уровнями презентаций и приложений. Все запросы с уровня презентаций (т. е. из SAP GUI) принимаются планировщиком и присваиваются доступным в данной инстанции рабочим процессам (см. рис. 1.8).
Рис. 1.8. Роль планировщика в инстанции SAP R/3
Если рассмотреть структуру рабочего процесса, то можно видеть, что он реализуется путем совместного выполнения обработчика задач, процессора обработки экранов, процессора АВАР и интерфейса SQL, которые используют специальные области основной памяти. Обработчик задач координирует операции в рабочих процессах. В зависимости от выполняемой задачи обработка передается процессору экранов, процессору АВАР (он отвечает за программы на АВАР — языке программирования SAP) или интерфейсу SQL для обмена данными с БД.
Служба диалога
Рабочие процессы различаются по своим задачам. Процессы диалога реализуют запросы активных пользовательских сеансов. Для выполнения необходимых внутренних процедур SAP R/3 каждая инстанция SAP R/3 должна иметь, по крайней мере, два процесса диалога. Планировщик не назначает процесс диалога только одному пользователю (SAP GUI). На самом деле планировщик инстанции назначает выполнение каждого шага диалога свободному процессу диалога. Данные пользователя, необходимые для выполняемой обработки (например, авторизации), сохраняются в контексте пользователя в оперативной памяти (в доступных для рабочих процессов областях). В системе R/3 шаг диалога рассматривается как обработка одного экрана. Процесс диалога обычно занят только во время обработки шага диалога одного пользователя. Этот механизм позволяет процессу диалога обслуживать нескольких пользователей.
Служба фоновой обработки
Задачи, которые необходимо осуществлять в фоновом режиме, реализуются фоновыми рабочими процессами. Имеет смысл обрабатывать в фоновом режиме задачи, которые не требуют оперативного ввода данных. Можно планировать выполнение подобных заданий на конкретное время или запускать их по заданному событию. Инстанция, имеющая, по крайней мере, один подходящий рабочий процесс, должна поддерживать службу фоновой обработки.
Служба обновления
Служба обновления вносит в БД изменения в асинхронном режиме. Она используется, когда изменения в данных не нужно вносить немедленно (синхронно). Пользователь системы SAP R/3 не влияет на применение службы обновления. Решение об использовании данной службы принимается на этапе разработки бизнес-приложения. Примером является ввод заказов. Каждый заказ должен вводиться быстро в диалоговом режиме (онлайн), однако фактическое обновление осуществляется в фоновом режиме с некоторой задержкой, и пользователю не нужно ждать, когда завершится транзакция. Для обработки асинхронных изменений данных в каждой инстанции системы R/3 должна быть, по крайней мере, одна служба обновления.
Служба обновления V2
По соображениям производительности служба обновления делится на подклассы. Для менее важных частей обновления существует отдельная служба обновления V2, которая может выполнять часть обновлений совместно. Настройка службы обновления V2 не является обязательной. Если этой службы нет, то служба обновлений продолжает решать ее задачи.
Служба вывода
Запросы вывода передаются службе вывода, часто называемой службой спула, которая временно сохраняет их в объектах TemSe (временный последовательный объект), пока они реально не выводятся. Администратор системы SAP R/3 должен решить, где следует хранить объекты TemSe: в БД с использованием механизмов защиты РСУБД или в файловой системе с помощью средств управления ОС.
В системе должен быть доступен, по крайней мере, один процесс спула. Каждая инстанция может иметь любое число таких процессов.
Процессы спула координируют все процессы вывода, такие как запросы на печать и отправку факса. В зависимости от конфигурации запросы вывода могут передаваться на физический носитель или обрабатываться с помощью системы спулинга ОС. В обоих случаях осуществляется контроль вывода — его мониторинг, а системные сообщения записываются в системные журналы SAP R/3.
Служба блокировок
Управление блокировками занимает среди служб особое место. Аналогично серверу сообщений, эта служба действует в масштабе всей системы, т. е. обеспечивать данную службу для всей системы может только одна инстанция. Обычно для этого достаточно одного процесса. Если система работает с особенно большой нагрузкой, то допускаются несколько процессов службы блокировки, но они должны существовать в одной и той же инстанции, так как информация о блокировке хранится в основной памяти компьютера (память с общим доступом). Соответственно термин «сервер блокировок» (Enqueue Server) используется как синоним инстанции, которая обеспечивает такую службу и для самой службы.
Транзакция SAP R/3
Если это возможно, сервер блокировок (Enqueue Server) и сервер сообщений (Message Server) должны выполняться на одной инстанции, поскольку функционируют они в тесном «сотрудничестве». Сервер блокировок управляет логическими блокировками для транзакций SAP R/3. Такая транзакция состоит из последовательности функционально и логически согласованно связанных рабочих шагов. Обычно транзакция R/3 включает в себя несколько диалоговых шагов, которые могут выполняться различными процессами. С точки зрения БД каждый шаг диалога, составляющий физическую и логическую единицу, представляет собой транзакцию базы данных и закрывается после шага диалога. РСУБД может координировать только эти транзакции БД с помощью своих собственных процедур управления блокировками. С точки зрения системы SAP R/3 этого недостаточно, вся транзакция SAP R/3 должна выполняться или откатываться назад полностью. По данной причине в R/3 были введены логические единицы работы (LUW—Logical Units of Work). SAP R/3 придерживается принципов ACID (атомарность, непротиворечивость, изолированность, надежность) для логических единиц работы, как они определены для транзакций в РСУДБ. К логической единице работы применяются следующие правила:
? Атомарность (Atomic)
LUWs составляют элементарную единицу работы. LUW может выполняться только целиком.
? Непротиворечивость (Consistent)
LUW переводит непротиворечивую БД в новое непротиворечивое состояние, т. е. после выполнение LUW достигается корректное состояние.
? Изолированность (Isolated)
LUW выполняются независимо друг от друга. Они могут работать параллельно. Если несколько LUW пытаются работать с одними и теми же ресурсами, то они могут сделать это только при последовательном выполнении.
? Долговечность (Durable)
Результаты успешно выполненных LUW сохраняются и хранятся постоянно. Например, на результат не влияют возможные системные ошибки.
Для удовлетворения этих требований необходим сервер блокировок. Запросы блокировок, генерируемые в результате транзакций SAP R/3, передаются серверу сообщений, который, в свою очередь, передает их на выполнение серверу блокировок. Для снижения дополнительной нагрузки на сеть лучше размещать сервер сообщений и сервер блокировок на одной инстанции. Сервер блокировок работает с блокировками в специально выделенной области оперативной памяти. Таким образом, отказ сервера блокировок приводит к потере всех блокировок SAP R/3, а следовательно — к автоматическому откату (отмене) всех LUW, на которые они влияют. При таком отказе планировщик немедленно пытается запустить новый рабочий процесс сервера блокировок на этой инстанции.
Служба шлюза
Каждой инстанции SAP R/3 для выполнения задач вне локальной инстанции необходима также служба шлюза (Gateway Service). Она включает в себя:
? Коммуникации между разными системами SAP R/3
? Удаленный вызов функции (RFC — Remote Function Call)
? Интерфейс программирования коммуникаций (CPI-C — Common Programming Interface for Communications)
? Соединения с внешними системами, такими как серверы MAPI, системы электронного обмена данными EDI, внешние факсимильные устройства и службы телекса
Один процесс шлюза существует в каждой инстанции. Он активизируется автоматически при запуске инстанции. Помощь администратора в данном случае не нужна.
Таблица 1.2. Правила для типов и числа процессов SAP R/3 на уровне приложений
Служба В масштабе системы R/3 Для каждой инстанции R/3 Диалог (Dialog) >=2 >=2 Обновление (Update) >=1 >=0 Блокировка (Enqueue) 1 0 или 1 Фоновое выполнение (Batch) >=1 >=0 Сообщения (Message) 1 0 или 1 Шлюз (Gateway) >=1 1 Спул (Spool) >=1 >=0Сервер сообщений постоянно получает сведения о том, какие именно инстанции и службы доступны в данный момент. Это своего рода управляющий модуль системы. При отказе сервера сообщений система SAP R/3 функционировать не сможет. В каждой инстанции роль управляющего звена играет планировщик. При его отказе инстанция прекращает работу. В то же время, если отказывает рабочий процесс, планировщик может запустить новый. Каждый рабочий процесс способен выполнять любую задачу (они не являются специализированными). На основе заданных администратором SAP R/3 настроек планировщик определяет задачу для рабочего процесса. Для выполнения задач администратор должен знать, какие требования ему нужно задать в системе SAP R/3. Их необходимо определить на этапе технической реализации системы SAP R/3. На последующих стадиях решаются вопросы, относящиеся к расширению системы или совершенствованию уже созданной конфигурации.
Одна из основных обязанностей администратора системы R/3 — настройка производительности работы системы на уровне приложений. Он должен решить, какое число инстанций и процессов выполняется в системе, определить их тип, размер области памяти для каждой инстанции, а также другие устанавливаемые параметры и характеристики. Возможные параметры настройки системы SAP R/3, особенно на уровне приложений, могут быть очень сложными. В централизованных системах (т. е. когда уровень приложений состоит только из одной инстанции) нужно задать конфигурацию областей памяти и определить число процессов. Оперативная память используется для таких целей, как буферизация содержимого часто используемых таблиц, производственные календари, исполняемые объекты АВАР и контекст пользователя. В распределенных системах (т. е. при наличии в одной системе R/3 нескольких инстанций) инстанции могут определяться таким образом, чтобы обеспечивать только одну службу, например сервер обновления, сервер фонового выполнения или сервер спула. Обычно администратор выбирает конкретную конфигурацию инстанций, исходя из производительности или удобства управления системой (подробнее см. в главе 14).
1.5. Уровень базы данных
Уровень базы данных в системе SAP R/3 реализуется на центральном компьютере с использованием центральной РСУБД. В данном разделе уровень БД в системе SAP R/3 рассматривается подробнее. Здесь поясняется, как используется РСУБД для целей R/3 и с какими работами по администрированию это связано.
Рис. 1.9. Интерфейс базы данных
Native SQL и Open SQL
На рис. 1.9 показаны интерфейсы между РСУБД и рабочими процессами. Уровни приложений и БД взаимодействуют друг с другом исключительно через SQL. Несмотря на стандарты SQL, каждая поддерживаемая SAP R/3 РСУБД предлагает свой собственный диалект SQL. Для обеспечения максимальной независимости от специфических для каждой версии и производителя расширений и модификаций рабочие процессы SAP R/3 обычно поддерживают только интерфейс Open SQL. АВАР Open SQL соответствует стандарту SQL2 (Entry Level). При необходимости в интегрированном с рабочими процессами интерфейсе язык Open SQL преобразуется в Native SQL — собственный SQL РСУБД. Специальные средства языка SQL, реализованные в РСУБД, можно также использовать в программах АВАР. Средства языка зависят от конкретного производителя, а модули инкапсулируются в приложения SAP R/3. Их использование сводится к уровню «абсолютной необходимости». Между тем, существуют подходящие области для применения подобных средств. Это специальные приложения, такие как мониторы баз данных. Для инкапсуляции операторов Native SQL в программы АВАР используется следующая конструкция:
? EXEC SQL.
<оператор Native SQL>
ENDEXEC.
Типы таблиц
Данные хранятся в таблицах РСУБД. Все данные приложения однозначно (1:1) отображаются в прозрачных таблицах. Теоретически к ним можно обращаться с помощью других инструментов SQL или инструментальных средств конкретного производителя. С технической точки зрения административные данные системы SAP R/3 также хранятся в таблицах. Хотя это таблицы других типов, для РСУБД они все равно остаются таблицами. Иногда несколько небольших таблиц группируются в SAP R/3 в одну таблицу РСУБД. Для SAP R/3 такая таблица-контейнер называется пулом таблиц. Таблицы в пуле видимы только для системы SAP R/3. Основное преимущество данных пулов состоит в уменьшении общего числа таблиц для РСУБД. Индивидуальные таблицы в табличном пуле идентифицируются по уникальным именам и специальным ключам записей. Поскольку в этих таблицах используются индивидуальные структуры и методы хранения, это осложняет доступ к ним без применения средств SAP R/3. Таблица АТАВ может служить примером типичного пула таблиц. Она содержит несколько управляющих таблиц SAP R/3, которые невелики по размеру, а их содержимое относительно постоянно. Это означает, что возможна буферизация всего пула таблиц.
Кластеры
Аналогичный случай представляют кластеры таблиц и логические таблицы кластера. Таблицы кластера не существуют в РСУБД как независимые таблицы. Несколько таблиц кластера группируются в кластер таблиц, который обычно называют просто кластером. Обычно несколько строк таблицы кластера группируются в запись кластера с общим ключом. В отличие от пула таблиц, где запись присваивается записи в пуле, здесь запись состоит из нескольких записей в таблице кластера. При этом осуществляется конкатенация записей, к которым добавляется ключ кластера. В основном, этот метод применяется для документирования.
Всего на уровне БД системы SAP R/3 версии 4.6B содержится порядка 21 600 таблиц и 25 000 индексов или примерно 23 700 таблиц для SAP R/3. Все программы АВАР, которые реализуют бизнес-функции SAP R/3, также хранятся в базе данных.
База данных и РСУБД играют в работе системы SAP R/3 ключевую роль. Здесь осуществляется управление всеми данными, которые вводит пользователь, включая данные администрирования SAP R/3. Администрирование также имеет очень важно особенно при резервном копировании данных. В широком смысле эти операции являются частью администрирования SAP R/3. В более крупных системах задачи администрирования БД иногда требуют, чтобы их выполнял специальный сотрудник или группа людей. Однако многие специальные особенности РСУБД характеризуют администрирование базы данных. В данной книге рассматриваются только универсально применимые процедуры. Более специальные вопросы требуют обращения к книгам, посвященным администрированию РСУБД.
1.6. Сеть
В архитектуре клиент/сервер сетевые службы используются для взаимодействия отдельных уровней. Коммуникации между компонентами SAP R/3 и другими системами основаны на протоколе TCP/IP.
CPI-C
Система SAP R/3 предусматривает различные службы, обеспечивающие коммуникацию. Для взаимодействия программ АВАР используется специальный интерфейс SAP R/3 под названием CPI-C (Common Programming Interface for Communication). Он выполняет функции стандартизованного и согласованного интерфейса коммуникации. Интерфейс CPI-C соответствует стандарту SAA (System Application Architecture), предложенному компанией IBM в 1987 г. Этот стандарт охватывает:
1. Методы установления коммуникации
2. Управление коммуникацией
3. Обмен информацией
4. Методы завершения коммуникации (закрытия соединения)
За преобразование вызовов CPI-C отвечает шлюз SAP Gateway. Интерфейс CPI-C всегда используется для коммуникации между разными системам SAP R/3 при взаимодействии систем SAP R/3 и SAP R/2, а также при выполнении программ вне системы. Короткие сообщения обрабатывает сервер сообщений (Message Server).
Шлюз SAP
При обмене большими объемами данных используется конкретная специальная служба шлюза SAP (SAP Gateway на базе TCP/IP или LU6.2). Язык CPI-C является в SAP R/3 составной частью языка программирования АВАР (Starter Set), который включает в себя дополнительные функции преобразования данных. Чтобы избавить пользователей от необходимости написания на СРТС собственных подпрограмм коммуникаций, SAP R/3 предлагает интерфейс RFC (Remote Function Call — Вызов удаленной функции). RFC использует отдельный протокол для вызова внутренних и внешних функций, обслуживаемых библиотекой функций SAP R/3. Для выполнения модуля функции на любом компьютере в той же системе SAP R/3 или в других системах R/3 и R/2 можно применять параметр Destination (назначение). RFC поддерживает асинхронную и синхронную коммуникации (см. главу 13).
Недостаток синхронной коммуникации состоит в том, что программа может вызывать другую удаленную программу, только если программа-«партнер» активна. К тому же, если получатель находится в малопроизводительной системе, это может вызвать задержки для отправителя. А если отправитель внезапно «потеряет» получателя, то нередко требуется восстановление обеих систем.
В то же время асинхронная коммуникация позволяет поддерживать высокую согласованность транзакций, для чего к вызову RFC добавляется ключевая фраза IN BACKGROUND TASK. Если выполнение на целевой системе инициируется вручную или целевой компьютер не может исполнить запрос, то данные сначала помещаются в очередь. В этом случае для администрирования используется интерфейс программирования QAPI (Queue-Application Programming Interface).
OLE
Более высоким уровнем по сравнению с RFC является механизм связывания и встраивания объектов (OLE — Object Linking and Embedding). OLE соединяет программы ПК с системой SAP R/3. Команды OLE в программах АВАР передаются в SAP GUI через механизм RFC и соответствующего ПО ПК. Это позволяет обмениваться данными с такими программами, как MS Word или MS Excel.
С точки зрения администратора должны удовлетворяться также технические требования, такие как стабильные сетевые соединения. Вместе с тем, необходимо принять меры безопасности, такие как организация брандмауэра (сетевого экрана). На практике подобные задачи обычно выполняются службой технической поддержки. В крупных системах рекомендуется поручить их выполнение администратору сети, который создаст и проверит необходимые соединения SAP R/3.
1.7. Операционная система
Рассмотрев структуру отдельных уровней, архитектуры системы SAP R/3 клиент/сервер и сетевую технологию, обеспечивающую их взаимодействие, мы перейдем к вопросам интеграции R/3 с операционной системой. Особый интерес представляет взаимодействие ядра SAP R/3 и операционной системы на серверах приложений.
ПО SAP GUI и его компоненты инсталлируются типичным для ПК способом: сначала на клиентской системе (или удаленно) создается каталог, который затем поддерживается и обновляется (вручную или автоматически) для каждой новой версии SAP R/3. На уровне БД интеграция с операционной системой зависит от РСУБД и не является универсальной. Одна из основных задач администратора системы SAP R/3 — координация уровней приложений SAP R/3 (ядра R/3). Именно этим вопросам в данном разделе уделяется основное внимание.
1.7.1. Структура каталога
Структура дерева каталога SAP R/3 состоит из различных ветвей различных инстанций, независимо от того, где находятся отдельные инстанции — в операционных системах Windows NT или UNIX.
Системный идентификатор (<SID>) идентифицирует уникальное имя системы SAP R/3; он обычно включает имя базы данных. Идентификаторы SID всегда состоят из трех букв и/или цифр. Ниже дерево каталога разветвляется на каталоги SYS и каталоги с именами, соответствующими именам инстанций, например DVEBMGS00 (центральная инстанция с номером 00). В Windows NT в корневом каталоге usisap есть два дополнительных общих каталога — sapmnt и saploc. В ОС UNIX такие подкаталоги
Рис. 1.10. Дерево каталогов
определяются только для каталога /sapmnt с помощью ссылок. Каталог SYS включает в себя следующие подкаталоги:
? profile
Профили экземпляра
? global
Данные и журналы, относящиеся ко всей системе SAP R/3
? ехе
Выполняемые программы
Каталог ехе содержит подкаталоги dbg, opt и run. Он содержит выполняемые программы среды времени выполнения системы SAP R/3; каждая из программ выполняется в подкаталоге run. По историческим причинам в системе UNIX каталог run отображается в каталог dbg. В данном каталоге находятся оптимизированные программы SAP R/3 и отлаживаемые программы с расширением dbg.
В более ранних версиях SAP R/3 каталог opt в системах UNIX содержал оптимизированное ядро SAP R/3, а каталог dbg— отлаживаемое ядро SAP R/3. Если возникает проблема, то можно переопределить ссылку с каталога run (куда она указывает обычно) на каталог opt с отлаживаемым и более медленным ядром SAP R/3.
С логической точки зрения узел /usr/sap/<SID> содержит каталог для каждой инстанции в системе SAP R/3; в нем находятся подкаталоги log, data и work. Каталог log содержит системный журнал инстанции SAP R/3. В каталоге work (рабочем) сохраняется информация об ошибках и данные трассировки. В каталоге data находятся файлы компонентов управления памятью для процессов SAP R/3 (Memory Management). Физически эти каталоги находятся на сервере приложений каждой инстанции. Логически они представляются в центральной инстанции с помощью средства NFS Mount. Кроме того, деревья каталогов /usr/sap/<SID>/SYS связываются с деревом каталога центральной инстанции.
1.7.2. Пользователи
На уровне операционной системы для пользователей SAP R/3 необходимы специальные пользователи. В процессе инсталляции SAP R/3 для этих пользователей создается требуемая рабочая среда, состоящая из авторизации, настроек по умолчанию и, в зависимости от РСУБД, пользователей базы данных.
UNIX
Для каждой системы SAP R/3 в операционной системе UNIX должны быть созданы пользователи <sid>adm и <RDBMS><sid>. Здесь <sid> означает идентификатор системы SAP R/3 (в нижнем регистре), a <RDBMS> — трехсимвольную аббревиатуру используемой РСУБД:
? sqd (SAPDB)
? db2 (DB2)
? inf (Informix)
? ora (Oracle)
На уровне операционной системы пользователи обычно различаются по соответствующим рабочим областям и поэтому — по их авторизации. Пользователь операционной системы <sid>adm предназначен для администрирования SAP R/3. Для задач администрирования в РСУБД предусматривается пользователь <RDBMS><sid>, однако в действительности эти обязанности возлагаются на нескольких пользователей.
В системах Windows NT все описанные задачи осуществляются пользователем <sid>adm. Сами процессы R/3 выполняются как службы, и для них определен пользователь SAPService<SID>.
Со стороны БД в системе SAP R/3 есть пользователь SAPR3, которому принадлежат все таблицы БД в системе R/3. Могут существовать и другие пользователи БД, однако они не имеют полномочий на доступ к этим таблицам.
1.8. Советы
? Пути доступа меню
При поиске пути доступа меню к транзакции можно использовать транзакцию search_sap_menu для стандартного меню или search_ user_menu для записей в меню пользователя.
? Транзакция
При поиске транзакции с помощью ключевого слова или групповых символов можно использовать ?Data Browser таблицы TSTCT.
1.9. Транзакции и пути доступа меню
Data Browser: SAP Menu • Tools • АВАР • Workbench • Overview Data Browser (SE16)
1.10. Дополнительная документация
Быстрые ссылки
? SAP Service Marketplace, псевдоним netweaver
? SAP Service Marketplace, псевдоним platforms
? SAP Service Marketplace, псевдоним sapgui
? SAP Service Marketplace, псевдоним sap-its
? SAP Service Marketplace, псевдоним releasestrategy
Указания SAP Service Marketplace
В следующей таблице представлен обзор наиболее важных указаний (Notes) в SAP Service Marketplace, которые имеют отношение к базовым вопросам архитектуры SAP R/3.
Таблица 1.3. Указания для архитектуры клиент/сервер в SAP R/3
Содержание Указание ITS Maintenance Strategy 197746 SAP GUI Resources 26417 SAP GUI Maintenance Strategy 147519 SAP GUI Limitations for Java 4549391.11. Контрольные вопросы
1. Какие службы предлагает прикладной уровень?
a. Служба коммуникаций
b. Служба диалога
c. Служба спула
d. Служба обновления
e. Служба сообщений
f. Служба транспорта
g. Служба шлюза h. Служба сети
i. Служба блокировки
j. Служба фонового выполнения
к. Служба изменения
2. Какое из следующих утверждений правильно?
a. Планировщик и процессы диалога не следует выполнять в одной инстанции.
b. Сервер блокировки и сервер сообщений тесно взаимодействуют друг с другом и, следовательно, должны выполняться в одной инстанции.
c. Служба фонового выполнения и служба обновления работают в тесном взаимодействии и никогда не должны выполняться в разных инстанциях.
3. Для чего предназначен сервис шлюза?
a. Для коммуникаций между процессами SAP R/3.
b. Для коммуникаций между системами SAP R/3 и инстанциями системы SAP R/3.
c. Для коммуникаций со спулом операционной системы.
d. Для соединения с внешними программами, такими как MAPI, EDI и служба телекса.
e. Для коммуникаций с системами SAP R/3.
4. Сколько серверов сообщений активно в системе SAP R/3?
a. 0
b. 1
c. 2
5. Сколько служб обновления может быть активными в каждой инстанции?
a. 1
b. 2
c. Это число автоматически изменяется системой SAP R/3 в зависимости от требований.
d. Любое число, в зависимости от доступных ресурсов. Это число может заранее определяться администратором.