980 likes | 1.4k Views
Веб-служби. Сервісно-орієнтована архітектура. 2007. ( Курс “Інформаційні технології” ). Веб-служби ( Web Services ) та сервісно-орієнтована архітектура (СОА). Стандарти веб-служб. Документування веб-служб: генерація документації для сприйняття людиною (з використанням веб-браузерів);
E N D
Веб-служби.Сервісно-орієнтована архітектура 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 Services) та сервісно-орієнтована архітектура (СОА) Web Services
Web-служби — це вид інтернет-додатків, що забезпечують зв'язок та інтеграцію різного роду додатків (гетерогенну інтеграцію) через Інтернет на основі використання єдиних стандартів і протоколів. Web-служби дозволяють створювати розподілені системи, компоненти яких взаємодіють між собою шляхом стандартних інтерфейсів, що визначаються на основі XML. (Ще раз підкреслимо, що у випадку web-служб з інтернет-додатками можуть взаємодіяти інші додатки чи їх компоненти, а не лише люди). Веб-служби та розподілені системи Web Services
Три основні учасники: постачальник (сервісу), споживач та реєстр сервісів, як посередник. Постачальник публікує (реєструє) свої сервіси (у реєстрі), споживач звертається до реєстру із запитом щодо сервісу після чого під'єднується до останнього. Використання веб-служб: найбільш загальний вигляд. (Архітектура веб-служб) Ще термін: брокер-реєстратор 1 2 3 Web Services
Основу технології веб-служб складають наступні стандарти: транспортні Інтернет-протоколи 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
Сервісно-орієнтована архітектура Web Services
Приклади (адреси) веб-служб:http://terraservice.net/terraservice.asmx http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx Приклади веб-служб Веб-служба Центробанку Росії:http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx Web Services
http://terraservice.net/terraservice.asmx Однаковий “дизайн” веб-служб Web Services
Адресами веб-служб виступають asmx-файли. Звернення до asmx-файлів перехоплюються та обробляються середовищемASP.NET. Документування веб-служб: генерація документації для сприйняття людиною(з використанням веб-браузера). генерація документації, орієнтованої на використанняпрограмою– wsdl-файли (formal definition). Адреси веб-служб. Документування веб-служб Web Services
Документування веб-служб: генерація документації для сприйняттялюдиною (з використанням веб-браузера).“Шаблоном” генерації є файлDefaultWsdlHelpGenerator.aspxз CONFIG-підкаталогу Windows – …\Framework\version\CONFIG, наприклад, C:\windows\Microsoft.NET\Framework\ v1.0.3705\CONFIG; генерація документації, орієнтованої на використання програмою – wsdl-файли. Зауваження.DefaultWsdlHelpGenerator.aspx є стандартною сторінкою ASP.NET, і для генерування документації використовується .NET рефлексія. Це дозволяє документації завжди відповідати коду веб-служби. Документування веб-служб Web Services
Веб-служба Центробанку Росії:http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx Опис “для людини” Опис “для програми” (wsdl-файл) — Service Description Web Services
review the Service Description «Review the Service Description» — http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL Опис веб-служби у мові WSDL (wsdl-файл) Web Services
WSCalc.asmx.Тест-форма веб-служби (MS Internet Explorer) Тест-форма веб-служби Web Services
ОпераціяGetCursOnDate Web Services
XML- документи: “правильно сформовані” стосовно стандарту XML: єдиний кореневий елемент; кожний не порожній елемент має закриваючий тег( порожній елемент не містить інших елементів, наприклад,<student name=Bob/> name тут є атрибутом); елементи частково не перекриваються. “достовірні” стосовно визначеної структури (схеми) документів (XML-схема, XML-Schema). (XML-схема, в свою чергу, має бути правильно сформована). Відношення між достовірнимдокументом та його схемою можна розглядати як відношення між значенням (екземпляром) та його типом (типом значень).Наприклад, ядроSOAP-повідомлень має відповідати схемі “конверту” (Envelope). XML- документи. XML- схеми Web Services
Два ключових простори імен (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
<?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
На початку свого існування SOAP розшифровувався як Simple Object Access Protocol (протокол доступу простих об'єктів). Акцент – на об'єкти. Згодом акцент був перенесений на узагальнений обмін повідомленнями у розподіленому середовищі, можливо гетерогенному, не залежно від моделі програмування. Основою є XML. Популярна назва залишилась, проте SOAP вже не є акронімом. SOAP-повідомлення визначаються з урахуванням вимог: ядромSOAP-повідомлення є XML-документ, який відповідає схемі так званого “конверта” ( Envelope ); додатково (до документа-”конверта” у XML) використовується заголовок транспортного протоколу – “зв'язування протоколу” (protocol binding). За специфікацією SOAP-повідомлення пов'язуються з протоколом HTTP, зокрема, запити пов'язуються з методом POST, але можливі й інші варіанти зв'язування та транспортні протоколи. SOAP Web Services
SOAP. Envelope Web Services
Envelope, URI, schemaLocation (URL) URI, а не URL! Web Services tns - this name spase
SOAP 1.1. Форматзапиту(request) Протокол, версія URI “Оператор обробки” (PI, Processing Instruction) Web Services
SOAP 1.1. Форматвідповіді(response) Код статусу відповіді 400 - Bad Request; 404 - Not Found. Web Services
WebServiceStudio. Request/Response Web Services
Веб-служби (Web Services).Розробка клієнтських програм у MS Visual Studio .NET 1. Вибір проектного шаблону. 2. (Меню) Project => AddWebReference. 1. Вибір проектного шаблону Розробка веб-служби (з Hello World у коментарях) Web Services
Веб-служби (Web Services).Розробка клієнтських програм у MS Visual Studio .NET 1. Вибір проектного шаблону. 2. (Меню) Project => AddWebReference. Web Services
Веб-служби (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
Необхідним параметром є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
Wsdl.exe http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx ІнструментарійWsdl.exe. Приклад використання Web Services
DailyInfo.сs (фрагмент) Web Services
DailyInfo.сs (фрагмент). (GetCursOnDate:Методи для синхронних та асинхронних викликів) Web Services
Приклад виконання клієнтської програми для веб-служби ЦБР Web Services
Приклад клієнтської програми для веб-служби ЦБР Фрагмент коду «ConnectToServer») (button1_Click) Web Services
Розробка веб-служб… Пригадаємо class ServerObject class ServerObjectвикористовувався при дослідженні .Net Remoting, зокрема, різних варіантів активізації віддалених об'єктів Web Services
Розробка веб-служб. WebServTest.asmx Web Services
Деякі можливі атрибути: Class – визначає клас, що реалізує веб-службу. Клас може бути в окремому файлі, але тільки у підкаталозі \Bin. Необхідний для компіляції веб-служби. CodeBehind – визначає файл вихідного коду веб-служби. Його можна окремо тестувати, а asmx-файл у такому випадку міститиме тільки директиву WebService. Наприклад, можуть використовуватись два файли: ws.asmx та ws.asmx.cs. Language – визначає .NET-мову, використану для реалізації веб-служби у даному asmx-файлі. За замовчуванням – VB. Директива @ WebService(в asmx-файлах) Web Services
[WebService(Name="WebServiceTest", Description= "Test WebService with temporal GUID")] http://localhost/WebServTest.asmx [WebMethod(Description= "WebMethod. Returns ''Hi!'' + temporal GUID ")] Web Services
Тестування веб-сер-вісу WebServiceTest Web Services
Результат тестування Висновок: ”SingleCall” Web Services
csc.exe /t:library WebServTest2.asmx.cs результат (dll-файл) – у підкаталог /bin WebServTest2.asmx(використання Codebehind) WebServTest2.asmx.cs Web Services
Веб-служби у віртуальному каталозі за замовчуванням Web Services
Ще один приклад.WSCalc.asmx Web Services
WSDL (WSCalc.asmx) Web Services
.NET WebService Studio як універсальний клієнт http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx Web Services
Операція GetCursOnDate та її параметри Web Services
Запуск метода GetCursOnDate на виконання Web Services
Результат виконання метода GetCursOnDate Web Services
Результат виконання метода GetCursOnDate. Таблиця ValuteDate (Тип System.Data.DataSet) Web Services
Request/Response Web Services
ClientCode Web Services