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

  1. Що таке Data Web Services?
  2. Ключові аспекти DWS
  3. Малюнок 1. Типовий алгоритм розробки Data Web Services
  4. Встановлення та налаштування
  5. Малюнок 2. Створення нового проекту Data Development Project в Data Studio
  6. Малюнок 3. Створення вираження getmyEmp.sql
  7. Малюнок 7. Тестування Web-сервісу з використанням Web Services Explorer
  8. Лістинг 1. Використання браузера для тестування REST-зв'язування
  9. Малюнок 8. Опис архітектури Data Web Services
  10. Малюнок 9. настроюються формати доставки - застосування XSLT
  11. Робота з даними в світі Web 2.0
  12. Безпека
  13. Висновок
  14. Подякою
  15. Ресурси для скачування

Створення сервісів для доступу до DB2 і Informix Dynamic Server

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
Створення сервісів для доступу до DB2 і Informix Dynamic Server   Web-сервіси заслужили визнання як загальноприйнятий механізм обміну, доступу та управління даними

послідовне виконання

Дана стаття не є всеосяжним навчальним керівництвом, але давайте розглянемо перераховані вище дії на прикладі.

Встановлення та налаштування

Примітка. Дії, описані тут, допоможуть вам краще зрозуміти процес розробки 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. Потім створіть просте SQL-вираз select, яке повертає запис про співробітника. Можна використовувати або SQL-редактор в Data Studio, або просто скопіювати існуючий вираз в редактор. Data Studio надає інтегрований конструктор запитів і надає контекстну підтримку (як показано на малюнку 3 ) При введенні виразу. Збережіть цей оператор як getmyEmp.sql.
    Малюнок 3. Створення вираження getmyEmp.sql
  3. Тепер оформите SQL-вираз у вигляді Web-сервісу. Для цього клацніть правою кнопкою миші на папці Web Services, виберіть New Web Service і назвіть його myfirstService. Цей Web-сервіс myfirstService є просто контейнером, в якому будуть розміщені операції, які відображаються як 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
  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

    Примітка. Ми могли б замість цього вибрати генерування 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
  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

Налаштування 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

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-фіди і т.д.

Безпека

Вирішуючи 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 і малюнки, а також всіх колег за терпіння при прочитанні цієї статті і цінні поради.

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

Схожі тими

  • Оригінал статті " Data Web Services: Build Web services the new way to access IBM database servers "(EN).
  • " Використання достовірного контексту в клієнтських додатках DB2 "(DeveloperWorks, вересень 2006 р): хороша інформація для освоєння достовірного контексту і його можливостей.
  • Тема Реалізація достовірного контексту для баз даних (IBM, документація по WebSphere Application Server, листопад 2007 року): інформація про те, як реалізувати достовірний контекст між WebSphere Application Server і DB2 (EN).
  • Розділ developerWorks Information Management and SOA : Ресурси для підвищення кваліфікації в області SOA (EN).
  • Сторінка продукту Data Studio на developerWorks : Статті та навчальні посібники, інші ресурси для підвищення кваліфікації в IBM Data Studio (EN).
  • IBM Data Studio : Завантажте Data Studio безкоштовно.
  • DB2 Express-C : Тепер ви можете використовувати DB2 безкоштовно - завантажте DB2 Express-C, безкоштовну версію DB2 Express Edition для спільноти розробників, яка пропонує ті ж базові функціональні можливості, що і DB2 Express Edition, і забезпечує міцний фундамент для створення і розгортання додатків.
  • Розділ developerWorks Information Management : Додаткова інформація про управління інформацією - технічна документація, практичні керівництва, навчальні матеріали, файли для завантаження, інформація про продукти та багато іншого.
  • Розробіть ваш наступний проект, використовуючи пробне програмне забезпечення IBM , Доступне для завантаження безпосередньо на сайті developerWorks.

Підпішіть мене на ПОВІДОМЛЕННЯ до коментарів

Що таке Data Web Services?
Що таке Data Web Services?
Тому може виникнути питання: в чому ж секрет і як виконуються Web-сервіси?