Download
slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
Веб-служби. Сервісно-орієнтована архітектура PowerPoint Presentation
Download Presentation
Веб-служби. Сервісно-орієнтована архітектура

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

342 Views Download Presentation
Download Presentation

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

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Веб-служби.Сервісно-орієнтована архітектура 2007 (Курс “Інформаційні технології”)

  2. Веб-служби (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

  3. Веб-служби (Web Services) – це технологія надання служб, до яких можна програмно (!) звертатися через Інтернет на базі загальноприйнятих стандартів. В якості результатів веб-службами надаються не обов'язково html-документи – клієнти веб-служб не обмежуються лише веб-браузерами. Технологія веб-служб є універсальною – не залежною від операційних систем, мов програмування, об'єктної моделі тощо. Веб-служби знаменують стратегію переходу від системно-орієнтованої архітектури до сервісно-орієнтованої архітектури (СОА). СОА ґрунтуєтьсянаслабкій зв'язуваності– сервіси (“запаковані бізнес-процеси”) та, зокрема, веб-сервіси взаємодіють між собою шляхом обміну повідомленнями. Інтеграція веб-сервісів отримала назву оркестрування (іноді виокремлюють ще й хореографію). Засоби оркестрування: BPEL4WS або просто BPEL (Business Process Execution Language for Web Services - мова виконання бізнес-процесів для веб-сервісів). Веб-служби (Web Services) та сервісно-орієнтована архітектура (СОА) Web Services

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

  5. Три основні учасники: постачальник (сервісу), споживач та реєстр сервісів, як посередник. Постачальник публікує (реєструє) свої сервіси (у реєстрі), споживач звертається до реєстру із запитом щодо сервісу після чого під'єднується до останнього. Використання веб-служб: найбільш загальний вигляд. (Архітектура веб-служб) Ще термін: брокер-реєстратор 1 2 3 Web Services

  6. Основу технології веб-служб складають наступні стандарти: транспортні Інтернет-протоколи 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. Стандарти веб-служб “Стек протоколів” веб-служб XML Web Services

  7. Сервісно-орієнтована архітектура Web Services

  8. Приклади (адреси) веб-служб:http://terraservice.net/terraservice.asmx http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx Приклади веб-служб Веб-служба Центробанку Росії:http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx Web Services

  9. http://terraservice.net/terraservice.asmx Однаковий “дизайн” веб-служб Web Services

  10. Адресами веб-служб виступають asmx-файли. Звернення до asmx-файлів перехоплюються та обробляються середовищемASP.NET. Документування веб-служб: генерація документації для сприйняття людиною(з використанням веб-браузера). генерація документації, орієнтованої на використанняпрограмою– wsdl-файли (formal definition). Адреси веб-служб. Документування веб-служб Web Services

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

  12. Веб-служба Центробанку Росії:http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx Опис “для людини” Опис “для програми” (wsdl-файл) — Service Description Web Services

  13. review the Service Description «Review the Service Description» — http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL Опис веб-служби у мові WSDL (wsdl-файл) Web Services

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

  15. ОпераціяGetCursOnDate Web Services

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

  17. Два ключових простори імен (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/" Простори імен, монікери Web Services

  18. <?xml version="1.0"?> <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns: xsd ="http://www.w3.org/2001/XMLSchema"targetNamespaсe="urn:Anydata"> <element name = "length" type="double"/> </schema> <?xml version="1.0"?> <length xmlns="urn:Anydata">12.34 </length> (targetNamespaseвизначає цільовий простір імен, тобто простір імен поточної схеми). XML-схеми та XML- документи. Приклад Атрибут посилання на простір імен за замовчуванням Web Services

  19. На початку свого існування SOAP розшифровувався як Simple Object Access Protocol (протокол доступу простих об'єктів). Акцент – на об'єкти. Згодом акцент був перенесений на узагальнений обмін повідомленнями у розподіленому середовищі, можливо гетерогенному, не залежно від моделі програмування. Основою є XML. Популярна назва залишилась, проте SOAP вже не є акронімом. SOAP-повідомлення визначаються з урахуванням вимог: ядромSOAP-повідомлення є XML-документ, який відповідає схемі так званого “конверта” ( Envelope ); додатково (до документа-”конверта” у XML) використовується заголовок транспортного протоколу – “зв'язування протоколу” (protocol binding). За специфікацією SOAP-повідомлення пов'язуються з протоколом HTTP, зокрема, запити пов'язуються з методом POST, але можливі й інші варіанти зв'язування та транспортні протоколи. SOAP Web Services

  20. SOAP. Envelope Web Services

  21. Envelope, URI, schemaLocation (URL) URI, а не URL! Web Services tns - this name spase

  22. SOAP 1.1. Форматзапиту(request) Протокол, версія URI “Оператор обробки” (PI, Processing Instruction) Web Services

  23. SOAP 1.1. Форматвідповіді(response) Код статусу відповіді 400 - Bad Request; 404 - Not Found. Web Services

  24. WebServiceStudio. Request/Response Web Services

  25. Веб-служби (Web Services).Розробка клієнтських програм у MS Visual Studio .NET 1. Вибір проектного шаблону. 2. (Меню) Project => AddWebReference. 1. Вибір проектного шаблону Розробка веб-служби (з Hello World у коментарях) Web Services

  26. Веб-служби (Web Services).Розробка клієнтських програм у MS Visual Studio .NET 1. Вибір проектного шаблону. 2. (Меню) Project => AddWebReference. Web Services

  27. Веб-служби (Web Services).Розробка клієнтських програм із Framework SDK 1. Отримати проксі для веб-служби, використовуючи утиліту Wsdl. 2. У програмі створити екземпляр класу проксі та задіяти щодо нього потрібні виклики методів. 3. Відкомпілювати та скомпонувати програмний проект. Приклад розробки (консольного) клієнтського проекту (C#) 1. Wsdl http://www. ... /WebServ.asmx?WSDL (якщо WSClass є класом реалізації веб-служби, то буде згенеровано файл WSClass.cs) 2.WSClass ws = new WSClass();// це фрагмент проекту . . . ws.metod1(); 3.a.csc /t:library /r:System.Web.dll, System.XML.dll, System.Web.Services.dll WSClass.cs b.csc /t:exe /r: WSClass.dll Proj1.cs “Адреса” веб-служби Web Services

  28. Необхідним параметром єURL-адреса веб-служби (для служб XML, створюваних за допомогою ASP.NET, можна до адреси додавати ?WSDL) або шлях до опису служби (wsdl-файлу). Деякі можливі ключі для Wsdl.exe : Інструментарій (утиліта)Wsdl.exe /l[anguage]: … /n[amespace]: … /o[ut]: … /p[rotocol] : … Мова, в якій генерується клас проксі (доступні варіанти: C#, VB, JS). За замовчуванням – C#. Простір імен для створюваного класу проксі. Ім'я створюваного файлу з класом проксі. За замовчуванням визначається за іменем класу, що реалізує веб-службу. Протокол зв'язування з методами веб-служби XML (доступні варіанти: SOAP, HttpGet, HttpPost. За замовчуванням – SOAP. Web Services

  29. Wsdl.exe http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx ІнструментарійWsdl.exe. Приклад використання Web Services

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

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

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

  33. Приклад клієнтської програми для веб-служби ЦБР Фрагмент коду «ConnectToServer») (button1_Click) Web Services

  34. Розробка веб-служб… Пригадаємо class ServerObject class ServerObjectвикористовувався при дослідженні .Net Remoting, зокрема, різних варіантів активізації віддалених об'єктів Web Services

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

  36. Деякі можливі атрибути: Class – визначає клас, що реалізує веб-службу. Клас може бути в окремому файлі, але тільки у підкаталозі \Bin. Необхідний для компіляції веб-служби. CodeBehind – визначає файл вихідного коду веб-служби. Його можна окремо тестувати, а asmx-файл у такому випадку міститиме тільки директиву WebService. Наприклад, можуть використовуватись два файли: ws.asmx та ws.asmx.cs. Language – визначає .NET-мову, використану для реалізації веб-служби у даному asmx-файлі. За замовчуванням – VB. Директива @ WebService(в asmx-файлах) Web Services

  37. [WebService(Name="WebServiceTest", Description= "Test WebService with temporal GUID")] http://localhost/WebServTest.asmx [WebMethod(Description= "WebMethod. Returns ''Hi!'' + temporal GUID ")] Web Services

  38. Тестування веб-сер-вісу WebServiceTest Web Services

  39. Результат тестування Висновок: ”SingleCall” Web Services

  40. csc.exe /t:library WebServTest2.asmx.cs результат (dll-файл) – у підкаталог /bin WebServTest2.asmx(використання Codebehind) WebServTest2.asmx.cs Web Services

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

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

  43. WSDL (WSCalc.asmx) Web Services

  44. .NET WebService Studio як універсальний клієнт http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx Web Services

  45. Операція GetCursOnDate та її параметри Web Services

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

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

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

  49. Request/Response Web Services

  50. ClientCode Web Services