IBM®
Перейти к тексту
    в России и странах СНГ [изменить]    Условия использования
 
 
   
    Главная страница    Продукты    Услуги и решения    Поддержка и загрузка    Мой профиль    
Перейти к тексту

developerWorks Россия  >  Information Management | SOA и Web-сервисы  >

Data Web Services: Создание Web-сервисов как новый способ доступа к серверам баз данных IBM

Создание сервисов для доступа к DB2 и Informix Dynamic Server

developerWorks
Опции документа

Опции документа, требующие включения JavaScript, не отображаются

Обсудить


Выскажите мнение об этой странице

Помогите нам улучшить содержание


Уровень сложности: простой

Виджай Боммиреддипалли, разработчик решений Data Server, IBM

11.02.2009

IBM® Data Studio - это унифицированная инструментальная платформа, содержащая полный набор функциональных возможностей для разработки, администрирования и управления серверами баз данных. Интегрированная среда разработки (IDE) Data Studio имеет много функциональных возможностей, которые помогут вам на всех стадиях разработки баз данных. Неотъемлемым компонентом данного продукта является способность генерировать основанные на Web-сервисах методы доступа к базе данных. В данной статье приведен обзор этой перспективной новой технологии, называемой Data Web Services, а также рассматриваются некоторые ее функциональные возможности.

Введение

Web-сервисы заслужили признание как общепринятый механизм обмена, доступа и управления данными. Применяемые стандарты являются зрелыми и проверенными, а многие преимущества этой технологии, например, слабое связывание и виртуализация, являются большим шагом к сервис-ориентированной архитектуре (Service-Oriented Architecture - SOA). Некоторые обзоры называют причиной задержек (а иногда и неудач) SOA-проектов трудности реализации. Многие Web-сервисы, ориентированные на данные, выполняют всего одну задачу – исполняют оператор в базе данных или вызывают хранимую процедуру, - но даже для этого операции с базой данных приходится оборачивать в логику кода приложения. Разработка ориентированных на данные Web-приложений может быть непростой задачей, поскольку требует опыта в Web-разработке и работе с базами данных. Разработчики доступа к данным, которые проектируют ориентированные на данные приложения, могут подтвердить , что DML-код (код языка манипулирования данными) обычно приходится оборачивать в изрядный объем исходного кода. Более того, логика этого кода является повторяющейся: открыть соединение, выполнить выражение, обработать результат, закрыть соединение и т.д. Было бы хорошо, если бы кто-нибудь мог взять имеющиеся операции базы данных и сделать их доступными как Web-сервисы, чтобы не нужно было делать все вышеописанное. Здесь приходит на помощь технология Data Web Services.



В начало


Что такое Data Web Services?

Data Web Services (DWS) - это решение следующего поколения, существенно облегчающее разработку, развертывание и обслуживание основанного на Web-сервисах доступа к серверам баз данных DB2 и IDS. DWS позволяет взять DML-выражения (такие как Select, Insert, Update, Delete и XQuery) и вызовы хранимых процедур и сгенерировать Web-сервисы, не написав ни единой строчки кода. DWS предоставляет полный интерфейс Web-сервисов, включая поддержку SOAP и REST-связываний. Все эти возможности входят в Data Studio Developer, что позволяет разрабатывать Web-сервисы и приложения баз данных в одной среде. Сгенерированные Web-сервисы упаковываются в готовое к развертыванию Web-приложение, которое можно затем развернуть на поддерживаемых серверах приложений.

Ключевые аспекты DWS

  • Web-сервисы, использующие DWS, не требуют программирования!
    • DWS позволяет создавать Web-сервисы, используя интерфейс перетаскивания мышью (drag-and-drop) - для создания готовых к развертыванию Web-сервисов достаточно переместить любую DML-операцию или вызов хранимой процедуры в контейнер Web-сервисов.
    • DWS поддерживает также интегрированную среду тестирования, позволяющую развернуть и проверить сгенерированные сервисы при помощи всего лишь нескольких щелчков кнопкой мыши.
  • DWS поддерживает генерирование SOAP over HTTP и WSDL.
    • DWS автоматически генерирует WSDL-файл (Web Services Description Language) с описанием Web-сервиса.
  • DWS поддерживает интерфейс сервисов в REST-стиле.
    • Кроме SOAP over HTTP, DWS поддерживает связывание HTTP GET/POST для предоставления REST-сервисов вашему серверу базы данных.
  • DWS может применять XSLT на стороне сервера для входящих и исходящих запросов и ответов XML-сервиса.
    • DWS позволяет применять XSLT на стороне сервера для удовлетворения любых возможных требований к формату сервиса. Это предоставляет некоторые интересные возможности в мире Web 2.0, что вы увидите в следующем разделе.
  • Нет генерации кода!
    • DWS состоит из обычной управляемой метаданными среды времени исполнения и не содержит никакого кода "черного ящика", генерируемого за кулисами. Это позволяет создавать надежные и нетребовательные к ресурсам приложения.


В начало


Разработка Data Web Services

Как показано на рисунке 1, разработка Data Web Services обычно состоит из следующих этапов:

  1. Разработать SQL-выражение, хранимую процедуру или XQuery-выражение.
  2. Создать Web-сервис.
  3. Перетащить требуемые операции в этот Web-сервис.
  4. Развернуть сервис на сервере приложений.
  5. Протестировать Web-сервис, используя интегрированную среду тестирования или клиент Web-сервиса.

Рисунок 1. Типичный алгоритм разработки Data Web Services
Рисунок 1. Типичный алгоритм разработки Data Web Servicess

Пошаговое выполнение

Данная статья не является всеобъемлющим учебным руководством, но давайте рассмотрим перечисленные выше действия на примере.

Установка и настройка

Примечание. Действия, описанные здесь, помогут вам лучше понять процесс разработки Data Web Services. Эта статья не является всеобъемлющим учебным руководством с полным описанием каждого действия. Для того чтобы попробовать выполнить эти действия на вашем компьютере, необходимо настроить IBM Data Studio и тестовую среду в IBM WebSphere® Application Server - Community Edition. Также необходим сервер DB2 с установленным примером базы данных.

Прочтите учебное руководство "IBM Data Studio: приступаем к работе с Data Web Services" (EN) (developerWorks, ноябрь 2007 г.), являющееся пошаговым руководством по Data Web Services, и выполните приведенные в нем инструкции по созданию и выполнению вашего первого Data Web Service.

В разделе "Ресурсы" также приведены ссылки для загрузки бесплатных продуктов DB2 Express C, WebSphere Application Server - Community edition и Data Studio. Дополнительную информацию по Data Studio можно найти на домашней странице IBM Data Studio.



  1. Запустите IBM Data Studio. Создайте новый проект Data Development Project. Для данного примера введите название проекта Demo.

    Рисунок 2. Создание нового проекта Data Development Project в Data Studio
    Рисунок 2. Создание нового проекта Data Development Project в Data Studio

  2. Затем создайте простое SQL-выражение select, возвращающее запись о сотруднике. Можно использовать либо SQL-редактор в Data Studio, либо просто скопировать существующее выражение в редактор. Data Studio предоставляет интегрированный конструктор запросов и предоставляет контекстную поддержку (как показано на рисунке 3) при вводе выражения. Сохраните этот оператор как getmyEmp.sql.

    Рисунок 3. Создание выражения getmyEmp.sql
    Рисунок 3. Создание выражения getmyEmp.sql

  3. Теперь оформите SQL-выражение в виде Web-сервиса. Для этого щелкните правой кнопкой мыши на папке Web Services, выберите New Web Service и назовите его myfirstService. Этот Web-сервис myfirstService является просто контейнером, в котором будут размещены операции, отображаемые как Web-сервисы.

    Рисунок 4. Контейнер Web-сервисов
    Рисунок 4. Контейнер Web-сервиса

  4. Затем перетащите созданное вами SQL-выражение в этот Web-сервис. Web-сервис myfirstService теперь содержит операцию getmyEmp.sql. В данном случае операцией является SQL-выражение, приведенное выше (getmyEmp.sql); однако можно перетащить в Web-сервис несколько операций (включая хранимые процедуры).

  5. Щелкните правой кнопкой мыши на Web Service myfirstService и выберите Build and Deploy.

    Рисунок 5. Создание и развертывание Web-сервиса в WAS-CE
    Рисунок 5. Создание и развертывание Web-сервиса в WAS-CE

  6. Затем выберите сервер WAS-CE, установленный в вашей системе, в качестве назначения для развертывания Web-сервиса. По умолчанию Data Web Services генерирует оба связывания: REST и SOAP. Конечно же, его можно настроить на генерирование только одного связывания. При желании можно также отметить флажок Launch Web Services Explorer after deployment, чтобы Data Studio запускал встроенный Web Services Explorer для тестирования сервисов.

  7. Наконец, нажмите кнопку Finish.

    Data Web Services создаст Web-приложение и сгенерирует конфигурационные файлы, необходимые для выбранного Web-сервера. Web-приложение затем будет развернуто на вашем локальном сервере WAS-CE.

    Рисунок 6. Развертывание Web-сервиса на WAS-CE
    Рисунок 6. Развертывание Web-сервиса на WAS-CE



    Примечание. Мы могли бы вместо этого выбрать генерирование Web-приложения (.war-файла) и развернуть его самостоятельно. Data Web Services сгенерировал бы готовое к развертыванию Web-приложение для конкретного сервера приложений, используя настройки по умолчанию. Естественно, все это можно полностью настроить перед развертыванием.

  8. После развертывания Web-сервиса Data Studio запускает обозреватель Web-сервисов (Web services Explorer), который можно использовать для тестирования обеих оконечных точек: REST и SOAP. Выберите SOAP-связывание и укажите значение для параметра empno.

    Примечание. Выражение select, указанное в этом примере, имеет параметр под названием :empno. Это значение передается как часть сообщения запроса Web-сервиса. Ответ Web-сервиса отображается, как показано на рисунке 7. Выбрав ссылку source в Web Services Explorer, можно просмотреть исходный код XML.

    Рисунок 7. Тестирование Web-сервиса с использованием Web Services Explorer
    Рисунок 7. Тестирование Web-сервиса с использованием Web Services Explorer

  9. Для тестирования REST-связывания давайте применим Web-браузер, хотя можно использовать и Web Services Explorer. Браузеры имеют встроенную поддержку запросов GET. Укажите в браузере URL, приведенный в листинге 1. Web-сервер возвратит XML-ответ, содержащий результат применения SQL-выражения getmyEmp со значением 000130 параметра empno.

    Листинг 1. Использование браузера для тестирования REST-связывания
                            
    http://localhost:8080/DemomyfirstService/rest/myfirstService/getmyEmp?empno=000130
          

Архитектура

В данной статье уже упоминалось, что Data Web Services не требует программирования для генерирования Web-сервисов; также не генерируется какой-либо код. Поэтому может возникнуть вопрос: в чем же секрет и как выполняются Web-сервисы?

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

Как вы уже видели, DWS поддерживает обе оконечные точки - SOAP и REST. Входящие запросы Web-сервисов обрабатываются кодом, специфичным для оконечных точек. Поэтому, куда бы ни приходил запрос, на REST или на SOAP, DWS обрабатывает его, формируя общее представление запроса. Затем этот запрос обрабатывается обычной средой времени исполнения, управляемой метаданными, которая определяет, как отобразить сообщение Web-сервиса в запрос к базе данных. Никакого промежуточного отображения параметров и результатов в этих сообщениях Web-сервисов на типы данных Java, как это обычно делается при генерировании Web-сервиса, не производится. Здесь типы данных XML в сообщениях Web-сервисов напрямую отображаются в типы данных базы данных. Результатом исключения множественных преобразований типов данных из одного формата в другой является эффективное, лучше работающее приложение.

Приложение Data Web Services упаковывается как J2EE Web-приложение, которое может быть развернуто на поддерживаемых серверах приложений. Развертывание его в вашей среде аналогично развертыванию любого другого Web-приложения. Вы можете использовать все преимущества инфраструктуры, которая, возможно, уже имеется. Сгенерированное приложение состоит из JAR-файла общей системы времени исполнения и конфигурационных файлов. Эти конфигурационные XML-файлы среди прочего содержат специфичную для сервера приложений информацию. Один из конфигурационных файлов содержит информацию, относящуюся к операциям Web-сервиса, которые вы выбрали. Среда времени исполнения динамически определяет, как выполнить сервисы, с учетом DML-операций, выбранных для отображения в виде Web-сервисов. Общая среда времени исполнения вместе с этими конфигурационными файлами создает облегченное (lightweight) приложение, отличающееся стабильностью и устойчивостью, поскольку оно не содержит "непрозрачного" кода, генерируемого каждый раз при отображении новых Web-сервисов. Этот обычный управляемый метаданными код обеспечивает надежность и нетребовательность к ресурсам системы времени исполнения.


Рисунок 8. Описание архитектуры Data Web Services
Рисунок 8. Описание архитектуры Data Web Services

Настройка Web-сервисов с использованием XSLT

Интересной и мощной функциональной возможностью DWS является способность применять XSL-преобразования на стороне сервера к запросам и ответам Web-сервисов. Данная функциональность позволяет настроить формат сообщений, которые видит клиент. Это особенно полезно в тех случаях, когда корпоративные или отраслевые требования к формату Web-сервиса предписывают, как должны выглядеть сообщения Web-сервисов.

DWS имеет формат сообщений по умолчанию для запросов и ответов Web-сервисов. Формат сообщений и имена XML-тегов в этих сообщениях зависят от названия операции Web-сервиса, названий столбцов таблицы результата, типа используемого связывания и т.д. Возможно, в некоторых случаях вы захотите, чтобы клиент не видел имен тегов по умолчанию (либо из-за требований формата сообщений, либо просто для маскировки имен тегов по умолчанию). При использовании средств XSLT на стороне сервера внешний вид входящих XML-запросов и исходящих результатов будет отличаться от формата сообщений Data Web Services по умолчанию.

Вообще говоря, Web-сервисы можно создавать с использованием подхода "сверху вниз" или "снизу вверх". В подходе "сверху вниз" сначала создается спецификация сервиса (например, WSDL-файл), а затем реализуется код, соответствующий этой спецификации. В подходе "снизу вверх" сначала создается Java bean-компонент или SQL-выражение, а потом эта функциональность оформляется в виде Web-сервиса. В DWS мы начинаем с DML-выражений (например, запросов) и отображаем их в виде Web-сервисов. Поэтому разработка Web-сервисов определенно ведется в стиле "снизу вверх". Однако применение XSLT к сообщениям сервиса во многих случаях позволяет отобразить формат сервисов в стиле "снизу вверх" на дизайн "сверху вниз". Это смягчает некоторые требования к формату сервиса в стиле "сверху вниз", позволяя разрабатывать Web-сервисы "снизу вверх". Такое преобразование можно также использовать для доставки данных клиенту в читабельном для человека формате - HTML, XHTML или любом другом текстовом формате, который может являться результатом XSLT.


Рисунок 9. Настраиваемые форматы доставки - применение XSLT
Рисунок 9. Настраиваемые форматы доставки - применение XSLT

SOA

Когда речь идет о SOA-средах, мало кто задумывается о базах данных. Однако ключевым преимуществом SOA является повторное использование существующих компонентов. Предприятия, которые сформировали богатую бизнес-логику в своих встроенных процедурах и высокопроизводительных запросах, теперь имеют возможность мгновенно сделать их доступными в SOA-среде, используя DWS. Повторное использование DML-выражений и хранимых процедур, которые были разработаны в прошлом для инкапсуляции бизнес-логики и о которых известно, что они работают хорошо, сэкономит ваши усилия по диагностированию потенциальных проблем во вновь разрабатываемых приложениях. Также Web-сервисы виртуализируют доступ для любого пользователя, что облегчает их подключение к вашему серверу базы данных в SOA-среде.

Однако реализация только Web-сервисов ничего не решает и никак не приближает вас к сервис-ориентированной архитектуре. Необходимо начать обсуждение целей SOA на бизнес-уровне и затем дойти до компонентов, необходимых для достижения этих целей. Обсуждения, направленные на определение композитных, повторно используемых сервисов на бизнес-уровне и формирование целостного дизайна являются очень важными компонентами создания SOA. Способом реализации таких сервисов могут быть Web-сервисы. Простота разработки при помощи среды создания интегрированных запросов и хранимых процедур Data Studio в сочетании с возможностью отображать данные артефакты в виде Web-сервисов поможет достичь поставленных целей.

Работа с данными в мире Web 2.0

Web переживает одно из величайших преобразований со времени своего возникновения. Web-приложения, обогащающие приложения человеческим интеллектом с помощью таких средств, как тегирование и социальное взаимодействие, и полнофункциональные Интернет-приложения, взаимодействующие с сервером асинхронно, изменяют работу пользователей к лучшему. Обобщенно называемые Web 2.0, эти приложения изменяют способ доставки содержимого Web-сайтами конечным пользователям. Хотя подробное обсуждение Web 2.0 выходит за рамки данной статьи, мы отметим некоторые технологии, являющиеся важными составляющими приложений в стиле Web 2.0. Web-сервисы в REST-стиле, стандартные форматы фидов (RSS или ATOM) и облегченные форматы, такие как JSON, - вот некоторые широко распространившиеся технологии, популярные среди клиентов Web 2.0. Предоставление данных этим клиентам Web 2.0 из репозиториев данных является ключом к созданию приложений следующего поколения.

Инструментарий Data Web Services по своей природе поддерживает REST-сервисы. DWS поддерживает запросы GET и POST. Как видно из листинга 1, закодированный в URL GET позволяет активизировать Web-сервис и просматривать результаты в браузере. Аналогично поддерживается и закодированный в URL POST, который широко применяется в Web-формах. Связывание HTTP POST XML – еще один поддерживаемый вариант для работы с клиентами, которым нравится передавать и принимать нагрузку в XML-формате. Это особенно полезно для таких клиентов, как XForms, AJAX и т.д. В итоге DWS поддерживает три типа связываний в REST-стиле:

  • HTTP GET binding
  • HTTP POST binding
  • HTTP POST XML binding

Более того, можно использовать способность применять XSLT на стороне сервера к сообщениям Web-сервисов для доставки данных в различных форматах Web 2.0, таких как JSON, RSS-фиды и т.д.

Безопасность

Достоверный контекст

Обратите внимание на статью "Использование достоверного контекста в клиентских приложениях DB2" (EN) (developerWorks, сентябрь 2006), которая содержит информацию о достоверном контексте и его возможностях.

Также в теме "Реализация достоверного контекста для баз данных DB2" (EN) (IBM, документация по WebSphere Application Server, ноябрь 2007 г.) приведена информация о том, как разрешить использование достоверного контекста между WebSphere Application Server и DB2.

Разрешая Web-сервисам доступ к базе данных, всегда нужно заботиться о безопасности. Когда дело касается корпоративных данных, необходимо тщательно продумать, что отображать и с каким связыванием. В этом отношении ориентированные на данные Web-сервисы, отображаемые с использованием Data Web Services, не исключение. Хорошей новостью для Data Web Services является то, что репозиторий, обслуживающий ваши данные в этом случае (другими словами, базы данных) имеет надежную модель безопасности, которая может использовать аутентификацию и авторизацию и организовать доступ, основанный на ролях.

Как уже упоминалось, при помощи DWS-приложения вы получаете возможность использовать преимущество продуманной J2EE-инфраструктуры и реализовать политики безопасности, которые будут применимы для любого Web-приложения. В некоторых случаях базы данных и серверы приложений имеют более тесную интеграцию с точки зрения системы защиты. Например, IBM WebSphere® Application Server и IBM DB2® имеют функциональность, т. н. достоверного контекста (trusted context), обеспечивающую сквозную аутентификацию от клиента до базы данных. В Data Web Services достоверный контекст позволяет аутентифицировать клиента Web-сервиса посредством идентификатора пользователя (userid), а базе данных - обслужить этот запрос, используя полномочия этого же userid. Достоверный контекст как функциональная возможность применим не только к Data Web Services. Дополнительная информация приведена на боковой вставке "Достоверный контекст".

В некоторых случаях требования безопасности или проверки предписывают передачу в запрос Web-сервиса дополнительной информации, отличной от содержимого SOAP-тела. Протокол SOAP-сообщений определяет раздел SOAP-заголовка, куда такая информация может быть передана. DWS позволяет передавать маркеры заголовка системы защиты в заголовке SOAP-сообщения. SOAP-заголовки обычно обрабатываются SOAP-системой, но, кроме этого, DB2 позволяет использовать теги для сбора дополнительной информации о клиенте, такой, например, как идентификатор пользователя, приложение, учетная информация и т.д.

Маркеры заголовка системы защиты и достоверный контекст являются важными функциональными возможностями, которые следует рассматривать при выборе и реализации модели безопасности вашей среды Web-сервисов.



В начало


Заключение

Data Web Services позволяет без труда сделать операции базы данных доступными в виде сервисов. Это простое в разработке, нетребовательное к ресурсам, но надежное решение, предоставляющее Web-сервисам доступ к базам данных. Ваш сервер базы данных может теперь стать провайдером Web-сервисов для обычных SOA-клиентов, а также для клиентов Web 2.0. Открытие вовне данных и бизнес-логики репозиториев данных с использованием основанных на стандартах Web-сервисов позволяет реализовать различные сценарии потребления данных. Ваш сервер базы данных получает возможность активно участвовать в инфраструктуре SOA.

Благодарности

Автор хотел бы поблагодарить Майкла Шенкера за помощь в рассмотрении Data Web Services и рисунки, а также всех коллег за терпение при прочтении данной статьи и ценные советы.



Ресурсы

Научиться

Получить продукты и технологии
  • IBM Data Studio: загрузите Data Studio бесплатно.

  • DB2 Express-C: теперь вы можете использовать DB2 бесплатно - загрузите DB2 Express-C, бесплатную версию DB2 Express Edition для сообщества разработчиков, предлагающую те же базовые функциональные возможности, что и DB2 Express Edition, и обеспечивающую прочный фундамент для создания и развертывания приложений.

  • Разработайте ваш следующий проект, используя пробное программное обеспечение IBM, доступное для загрузки непосредственно на сайте developerWorks.


Обсудить


Об авторе

Виджай Боммиреддипалли (Vijay Bommireddipalli) - разработчик решений в отделе Data Servers Solutions в лаборатории IBM Silicon Valley Lab в Сан Хосе, Калифорния. Он помогает клиентам и партнерам освоить технологии серверов данных IBM. До этого был разработчиком в группе Warehouse Manager. Пришел в IBM в июле 2000 года после получения степени магистра по вычислительной технике и электротехнике в Университете Массачусетса в Дартмуте.




Выскажите мнение об этой странице


Пожалуйста, найдите минутку и заполните форму, чтобы повысить уровень сервиса.



 


 


 


Поделиться этой статьей:

забобрить забобрить memori сохранить в memori




В начало


IBM обладает всеми авторскими правами касательно информации, расположенной на developerWorks. Использование информации приведенной на этом ресурсе без явного письменного разрешения от IBM или первоначального автора запрещены. Если Вы желаете использовать информацию с developerWorks, пожалуйста воспользуйтесь регистрационной формой для того, чтобы связаться с нами запрос на использование материалов developerWorks Россия.
    IBM в России Конфиденциальность Контакты