Веб-сервис (web service) — программная система, имеющая идентификатор URI, и общедоступные интерфейсы которой определены на языке XML. Описание этой программной системы может быть найдено другими приложениями, которые могут взаимодействовать с ней в соответствии с этим описанием посредством сообщений, основанных на XML, и передаваемых с помощью интернет-протоколов. Веб-служба является единицей модульности при использовании сервис-ориентированной архитектуры приложения.
Сервис-ориентированная архитектура (SOA, service-oriented architecture) — модульный подход к разработке программного обеспечения, основанный на использовании сервисов со стандартизированными интерфейсами.
В основе SOA лежат принципы многократного использования функциональных элементов ИТ, унификации типовых операционных процессов. Компоненты программы могут быть распределены по разным узлам сети, и предлагаются как независимые и слабо связанные, заменяемые сервисы-приложения.
Интерфейс компонентов SОА-программы осуществляет инкапсуляцию деталей реализации конкретного компонента (ОС, языка программирования и т. п).
|
|
SOA хорошо зарекомендовала себя при построении крупных корпоративных программных систем. Целый ряд разработчиков и интеграторов предлагают инструменты и решения на основе SOA (например, платформы Microsoft.NET, IBM WebSphere, SAP NetWeaver, Diasoft и др.).
Веб-сервисы.NET имеют следующие достоинства:
- Открытость стандартов. В веб-сервисах отсутствуют какие-либо скрытые или недоступные элементы. Каждый аспект технологии, от способа поиска веб-сервисы до ее описания и организации связи с ней, определен общедоступными стандартами.
- Межплатформенность. Язык программирования, который позволяет создавать XML-документы и отправлять информацию посредством HTTP, позволяет взаимодействовать с любым веб-сервисом. Можно получать веб-услугу из системы, отличной от.NET.
- Простота.
- Поддержка сообщений на понятном человеку языке. Переход от двоичных стандартов, применяемых в СОМ и CORBA, к XML-тексту позволил упростить исправление ошибок и обеспечил возможность осуществлять взаимодействие с веб-сервисами по обычным каналам HTTP.
Реализация веб-сервисов.NET осуществляется так же просто, как и активизация удаленной веб-сервисы или вызов метода локального класса. Это достигается за счет применения инструментов, предоставляемых системой.NET Framework, которые позволяют создать полноценный веб-сервис, без необходимости изучения деталей работы таких стандартов, как SOAP, WSDL и UDDI. При этом выполняются следующие действия:
- Веб-сервис разрабатывается как.NET-класс с атрибутами, которые идентифицируют его как веб-сервис с некоторыми функциями.
- В среде.NET автоматически создается документ WSDL, где описывается, как клиент должен взаимодействовать с веб-сервисом.
- Потребитель находит созданный веб-сервис и может добавить соответствующую веб-ссылку в проект Visual Studio.NET.
- В среде.NET осуществляется автоматическая проверка документа WSDL и генерируется прокси-класс, который позволяет потребителю взаимодействовать с веб-сервисом.
- Потребитель вызывает один из методов вашего класса веб-сервиса. С его точки зрения этот вызов внешне ничем не отличается от вызова метода любого другого класса, хотя взаимодействие происходит на самом деле с прокси-классом, а не с веб-сервисом.
- Прокси-класс преобразует, переданные параметры в сообщение SOAP и отправляет его веб-сервису.
- Затем прокси-класс получает SOAP-ответ, преобразует его в соответствующий тип данных и возвращает его как обычный тип данных.NET.
- Потребитель использует полученные данные.
При работе веб-сервисов.NET используется технология ASP.NET, являющаяся частью системы.NET Framework. Она также требует поддержки со стороны сервера Microsoft IIS.
|
|
Работа веб-сервисов построена на использовании нескольких открытых стандартов:
- XML - расширяемый язык разметки, предназначенный для хранения и передачи структурированных данных;
- SOAP - протокол обмена сообщениями на базе XML;
- WSDL - язык описания внешних интерфейсов веб-сервисов на базе XML;
- UDDI - универсальный интерфейс распознавания, описания и интеграции (Universal Discovery, Description, and Integration). Каталог веб-сервисов и сведений о компаниях, предоставляющих веб-сервисы во всеобщее пользование или конкретным компаниям.