Веб-служби. Сервісно-орієнтована архітектура 2007 Зміст


НазваВеб-служби. Сервісно-орієнтована архітектура 2007 Зміст
Дата конвертації20.04.2013
Розмір445 b.
ТипПротокол


Веб-служби. Сервісно-орієнтована архітектура

  • 2007


Зміст

  • Веб-служби (Web Services) та сервісно-орієнтована архітектура (СОА).

  • Стандарти веб-служб.

  • Документування веб-служб:

    • генерація документації для сприйняття людиною (з використанням веб-браузерів);
    • генерація документації, орієнтованої на використання програмами – wsdl-файли.
  • Розробка клієнтських програм для веб-служб. Утиліта Wsdl.exe.

  • Протокол SOAP. Конверт, заголовок SOAP-повідомлення

  • Стандарти XML, XML-Schema. Простори імен, монікери XML.

  • Розробка веб-служб. Директива @ WebService.

  • Тест-форми веб-служб. Утиліта .NET WebService Studio як універсальний клієнт.

  • Структура wsdl-файлів.

  • Оркестровка Web-сервісів. BPEL (BPEL4WS Business Process Execution Language for Web Services).

  • Структура BPEL-програм. Секції декларацій та дій (activities).

  • Класифікація дій BPEL-програм. Візуальне проектування BPEL-програм.



Веб-служби (Web Services) та сервісно-орієнтована архітектура (СОА)

  • Веб-служби (Web Services) – це технологія надання служб, до яких можна програмно (!) звертатися через Інтернет на базі загальноприйнятих стандартів. В якості результатів веб-службами надаються не обов'язково html-документи – клієнти веб-служб не обмежуються лише веб-браузерами.

  • Технологія веб-служб є універсальною – не залежною від операційних систем, мов програмування, об'єктної моделі тощо.

  • Веб-служби знаменують стратегію переходу від системно-орієнтованої архітектури до сервісно-орієнтованої архітектури (СОА).

  • СОА ґрунтується на слабкій зв'язуваності – сервіси (“запаковані бізнес-процеси”) та, зокрема, веб-сервіси взаємодіють між собою шляхом обміну повідомленнями. Інтеграція веб-сервісів отримала назву оркестрування (іноді виокремлюють ще й хореографію).

  • Засоби оркестрування: BPEL4WS або просто BPEL (Business Process Execution Language for Web Services - мова виконання бізнес-процесів для веб-сервісів).



Веб-служби та розподілені системи

  • Web-служби — це вид інтернет-додатків, що забезпечують зв'язок та інтеграцію різного роду додатків (гетерогенну інтеграцію) через Інтернет на основі використання єдиних стандартів і протоколів.

  • Web-служби дозволяють створювати розподілені системи, компоненти яких взаємодіють між собою шляхом стандартних інтерфейсів, що визначаються на основі XML. (Ще раз підкреслимо, що у випадку web-служб з інтернет-додатками можуть взаємодіяти інші додатки чи їх компоненти, а не лише люди).



Використання веб-служб: найбільш загальний вигляд. (Архітектура веб-служб)

  • Три основні учасники: постачальник (сервісу), споживач та реєстр сервісів, як посередник. Постачальник публікує (реєструє) свої сервіси (у реєстрі), споживач звертається до реєстру із запитом щодо сервісу після чого під'єднується до останнього.



Стандарти веб-служб

  • Основу технології веб-служб складають наступні стандарти:

    • транспортні Інтернет-протоколи HTTP (SMTP, TCP, FTP, HTTPS);
    • протокол SOAP (Simple Object Access Protocol) для повідомлень, якими, зокрема, обмінюються між собою веб-служба та програма (клієнт веб-служби). SOAP ґрунтується на стандарті XML;
    • мова WSDL (Web Services Definition Language) – мова опису веб-служб (також ґрунтується на стандарті XML);
    • реєстр веб-служб UDDI (Universal Description, Discovery, and Integrationуніверсальні опис, виявлення та інтеграція веб-служб). Цей реєстр є власне веб-службою і, зокрема, використовує повідомлення SOAP.


Сервісно-орієнтована архітектура



Приклади веб-служб



http://terraservice.net/terraservice.asmx



Адреси веб-служб. Документування веб-служб

  • Адресами веб-служб виступають asmx-файли.

  • Звернення до asmx-файлів перехоплюються та обробляються середовищем ASP.NET.

  • Документування веб-служб:

    • генерація документації для сприйняття людиною (з використанням веб- браузера).
    • генерація документації, орієнтованої на використання програмоюwsdl-файли (formal definition).


Документування веб-служб

  • Документування веб-служб:

    • генерація документації для сприйняття людиною (з використанням веб-браузера). “Шаблоном” генерації є файл DefaultWsdlHelpGenerator.aspx з CONFIG-підкаталогу Windows…\Framework\version\CONFIG, наприклад, C:\windows\Microsoft.NET\Framework\ v1.0.3705\CONFIG;
    • генерація документації, орієнтованої на використання програмоюwsdl-файли.
  • Зауваження. DefaultWsdlHelpGenerator.aspx є стандартною сторінкою ASP.NET, і для генерування документації використовується .NET рефлексія. Це дозволяє документації завжди відповідати коду веб-служби.



Веб-служба Центробанку Росії: http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx



«Review the Service Description» — http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL



WSCalc.asmx. Тест-форма веб-служби (MS Internet Explorer)



Операція GetCursOnDate



XML- документи. XML- схеми

  • XML- документи:

  • правильно сформовані стосовно стандарту XML:

    • єдиний кореневий елемент;
    • кожний не порожній елемент має закриваючий тег ( порожній елемент не містить інших елементів, наприклад, name тут є атрибутом);
    • елементи частково не перекриваються.
  • “достовірні” стосовно визначеної структури (схеми) документів (XML-схема, XML-Schema). (XML-схема, в свою чергу, має бути правильно сформована). Відношення між достовірним документом та його схемою можна розглядати як відношення між значенням (екземпляром) та його типом (типом значень). Наприклад, ядро SOAP-повідомлень має відповідати схемі “конверту” (Envelope).



Простори імен, монікери

  • Два ключових простори імен (namespace) у XML зі «стандартними» монікерами:

  • xmlns: xsd =

  • "http://www.w3.org/2001/XMLSchema" (визначаються схеми: element, schema тощо);

  • xmlns: xsi =

  • "http://www.w3.org/2001/XMLSchema-instance" (визначаються документи схем: schemaLocation тощо).

  • У специфікації SOAP використовується простір імен

  • xmlns: soap =

  • "http://schemas.xmlsoap.org/soap/envelope/"



XML-схеми та XML- документи. Приклад

  • xmlns: xsd ="http://www.w3.org/2001/XMLSchema" targetNamespaсe="urn:Anydata">

  • 12.34

  • (targetNamespase визначає цільовий простір імен, тобто простір імен поточної схеми).



SOAP

  • На початку свого існування SOAP розшифровувався як Simple Object Access Protocol (протокол доступу простих об'єктів). Акцент – на об'єкти.

  • Згодом акцент був перенесений на узагальнений обмін повідомленнями у розподіленому середовищі, можливо гетерогенному, не залежно від моделі програмування. Основою є XML. Популярна назва залишилась, проте SOAP вже не є акронімом.

  • SOAP-повідомлення визначаються з урахуванням вимог:

    • ядром SOAP-повідомлення є XML-документ, який відповідає схемі так званого “конверта” ( Envelope );
    • додатково (до документа-”конверта” у XML) використовується заголовок транспортного протоколу – “зв'язування протоколу” (protocol binding). За специфікацією SOAP-повідомлення пов'язуються з протоколом HTTP, зокрема, запити пов'язуються з методом POST, але можливі й інші варіанти зв'язування та транспортні протоколи.


SOAP. Envelope



Envelope, URI, schemaLocation (URL)



SOAP 1.1. Формат запиту (request)



SOAP 1.1. Формат відповіді (response)



WebServiceStudio. Request/Response



Веб-служби (Web Services). Розробка клієнтських програм у MS Visual Studio .NET



Веб-служби (Web Services). Розробка клієнтських програм у MS Visual Studio .NET



Веб-служби (Web Services). Розробка клієнтських програм із Framework SDK



Інструментарій (утиліта) Wsdl.exe

  • Необхідним параметром є URL-адреса веб-служби (для служб XML, створюваних за допомогою ASP.NET, можна до адреси додавати ?WSDL) або шлях до опису служби (wsdl-файлу).

  • Деякі можливі ключі для Wsdl.exe :



Інструментарій Wsdl.exe. Приклад використання

  • Wsdl.exe http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx



DailyInfo.сs (фрагмент)



DailyInfo.сs (фрагмент). (GetCursOnDate: Методи для синхронних та асинхронних викликів)





Приклад клієнтської програми для веб-служби ЦБР



Розробка веб-служб… Пригадаємо class ServerObject



Розробка веб-служб. WebServTest.asmx



Директива @ WebService (в asmx-файлах)

  • Деякі можливі атрибути:

  • Class – визначає клас, що реалізує веб-службу. Клас може бути в окремому файлі, але тільки у підкаталозі \Bin. Необхідний для компіляції веб-служби.

  • CodeBehind – визначає файл вихідного коду веб-служби. Його можна окремо тестувати, а asmx-файл у такому випадку міститиме тільки директиву WebService.

  • Наприклад, можуть використовуватись два файли: ws.asmx та ws.asmx.cs.

  • Language – визначає .NET-мову, використану для реалізації веб-служби у даному asmx-файлі. За замовчуванням – VB.



http://localhost/WebServTest.asmx

  • [WebService(Name="WebServiceTest",

  • Description= "Test WebService with temporal GUID")]



Тестування веб-сер-вісу WebServiceTest



Результат тестування



WebServTest2.asmx (використання Codebehind)

  • csc.exe /t:library WebServTest2.asmx.cs

  • результат (dll-файл) – у підкаталог /bin



Веб-служби у віртуальному каталозі за замовчуванням



Ще один приклад. WSCalc.asmx



WSDL (WSCalc.asmx)



.NET WebService Studio як універсальний клієнт



Операція GetCursOnDate та її параметри



Запуск метода GetCursOnDate на виконання



Результат виконання метода GetCursOnDate



Результат виконання метода GetCursOnDate. Таблиця ValuteDate (Тип System.Data.DataSet)



Request/Response



ClientCode



ClientCode



ProxyCode



ProxyCode (прод.)



WSDL (фрагмент)



WSDL (фрагмент)



Застосування Wsdl.exe до WSCalc.asmx

  • Wsdl.exe http://localhost/WSCalc.asmx Результат: CalculatorWebService.cs



Застосування Wsdl.exe до WSCalc.asmx (прод.)



WSDL (на прикладі WSCalc.asmx)

  • Кореневий XML-елемент definitions.

  • Визначаються простори імен, уводяться монікери.



NetBeans IDE 6.0 M10. WSCalc.wsdl



WSDL (на прикладі WSCalc.asmx). Розділ типів (XML-елемент types )

  • Визначаються типи, що використовуються у повідомленнях, якими можуть обмінюватись споживач та постачальник сервісу.



NetBeans IDE 6.0 M10. WSCalc.wsdl. Розділ типів



WSDL (на прикладі WSCalc.asmx). Розділ повідомлень (XML-елемент message)

  • У розділі містяться абстрактні визначення повідомлень: задається ім'я та структура (тип) кожного повідомлення.

  • (NB! Типи визначені у попередньому розділі).



NetBeans IDE 6.0 M10. WSCalc.wsdl. Розділ повідомлень



WSDL (на прикладі WSCalc.asmx). Розділ “типи портів” (XML- елемент portType)



NetBeans IDE 6.0 M10. WSCalc.wsdl. Розділ portType



WSDL (на прикладі WSCalc.asmx). Розділ зв'язування (XML- елемент binding)



NetBeans IDE 6.0 M10. WSCalc.wsdl. Розділ binding



WSDL (на прикладі WSCalc.asmx). Розділ сервісу (XML- елемент service)

  • Розділ сервісу (елемент service).

  • В елементі port міститься адреса веб-сервісу.



NetBeans IDE 6.0 M10. WSCalc.wsdl. Розділ service



До визначення сервісно-орієнтованої архітектури (СОА)

  • СОА - це архітектура, орієнтована, загалом, на представлення бізнес-процесів, спираючись на “ізольовані” сервіси (“запаковані бізнес-процеси”), які:

    • по-перше, можна використовувати багаторазово, до того ж створюючи з них (шляхом інтеграції) більш складні бізнес-сервіси;
    • по-друге, сервіси взаємодіють між собою шляхом обміну повідомленнями (слабка зв'язуваність).
  • СОА не є абсолютно новим рішенням. Наприклад, технології CORBA і COM (DCOM) можна вважати реалізацією СОА.

  • Найбільші досягнення концепції СОА пов'язані з технологією Web- сервісов. Серед основних причин успіху технології Web-сервісів важливу роль відіграє використання загальноприйнятих стандартів, які, по-перше, забезпечують незалежність від операційних систем, мов програмування, об'єктної моделі, та, по-друге, дозволяють використовувати Інтернет-рішення.



До визначення сервісно-орієнтованої архітектури (СОА)



До визначення сервісно-орієнтованої архітектури (СОА)



BPEL

  • BPEL заснований на XML.

  • У BPEL інтегровано ідеї

    • XLANG – мови бізнес-процесів на базі XML від Microsoft (використана Microsoft BizTalk Server для керування Web-сервісами) та
    • WSFL –мови потоків даних Web-сервисів (Web Services Flow Language) від IBM.
  • Фактична стандартизація через OASIS (Organization for the Advancement of Structured Information Standards – організація по удосконаленню стандартів структурованої інформації).

  • Підтримка: Microsoft, IBM, BEA, Sun, Oracle. У тому числі реалізаціями.

  • Перетворення UML-моделей у BPEL- та WSDL-файли. (Приклад інструментарію – IBM Emerging Technologies Toolkit 1.1).

  • До характеристики BPEL:

    • BPEL визначає поведінку бізнес-процесів, що базуються на Web-сервісах.
    • BPEL є стандартом для інтеграції гетерогенних додатків і сервісів у транзакційні бізнес-процеси.


BPEL. Definition

  • BPEL (Business Process Execution Language) for Web services is an XML-based language designed to enable task-sharing for a distributed computing or grid computing environment - even across multiple organizations - using a combination of Web services. Written by developers from BEA Systems, IBM, and Microsoft, BPEL combines and replaces IBM's WebServices Flow Language (WSFL) and Microsoft's XLANG specification. (BPEL is also sometimes identified as BPELWS or BPEL4WS.)



Оркестровка та хореографія Web-сервісів

  • Дві моделі компонування Web-сервісів:

    • оркестровка (orchestration) і
    • хореографія (choreography).
  • Основна різниця між ними визначається областю компонування Web-сервісів:

    • в оркестрованих Web-сервісах враховується потік управління з погляду одного учасника;
    • хореографією підкреслюється співробітництво всіх учасників, у цьому випадку охоплюються області всіх учасників, зокрема охоплюється їх взаємодії з глобальної точки зору.
  • BPEL призначений для оркестровки Web-сервісів на основі деякого бізнес-процеса.



Оркестровка Web-сервісів

  • При оркестровці центральний процес (яким може бути, інший Web-сервіс) бере під своє управління і координує виконання дій Web-сервісами, що беруть участь в даній операції.

  • Web-сервіси, що використовуються, "не знають" (і не повинні знати), що вони залучені до складу якогось процесу і що вони задіяні в бізнес- процесі високого рівня. Тільки центральний координатор оркестровки в курсі цієї мети – оркестровка є централізованим механізмом з явним визначенням операцій і порядком ініціації роботи Web-сервісів.

  • Оркестровка зазвичай використовується в конфіденційних (private) бізнес-процесах



Хореографія Web-сервісів

  • При хореографії немає центрального координатора: кожен Web-сервіс, задіяний в хореографії точно знає, коли виконати операції і з ким взаємодіяти.

  • Хореографія є сумісною дією, сфокусованою на обміні повідомленнями у відкритих (public) бізнес-процесах. Всі учасники хореографії повинні знати бізнес-процес, операції, які мають виконувати, повідомлення, якими потрібно обмінюватись, та синхронізувати такі обміни.



Структура BPEL-програм. Декларації

  • BPEL-процес складається з двох секцій: секції декларацій і секції дій.

  • Декларації:

    • <partnerLinks> – визначають Web-сервіси, що використовуються у BPEL-програмі;
    • <variables> – по суті визначається стан (BPEL-програму часто розглядають як Web-сервіс, що має пам'ять);
    • <faultHandlers> – обробники помилок (global error handlers),;
    • <compensationHandlers> – обробники невдач транзакцій (global transaction failure handlers);


Структура BPEL-програм. Дії (activities)

  • Секція дій відображає логіку процесу.

  • Класифікація дій:

  • Примітивні дії процесів і даних (primitive process and data activities):

    • для роботи з Web-сервісами: <invoke>, <receive>, <reply>;
    • для маніпулювання даними (зокрема, підготовки даних для передачі Web-сервісу) – <assign> (складається з операцій копіювання);
    • для керування процесом: <wait>, <exit> тощо.
  • Структуровані дії: <flow> (паралельне виконання), <sequence>, <while>, <if>, <pick> тощо.



BPEL. NetBeans IDE 6.0 M10



BPEL. NetBeans IDE 6.0 M10. Візуальне проектування



BPEL. NetBeans IDE 6.0 M10. Візуальне проектування



BPEL. NetBeans IDE 6.0 M10. Змінні



BPEL. NetBeans IDE 6.0 M10. targetNamespace="tres"



BPEL. NetBeans IDE 6.0 M10. Assign



BPEL. NetBeans IDE 6.0 M10. ItineraryIn



Додаток



http://terraservice.net



http://terraservice.net B-52



http://terraservice.net Стелс



http://terraservice.net Алькатрас



Ліцензії



Адреси веб-служб (локальних) для демонстрації

  • http://localhost/WebServTest.asmx

  • http://localhost/WebServTest2.asmx

  • http://localhost/WSCalc.asmx



xmlns

  • xsi - "http://www.w3.org/2001/XMLSchema-instance"

  • xsd - "http://www.w3.org/2001/XMLSchema"

  • wsdl - "http://schemas.xmlsoap.org/wsdl/"

  • vprop - "http://docs.oasis-open.org/wsbpel/2.0/varprop"

  • sref - "http://docs.oasis-open.org/wsbpel/2.0/serviceref"

  • plnk – "http://docs.oasis-open.org/wsbpel/2.0/plnktype"

  • bpel – "http://docs.oasis-open.org/wsbpel/2.0/process/executable"

  • abstract – "http://docs.oasis-open.org/wsbpel/2.0/process/abstract"



Схожі:

Веб-служби. Сервісно-орієнтована архітектура 2007 Зміст iconВеб-служби. Сервісно-орієнтована архітектура 2007 Зміст
Веб-служби знаменують стратегію переходу від системно-орієнтованої архітектури до
Веб-служби. Сервісно-орієнтована архітектура 2007 Зміст iconВеб-служби. Сервісно-орієнтована архітектура 2007 Зміст
Важливо відзначити, що клієнтами веб-служб можуть бути будь-які програми, зокрема, не обов'язково пов'язані з веб-проектуванням (з...
Веб-служби. Сервісно-орієнтована архітектура 2007 Зміст iconВеб-служби. Сервісно-орієнтована архітектура 2007 Зміст
Важливо відзначити, що клієнтами веб-служб можуть бути будь-які програми, зокрема, не обов'язково пов'язані з веб-проектуванням (з...
Веб-служби. Сервісно-орієнтована архітектура 2007 Зміст iconВеб-служби. Сервісно-орієнтована архітектура 2006-2011 Зміст
Важливо відзначити, що клієнтами веб-служб можуть бути будь-які програми, зокрема, не обов'язково пов'язані з веб-проектуванням (з...
Веб-служби. Сервісно-орієнтована архітектура 2007 Зміст iconВеб-служби. Сервісно-орієнтована архітектура 2006-2011 Зміст
Важливо відзначити, що клієнтами веб-служб можуть бути будь-які програми, зокрема, не обов'язково пов'язані з веб-проектуванням (з...
Веб-служби. Сервісно-орієнтована архітектура 2007 Зміст icon2007 Зміст jndi та конкретні служби іменування

Веб-служби. Сервісно-орієнтована архітектура 2007 Зміст icon2007 Зміст jndi та конкретні служби іменування

Веб-служби. Сервісно-орієнтована архітектура 2007 Зміст icon2007-2008 Зміст jndi та конкретні служби іменування

Веб-служби. Сервісно-орієнтована архітектура 2007 Зміст icon-
Сервіс-орієнтована архітектура soa (service-oriented architecture). Найбільш загальний вигляд
Веб-служби. Сервісно-орієнтована архітектура 2007 Зміст iconСемантичний Веб (Semantic Web) концепція, спрямована на перетворення www на глобальну базу знань
Більш реалістично концепція, орієнтована на обмін даними в середовищі www та на їх повторне використання; опис семантики, змісту...

Додайте кнопку на своєму сайті:
dok.znaimo.com.ua


База даних захищена авторським правом ©dok.znaimo.com.ua 2013
звернутися до адміністрації
dok.znaimo.com.ua
Головна сторінка