
- •Протокол soap
- •Створення служби «Hello, World» в середовищі Visual Studio .Net
- •Тестування служби
- •Атрибут WebService
- •Властивість EnableSession
- •InProc - (за замовчуванням) стан сесії існує в рамках процесу мережі користувача
- •Налаштування sql Server для asp.Net sql Server стану сесії
- •Змінити Web.Config файл у вашої програми
- •Властивість CacheDuration
- •Властивість TransactionOption
- •Приклад роботи транзакцій: додавання користувачів – всі або ніхто.
- •Властивість BufferedResponse
- •Кешування
- •Просте кешування результатів
- •Кешування даних в Web - сервісах
- •Встановлення елементів в кеш
- •Установка Web сервера iis
- •Задача 1.2. Створення рівню dal.
- •Задача 1.3. Створення рівню bll.
- •Колекція користувачів.
- •Створюємо тестер.
- •Задача 2. Створення рівня сервіса.
- •Задача 3.Створення тестеру-клієнта .
Web-служби .NET
Веб-служба (web service) - механізм який забезпечує мережевий доступ до функціональності програмного додатку на базі стандартних Інтернет технологій [1]. Тобто, якщо існує механізм, який дозволяє клієнтському додатку забезпечити зв'язок із серверним додатком на базі одного з протоколів HTTP, SMTP, XML-RPC, SOAP, такий механізм може називатись веб-сервісом.Таким чином, звичайний HTML веб-сайт можна розглядати в якості веб-служби.
Основою застосування являється клієнт-серверна архітектура. Основою сайту являється процес, який має доступ до локальної файлової системи зберігання документів. Знаходження документу здійснюється на базі визначника ресурсу Uniform Resource Locator (URL), який визначає місце знаходження документу. Такий визначник складається з адреси сервера (заданої на базі DNS) та адреси ресурсу-файлу, який знаходиться в локальній файловій системі сервера.
Рис.2.1.Структура адреси ресурсу
Зв'язок між браузером та веб-сервером здійснюється на базі протоколу Hypertext Transfer Protocol (HTTP). Важливо також відзначити, що стандартна система являється прикладом людино-центрованого додатку: клієнт, використовуючи браузер, задає запит, який обробляється сервісом.
В останні роки існує швидко зростаюча група веб-систем, які пропонують загальні послуги видаленого додатку без негайної взаємодії з кінцевими користувачами. Так, сервіси рівню додатка – механізми публікації, управління, пошуку та вибірки контенту, доступ до яких здійснюється на базі протоколів HTTP та HTML, клієнтські додатки – веб-браузери (web browsers), які розуміють ці стандарти можуть зв’язуватися з сервісами. При цьому, такий зв'язок не залежить від платформ(cross-platform interoperability), на базі яких функціонують додатки, бо взаємодія здійснюється на рівні протоколів.
В цьому контексті веб-службою називається будь-яка послуга, яка доступна через Інтернет, використовує стандартизовані системи обміну повідомленнями, і не прив'язані до однієї операційної системи або мови програмування [2].
Рис.2.2.Загальна
схема визначення веб-сервісу
Послуги описуються за допомогою Web Services Definition Language (WSDL). Опис WSDL містить точні визначення інтерфейсу, надані послуги, тобто процедура специфікацій, типів даних, (логічна) географія послуг та інші.
Реалізація web-служб .NET здійснюється так само просто, як і активізація віддаленої web-служби або виклик методу локального класу. Це досягається за рахунок застосування інструментів, що надаються системою .NET Framework, які дозволяють створити повноцінну web-службу, не вникаючи в деталі роботи таких стандартів, як SOAP і WSDL. Порядок дій при цьому подібний приведеному нижче (етапи 1, 3, 5 і 8 виконуються вручну).
1. Розробляється web-служба як .NET-клас з атрибутами, які ідентифікують його як web-службу з деякими функціями.
2. У середовищі .NET автоматично створюється документ WSDL, де описується, як клієнт повинен взаємодіяти з web-службою.
3. Споживач знаходить web-службу і, вирішивши скористатися нею, додає відповідне web-посилання в проект Visual Studio .NET (або запускає утиліту wsdl.exe).
4. У середовищі .NET здійснюється автоматична перевірка документа WSDL і генерується проксі-клас, який дозволяє споживачу взаємодіяти з web-службою.
5. Споживач викликає один з методів класу web-служби. Із його точки зору цей виклик не відрізняється від виклику методу будь-якого іншого класу, але насправді споживач взаємодіє з проксі-класом, а не з web-службою.
6. Проксі-клас перетворить передані параметри в повідомлення SOAP і відправляє його web-службі.
7. Незабаром проксі-клас одержує SOAP-відповідь, перетворить її у відповідний тип даних і повертає його як звичний тип даних .NET.
8. Споживач використовує повернену йому інформацію.
При роботі web-служб .NET використовується технологія ASP .NET, що є частиною системи .NET Framework. Вона також вимагає підтримки з боку серверу Microsoft IIS (Internet Information Server). Середовище Visual Studio .NET забезпечує велику кількість інструментів, які допомагають полегшити рішення задач, пов'язаних з отриманням і виконанням web-служби.
Базові технології
Робота web-служб побудована на використовуванні різних відкритих стандартів, які описані в табл. 1.1.
Специфікація WSDL
WSDL є стандартом, розробленим тільки для web-служб .NET. З метою забезпечення сумісності з іншими платформами при створенні web-служб рекомендується використовувати формат SOAP, але допускається також застосовувати методи POST і GET протоколу HTTP. Специфікації DISCO і UDDI є необов'язковими розширеннями, які полегшують публікацію і пошук інформації про web-служби. Проте на сьогоднішній день найлогічнішим способом передачі інформації є HTTP-комунікація, і немає значення від неї відмовлятися.
До числа менш поширених стандартів, використовуваних при створенні web-служб, відноситься WS-Inspection - специфікація для пошуку документів, в яких перераховані групи web-служб і їх місцезнаходження. Ця специфікація була розроблена спільними зусиллями компаній Microsoft і IBM і призначалася для заміни протоколу DISCO. Проте поточна версія системи .NET продовжує функціонувати на основі старого стандарту DISCO.
Протокол soap
Зв'язок між web-службами і їх клієнтами здійснюється за допомогою повідомлень у форматі XML. SOAP (Simple Object Access Protocol - простий протокол доступу до об'єктів) є протоколом повідомлень для вибору web-служб. Основна ідея стандарту SOAP полягає у тому, що повідомлення повинні бути закодовані в стандартизованому XML-форматі. Можна сказати, що формат SOAP ідеально підходить для технології RPC (Remote Procedure Call - виклик віддаленої процедури), оскільки SOAP-повідомлення містить параметри, що направляються клієнтом, або відіслану службою величину, що повертається. SOAP-повідомлення можуть використовуватися не тільки при передачі по протоколу HTTP, але також при пересилці через сокети, іменовані канали і навіть по протоколу SMTP електронної пошти.
Приведений нижче фрагмент коду містить просте SOAP-повідомлення - повідомлення-запит до web-служби GetlPForHostname. Його основна частина розміщена в спеціальний тег <soap.Envelope>. В даному випадку відсилається один параметр (hostName), значенням якого є рядок www.oreiny.com.
<?xml version="1.0" encoding-"utf-8"?>
<soap:Envelope mlns:xsi=http://www.w3.org/2001/XMLSchema- instance
xmlns:xsd=http://www.w3.org/2001/XMLSchema
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetIPForHostname xmlns-"http://www.bostontechni>.com/webservices?">
<hostName>www.oreilly.com</hostName>
</GetIPForHostname>
</soap:Body>
</soap:Envelope>
Окрім повідомлень SOAP, для обміну даними з web-службами .NET можна використовувати методи GET і POST протоколу HTTP. Теоретично при передачі інформації методом POST ви можете як і раніше застосовувати формат SOAP, але в цьому випадку дані простіше передавати у вигляді набору ім'я-значення без вказівки їх типу.
Створення служби «Hello, World» в середовищі Visual Studio .Net
Щоб створити нову web-службу, потрібно запустити VS .NET, після чого натиснути кнопку New Project на початковій сторінці Start Page, що відкрилася за умовчанням, або вибрати команду File / New / Project в рядку головного меню VS .NET. В результаті виконаних дій відкриється вікно New Project.
У області Project Types необхідно відзначити елемент Visual C# Projects, після чого у області Templates з'явиться перелік доступних шаблонів проектів на мові С#. Для створення web-служби ASP .NET вибирають шаблон ASP.NET Web Service. Аналогічний шаблон є і в розділі проектів на мовах Visual Basic і Visual C++. Вибравши мову і шаблон, слід вказати місцезнаходження файлів проекту. Для нашого проекту потрібно задати URL-адресу web-серверу IIS, додавши до нього ім'я папки, де розташовуватимуться файли проекту (у даному прикладі - HelloWorld). Ім'я проекту в полі Name формується автоматично і співпадає з ім'ям папки, що містить файли проекту.
Після натискання кнопки ОК інтегроване середовище розробки (Integrated Development Environment, IDE) створить solution і проект, а також автоматично включить в проект декілька файлів. Крім того, IDE сформує в IIS віртуальну папку з ім'ям проекту (в даному випадку - HelloWorldService).
При створенні нового проекту web-служби ASP .NET середовище Visual Studio .NET генерує деякий стандартний код, який може стати стартом при розробці проекту. Вміст початкового файлу HelloWorldService.asmx.cs повинен бути приблизно таким, як на рис. 2.3.
Рис. 2.3. Стандартний код в середовищі Visual Studio .NET
Приведений стандартний код починається з операції імпортування декількох просторів імен, web-служб, що звичайно вимагаються для роботи, і автоматичної генерації визначень просторів імен і класів. У даному прикладі простором імен є HelloWorldService, а класом – Service1.
При визначенні простору імен застосовується ім'я проекту, яке можна змінити на свій розсуд відповідно до функцій додатку.
Не всі з просторів імен, що автоматично імпортуються на початку коду, є обов'язковими. Такі простори, як System.Data, System.Collections і System.Diagnostics, взагалі не застосовуються.