Платформа 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-сервисов, а не с одним бизнеспроцессом, осуществляемым на одном предприятии. Хореография - более публичный процесс