Создание примера программы мониторинга состояния DB2 для PHP

Часть 1. Использование DB2 9 для реализации SOA

Одна парадигма – бесконечные возможности

Comments

Серия контента:

Этот контент является частью # из серии # статей: Создание примера программы мониторинга состояния DB2 для PHP

Следите за выходом новых статей этой серии.

Этот контент является частью серии:Создание примера программы мониторинга состояния DB2 для PHP

Следите за выходом новых статей этой серии.

Постановка задачи

Цель разработки концепции программы мониторинга состояния DB2 – это поддержать линию IBM на широкое продвижение сервис-ориентированной архитектуры в массы, в моем случае – продемонстрировать ее в ракурсе DB2. Программа мониторинга состояния DB2 была разработана с учетом ряда инициатив, призванных сделать из нее жизнеспособное бизнес-решение с точки зрения следующих аспектов:

  • Стоимость – применение подходящих open-source технологий и рациональное использование существующей инфраструктуры
  • Разработка – максимальная возможная независимость от языка программирования и операционной системы
  • Масштабируемость – обеспечение возможности масштабирования как старых, так и новых технологий с минимальными затратами человеческих ресурсов
  • Удобство обслуживания – применение лучших методик и стандартов для снижения затрат на будущее развитие

Пример программы мониторинга состояния DB2 был разработан таким образом, чтобы объединить в себе эти инициативы, показать разработчикам приложений, как представить существующие данные в виде сервиса, и продемонстрировать руководителям предприятий достоинства SOA, не загружая их излишними техническими подробностями.

В этой серии из двух статей описывается пример программы мониторинга состояния DB2 на PHP с двух различных ракурсов – SOA и работы с XML-данными.

Сервис-ориентированная архитектура (SOA)

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

  • Выбор лучшей технологии для поставленной задачи.
  • Выбор достаточной технологии для поставленной задачи.

В любом случае разработчику приходится искать компромисс между возможностью повторного использования кода, независимостью от платформы и производительностью, одновременно избегая привязки к конкретному поставщику.

Чтобы разобраться с этой проблемой, разработчикам приложений требуется решение, позволяющее добиться гибкости программного стека при обеспечении возможности работы с существующими данными и поддержании надлежащего качества обслуживания. В сервис-ориентированной архитектуре (SOA) это достигается путем использования XML в качестве общей среды, через которую могут взаимодействовать ранее несовместимые стеки программного обеспечения. На рисунке 1 изображен типовой стек компонентов SOA.

Рисунок 1. Стек компонентов SOA
Стек компонентов SOA
Стек компонентов SOA

В случае нашего приложения мониторинга состояния DB2 используется следующий стек компонентов:

  • Представление: HTML, CSS, JS (AJAX)
  • Бизнес-логика: PHP
  • Источники данных: DB2 9 Express-C
  • Web-сервер: Apache HTTP Server
  • Операционная система: Windows и Linux

Согласно идее SOA, и с учетом поставленных задач стек ПО, используемый для нашей программы мониторинга состояния DB2, является лучшим выбором с технической точки зрения:

  1. На уровне представления технология AJAX как нельзя лучше соответствует концепции мониторинга состояния, поскольку может использоваться для асинхронного получения частых, периодических обновлений информации о системе.
  2. На уровне бизнес-логики язык PHP, применяемый в виде промежуточного логического уровня, является нетребовательной альтернативой таким тяжеловесным корпоративным платформам, как J2EE или .NET.
  3. PHP, Apache и Linux иллюстрируют использование DB2 в рамках open-source технологий.

Однако, несмотря на использование лучших технологий, парадигма SOA все еще приводит к проблемам, в первую очередь касающимися конвертации данных в формат XML.

В прошлом и даже в настоящее время разработчики приложений решают эту проблему, используя языки программирования промежуточного уровня, такие как PHP, Java или C#, на уровне доступа к данным или уровне бизнес-логики для манипулирования данными и преобразования их к нужному виду. Хотя такой подход допустим, он явно нарушает оптимальные методики разработки программного обеспечения.

В действительности помимо непосредственного хранения информации в задачи базы данных входит также использование языка манипулирования данными (Database Manipulation Language, DML), с помощью которого эти данные обновляются и возвращаются в требуемой форме. Для этого не следует использовать языки программирования, так же, как не следует выполнять два SQL-запроса и затем вручную соединять данные на промежуточном уровне. Это же относится и к использованию существующих данных XML или к созданию данных XML на основе полученных SQL-данных.

Исторически сформировалась идея, что каждый значительный этап в развитии архитектуры программного обеспечения требует развития системы управления базами данных (СУБД) или механизмов хранения данных. Аналогично тому, как механизмы хранения данных эволюционировали от неформатированных файлов к реляционным БД (в силу необходимости использовать многопользовательские и многоуровневые приложения), внедрение SOA (в особенности Web-сервисов) приводит к необходимости иметь СУБД, позволяющую использовать XML.

Благодаря технологии pureXML™ и механизму гибридной базы данных, программное обеспечение СУБД IBM DB2 9 решает эту проблему с двух ракурсов:

  • Работа с данными в традиционном формате
  • Работа с данными XML

Основная идея pureXML заключается в том, что независимо от способа хранения (традиционные типы данных SQL или новый тип XML) данные могут быть извлечены и представлены в виде XML.

Упомянутый выше подход используется в примере программы мониторинга состояния DB2. Сначала вся информация о состоянии собирается путем выполнения определяемых пользователем функций (User Defined Functions, UDF), которые уже существуют в БД, и возвращается в виде данных типа SQL в форме реляционной таблицы. После этого средствами самого механизма DB2 9 вся эта информация преобразуется в формат XML.

С архитектурной точки зрения парадигма SOA в сочетании с использованием pureXML выглядит следующим образом:

Рисунок 2. Архитектура SOA-приложения
Архитектура SOA-приложения
Архитектура SOA-приложения

Как показано на рисунке 2, простое, завершенное приложение SOA состоит из двух частей: поставщик и клиент. Как в случае с примером программы мониторинга состояния DB2 на PHP, каждый из этих компонентов может в свою очередь подразделяться на ряд пакетов, точно распределенных по конкретным уровням: уровень представления, уровень бизнес-логики и уровень доступа к данным (так, как это описано в парадигмах оптимальных методик разработки программного обеспечения).

Со стороны поставщика существует два пакета:

  1. База данных поставщика Web-сервиса – пакет для подключения к источнику данных, построения и выполнения запросов.
  2. Поставщик Web-сервиса – пакет, содержащий функции представления данных в сети Web посредством WSDL (стандартизированный формат документов XML) и сервера SOAP, через который происходит взаимодействие.

Со стороны клиента также существует два пакета:

  1. Клиент Web-сервиса – пакет, который содержит клиент SOAP, посылающий запросы Web-сервису и получающий выходные данные в формате XML.
  2. Графический пользовательский интерфейс клиента Web-сервиса – пакет, отображающий данные XML в удобном для восприятия пользователей формате.

Интересной особенностью программы мониторинга состояния DB2 является передача данных XML с уровня источника данных на уровень представления. За исключением способа хранения исходных данных (в традиционном формате SQL) и завершающей стадии визуализации данных для конечного пользователя (хотя эти данные можно с успехом отобразить и в формате XML с помощью таблицы стилей) все данные обрабатываются в формате XML.

Здесь снова, технология DB2 9 pureXML преобразует данные SQL в формат XML в рамках самого механизма базы данных с использованием операторов языка XQuery. Подобно тому, как SQL является языком манипулирования данными (DML) для традиционных реляционных структур, XQuery выступает в роли эквивалента DML для XML. Используя пакет базы данных поставщика Web-сервиса, программа мониторинга состояния DB2 просто осуществляет доступ к данным; с помощью операторов XQuery она формирует и посылает запросы механизму DB2 9 для сбора, описания и компоновки данных в формате XML.

Хотя этот пример представляет собой лишь отдельную программу, представьте себе, как это будет выглядеть на корпоративном уровне, когда имеется n уровней, n служб и n приложений. Даже при централизованном подходе к управлению службами и совместному использованию общих задач, если каждое приложение само занимается манипулированием данными БД для их представления в виде XML, то с точки зрения разработки приложений мы нарушаем целостность данных, которая уже была гарантирована базой данных.

Заключение

В этой статье было рассмотрено создание примера программы мониторинга состояния DB2 на PHP с точки зрения SOA. Вы увидели, каким образом СУБД DB2 9 поддерживает идею обеспечения гибкости стека ПО и использования оптимальных методик разработки программного обеспечения.

В следующей статье будет рассмотрено создание примера программы мониторинга состояния DB2 с точки зрения pureXML. На подробных примерах кода будут показаны преимущества, которые дает такой подход разработчикам, администраторам баз данных и организации в целом. Данные примеры содержат в себе фрагменты кода PHP, SQL-запросы, запросы SQL/XML и предложения XQuery.


Ресурсы для скачивания


Похожие темы


Комментарии

Войдите или зарегистрируйтесь для того чтобы оставлять комментарии или подписаться на них.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Information Management, SOA и web-сервисы
ArticleID=343451
ArticleTitle=Создание примера программы мониторинга состояния DB2 для PHP: Часть 1. Использование DB2 9 для реализации SOA
publish-date=10062008