 | Уровень сложности: средний Джудит Майерсон, инженер, разработчик архитектуры систем, консультант
18.10.2007 Узнайте, как разработать Web-сервисы, которые помогут приложениям SAP работать с IBM® DB2® (или DB2 9) и Oracle, не приводя к перегрузке системы. Данная статья содержит примеры использования IBM WebSphere® MQ в процессе разработки.
Введение
Вообще говоря, администрировать систему DB2-SAP легче, чем систему Oracle-SAP. DB2 оптимизирована для работы с SAP-приложениями. Для SAP-приложений DB2 выполняет оптимизацию системы хранения данных, динамически выделяя и освобождая пространство по мере необходимости. Напротив, тысячи таблиц и индексов Oracle распределяются заранее, но никогда не используются все вместе для каждого модуля, выполняющего SAP-приложение.
В DB2 оптимизация производительности нацелена на работу с большими базами данных, такими как SAP Business Information Warehouse (BIW), тогда как оптимизация SQL нацелена на сокращение времени выполнения запросов. Производительность Oracle оказывается меньше из-за заранее распределенных таблиц.
Там, где миграция на Oracle прошла успешно, большинство разработчиков не готово отказаться от Oracle в пользу DB2. Когда речь идет о миграции терабайтов данных, ни одна программа для миграции не может полностью решить все сложные проблемы. Возможно, придется исправлять нерешенные проблемы программным способом. Различия в способах резервного копирования и восстановления баз данных тоже увеличивают сложность миграции.
Краткая информация о SAP R/3
Программные подукты SAP представляют собой приложения, каждое из которых состоит из определенного набора функциональных модулей. Эти модули выполняют конкретные бизнес-задачи, такие как управление капиталовложениями, администрирование трудовых ресурсов и управление качеством. Основными областями применения являются финансы, трудовые ресурсы и логистика.
Кроме базовых бизнес-функций SAP предлагает также продукты в следующих областях:
- Инструменты бизнес-анализа
- Управление цепочками поставок
- Управление взаимоотношениями с клиентами
- Электронная коммерция
- Трудовые ресурсы
- Финансы
- Недвижимость
- Окружающая среда, охрана здоровья, безопасность
SAP также предлагает организацию хранилищ данных на основе своих продуктов BIW и Supply Chain Optimization, Planning and Execution (SCOPE).
Настройка SAP
SAP предлагает конечным пользователям возможность использовать приложения SAP для поддержки бизнес-деятельности в целом, либо только для конкретных бизнес-процессов (например, производства или финансов). Пользователи SAP имеют возможность настраивать установленную систему, добавляя новые объекты базы данных и внося изменения в существующие функции. Например, компания может изменить базовую функцию SAP для настройки в соответствии с конкретным методом инвентаризации.
Хотя настройка SAP обеспечивает гибкость в указании конфигурации для каждой SAP-установки, это приводит к большим затратам на обновление. При каждом обновлении системы SAP необходимо идентифицировать каждую проведенную настройку под требования пользователя в ABAP-коде (Advanced Business Application Programming) и повторно осуществить ее на обновленном программном обеспечении SAP.
WebSphere MQ
Необходимо сделать больше, чем просто настройку SAP. Рассмотрим WebSphere MQ, мультиплатформенную программу промежуточного уровня, способную обмениваться сообщениями с приложениями SAP.
WebSphere MQ используется для реализации Web-сервисов и для интеграции Web-сервисов и приложений в гетерогенные сетях (например, Oracle на Linux®-сервере, а DB2 – на платформе Microsoft® Windows®). Используя WebSphere MQ, можно разработать Web-сервисы для реализации общения SAP с DB2 и Oracle, а также для асинхронного получения запрашиваемой информации.
Сбои при работе с сообщениями
Прежде чем перейти к вопросу о том, как можно использовать WebSphere MQ, давайте рассмотрим разновидности сообщений WebSphere MQ о сбоях. WebSphere MQ можно использовать для приема уведомлений о сбоях, произошедших в базе данных. Не все типы сбоев базы данных требуют взаимодействия с пользователем. Например, сбои при выполнении команды или процесса, а также сбои экземпляра базы данных не требуют вмешательства администратора. Ошибки пользователя и неисправности носителей, наоборот, требуют участия администратора. Эти неисправности обрабатываются путем восстановления в автономном или интерактивном режиме из резервных копий и повтор завершенных транзакций (roll-forward) для восстановления log-файлов.
Ошибки при выполнении команд
Ошибки выполнения команд возникают при наличии логической ошибки в приложении по следующим причинам:
- Команда выполняется в бесконечном цикле.
- Пользователь не имеет привилегий, необходимых для выполнения определенной задачи.
- Ошибка вставки из-за отсутствия свободного места.
При возникновении ошибки необходимо выполнить следующие минимальные действия:
- Увеличить дисковое пространство.
- Исправить ошибки в логике приложения.
- Назначить соответствующие пользовательские привилегии.
Ошибки процесса и экземпляра базы данных
На случай возникновения ошибок процессов и экземпляра базы данных можно разрешить автоматическое восстановление после сбоя путем установки конфигурации базы данных auto restart (автоматический перезапуск) в значение ON (по умолчанию установлена в ON). Ошибки процесса возникают при сбоях пользовательских, серверных или фоновых процессов, вызванных ненормальным завершением или отсоединением от этих процессов. Сбой процесса ведет к невозможности продолжения выполнения задачи.
Сбои экземпляра базы данных обычно вызываются сбоями операционной системы или исчезновением питания. В DB2, когда менеджер базы данных и структуры памяти прекращают работу из-за исчезновения питания, повреждения диска или ошибок в сети, необходимо выполнить процедуру восстановления после сбоев для приведения DB2 в состояние непротиворечивости и пригодности к использованию. Для ручного перезапуска базы данных можно воспользоваться командой RESTART DATABASE.
Пользовательские ошибки
Пользовательские ошибки требуют вмешательства администратора. Они возникают при создании допустимых, но вредносных команд (например, удаление всей таблицы платежной ведомости, удаление таблицы платежных требований или даже непреднамеренное удаление всей базы данных) и может привести к длительному простою приложений. Команды языка DDL (Data Definition Language) нельзя откатить, поэтому, если пользовательская ошибка была в DDL-команде, необходимо принять соответствующие меры для восстановления базы данных.
Неисправности носителей
Неисправности носителей возникают, когда кто-то случайно удаляет файл базы данных из файловой системы или полностью приходит в негодность жесткий диск со всеми файлами, что приводит к недоступности или повреждению данных. Это более серьезный тип неисправности, чем описанные выше.
Обычно неисправности носителей вызываются либо по причине полной потери файла данных, либо рассинхронизации временной метки SCN (system change number) с остальной базой данных. Поскольку неисправности носителей являются наиболее сложным из всех типов неисправностей, необходимо иметь хорошо продуманную стратегию их устранения.
Публикация/подписка на сообщения
Чтобы реализовать общение SAP с DB2 и Oracle, необходимо разработать три Web-сервиса: SAP, DB2 и Oracle. Ниже приведена последовательность рабочих процессов, начиная с клиентского Web-сервиса:
- Клиентский Web-сервиса посылает MQ-сообщение Web-сервису SAP о необходимости организовать общение с DB2 и Oracle.
- Web-сервис SAP переправляет это сообщение адресатам.
- Web-сервис DB2 передает Web-сервису SAP ответ, уведомляя о получении запроса, а затем передает состояние запрошенной информации. Таким же образом Web-сервис Oracle передает Web-сервису SAP ответ, уведомляя о получении запроса, а затем передает состояние запрошенной информации.
Если имеется задержка передачи информации Web-сервисами DB2 или Oracle, клиент Web-сервиса SAP переходит в режим ожидания. При поступлении запрошенной информации только из DB2, она помещается в очередь сообщений. При получении информации из Oracle, DB2-сообщение извлекается из очереди. Наконец, Web-сервис SAP фильтрует, сравнивает и вычисляет информацию, затем передает ее в SAP-приложение через Web-клиент SAP.
Общение с несколькими издателями
В предыдущем сценарии Web-сервис SAP использовал одного или нескольких подписчиков, которые подписывались на выбранную тему. Web-сервисы DB2 и Oracle являются издателями, передающими предупреждения и сообщения, содержащие информацию по теме, всем подписчикам этой темы. Web-сервис SAP может быть издателем информации по другим темам.
Поскольку Web-сервисы DB2 и Oracle являются издателями, они используют брокера для возможности работы со всеми подписчиками данной темы, не зная подробностей об этих подписчиках. Брокер имеет информацию о темах подписки кажого из подписчиков, а также о способах доставки сообщений. Издатели не знают ничего о том, сколько имеется подписчиков. Поэтому система обмена сообщениями по принципу публикации и подписки полностью отделяет провайдера информации (издателя) от потребителя этой информации (подписчика).
Запросы и критически важные данные
Данные, проходящие по инфраструктуре системы обмена сообщениями, могут быть грубо разделены на две категории: запросы и критически важные данные (business-critical). Запросы - это временные передаваемые по системе данные, унаследованные из данных, надежно хранящихся внутри системы. Если запрос теряется, это может быть неудобно для инициатора запроса, но оригинальные данные остаются в системе и могут быть запрошены повторно.
Критически важные данные - это данные, которые больше в системе нигде не хранятся. Если эти данные теряются, вы теряете важную информацию или пропускаете изменение состояния внутри системы. Поскольку немалая доля сообщений, проходящих через инфраструктуру системы обмена сообщениями, содержат критически важные данные, важно не потерять эти сообщения.
Тестовая и рабочая среда
Тестирование - это очень важная часть разработки и развертывания нового сервиса в информационной системе предприятия. Раннее обнаружение проблем может значительно уменьшить их последствия и сократить ресурсы, необходимые для их исправления. Рекомендованной методикой для разработки приложений является наличие двух отдельных сред: рабочей среды и тестовой среды обеспечения качества (quality assurance - QA).
Тестовая среда должна максимально точно соответствовать рабочей среде, включая аппаратное обеспечение, операционные системы, программное обеспечение инфраструктуры, конфигурацию и все сервисы. Любые изменения, запланированные для рабочей среды, должны быть разработаны и протестированы в QA-среде перед их применением в рабочей среде, с учетом необходимости сохранения целостности важной информации, передаваемой по сетям общего пользования.
Заключение
Для реализации общения SAP с DB2 и Oracle с использованием WebSphere MQ необходима команда разработчиков, тестировщиков, системных администраторов и потенциальных пользователей. Для недопущения избыточных нагрузок на систему необходимо заранее спланировать процессы создания, тестирования и развертывания Web-сервисов при разработке рабочих процессов между Web-сервисами SAP, DB2 и Oracle. Решение этих задач значительно облегчает разработку Web-сервисов.
Ресурсы Научиться
- Оригинал статьи "Develop Web services to integrate SAP with DB2 and Oracle using IBM WebSphere MQ" (EN).
-
Полная серия статей Джуди Майерсон предлагает информацию о принципах работы с Web-сервисами в корпоративных сервис-ориентированных архитектурах (Service-Oriented Architecture - SOA).(EN)
- В серии статей Джуди Майерсон "Использование SLA в контексте Web-сервисов" (EN) приведена подробная информации о соглашениях по уровню сервиса (service-level agreement).
- Подробная информация об IBM Rational® Performance Tester и IBM Rational Functional Tester Plus.(EN)
- "Реализация больших RID в SAP-среде с использованием DB2 9" (EN) (developerWorks, февраль 2007).
- IBM Redbooks: "Передовой опыт использования SAP BI на базе DB2 9 для z/OS" (EN).
- Дополнительная информация о WebSphere MQ.(EN)
- В книге Джуди Майерсон "
Все о промежуточном программном обеспечении
" (EN) рассмотрены основные принципы и приоритеты дизайна систем и выделены новые требования, привнесенные ростом электронной коммерции и распределенных интегрированных систем.(EN)
- Суть и технические секреты успешной системной интеграции в книге "
Интеграция корпоративных систем, второе издание
" (EN).
- IBM Redbooks: Основы разработки соглашения по уровню сервиса в книге "Tivoli® Manager for Domino V2.1. Выполнение соглашений по уровню сервиса с использованием технологии Tivoli" (EN).
-
Раздел SOA и Web-сервисов на IBM developerWorks содержит сотни информативных статей и учебные руководства начального, среднего и высокого уровня сложности по вопросам разработки приложения, использующих Web-сервисы.
-
Раздел Information Management на IBM developerWorks содержит огромный объем информации, в том числе статьи, учебные руководства, информацию о продуктах, бесплатные файлы для загрузки, форумы и многое другое.
-
Web-сайт IBM SOA предлагает обзор SOA и помощь IBM в этом вопросе.(EN)
- Следите за техническими событиями и web-трансляциями на developerWorks. В частности, обратите внимание на следующие технические брифинги по теме SOA и Web-сервисов:
- Книги по этой и другим техническим темам в книжном магазине Safari.(EN)
- Быстрые Web-сервисы по требованию.(EN)
Получить продукты и технологии
Обсудить
Об авторе  | |  | Джудит М. Майерсон (Judith M. Myerson) - разработчик архитектуры систем, инженер, писатель. В сферу ее интересов входят технологии промежуточного программного обеспечения, системы масштаба предприятия, технологии баз данных, разработка приложений, управление сетями, распределенные системы, технологии на основе компонентов и управление проектами. С ней можно связаться по электронной почте: jmyerson@bellatlantic.net
|
Выскажите мнение об этой странице
|  |