Создание примера программы мониторинга состояния DB2 для PHP: Часть 1. Использование DB2 9 для реализации SOA

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

С учетом недавнего роста популярности сервис-ориентированных архитектур (SOA), и в особенности Web-сервисов, возникла необходимость в дальнейшем развитии систем управления базами данных. СУБД IBM® DB2® 9 является решением, позволяющим разработчикам использовать наиболее подходящие технологии для написания своих приложений, не применяя дополнительную промежуточную логику для использования новых парадигм разработки, таких как SOA. Я покажу, как это можно сделать, на примере программы мониторинга состояния DB2.

Ризван Теджпар, разработчик систем управления DB2, WSO2 Inc

Ризван Теджпар (Rizwan Tejpar) является студентом программы Industry Internship Program (IIP) корпорации IBM, где он разрабатывает примеры приложений для демонстрации работы DB2 с open-source технологиями. Он выступал на конференции ZendCon в 2006 году и на конференции SDWest в 2007 году, где демонстрировал на стенде торговой выставки возможности DB2 pureXML™ для разработчиков ПО. Самым последним вкладом автора является пример программы мониторинга состояния DB2 для PHP, разработанный на основе архитектуры SOA. Ризван владеет несколькими языками программирования, в том числе C++, C# .NET, SQL, XQuery и JSP.



06.10.2008

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

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

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

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

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

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

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

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

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

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

Рисунок 1. Стек компонентов 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-приложения

Как показано на рисунке 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.

Ресурсы

Научиться

Получить продукты и технологии

Обсудить

Другие файлы для загрузки

  • Демо: Web 2.0 Starter Toolkit for DB2 (Демо-версия программы мониторинга состояния включена в пакет Web 2.0 Starter Toolkit for DB2 (PHP))

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


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