Использование OData с IBM DB2 и Informix

Пошаговое руководство

В статье приводится краткая вводная информация об OData — Web-API для доступа к данным. Далее описывается алгоритм использования OData с IBM® DB2® для Linux®, UNIX® и Windows®, для z/OS® и для Informix®. В заключение приводятся пошаговые инструкции по доступу к OData из DB2 с помощью Microsoft® Visual Studio.

Джон Гера, инженер-программист, IBM

Gera author photoДжон Гера (John Gera) работает инженером-программистом в группе технической поддержки управления информацией IBM DB2. Он имеет степень магистра по специальности «Вычислительная техника» и является сертифицированным IBM администратором баз данных DB2 для DB2 V9.1 и DB2 V9.7. Джон специализируется в вопросах, связанных с функциями обеспечения высокой эксплуатационной готовности (HA) DB2.



Брент Гросс, старший технический специалист, IBM

Author Photo: BRent GrossБрент Гросс 9 (Brent Gross) является старшим техническим специалистом Отдела разработок в области управления информацией в Лаборатории IBM в Торонто. Он более 20 лет работает в IBM и участвует в разработке DB2 с 1995 г. В обязанности Брента входили архитектура и разработка поддержки хранимых процедур, а также клиентские интерфейсы. Брент выступал на многих конференциях, посвященных DB2, и на различных конференциях для групп пользователей. В настоящее время он занят разработкой API .NET и OLE DB для DB2 и DB2 Connect.



Сюзан Малайка, старший инженер, IBM

Сюзан Малайка (Susan Malaika) работает старшим инженером в отделе IBM Information Management Group (часть IBM Software Group). Специализируется на XML, Web и базах данных. Разработала стандарты, поддерживающие данные для сетевых сред на Global Grid Forum. Являясь разработчиком программных продуктов IBM, работает также в качестве интернет-специалиста, аналитика данных и разработчика приложений. Соавтор книги о Web и опубликованных статей по обработке транзакций и XML. Член IBM Academy of Technology.



06.12.2012

Введение

OData (для получения дополнительной информации обратитесь к разделу Ресурсы) представляет собой спецификацию Web-API для доступа к данным, которая обеспечивает возможность доступа к ресурсам (например, таблицам в базах данных) из Web-браузеров и с мобильных устройств. Спецификация OData устанавливает порядок создания, чтения, обновления, удаления (CRUD) и запроса ресурсов (данных или приложений) по протоколу HTTP. Она также определяет способ форматирования результатов в Atom (XML) и JSON. OData можно охарактеризовать как мини-ODBC или JDBC для Интернета. Если говорить Говоря точнее, OData позволяет клиентам составлять идентификаторы URI, называющие некоторый набор объектов, осуществлять фильтрацию объектов в наборе и проходить по зависимостям к родственным объектам и коллекциям объектов.

На рисунке 1 приведен алгоритм обеспечения доступа к DB2 или Informix через Интернет с применением ADO.Net. Microsoft Visual Studio предоставляет инструментальные средства для обеспечения возможности доступа к данным базы данных по протоколу HTTP в Интернете. Данные БД можно создавать, обновлять, удалять и запрашивать с использованием синтаксиса OData из Web-браузеров и других потребителей OData (для получения дополнительной информации обратитесь к разделу Ресурсы)

Рисунок 1. Обзор OData
diagram shows web browser on left, connected via fixed query and CRUD services to OData services provider, which connects to the DB2 or Informix database

На рисунке 2 показано применение языка CSDL (Conceptual Schema Definition Language), который представляет собой нотацию XML, описывающую базовые ресурсы с использованием модели «объект — отношение», доступной с помощью OData.

Рисунок 2. Концептуальный язык определения схем (CSDL)
shows web browser on left, connected through fixed query and CRUD services to OData CSDL, OData Service Provider, ADO.Net enablement solutions, and DB2 or Informix

Концептуальный язык определения схем (CSDL) часто используется при разработке, например, в инструментальных средствах или преобразователях моделей. Описание на языке CSDL является факультативным и генерируется средой Visual Studio, чтобы помочь приложениям-потребителям определить структуру данных, к которым осуществляется доступ. Язык CSDL немного похож на метаданные в JDBC и ODBC, помогающие клиентским приложениям определять, к каким данным они обращаются.


Доступ к таблицам в примере базы данных в Интернете с использованием OData

В следующих разделах приведено подробное описание порядка выполнения следующих операций.

  • Выполнение начальной настройки, например, определение соединения с базой данных.
  • Создание объектной модели ADO.Net.
  • Выбор таблиц DB2, к которым будет производиться обращение с использованием OData.
  • Создание службы OData (службы WCF) для выбранных таблиц.
  • Тестирование службы OData.

В описании используется среда выполнения OData, которая входит в состав Microsoft Visual Studio. Тем не менее, поскольку поддержка была протестирована в Visual Studio, можно использовать и другие среды выполнения OData. Для получения дополнительной информации обратитесь к разделу Ресурсы.

Создание нового Web-сайта

  1. Запустите Visual Studio. Выберите в меню File (Файл) команду New Web Site (Создать Web-сайт). Откроется диалоговое окно New Web Site (Создание Web-сайта).
  2. На левой панели выберите в разделе Installed Templates (Установленные шаблоны) установку Visual C#.
  3. На центральной панели выберите установку ASP.NET Dynamic Entities Web Site (Web-сайт с динамическими объектами ASP.NET).
  4. В поле Web location (Местоположение сайта) выберите установку File System (Файловая система), а затем введите имя папки, в которой будут сохраняться страницы Web-сайта. Например, введите имя папки C:\WebSites\DB2OData и нажмите кнопку OK. Visual Studio создаст Web-сайт, как показано на рисунке 3.
Рисунок 3. Новый Web-сайт
shows ASP.NET Dynamic Entities Web Site selected

Добавление информационного соединения в Server Explorer

  1. Выберите в меню Tools (Сервис) команду Connect to Database (Подключиться к базе данных). Откроется диалоговое окно Add Connection (Добавление соединения).
  2. Выберите установку IBM DB2 and IDS Servers (Серверы IBM DB2 и IDS) , как показано на рисунке 4, а затем нажмите кнопку Continue (Продолжить) .
    Рисунок 4. Добавление информационного соединения в Server Explorer
    Shows IBM DB2 and IDS Servers selected
  3. Как показано на рисунке 5, в поле Select or enter server name (Выберите или введите имя сервера) введите 127.0.0.1/localhost или имя хоста. В поле User ID (Идентификатор пользователя) введите db2admin. В поле Password (Пароль) введите свой пароль. Установите флажок Save my password (Сохранить мой пароль) .
    Рисунок 5. Информация о соединении
    shows connection information
  4. В поле Select or enter a Database Name (Выберите или введите имя базы данных) введите имя базы данных, например, SAMPLE.
  5. Нажмите кнопку Test Connection(Проверить соединение), а затем кнопку OK.
  6. Как показано на рисунке 6, в окне Server Explorer вы можете при желании развернуть узел Data Connections (Информационные соединения) и просмотреть список таблиц базы данных.
    Рисунок 6. Таблицы базы данных
    shows explorer view of the database tables

Добавление данных на Web-сайт и создание новой объектной модели данных ADO.NET

Объектная модель данных используется для обеспечения доступа к данным DB2 с использованием служб данных WCF. Для добавления данных на сайт и создания объектной модели данных ADO.NET выполните следующие действия.

  1. В окне Solution Explorer щелкните по проекту правой кнопкой мыши и выберите в контекстном меню команду New Item(Новый элемент). Откроется диалоговое окно Add New Item (Добавление нового элемента).
  2. На левой панели выберите в разделе Installed Templates (Установленные шаблоны) установку Visual C#. На центральной панели выберите установку ADO.NET Entity Data Model(Объектная модель данных ADO.NET)..
  3. В поле Name (Имя) введите имя модели базы данных. Например, введите имя DB2.edmx, а затем нажмите кнопку Add (Добавить), как показано на рисунке 7.
    Рисунок 7. Создание объектной модели данных
    shows ADO.NET Entity Data Model selected
  4. При получении сообщения с просьбой о подтверждении нажмите кнопку Yes (Да).
  5. В окне Entity Data Model Wizard (Мастер создания объектной модели данных) выберите установку (Генерировать из базы данных), а затем нажмите кнопку Next (Далее), как показано на рисунке 8.
    Рисунок 8. Мастер создания объектной модели данных
    shows Generate from database selected
    Откроется диалоговое окно Choose Your Data Connection (Выбор информационного соединения).
  6. Выберите в выпадающем списке соединение, которое вы ранее сконфигурировали. Например, db2admin@SAMPLE. Нажмите кнопку Yes (Да) для включения в строку соединения уязвимых данных (имя пользователя и пароль), а затем нажмите кнопку Next (Далее), как показано на рисунке 9.
    Рисунок 9. Выбор информационного соединения
    shows data connection details
    Откроется диалоговое окно Choose Your Database Objects (Выбор объектов базы данных)..
  7. Щелкните по треугольнику, чтобы развернуть узел Tables (Таблицы). Установите флажки против таблиц DEPARTMENT и EMPLOYEE, а затем нажмите кнопку Finish (Готово), как показано на рисунке 10.
    Рисунок 10. Выбор объектов данных
    shows department and employee tables selected
  8. Откроется страница DB2.edmx с новой объектной моделью данных, как показано на рисунке 11.
    Рисунок 11. Страница DB2.edmx
    shows entity data model with employee and department tables

Регистрация содержимого данных

  1. Как показано на рисунках 12 и 13, из окна Solution Explorer откройте файл Global.asax.
  2. 1. Раскомментируйте строку, которая содержит метод DefaultModel.RegisterContext.
  3. Установите тип контекста SAMPLEModel.SAMPLEEntities и определите для переменной ScaffoldAllTables значение True.
    Рисунок 12. Global.asax (метод DefaultModel.RegisterContext – закомментирован)
    line that contains the DefaultModel.RegisterContext method is commented
    Рисунок 13. Global.asax (метод DefaultModel.RegisterContext – раскомментирован)
    line that contains the DefaultModel.RegisterContext method is uncommented
  4. Сохраните файл Global.asax.

Добавление службы данных WCF

  1. В окне Solution Explorer щелкните правой кнопкой мыши проект DB2OData. Откроется диалоговое окно Add New Item (Добавление нового элемента).
  2. В секции Installed Templates (Установленные шаблоны) на левой панели выберите Visual C#, а на центральной панели щелкните по пункту WCF Data Service (Служба данных WCF). .
  3. В поле Name (Имя) введите какое-либо имя службы данных, например, WcfDataService.svc, а затем нажмите кнопку Add (Добавить), как показано на рисунке 14.
    Рисунок 14. Добавление службы данных WCF
    Shows WCF Data Service selected

Конфигурирование службы данных WCF

  1. Как показано на рисунке 15, в файле WcfDataService.cs замените комментарии к коду /* TODO: put your data source class name here */ (ТРЕБУЕТСЯ СДЕЛАТЬ: укажите здесь имя класса источника данных) на SAMPLEModel.SAMPLEEntities.
    Рисунок 15. Имя класса источника данных и MyEntitySet
    MyEntitySet is highlighted
  2. Раскомментируйте код, содержащий config.SetEntitySetAccessRule. Замените MyEntitySet звездочкой «*», как показано на рисунке 16.
    Рисунок 16. Изменение кода для WcfDataService.cs
    WcfDataService.cs - Change the code as per step 1 and 2 above

Тестирование службы данных WCF

  1. Для запуска приложения выберите в меню Debug (Отладка) команду Start Debugging (Начать отладку). Если вам будет предложено подтвердить активацию отладки, нажмите кнопку OK.
  2. В Web-браузере введите какой-либо идентификатор URI для возврата всех записей из таблицы DB2 с помощью службы данных. .
  3. Введите http://localhost:15452/DB2OData/WcfDataService.svc/ для просмотра включенных объектов, как показано на Рисунке 17.
    Рисунок 17. Файл WcfDataService.svc
    XML file includes DEPARTMENT and EMPLOYEE entities
    Текст этого файла можно просмотреть в файле WcfDataService.svc.txt, доступном в разделе Загрузка данной статьи.
  4. Введите http://localhost:15452/DB2OData/WcfDataService.svc/DEPARTMENTs для просмотра таблицы Department, показанной на Рисунке 18.
    Рисунок 18. Таблица Department
    Department Table in XML format

    (Просмотреть увеличенный вариант рисунка 18.)

    Текст, показанный на этом рисунке, можно найти в разделе Загрузка.
  5. Для просмотра информации о сотруднике Employee ID = 000010 введите в качестве URL-адреса http://localhost:15452/DB2OData/WcfDataService.svc/EMPLOYEEs('000010'), как показано на рисунке 19.
    Рисунок 19. Таблица Employee
    Employee Table in XML format

    (Просмотреть увеличенный вариант рисунка 19.)

    Текст, показанный на этом рисунке, можно найти в разделе Загрузка.
  6. Для просмотра отформатированных XML-данных можно использовать модули расширения (например, Bamboo для браузера Firefox), как показано на рисунках 20 и 21.
    Рисунок 20. Отформатированная таблица сотрудников
    shows the data for each row in Employee Table
    Рисунок 21. Отформатированная таблица отделов
    shows data for each row in Department Table

Заключение

В этой статье приведена информация о том, как организовать доступ к данным DB2 по протоколу HTTP с использованием интерфейса OData и Microsoft Visual Studio, чтобы сделать возможным обращение к DB2 с мобильных устройств и из Web-браузеров. Библиотеки OData существуют для целого ряда мобильных устройств (для получения дополнительной информации обратитесь к разделу Ресурсы). Аналогичная поддержка OData доступна для Informix и DB2 на z/OS.

В настоящий момент доступ к временным данным и данным XML с использованием Visual Studio не поддерживается.


Загрузка

ОписаниеИмяРазмер
Примеры XMLUsingODataWithDB2-XML-Examples.zip2 КБ

Ресурсы

Комментарии

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
ArticleID=850414
ArticleTitle=Использование OData с IBM DB2 и Informix
publish-date=12062012