Платформа вызова веб-служб
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Разработчик(и) | Фонд программного обеспечения Apache |
---|---|
Стабильная версия | 2.0
/ 27 января 2003 г. |
Операционная система | Кросс-платформенный |
Тип | Веб-сервисы |
Лицензия | Лицензия Апач 2.0 |
Веб-сайт | WS |
Платформа вызова веб-служб (WSIF) поддерживает простой и гибкий Java API (интерфейс прикладного программирования) для вызова любой службы, описанной на языке описания веб-служб (WSDL).
Используя WSIF, WSDL может стать центральным элементом структуры интеграции для доступа к программному обеспечению, работающему на различных платформах, использующих разные протоколы. Программное обеспечение должно быть описано с использованием WSDL и иметь привязку, включенную в его описание. [ нужны разъяснения ] , для которого у инфраструктуры WSIF клиента есть поставщик. WSIF определяет и поставляется в комплекте с поставщиками для локальных протоколов Java, Enterprise JavaBeans (EJB), Java Message Service (JMS) и Java EE Connector Architecture (JCA), что означает, что клиент может определить EJB или службу сообщений Java - доступную. службу напрямую как привязку WSDL и прозрачно получать к ней доступ с помощью WSIF, используя тот же API, который можно использовать для службы SOAP или локального класса Java.
Структура
[ редактировать ]В WSDL привязка определяет, как сопоставлять абстрактный PortType с реальным форматом и протоколом службы. Например, привязка SOAP определяет стиль кодирования, заголовок SOAPAction , пространство имен тела (targetURI) и т. д.
WSDL допускает несколько реализаций веб-службы и несколько портов, использующих один и тот же тип порта. Другими словами, WSDL позволяет одному и тому же интерфейсу иметь привязки к таким службам, как SOAP и IIOP .
WSIF предоставляет API, позволяющий одному и тому же клиентскому коду получать доступ к любой доступной привязке. Поскольку клиентский код может быть записан в PortType, выбор используемого порта и привязки может определяться развертыванием, параметрами конфигурации или кодом.
WSIF использует поставщиков для поддержки этих нескольких привязок WSDL. Поставщик — это фрагмент кода, который поддерживает расширение WSDL и позволяет вызывать службу посредством этой конкретной реализации. Поставщики WSIF используют спецификацию поставщика услуг J2SE JAR, что делает их доступными для обнаружения во время выполнения .
Клиенты могут использовать новые реализации и делегировать выбор порта инфраструктуре и среде выполнения, что позволяет выбирать реализацию на основе характеристик качества обслуживания или бизнес-политики.
Привязки для EJB, JMS и JCA
[ редактировать ]WSIF определяет дополнительные расширения привязки, чтобы Enterprise JavaBean (EJB), локальные классы Java, программное обеспечение, доступное через очереди сообщений с использованием API службы сообщений Java (JMS), и программное обеспечение, которое можно вызывать с использованием архитектуры Java Connector, также можно было описать в WSDL. WSIF поставляется с поставщиками, которые обеспечивают прозрачный вызов на основе соответствующего описания WSDL.
Описание
[ редактировать ]WSIF позволяет разработчикам взаимодействовать с абстрактными представлениями веб-служб через их описания WSDL вместо прямой работы с API-интерфейсами Simple Object Access Protocol (SOAP), которые являются обычной моделью программирования. С помощью WSIF разработчики могут работать с одной и той же моделью программирования независимо от того, как реализован веб-сервис и к которому осуществляется доступ.
WSIF допускает бесзаглушенный или полностью динамический вызов веб-службы на основе проверки метаданных о службе во время выполнения. Это также позволяет подключать обновленные реализации привязки к WSIF во время выполнения, позволяя вызывающей службе отложить выбор привязки до времени выполнения.
Он тесно связан с WSDL, что позволяет ему вызывать любую службу, которую можно описать на этом языке.
Если сложная корпоративная программная система состоит из различных частей программного обеспечения, разрабатывавшихся в течение десятилетий — EJB, устаревших приложений, доступ к которым осуществляется с использованием архитектуры соединителя Java, служб SOAP, размещенных на внешних серверах, старого кода, доступ к которому осуществляется через промежуточное программное обеспечение для обмена сообщениями, — необходимо написать программное обеспечение. приложения, которые используют все эти части для выполнения полезных задач, где различия в протоколах и мобильности программного обеспечения конфликтуют друг с другом.
Если программное обеспечение переносится на другой сервер, код нарушается. В библиотеках SOAP были внесены изменения — например, при переходе от использования Apache SOAP к Apache Axis, поскольку в нем используется устаревший API-интерфейс SOAP. То, что раньше было доступно как EJB, теперь доступно через промежуточное программное обеспечение обмена сообщениями через JMS — опять же, код, использующий это программное обеспечение, должен быть исправлен, или если у вас есть EJB, который предлагается внешним клиентам в качестве службы SOAP. Использование SOAP приводит к снижению производительности по сравнению с прямым доступом к EJB.
WSIF решает эти проблемы, позволяя WSDL служить нормализованным описанием разнородного программного обеспечения и позволяя пользователям получать доступ к этому программному обеспечению независимо от конкретного протокола или местоположения. Отделение API от реального протокола также означает гибкость: протоколы, местоположение и т. д. можно переключать без необходимости перекомпиляции клиентского кода. Если доступная извне служба SOAP становится доступной как EJB, пользователи могут использовать RMI/IIOP, изменяя описание службы (WSDL), не внося никаких изменений в приложения, использующие эту службу. Можно использовать расширяемость WSDL, его способность предлагать несколько привязок для одной и той же службы, принимать решение о привязке во время выполнения и т. д.
Различия между WSIF и Axis
[ редактировать ]Axis — это реализация SOAP. Он включает в себя инфраструктуру на стороне сервера для развертывания реализаций веб-сервисов и последующей маршрутизации сообщений SOAP между клиентами и этими реализациями. Он также реализует спецификацию JAX-RPC для вызова сервисов SOAP.
WSIF похож на клиентскую часть Axis в том смысле, что он используется для вызова сервисов. Однако API WSIF управляется WSDL и не зависит от протокола; он позволяет подключать код, специфичный для протокола («провайдеры»). Для вызова служб SOAP WSIF поставляется с поставщиком Axis, который использует API-интерфейсы Axis (т. е. JAX-RPC) для выполнения вызова. Таким образом, WSIF работает на более абстрактном уровне, чем Axis.
Различия между WSIF и JAX-RPC
[ редактировать ]JAX-RPC — это API для вызова служб RPC на основе XML. Текущая область применения ограничена вызовом служб SOAP. WSIF — это API для вызова служб, описанных WSDL, независимо от того, являются ли они службами SOAP или нет (например, WSIF определяет привязки WSDL, чтобы EJB, корпоративное программное обеспечение, доступное с помощью JMS или архитектуры Java Connector, а также локальные классы Java, могли описываться как первоклассные службы WSDL, а затем вызываться с использованием того же независимого от протокола API WSIF ).