Веб-служба, веб-сервис () — идентифицируемая уникальным веб-адресом (URL-адресом) программная система со стандартизированными интерфейсами.

Веб-службы могут взаимодействовать друг с другом и со сторонними приложениями посредством сообщений, основанных на определённых протоколах (SOAP, XML-RPC и т. д.) и соглашениях (REST). Веб-служба является единицей модульности при использовании сервис-ориентированной архитектуры приложения.

В обиходе веб-сервисами называют услуги, оказываемые в Интернете. В этом употреблении термин требует уточнения, идёт ли речь о поиске, веб-почте, хранении документов, файлов, закладок и т. п. Такими веб-сервисами можно пользоваться независимо от компьютера, браузера или места доступа в ИнтернетВеб-сервис в словаре компьютерных терминовWeb services в TheFreeDictionary.

Преимущества и недостатки

Преимущества Веб-службы обеспечивают взаимодействие программных систем независимо от платформы. Например, Windows-C#-клиент может обмениваться данными с Java-сервером, работающим под Linux. Веб-службы основаны на базе открытых стандартов и протоколов. Благодаря использованию XML достигается простота разработки и отладки веб-служб. Использование интернет-протокола обеспечивает HTTP-взаимодействие программных систем через межсетевой экран. Это значительное преимущество, по сравнению с такими технологиями, как CORBA, DCOM или Java RMI. С другой стороны, веб-службы не привязаны намертво к HTTP — могут использоваться и другие протоколы.

Недостатки Меньшая производительность и больший размер сетевого трафика по сравнению с технологиями RMI, CORBA, DCOM за счёт использования текстовых XML-сообщений. Однако на некоторых веб-серверах возможна настройка сжатия сетевого трафика. Аспекты безопасности. Ответственные веб-службы должны использовать кодирование, возможно — требовать аутентификации пользователя. Достаточно ли здесь применения HTTPS, или предпочтительны такие решения, как XML Signature, XML Encryption или SAML — должно быть решено разработчиком.

Примеры Взаимодействие между авиакомпаниями и бюро путешествий: первые предоставляют через веб-службы полезную информацию, которую вторые используют при поиске оптимальных предложений своим клиентам.

Веб-служба MOBILESERVER, использующая сообщения на основе открытых протоколов SOAP (XML) и JSON, позволяет получить текущие данные с прибора учёта тепла на момент последнего считывания данных.

Магазин приложений

Магазин приложений — интернет-магазин, позволяющий сторонним компаниям-разработчикам ПО предлагать владельцам мобильных (обычно) устройств устанавливать и приобретать различные приложения и игры, а производителям прочего контента — также книги, музыку и фильмы.

Магазин приложений Windows (Microsoft Store) Магазин приложений Windows Phone (ранее Windows Phone Marketplace) Магазин приложений «Google Play» Магазин приложений Chrome Магазин приложений Apple (App Store) Mac App Store Opera Mobile Store Samsung Galaxy Store Магазин приложений NashStore Магазин приложений «Huawei AppGallery» Магазин приложений Яндекс (Яндекс.Store, см. Яндекс) BlackBerry World и др.

Маркетплейс

Предоставление коммерсантам торговой веб-площадки для торговли онлайн.

Стриминг Предоставляют услуги по стримингу (выдаче потокового мультимедиа). стриминг аудио (Spotify, Tidal, Roon, Qobuz , Muzlab и пр.); стриминг видео (Netflix, Megogo, Disney+ и пр.).

Технологии реализации

Архитектура Как показано на рисунке, можно выделить три инстанции, взаимодействующие в рамках веб-службы. Переведём их названия как заказчик (service requester); исполнитель (service provider); каталог (service broker). Когда служба разработана, исполнитель регистрирует её в каталоге, где её могут найти потенциальные заказчики. Заказчик, найдя в каталоге подходящую службу, импортирует оттуда её WSDL-спецификацию и разрабатывает в соответствии с ней своё программное обеспечение. WSDL описывает формат запросов и ответов, которыми обмениваются заказчик и исполнитель в процессе работы. Для обеспечения взаимодействия используются следующие стандарты: XML: Расширяемый язык разметки, предназначенный для хранения и передачи структурированных данных; SOAP: Протокол обмена сообщениями на базе XML; WSDL: Язык определения внешних интерфейсов, который определяет взаимодействие (контракт) между потребителем и веб-службами SOAP. Написан на базе XML; UDDI: Универсальный интерфейс распознавания, описания и интеграции (Universal Discovery, Description and Integration). Каталог веб-служб и сведений о компаниях, предоставляющих веб-службы во всеобщее пользование или конкретным компаниям. Пока UDDI существуют, однако, только в небольших фирменных сетях и ещё не нашли широкого распространения в открытом интернете; JSON: Более эффективный язык разметки, ставший массовым в 2010х годах.

Методы разработки Существуют средства автоматизации разработки веб-служб, разделяющиеся на две основные группы. При разработке снизу вверх сначала пишутся имплементирующие классы, а из их исходного текста генерируются WSDL-файлы, документирующие службу. Недостатком этого метода является подверженность Java-классов частым изменениям. При подходе "сверху вниз" сначала подготавливается WSDL, а из него генерируется скелет Java-класса, имплементирующего службу. Этот путь считается более трудным, зато приводит к более чистым и лучше защищенным от изменений решениям. Пока формат сообщений, которыми обмениваются заказчик и исполнитель, не меняется, изменения в каждом из них не нарушают взаимодействия. Эта техника называется иногда «contract first», так как исходной точкой является WSDL («договор» между заказчиком и исполнителем).

Существует разработка веб-службы на основе SDK для распознавания документов (OCR).

Платформы

Веб-службы разворачиваются на серверах приложений. Некоторые серверы приложений: ColdFusion от Adobe DotGNU от GNU Project (разработка остановлена) GlassFish — от компании Oracle Google App Engine — платформа для масштабируемых приложений, использующих инфраструктуру компании Google IBM Lotus Notes линейка ПО для организации совместной работы от IBM JBoss — компании Red Hat Mono — платформа разработки от Xamarin (ранее Novell) .NET Framework серверы от Microsoft Web Application Server от SAP (является ключевой частью стека SAP NetWeaver) WebLogic от компании Oracle (продукт BEA Systems поглощённой Oracle) webMethods Integration Platform от Software AG WebSphere Application Server от IBM (основан на Apache и платформе J2EE) Zend Framework — от Zend Technologies Zope является объектно-ориентированным сервером приложений написанным на Python Литература Дергачев А. М. Проблемы эффективного использования сетевых сервисов / Научно-технический вестник СПбГУ ИТМО. 2011. № 1 (71). С. 83-87 Dover D., Dafforn E. Search Engine Optimization Secrets. Indianapolis: Wiley Publishing, Inc., 2011. 456 p. Ouzzani, M., Bouguettaya A. Semantic Web Services for Web Databases. Springer Science+Business Media, 2011. 155 p.

Ссылки W3C Web Services

Примечания

Категория:Сетевые протоколы Категория:Веб-программирование