Лекция 7. Платформа Microsoft.NET

advertisement
Платформа
Microsoft .NET
Для специальности 22030105 программное
обеспечение вычислительной техники и
автоматизированных систем
Лекция : Web-сервисы



SOA
Web-сервисы
Создание Web-сервисов
Требуемые знания:
Протоколы HTTP, TCP/IP; HTML, XML,
SOAP, WSDL, UDDI, DNS
Ориентация на сервисы




В основе SOA лежит понятие сервисов, являющихся
базовыми элементами для построения бизнесприложений и обеспечения взаимодействия между
ними
В архитектуре SOA приложение рассматривается как
сервис, который можно найти, и далее получить
доступ к нему через локальную сеть или интернет
Приложение может реализовать некую функцию или
набор функций как самостоятельно, так и путем
обращения к другим сервисам
Сервисы являются автономными, но для того, чтобы
их можно было найти и использовать, они снабжены
соответствующими интерфейсами
Капризы моды
Что такое «сервис»? Как и всякая модная
вещь, понимается по-разному разными
людьми.
«Если попросить помощи у пяти
специалистов, то можно получить, как
минимум, шесть определений»
Сервис по Далю
Толковый словарь Даля
Вы искали: сервис
Результаты поиска:
В результате поиска ничего не найдено.
Попробуйте изменить критерий поиска
Сервис по gramota.ru
Толково-словообразовательный
СЕРВИС м.
1. Оказание услуг, удовлетворение бытовых
потребностей населения.
Stencil Group
Архитектура, ориентированная на сервисы, имеет четыре
основные характеристики:




SOA является распределенной. Функциональные элементы
приложений могут быть распределены по множеству
вычислительных систем и способны к взаимодействию с
использованием локальных или глобальных сетей.
строится с использованием слабосвязанных интерфейсов.
Обычно приложения проектируются в расчете на жесткую связь
всех элементов. Как следствие, система должна иметь
целостный проект, его изменения в процессе эксплуатации
затруднительны. Работу компонентов в слабосвязанных
системах
проще
координировать,
системы
проще
реконфигурировать
базируется на общепринятых отраслевых стандартах
проектируется с ориентацией на процессы (process-centric) с
использованием сервисов, каждый из которых ориентирован на
решение отдельных задач (task-centric)
Gartner Group


Основная черты SOA – деление на два или более уровня.
Обращенный к пользователю презентационный уровень
отделен от внутреннего, где реализуется бизнес-логика.
Последний создается из крупных блоков (coarse-grained
chunk),
которые
обеспечивают
сервис
клиентским
программам презентационного уровня. В логический уровень
могут
включаться
компоненты
управления
бизнеспроцессами (business process management - BPM)
Практически, как считают аналитики этой компании, SOA
можно реализовать, в том числе, многозвенной клиентсерверной архитектурой, но не двухуровневой архитектурой
с толстым клиентом, который совмещает как логику, так и
презентацию
International Data Corp.



Аналитики IDC определяют SOA как «архитектуру,
предназначенную
для
свободного
размещения
функциональных модулей, каждый из которых способен
выполнять
определенные
действия.
Эти
модули
представляют собой описывающие сами себя программные
компоненты, достижимые через сеть»
Модули публикуют свои интерфейсы таким образом, что их
использование не требует знания использованных в них
решений и технологий; их удобно воспринимать как черный
ящик
SOA можно реализовать и без использования Web-сервисов,
однако Web-сервисы рассматриваются в качестве основного
средства для создания подобной архитектуры
Другие
Barry & Associates



Данная консалтинговая компания определяет SOA как
«набор взаимодействующих между собой модулей»
Модули могут просто обмениваться между собой данными
или каким-то образом координировать свои действия
Архитектура, ориентированная на сервисы, не представляет
собой ничего нового, считают здесь. Ее первыми примерами
стали брокеры объектных запросов, основанные на
спецификации CORBA
ThoughtWorks

«SOA представляет собой набор сервисов, которые
совместно образуют систему, призванную заменить
монолитные корпоративные приложения типа ERP»
Примеры сервисов в быту


Проявка и печать фотографий
Химическая чистка одежды
Стандарты

Чтобы было возможно пользоваться
сервисами «world wide», необходимы
общие стандарты
Компоненты архитектуры SOA
Основу SOA составляет взаимодействие
трех участников:
• Поставщика сервиса
• Потребителя сервиса
• Реестра сервисов
Реестр
сервисов
Поиск
сервиса
Регистрация
Взаимодействие
Потребитель
сервиса
Поставщик
сервиса
Пример использования сервиса

Компания Pupkin Inc. создает сервис "Сложение
двух неотрицательных целых чисел"
PupkinAddService.

Вы хотите им воспользоваться. Вы обращаетесь
в специальное место, называемое "реестр
сервисов", где зарегистрированы различные
сервисы со всего мира. Некоторым образом вы
находите описание этого сервиса
В описании, в частности, указан URL сервиса,
который вы используете для вызова сервиса из
вашей программы

Где находится нофелет?
Вопросы:

Где находится реестр?

Как вы "связываетесь" с этим реестром?

Как вы поймете, что некий сервис выполняет то,
что вам надо?

Как вызвать сервис?

Как передавать параметры и принимать
возвращаемые значения?

Зависит ли формат общения от реализации
сервиса? Вашей программы? Используемой
ОС? Протоколов передачи данных?
Соглашения
Для реализации SOA необходимы следующие
соглашения:



Транспортное соглашение – о форматах и
протоколах взаимодействия
Соглашение об описании функциональности
сервиса в виде, пригодном для автоматической
генерации кода, который определяет процесс
взаимодействия между клиентом и поставщиком
сервиса
Соглашение о способе обнаружения сервиса
Web-сервисы



Веб-сервисы – одна из реализаций SOA
Стандартизацией архитектуры веб-сервисов
занимаются рабочие группы комитета W3C
(WSAWG – Architecture Working Group)
WSAWG: "веб-сервис – это реализуемая
программными средствами система для поддержки
межмашинного взаимодействия через сеть.
Интерфейс сервиса описывается на языке,
читаемом машиной, например, WSDL. Другие
системы взаимодействуют с веб-сервисом
способом, указанным в его описании, используя
сообщения в стандарте SOAP, передаваемые с
использованием HTTP и XML и в сочетании с
другими стандартами, относящимися к Web"
Web-сервис по яндексу

Веб-сервис
(от англ. web-service, синоним - онлайновая служба)
Под веб-сервисами понимают услуги, которые
предоставляются в интернете с помощью специальных
программ. Например, распространены такие сервисы, как:
поисковая система, веб-хостинг, веб-почта, хранение в
интернете различной информации (файлы, закладки),
календарь и т.д.

Важное свойство веб-сервиса состоит в том, что он не
зависит от вашего провайдера, компьютера или браузера вы можете работать со своими данными в любой точке мира,
где у вас есть доступ в интернет.
Характерный пример определения понятия со своей точки
зрения 
XML
Стек протоколов веб-сервисов
UDDI
Публикация и поиск
сервисов
WSDL
Описание
интерфейсов сервисов
SOAP
HTTP, SMTP, FTP…
Обмен сообщениями
Транспортные
протоколы
Святая троица
SOAP, WSDL и UDDI –
основа веб-сервисов
UDDI
XML

WSDL
SOAP
HTTP, SMTP, FTP…
Что такое XML




Extensible Markup Language
Неограниченный набор тегов
Каждый тег должен быть закрыт
Блочная структура не должна
нарушаться:
<b><i>Текст полужирным курсивом</b></i>


Case-sensitive
Атрибуты тега всегда в кавычках
И т.п.
UDDI
XML

WSDL
SOAP
HTTP, SMTP, FTP…
Мама мыла раму: что такое SOAP


Simple Object Access Protocol
Позволяет обмениваться структурированной
информацией
Каждое сообщение помещается в «конверт»
SOAP – единицу обмена сообщениями:
<soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope"
>
<soap:Body>
<Add xmlns="http://tempuri.org/">
UDDI
<x>int</x>
WSDL
<y>int</y>
SOAP
</Add>
HTTP, SMTP, FTP…
</soap:Body>
</soap:Envelope>
XML

Висдел

WSDL – Web Services Description Language
Спецификация интерфейса веб-сервиса:





Форматы сообщений
Типы данных
Протоколы
Endpoints
WSDL-файл – контракт между
сторонами
UDDI
XML

WSDL
SOAP
HTTP, SMTP, FTP…
Танцуем disco


UDDI – Universal Description, Discovery
and Integration
Опубликование и обнаружение вебсервисов
«register once, published everywhere»
(напоминает DNS)





http://uddi.org
http://uddi.microsoft.org
Русский uddi - http://www.uddi-russia.org
Регистр: белые, желтые и зеленые
страницы. Сервис: disco-файл
Альтернатива UDDI/SOAP – протокол
ebXML
UDDI
XML

WSDL
SOAP
HTTP, SMTP, FTP…
Всё вместе
Компоненты инфраструктуры вебсервисов
UDDI
WSDL
SOAP
Взаимодействие клиентов и
сервисов
WSE


Web Services Enhancements – add-on (class
library) к Visual Studio.NET, последняя
версия – 2.0
Поддержка механизмов безопасности,
надежной доставки, координации
распределенного выполнения и т.д. для
веб-сервисов
Музыка веб-сервисов



Возникают интересные вопросы о композициях и
потоках веб-сервисов
Orchestration (оркестровка) – композиция вебсервисов
Choreography (хореография) – поток вебсервисов
Оркестровка и хореография

Оркестровка


Как сервисы взаимодействуют друг с другом на уровне
сообщений, включая бизнес-логику и кооперацию при
выполнении сложных процессов в пределах одного
предприятия. Оркестровка основывается на открытых
стандартах для создания бизнес-процессов, включая
BPEL4WS, WSCI и BPML
Хореография

Хореография охватывает более широкий круг
участников взаимодействия, в том числе поставщиков,
потребителей и партнеров предприятия. Хореография
ассоциируется с публичным обменом сообщениями
между множеством Web-сервисов, а не с одним бизнеспроцессом, осуществляемым на одном предприятии.
Хореография - более публичный процесс
Download