- •1. Введение в веб-сервисы 4
- •2. Лабораторная работа №1. Расширяемый язык разметки xml. 17
- •3. Лабораторная работа №2. Схемы xml-документов. 28
- •3.1 Цель работы 28
- •3.3 Порядок выполнения работы 34
- •4. Лабораторная работа №3. Язык определения веб-сервисов wsdl. Реализация веб-сервисов. 38
- •4.1 Цель работы 38
- •5. Лабораторная работа №4. Протокол soap. Использование веб-сервисов. 59
- •1.Введение в веб-сервисы
- •1.1Основы веб-сервисов
- •1.2Использование веб-сервисов
- •1.3Технологический базис веб-сервисов
- •1.3.5Дополнительные технологии
- •1.4Принципы взаимодействия веб-сервисов
- •1.4.1Rpc-ориентированные взаимодействия
- •1.4.2Документно-ориентированные взаимодействия
- •1.4.3Взаимодействие в рамках сервисно-ориентированной архитектуры
- •1.5Веб-сервисы и другие технологии
- •1.5.1История развития
- •1.5.5Сравнение с веб-сервисами
- •2.Лабораторная работа №1. Расширяемый язык разметки xml.
- •2.1Цель работы
- •2.2Теоретическое введение
- •2.2.1Пример xml-документа
- •2.2.2Правила составления xml-документов
- •2.2.3Элементы xml
- •2.2.4Атрибуты xml
- •2.2.5Пространства имен xml
- •2.3Порядок выполнения работы
- •2.4Отчет по работе
- •2.5Контрольные вопросы
- •3.Лабораторная работа №2. Схемы xml-документов.
- •3.1Цель работы
- •3.2Теоретическое введение
- •3.2.1Схемы xml-документов
- •3.2.2Определение шаблона документа dtd
- •3.2.3Xml-Схемы
- •3.3Порядок выполнения работы
- •3.4Отчет по работе
- •3.5Контрольные вопросы
- •4.2.2Основные элементы языка wsdl
- •4.2.3Определение типов данных в wsdl
- •4.2.4Определение типов портов в wsdl
- •4.2.5Определение сервиса и его привязка к протоколам в wsdl
- •4.2.6Реализации веб-сервисов
- •4.2.7Создание веб-сервисов на платформе .Net
- •4.2.8Создание веб-сервиса интернет-магазина
- •4.3Порядок выполнения работы
- •4.4Отчет по работе
- •4.5Контрольные вопросы
- •5.2.2Основные элементы soap
- •5.2.3Привязка soap к http
- •5.2.4Создание на платформе .Net клиентских приложений использующих веб-сервисы
- •5.2.5Создание клиентского приложения для работы с веб-сервисом интернет-магазина
- •5.3Порядок выполнения работы
- •5.4Отчет по работе
- •6.2.2Основные элементы bpel
- •6.2.3BizTalk 2006 как средство интеграции приложений
- •6.2.4Пример использования bpel
- •6.3Порядок выполнения работы
- •7.3Порядок выполнения работы
- •7.4Отчет по работе
- •7.5Контрольные вопросы
- •8.2.2Обработка заказов через веб-сервис erp системы компании
- •8.2.3Регистрация заказа и оплата через платежную систему
- •8.2.4Конвертация валюты с помощью веб-сервиса цб
- •8.2.5Тестирование работоспособности приложения
- •8.3Порядок выполнения работы
- •9.Лабораторная работа №8. Интеграция веб-сервисов при помощи BizTalk 2006. Часть 2.
- •9.1Порядок выполнения работы
- •9.2Отчет по работе
- •9.3Контрольные вопросы
- •10.Варианты заданий
- •10.1Вариант 1
- •10.2Вариант 2
- •11.Список литературы
- •Введение в веб-сервисы
5.2.3Привязка soap к http
Спецификация SOAP позволяет осуществлять привязку ко многим транспортным протоколам, однако наиболее часто используемой является привязка на протокол HTTP.
Привязка к HTTP обеспечивает согласованность SOAP-сообщений с моделью сообщений HTTP и позволяет HTTP-серверам распознавать, что полученное сообщения является SOAP-сообщением. Следовательно, сервер сможет правильно обработать это сообщение, зная, что это именно SOAP-сообщение, а не просто XML документ или другая информация, которая может быть получена им от клиента.
Примером сообщений веб-сервиса интернет-магазина, передаваемых и получаемых им при обращении клиента к операции получения списка товаров в каталоге, могут служить следующие сообщения:
POST /order/WebShop.asmx HTTP/1.1
Host: localhost
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 455
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<GetGoods xmlns="http://www.mephi.ru/order">
<catalogId>1</catalogId>
</GetGoods>
</soap12:Body>
</soap12:Envelope>
Это был запрос к веб-сервису. А вот возможный вариант его ответа:
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 807
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<GetGoodsResponse xmlns="http://www.mephi.ru/order">
<GetGoodsResult>
<Good>
<Id>1</Id>
<Name>Celeron 2600</Name>
<Price>150</Price>
<Available>true</Available>
</Good>
<Good>
<Id>2</Id>
<Name>P4 3000</Name>
<Price>190</Price>
<Available>true</Available>
</Good>
</GetGoodsResult>
</GetGoodsResponse>
</soap12:Body>
</soap12:Envelope>
5.2.4Создание на платформе .Net клиентских приложений использующих веб-сервисы
Рассмотрим на примере описанного в предыдущей работе веб-сервиса, приветствующего вызывающего его человека по имени, то, каким образом реализовано взаимодействие с веб-сервисами из клиентских приложений на платформе .NET. Для этого добавим в решение проект типа «Windows Console Application». Для подключения веб-сервиса к этому проекту достаточно добавить в раздел «Web References» ссылку на созданный веб-сервис. При этом запускается мастер, который спрашивает адрес веб-сервиса, имя прокси класса и, после введения всей необходимой информации, генерирует сам прокси класс. После этого вызов веб-сервиса из любой точки программы сводится к нескольким строчкам, что демонстрирует простоту взаимодействия с веб-сервисами на платформе .NET:
using System;
using ServiceTest.HelloService;
namespace ServiceTest
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Введинте имя:");
string name = Console.ReadLine();
Service service = new Service();
string response = service.Hello(name);
Console.WriteLine("Ответ: " + response);
Console.ReadLine();
}
}
}
Результат выполнения этой программы будет следующим:
Рис. 5.14. Результат работы клиентского приложения.
