Структура вызова веб-служб - Википедия - Web Services Invocation Framework
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
Разработчики) | Фонд программного обеспечения Apache |
---|---|
Стабильный выпуск | 2.0 / 27 января 2003 г. |
Операционная система | Кроссплатформенность |
Тип | Веб-сервисы |
Лицензия | Лицензия Apache 2.0 |
Интернет сайт | WS |
В Платформа вызова веб-служб (WSIF) поддерживает простой и гибкий Ява API для вызова любого Язык описания веб-сервисов (WSDL) описанный сервис.
Используя WSIF, WSDL может стать центральным элементом инфраструктуры интеграции для доступа к программному обеспечению, работающему на различных платформах, использующих разные протоколы. Программное обеспечение должно быть описано с помощью WSDL и иметь привязку, включенную в его описание.[требуется разъяснение ] у клиентской платформы WSIF есть поставщик. WSIF определяет и поставляется в комплекте с поставщиками для локальной Java, Enterprise JavaBeans (EJB), Java Message Service (JMS) и Архитектура соединителя Java EE (JCA), что означает, что клиент может определять EJB или Служба сообщений Java -доступная служба напрямую как привязка WSDL и прозрачный доступ к ней с помощью WSIF, используя тот же API, который использовался бы для Служба SOAP или локальный класс Java.
Структура
В WSDL привязка определяет, как сопоставлять абстрактные PortType и реальный формат и протокол службы. Например, привязка SOAP определяет стиль кодирования, SOAPAction заголовок, пространство имен тела (targetURI) и так далее.
WSDL допускает несколько реализаций веб-службы и нескольких портов, которые используют один и тот же PortType. Другими словами, WSDL позволяет одному и тому же интерфейсу связываться с такими службами, как SOAP и IIOP.
WSIF предоставляет API, позволяющий одному и тому же клиентскому коду обращаться к любой доступной привязке. Поскольку код клиента может быть записан в PortType, это может быть параметр развертывания или конфигурации (или выбор кода), какой порт и привязка он использует.
WSIF использует провайдеры для поддержки этих множественных привязок WSDL. Провайдер - это фрагмент кода, который поддерживает расширение WSDL и позволяет вызывать службу через эту конкретную реализацию. Поставщики WSIF используют спецификацию поставщика услуг J2SE JAR, что делает их доступными для обнаружения в время выполнения.
Клиенты могут использовать новые реализации и делегировать выбор порта инфраструктуре и среде выполнения, что позволяет выбирать реализацию на основе характеристик качества обслуживания или бизнес-политики.
Привязки для EJB, JMS и JCA
WSIF определяет дополнительные расширения привязки, чтобы Корпоративный JavaBean (EJB), локальные классы Java, программное обеспечение, доступное через очереди сообщений с использованием Служба сообщений Java (JMS) API и программное обеспечение, которое можно вызывать с помощью Архитектура коннектора Java также можно описать в 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 и затем вызываться с использованием того же протокола, не зависящего от протокола. WSIF API).