Веб-служба, веб-сервис (англ. web service) — идентифицируемая уникальным веб-адресом (URL-адресом) программная система со стандартизированными интерфейсами.
Веб-службы могут взаимодействовать друг с другом и со сторонними приложениями посредством сообщений, основанных на определённых протоколах (SOAP, XML-RPC и т. д.) и соглашениях (REST). Веб-служба является единицей модульности при использовании сервис-ориентированной архитектуры приложения.
В обиходе веб-сервисами называют услуги, оказываемые в Интернете. В этом употреблении термин требует уточнения, идёт ли речь о поиске, веб-почте, хранении документов, файлов, закладок и т. п. Такими веб-сервисами можно пользоваться независимо от компьютера, браузера или места доступа в Интернет[1][2].
Преимущества и недостатки
правитьСодержание этой статьи представляет собой произвольный набор слабо связанных фактов, инструкцию, каталог или малозначимую информацию новостного характера. |
- Преимущества
- Веб-службы обеспечивают взаимодействие программных систем независимо от платформы. Например, 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, позволяет получить текущие данные с прибора учёта тепла на момент последнего считывания данных.[3]
Магазин приложений
правитьМагазин приложений — интернет-магазин, позволяющий сторонним компаниям-разработчикам ПО предлагать владельцам мобильных (обычно) устройств устанавливать и приобретать различные приложения и игры, а производителям прочего контента — также книги, музыку и фильмы.[источник не указан 1255 дней]
- Магазин приложений 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)
Маркетплейс
правитьПредоставление коммерсантам торговой веб-площадки для торговли онлайн.[источник не указан 1255 дней]
Стриминг
правитьПредоставляют услуги по стримингу (выдаче потокового мультимедиа).[источник не указан 1255 дней]
Технологии реализации
правитьАрхитектура
правитьКак показано на рисунке, можно выделить три инстанции, взаимодействующие в рамках веб-службы. Переведём их названия как[источник не указан 1255 дней]
- заказчик (service requester);
- исполнитель (service provider);
- каталог (service broker).
Когда служба разработана, исполнитель регистрирует её в каталоге, где её могут найти потенциальные заказчики. Заказчик, найдя в каталоге подходящую службу, импортирует оттуда её WSDL-спецификацию и разрабатывает в соответствии с ней своё программное обеспечение. WSDL описывает формат запросов и ответов, которыми обмениваются заказчик и исполнитель в процессе работы. Для обеспечения взаимодействия используются следующие стандарты:[источник не указан 1255 дней]
- XML: Расширяемый язык разметки, предназначенный для хранения и передачи структурированных данных;
- SOAP: Протокол обмена сообщениями на базе XML;
- WSDL: Язык определения внешних интерфейсов, который определяет взаимодействие (контракт) между потребителем и веб-службами SOAP. Написан на базе XML;
- UDDI: Универсальный интерфейс распознавания, описания и интеграции (Universal Discovery, Description and Integration). Каталог веб-служб и сведений о компаниях, предоставляющих веб-службы во всеобщее пользование или конкретным компаниям. Пока UDDI существуют, однако, только в небольших фирменных сетях и ещё не нашли широкого распространения в открытом интернете;
- JSON: Более эффективный язык разметки, ставший массовым в 2010х годах.
Методы разработки
правитьСуществуют средства автоматизации разработки веб-служб, разделяющиеся на две основные группы. При разработке снизу-вверх сначала пишутся имплементирующие классы, а из их исходного текста генерируются WSDL-файлы, документирующие службу. Недостатком этого метода является подверженность Java-классов частым изменениям. При подходе "сверху вниз" сначала подготавливается WSDL, а из него генерируется скелет Java-класса, имплементирующего службу. Этот путь считается более трудным, зато приводит к более чистым и лучше защищенным от изменений решениям. Пока формат сообщений, которыми обмениваются заказчик и исполнитель, не меняется, изменения в каждом из них не нарушают взаимодействия. Эта техника называется иногда «contract first», так как исходной точкой является WSDL («договор» между заказчиком и исполнителем).[источник не указан 1255 дней]
Существует разработка веб-службы на основе SDK для распознавания документов (OCR).[4]
Платформы
правитьСписок примеров в этой статье не основывается на авторитетных источниках, посвящённых непосредственно предмету статьи. |
Веб-службы разворачиваются на серверах приложений. Некоторые серверы приложений:[источник не указан 1255 дней]
- 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[источник не указан 1255 дней]
Литература
править- Дергачев А. М. Проблемы эффективного использования сетевых сервисов / Научно-технический вестник СПбГУ ИТМО. 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.
Ссылки
правитьПримечания
править- ↑ Веб-сервис Архивная копия от 25 октября 2017 на Wayback Machine в словаре компьютерных терминов
- ↑ Web services Архивная копия от 20 сентября 2012 на Wayback Machine (англ.) в TheFreeDictionary
- ↑ Чипулис Валерий Павлович, Бабенко Вячеслов Николаевич. Веб-служба (рус.) // ВЕБ-СЛУЖБА MOBILESERVER. — 2019. — Т. 1, № 1. — С. 1.
- ↑ Маталов Даниил Павлович, Плискин Евгений Львович. ВЕБ-СЕРВИС НА ОСНОВЕ SDK ДЛЯ РАСПОЗНАВАНИЯ ДОКУМЕНТОВ (рус.) // ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ И ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ. — 2019. — Т. 1, № 1. — С. 2.
В статье не хватает ссылок на источники (см. рекомендации по поиску). |
Для улучшения этой статьи желательно: |