Веб-сервис

Услуга, предлагаемая между электронными устройствами через Интернет

Веб -сервис ( WS ) — это либо:

  • услуга, предлагаемая одним электронным устройством другому электронному устройству, взаимодействующему друг с другом через Интернет , или
  • сервер, работающий на компьютерном устройстве, прослушивающий запросы на определенном порту по сети, обслуживающий веб-документы ( HTML , JSON , XML , изображения). [ необходима ссылка ]

В веб-сервисе веб-технология, такая как HTTP, используется для передачи машиночитаемых форматов файлов, таких как XML и JSON.

На практике веб-сервис обычно предоставляет объектно-ориентированный веб-интерфейс для сервера базы данных, используемый, например, другим веб-сервером или мобильным приложением , которое предоставляет пользовательский интерфейс для конечного пользователя. Многие организации, которые предоставляют данные в форматированных HTML-страницах, также предоставляют эти данные на своем сервере в виде XML или JSON, часто через веб-сервис для обеспечения синдикации . Другим приложением, предлагаемым конечному пользователю, может быть mashup , где веб-сервер использует несколько веб-сервисов на разных машинах и компилирует контент в один пользовательский интерфейс.

Веб-сервисы (общие)

Асинхронный JavaScript и XML

Асинхронный JavaScript и XML (AJAX) — доминирующая технология для веб-сервисов. Развиваясь из сочетания HTTP-серверов, JavaScript-клиентов и Plain Old XML (в отличие от SOAP и W3C Web Services), теперь он часто используется с JSON , а также вместо XML или вместо него.

ОТДЫХ

Передача репрезентативного состояния (REST) ​​— это архитектура для корректно работающих веб-сервисов, которые могут функционировать в масштабах Интернета.

В документе 2004 года W3C определяет REST как ключевую отличительную особенность веб-сервисов:

Мы можем выделить два основных класса веб-сервисов:

  • Веб-сервисы, совместимые с REST , в которых основной целью сервиса является манипулирование XML-представлениями веб-ресурсов с использованием унифицированного набора операций без сохранения состояния ; а также
  • произвольные веб-сервисы, в которых сервис может предоставлять произвольный набор операций.
    —  W3C, Архитектура веб-сервисов [1]

Веб-сервисы, использующие языки разметки

Существует ряд веб-сервисов, использующих языки разметки:

Веб-API

Web API — это разработка в области веб-сервисов, в которой акцент смещается на более простые коммуникации на основе передачи репрезентативного состояния (REST). [2] Restful API не требуют протоколов веб-сервисов на основе XML ( SOAP и WSDL) для поддержки своих интерфейсов.

Веб-сервисы W3C

В отношении веб-сервисов W3C W3C определяет веб-сервис как:

Веб-сервис — это программная система, разработанная для поддержки взаимодействия между машинами по сети. Он имеет интерфейс, описанный в формате, пригодном для машинной обработки (в частности, WSDL ). Другие системы взаимодействуют с веб-сервисом способом, предписанным его описанием, с помощью SOAP-сообщений, обычно передаваемых с использованием HTTP с XML -сериализацией в сочетании с другими веб-стандартами.

—  W3C, Глоссарий веб-сервисов [3]

Веб-сервисы W3C могут использовать протокол SOAP через HTTP, что позволяет осуществлять менее затратное (более эффективное) взаимодействие через Интернет, чем через фирменные решения, такие как EDI/B2B. Помимо SOAP через HTTP, веб-сервисы также могут быть реализованы на других надежных транспортных механизмах, таких как FTP . В документе 2002 года рабочая группа по архитектуре веб-сервисов определила архитектуру веб-сервисов, требующую стандартизированной реализации «веб-сервиса».

Объяснение

Архитектура веб-сервисов: поставщик услуг отправляет файл WSDL в UDDI. Запрашивающая сторона обращается к UDDI, чтобы узнать, кто является поставщиком необходимых ей данных, а затем связывается с поставщиком услуг с помощью протокола SOAP. Поставщик услуг проверяет запрос на обслуживание и отправляет структурированные данные в XML-файле с помощью протокола SOAP. Этот XML-файл будет снова проверен запрашивающей стороной с помощью файла XSD.

Термин «веб-сервис» описывает стандартизированный способ интеграции веб-приложений с использованием открытых стандартов XML , SOAP, WSDL и UDDI через магистраль интернет-протокола . XML — это формат данных, используемый для хранения данных и предоставления метаданных вокруг них, SOAP используется для передачи данных, WSDL используется для описания доступных сервисов, а UDDI перечисляет, какие сервисы доступны.

Веб-сервис — это метод связи между двумя электронными устройствами через сеть. Это программная функция, предоставляемая по сетевому адресу через Интернет, с постоянно включенным сервисом, как в концепции вычислений-утилит.

Многие организации используют несколько программных систем для управления. [ необходима цитата ] Различным программным системам часто требуется обмениваться данными друг с другом, и веб-служба — это метод связи, который позволяет двум программным системам обмениваться этими данными через Интернет. Программная система, которая запрашивает данные, называется запросчиком услуг , тогда как программная система, которая будет обрабатывать запрос и предоставлять данные, называется поставщиком услуг .

Разное программное обеспечение может использовать разные языки программирования, и поэтому необходим метод обмена данными , который не зависит от конкретного языка программирования. Однако большинство типов программного обеспечения могут интерпретировать XML-теги. Таким образом, веб-службы могут использовать XML-файлы для обмена данными.

Необходимо определить правила взаимодействия с различными системами, например:

  • Как одна система может запрашивать данные из другой системы.
  • Какие конкретные параметры необходимы в запросе данных.
  • Какова будет структура полученных данных? (Обычно обмен данными осуществляется в XML-файлах, а структура XML-файла проверяется по файлу .xsd.)
  • Какие сообщения об ошибках отображать при несоблюдении определенного правила связи, чтобы упростить устранение неполадок .

Все эти правила для связи определены в файле, называемом WSDL (язык описания веб-сервисов), который имеет .wsdlрасширение. (Предложения по автономным веб-сервисам ( AWS ) направлены на разработку более гибких веб-сервисов, которые не полагаются на строгие правила. [a] )

Каталог под названием UDDI (Universal Description, Discovery, and Integration) определяет, к какой программной системе следует обращаться за каким типом данных. Таким образом, когда одной программной системе требуется определенный отчет/данные, она обращается к UDDI и выясняет, с какими другими системами она может связаться для получения этих данных. Как только программная система выясняет, с какими другими системами она должна связаться, она затем связывается с этой системой с помощью специального протокола под названием SOAP (Simple Object Access Protocol). Система поставщика услуг сначала проверяет запрос данных, ссылаясь на файл WSDL, а затем обрабатывает запрос и отправляет данные по протоколу SOAP.

Методы автоматизированного проектирования

Веб-сервисы в сервисно-ориентированной архитектуре .

Автоматизированные инструменты могут помочь в создании веб-сервиса. Для сервисов, использующих WSDL, можно либо автоматически генерировать WSDL для существующих классов (модель снизу вверх), либо генерировать скелет класса с учетом существующего WSDL (модель сверху вниз).

  • Разработчик, использующий модель снизу вверх, сначала пишет реализующие классы (на каком-либо языке программирования), а затем использует инструмент генерации WSDL для предоставления методов из этих классов в качестве веб-сервиса. Это проще разрабатывать, но может быть сложнее поддерживать, если исходные классы часто меняются. [5]
  • Разработчик, использующий модель сверху вниз, сначала пишет документ WSDL, а затем использует инструмент генерации кода для создания скелета класса, который должен быть завершен по мере необходимости. Эта модель обычно считается более сложной, но может производить более чистые проекты и, как правило, более устойчива к изменениям. Пока форматы сообщений между отправителем и получателем не меняются, изменения в самих отправителе и получателе не влияют на веб-сервис. Этот метод также называют « сначала контракт», поскольку WSDL (или контракт между отправителем и получателем) является отправной точкой. [6]
  • Разработчик, использующий подмножество WSDL (SWSDL) [7] (т. е. 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]

Смотрите также

Примечания

  1. ^ Сравните: Oya 2008, «В рамках текущих веб-сервисов […] системы заинтересованных сторон должны следовать предопределенным правилам для конкретной бизнес-службы, включая правила о бизнес-протоколах для отправки/получения сообщений и о работе системы. […] Желателен более гибкий механизм, в котором свободно созданные и автономно работающие системы могут обмениваться бизнес-сообщениями без заранее согласованных строгих правил. Мы называем это автономными веб-сервисами (AWS) и предлагаем структуру под названием «Динамическая гармонизация моделей» (DMH) с ее алгоритмом, который динамически корректирует различные модели бизнес-процессов между системами […]». [4]

Ссылки

  1. ^ "Архитектура веб-сервисов § Связь с архитектурой Всемирной паутины и REST". W3C . Получено 11 ноября 2017 г.
  2. ^ Бенслиман, Д.; Дастдар, С.; Шет, А. (2008). «Сервисные гибридные приложения: новое поколение веб-приложений». IEEE Internet Computing . 10 (5): 13–15. doi :10.1109/MIC.2008.110. S2CID  8124905.
  3. ^ "Глоссарий веб-сервисов § Веб-сервис". W3C . 11 февраля 2004 г. Получено 24 января 2017 г.
  4. ^ Оя, Макото (2008-09-02). "Автономные веб-сервисы на основе динамической гармонизации моделей". В Оя, Макото; Уда, Рюя; Ясунобу, Чизуко (ред.). На пути к устойчивому обществу на основе повсеместных сетей: 8-я конференция IFIP по электронному бизнесу, электронным услугам и электронному обществу (I3E 2008), 24–26 сентября 2008 г., Токио, Япония. Достижения IFIP в области информационных и коммуникационных технологий. Том 286. Springer Science & Business Media (опубликовано в 2008 г.). стр. 139. ISBN 9780387856902. Получено 19 августа 2015 г.
  5. ^ "Создание веб-сервисов снизу вверх". Eclipse . Получено 11 ноября 2017 г.
  6. ^ "Создание нисходящих веб-сервисов". Eclipse . Получено 11 ноября 2017 г.
  7. ^ abc Chaturvedi, Animesh (2014). Подмножество WSDL для доступа к подмножеству сервиса для анализа . 2014 IEEE 6-я международная конференция по облачным вычислительным технологиям и науке. стр. 688. doi :10.1109/CloudCom.2014.149. ISBN 978-1-4799-4093-6.
  8. ^ Брей, Тим (28 октября 2004 г.). "WS-Pagecount". TBray.org . Получено 22 апреля 2011 г. .
  9. ^ Gray, NAB (2005). «Производительность Java Middleware – Java RMI, JAX-RPC и CORBA». Университет Вуллонгонга : 31–39. Результаты, представленные в этой статье, показывают, что характер данных ответа оказывает большее влияние на относительную производительность, чем допускалось в большинстве предыдущих исследований.
  10. ^ ab Chaturvedi, Animesh (2014). Автоматизированное управление изменениями веб-сервисов AWSCM - инструмент . 2014 IEEE 6-я международная конференция по технологиям и науке облачных вычислений. стр. 715. doi :10.1109/CloudCom.2014.144. ISBN 978-1-4799-4093-6.
  11. ^ Чатурведи, Анимеш; Гупта, Атул (2013). Подход с поддержкой инструментов для выполнения эффективного регрессионного тестирования веб-сервисов . 2013 IEEE 7-й Международный симпозиум по обслуживанию и развитию сервисно-ориентированных и облачных систем. стр. 50. doi :10.1109/MESOCA.2013.6632734. ISBN 978-1-4673-4889-8.
  12. ^ Набор для тестирования приложений Oracle
  13. ^ Тестирование веб-сервисов с использованием Oracle Application Testing Suite
  14. ^ Крилл, Пол (2005-12-16). «Microsoft, IBM, SAP прекращают работу над реестром UDDI». InfoWorld . Получено 2022-05-28 .
  15. ^ QuinnRadich (27 апреля 2021 г.). «Удаление служб UDDI из серверной операционной системы – приложения Win32». docs.microsoft.com . Получено 28.05.2022 .
  16. ^ "WWW2008 – WWW 2008: 17-я Международная конференция Всемирной паутины (приветствие)". Архивировано из оригинала 2022-10-04 . Получено 2022-05-28 .
  17. ^ Аль-Масри, Эйхаб; Махмуд, Кусай Х. (2008-04-21). «Исследование веб-сервисов во всемирной паутине». Труды 17-й международной конференции по всемирной паутине . WWW '08. Нью-Йорк, Нью-Йорк, США: Ассоциация вычислительной техники. стр. 795–804. doi :10.1145/1367497.1367605. ISBN 978-1-60558-085-2. S2CID  12570844.
  • Шаблон проектирования обмена сообщениями Архивировано 09.10.2018 в документации Wayback Machine на сайте SOA Patterns
  • Страница активности веб-сервисов на сайте W3C
  • Архитектура веб-сервисов, записка рабочей группы W3C (11 февраля 2004 г.)
  • Исследование веб-сервисов во всемирной паутине, анализ, представленный на конференции WWW2008
  • Руководство по безопасным веб-сервисам (SP 800-95) в NIST
Взято с "https://en.wikipedia.org/w/index.php?title=Web_service&oldid=1248695697"