Веб -сервис ( WS ) — это либо:
В веб-службе веб-технология, такая как HTTP , используется для передачи машиночитаемых форматов файлов, таких как XML и JSON.
На практике веб-служба обычно предоставляет объектно-ориентированный веб-интерфейс серверу базы данных, используемый, например, другим веб-сервером или мобильным приложением , которое предоставляет пользовательский интерфейс конечному пользователю. Многие организации, которые предоставляют данные в формате HTML-страниц, также предоставляют эти данные на своем сервере в формате XML или JSON, часто через веб-службу, чтобы обеспечить возможность распространения . Другим приложением, предлагаемым конечному пользователю, может быть гибридный веб-приложение , в котором веб-сервер использует несколько веб-сервисов на разных машинах и компилирует контент в один пользовательский интерфейс.
Асинхронный JavaScript и XML (AJAX) — доминирующая технология для веб-сервисов. Разработанный на основе комбинации HTTP-серверов, клиентов JavaScript и Plain Old XML (в отличие от SOAP и веб-служб W3C), теперь он часто используется с JSON , а также с XML или вместо него.
Передача репрезентативного состояния (REST) — это архитектура хорошо работающих веб-сервисов, которые могут функционировать в масштабах Интернета.
В документе 2004 года W3C определяет REST как ключевую отличительную особенность веб-сервисов:
Мы можем выделить два основных класса веб-сервисов:
- REST -совместимые веб-службы, в которых основной целью службы является манипулирование XML-представлениями веб-ресурсов с использованием единообразного набора операций без сохранения состояния ; и
- произвольные веб-службы, в которых служба может предоставлять произвольный набор операций.
— W3C, Архитектура веб-сервисов [1]
Существует ряд веб-сервисов, использующих языки разметки:
Веб -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 (универсальное описание, обнаружение и интеграция) определяет, к какой программной системе следует обращаться для получения каких типов данных. Таким образом, когда одной программной системе требуется один конкретный отчет/данные, она обращается к UDDI и выясняет, с какими другими системами она может связаться для получения этих данных. Как только программная система узнает, с какими другими системами ей следует связаться, она свяжется с этой системой, используя специальный протокол, называемый SOAP (простой протокол доступа к объектам). Система поставщика услуг сначала проверит запрос данных, обратившись к файлу 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]
Результаты, представленные в этой статье, показывают, что характер данных об ответах оказывает большее влияние на относительную производительность, чем допускалось в большинстве предыдущих исследований.