Веб-служба: соответствующая стандартам вызываемая служба, может быть написана на Java, может быть написана с использованием другой технологии, например .NET
. Ключевым моментом является то, что существует стандартный язык WSDL, который описывает сервис. WSDL содержит информацию о транспорте, протоколе, где работает служба, доступных операциях и полезных нагрузках, текущих и обратно.
Большинство веб-служб, с которыми вы столкнетесь, используют сообщения SOAP (определенный формат XML) по протоколу HTTP, и поэтому WSDL будет содержать URL-адрес, где вызывать службу. В более общем случае возможны другие форматы сообщений и протоколы - мы вернемся к этому моменту.
Предположим, у вас есть WSDL для службы, которую вы хотите вызывать из Java-программы, тогда в принципе вы можете написать Java для форматирования подходящей полезной нагрузки XML и отправки сообщения по HTTP-соединению. Совершенно выполнимый, но очень утомительный, почти весь код является стандартным кодом, который может быть сгенерирован из WSDL.
Точно так же, если вы хотите создать веб-сервис на Java, вы можете начать с написания WSDL, но опять-таки есть много стандартного стандартного кода для чтения HTTP, анализа XML и т. Д. Так что в обоих случаях вы получаете выгоду от стандартной Java API для выполнения всей этой работы. Было несколько таких API, JAX / RPC и JAX / WS - два таких, и JAX / WS является более новым и более простым в использовании.
Альтернативной технологией интеграции является использование обмена сообщениями, есть много поставщиков, которые предоставляют продукты очереди сообщений, поэтому вполне возможно отправлять сообщения из (скажем) Java в (скажем) C ++, вам просто нужно согласовать формат сообщения ( нет стандартного WSDL, чтобы рассказать вам).
JMS - это API-интерфейс программирования Java, который обеспечивает абстракцию о продуктах обмена сообщениями конкретных поставщиков. Работая в Java, JMS обеспечивает переносимость между продуктами обмена сообщениями. Стандарт Java EE требует, чтобы поставщики Java EE App Server обеспечили инфраструктуру обмена сообщениями - я считаю, что по мере роста бизнес-систем им почти всегда требуются некоторые средства асинхронного обмена сообщениями.
Существуют различные возможности для применения WSDL-подобных подходов к обмену сообщениями. Например, можно написать веб-сервис, используя SOAP / JMS, а не SOAP / HTTP. JAXM - это новый API в этой области. Честно говоря, мне неясно, как они связаны с SOAP / JMS и такими стандартами, как WS-ReliableMessaging.