Веб -сервис ( WS ) — это либо:
В веб-сервисе веб-технология, такая как HTTP, используется для передачи машиночитаемых форматов файлов, таких как XML и JSON.
На практике веб-сервис обычно предоставляет объектно-ориентированный веб-интерфейс для сервера базы данных, используемый, например, другим веб-сервером или мобильным приложением , которое предоставляет пользовательский интерфейс для конечного пользователя. Многие организации, которые предоставляют данные в форматированных HTML-страницах, также предоставляют эти данные на своем сервере в виде XML или JSON, часто через веб-сервис для обеспечения синдикации . Другим приложением, предлагаемым конечному пользователю, может быть mashup , где веб-сервер использует несколько веб-сервисов на разных машинах и компилирует контент в один пользовательский интерфейс.
Асинхронный JavaScript и XML (AJAX) — доминирующая технология для веб-сервисов. Развиваясь из сочетания HTTP-серверов, JavaScript-клиентов и Plain Old XML (в отличие от SOAP и W3C Web Services), теперь он часто используется с JSON , а также вместо XML или вместо него.
Передача репрезентативного состояния (REST) — это архитектура для корректно работающих веб-сервисов, которые могут функционировать в масштабах Интернета.
В документе 2004 года W3C определяет REST как ключевую отличительную особенность веб-сервисов:
Мы можем выделить два основных класса веб-сервисов:
- Веб-сервисы, совместимые с REST , в которых основной целью сервиса является манипулирование XML-представлениями веб-ресурсов с использованием унифицированного набора операций без сохранения состояния ; а также
- произвольные веб-сервисы, в которых сервис может предоставлять произвольный набор операций.
— W3C, Архитектура веб-сервисов [1]
Существует ряд веб-сервисов, использующих языки разметки:
Web API — это разработка в области веб-сервисов, в которой акцент смещается на более простые коммуникации на основе передачи репрезентативного состояния (REST). [2] Restful API не требуют протоколов веб-сервисов на основе XML ( SOAP и WSDL) для поддержки своих интерфейсов.
В отношении веб-сервисов W3C W3C определяет веб-сервис как:
Веб-сервис — это программная система, разработанная для поддержки взаимодействия между машинами по сети. Он имеет интерфейс, описанный в формате, пригодном для машинной обработки (в частности, WSDL ). Другие системы взаимодействуют с веб-сервисом способом, предписанным его описанием, с помощью SOAP-сообщений, обычно передаваемых с использованием HTTP с XML -сериализацией в сочетании с другими веб-стандартами.
— W3C, Глоссарий веб-сервисов [3]
Веб-сервисы W3C могут использовать протокол SOAP через HTTP, что позволяет осуществлять менее затратное (более эффективное) взаимодействие через Интернет, чем через фирменные решения, такие как EDI/B2B. Помимо SOAP через HTTP, веб-сервисы также могут быть реализованы на других надежных транспортных механизмах, таких как FTP . В документе 2002 года рабочая группа по архитектуре веб-сервисов определила архитектуру веб-сервисов, требующую стандартизированной реализации «веб-сервиса».
Термин «веб-сервис» описывает стандартизированный способ интеграции веб-приложений с использованием открытых стандартов XML , SOAP, WSDL и UDDI через магистраль интернет-протокола . XML — это формат данных, используемый для хранения данных и предоставления метаданных вокруг них, SOAP используется для передачи данных, WSDL используется для описания доступных сервисов, а UDDI перечисляет, какие сервисы доступны.
Веб-сервис — это метод связи между двумя электронными устройствами через сеть. Это программная функция, предоставляемая по сетевому адресу через Интернет, с постоянно включенным сервисом, как в концепции вычислений-утилит.
Многие организации используют несколько программных систем для управления. [ необходима цитата ] Различным программным системам часто требуется обмениваться данными друг с другом, и веб-служба — это метод связи, который позволяет двум программным системам обмениваться этими данными через Интернет. Программная система, которая запрашивает данные, называется запросчиком услуг , тогда как программная система, которая будет обрабатывать запрос и предоставлять данные, называется поставщиком услуг .
Разное программное обеспечение может использовать разные языки программирования, и поэтому необходим метод обмена данными , который не зависит от конкретного языка программирования. Однако большинство типов программного обеспечения могут интерпретировать XML-теги. Таким образом, веб-службы могут использовать XML-файлы для обмена данными.
Необходимо определить правила взаимодействия с различными системами, например:
Все эти правила для связи определены в файле, называемом WSDL (язык описания веб-сервисов), который имеет .wsdl
расширение. (Предложения по автономным веб-сервисам ( AWS ) направлены на разработку более гибких веб-сервисов, которые не полагаются на строгие правила. [a] )
Каталог под названием UDDI (Universal Description, Discovery, and Integration) определяет, к какой программной системе следует обращаться за каким типом данных. Таким образом, когда одной программной системе требуется определенный отчет/данные, она обращается к UDDI и выясняет, с какими другими системами она может связаться для получения этих данных. Как только программная система выясняет, с какими другими системами она должна связаться, она затем связывается с этой системой с помощью специального протокола под названием SOAP (Simple Object Access Protocol). Система поставщика услуг сначала проверяет запрос данных, ссылаясь на файл WSDL, а затем обрабатывает запрос и отправляет данные по протоколу SOAP.
Автоматизированные инструменты могут помочь в создании веб-сервиса. Для сервисов, использующих WSDL, можно либо автоматически генерировать WSDL для существующих классов (модель снизу вверх), либо генерировать скелет класса с учетом существующего WSDL (модель сверху вниз).
Критики не-RESTful веб-сервисов часто жалуются на то, что они слишком сложны [8] и основаны на крупных поставщиках программного обеспечения или интеграторах, а не на типичных реализациях с открытым исходным кодом .
Также существуют опасения по поводу производительности из-за использования веб-сервисами XML в качестве формата сообщений и SOAP/HTTP для упаковки и транспортировки. [9]
Функциональное и нефункциональное тестирование веб-сервисов выполняется с помощью анализа WSDL. Регрессионное тестирование выполняется путем определения изменений, внесенных для обновления программного обеспечения. Потребности в регрессионном тестировании веб-сервисов можно классифицировать тремя различными способами, а именно: изменения в WSDL, изменения в коде и выборочное повторное тестирование операций. Мы можем охватить вышеуказанные три потребности в трех промежуточных формах подмножества WSDL, [7] а именно: разностный WSDL (DWSDL), единичный WSDL (UWSDL) и сокращенный WSDL (RWSDL) соответственно. Затем эти три подмножества WSDL объединяются для формирования объединенного WSDL (CWSDL), который в дальнейшем используется для регрессионного тестирования веб-сервиса. Это поможет в автоматизированном управлении изменениями веб-сервисов (AWSCM), [10] путем выбора соответствующих тестовых случаев для построения сокращенного набора тестов из старого набора тестов. [11]
Тестирование веб-сервисов также можно автоматизировать с помощью нескольких инструментов автоматизации тестирования, таких как SoapUI , Oracle Application Testing Suite (OATS), [12] [13] Unified Functional Testing, Selenium и т. д.
Работа, связанная с захватом и визуализацией изменений, внесенных в веб-сервис. Визуализация и вычисление изменений могут быть выполнены в форме промежуточных артефактов (Subset WSDL). [7] Понимание вычисления влияния изменений полезно при тестировании, разработке сверху вниз и сокращении регрессионного тестирования. AWSCM [10] — это инструмент, который может идентифицировать операции подмножества в файле WSDL для построения подмножества WSDL.
Хотя UDDI был предназначен для использования в качестве каталога услуг и стал средством обнаружения веб-сервисов, многие поставщики прекратили свои решения или репозитории UDDI в период с 2005 по 2008 год, включая Microsoft, SAP, IBM и других. [14] [15] Ключевое исследование, опубликованное на конференции WWW2008 (Пекин, Китай) [16], представило состояние веб-сервисов на основе SOAP и пришло к выводу, что только 63% доступных веб-сервисов на основе SOAP на момент исследования были фактически активны или могли быть вызваны. Исследование также показало, что поисковые системы становятся идеальным источником для поиска веб-сервисов по сравнению с реестрами сервисов, такими как UDDI, из-за сложности его дизайна. [17]
Результаты, представленные в этой статье, показывают, что характер данных ответа оказывает большее влияние на относительную производительность, чем допускалось в большинстве предыдущих исследований.