Universal Services представляют собой простой, но фиксированный набор операций с базами данных, позволяющих запрашивать и изменять XML-данные, хранящиеся в столбце pureXML базы данных DB2. К этим операциям относятся вставка, обновление, удаление и запрос данных, отображаемые в виде Web-сервисов через механизм Data Web Service.
Data Web Services позволяют отображать операции с базой данных, такие как вставка или обновление, в виде Web-сервисов без кодирования. Data Web Services позволяют также отображать в виде Web-сервисов хранимые процедуры и определяемые пользователем функции. Разработка Data Web Services уже рассматривалась в других статьях и учебных руководствах на developerWorks. Их список приводится в разделе "Ресурсы".
На рисунке 1 представлен обзор архитектуры Universal Services.
Рисунок 1. Обзор архитектуры Universal Services
Назначением Universal Services является реализация запросов и изменений любого столбца pureXML в базе данных DB2 через операции Web-сервисов, которые делаются доступными посредством простых действий по настройке и развертыванию. Более подробная информация по этим действиям приведена в файле readme загрузочного пакета Universal Services, в котором даны полные пошаговые инструкции.
В данной статье рассматривается настройка, развертывание и изменение Universal Services на примере базы данных. Поэтому статья разбита на три следующих раздела:
- Настройка примера базы данных. Описывается настройка примера базы данных, которая будет использоваться в данной статье для демонстрации процесса настройки Universal Services.
- Установка Universal Services. Рассматривается процесс настройки и развертывания Universal Services.
- Изменение Universal Services. Рассматривается изменение Universal Services для соответствия вашей среде.
Подробная информация о том, где найти необходимые загрузочные файлы для каждого шага, приведена в соответствующих разделах данной статьи.
Для установки и запуска Universal Services необходимо иметь установленные DB2 9.x, Java Runtime Environment 1.5.0 и Web-сервер (например, WebSphere® Application Server V6.x или Apache Tomcat V6.x). Отметим, что Java Runtime является частью установки DB2.
Вам нужно также получить два разных загрузочных файла: пакет IRS e-File 1120, являющийся частью интерактивного демонстрационного набора отраслевых форматов и сервисов (Industry Formats and Services), и сам пакет универсальных сервисов (Universal Services). Ссылки на эти загрузочные файлы приведены в разделе "Загрузка". Эти файлы необходимы для выполнения действий, рассматриваемых в данной статье.
Universal Services можно настроить для любого столбца pureXML базы данных DB2. В следующем разделе рассказывается, как установить пример базы данных, которая будет использоваться на протяжении всей статьи для демонстрации процесса настройки и установки этих сервисов. Создаваемый здесь пример базы данных основан на бесплатных и общедоступных загрузочных файлах, являющихся частью интерактивных демонстрационных материалов DB2 pureXML, называемых Industry Formats and Services with pureXML.
Каждый из этих загрузочных файлов содержит набор сценариев, позволяющих пользователям легко настроить базу данных, предназначенную для конкретной отрасли, например для финансовых учреждений или организаций здравоохранения. Сценарий, использующийся в данной статье, создает пример базы данных и таблицу, содержащую столбец pureXML, а затем загружает данные примера в базу. Загрузочные файлы содержат и другие сценарии, которые могут представлять интерес (например, сценарии для регистрации XML-схемы, для проверки соответствия XML-документов зарегистрированным XML-схемам и для запроса XML-данных с использованием XQuery или SQL/XML), но они не рассматриваются в данной статье. Дополнительная информация по загрузочным файлам, предназначенным для конкретной отрасли, приведена в разделе "Ресурсы".
Данная статья основана на загрузочном пакете IRS e-File 1120, который является электронной версией формы налоговой декларации США IRS Tax Form 1120. Здесь предполагается, что вы загрузили и разархивировали пакет IRS e-File 1120 в локальный временный рабочий каталог. В данной статье используется каталог c:\temp\irs1120.
Рисунок 2. Содержимое загрузочного пакета IRS e-File 1120, разархивированного в локальный временный рабочий каталог
Сценарий, выполняющий настройку примера базы данных на вашей системе, называется "start.bat" (для пользователей Linux: "start.sh"). Чтобы выполнить этот сценарий, откройте окно процессора командной строки DB и перейдите в текущий рабочий каталог, содержащий загруженные файлы. Данный каталог содержит также файл start.bat. Выполните этот сценарий start.bat.
После завершения сценария вы должны увидеть сообщение, указывающее, что настройка базы данных завершена. Если в сообщении говорится что-то другое, просмотрите файл readme, включенный в загрузочный пакет IRS e-File 1120. Если все прошло удачно, на вашей системе установится пример базы данных DB2, содержащий столбец pureXML и данные, загруженные в столбец pureXML. Если говорить конкретнее, таблица базы данных, содержащей столбец pureXML, имеет следующую структуру:
Таблица 1. Структура таблицы примера IRS1120
| Название столбца | Тип столбца | Описание |
|---|---|---|
| ID | INTEGER | Представляет собой уникальный идентификатор для каждой записи, вставляемой в таблицу. |
| COMMENT | VARCHAR(1000) | Используется для хранения комментария к каждой записи таблицы. |
| DOCUMENT | XML | Третий столбец этой таблицы имеет тип XML и используется для хранения XML-данных. Этими данными, в частности, являются все XML-документы IRS e-File 1120 XML. |
В следующих разделах мы на основе примера базы данных покажем, как настраивать и устанавливать Universal Services для конкретного столбца pureXML.
В данном разделе предполагается, что вы загрузили и разархивировали пакет Universal Services в локальный временный рабочий каталог. В данной статье используется каталог c:\temp\UniversalServices.
Рисунок 3. Содержимое загрузочного пакета Universal Services, разархивированное в локальный временный рабочий каталог
Теперь, имея необходимые файлы и сценарии на вашей системе, можно приступить к процессу установки Universal Services, который в общем случае состоит из трех шагов. Эти шаги, рассмотренные более подробно ниже, демонстрируют, как:
- Настраивать Universal Services под вашу локальную систему.
- Развертывать Universal Services на сервере приложений.
- Тестировать Universal Services при помощи встроенной тестовой страницы.
Настройка Universal Services осуществляется посредством сценария configure.bat, содержащегося в загрузочном пакете (для пользователей Linux - "configure.sh"). Однако перед выполнением сценария его необходимо настроить под вашу локальную систему, как показано в таблице 2.
Таблица 2. Обзор параметров, использующихся в сценарии настройки
| Название параметра | Описание | Значение (согласно примеру базы данных) |
|---|---|---|
| DB2INSTALLDIR | Путь к каталогу установки DB2. | C:\Program Files\IBM\SQLLIB |
| DBSCHEMA | Название схемы базы данных, которой принадлежит таблица, содержащая столбец XML. | IRS1120ADMIN |
| DBNAME | Название базы данных, с которой используются Universal Services. | IRS1120 |
| DBTABLE | Название таблицы, содержащей XML-столбец. | IRS1120 |
| DBPRIMARY | Название первичного столбца таблицы, указанной в DBTABLE. Этот столбец может иметь тип либо INTEGER, либо VARCHAR. | ID |
| DBCOMMENT | Название столбца комментариев таблицы, указанной в DBTABLE. | COMMENT |
| DBXML | Название XML-столбца таблицы, указанной в DBTABLE. Это столбец, содержащий XML-данные. | DOCUMENT |
Отметим, что три параметра в таблице 2 - DBPRIMARY, DBCOMMENT, DBXML - аналогичны параметрам таблицы 1.
Измените конфигурационный файл Universal Services так, чтобы он соответствовал информации, приведенной в таблице 2. Например, set DBNAME=SAMPLEDB нужно изменить на set DBNAME=IRS1120. На рисунке 4 показан конфигурационный файл после изменения настроек в соответствии с таблицей 2.
Рисунок 4. Изменение конфигурационного файла configure.bat
После изменения файла configure.bat (для пользователей Linux: configure.sh) можно запустить сценарий, чтобы выполнить реальную настройку Universal Services, такую как изменение названия столбца. Затем сценарий создает WAR-файл (Web application archive), содержащий все необходимые файлы для Web-приложения Universal Services, который можно развернуть на вашем сервере приложений. Помните, что сценарий должен выполняться в процессоре командной строки DB2, в противном случае он работать не будет.
Развертывание Universal Services
После изменения и выполнения сценария configure.bat, рассматривавшегося в предыдущем разделе, созданный WAR-файл может быть развернут на вашем сервере приложений. Перед развертыванием WAR-файла необходимо настроить источник данных, что позволит сервисам Universal Services обращаться к вашей базе данных DB2.
Для настройки источника данных выполните стандартный процесс конфигурирования сервера приложений. Единственным требованием, которое необходимо учесть во время настройки, является название источника данных, которое должно соответствовать следующему шаблону: jdbc/[название базы данных]. Названием источника данных для примера, использующегося в данной статье, является jdbc/irs1120. Если для настройки источника данных вам нужна дополнительная информация, обратитесь к справочному руководству по вашему серверу приложений либо прочтите файл readme, включенный в загрузочный пакет Universal Services.
Вторым шагом является развертывание реального WAR-файла на сервере приложений. Однако необходимо отметить, что из-за различий в артефактах Web-сервисов, необходимых для WebSphere Application Server V6.x и Apache Tomcat V6.x, конфигурационный сценарий создает два отдельных WAR-файла, по одному на каждый из перечисленных серверов приложений.
Созданные WAR-файлы можно найти в подкаталоге war, расположенном в рабочем каталоге Universal Services - c:\temp\UniversalServices. В частности, каталог war содержит два подкаталога: tomcat и was. Каталог tomcat содержит WAR-файл, устанавливаемый на Apache Tomcat V6.x, а каталог was содержит WAR-файл, устанавливаемый на WebSphere Application Server V6.x. Для установки WAR-файла на вашем сервере приложений выполните стандартную процедуру. Если вам нужна дополнительная информация, обратитесь к справочному руководству по вашему серверу приложений либо прочтите файл readme, включенный в загрузочный пакет Universal Services.
Теперь можно протестировать настройку при помощи тестовой страницы Universal Services, которая становится доступной после развертывания WAR-файла. Процесс тестирования рассматривается в следующем разделе.
Тестирование Universal Services
Для проверки успешности установки и настройки Universal Services на локальной системе необходимо протестировать сервисы. Самым простым способом сделать это является использование простой HTML-страницы, уже доступной на сервере приложений после развертывания Universal Services.
К тестовой странице Universal Services можно обратиться путем перехода в браузере по адресу URL http://localhost:8080/UniversalServices/testServices.html. Отметим, что в зависимости от настроек локальной системы имя хоста или порт могут отличаться от указанных.
Рисунок 5. Снимок экрана встроенной тестовой страницы
Эта простая тестовая страница позволяет вставлять, обновлять, удалять и запрашивать XML-данные в базе данных через Universal Services. Web-сервисы активизируются при помощи кнопок, размещенных на тестовой странице. На рисунке 6 показан ответ Web-сервиса. Была активизирована операция Web-сервиса getPrimaryKeys нажатием кнопки, размещенной на тестовой странице.
Рисунок 6. Ответ после активизации операции Web-сервиса getPrimaryKeys
Если необходимо изменить Universal Services (например, для ввода нового параметра), можно импортировать проект Universal Services Data Development Project, приведенный в загрузочном файле Universal Services Data Project, в Data Studio. В следующих разделах рассказывается, как импортировать проект в Data Studio и как настроить его (например, настроить соединение с базой данных или настроить названия схем базы данных). Для выполнения действий, приведенных ниже, запустите Data Studio.
Импорт Universal Services Data Development Project
После запуска Data Studio щелкните правой кнопкой мыши на пустой области внутри Data Project Explorer. Появится подменю. В этом подменю выберите пункт Import, как показано на рисунке 7.
Рисунок 7. Выбор опции Import для загрузки проекта Universal Services Data Development Project
В отдельном окне откроется мастер импорта Import Wizard, как показано на рисунке 8. На первом шаге выберите вариант Existing Projects into Workspace, который распложен в группе "General". Для продолжения нажмите кнопку Next.
Рисунок 8. Import Wizard - выбор источника импорта
Следующий шаг - идентификация архивного файла, содержащего проект Universal Services Data Development Project. Для этого выберите Select archive file. Затем нажмите кнопку Browse и выберите архивный файл. Архивный файл называется universal_services_data_studio_project.zip и располагается в локальном временном рабочем каталоге, в который вы разархивировали пакет Universal Services. В данной статье таким каталогом является c:\temp\UniversalServices.
После выбора архивного файла мастер Import Wizard выводит список всех доступных в архиве проектов, как показано на рисунке 9. Поскольку архивный файл, поставляемый в загрузочном пакете, содержит только Data Development Project for the Universal Services, в разделе Projects перечисляется только один проект. Отметим, что если в рабочей области уже имеется проект с названием ("services"), аналогичным Universal Services, мастер Import Wizard не отобразит проект в разделе Projects. То есть мастер Import Wizard не позволит вам импортировать проект Universal Services Data Development.
Рисунок 9. Import Wizard - выбор архивного файла
После выбора архивного файла и проектов нажмите кнопку Finish для завершения процедуры импорта. После этого импортированный проект Universal Services Data Development появится в Data Project Explorer, как показано на рисунке 10.
Рисунок 10. Импортированный проект Data Development Project в Data Project Explorer
Настройка соединения с базой данных
После импорта проекта Universal Services Data Development Project в рабочую область необходимо настроить соединение с базой данных. На рисунке 10 показан проект, использующий соединение с базой данных, называющееся "Universal Services Database Connection". Кроме того, можно заметить, что соединение ссылается на базу данных SAMPLEDB, доступную на локальном хосте (localhost), порт 50000. Для настройки параметров соединения с базой данных под вашу локальную конфигурацию щелкните правой кнопкой мыши на соединении Universal Services Database Connection в Database Explorer и выберите Edit Connection, как показано на рисунке 11.
Рисунок 11. Доступ к параметрам соединения с базой данных через Database Explorer
Откроется отдельное окно, позволяющее настраивать подробности соединения с базой данных, такие как название базы данных, имя хоста, номер порта, информация о пользователе и много других параметров, как показано на рисунке 12. Отметим, что можно также сразу протестировать настройку, нажав кнопку Test Connection.
Для пользователей Linux. При импорте проекта в Data Development Project в Data Studio на системе Linux необходимо настроить параметр Class location:, определяющий местоположение драйвера базы данных DB2. Драйвер базы данных расположен в подкаталоге java каталога установки DB2 (например, /home/db2inst1/sqllib/java).
Рисунок 12. Параметры соединения с базой данных
Настройка названия схемы базы данных
Все SQL-операции, отображаемые в виде операций Web-сервисов и предварительно импортированные в рабочую область, используют полностью определенные SQL-выражения. Это означает, что, например, для указания названий таблиц используется название схемы базы данных (например, SELECT ID FROM IRS1120ADMIN.IRS1120).
Альтернативным подходом является отказ от кодирования названий схемы базы данных в SQL-выражениях и использование названия схемы по умолчанию. Одним из способов настройки названия схемы базы данных является изменение свойств проекта Universal Services Data Development Project. Для этого щелкните правой кнопкой мыши на проекте Universal Services Data Development Project и выберите Properties (как показано на рисунке 13).
Рисунок 13. Доступ к свойствам проекта Data Development Project
Откроется окно Properties для проекта Universal Services Data Development Project. После выбора Development в меню, расположенном в левой стороне окна, можно настроить название схемы базы данных, использующееся в SQL-выражениях.
Рисунок 14. Настройка названия схемы базы данных
После настройки импортированного проекта под конфигурацию локальной системы можно изменить и развернуть измененные сервисы Universal Services через Data Studio. Отметим, что одна операция, а именно runxqueryXML, требует регистрации определенной пользователем функции. Для этого в Data Studio Development Project предоставляется SQL-сценарий "createXQueryXMLUDF.sql".
Ссылки на дополнительную информацию о создании и отображении новых операций с использованием Data Studio можно найти в разделе "Ресурсы" данной статьи.
При настройке операций с базой данных для подключения входных и выходных параметров используются маркеры параметров (parameter markers). Universal Services поддерживают два типа маркеров параметров. Первый вариант - использование маркера параметров "?", при котором ассоциированное с параметрами имя по умолчанию генерируется автоматически, например "p1" или "p2". Второй вариант - использование маркера параметров ":", при котором параметр идентифицирует ассоциированная строка символов, например ":id".
Эти две альтернативы иллюстрирует приведенный далее пример. Пример основан на операции Universal Services с базой данных, удаляющей запись из таблицы. Обе операции, представленные ниже, имеют одинаковое предназначение, но используют различные типы маркеров параметров:
- Вариант 1:
DELETE FROM DB2ADMIN.SAMPLETABLE WHERE ID = ? - Вариант 2:
DELETE FROM DB2ADMIN.SAMPLETABLE WHERE ID = :id
На основании операций с базой данных генерируется WSDL-файл (Web Service Description Language), например, через Data Studio. WSDL-файл описывает операции Web-сервисов, включая их параметры. Сгенерированный WSDL-файл зависит от типа используемых в операциях с базой данных маркеров параметров. Для варианта 1 названия параметров в операциях Web-сервисов генерируются автоматически, например, "p1" или "p2" (см. листинг 1).
Листинг 1. Фрагмент WSDL-файла, сгенерированного при использовании варианта 1
...
<element name="deleteDocument">
<complexType>
<sequence>
<element name="p1" nillable="true" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="deleteDocumentResponse">
<complexType>
<sequence>
<element name="updateCount" type="xsd:int"/>
</sequence>
</complexType>
</element>
... |
В варианте 2 названия параметров в операциях Web-сервиса используют те же символьные строки, которые указываются в операциях с базой данных, например, "id" или "document" (см. листинг 2).
Листинг 2. Фрагмент WSDL-файла, сгенерированного при использовании варианта 2
...
<element name="deleteDocument">
<complexType>
<sequence>
<element name="id" nillable="true" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="deleteDocumentResponse">
<complexType>
<sequence>
<element name="updateCount" type="xsd:int"/>
</sequence>
</complexType>
</element>
... |
Пакет, выбранный в качестве основы для данной статьи, использует вариант 1. Но загрузочный пакет, сопровождающий статью, содержит также еще один пакет Universal Services и проект Data Development, которые используют вариант 2. Если вы предпочитаете работать с вариантом 2, найдите архивный файл universal_services_alternative_2.zip, как показано на рисунке 15, внутри загрузочного пакета, сопровождающего данную статью. Затем вы можете использовать содержимое архивного файла в качестве основы для настройки, развертывания, тестирования и изменения Universal Services.
Рисунок 15. Содержимое загрузочного пакета Universal Services, разархивированного в локальный временный рабочий каталог
В данной статье показано, как можно просто и естественно отобразить столбцы pureXML базы данных DB2 через операции Web-сервисов с использованием сценариев без запуска отдельной инструментальной программы. Установленные сервисы Universal Services можно использовать для создания своих собственных прототипов или приложений.
В трех приведенных ниже примерах в качестве основы уже используются Universal Services:
- Интерактивная демонстрация для Industry Formats and Services with pureXML.
- "Использование отраслевых стандартных форматов данных с WebSphere ESB и DB2 Version 9 pureXML" (developerWorks, июнь 2007 г.).
- "Отображение DB2 Version 9 pureXML с использованием WebSphere Integration Developer" (developerWorks, сентябрь 2007 г.).
- "XForms и DB2 pureXML" (developerWorks, май 2008 г.).
Надеемся, что Universal Services и информация, представленная в данной статье, помогут вам быстро приступить к разработке своего собственного проекта DB2 pureXML.
| Описание | Имя | Размер | Метод загрузки |
|---|---|---|---|
| Пакет Universal Services | UniversalServices.zip | 8 МБ | HTTP |
Другие файлы для загрузки
- Образец кода: IRS e-File 11201
Заметка
- Доступен как часть интерактивной демонстрации Industry Formats and Services with pureXML - перейдите по ссылке Download.
Научиться
- Оригинал статьи "Universal Services for pureXML using Data Web Services" (EN).
-
Отраслевые стандарты и сервисы с pureXML. Большое количество разнообразных примеров для бесплатной загрузки! Каждый пример демонстрирует, как работать с основанными на технологии XML отраслевыми форматами и pureXML. Они показывают, как зарегистрировать XML Schema, как выполнить проверку корректности XML-документов, как запросить XML-данные при помощи XQuery или SQL/XML и многое другое (EN).
- "IBM Data Studio: начало работы с Data Web Services" (developerWorks, ноябрь 2007 г.). Очень подробное и простое введение в разработку первого Data Web Service (EN).
- "Data Web Services: новый способ создания Web-сервисов для доступа к серверам баз данных IBM" (developerWorks, декабрь 2007 г.). Информация по созданию и настройке Data Web Service. Приводится полезная теоретическая информация о Data Web Services, в том числе архитектурный обзор Data Web Services. Рассматриваются различные аспекты Data Web Services, например система защиты (EN).
-
"Отображение DB2 Version 9 pureXML с использованием WebSphere Integration Developer" (developerWorks, сентябрь 2007 г.). Создание клиентского приложения для доступа к Universal Services (EN).
- "Использование отраслевых стандартов форматов данных с WebSphere ESB и DB2 Version 9 pureXML" (developerWorks, июнь 2007 г.). Сценарии, демонстрирующие, как использование WebSphere Enterprise Service Bus и DB2 9 pureXML может помочь фармацевтической компании удовлетворить требования по предоставлению стандартизированных данных о своих товарах (EN).
- "XForms и DB2 pureXML" (developerWorks, май 2008 г.). Узнайте, насколько просто создать XForms и организовать их взаимодействие с базой данных DB2, в которой можно сохранять, извлекать и удалять XML-данные. Также узнайте, как создать XForms, обращающиеся к DB2 pureXML посредством Universal Services (EN).
- Следите за техническими событиями и web-трансляциями на developerWorks.(EN)
Получить продукты и технологии
-
IBM Data Studio. Загрузите бесплатно среду разработки для разработки Data Web Services.
-
DB2 Express-C. Загрузите бесплатную версию DB2, в которую включена базовая функциональность, аналогичная имеющейся в других серверах данных, например технология pureXML. DB2 Express-C бесплатна для разработки, развертывания и распространения.(EN)
- Используйте в своем следующем проекте разработки ознакомительное программное обеспечение IBM, которое можно загрузить непосредственно с developerWorks.(EN)
Обсудить
- Примите участие в обсуждении материала на форуме.
- Принимайте участие в блогах developerWorks и подключайтесь к сообществу developerWorks.(EN)
Сюзан Малайка (Susan Malaika) работает старшим инженером в отделе IBM Information Management Group (часть IBM Software Group). Специализируется на XML, Web и базах данных. Разработала стандарты, поддерживающие данные для сетевых сред на Global Grid Forum. Являясь разработчиком программных продуктов IBM, работает также в качестве интернет-специалиста, аналитика данных и разработчика приложений. Соавтор книги о Web и опубликованных статей по обработке транзакций и XML. Член IBM Academy of Technology.
Кристиан Пичлер (Christian Pichler) является младшим научным сотрудником в Research Studios Austria, где работает над различными проектами, связанными с eGovernment и eBusiness. Имеет степень магистра по вычислительной технике и кандидата на степень доктора философии по вычислительной технике в Technical University of Vienna (Австрия) по теме Inter-Organisational Systems.