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

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

Comments

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
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
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
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
    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
    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
    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
    shows ADO.NET Entity Data Model selected
  4. При получении сообщения с просьбой о подтверждении нажмите кнопку Yes (Да).
  5. В окне Entity Data Model Wizard (Мастер создания объектной модели данных) выберите установку (Генерировать из базы данных), а затем нажмите кнопку Next (Далее), как показано на рисунке 8.
    Рисунок 8. Мастер создания объектной модели данных
    shows Generate from database selected
    shows Generate from database selected

    Откроется диалоговое окно Choose Your Data Connection (Выбор информационного соединения).
  6. Выберите в выпадающем списке соединение, которое вы ранее сконфигурировали. Например, db2admin@SAMPLE. Нажмите кнопку Yes (Да) для включения в строку соединения уязвимых данных (имя пользователя и пароль), а затем нажмите кнопку Next (Далее), как показано на рисунке 9.
    Рисунок 9. Выбор информационного соединения
    shows data connection details
    shows data connection details

    Откроется диалоговое окно Choose Your Database Objects (Выбор объектов базы данных)..
  7. Щелкните по треугольнику, чтобы развернуть узел Tables (Таблицы). Установите флажки против таблиц DEPARTMENT и EMPLOYEE, а затем нажмите кнопку Finish (Готово), как показано на рисунке 10.
    Рисунок 10. Выбор объектов данных
    shows department and employee tables selected
    shows department and employee tables selected
  8. Откроется страница DB2.edmx с новой объектной моделью данных, как показано на рисунке 11.
    Рисунок 11. Страница DB2.edmx
    shows entity data model with employee and department tables
    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
    line that contains the DefaultModel.RegisterContext method is commented
    Рисунок 13. Global.asax (метод DefaultModel.RegisterContext – раскомментирован)
    line that contains the DefaultModel.RegisterContext method is uncommented
    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
    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
    MyEntitySet is highlighted
  2. Раскомментируйте код, содержащий config.SetEntitySetAccessRule. Замените MyEntitySet звездочкой «*», как показано на рисунке 16.
    Рисунок 16. Изменение кода для WcfDataService.cs
    WcfDataService.cs - Change the code as per step 1 and 2 above
    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
    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
    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
    Employee Table in XML format

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

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


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


Похожие темы


Комментарии

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

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