WEB-ТЕХНОЛОГИИ Лекция 6 Понятие Web-сервисов 1 Интерфейс в глобальную сеть для некоторого абстрактного программного обеспечения, этот интерфейс позволяет фактически абсолютно прозрачно выполнять какие-то функции, возложенные на это программное обеспечение на удаленном компьютере Программный интерфейс, который описывает набор операций, которые могут быть вызваны удаленно по сети посредством стандартизированных XML сообщений Web-сервис не имеет специального пользовательского интерфейса (применение в рамках концепции программа–программа, а не человек–программа) W3C: Web-сервисом называется программная система, идентифицируемая строкой URI, чьи публичные интерфейсы и привязки определены и описаны посредством XML. Описание этой программной системы может быть найдено другими программными системами, которые могут взаимодействовать с ней согласно этому описанию посредством сообщений, основанных на XML, и передаваемых с помощью Интернет-протоколов Понятие Web-сервисов 2 Стадии работы: 1. Клиент формирует строку запроса и отсылает ее серверу 2. После получения строки сервер преобразует ее в вызов функции 3. Полученные структуры данных, в свою очередь, преобразуются в строку, которая и передается клиенту Свойства Web-сервисов 3 1. Модульность 2. Самодостаточность 3. Самоописываемость 4. Саморекламируемость 5. Строятся вокруг XML 6. Платформонезависимость 7. Независимость от языка программирования 8. Легко комбинируются друг с другом, невзирая на различия в платформе и языке программирования 9. Базируются на стандартах Цели Web-сервисов 1. Способность взаимодействия широкого набора платформ между собой 2. Надежность 3. Интеграция с глобальной сетью Интернет 4. Безопасность 5. Масштабируемость и расширяемость модели 4 XML Структура Web-сервисов UDDI Публикация и поиск Web-сервисов WSDL Описание Web-сервисов SOAP Обмен сообщениями HTTP, SMTP, FTP,... Транспортная инфраструктура 5 Типы взаимодействия в Web-сервисах 6 ― передача данных (запрос и ответ) в формате SOAP-сообщений ― использование механизма вызова удаленных процедур RPC (Remote Procedure Call) для передачи данных и получения результатов в обращениях к подпрограммам серверного объекта Протокол SOAP Базовый протокол, обеспечивающий взаимодействие в среде Web-сервисов SOAP ― Simple Object Access Protocol Протокол основан на HTTP-XML Свойства: 1. Независимость от конкретной платформы и благодаря этому возможность взаимодействия между различными платформами 2. Расширяемость 7 8 Протокол SOAP SOAP Message SOAP Part SOAP Envelope SOAP Header Header SOAP Body XML Content UDDI 9 Universal Description, Discovery and Integration – универсальное описание, расположение и интеграция Спецификация UDDI описывает базирующийся на протоколе SOAP web-сервис, в задачи которого входит определение местоположения и описание протокола взаимодействия любого web-сервиса Сервер UDDI: http://uddi.org http://www.uddi-russia.org WSDL 10 Web Service Description Language – язык описания web-сервиса Платформонезависимая XML-производная для общего описания сетевых сервисов как набора конечных точек, которые функционируют, обмениваясь сообщениями, содержащими процедурно- или документально-ориентированную информацию Описание Web-сервиса на языке WSDL содержит описание функций этого сервиса, кому этот сервис принадлежит (компания, адрес и другие данные), формальное описание процесса вызова функций Части: • «Описание данных» – содержит описание используемых типов. • «Методы» – содержит в себе список web-сервисов и их методы. XML XML Web-сервисы XML: платформонезависимый обмен данными 11 12 Схема работы Web-сервисов Запрос WSDL-интерфейс Поставщик сервиса SOAP Ответ WSDL-интерфейс Получатель сервиса 13 Схема работы Web-сервисов Сервер приложений Реестр сервисов Запрос сервиса из реестра Регистрация сервиса Запрос WSDL-интерфейс Поставщик сервиса SOAP (HTTP) Ответ WSDL-интерфейс Получатель сервиса