Веб-сервис
Веб-служба, веб-сервис (англ. Web Service) — идентифицируемая веб-адресом программная система со стандартизированными интерфейсами. Веб-службы могут взаимодействовать друг с другом и со сторонними приложениями посредством сообщений, основанных на определённых протоколах (XML, JSON и т. д.). Веб-служба является единицей модульности при использовании сервис-ориентированной архитектуры приложения.
Если посмотреть на веб-сервисы в разрезе стека сетевых протоколов, мы увидим, что это, в классическом случае, не что иное, как еще одна надстройка поверх протокола HTTP.
С другой стороны, если гипотетически разделить Интернет на несколько слоев, мы сможем выделить, как минимум, два концептуальных типа приложений — вычислительные узлы, которые реализуют нетривиальные функции и прикладные веб-ресурсы. При этом вторые, зачастую должны взаимодействовать с первыми для получения или обработки специализированной информации.
Но и сам Интернет разнороден, т. е. различные приложения на различных узлах сети функционируют на разных аппаратно-программных платформах и используют различные технологии и языки.
Чтобы связать все это и предоставить возможность одним приложениям обмениваться данными с другими, и были придуманы веб-сервисы. По сути, веб-сервисы — это реализация абсолютно четких интерфейсов обмена данными между различными приложениями, которые написаны не только на разных языках, но и распределены на разных узлах сети.
Именно с появлением веб-сервисов развилась идея SOA — сервис-ориентированной архитектуры веб-приложений (Service Oriented Architecture).
Содержание
Стандарты
- XML: Расширяемый язык разметки, предназначенный для хранения и передачи структурированных данных.
- SOAP: Протокол обмена сообщениями на базе XML.
- WSDL: Язык описания внешних интерфейсов веб-службы на базе XML.
- UDDI: Универсальный интерфейс распознавания, описания и интеграции (Universal Discovery, Description and Integration). Каталог веб-служб и сведений о компаниях, предоставляющих веб-службы для всеобщего пользования или конкретным компаниям.
Преимущества
- Веб-службы обеспечивают взаимодействие программных систем независимо от платформы.
- Веб-службы основаны на базе открытых стандартов и протоколов. Благодаря использованию XML достигается простота разработки и отладки веб-служб.
- Использование интернет-протокола обеспечивает HTTP-взаимодействие программных систем через межсетевой экран.
Платформы
Веб-службы развёртываются на серверах приложений. Вот небольшой список серверов приложений:
- Axis и Tomcat (оба являются проектами Apache)
- Mono — платформа разработки от Xamarin (ранее Novell)
- IBM Lotus Notes линейка ПО для организации совместной работы от IBM
- Microsoft .NET серверы от Microsoft
- Java Web Services Development Pack (JWSDP) от Sun Microsystems (основан на Tomcat)
- Zope является объектно-ориентированным сервером приложений написанным на Python
- WebSphere Application Server от IBM (основан на Apache и платформе J2EE)
- ColdFusion от Adobe
- Cordys WS-AppServer
- infoRouter Document Management software Web Services API
- DotGNU от GNU Project
- JOnAS (является частью ObjectWeb Open Source initiative)
- WebLogic от BEA Systems
- Web Application Server от SAP (является ключевой частью стека SAP NetWeaver)
- Pramati Application Server от Pramati Technologies
- OpenEdge Platform от Progress Software
- webMethods Integration Platform от Software AG
- Oracle Application Server от Oracle Corporation
- Zend Framework — open source от Zend Technologies
- Pythomnic — платформа для написания распределенных сетевых сервисов
- Google App Engine — платформа для масштабируемых приложений, использующих инфраструктуру компании Google
- JBoss — компании Red Hat