- •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.Список литературы
- •Введение в веб-сервисы
4.2.2Основные элементы языка wsdl
К основным элементам языка WSDL относятся:
Элемент |
Определяет |
Types (типы данных) |
Типы данных, используемые веб-сервисом, которые задаются с помощью XML-схемы. |
Message (сообщение) |
Сообщения, используемые веб-сервисом. Они могут быть представлены как полный документ или как аргументы, отображаемые на вызов метода. |
Operation (операция) |
Метод веб-сервиса, очередь сообщений или бизнес процесс, которые будут получать и обрабатывать сообщения. |
PortType (тип порта) |
Набор операций, поддерживаемых данным типом порта. |
Binding (привязка) |
Протоколы связи, используемы веб-сервисом. Для каждой привязки также задаются форматы данных, в которых будет передаваться сообщения, используемые операциях веб-сервиса. |
Port (порт) |
Взаимосвязь между привязкой и сетевым адресом в формате протокола привязки, который определяет входную точку веб-сервиса. |
Service (сервис) |
Набор связанных конечных узлов, заключающих все определения сервиса в один файл. Он содержит в себе определения портов и любые описания расширения. * |
Таблица 4.2. Основные элементы языка WSDL.
Как и большинство XML-технологий WSDL – расширяемая технология. К примеру, привязка на SOAP, является таким расширением. Кроме нее также определены привязки на методы GET и POST протокола HTTP и трансляция сообщений в MIME формат.
В соответствии со своими задачами элементы WSDL можно разделить на три основные группы: типы данных, операции и привязки.
WSDL-документ состоит из набора определений, которые представлены основными элементами языка:
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:documentation>
</wsdl:documentation>
<wsdl:types>
</wsdl:types>
<wsdl:message name="nmtoken">
</wsdl:message>
<wsdl:portType name="nmtoken">
<wsdl:operation name="nmtoken">
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="nmtoken" type="qname">
</wsdl:binding>
<wsdl:service name="nmtoken">
<wsdl:port name="nmtoken" binding="qname">
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Элемент documentation не относится к числу обязательных элементов, однако его использование желательно т.к. он содержит в себе информацию о веб-сервисе, предназначенную для человека:
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
Веб-сервис бронирования мест в гостинице
</wsdl:documentation>
Этот элемент может быть использован как дочерний элемент для других элементов, например для добавления описаний к операциям веб-сервиса.
4.2.3Определение типов данных в wsdl
Для определения типов данных, используемых веб-сервисом, в WSDL-документах рекомендуется использовать механизм XML-схем. Следующий пример демонстрирует задание двух типов данных: «GetCatalogs» и «GetCatalogsResponse». Первый из них представляет собой пустой тип данных (ангалог void в C++), а второй – массив записей о каталогах интернет-магазина, содержащий поля Id и Name:
<wsdl:types>
<s:schema elementFormDefault="qualified"
targetNamespace="http://www.mephi.ru/order">
<s:element name="GetCatalogs">
<s:complexType />
</s:element>
<s:element name="GetCatalogsResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="GetCatalogsResult" type="tns:ArrayOfCatalog" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfCatalog">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="Catalog" nillable="true" type="tns:Catalog" />
</s:sequence>
</s:complexType>
<s:complexType name="Catalog">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="Id" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="Name" type="s:string" />
</s:sequence>
</s:complexType>
</s:schema>
</wsdl:types>
Для использования этих типов данных необходимо задать сообщения веб-сервиса, в которых они будут задействованы:
<wsdl:message name="GetCatalogsSoapIn">
<wsdl:part name="parameters"
element="tns:GetCatalogs" />
</wsdl:message>
<wsdl:message name="GetCatalogsSoapOut">
<wsdl:part name="parameters"
element="tns:GetCatalogsResponse" />
</wsdl:message>
Таким образом, было задано два сообщения, которые могут быть использованы при определении операций веб-сервиса. Первое сообщение было определено как пустое, а содержание второго может быть, к примеру, следующим:
<?xml version="1.0" encoding="utf-8" ?>
<ArrayOfCatalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.mephi.ru/order">
<Catalog>
<Id>1</Id>
<Name>Процессоры</Name>
</Catalog>
<Catalog>
<Id>2</Id>
<Name>Видеокарты</Name>
</Catalog>
</ArrayOfCatalog>
