Веб-сервис
Веб -сервис ( WS ) — это либо:
- услуга, предлагаемая электронным устройством другому электронному устройству, связывающемуся друг с другом через Интернет , или
- сервер, работающий на компьютерном устройстве, прослушивающий запросы на определенном порту в сети, обслуживающий веб-документы ( HTML , JSON , XML , изображения). [ нужна ссылка ]
В веб-службе веб-технология, такая как HTTP, используется для передачи машиночитаемых форматов файлов, таких как XML и JSON.
На практике веб-служба обычно предоставляет объектно-ориентированный веб-интерфейс для сервера базы данных, используемый, например, другим веб-сервером или мобильным приложением , которое предоставляет пользовательский интерфейс конечному пользователю. Многие организации, которые предоставляют данные в формате HTML-страниц, также предоставляют эти данные на своем сервере в формате XML или JSON, часто через веб-службу, чтобы обеспечить возможность распространения . Другим приложением, предлагаемым конечному пользователю, может быть гибридный веб-приложение , в котором веб-сервер использует несколько веб-сервисов на разных машинах и компилирует контент в один пользовательский интерфейс.
Веб-сервисы (общие)
[ редактировать ]Асинхронный JavaScript и XML
[ редактировать ]Асинхронный JavaScript и XML (AJAX) — доминирующая технология для веб-сервисов. Разработанный на основе комбинации HTTP-серверов, клиентов JavaScript и Plain Old XML (в отличие от SOAP и веб-служб W3C), теперь он часто используется с JSON , а также с XML или вместо него.
ОТДЫХ
[ редактировать ]Передача репрезентативного состояния (REST) — это архитектура хорошо работающих веб-сервисов, которые могут функционировать в масштабах Интернета.
В документе 2004 года W3C определяет REST как ключевую отличительную особенность веб-сервисов:
Мы можем выделить два основных класса веб-сервисов:
- REST -совместимые веб-службы, в которых основной целью службы является манипулирование XML-представлениями веб-ресурсов с использованием единообразного набора операций без сохранения состояния ; и
- произвольные веб-службы, в которых служба может предоставлять произвольный набор операций.
— W3C, Архитектура веб-сервисов [1]
Веб-сервисы, использующие языки разметки
[ редактировать ]Существует ряд веб-сервисов, использующих языки разметки:
- JSON-RPC .
- JSON-WSP
- Передача репрезентативного состояния (REST) и удаленный вызов процедур (RPC)
- Простой протокол доступа к объектам
- Язык общения веб-служб (WSCL)
- Язык описания веб-сервисов (WSDL), разработанный W3C.
- Язык потока веб-служб (WSFL), замененный BPEL
- Веб-шаблон
- WS-MetadataExchange
- XML-интерфейс для сетевых служб (XINS) предоставляет POX . формат спецификации веб-сервиса в стиле
Веб-API
[ редактировать ]Веб -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 года Рабочая группа по архитектуре веб-сервисов определила архитектуру веб-сервисов, требующую стандартизированной реализации «веб-сервиса».
Объяснение
[ редактировать ]Термин «Веб-сервис» описывает стандартизированный способ интеграции веб-приложений с использованием открытых стандартов XML , SOAP, WSDL и UDDI через магистраль Интернет-протокола . XML — это формат данных, используемый для хранения данных и предоставления метаданных вокруг них, SOAP используется для передачи данных, WSDL используется для описания доступных сервисов, а UDDI перечисляет доступные сервисы.
Веб-сервис — это метод связи между двумя электронными устройствами по сети. Это программная функция, предоставляемая по сетевому адресу через Интернет с постоянно включенной службой , как в концепции служебных вычислений.
Многие организации используют несколько программных систем для управления. [ нужна ссылка ] Разным программным системам часто необходимо обмениваться данными друг с другом, а веб-служба — это метод связи, который позволяет двум программным системам обмениваться этими данными через Интернет. Программная система, которая запрашивает данные, называется запросчиком услуг , тогда как программная система, которая будет обрабатывать запрос и предоставлять данные, называется поставщиком услуг .
Разное программное обеспечение может использовать разные языки программирования, и, следовательно, существует потребность в методе обмена данными , который не зависит от конкретного языка программирования. Однако большинство типов программного обеспечения могут интерпретировать теги XML. Таким образом, веб-сервисы могут использовать файлы XML для обмена данными.
Необходимо определить правила взаимодействия с различными системами, например:
- Как одна система может запрашивать данные из другой системы.
- Какие конкретно параметры необходимы в запросе данных.
- Какова будет структура получаемых данных? (Обычно обмен данными осуществляется в файлах XML, а структура файла XML проверяется на соответствие файлу .xsd.)
- Какие сообщения об ошибках отображать при несоблюдении определенного правила общения, чтобы облегчить устранение неполадок .
Все эти правила связи определены в файле под названием WSDL (язык описания веб-служб), который имеет .wsdl
расширение. (Предложения по автономным веб-сервисам ( AWS ) направлены на разработку более гибких веб-сервисов, которые не полагаются на строгие правила. [а] )
Каталог под названием UDDI (универсальное описание, обнаружение и интеграция) определяет, к какой программной системе следует обращаться для получения каких типов данных. Таким образом, когда одной программной системе требуется один конкретный отчет/данные, она обращается к UDDI и выясняет, с какими другими системами она может связаться для получения этих данных. Как только программная система узнает, с какими другими системами ей следует связаться, она свяжется с этой системой, используя специальный протокол, называемый SOAP (простой протокол доступа к объектам). Система поставщика услуг сначала проверит запрос данных, обратившись к файлу WSDL, а затем обработает запрос и отправит данные по протоколу SOAP.
Автоматизированные методы проектирования
[ редактировать ]Автоматизированные инструменты могут помочь в создании веб-сервиса. Для сервисов, использующих WSDL, можно либо автоматически генерировать WSDL для существующих классов (модель «снизу вверх»), либо создавать скелет класса на основе существующего WSDL (модель «сверху вниз»).
- Разработчик, использующий восходящую модель, сначала пишет реализующие классы (на каком-либо языке программирования), а затем использует инструмент создания WSDL для предоставления методов из этих классов в виде веб-службы. Его проще разработать, но может быть сложнее поддерживать, если исходные классы часто изменяются. [5]
- Разработчик, использующий нисходящую модель, сначала пишет документ WSDL, а затем использует инструмент генерации кода для создания скелета класса, который необходимо дополнять. Эта модель обычно считается более сложной, но она позволяет создавать более чистые конструкции и, как правило, более устойчива к изменениям. Пока форматы сообщений между отправителем и получателем не изменяются, изменения в самих отправителе и получателе не влияют на веб-службу. Этот метод также называется « сначала контракт», поскольку WSDL (или контракт между отправителем и получателем) является отправной точкой. [6]
- Разработчик, использующий подмножество WSDL (SWSDL). [7] (т. е. WSDL с подмножеством операций в исходном WSDL) может выполнять тестирование веб-сервисов и разработку сверху вниз.
Критика
[ редактировать ]Критики веб-сервисов, отличных от RESTful, часто жалуются, что они слишком сложны. [8] и основаны на крупных поставщиках программного обеспечения или интеграторах, а не на типичных реализациях с открытым исходным кодом .
Также существуют опасения по поводу производительности из-за использования веб-службами XML в качестве формата сообщений и SOAP/HTTP для упаковки и транспортировки. [9]
Регрессионное тестирование веб-сервисов
[ редактировать ]Функциональное и нефункциональное тестирование веб-сервисов выполняется с помощью анализа WSDL. Регрессионное тестирование проводится путем выявления изменений, внесенных при обновлении программного обеспечения. Потребности в регрессионном тестировании веб-сервисов можно разделить на три категории: изменения в WSDL, изменения в коде и выборочное повторное тестирование операций. Мы можем отразить три вышеупомянутые потребности в трех промежуточных формах Subset WSDL: [7] а именно: разностный WSDL (DWSDL), модульный WSDL (UWSDL) и сокращенный WSDL (RWSDL) соответственно. Эти три подмножества WSDL затем объединяются в комбинированный WSDL (CWSDL), который в дальнейшем используется для регрессионного тестирования веб-службы. Это поможет в автоматическом управлении изменениями веб-сервисов (AWSCM), [10] путем выбора соответствующих тестовых примеров для создания сокращенного набора тестов из старого набора тестов. [11]
Тестирование веб-сервисов также можно автоматизировать с помощью нескольких инструментов автоматизации тестирования, таких как SoapUI , Oracle Application Testing Suite (OATS), [12] [13] Единое функциональное тестирование, Selenium и т. д.
Управление изменениями веб-сервиса
[ редактировать ]Работа, связанная с записью и визуализацией изменений, внесенных в веб-сервис. Визуализация и вычисление изменений могут быть выполнены в виде промежуточных артефактов (Subset WSDL). [7] Понимание расчета влияния изменений полезно при тестировании, нисходящей разработке и сокращении регрессионного тестирования. АВСММ [10] — это инструмент, который может идентифицировать операции подмножества в файле WSDL для создания подмножества WSDL.
Обнаружение и поиск веб-сервисов
[ редактировать ]Хотя UDDI был задуман как каталог сервисов и стал средством обнаружения веб-сервисов, многие поставщики прекратили выпуск своих решений или репозиториев UDDI в период с 2005 по 2008 год, включая Microsoft, SAP, IBM и другие. [14] [15] Ключевое исследование, опубликованное на конференции WWW2008 (Пекин, Китай). [16] представил состояние веб-сервисов на основе SOAP и пришел к выводу, что только 63% доступных веб-сервисов на основе SOAP на момент исследования были фактически активными или могли быть вызваны. Исследование также показало, что поисковые системы становятся идеальным источником поиска веб-сервисов по сравнению с реестрами сервисов, такими как UDDI, из-за их сложности конструкции. [17]
См. также
[ редактировать ]- Список фреймворков веб-сервисов
- Список протоколов веб-сервисов
- Список спецификаций веб-сервиса
- Промежуточное ПО
- Сервис-ориентированная архитектура (SOA)
- Веб-картографический сервис
- Веб-API
Примечания
[ редактировать ]- ^ Сравните: Oya 2008 , «В рамках текущих веб-сервисов […] системы заинтересованных сторон должны следовать предопределенным правилам для конкретной бизнес-службы, включая правила о бизнес-протоколах для отправки/получения сообщений и о работе системы. […] Более гибкий механизм. желательно, чтобы свободно построенные и автономно работающие системы могли обмениваться бизнес-сообщениями без заранее согласованных строгих правил. Мы называем это автономными веб-сервисами (AWS) и предложили структуру под названием динамическая гармонизация моделей (DMH) с ее алгоритмом, который динамически адаптирует различные модели бизнес-процессов. между системами […]». [4]
Ссылки
[ редактировать ]- ^ «Архитектура веб-сервисов § Связь с Всемирной паутиной и архитектурами REST» . W3C . Проверено 11 ноября 2017 г.
- ^ Бенслиман, Д.; Дустдар, С.; Шет, А. (2008). «Мэшапы сервисов: новое поколение веб-приложений» . IEEE Интернет-вычисления . 10 (5): 13–15. дои : 10.1109/MIC.2008.110 . S2CID 8124905 .
- ^ «Глоссарий веб-сервисов § Веб-сервис» . W3C . 11 февраля 2004 года . Проверено 24 января 2017 г.
- ^ Оя, Макото (2 сентября 2008 г.). «Автономные веб-сервисы на основе динамической гармонизации моделей». В Ойе, Макото; Уда, Рюя; Ясунобу, Тизуко (ред.). На пути к устойчивому обществу в повсеместных сетях: 8-я конференция IFIP по электронному бизнесу, электронным услугам и электронному обществу (I3E 2008), 24–26 сентября 2008 г., Токио, Япония . ИФИП: Достижения в области информационных и коммуникационных технологий. Том. 286. Springer Science & Business Media (опубликовано в 2008 г.). п. 139. ИСБН 9780387856902 . Проверено 19 августа 2015 г.
- ^ «Создание восходящих веб-сервисов» . Затмение . Проверено 11 ноября 2017 г.
- ^ «Создание нисходящих веб-сервисов» . Затмение . Проверено 11 ноября 2017 г.
- ^ Jump up to: а б с Чатурведи, Анимеш (2014). Подмножество WSDL для доступа к подмножеству службы для анализа . 2014 6-я Международная конференция IEEE по технологиям и науке облачных вычислений. п. 688. дои : 10.1109/CloudCom.2014.149 . ISBN 978-1-4799-4093-6 .
- ^ Брэй, Тим (28 октября 2004 г.). «WS-Количество страниц» . TBray.org . Проверено 22 апреля 2011 г.
- ^ Грей, НАБ (2005). «Производительность промежуточного программного обеспечения Java — Java RMI, JAX-RPC и CORBA» . Университет Вуллонгонга : 31–39.
Результаты, представленные в этой статье, показывают, что характер данных об ответах оказывает большее влияние на относительную производительность, чем допускалось в большинстве предыдущих исследований.
- ^ Jump up to: а б Чатурведи, Анимеш (2014). Автоматизированное управление изменениями веб-сервисов AWSCM — инструмент . 2014 6-я Международная конференция IEEE по технологиям и науке облачных вычислений. п. 715. дои : 10.1109/CloudCom.2014.144 . ISBN 978-1-4799-4093-6 .
- ^ Чатурведи, Анимеш; Гупта, Атул (2013). Поддерживаемый инструментами подход для проведения эффективного регрессионного тестирования веб-сервисов . 2013 г. 7-й международный симпозиум IEEE по обслуживанию и развитию сервис-ориентированных и облачных систем. п. 50. дои : 10.1109/MESOCA.2013.6632734 . ISBN 978-1-4673-4889-8 .
- ^ Пакет тестирования приложений Oracle
- ^ Тестирование веб-сервисов с использованием Oracle Application Testing Suite.
- ^ Крил, Пол (16 декабря 2005 г.). «Microsoft, IBM, SAP прекращают разработку реестра UDDI» . Инфомир . Проверено 28 мая 2022 г.
- ^ КуиннРадич (27 апреля 2021 г.). «Удаление служб UDDI из серверной операционной системы — приложения Win32» . docs.microsoft.com . Проверено 28 мая 2022 г.
- ^ «WWW2008 – WWW 2008: 17-я Международная конференция Всемирной паутины (Добро пожаловать)» . Архивировано из оригинала 4 октября 2022 г. Проверено 28 мая 2022 г.
- ^ Аль-Масри, Эйхаб; Махмуд, Кусай Х. (21 апреля 2008 г.). «Исследование веб-сервисов во всемирной паутине» . Материалы 17-й международной конференции по Всемирной паутине . WWW '08. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 795–804. дои : 10.1145/1367497.1367605 . ISBN 978-1-60558-085-2 . S2CID 12570844 .
Внешние ссылки
[ редактировать ]- Шаблон проектирования обмена сообщениями. Архивировано 9 октября 2018 г. в документации Wayback Machine на сайте SOA Patterns.
- Страница активности веб-служб в W3C
- Архитектура веб-сервисов , заметка рабочей группы W3C (11 февраля 2004 г.)
- Исследование веб-сервисов во Всемирной паутине , анализ, представленный на WWW2008 . конференции
- Руководство по защищенным веб-службам (SP 800-95) в NIST